OSDN Git Service

V 3.2
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / PROG100K.4TH
1
2 ; -----------------------------------
3 ; PROG100k.4th = 77 x RC5toLCD.4th
4 ; -----------------------------------
5
6
7 RST_STATE
8
9 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10
11 [UNDEFINED] MARKER [IF]
12 : MARKER
13 CREATE
14 HI2LO
15 MOV &$1DC8,0(R10)
16 SUB #2,R8
17 MOV R8,2(R10)
18 ADD #4,&$1DC6
19 LO2HI
20 DOES>
21 HI2LO
22 MOV @R1+,R13
23 MOV @R14+,&$180E
24 MOV @R14,&$180C
25 MOV @R15+,R14
26 MOV #RST_STATE,R0
27 ENDCODE
28 [THEN]
29
30 MARKER {RC5TOLCD}
31
32 [UNDEFINED] @ [IF]
33 CODE @
34 MOV @R14,R14
35 MOV @R13+,R0
36 ENDCODE
37 [THEN]
38
39 [UNDEFINED] CONSTANT [IF]
40 : CONSTANT 
41 CREATE
42 HI2LO
43 MOV R14,-2(R10)
44 MOV @R15+,R14
45 MOV @R1+,R13
46 MOV @R13+,R0
47 ENDCODE
48 [THEN]
49
50 [UNDEFINED] STATE [IF]
51 $1DBE CONSTANT STATE
52 [THEN]
53
54 [UNDEFINED] = [IF]
55 CODE =
56 SUB @R15+,R14
57 0<> IF
58     AND #0,R14
59     MOV @R13+,R0
60 THEN
61 XOR #-1,R14
62 MOV @R13+,R0
63 ENDCODE
64 [THEN]
65
66 [UNDEFINED] IF [IF]
67 CODE IF
68 SUB #2,R15
69 MOV R14,0(R15)
70 MOV &$1DC6,R14
71 ADD #4,&$1DC6
72 MOV #$404C,0(R14)
73 ADD #2,R14
74 MOV @R13+,R0
75 ENDCODE IMMEDIATE
76 [THEN]
77
78 [UNDEFINED] THEN [IF]
79 CODE THEN
80 MOV &$1DC6,0(R14)
81 MOV @R15+,R14
82 MOV @R13+,R0
83 ENDCODE IMMEDIATE
84 [THEN]
85
86 [UNDEFINED] ELSE [IF]
87 CODE ELSE
88 ADD #4,&$1DC6
89 MOV &$1DC6,R10
90 MOV #$4048,-4(R10)
91 MOV R10,0(R14)
92 SUB #2,R10
93 MOV R10,R14
94 MOV @R13+,R0
95 ENDCODE IMMEDIATE
96 [THEN]
97
98 [UNDEFINED] DEFER [IF]
99
100 : DEFER
101 CREATE
102 HI2LO
103 MOV #$4030,-4(R10)
104 MOV #$402C,-2(R10)
105 MOV @R1+,R13
106 MOV @R13+,R0
107 ENDCODE
108 [THEN]
109
110 [UNDEFINED] DEFER! [IF]
111 CODE DEFER!
112 MOV @R15+,2(R14)
113 MOV @R15+,R14
114 MOV @R13+,R0
115 ENDCODE
116 [THEN]
117
118 [UNDEFINED] IS [IF]
119 : IS
120 STATE @
121 IF  POSTPONE ['] POSTPONE DEFER! 
122 ELSE ' DEFER! 
123 THEN
124 ; IMMEDIATE
125 [THEN]
126
127 [UNDEFINED] >BODY [IF]
128 CODE >BODY
129 ADD #4,R14
130 MOV @R13+,R0
131 ENDCODE
132 [THEN]
133
134
135 CODE 20_US
136 BEGIN
137     BEGIN
138         BIT #1,&$3C0
139     0<> UNTIL
140     BIC #1,&$3C0
141     SUB #1,R14
142 U< UNTIL
143 MOV @R15+,R14
144 MOV @R13+,R0
145 ENDCODE
146
147 CODE TOP_LCD
148     BIS.B #4,&$243
149     BIT.B #1,&$241
150 0= IF
151     AND.B #$0F,R14
152     MOV.B R14,&$222
153     BIC.B #4,&$243
154     MOV @R15+,R14
155     MOV @R13+,R0
156 THEN
157     SUB #2,R15
158     MOV R14,0(R15)
159     BIC.B #4,&$243
160     MOV.B &$220,R14
161     AND.B #$0F,R14
162     MOV @R13+,R0
163 ENDCODE
164
165 CODE LCD_WRC
166     BIS.B #2,&$243
167 BW1 SUB #2,R15
168     MOV R14,0(R15)
169     RRUM #4,R14
170     BIC.B #1,&$243
171     BIS.B #$0F,&$224
172 COLON
173     TOP_LCD 2 20_US
174     TOP_LCD 2 20_US 
175 ;
176
177 CODE LCD_WRF
178     BIC.B #2,&$243
179     GOTO BW1
180 ENDCODE
181
182 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
183 : LCD_HOME $02 LCD_WRF 100 20_us ;
184
185
186
187 ASM WDT_INT
188 ADD #2,R1
189 BIT.B #$20,&$240
190 0= IF
191     CMP #19,&$3D6
192     U< IF
193         ADD #1,&$3D6
194     THEN
195 ELSE
196     BIT.B #$40,&$240
197     0= IF
198         CMP #3,&$3D6
199         U>= IF
200            SUB #1,&$3D6
201         THEN
202     THEN
203 THEN
204 BW1
205 MOV @R1+,R0
206 ENDASM
207
208 ASM RC5_INT
209 ADD #2,R1
210 $1806 @ 16000 = [IF]
211     MOV #1,&$3A0
212 [THEN]
213 $1806 @ 24000 = [IF]
214     MOV #2,&$3A0
215 [THEN]
216 MOV #1778,R9
217 MOV #14,R10
218 BEGIN
219 MOV #%1011100100,&$380
220     RRUM    #1,R9
221     MOV     R9,R8
222     RRUM    #1,R8
223     ADD     R9,R8
224     BEGIN   CMP R8,&$390
225     U>= UNTIL
226     BIT.B   #4,&$200
227     ADDC    R11,R11
228     MOV.B   &$200,&$208
229     BIC.B   #4,&$20C
230     SUB     #1,R10
231 0<> WHILE
232     ADD R9,R8
233     BEGIN
234         MOV &$390,R9
235         CMP R8,R9
236         U>= IF
237         BIC #$30,&$380
238         GOTO BW1
239         THEN
240         BIT.B #4,&$20C
241     0<> UNTIL
242 REPEAT
243 BIC #$30,&$380
244 RLAM    #1,R11
245 MOV.B   R11,R9
246 RRUM    #2,R9
247 BIT     #$4000,R11
248 0= IF   BIS #$40,R9
249 THEN
250 RRUM    #3,R11
251 XOR     @R1,R11
252 BIT     #$400,R11
253 0= ?GOTO BW1
254 XOR #$400,0(R1)
255 SUB #8,R15
256 MOV R14,6(R15)
257 MOV &$1DDC,4(R15)
258 MOV #$10,&$1DDC
259 MOV R9,0(R15)
260 MOV #0,R14
261 LO2HI
262     LCD_CLEAR
263     <# # #S #36 HOLD #>
264     ['] LCD_WRC IS EMIT
265     TYPE
266     ['] EMIT >BODY IS EMIT
267 HI2LO
268 MOV @R15+,&$1DDC
269 MOV @R15+,R14
270 MOV @R1+,R0
271 ENDASM
272
273 ASM BACKGROUND
274 BEGIN
275     CALL &$1814
276     BIS &$180A,R2
277 AGAIN
278 ENDASM
279
280 ASM SYS_OUT
281     MOV #WARM,R9
282     ADD #4,R9
283     MOV R9,R0
284 ENDASM
285
286 CODE STOP
287 BW1 MOV #$4000,R9
288     ADD #4,R9
289     MOV R9,-2(R9)
290     MOV #WARM,R9
291     MOV #SYS_OUT,2(R9)
292     BIC.B #4,&$20A
293     BIC.B #4,&$20C
294     MOV #0,&$3C0
295     MOV #0,&$340
296     MOV #0,&$342
297     CALL #$400E
298 COLON
299 ECHO
300 ." RC5toLCD is removed,"
301 ."  type START to restart"
302  WARM
303 ;
304
305 CODE SYS_INIT
306 MOV #%10_1101_0100,&$3C0
307 $1806 @ 16000 = [IF]
308     MOV #1,&$3E0
309 [THEN]
310 $1806 @ 24000 = [IF]
311     MOV #2,&$3E0
312 [THEN]
313     MOV #19,&$3D2
314 MOV #%0110_0000,&$3C6
315     MOV #10,&$3D6
316     BIS.B #$20,&$204
317     BIS.B #$20,&$20A
318     BIS.B #7,&$245
319     BIC.B #7,&$247
320     BIS.B #$0F,&$224
321     BIC.B #$0F,&$226
322     BIS.B #4,&$20A
323     BIC.B #4,&$20C
324     MOV #RC5_INT,&$FFDE
325 MOV #%01_0001_0100,&$340
326     MOV ##3276,&$352
327     MOV #%10000,&$342
328     MOV #WDT_INT,&$FFEA
329 BIC #1,&$130
330 BIS.B #3,&$20D
331 MOV &$1808,R8
332 CMP #4,R8
333 0= ?GOTO BW1
334 COLON
335     #1000 20_US
336     %011 TOP_LCD
337     #205 20_US
338     %011 TOP_LCD
339     #5 20_US
340     %011 TOP_LCD
341     #2 20_US
342     %010 TOP_LCD
343     #2 20_US
344     %00101000 LCD_WRF
345     %1000 LCD_WRF
346     LCD_CLEAR
347     %0110 LCD_WRF
348     %1100 LCD_WRF
349     LCD_CLEAR
350     ['] LCD_HOME IS CR
351     ['] LCD_WRC  IS EMIT
352     CR ." I love you"
353     ['] CR >BODY IS CR
354     ['] EMIT >BODY IS EMIT
355     ." RC5toLCD is running. Type STOP to quit"
356     PWR_STATE ABORT
357 ;
358
359 CODE START
360 MOV #$4000,R9
361 MOV #BACKGROUND,2(R9)
362 MOV #WARM,R9
363 MOV #SYS_INIT,2(R9)
364 MOV R9,R0
365 ENDCODE 
366
367 ECHO
368             ; downloading RC5toLCD.4th is done
369 RST_HERE    ; this app is protected against <reset>
370
371
372 RST_STATE
373
374 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
375
376 [UNDEFINED] MARKER [IF]
377 : MARKER
378 CREATE
379 HI2LO
380 MOV &$1DC8,0(R10)
381 SUB #2,R8
382 MOV R8,2(R10)
383 ADD #4,&$1DC6
384 LO2HI
385 DOES>
386 HI2LO
387 MOV @R1+,R13
388 MOV @R14+,&$180E
389 MOV @R14,&$180C
390 MOV @R15+,R14
391 MOV #RST_STATE,R0
392 ENDCODE
393 [THEN]
394
395 MARKER {RC5TOLCD}
396
397 [UNDEFINED] @ [IF]
398 CODE @
399 MOV @R14,R14
400 MOV @R13+,R0
401 ENDCODE
402 [THEN]
403
404 [UNDEFINED] CONSTANT [IF]
405 : CONSTANT 
406 CREATE
407 HI2LO
408 MOV R14,-2(R10)
409 MOV @R15+,R14
410 MOV @R1+,R13
411 MOV @R13+,R0
412 ENDCODE
413 [THEN]
414
415 [UNDEFINED] STATE [IF]
416 $1DBE CONSTANT STATE
417 [THEN]
418
419 [UNDEFINED] = [IF]
420 CODE =
421 SUB @R15+,R14
422 0<> IF
423     AND #0,R14
424     MOV @R13+,R0
425 THEN
426 XOR #-1,R14
427 MOV @R13+,R0
428 ENDCODE
429 [THEN]
430
431 [UNDEFINED] IF [IF]
432 CODE IF
433 SUB #2,R15
434 MOV R14,0(R15)
435 MOV &$1DC6,R14
436 ADD #4,&$1DC6
437 MOV #$404C,0(R14)
438 ADD #2,R14
439 MOV @R13+,R0
440 ENDCODE IMMEDIATE
441 [THEN]
442
443 [UNDEFINED] THEN [IF]
444 CODE THEN
445 MOV &$1DC6,0(R14)
446 MOV @R15+,R14
447 MOV @R13+,R0
448 ENDCODE IMMEDIATE
449 [THEN]
450
451 [UNDEFINED] ELSE [IF]
452 CODE ELSE
453 ADD #4,&$1DC6
454 MOV &$1DC6,R10
455 MOV #$4048,-4(R10)
456 MOV R10,0(R14)
457 SUB #2,R10
458 MOV R10,R14
459 MOV @R13+,R0
460 ENDCODE IMMEDIATE
461 [THEN]
462
463 [UNDEFINED] DEFER [IF]
464
465 : DEFER
466 CREATE
467 HI2LO
468 MOV #$4030,-4(R10)
469 MOV #$402C,-2(R10)
470 MOV @R1+,R13
471 MOV @R13+,R0
472 ENDCODE
473 [THEN]
474
475 [UNDEFINED] DEFER! [IF]
476 CODE DEFER!
477 MOV @R15+,2(R14)
478 MOV @R15+,R14
479 MOV @R13+,R0
480 ENDCODE
481 [THEN]
482
483 [UNDEFINED] IS [IF]
484 : IS
485 STATE @
486 IF  POSTPONE ['] POSTPONE DEFER! 
487 ELSE ' DEFER! 
488 THEN
489 ; IMMEDIATE
490 [THEN]
491
492 [UNDEFINED] >BODY [IF]
493 CODE >BODY
494 ADD #4,R14
495 MOV @R13+,R0
496 ENDCODE
497 [THEN]
498
499
500 CODE 20_US
501 BEGIN
502     BEGIN
503         BIT #1,&$3C0
504     0<> UNTIL
505     BIC #1,&$3C0
506     SUB #1,R14
507 U< UNTIL
508 MOV @R15+,R14
509 MOV @R13+,R0
510 ENDCODE
511
512 CODE TOP_LCD
513     BIS.B #4,&$243
514     BIT.B #1,&$241
515 0= IF
516     AND.B #$0F,R14
517     MOV.B R14,&$222
518     BIC.B #4,&$243
519     MOV @R15+,R14
520     MOV @R13+,R0
521 THEN
522     SUB #2,R15
523     MOV R14,0(R15)
524     BIC.B #4,&$243
525     MOV.B &$220,R14
526     AND.B #$0F,R14
527     MOV @R13+,R0
528 ENDCODE
529
530 CODE LCD_WRC
531     BIS.B #2,&$243
532 BW1 SUB #2,R15
533     MOV R14,0(R15)
534     RRUM #4,R14
535     BIC.B #1,&$243
536     BIS.B #$0F,&$224
537 COLON
538     TOP_LCD 2 20_US
539     TOP_LCD 2 20_US 
540 ;
541
542 CODE LCD_WRF
543     BIC.B #2,&$243
544     GOTO BW1
545 ENDCODE
546
547 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
548 : LCD_HOME $02 LCD_WRF 100 20_us ;
549
550
551
552 ASM WDT_INT
553 ADD #2,R1
554 BIT.B #$20,&$240
555 0= IF
556     CMP #19,&$3D6
557     U< IF
558         ADD #1,&$3D6
559     THEN
560 ELSE
561     BIT.B #$40,&$240
562     0= IF
563         CMP #3,&$3D6
564         U>= IF
565            SUB #1,&$3D6
566         THEN
567     THEN
568 THEN
569 BW1
570 MOV @R1+,R0
571 ENDASM
572
573 ASM RC5_INT
574 ADD #2,R1
575 $1806 @ 16000 = [IF]
576     MOV #1,&$3A0
577 [THEN]
578 $1806 @ 24000 = [IF]
579     MOV #2,&$3A0
580 [THEN]
581 MOV #1778,R9
582 MOV #14,R10
583 BEGIN
584 MOV #%1011100100,&$380
585     RRUM    #1,R9
586     MOV     R9,R8
587     RRUM    #1,R8
588     ADD     R9,R8
589     BEGIN   CMP R8,&$390
590     U>= UNTIL
591     BIT.B   #4,&$200
592     ADDC    R11,R11
593     MOV.B   &$200,&$208
594     BIC.B   #4,&$20C
595     SUB     #1,R10
596 0<> WHILE
597     ADD R9,R8
598     BEGIN
599         MOV &$390,R9
600         CMP R8,R9
601         U>= IF
602         BIC #$30,&$380
603         GOTO BW1
604         THEN
605         BIT.B #4,&$20C
606     0<> UNTIL
607 REPEAT
608 BIC #$30,&$380
609 RLAM    #1,R11
610 MOV.B   R11,R9
611 RRUM    #2,R9
612 BIT     #$4000,R11
613 0= IF   BIS #$40,R9
614 THEN
615 RRUM    #3,R11
616 XOR     @R1,R11
617 BIT     #$400,R11
618 0= ?GOTO BW1
619 XOR #$400,0(R1)
620 SUB #8,R15
621 MOV R14,6(R15)
622 MOV &$1DDC,4(R15)
623 MOV #$10,&$1DDC
624 MOV R9,0(R15)
625 MOV #0,R14
626 LO2HI
627     LCD_CLEAR
628     <# # #S #36 HOLD #>
629     ['] LCD_WRC IS EMIT
630     TYPE
631     ['] EMIT >BODY IS EMIT
632 HI2LO
633 MOV @R15+,&$1DDC
634 MOV @R15+,R14
635 MOV @R1+,R0
636 ENDASM
637
638 ASM BACKGROUND
639 BEGIN
640     CALL &$1814
641     BIS &$180A,R2
642 AGAIN
643 ENDASM
644
645 ASM SYS_OUT
646     MOV #WARM,R9
647     ADD #4,R9
648     MOV R9,R0
649 ENDASM
650
651 CODE STOP
652 BW1 MOV #$4000,R9
653     ADD #4,R9
654     MOV R9,-2(R9)
655     MOV #WARM,R9
656     MOV #SYS_OUT,2(R9)
657     BIC.B #4,&$20A
658     BIC.B #4,&$20C
659     MOV #0,&$3C0
660     MOV #0,&$340
661     MOV #0,&$342
662     CALL #$400E
663 COLON
664 ECHO
665 ." RC5toLCD is removed,"
666 ."  type START to restart"
667  WARM
668 ;
669
670 CODE SYS_INIT
671 MOV #%10_1101_0100,&$3C0
672 $1806 @ 16000 = [IF]
673     MOV #1,&$3E0
674 [THEN]
675 $1806 @ 24000 = [IF]
676     MOV #2,&$3E0
677 [THEN]
678     MOV #19,&$3D2
679 MOV #%0110_0000,&$3C6
680     MOV #10,&$3D6
681     BIS.B #$20,&$204
682     BIS.B #$20,&$20A
683     BIS.B #7,&$245
684     BIC.B #7,&$247
685     BIS.B #$0F,&$224
686     BIC.B #$0F,&$226
687     BIS.B #4,&$20A
688     BIC.B #4,&$20C
689     MOV #RC5_INT,&$FFDE
690 MOV #%01_0001_0100,&$340
691     MOV ##3276,&$352
692     MOV #%10000,&$342
693     MOV #WDT_INT,&$FFEA
694 BIC #1,&$130
695 BIS.B #3,&$20D
696 MOV &$1808,R8
697 CMP #4,R8
698 0= ?GOTO BW1
699 COLON
700     #1000 20_US
701     %011 TOP_LCD
702     #205 20_US
703     %011 TOP_LCD
704     #5 20_US
705     %011 TOP_LCD
706     #2 20_US
707     %010 TOP_LCD
708     #2 20_US
709     %00101000 LCD_WRF
710     %1000 LCD_WRF
711     LCD_CLEAR
712     %0110 LCD_WRF
713     %1100 LCD_WRF
714     LCD_CLEAR
715     ['] LCD_HOME IS CR
716     ['] LCD_WRC  IS EMIT
717     CR ." I love you"
718     ['] CR >BODY IS CR
719     ['] EMIT >BODY IS EMIT
720     ." RC5toLCD is running. Type STOP to quit"
721     PWR_STATE ABORT
722 ;
723
724 CODE START
725 MOV #$4000,R9
726 MOV #BACKGROUND,2(R9)
727 MOV #WARM,R9
728 MOV #SYS_INIT,2(R9)
729 MOV R9,R0
730 ENDCODE 
731
732 ECHO
733             ; downloading RC5toLCD.4th is done
734 RST_HERE    ; this app is protected against <reset>
735
736
737 RST_STATE
738
739 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
740
741 [UNDEFINED] MARKER [IF]
742 : MARKER
743 CREATE
744 HI2LO
745 MOV &$1DC8,0(R10)
746 SUB #2,R8
747 MOV R8,2(R10)
748 ADD #4,&$1DC6
749 LO2HI
750 DOES>
751 HI2LO
752 MOV @R1+,R13
753 MOV @R14+,&$180E
754 MOV @R14,&$180C
755 MOV @R15+,R14
756 MOV #RST_STATE,R0
757 ENDCODE
758 [THEN]
759
760 MARKER {RC5TOLCD}
761
762 [UNDEFINED] @ [IF]
763 CODE @
764 MOV @R14,R14
765 MOV @R13+,R0
766 ENDCODE
767 [THEN]
768
769 [UNDEFINED] CONSTANT [IF]
770 : CONSTANT 
771 CREATE
772 HI2LO
773 MOV R14,-2(R10)
774 MOV @R15+,R14
775 MOV @R1+,R13
776 MOV @R13+,R0
777 ENDCODE
778 [THEN]
779
780 [UNDEFINED] STATE [IF]
781 $1DBE CONSTANT STATE
782 [THEN]
783
784 [UNDEFINED] = [IF]
785 CODE =
786 SUB @R15+,R14
787 0<> IF
788     AND #0,R14
789     MOV @R13+,R0
790 THEN
791 XOR #-1,R14
792 MOV @R13+,R0
793 ENDCODE
794 [THEN]
795
796 [UNDEFINED] IF [IF]
797 CODE IF
798 SUB #2,R15
799 MOV R14,0(R15)
800 MOV &$1DC6,R14
801 ADD #4,&$1DC6
802 MOV #$404C,0(R14)
803 ADD #2,R14
804 MOV @R13+,R0
805 ENDCODE IMMEDIATE
806 [THEN]
807
808 [UNDEFINED] THEN [IF]
809 CODE THEN
810 MOV &$1DC6,0(R14)
811 MOV @R15+,R14
812 MOV @R13+,R0
813 ENDCODE IMMEDIATE
814 [THEN]
815
816 [UNDEFINED] ELSE [IF]
817 CODE ELSE
818 ADD #4,&$1DC6
819 MOV &$1DC6,R10
820 MOV #$4048,-4(R10)
821 MOV R10,0(R14)
822 SUB #2,R10
823 MOV R10,R14
824 MOV @R13+,R0
825 ENDCODE IMMEDIATE
826 [THEN]
827
828 [UNDEFINED] DEFER [IF]
829
830 : DEFER
831 CREATE
832 HI2LO
833 MOV #$4030,-4(R10)
834 MOV #$402C,-2(R10)
835 MOV @R1+,R13
836 MOV @R13+,R0
837 ENDCODE
838 [THEN]
839
840 [UNDEFINED] DEFER! [IF]
841 CODE DEFER!
842 MOV @R15+,2(R14)
843 MOV @R15+,R14
844 MOV @R13+,R0
845 ENDCODE
846 [THEN]
847
848 [UNDEFINED] IS [IF]
849 : IS
850 STATE @
851 IF  POSTPONE ['] POSTPONE DEFER! 
852 ELSE ' DEFER! 
853 THEN
854 ; IMMEDIATE
855 [THEN]
856
857 [UNDEFINED] >BODY [IF]
858 CODE >BODY
859 ADD #4,R14
860 MOV @R13+,R0
861 ENDCODE
862 [THEN]
863
864
865 CODE 20_US
866 BEGIN
867     BEGIN
868         BIT #1,&$3C0
869     0<> UNTIL
870     BIC #1,&$3C0
871     SUB #1,R14
872 U< UNTIL
873 MOV @R15+,R14
874 MOV @R13+,R0
875 ENDCODE
876
877 CODE TOP_LCD
878     BIS.B #4,&$243
879     BIT.B #1,&$241
880 0= IF
881     AND.B #$0F,R14
882     MOV.B R14,&$222
883     BIC.B #4,&$243
884     MOV @R15+,R14
885     MOV @R13+,R0
886 THEN
887     SUB #2,R15
888     MOV R14,0(R15)
889     BIC.B #4,&$243
890     MOV.B &$220,R14
891     AND.B #$0F,R14
892     MOV @R13+,R0
893 ENDCODE
894
895 CODE LCD_WRC
896     BIS.B #2,&$243
897 BW1 SUB #2,R15
898     MOV R14,0(R15)
899     RRUM #4,R14
900     BIC.B #1,&$243
901     BIS.B #$0F,&$224
902 COLON
903     TOP_LCD 2 20_US
904     TOP_LCD 2 20_US 
905 ;
906
907 CODE LCD_WRF
908     BIC.B #2,&$243
909     GOTO BW1
910 ENDCODE
911
912 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
913 : LCD_HOME $02 LCD_WRF 100 20_us ;
914
915
916
917 ASM WDT_INT
918 ADD #2,R1
919 BIT.B #$20,&$240
920 0= IF
921     CMP #19,&$3D6
922     U< IF
923         ADD #1,&$3D6
924     THEN
925 ELSE
926     BIT.B #$40,&$240
927     0= IF
928         CMP #3,&$3D6
929         U>= IF
930            SUB #1,&$3D6
931         THEN
932     THEN
933 THEN
934 BW1
935 MOV @R1+,R0
936 ENDASM
937
938 ASM RC5_INT
939 ADD #2,R1
940 $1806 @ 16000 = [IF]
941     MOV #1,&$3A0
942 [THEN]
943 $1806 @ 24000 = [IF]
944     MOV #2,&$3A0
945 [THEN]
946 MOV #1778,R9
947 MOV #14,R10
948 BEGIN
949 MOV #%1011100100,&$380
950     RRUM    #1,R9
951     MOV     R9,R8
952     RRUM    #1,R8
953     ADD     R9,R8
954     BEGIN   CMP R8,&$390
955     U>= UNTIL
956     BIT.B   #4,&$200
957     ADDC    R11,R11
958     MOV.B   &$200,&$208
959     BIC.B   #4,&$20C
960     SUB     #1,R10
961 0<> WHILE
962     ADD R9,R8
963     BEGIN
964         MOV &$390,R9
965         CMP R8,R9
966         U>= IF
967         BIC #$30,&$380
968         GOTO BW1
969         THEN
970         BIT.B #4,&$20C
971     0<> UNTIL
972 REPEAT
973 BIC #$30,&$380
974 RLAM    #1,R11
975 MOV.B   R11,R9
976 RRUM    #2,R9
977 BIT     #$4000,R11
978 0= IF   BIS #$40,R9
979 THEN
980 RRUM    #3,R11
981 XOR     @R1,R11
982 BIT     #$400,R11
983 0= ?GOTO BW1
984 XOR #$400,0(R1)
985 SUB #8,R15
986 MOV R14,6(R15)
987 MOV &$1DDC,4(R15)
988 MOV #$10,&$1DDC
989 MOV R9,0(R15)
990 MOV #0,R14
991 LO2HI
992     LCD_CLEAR
993     <# # #S #36 HOLD #>
994     ['] LCD_WRC IS EMIT
995     TYPE
996     ['] EMIT >BODY IS EMIT
997 HI2LO
998 MOV @R15+,&$1DDC
999 MOV @R15+,R14
1000 MOV @R1+,R0
1001 ENDASM
1002
1003 ASM BACKGROUND
1004 BEGIN
1005     CALL &$1814
1006     BIS &$180A,R2
1007 AGAIN
1008 ENDASM
1009
1010 ASM SYS_OUT
1011     MOV #WARM,R9
1012     ADD #4,R9
1013     MOV R9,R0
1014 ENDASM
1015
1016 CODE STOP
1017 BW1 MOV #$4000,R9
1018     ADD #4,R9
1019     MOV R9,-2(R9)
1020     MOV #WARM,R9
1021     MOV #SYS_OUT,2(R9)
1022     BIC.B #4,&$20A
1023     BIC.B #4,&$20C
1024     MOV #0,&$3C0
1025     MOV #0,&$340
1026     MOV #0,&$342
1027     CALL #$400E
1028 COLON
1029 ECHO
1030 ." RC5toLCD is removed,"
1031 ."  type START to restart"
1032  WARM
1033 ;
1034
1035 CODE SYS_INIT
1036 MOV #%10_1101_0100,&$3C0
1037 $1806 @ 16000 = [IF]
1038     MOV #1,&$3E0
1039 [THEN]
1040 $1806 @ 24000 = [IF]
1041     MOV #2,&$3E0
1042 [THEN]
1043     MOV #19,&$3D2
1044 MOV #%0110_0000,&$3C6
1045     MOV #10,&$3D6
1046     BIS.B #$20,&$204
1047     BIS.B #$20,&$20A
1048     BIS.B #7,&$245
1049     BIC.B #7,&$247
1050     BIS.B #$0F,&$224
1051     BIC.B #$0F,&$226
1052     BIS.B #4,&$20A
1053     BIC.B #4,&$20C
1054     MOV #RC5_INT,&$FFDE
1055 MOV #%01_0001_0100,&$340
1056     MOV ##3276,&$352
1057     MOV #%10000,&$342
1058     MOV #WDT_INT,&$FFEA
1059 BIC #1,&$130
1060 BIS.B #3,&$20D
1061 MOV &$1808,R8
1062 CMP #4,R8
1063 0= ?GOTO BW1
1064 COLON
1065     #1000 20_US
1066     %011 TOP_LCD
1067     #205 20_US
1068     %011 TOP_LCD
1069     #5 20_US
1070     %011 TOP_LCD
1071     #2 20_US
1072     %010 TOP_LCD
1073     #2 20_US
1074     %00101000 LCD_WRF
1075     %1000 LCD_WRF
1076     LCD_CLEAR
1077     %0110 LCD_WRF
1078     %1100 LCD_WRF
1079     LCD_CLEAR
1080     ['] LCD_HOME IS CR
1081     ['] LCD_WRC  IS EMIT
1082     CR ." I love you"
1083     ['] CR >BODY IS CR
1084     ['] EMIT >BODY IS EMIT
1085     ." RC5toLCD is running. Type STOP to quit"
1086     PWR_STATE ABORT
1087 ;
1088
1089 CODE START
1090 MOV #$4000,R9
1091 MOV #BACKGROUND,2(R9)
1092 MOV #WARM,R9
1093 MOV #SYS_INIT,2(R9)
1094 MOV R9,R0
1095 ENDCODE 
1096
1097 ECHO
1098             ; downloading RC5toLCD.4th is done
1099 RST_HERE    ; this app is protected against <reset>
1100
1101
1102 RST_STATE
1103
1104 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1105
1106 [UNDEFINED] MARKER [IF]
1107 : MARKER
1108 CREATE
1109 HI2LO
1110 MOV &$1DC8,0(R10)
1111 SUB #2,R8
1112 MOV R8,2(R10)
1113 ADD #4,&$1DC6
1114 LO2HI
1115 DOES>
1116 HI2LO
1117 MOV @R1+,R13
1118 MOV @R14+,&$180E
1119 MOV @R14,&$180C
1120 MOV @R15+,R14
1121 MOV #RST_STATE,R0
1122 ENDCODE
1123 [THEN]
1124
1125 MARKER {RC5TOLCD}
1126
1127 [UNDEFINED] @ [IF]
1128 CODE @
1129 MOV @R14,R14
1130 MOV @R13+,R0
1131 ENDCODE
1132 [THEN]
1133
1134 [UNDEFINED] CONSTANT [IF]
1135 : CONSTANT 
1136 CREATE
1137 HI2LO
1138 MOV R14,-2(R10)
1139 MOV @R15+,R14
1140 MOV @R1+,R13
1141 MOV @R13+,R0
1142 ENDCODE
1143 [THEN]
1144
1145 [UNDEFINED] STATE [IF]
1146 $1DBE CONSTANT STATE
1147 [THEN]
1148
1149 [UNDEFINED] = [IF]
1150 CODE =
1151 SUB @R15+,R14
1152 0<> IF
1153     AND #0,R14
1154     MOV @R13+,R0
1155 THEN
1156 XOR #-1,R14
1157 MOV @R13+,R0
1158 ENDCODE
1159 [THEN]
1160
1161 [UNDEFINED] IF [IF]
1162 CODE IF
1163 SUB #2,R15
1164 MOV R14,0(R15)
1165 MOV &$1DC6,R14
1166 ADD #4,&$1DC6
1167 MOV #$404C,0(R14)
1168 ADD #2,R14
1169 MOV @R13+,R0
1170 ENDCODE IMMEDIATE
1171 [THEN]
1172
1173 [UNDEFINED] THEN [IF]
1174 CODE THEN
1175 MOV &$1DC6,0(R14)
1176 MOV @R15+,R14
1177 MOV @R13+,R0
1178 ENDCODE IMMEDIATE
1179 [THEN]
1180
1181 [UNDEFINED] ELSE [IF]
1182 CODE ELSE
1183 ADD #4,&$1DC6
1184 MOV &$1DC6,R10
1185 MOV #$4048,-4(R10)
1186 MOV R10,0(R14)
1187 SUB #2,R10
1188 MOV R10,R14
1189 MOV @R13+,R0
1190 ENDCODE IMMEDIATE
1191 [THEN]
1192
1193 [UNDEFINED] DEFER [IF]
1194
1195 : DEFER
1196 CREATE
1197 HI2LO
1198 MOV #$4030,-4(R10)
1199 MOV #$402C,-2(R10)
1200 MOV @R1+,R13
1201 MOV @R13+,R0
1202 ENDCODE
1203 [THEN]
1204
1205 [UNDEFINED] DEFER! [IF]
1206 CODE DEFER!
1207 MOV @R15+,2(R14)
1208 MOV @R15+,R14
1209 MOV @R13+,R0
1210 ENDCODE
1211 [THEN]
1212
1213 [UNDEFINED] IS [IF]
1214 : IS
1215 STATE @
1216 IF  POSTPONE ['] POSTPONE DEFER! 
1217 ELSE ' DEFER! 
1218 THEN
1219 ; IMMEDIATE
1220 [THEN]
1221
1222 [UNDEFINED] >BODY [IF]
1223 CODE >BODY
1224 ADD #4,R14
1225 MOV @R13+,R0
1226 ENDCODE
1227 [THEN]
1228
1229
1230 CODE 20_US
1231 BEGIN
1232     BEGIN
1233         BIT #1,&$3C0
1234     0<> UNTIL
1235     BIC #1,&$3C0
1236     SUB #1,R14
1237 U< UNTIL
1238 MOV @R15+,R14
1239 MOV @R13+,R0
1240 ENDCODE
1241
1242 CODE TOP_LCD
1243     BIS.B #4,&$243
1244     BIT.B #1,&$241
1245 0= IF
1246     AND.B #$0F,R14
1247     MOV.B R14,&$222
1248     BIC.B #4,&$243
1249     MOV @R15+,R14
1250     MOV @R13+,R0
1251 THEN
1252     SUB #2,R15
1253     MOV R14,0(R15)
1254     BIC.B #4,&$243
1255     MOV.B &$220,R14
1256     AND.B #$0F,R14
1257     MOV @R13+,R0
1258 ENDCODE
1259
1260 CODE LCD_WRC
1261     BIS.B #2,&$243
1262 BW1 SUB #2,R15
1263     MOV R14,0(R15)
1264     RRUM #4,R14
1265     BIC.B #1,&$243
1266     BIS.B #$0F,&$224
1267 COLON
1268     TOP_LCD 2 20_US
1269     TOP_LCD 2 20_US 
1270 ;
1271
1272 CODE LCD_WRF
1273     BIC.B #2,&$243
1274     GOTO BW1
1275 ENDCODE
1276
1277 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
1278 : LCD_HOME $02 LCD_WRF 100 20_us ;
1279
1280
1281
1282 ASM WDT_INT
1283 ADD #2,R1
1284 BIT.B #$20,&$240
1285 0= IF
1286     CMP #19,&$3D6
1287     U< IF
1288         ADD #1,&$3D6
1289     THEN
1290 ELSE
1291     BIT.B #$40,&$240
1292     0= IF
1293         CMP #3,&$3D6
1294         U>= IF
1295            SUB #1,&$3D6
1296         THEN
1297     THEN
1298 THEN
1299 BW1
1300 MOV @R1+,R0
1301 ENDASM
1302
1303 ASM RC5_INT
1304 ADD #2,R1
1305 $1806 @ 16000 = [IF]
1306     MOV #1,&$3A0
1307 [THEN]
1308 $1806 @ 24000 = [IF]
1309     MOV #2,&$3A0
1310 [THEN]
1311 MOV #1778,R9
1312 MOV #14,R10
1313 BEGIN
1314 MOV #%1011100100,&$380
1315     RRUM    #1,R9
1316     MOV     R9,R8
1317     RRUM    #1,R8
1318     ADD     R9,R8
1319     BEGIN   CMP R8,&$390
1320     U>= UNTIL
1321     BIT.B   #4,&$200
1322     ADDC    R11,R11
1323     MOV.B   &$200,&$208
1324     BIC.B   #4,&$20C
1325     SUB     #1,R10
1326 0<> WHILE
1327     ADD R9,R8
1328     BEGIN
1329         MOV &$390,R9
1330         CMP R8,R9
1331         U>= IF
1332         BIC #$30,&$380
1333         GOTO BW1
1334         THEN
1335         BIT.B #4,&$20C
1336     0<> UNTIL
1337 REPEAT
1338 BIC #$30,&$380
1339 RLAM    #1,R11
1340 MOV.B   R11,R9
1341 RRUM    #2,R9
1342 BIT     #$4000,R11
1343 0= IF   BIS #$40,R9
1344 THEN
1345 RRUM    #3,R11
1346 XOR     @R1,R11
1347 BIT     #$400,R11
1348 0= ?GOTO BW1
1349 XOR #$400,0(R1)
1350 SUB #8,R15
1351 MOV R14,6(R15)
1352 MOV &$1DDC,4(R15)
1353 MOV #$10,&$1DDC
1354 MOV R9,0(R15)
1355 MOV #0,R14
1356 LO2HI
1357     LCD_CLEAR
1358     <# # #S #36 HOLD #>
1359     ['] LCD_WRC IS EMIT
1360     TYPE
1361     ['] EMIT >BODY IS EMIT
1362 HI2LO
1363 MOV @R15+,&$1DDC
1364 MOV @R15+,R14
1365 MOV @R1+,R0
1366 ENDASM
1367
1368 ASM BACKGROUND
1369 BEGIN
1370     CALL &$1814
1371     BIS &$180A,R2
1372 AGAIN
1373 ENDASM
1374
1375 ASM SYS_OUT
1376     MOV #WARM,R9
1377     ADD #4,R9
1378     MOV R9,R0
1379 ENDASM
1380
1381 CODE STOP
1382 BW1 MOV #$4000,R9
1383     ADD #4,R9
1384     MOV R9,-2(R9)
1385     MOV #WARM,R9
1386     MOV #SYS_OUT,2(R9)
1387     BIC.B #4,&$20A
1388     BIC.B #4,&$20C
1389     MOV #0,&$3C0
1390     MOV #0,&$340
1391     MOV #0,&$342
1392     CALL #$400E
1393 COLON
1394 ECHO
1395 ." RC5toLCD is removed,"
1396 ."  type START to restart"
1397  WARM
1398 ;
1399
1400 CODE SYS_INIT
1401 MOV #%10_1101_0100,&$3C0
1402 $1806 @ 16000 = [IF]
1403     MOV #1,&$3E0
1404 [THEN]
1405 $1806 @ 24000 = [IF]
1406     MOV #2,&$3E0
1407 [THEN]
1408     MOV #19,&$3D2
1409 MOV #%0110_0000,&$3C6
1410     MOV #10,&$3D6
1411     BIS.B #$20,&$204
1412     BIS.B #$20,&$20A
1413     BIS.B #7,&$245
1414     BIC.B #7,&$247
1415     BIS.B #$0F,&$224
1416     BIC.B #$0F,&$226
1417     BIS.B #4,&$20A
1418     BIC.B #4,&$20C
1419     MOV #RC5_INT,&$FFDE
1420 MOV #%01_0001_0100,&$340
1421     MOV ##3276,&$352
1422     MOV #%10000,&$342
1423     MOV #WDT_INT,&$FFEA
1424 BIC #1,&$130
1425 BIS.B #3,&$20D
1426 MOV &$1808,R8
1427 CMP #4,R8
1428 0= ?GOTO BW1
1429 COLON
1430     #1000 20_US
1431     %011 TOP_LCD
1432     #205 20_US
1433     %011 TOP_LCD
1434     #5 20_US
1435     %011 TOP_LCD
1436     #2 20_US
1437     %010 TOP_LCD
1438     #2 20_US
1439     %00101000 LCD_WRF
1440     %1000 LCD_WRF
1441     LCD_CLEAR
1442     %0110 LCD_WRF
1443     %1100 LCD_WRF
1444     LCD_CLEAR
1445     ['] LCD_HOME IS CR
1446     ['] LCD_WRC  IS EMIT
1447     CR ." I love you"
1448     ['] CR >BODY IS CR
1449     ['] EMIT >BODY IS EMIT
1450     ." RC5toLCD is running. Type STOP to quit"
1451     PWR_STATE ABORT
1452 ;
1453
1454 CODE START
1455 MOV #$4000,R9
1456 MOV #BACKGROUND,2(R9)
1457 MOV #WARM,R9
1458 MOV #SYS_INIT,2(R9)
1459 MOV R9,R0
1460 ENDCODE 
1461
1462 ECHO
1463             ; downloading RC5toLCD.4th is done
1464 RST_HERE    ; this app is protected against <reset>
1465
1466
1467 RST_STATE
1468
1469 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1470
1471 [UNDEFINED] MARKER [IF]
1472 : MARKER
1473 CREATE
1474 HI2LO
1475 MOV &$1DC8,0(R10)
1476 SUB #2,R8
1477 MOV R8,2(R10)
1478 ADD #4,&$1DC6
1479 LO2HI
1480 DOES>
1481 HI2LO
1482 MOV @R1+,R13
1483 MOV @R14+,&$180E
1484 MOV @R14,&$180C
1485 MOV @R15+,R14
1486 MOV #RST_STATE,R0
1487 ENDCODE
1488 [THEN]
1489
1490 MARKER {RC5TOLCD}
1491
1492 [UNDEFINED] @ [IF]
1493 CODE @
1494 MOV @R14,R14
1495 MOV @R13+,R0
1496 ENDCODE
1497 [THEN]
1498
1499 [UNDEFINED] CONSTANT [IF]
1500 : CONSTANT 
1501 CREATE
1502 HI2LO
1503 MOV R14,-2(R10)
1504 MOV @R15+,R14
1505 MOV @R1+,R13
1506 MOV @R13+,R0
1507 ENDCODE
1508 [THEN]
1509
1510 [UNDEFINED] STATE [IF]
1511 $1DBE CONSTANT STATE
1512 [THEN]
1513
1514 [UNDEFINED] = [IF]
1515 CODE =
1516 SUB @R15+,R14
1517 0<> IF
1518     AND #0,R14
1519     MOV @R13+,R0
1520 THEN
1521 XOR #-1,R14
1522 MOV @R13+,R0
1523 ENDCODE
1524 [THEN]
1525
1526 [UNDEFINED] IF [IF]
1527 CODE IF
1528 SUB #2,R15
1529 MOV R14,0(R15)
1530 MOV &$1DC6,R14
1531 ADD #4,&$1DC6
1532 MOV #$404C,0(R14)
1533 ADD #2,R14
1534 MOV @R13+,R0
1535 ENDCODE IMMEDIATE
1536 [THEN]
1537
1538 [UNDEFINED] THEN [IF]
1539 CODE THEN
1540 MOV &$1DC6,0(R14)
1541 MOV @R15+,R14
1542 MOV @R13+,R0
1543 ENDCODE IMMEDIATE
1544 [THEN]
1545
1546 [UNDEFINED] ELSE [IF]
1547 CODE ELSE
1548 ADD #4,&$1DC6
1549 MOV &$1DC6,R10
1550 MOV #$4048,-4(R10)
1551 MOV R10,0(R14)
1552 SUB #2,R10
1553 MOV R10,R14
1554 MOV @R13+,R0
1555 ENDCODE IMMEDIATE
1556 [THEN]
1557
1558 [UNDEFINED] DEFER [IF]
1559
1560 : DEFER
1561 CREATE
1562 HI2LO
1563 MOV #$4030,-4(R10)
1564 MOV #$402C,-2(R10)
1565 MOV @R1+,R13
1566 MOV @R13+,R0
1567 ENDCODE
1568 [THEN]
1569
1570 [UNDEFINED] DEFER! [IF]
1571 CODE DEFER!
1572 MOV @R15+,2(R14)
1573 MOV @R15+,R14
1574 MOV @R13+,R0
1575 ENDCODE
1576 [THEN]
1577
1578 [UNDEFINED] IS [IF]
1579 : IS
1580 STATE @
1581 IF  POSTPONE ['] POSTPONE DEFER! 
1582 ELSE ' DEFER! 
1583 THEN
1584 ; IMMEDIATE
1585 [THEN]
1586
1587 [UNDEFINED] >BODY [IF]
1588 CODE >BODY
1589 ADD #4,R14
1590 MOV @R13+,R0
1591 ENDCODE
1592 [THEN]
1593
1594
1595 CODE 20_US
1596 BEGIN
1597     BEGIN
1598         BIT #1,&$3C0
1599     0<> UNTIL
1600     BIC #1,&$3C0
1601     SUB #1,R14
1602 U< UNTIL
1603 MOV @R15+,R14
1604 MOV @R13+,R0
1605 ENDCODE
1606
1607 CODE TOP_LCD
1608     BIS.B #4,&$243
1609     BIT.B #1,&$241
1610 0= IF
1611     AND.B #$0F,R14
1612     MOV.B R14,&$222
1613     BIC.B #4,&$243
1614     MOV @R15+,R14
1615     MOV @R13+,R0
1616 THEN
1617     SUB #2,R15
1618     MOV R14,0(R15)
1619     BIC.B #4,&$243
1620     MOV.B &$220,R14
1621     AND.B #$0F,R14
1622     MOV @R13+,R0
1623 ENDCODE
1624
1625 CODE LCD_WRC
1626     BIS.B #2,&$243
1627 BW1 SUB #2,R15
1628     MOV R14,0(R15)
1629     RRUM #4,R14
1630     BIC.B #1,&$243
1631     BIS.B #$0F,&$224
1632 COLON
1633     TOP_LCD 2 20_US
1634     TOP_LCD 2 20_US 
1635 ;
1636
1637 CODE LCD_WRF
1638     BIC.B #2,&$243
1639     GOTO BW1
1640 ENDCODE
1641
1642 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
1643 : LCD_HOME $02 LCD_WRF 100 20_us ;
1644
1645
1646
1647 ASM WDT_INT
1648 ADD #2,R1
1649 BIT.B #$20,&$240
1650 0= IF
1651     CMP #19,&$3D6
1652     U< IF
1653         ADD #1,&$3D6
1654     THEN
1655 ELSE
1656     BIT.B #$40,&$240
1657     0= IF
1658         CMP #3,&$3D6
1659         U>= IF
1660            SUB #1,&$3D6
1661         THEN
1662     THEN
1663 THEN
1664 BW1
1665 MOV @R1+,R0
1666 ENDASM
1667
1668 ASM RC5_INT
1669 ADD #2,R1
1670 $1806 @ 16000 = [IF]
1671     MOV #1,&$3A0
1672 [THEN]
1673 $1806 @ 24000 = [IF]
1674     MOV #2,&$3A0
1675 [THEN]
1676 MOV #1778,R9
1677 MOV #14,R10
1678 BEGIN
1679 MOV #%1011100100,&$380
1680     RRUM    #1,R9
1681     MOV     R9,R8
1682     RRUM    #1,R8
1683     ADD     R9,R8
1684     BEGIN   CMP R8,&$390
1685     U>= UNTIL
1686     BIT.B   #4,&$200
1687     ADDC    R11,R11
1688     MOV.B   &$200,&$208
1689     BIC.B   #4,&$20C
1690     SUB     #1,R10
1691 0<> WHILE
1692     ADD R9,R8
1693     BEGIN
1694         MOV &$390,R9
1695         CMP R8,R9
1696         U>= IF
1697         BIC #$30,&$380
1698         GOTO BW1
1699         THEN
1700         BIT.B #4,&$20C
1701     0<> UNTIL
1702 REPEAT
1703 BIC #$30,&$380
1704 RLAM    #1,R11
1705 MOV.B   R11,R9
1706 RRUM    #2,R9
1707 BIT     #$4000,R11
1708 0= IF   BIS #$40,R9
1709 THEN
1710 RRUM    #3,R11
1711 XOR     @R1,R11
1712 BIT     #$400,R11
1713 0= ?GOTO BW1
1714 XOR #$400,0(R1)
1715 SUB #8,R15
1716 MOV R14,6(R15)
1717 MOV &$1DDC,4(R15)
1718 MOV #$10,&$1DDC
1719 MOV R9,0(R15)
1720 MOV #0,R14
1721 LO2HI
1722     LCD_CLEAR
1723     <# # #S #36 HOLD #>
1724     ['] LCD_WRC IS EMIT
1725     TYPE
1726     ['] EMIT >BODY IS EMIT
1727 HI2LO
1728 MOV @R15+,&$1DDC
1729 MOV @R15+,R14
1730 MOV @R1+,R0
1731 ENDASM
1732
1733 ASM BACKGROUND
1734 BEGIN
1735     CALL &$1814
1736     BIS &$180A,R2
1737 AGAIN
1738 ENDASM
1739
1740 ASM SYS_OUT
1741     MOV #WARM,R9
1742     ADD #4,R9
1743     MOV R9,R0
1744 ENDASM
1745
1746 CODE STOP
1747 BW1 MOV #$4000,R9
1748     ADD #4,R9
1749     MOV R9,-2(R9)
1750     MOV #WARM,R9
1751     MOV #SYS_OUT,2(R9)
1752     BIC.B #4,&$20A
1753     BIC.B #4,&$20C
1754     MOV #0,&$3C0
1755     MOV #0,&$340
1756     MOV #0,&$342
1757     CALL #$400E
1758 COLON
1759 ECHO
1760 ." RC5toLCD is removed,"
1761 ."  type START to restart"
1762  WARM
1763 ;
1764
1765 CODE SYS_INIT
1766 MOV #%10_1101_0100,&$3C0
1767 $1806 @ 16000 = [IF]
1768     MOV #1,&$3E0
1769 [THEN]
1770 $1806 @ 24000 = [IF]
1771     MOV #2,&$3E0
1772 [THEN]
1773     MOV #19,&$3D2
1774 MOV #%0110_0000,&$3C6
1775     MOV #10,&$3D6
1776     BIS.B #$20,&$204
1777     BIS.B #$20,&$20A
1778     BIS.B #7,&$245
1779     BIC.B #7,&$247
1780     BIS.B #$0F,&$224
1781     BIC.B #$0F,&$226
1782     BIS.B #4,&$20A
1783     BIC.B #4,&$20C
1784     MOV #RC5_INT,&$FFDE
1785 MOV #%01_0001_0100,&$340
1786     MOV ##3276,&$352
1787     MOV #%10000,&$342
1788     MOV #WDT_INT,&$FFEA
1789 BIC #1,&$130
1790 BIS.B #3,&$20D
1791 MOV &$1808,R8
1792 CMP #4,R8
1793 0= ?GOTO BW1
1794 COLON
1795     #1000 20_US
1796     %011 TOP_LCD
1797     #205 20_US
1798     %011 TOP_LCD
1799     #5 20_US
1800     %011 TOP_LCD
1801     #2 20_US
1802     %010 TOP_LCD
1803     #2 20_US
1804     %00101000 LCD_WRF
1805     %1000 LCD_WRF
1806     LCD_CLEAR
1807     %0110 LCD_WRF
1808     %1100 LCD_WRF
1809     LCD_CLEAR
1810     ['] LCD_HOME IS CR
1811     ['] LCD_WRC  IS EMIT
1812     CR ." I love you"
1813     ['] CR >BODY IS CR
1814     ['] EMIT >BODY IS EMIT
1815     ." RC5toLCD is running. Type STOP to quit"
1816     PWR_STATE ABORT
1817 ;
1818
1819 CODE START
1820 MOV #$4000,R9
1821 MOV #BACKGROUND,2(R9)
1822 MOV #WARM,R9
1823 MOV #SYS_INIT,2(R9)
1824 MOV R9,R0
1825 ENDCODE 
1826
1827 ECHO
1828             ; downloading RC5toLCD.4th is done
1829 RST_HERE    ; this app is protected against <reset>
1830
1831
1832 RST_STATE
1833
1834 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1835
1836 [UNDEFINED] MARKER [IF]
1837 : MARKER
1838 CREATE
1839 HI2LO
1840 MOV &$1DC8,0(R10)
1841 SUB #2,R8
1842 MOV R8,2(R10)
1843 ADD #4,&$1DC6
1844 LO2HI
1845 DOES>
1846 HI2LO
1847 MOV @R1+,R13
1848 MOV @R14+,&$180E
1849 MOV @R14,&$180C
1850 MOV @R15+,R14
1851 MOV #RST_STATE,R0
1852 ENDCODE
1853 [THEN]
1854
1855 MARKER {RC5TOLCD}
1856
1857 [UNDEFINED] @ [IF]
1858 CODE @
1859 MOV @R14,R14
1860 MOV @R13+,R0
1861 ENDCODE
1862 [THEN]
1863
1864 [UNDEFINED] CONSTANT [IF]
1865 : CONSTANT 
1866 CREATE
1867 HI2LO
1868 MOV R14,-2(R10)
1869 MOV @R15+,R14
1870 MOV @R1+,R13
1871 MOV @R13+,R0
1872 ENDCODE
1873 [THEN]
1874
1875 [UNDEFINED] STATE [IF]
1876 $1DBE CONSTANT STATE
1877 [THEN]
1878
1879 [UNDEFINED] = [IF]
1880 CODE =
1881 SUB @R15+,R14
1882 0<> IF
1883     AND #0,R14
1884     MOV @R13+,R0
1885 THEN
1886 XOR #-1,R14
1887 MOV @R13+,R0
1888 ENDCODE
1889 [THEN]
1890
1891 [UNDEFINED] IF [IF]
1892 CODE IF
1893 SUB #2,R15
1894 MOV R14,0(R15)
1895 MOV &$1DC6,R14
1896 ADD #4,&$1DC6
1897 MOV #$404C,0(R14)
1898 ADD #2,R14
1899 MOV @R13+,R0
1900 ENDCODE IMMEDIATE
1901 [THEN]
1902
1903 [UNDEFINED] THEN [IF]
1904 CODE THEN
1905 MOV &$1DC6,0(R14)
1906 MOV @R15+,R14
1907 MOV @R13+,R0
1908 ENDCODE IMMEDIATE
1909 [THEN]
1910
1911 [UNDEFINED] ELSE [IF]
1912 CODE ELSE
1913 ADD #4,&$1DC6
1914 MOV &$1DC6,R10
1915 MOV #$4048,-4(R10)
1916 MOV R10,0(R14)
1917 SUB #2,R10
1918 MOV R10,R14
1919 MOV @R13+,R0
1920 ENDCODE IMMEDIATE
1921 [THEN]
1922
1923 [UNDEFINED] DEFER [IF]
1924
1925 : DEFER
1926 CREATE
1927 HI2LO
1928 MOV #$4030,-4(R10)
1929 MOV #$402C,-2(R10)
1930 MOV @R1+,R13
1931 MOV @R13+,R0
1932 ENDCODE
1933 [THEN]
1934
1935 [UNDEFINED] DEFER! [IF]
1936 CODE DEFER!
1937 MOV @R15+,2(R14)
1938 MOV @R15+,R14
1939 MOV @R13+,R0
1940 ENDCODE
1941 [THEN]
1942
1943 [UNDEFINED] IS [IF]
1944 : IS
1945 STATE @
1946 IF  POSTPONE ['] POSTPONE DEFER! 
1947 ELSE ' DEFER! 
1948 THEN
1949 ; IMMEDIATE
1950 [THEN]
1951
1952 [UNDEFINED] >BODY [IF]
1953 CODE >BODY
1954 ADD #4,R14
1955 MOV @R13+,R0
1956 ENDCODE
1957 [THEN]
1958
1959
1960 CODE 20_US
1961 BEGIN
1962     BEGIN
1963         BIT #1,&$3C0
1964     0<> UNTIL
1965     BIC #1,&$3C0
1966     SUB #1,R14
1967 U< UNTIL
1968 MOV @R15+,R14
1969 MOV @R13+,R0
1970 ENDCODE
1971
1972 CODE TOP_LCD
1973     BIS.B #4,&$243
1974     BIT.B #1,&$241
1975 0= IF
1976     AND.B #$0F,R14
1977     MOV.B R14,&$222
1978     BIC.B #4,&$243
1979     MOV @R15+,R14
1980     MOV @R13+,R0
1981 THEN
1982     SUB #2,R15
1983     MOV R14,0(R15)
1984     BIC.B #4,&$243
1985     MOV.B &$220,R14
1986     AND.B #$0F,R14
1987     MOV @R13+,R0
1988 ENDCODE
1989
1990 CODE LCD_WRC
1991     BIS.B #2,&$243
1992 BW1 SUB #2,R15
1993     MOV R14,0(R15)
1994     RRUM #4,R14
1995     BIC.B #1,&$243
1996     BIS.B #$0F,&$224
1997 COLON
1998     TOP_LCD 2 20_US
1999     TOP_LCD 2 20_US 
2000 ;
2001
2002 CODE LCD_WRF
2003     BIC.B #2,&$243
2004     GOTO BW1
2005 ENDCODE
2006
2007 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2008 : LCD_HOME $02 LCD_WRF 100 20_us ;
2009
2010
2011
2012 ASM WDT_INT
2013 ADD #2,R1
2014 BIT.B #$20,&$240
2015 0= IF
2016     CMP #19,&$3D6
2017     U< IF
2018         ADD #1,&$3D6
2019     THEN
2020 ELSE
2021     BIT.B #$40,&$240
2022     0= IF
2023         CMP #3,&$3D6
2024         U>= IF
2025            SUB #1,&$3D6
2026         THEN
2027     THEN
2028 THEN
2029 BW1
2030 MOV @R1+,R0
2031 ENDASM
2032
2033 ASM RC5_INT
2034 ADD #2,R1
2035 $1806 @ 16000 = [IF]
2036     MOV #1,&$3A0
2037 [THEN]
2038 $1806 @ 24000 = [IF]
2039     MOV #2,&$3A0
2040 [THEN]
2041 MOV #1778,R9
2042 MOV #14,R10
2043 BEGIN
2044 MOV #%1011100100,&$380
2045     RRUM    #1,R9
2046     MOV     R9,R8
2047     RRUM    #1,R8
2048     ADD     R9,R8
2049     BEGIN   CMP R8,&$390
2050     U>= UNTIL
2051     BIT.B   #4,&$200
2052     ADDC    R11,R11
2053     MOV.B   &$200,&$208
2054     BIC.B   #4,&$20C
2055     SUB     #1,R10
2056 0<> WHILE
2057     ADD R9,R8
2058     BEGIN
2059         MOV &$390,R9
2060         CMP R8,R9
2061         U>= IF
2062         BIC #$30,&$380
2063         GOTO BW1
2064         THEN
2065         BIT.B #4,&$20C
2066     0<> UNTIL
2067 REPEAT
2068 BIC #$30,&$380
2069 RLAM    #1,R11
2070 MOV.B   R11,R9
2071 RRUM    #2,R9
2072 BIT     #$4000,R11
2073 0= IF   BIS #$40,R9
2074 THEN
2075 RRUM    #3,R11
2076 XOR     @R1,R11
2077 BIT     #$400,R11
2078 0= ?GOTO BW1
2079 XOR #$400,0(R1)
2080 SUB #8,R15
2081 MOV R14,6(R15)
2082 MOV &$1DDC,4(R15)
2083 MOV #$10,&$1DDC
2084 MOV R9,0(R15)
2085 MOV #0,R14
2086 LO2HI
2087     LCD_CLEAR
2088     <# # #S #36 HOLD #>
2089     ['] LCD_WRC IS EMIT
2090     TYPE
2091     ['] EMIT >BODY IS EMIT
2092 HI2LO
2093 MOV @R15+,&$1DDC
2094 MOV @R15+,R14
2095 MOV @R1+,R0
2096 ENDASM
2097
2098 ASM BACKGROUND
2099 BEGIN
2100     CALL &$1814
2101     BIS &$180A,R2
2102 AGAIN
2103 ENDASM
2104
2105 ASM SYS_OUT
2106     MOV #WARM,R9
2107     ADD #4,R9
2108     MOV R9,R0
2109 ENDASM
2110
2111 CODE STOP
2112 BW1 MOV #$4000,R9
2113     ADD #4,R9
2114     MOV R9,-2(R9)
2115     MOV #WARM,R9
2116     MOV #SYS_OUT,2(R9)
2117     BIC.B #4,&$20A
2118     BIC.B #4,&$20C
2119     MOV #0,&$3C0
2120     MOV #0,&$340
2121     MOV #0,&$342
2122     CALL #$400E
2123 COLON
2124 ECHO
2125 ." RC5toLCD is removed,"
2126 ."  type START to restart"
2127  WARM
2128 ;
2129
2130 CODE SYS_INIT
2131 MOV #%10_1101_0100,&$3C0
2132 $1806 @ 16000 = [IF]
2133     MOV #1,&$3E0
2134 [THEN]
2135 $1806 @ 24000 = [IF]
2136     MOV #2,&$3E0
2137 [THEN]
2138     MOV #19,&$3D2
2139 MOV #%0110_0000,&$3C6
2140     MOV #10,&$3D6
2141     BIS.B #$20,&$204
2142     BIS.B #$20,&$20A
2143     BIS.B #7,&$245
2144     BIC.B #7,&$247
2145     BIS.B #$0F,&$224
2146     BIC.B #$0F,&$226
2147     BIS.B #4,&$20A
2148     BIC.B #4,&$20C
2149     MOV #RC5_INT,&$FFDE
2150 MOV #%01_0001_0100,&$340
2151     MOV ##3276,&$352
2152     MOV #%10000,&$342
2153     MOV #WDT_INT,&$FFEA
2154 BIC #1,&$130
2155 BIS.B #3,&$20D
2156 MOV &$1808,R8
2157 CMP #4,R8
2158 0= ?GOTO BW1
2159 COLON
2160     #1000 20_US
2161     %011 TOP_LCD
2162     #205 20_US
2163     %011 TOP_LCD
2164     #5 20_US
2165     %011 TOP_LCD
2166     #2 20_US
2167     %010 TOP_LCD
2168     #2 20_US
2169     %00101000 LCD_WRF
2170     %1000 LCD_WRF
2171     LCD_CLEAR
2172     %0110 LCD_WRF
2173     %1100 LCD_WRF
2174     LCD_CLEAR
2175     ['] LCD_HOME IS CR
2176     ['] LCD_WRC  IS EMIT
2177     CR ." I love you"
2178     ['] CR >BODY IS CR
2179     ['] EMIT >BODY IS EMIT
2180     ." RC5toLCD is running. Type STOP to quit"
2181     PWR_STATE ABORT
2182 ;
2183
2184 CODE START
2185 MOV #$4000,R9
2186 MOV #BACKGROUND,2(R9)
2187 MOV #WARM,R9
2188 MOV #SYS_INIT,2(R9)
2189 MOV R9,R0
2190 ENDCODE 
2191
2192 ECHO
2193             ; downloading RC5toLCD.4th is done
2194 RST_HERE    ; this app is protected against <reset>
2195
2196
2197 RST_STATE
2198
2199 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2200
2201 [UNDEFINED] MARKER [IF]
2202 : MARKER
2203 CREATE
2204 HI2LO
2205 MOV &$1DC8,0(R10)
2206 SUB #2,R8
2207 MOV R8,2(R10)
2208 ADD #4,&$1DC6
2209 LO2HI
2210 DOES>
2211 HI2LO
2212 MOV @R1+,R13
2213 MOV @R14+,&$180E
2214 MOV @R14,&$180C
2215 MOV @R15+,R14
2216 MOV #RST_STATE,R0
2217 ENDCODE
2218 [THEN]
2219
2220 MARKER {RC5TOLCD}
2221
2222 [UNDEFINED] @ [IF]
2223 CODE @
2224 MOV @R14,R14
2225 MOV @R13+,R0
2226 ENDCODE
2227 [THEN]
2228
2229 [UNDEFINED] CONSTANT [IF]
2230 : CONSTANT 
2231 CREATE
2232 HI2LO
2233 MOV R14,-2(R10)
2234 MOV @R15+,R14
2235 MOV @R1+,R13
2236 MOV @R13+,R0
2237 ENDCODE
2238 [THEN]
2239
2240 [UNDEFINED] STATE [IF]
2241 $1DBE CONSTANT STATE
2242 [THEN]
2243
2244 [UNDEFINED] = [IF]
2245 CODE =
2246 SUB @R15+,R14
2247 0<> IF
2248     AND #0,R14
2249     MOV @R13+,R0
2250 THEN
2251 XOR #-1,R14
2252 MOV @R13+,R0
2253 ENDCODE
2254 [THEN]
2255
2256 [UNDEFINED] IF [IF]
2257 CODE IF
2258 SUB #2,R15
2259 MOV R14,0(R15)
2260 MOV &$1DC6,R14
2261 ADD #4,&$1DC6
2262 MOV #$404C,0(R14)
2263 ADD #2,R14
2264 MOV @R13+,R0
2265 ENDCODE IMMEDIATE
2266 [THEN]
2267
2268 [UNDEFINED] THEN [IF]
2269 CODE THEN
2270 MOV &$1DC6,0(R14)
2271 MOV @R15+,R14
2272 MOV @R13+,R0
2273 ENDCODE IMMEDIATE
2274 [THEN]
2275
2276 [UNDEFINED] ELSE [IF]
2277 CODE ELSE
2278 ADD #4,&$1DC6
2279 MOV &$1DC6,R10
2280 MOV #$4048,-4(R10)
2281 MOV R10,0(R14)
2282 SUB #2,R10
2283 MOV R10,R14
2284 MOV @R13+,R0
2285 ENDCODE IMMEDIATE
2286 [THEN]
2287
2288 [UNDEFINED] DEFER [IF]
2289
2290 : DEFER
2291 CREATE
2292 HI2LO
2293 MOV #$4030,-4(R10)
2294 MOV #$402C,-2(R10)
2295 MOV @R1+,R13
2296 MOV @R13+,R0
2297 ENDCODE
2298 [THEN]
2299
2300 [UNDEFINED] DEFER! [IF]
2301 CODE DEFER!
2302 MOV @R15+,2(R14)
2303 MOV @R15+,R14
2304 MOV @R13+,R0
2305 ENDCODE
2306 [THEN]
2307
2308 [UNDEFINED] IS [IF]
2309 : IS
2310 STATE @
2311 IF  POSTPONE ['] POSTPONE DEFER! 
2312 ELSE ' DEFER! 
2313 THEN
2314 ; IMMEDIATE
2315 [THEN]
2316
2317 [UNDEFINED] >BODY [IF]
2318 CODE >BODY
2319 ADD #4,R14
2320 MOV @R13+,R0
2321 ENDCODE
2322 [THEN]
2323
2324
2325 CODE 20_US
2326 BEGIN
2327     BEGIN
2328         BIT #1,&$3C0
2329     0<> UNTIL
2330     BIC #1,&$3C0
2331     SUB #1,R14
2332 U< UNTIL
2333 MOV @R15+,R14
2334 MOV @R13+,R0
2335 ENDCODE
2336
2337 CODE TOP_LCD
2338     BIS.B #4,&$243
2339     BIT.B #1,&$241
2340 0= IF
2341     AND.B #$0F,R14
2342     MOV.B R14,&$222
2343     BIC.B #4,&$243
2344     MOV @R15+,R14
2345     MOV @R13+,R0
2346 THEN
2347     SUB #2,R15
2348     MOV R14,0(R15)
2349     BIC.B #4,&$243
2350     MOV.B &$220,R14
2351     AND.B #$0F,R14
2352     MOV @R13+,R0
2353 ENDCODE
2354
2355 CODE LCD_WRC
2356     BIS.B #2,&$243
2357 BW1 SUB #2,R15
2358     MOV R14,0(R15)
2359     RRUM #4,R14
2360     BIC.B #1,&$243
2361     BIS.B #$0F,&$224
2362 COLON
2363     TOP_LCD 2 20_US
2364     TOP_LCD 2 20_US 
2365 ;
2366
2367 CODE LCD_WRF
2368     BIC.B #2,&$243
2369     GOTO BW1
2370 ENDCODE
2371
2372 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2373 : LCD_HOME $02 LCD_WRF 100 20_us ;
2374
2375
2376
2377 ASM WDT_INT
2378 ADD #2,R1
2379 BIT.B #$20,&$240
2380 0= IF
2381     CMP #19,&$3D6
2382     U< IF
2383         ADD #1,&$3D6
2384     THEN
2385 ELSE
2386     BIT.B #$40,&$240
2387     0= IF
2388         CMP #3,&$3D6
2389         U>= IF
2390            SUB #1,&$3D6
2391         THEN
2392     THEN
2393 THEN
2394 BW1
2395 MOV @R1+,R0
2396 ENDASM
2397
2398 ASM RC5_INT
2399 ADD #2,R1
2400 $1806 @ 16000 = [IF]
2401     MOV #1,&$3A0
2402 [THEN]
2403 $1806 @ 24000 = [IF]
2404     MOV #2,&$3A0
2405 [THEN]
2406 MOV #1778,R9
2407 MOV #14,R10
2408 BEGIN
2409 MOV #%1011100100,&$380
2410     RRUM    #1,R9
2411     MOV     R9,R8
2412     RRUM    #1,R8
2413     ADD     R9,R8
2414     BEGIN   CMP R8,&$390
2415     U>= UNTIL
2416     BIT.B   #4,&$200
2417     ADDC    R11,R11
2418     MOV.B   &$200,&$208
2419     BIC.B   #4,&$20C
2420     SUB     #1,R10
2421 0<> WHILE
2422     ADD R9,R8
2423     BEGIN
2424         MOV &$390,R9
2425         CMP R8,R9
2426         U>= IF
2427         BIC #$30,&$380
2428         GOTO BW1
2429         THEN
2430         BIT.B #4,&$20C
2431     0<> UNTIL
2432 REPEAT
2433 BIC #$30,&$380
2434 RLAM    #1,R11
2435 MOV.B   R11,R9
2436 RRUM    #2,R9
2437 BIT     #$4000,R11
2438 0= IF   BIS #$40,R9
2439 THEN
2440 RRUM    #3,R11
2441 XOR     @R1,R11
2442 BIT     #$400,R11
2443 0= ?GOTO BW1
2444 XOR #$400,0(R1)
2445 SUB #8,R15
2446 MOV R14,6(R15)
2447 MOV &$1DDC,4(R15)
2448 MOV #$10,&$1DDC
2449 MOV R9,0(R15)
2450 MOV #0,R14
2451 LO2HI
2452     LCD_CLEAR
2453     <# # #S #36 HOLD #>
2454     ['] LCD_WRC IS EMIT
2455     TYPE
2456     ['] EMIT >BODY IS EMIT
2457 HI2LO
2458 MOV @R15+,&$1DDC
2459 MOV @R15+,R14
2460 MOV @R1+,R0
2461 ENDASM
2462
2463 ASM BACKGROUND
2464 BEGIN
2465     CALL &$1814
2466     BIS &$180A,R2
2467 AGAIN
2468 ENDASM
2469
2470 ASM SYS_OUT
2471     MOV #WARM,R9
2472     ADD #4,R9
2473     MOV R9,R0
2474 ENDASM
2475
2476 CODE STOP
2477 BW1 MOV #$4000,R9
2478     ADD #4,R9
2479     MOV R9,-2(R9)
2480     MOV #WARM,R9
2481     MOV #SYS_OUT,2(R9)
2482     BIC.B #4,&$20A
2483     BIC.B #4,&$20C
2484     MOV #0,&$3C0
2485     MOV #0,&$340
2486     MOV #0,&$342
2487     CALL #$400E
2488 COLON
2489 ECHO
2490 ." RC5toLCD is removed,"
2491 ."  type START to restart"
2492  WARM
2493 ;
2494
2495 CODE SYS_INIT
2496 MOV #%10_1101_0100,&$3C0
2497 $1806 @ 16000 = [IF]
2498     MOV #1,&$3E0
2499 [THEN]
2500 $1806 @ 24000 = [IF]
2501     MOV #2,&$3E0
2502 [THEN]
2503     MOV #19,&$3D2
2504 MOV #%0110_0000,&$3C6
2505     MOV #10,&$3D6
2506     BIS.B #$20,&$204
2507     BIS.B #$20,&$20A
2508     BIS.B #7,&$245
2509     BIC.B #7,&$247
2510     BIS.B #$0F,&$224
2511     BIC.B #$0F,&$226
2512     BIS.B #4,&$20A
2513     BIC.B #4,&$20C
2514     MOV #RC5_INT,&$FFDE
2515 MOV #%01_0001_0100,&$340
2516     MOV ##3276,&$352
2517     MOV #%10000,&$342
2518     MOV #WDT_INT,&$FFEA
2519 BIC #1,&$130
2520 BIS.B #3,&$20D
2521 MOV &$1808,R8
2522 CMP #4,R8
2523 0= ?GOTO BW1
2524 COLON
2525     #1000 20_US
2526     %011 TOP_LCD
2527     #205 20_US
2528     %011 TOP_LCD
2529     #5 20_US
2530     %011 TOP_LCD
2531     #2 20_US
2532     %010 TOP_LCD
2533     #2 20_US
2534     %00101000 LCD_WRF
2535     %1000 LCD_WRF
2536     LCD_CLEAR
2537     %0110 LCD_WRF
2538     %1100 LCD_WRF
2539     LCD_CLEAR
2540     ['] LCD_HOME IS CR
2541     ['] LCD_WRC  IS EMIT
2542     CR ." I love you"
2543     ['] CR >BODY IS CR
2544     ['] EMIT >BODY IS EMIT
2545     ." RC5toLCD is running. Type STOP to quit"
2546     PWR_STATE ABORT
2547 ;
2548
2549 CODE START
2550 MOV #$4000,R9
2551 MOV #BACKGROUND,2(R9)
2552 MOV #WARM,R9
2553 MOV #SYS_INIT,2(R9)
2554 MOV R9,R0
2555 ENDCODE 
2556
2557 ECHO
2558             ; downloading RC5toLCD.4th is done
2559 RST_HERE    ; this app is protected against <reset>
2560
2561
2562 RST_STATE
2563
2564 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2565
2566 [UNDEFINED] MARKER [IF]
2567 : MARKER
2568 CREATE
2569 HI2LO
2570 MOV &$1DC8,0(R10)
2571 SUB #2,R8
2572 MOV R8,2(R10)
2573 ADD #4,&$1DC6
2574 LO2HI
2575 DOES>
2576 HI2LO
2577 MOV @R1+,R13
2578 MOV @R14+,&$180E
2579 MOV @R14,&$180C
2580 MOV @R15+,R14
2581 MOV #RST_STATE,R0
2582 ENDCODE
2583 [THEN]
2584
2585 MARKER {RC5TOLCD}
2586
2587 [UNDEFINED] @ [IF]
2588 CODE @
2589 MOV @R14,R14
2590 MOV @R13+,R0
2591 ENDCODE
2592 [THEN]
2593
2594 [UNDEFINED] CONSTANT [IF]
2595 : CONSTANT 
2596 CREATE
2597 HI2LO
2598 MOV R14,-2(R10)
2599 MOV @R15+,R14
2600 MOV @R1+,R13
2601 MOV @R13+,R0
2602 ENDCODE
2603 [THEN]
2604
2605 [UNDEFINED] STATE [IF]
2606 $1DBE CONSTANT STATE
2607 [THEN]
2608
2609 [UNDEFINED] = [IF]
2610 CODE =
2611 SUB @R15+,R14
2612 0<> IF
2613     AND #0,R14
2614     MOV @R13+,R0
2615 THEN
2616 XOR #-1,R14
2617 MOV @R13+,R0
2618 ENDCODE
2619 [THEN]
2620
2621 [UNDEFINED] IF [IF]
2622 CODE IF
2623 SUB #2,R15
2624 MOV R14,0(R15)
2625 MOV &$1DC6,R14
2626 ADD #4,&$1DC6
2627 MOV #$404C,0(R14)
2628 ADD #2,R14
2629 MOV @R13+,R0
2630 ENDCODE IMMEDIATE
2631 [THEN]
2632
2633 [UNDEFINED] THEN [IF]
2634 CODE THEN
2635 MOV &$1DC6,0(R14)
2636 MOV @R15+,R14
2637 MOV @R13+,R0
2638 ENDCODE IMMEDIATE
2639 [THEN]
2640
2641 [UNDEFINED] ELSE [IF]
2642 CODE ELSE
2643 ADD #4,&$1DC6
2644 MOV &$1DC6,R10
2645 MOV #$4048,-4(R10)
2646 MOV R10,0(R14)
2647 SUB #2,R10
2648 MOV R10,R14
2649 MOV @R13+,R0
2650 ENDCODE IMMEDIATE
2651 [THEN]
2652
2653 [UNDEFINED] DEFER [IF]
2654
2655 : DEFER
2656 CREATE
2657 HI2LO
2658 MOV #$4030,-4(R10)
2659 MOV #$402C,-2(R10)
2660 MOV @R1+,R13
2661 MOV @R13+,R0
2662 ENDCODE
2663 [THEN]
2664
2665 [UNDEFINED] DEFER! [IF]
2666 CODE DEFER!
2667 MOV @R15+,2(R14)
2668 MOV @R15+,R14
2669 MOV @R13+,R0
2670 ENDCODE
2671 [THEN]
2672
2673 [UNDEFINED] IS [IF]
2674 : IS
2675 STATE @
2676 IF  POSTPONE ['] POSTPONE DEFER! 
2677 ELSE ' DEFER! 
2678 THEN
2679 ; IMMEDIATE
2680 [THEN]
2681
2682 [UNDEFINED] >BODY [IF]
2683 CODE >BODY
2684 ADD #4,R14
2685 MOV @R13+,R0
2686 ENDCODE
2687 [THEN]
2688
2689
2690 CODE 20_US
2691 BEGIN
2692     BEGIN
2693         BIT #1,&$3C0
2694     0<> UNTIL
2695     BIC #1,&$3C0
2696     SUB #1,R14
2697 U< UNTIL
2698 MOV @R15+,R14
2699 MOV @R13+,R0
2700 ENDCODE
2701
2702 CODE TOP_LCD
2703     BIS.B #4,&$243
2704     BIT.B #1,&$241
2705 0= IF
2706     AND.B #$0F,R14
2707     MOV.B R14,&$222
2708     BIC.B #4,&$243
2709     MOV @R15+,R14
2710     MOV @R13+,R0
2711 THEN
2712     SUB #2,R15
2713     MOV R14,0(R15)
2714     BIC.B #4,&$243
2715     MOV.B &$220,R14
2716     AND.B #$0F,R14
2717     MOV @R13+,R0
2718 ENDCODE
2719
2720 CODE LCD_WRC
2721     BIS.B #2,&$243
2722 BW1 SUB #2,R15
2723     MOV R14,0(R15)
2724     RRUM #4,R14
2725     BIC.B #1,&$243
2726     BIS.B #$0F,&$224
2727 COLON
2728     TOP_LCD 2 20_US
2729     TOP_LCD 2 20_US 
2730 ;
2731
2732 CODE LCD_WRF
2733     BIC.B #2,&$243
2734     GOTO BW1
2735 ENDCODE
2736
2737 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2738 : LCD_HOME $02 LCD_WRF 100 20_us ;
2739
2740
2741
2742 ASM WDT_INT
2743 ADD #2,R1
2744 BIT.B #$20,&$240
2745 0= IF
2746     CMP #19,&$3D6
2747     U< IF
2748         ADD #1,&$3D6
2749     THEN
2750 ELSE
2751     BIT.B #$40,&$240
2752     0= IF
2753         CMP #3,&$3D6
2754         U>= IF
2755            SUB #1,&$3D6
2756         THEN
2757     THEN
2758 THEN
2759 BW1
2760 MOV @R1+,R0
2761 ENDASM
2762
2763 ASM RC5_INT
2764 ADD #2,R1
2765 $1806 @ 16000 = [IF]
2766     MOV #1,&$3A0
2767 [THEN]
2768 $1806 @ 24000 = [IF]
2769     MOV #2,&$3A0
2770 [THEN]
2771 MOV #1778,R9
2772 MOV #14,R10
2773 BEGIN
2774 MOV #%1011100100,&$380
2775     RRUM    #1,R9
2776     MOV     R9,R8
2777     RRUM    #1,R8
2778     ADD     R9,R8
2779     BEGIN   CMP R8,&$390
2780     U>= UNTIL
2781     BIT.B   #4,&$200
2782     ADDC    R11,R11
2783     MOV.B   &$200,&$208
2784     BIC.B   #4,&$20C
2785     SUB     #1,R10
2786 0<> WHILE
2787     ADD R9,R8
2788     BEGIN
2789         MOV &$390,R9
2790         CMP R8,R9
2791         U>= IF
2792         BIC #$30,&$380
2793         GOTO BW1
2794         THEN
2795         BIT.B #4,&$20C
2796     0<> UNTIL
2797 REPEAT
2798 BIC #$30,&$380
2799 RLAM    #1,R11
2800 MOV.B   R11,R9
2801 RRUM    #2,R9
2802 BIT     #$4000,R11
2803 0= IF   BIS #$40,R9
2804 THEN
2805 RRUM    #3,R11
2806 XOR     @R1,R11
2807 BIT     #$400,R11
2808 0= ?GOTO BW1
2809 XOR #$400,0(R1)
2810 SUB #8,R15
2811 MOV R14,6(R15)
2812 MOV &$1DDC,4(R15)
2813 MOV #$10,&$1DDC
2814 MOV R9,0(R15)
2815 MOV #0,R14
2816 LO2HI
2817     LCD_CLEAR
2818     <# # #S #36 HOLD #>
2819     ['] LCD_WRC IS EMIT
2820     TYPE
2821     ['] EMIT >BODY IS EMIT
2822 HI2LO
2823 MOV @R15+,&$1DDC
2824 MOV @R15+,R14
2825 MOV @R1+,R0
2826 ENDASM
2827
2828 ASM BACKGROUND
2829 BEGIN
2830     CALL &$1814
2831     BIS &$180A,R2
2832 AGAIN
2833 ENDASM
2834
2835 ASM SYS_OUT
2836     MOV #WARM,R9
2837     ADD #4,R9
2838     MOV R9,R0
2839 ENDASM
2840
2841 CODE STOP
2842 BW1 MOV #$4000,R9
2843     ADD #4,R9
2844     MOV R9,-2(R9)
2845     MOV #WARM,R9
2846     MOV #SYS_OUT,2(R9)
2847     BIC.B #4,&$20A
2848     BIC.B #4,&$20C
2849     MOV #0,&$3C0
2850     MOV #0,&$340
2851     MOV #0,&$342
2852     CALL #$400E
2853 COLON
2854 ECHO
2855 ." RC5toLCD is removed,"
2856 ."  type START to restart"
2857  WARM
2858 ;
2859
2860 CODE SYS_INIT
2861 MOV #%10_1101_0100,&$3C0
2862 $1806 @ 16000 = [IF]
2863     MOV #1,&$3E0
2864 [THEN]
2865 $1806 @ 24000 = [IF]
2866     MOV #2,&$3E0
2867 [THEN]
2868     MOV #19,&$3D2
2869 MOV #%0110_0000,&$3C6
2870     MOV #10,&$3D6
2871     BIS.B #$20,&$204
2872     BIS.B #$20,&$20A
2873     BIS.B #7,&$245
2874     BIC.B #7,&$247
2875     BIS.B #$0F,&$224
2876     BIC.B #$0F,&$226
2877     BIS.B #4,&$20A
2878     BIC.B #4,&$20C
2879     MOV #RC5_INT,&$FFDE
2880 MOV #%01_0001_0100,&$340
2881     MOV ##3276,&$352
2882     MOV #%10000,&$342
2883     MOV #WDT_INT,&$FFEA
2884 BIC #1,&$130
2885 BIS.B #3,&$20D
2886 MOV &$1808,R8
2887 CMP #4,R8
2888 0= ?GOTO BW1
2889 COLON
2890     #1000 20_US
2891     %011 TOP_LCD
2892     #205 20_US
2893     %011 TOP_LCD
2894     #5 20_US
2895     %011 TOP_LCD
2896     #2 20_US
2897     %010 TOP_LCD
2898     #2 20_US
2899     %00101000 LCD_WRF
2900     %1000 LCD_WRF
2901     LCD_CLEAR
2902     %0110 LCD_WRF
2903     %1100 LCD_WRF
2904     LCD_CLEAR
2905     ['] LCD_HOME IS CR
2906     ['] LCD_WRC  IS EMIT
2907     CR ." I love you"
2908     ['] CR >BODY IS CR
2909     ['] EMIT >BODY IS EMIT
2910     ." RC5toLCD is running. Type STOP to quit"
2911     PWR_STATE ABORT
2912 ;
2913
2914 CODE START
2915 MOV #$4000,R9
2916 MOV #BACKGROUND,2(R9)
2917 MOV #WARM,R9
2918 MOV #SYS_INIT,2(R9)
2919 MOV R9,R0
2920 ENDCODE 
2921
2922 ECHO
2923             ; downloading RC5toLCD.4th is done
2924 RST_HERE    ; this app is protected against <reset>
2925
2926
2927 RST_STATE
2928
2929 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2930
2931 [UNDEFINED] MARKER [IF]
2932 : MARKER
2933 CREATE
2934 HI2LO
2935 MOV &$1DC8,0(R10)
2936 SUB #2,R8
2937 MOV R8,2(R10)
2938 ADD #4,&$1DC6
2939 LO2HI
2940 DOES>
2941 HI2LO
2942 MOV @R1+,R13
2943 MOV @R14+,&$180E
2944 MOV @R14,&$180C
2945 MOV @R15+,R14
2946 MOV #RST_STATE,R0
2947 ENDCODE
2948 [THEN]
2949
2950 MARKER {RC5TOLCD}
2951
2952 [UNDEFINED] @ [IF]
2953 CODE @
2954 MOV @R14,R14
2955 MOV @R13+,R0
2956 ENDCODE
2957 [THEN]
2958
2959 [UNDEFINED] CONSTANT [IF]
2960 : CONSTANT 
2961 CREATE
2962 HI2LO
2963 MOV R14,-2(R10)
2964 MOV @R15+,R14
2965 MOV @R1+,R13
2966 MOV @R13+,R0
2967 ENDCODE
2968 [THEN]
2969
2970 [UNDEFINED] STATE [IF]
2971 $1DBE CONSTANT STATE
2972 [THEN]
2973
2974 [UNDEFINED] = [IF]
2975 CODE =
2976 SUB @R15+,R14
2977 0<> IF
2978     AND #0,R14
2979     MOV @R13+,R0
2980 THEN
2981 XOR #-1,R14
2982 MOV @R13+,R0
2983 ENDCODE
2984 [THEN]
2985
2986 [UNDEFINED] IF [IF]
2987 CODE IF
2988 SUB #2,R15
2989 MOV R14,0(R15)
2990 MOV &$1DC6,R14
2991 ADD #4,&$1DC6
2992 MOV #$404C,0(R14)
2993 ADD #2,R14
2994 MOV @R13+,R0
2995 ENDCODE IMMEDIATE
2996 [THEN]
2997
2998 [UNDEFINED] THEN [IF]
2999 CODE THEN
3000 MOV &$1DC6,0(R14)
3001 MOV @R15+,R14
3002 MOV @R13+,R0
3003 ENDCODE IMMEDIATE
3004 [THEN]
3005
3006 [UNDEFINED] ELSE [IF]
3007 CODE ELSE
3008 ADD #4,&$1DC6
3009 MOV &$1DC6,R10
3010 MOV #$4048,-4(R10)
3011 MOV R10,0(R14)
3012 SUB #2,R10
3013 MOV R10,R14
3014 MOV @R13+,R0
3015 ENDCODE IMMEDIATE
3016 [THEN]
3017
3018 [UNDEFINED] DEFER [IF]
3019
3020 : DEFER
3021 CREATE
3022 HI2LO
3023 MOV #$4030,-4(R10)
3024 MOV #$402C,-2(R10)
3025 MOV @R1+,R13
3026 MOV @R13+,R0
3027 ENDCODE
3028 [THEN]
3029
3030 [UNDEFINED] DEFER! [IF]
3031 CODE DEFER!
3032 MOV @R15+,2(R14)
3033 MOV @R15+,R14
3034 MOV @R13+,R0
3035 ENDCODE
3036 [THEN]
3037
3038 [UNDEFINED] IS [IF]
3039 : IS
3040 STATE @
3041 IF  POSTPONE ['] POSTPONE DEFER! 
3042 ELSE ' DEFER! 
3043 THEN
3044 ; IMMEDIATE
3045 [THEN]
3046
3047 [UNDEFINED] >BODY [IF]
3048 CODE >BODY
3049 ADD #4,R14
3050 MOV @R13+,R0
3051 ENDCODE
3052 [THEN]
3053
3054
3055 CODE 20_US
3056 BEGIN
3057     BEGIN
3058         BIT #1,&$3C0
3059     0<> UNTIL
3060     BIC #1,&$3C0
3061     SUB #1,R14
3062 U< UNTIL
3063 MOV @R15+,R14
3064 MOV @R13+,R0
3065 ENDCODE
3066
3067 CODE TOP_LCD
3068     BIS.B #4,&$243
3069     BIT.B #1,&$241
3070 0= IF
3071     AND.B #$0F,R14
3072     MOV.B R14,&$222
3073     BIC.B #4,&$243
3074     MOV @R15+,R14
3075     MOV @R13+,R0
3076 THEN
3077     SUB #2,R15
3078     MOV R14,0(R15)
3079     BIC.B #4,&$243
3080     MOV.B &$220,R14
3081     AND.B #$0F,R14
3082     MOV @R13+,R0
3083 ENDCODE
3084
3085 CODE LCD_WRC
3086     BIS.B #2,&$243
3087 BW1 SUB #2,R15
3088     MOV R14,0(R15)
3089     RRUM #4,R14
3090     BIC.B #1,&$243
3091     BIS.B #$0F,&$224
3092 COLON
3093     TOP_LCD 2 20_US
3094     TOP_LCD 2 20_US 
3095 ;
3096
3097 CODE LCD_WRF
3098     BIC.B #2,&$243
3099     GOTO BW1
3100 ENDCODE
3101
3102 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3103 : LCD_HOME $02 LCD_WRF 100 20_us ;
3104
3105
3106
3107 ASM WDT_INT
3108 ADD #2,R1
3109 BIT.B #$20,&$240
3110 0= IF
3111     CMP #19,&$3D6
3112     U< IF
3113         ADD #1,&$3D6
3114     THEN
3115 ELSE
3116     BIT.B #$40,&$240
3117     0= IF
3118         CMP #3,&$3D6
3119         U>= IF
3120            SUB #1,&$3D6
3121         THEN
3122     THEN
3123 THEN
3124 BW1
3125 MOV @R1+,R0
3126 ENDASM
3127
3128 ASM RC5_INT
3129 ADD #2,R1
3130 $1806 @ 16000 = [IF]
3131     MOV #1,&$3A0
3132 [THEN]
3133 $1806 @ 24000 = [IF]
3134     MOV #2,&$3A0
3135 [THEN]
3136 MOV #1778,R9
3137 MOV #14,R10
3138 BEGIN
3139 MOV #%1011100100,&$380
3140     RRUM    #1,R9
3141     MOV     R9,R8
3142     RRUM    #1,R8
3143     ADD     R9,R8
3144     BEGIN   CMP R8,&$390
3145     U>= UNTIL
3146     BIT.B   #4,&$200
3147     ADDC    R11,R11
3148     MOV.B   &$200,&$208
3149     BIC.B   #4,&$20C
3150     SUB     #1,R10
3151 0<> WHILE
3152     ADD R9,R8
3153     BEGIN
3154         MOV &$390,R9
3155         CMP R8,R9
3156         U>= IF
3157         BIC #$30,&$380
3158         GOTO BW1
3159         THEN
3160         BIT.B #4,&$20C
3161     0<> UNTIL
3162 REPEAT
3163 BIC #$30,&$380
3164 RLAM    #1,R11
3165 MOV.B   R11,R9
3166 RRUM    #2,R9
3167 BIT     #$4000,R11
3168 0= IF   BIS #$40,R9
3169 THEN
3170 RRUM    #3,R11
3171 XOR     @R1,R11
3172 BIT     #$400,R11
3173 0= ?GOTO BW1
3174 XOR #$400,0(R1)
3175 SUB #8,R15
3176 MOV R14,6(R15)
3177 MOV &$1DDC,4(R15)
3178 MOV #$10,&$1DDC
3179 MOV R9,0(R15)
3180 MOV #0,R14
3181 LO2HI
3182     LCD_CLEAR
3183     <# # #S #36 HOLD #>
3184     ['] LCD_WRC IS EMIT
3185     TYPE
3186     ['] EMIT >BODY IS EMIT
3187 HI2LO
3188 MOV @R15+,&$1DDC
3189 MOV @R15+,R14
3190 MOV @R1+,R0
3191 ENDASM
3192
3193 ASM BACKGROUND
3194 BEGIN
3195     CALL &$1814
3196     BIS &$180A,R2
3197 AGAIN
3198 ENDASM
3199
3200 ASM SYS_OUT
3201     MOV #WARM,R9
3202     ADD #4,R9
3203     MOV R9,R0
3204 ENDASM
3205
3206 CODE STOP
3207 BW1 MOV #$4000,R9
3208     ADD #4,R9
3209     MOV R9,-2(R9)
3210     MOV #WARM,R9
3211     MOV #SYS_OUT,2(R9)
3212     BIC.B #4,&$20A
3213     BIC.B #4,&$20C
3214     MOV #0,&$3C0
3215     MOV #0,&$340
3216     MOV #0,&$342
3217     CALL #$400E
3218 COLON
3219 ECHO
3220 ." RC5toLCD is removed,"
3221 ."  type START to restart"
3222  WARM
3223 ;
3224
3225 CODE SYS_INIT
3226 MOV #%10_1101_0100,&$3C0
3227 $1806 @ 16000 = [IF]
3228     MOV #1,&$3E0
3229 [THEN]
3230 $1806 @ 24000 = [IF]
3231     MOV #2,&$3E0
3232 [THEN]
3233     MOV #19,&$3D2
3234 MOV #%0110_0000,&$3C6
3235     MOV #10,&$3D6
3236     BIS.B #$20,&$204
3237     BIS.B #$20,&$20A
3238     BIS.B #7,&$245
3239     BIC.B #7,&$247
3240     BIS.B #$0F,&$224
3241     BIC.B #$0F,&$226
3242     BIS.B #4,&$20A
3243     BIC.B #4,&$20C
3244     MOV #RC5_INT,&$FFDE
3245 MOV #%01_0001_0100,&$340
3246     MOV ##3276,&$352
3247     MOV #%10000,&$342
3248     MOV #WDT_INT,&$FFEA
3249 BIC #1,&$130
3250 BIS.B #3,&$20D
3251 MOV &$1808,R8
3252 CMP #4,R8
3253 0= ?GOTO BW1
3254 COLON
3255     #1000 20_US
3256     %011 TOP_LCD
3257     #205 20_US
3258     %011 TOP_LCD
3259     #5 20_US
3260     %011 TOP_LCD
3261     #2 20_US
3262     %010 TOP_LCD
3263     #2 20_US
3264     %00101000 LCD_WRF
3265     %1000 LCD_WRF
3266     LCD_CLEAR
3267     %0110 LCD_WRF
3268     %1100 LCD_WRF
3269     LCD_CLEAR
3270     ['] LCD_HOME IS CR
3271     ['] LCD_WRC  IS EMIT
3272     CR ." I love you"
3273     ['] CR >BODY IS CR
3274     ['] EMIT >BODY IS EMIT
3275     ." RC5toLCD is running. Type STOP to quit"
3276     PWR_STATE ABORT
3277 ;
3278
3279 CODE START
3280 MOV #$4000,R9
3281 MOV #BACKGROUND,2(R9)
3282 MOV #WARM,R9
3283 MOV #SYS_INIT,2(R9)
3284 MOV R9,R0
3285 ENDCODE 
3286
3287 ECHO
3288             ; downloading RC5toLCD.4th is done
3289 RST_HERE    ; this app is protected against <reset>
3290
3291
3292 RST_STATE
3293
3294 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
3295
3296 [UNDEFINED] MARKER [IF]
3297 : MARKER
3298 CREATE
3299 HI2LO
3300 MOV &$1DC8,0(R10)
3301 SUB #2,R8
3302 MOV R8,2(R10)
3303 ADD #4,&$1DC6
3304 LO2HI
3305 DOES>
3306 HI2LO
3307 MOV @R1+,R13
3308 MOV @R14+,&$180E
3309 MOV @R14,&$180C
3310 MOV @R15+,R14
3311 MOV #RST_STATE,R0
3312 ENDCODE
3313 [THEN]
3314
3315 MARKER {RC5TOLCD}
3316
3317 [UNDEFINED] @ [IF]
3318 CODE @
3319 MOV @R14,R14
3320 MOV @R13+,R0
3321 ENDCODE
3322 [THEN]
3323
3324 [UNDEFINED] CONSTANT [IF]
3325 : CONSTANT 
3326 CREATE
3327 HI2LO
3328 MOV R14,-2(R10)
3329 MOV @R15+,R14
3330 MOV @R1+,R13
3331 MOV @R13+,R0
3332 ENDCODE
3333 [THEN]
3334
3335 [UNDEFINED] STATE [IF]
3336 $1DBE CONSTANT STATE
3337 [THEN]
3338
3339 [UNDEFINED] = [IF]
3340 CODE =
3341 SUB @R15+,R14
3342 0<> IF
3343     AND #0,R14
3344     MOV @R13+,R0
3345 THEN
3346 XOR #-1,R14
3347 MOV @R13+,R0
3348 ENDCODE
3349 [THEN]
3350
3351 [UNDEFINED] IF [IF]
3352 CODE IF
3353 SUB #2,R15
3354 MOV R14,0(R15)
3355 MOV &$1DC6,R14
3356 ADD #4,&$1DC6
3357 MOV #$404C,0(R14)
3358 ADD #2,R14
3359 MOV @R13+,R0
3360 ENDCODE IMMEDIATE
3361 [THEN]
3362
3363 [UNDEFINED] THEN [IF]
3364 CODE THEN
3365 MOV &$1DC6,0(R14)
3366 MOV @R15+,R14
3367 MOV @R13+,R0
3368 ENDCODE IMMEDIATE
3369 [THEN]
3370
3371 [UNDEFINED] ELSE [IF]
3372 CODE ELSE
3373 ADD #4,&$1DC6
3374 MOV &$1DC6,R10
3375 MOV #$4048,-4(R10)
3376 MOV R10,0(R14)
3377 SUB #2,R10
3378 MOV R10,R14
3379 MOV @R13+,R0
3380 ENDCODE IMMEDIATE
3381 [THEN]
3382
3383 [UNDEFINED] DEFER [IF]
3384
3385 : DEFER
3386 CREATE
3387 HI2LO
3388 MOV #$4030,-4(R10)
3389 MOV #$402C,-2(R10)
3390 MOV @R1+,R13
3391 MOV @R13+,R0
3392 ENDCODE
3393 [THEN]
3394
3395 [UNDEFINED] DEFER! [IF]
3396 CODE DEFER!
3397 MOV @R15+,2(R14)
3398 MOV @R15+,R14
3399 MOV @R13+,R0
3400 ENDCODE
3401 [THEN]
3402
3403 [UNDEFINED] IS [IF]
3404 : IS
3405 STATE @
3406 IF  POSTPONE ['] POSTPONE DEFER! 
3407 ELSE ' DEFER! 
3408 THEN
3409 ; IMMEDIATE
3410 [THEN]
3411
3412 [UNDEFINED] >BODY [IF]
3413 CODE >BODY
3414 ADD #4,R14
3415 MOV @R13+,R0
3416 ENDCODE
3417 [THEN]
3418
3419
3420 CODE 20_US
3421 BEGIN
3422     BEGIN
3423         BIT #1,&$3C0
3424     0<> UNTIL
3425     BIC #1,&$3C0
3426     SUB #1,R14
3427 U< UNTIL
3428 MOV @R15+,R14
3429 MOV @R13+,R0
3430 ENDCODE
3431
3432 CODE TOP_LCD
3433     BIS.B #4,&$243
3434     BIT.B #1,&$241
3435 0= IF
3436     AND.B #$0F,R14
3437     MOV.B R14,&$222
3438     BIC.B #4,&$243
3439     MOV @R15+,R14
3440     MOV @R13+,R0
3441 THEN
3442     SUB #2,R15
3443     MOV R14,0(R15)
3444     BIC.B #4,&$243
3445     MOV.B &$220,R14
3446     AND.B #$0F,R14
3447     MOV @R13+,R0
3448 ENDCODE
3449
3450 CODE LCD_WRC
3451     BIS.B #2,&$243
3452 BW1 SUB #2,R15
3453     MOV R14,0(R15)
3454     RRUM #4,R14
3455     BIC.B #1,&$243
3456     BIS.B #$0F,&$224
3457 COLON
3458     TOP_LCD 2 20_US
3459     TOP_LCD 2 20_US 
3460 ;
3461
3462 CODE LCD_WRF
3463     BIC.B #2,&$243
3464     GOTO BW1
3465 ENDCODE
3466
3467 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3468 : LCD_HOME $02 LCD_WRF 100 20_us ;
3469
3470
3471
3472 ASM WDT_INT
3473 ADD #2,R1
3474 BIT.B #$20,&$240
3475 0= IF
3476     CMP #19,&$3D6
3477     U< IF
3478         ADD #1,&$3D6
3479     THEN
3480 ELSE
3481     BIT.B #$40,&$240
3482     0= IF
3483         CMP #3,&$3D6
3484         U>= IF
3485            SUB #1,&$3D6
3486         THEN
3487     THEN
3488 THEN
3489 BW1
3490 MOV @R1+,R0
3491 ENDASM
3492
3493 ASM RC5_INT
3494 ADD #2,R1
3495 $1806 @ 16000 = [IF]
3496     MOV #1,&$3A0
3497 [THEN]
3498 $1806 @ 24000 = [IF]
3499     MOV #2,&$3A0
3500 [THEN]
3501 MOV #1778,R9
3502 MOV #14,R10
3503 BEGIN
3504 MOV #%1011100100,&$380
3505     RRUM    #1,R9
3506     MOV     R9,R8
3507     RRUM    #1,R8
3508     ADD     R9,R8
3509     BEGIN   CMP R8,&$390
3510     U>= UNTIL
3511     BIT.B   #4,&$200
3512     ADDC    R11,R11
3513     MOV.B   &$200,&$208
3514     BIC.B   #4,&$20C
3515     SUB     #1,R10
3516 0<> WHILE
3517     ADD R9,R8
3518     BEGIN
3519         MOV &$390,R9
3520         CMP R8,R9
3521         U>= IF
3522         BIC #$30,&$380
3523         GOTO BW1
3524         THEN
3525         BIT.B #4,&$20C
3526     0<> UNTIL
3527 REPEAT
3528 BIC #$30,&$380
3529 RLAM    #1,R11
3530 MOV.B   R11,R9
3531 RRUM    #2,R9
3532 BIT     #$4000,R11
3533 0= IF   BIS #$40,R9
3534 THEN
3535 RRUM    #3,R11
3536 XOR     @R1,R11
3537 BIT     #$400,R11
3538 0= ?GOTO BW1
3539 XOR #$400,0(R1)
3540 SUB #8,R15
3541 MOV R14,6(R15)
3542 MOV &$1DDC,4(R15)
3543 MOV #$10,&$1DDC
3544 MOV R9,0(R15)
3545 MOV #0,R14
3546 LO2HI
3547     LCD_CLEAR
3548     <# # #S #36 HOLD #>
3549     ['] LCD_WRC IS EMIT
3550     TYPE
3551     ['] EMIT >BODY IS EMIT
3552 HI2LO
3553 MOV @R15+,&$1DDC
3554 MOV @R15+,R14
3555 MOV @R1+,R0
3556 ENDASM
3557
3558 ASM BACKGROUND
3559 BEGIN
3560     CALL &$1814
3561     BIS &$180A,R2
3562 AGAIN
3563 ENDASM
3564
3565 ASM SYS_OUT
3566     MOV #WARM,R9
3567     ADD #4,R9
3568     MOV R9,R0
3569 ENDASM
3570
3571 CODE STOP
3572 BW1 MOV #$4000,R9
3573     ADD #4,R9
3574     MOV R9,-2(R9)
3575     MOV #WARM,R9
3576     MOV #SYS_OUT,2(R9)
3577     BIC.B #4,&$20A
3578     BIC.B #4,&$20C
3579     MOV #0,&$3C0
3580     MOV #0,&$340
3581     MOV #0,&$342
3582     CALL #$400E
3583 COLON
3584 ECHO
3585 ." RC5toLCD is removed,"
3586 ."  type START to restart"
3587  WARM
3588 ;
3589
3590 CODE SYS_INIT
3591 MOV #%10_1101_0100,&$3C0
3592 $1806 @ 16000 = [IF]
3593     MOV #1,&$3E0
3594 [THEN]
3595 $1806 @ 24000 = [IF]
3596     MOV #2,&$3E0
3597 [THEN]
3598     MOV #19,&$3D2
3599 MOV #%0110_0000,&$3C6
3600     MOV #10,&$3D6
3601     BIS.B #$20,&$204
3602     BIS.B #$20,&$20A
3603     BIS.B #7,&$245
3604     BIC.B #7,&$247
3605     BIS.B #$0F,&$224
3606     BIC.B #$0F,&$226
3607     BIS.B #4,&$20A
3608     BIC.B #4,&$20C
3609     MOV #RC5_INT,&$FFDE
3610 MOV #%01_0001_0100,&$340
3611     MOV ##3276,&$352
3612     MOV #%10000,&$342
3613     MOV #WDT_INT,&$FFEA
3614 BIC #1,&$130
3615 BIS.B #3,&$20D
3616 MOV &$1808,R8
3617 CMP #4,R8
3618 0= ?GOTO BW1
3619 COLON
3620     #1000 20_US
3621     %011 TOP_LCD
3622     #205 20_US
3623     %011 TOP_LCD
3624     #5 20_US
3625     %011 TOP_LCD
3626     #2 20_US
3627     %010 TOP_LCD
3628     #2 20_US
3629     %00101000 LCD_WRF
3630     %1000 LCD_WRF
3631     LCD_CLEAR
3632     %0110 LCD_WRF
3633     %1100 LCD_WRF
3634     LCD_CLEAR
3635     ['] LCD_HOME IS CR
3636     ['] LCD_WRC  IS EMIT
3637     CR ." I love you"
3638     ['] CR >BODY IS CR
3639     ['] EMIT >BODY IS EMIT
3640     ." RC5toLCD is running. Type STOP to quit"
3641     PWR_STATE ABORT
3642 ;
3643
3644 CODE START
3645 MOV #$4000,R9
3646 MOV #BACKGROUND,2(R9)
3647 MOV #WARM,R9
3648 MOV #SYS_INIT,2(R9)
3649 MOV R9,R0
3650 ENDCODE 
3651
3652 ECHO
3653             ; downloading RC5toLCD.4th is done
3654 RST_HERE    ; this app is protected against <reset>
3655
3656
3657 RST_STATE
3658
3659 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
3660
3661 [UNDEFINED] MARKER [IF]
3662 : MARKER
3663 CREATE
3664 HI2LO
3665 MOV &$1DC8,0(R10)
3666 SUB #2,R8
3667 MOV R8,2(R10)
3668 ADD #4,&$1DC6
3669 LO2HI
3670 DOES>
3671 HI2LO
3672 MOV @R1+,R13
3673 MOV @R14+,&$180E
3674 MOV @R14,&$180C
3675 MOV @R15+,R14
3676 MOV #RST_STATE,R0
3677 ENDCODE
3678 [THEN]
3679
3680 MARKER {RC5TOLCD}
3681
3682 [UNDEFINED] @ [IF]
3683 CODE @
3684 MOV @R14,R14
3685 MOV @R13+,R0
3686 ENDCODE
3687 [THEN]
3688
3689 [UNDEFINED] CONSTANT [IF]
3690 : CONSTANT 
3691 CREATE
3692 HI2LO
3693 MOV R14,-2(R10)
3694 MOV @R15+,R14
3695 MOV @R1+,R13
3696 MOV @R13+,R0
3697 ENDCODE
3698 [THEN]
3699
3700 [UNDEFINED] STATE [IF]
3701 $1DBE CONSTANT STATE
3702 [THEN]
3703
3704 [UNDEFINED] = [IF]
3705 CODE =
3706 SUB @R15+,R14
3707 0<> IF
3708     AND #0,R14
3709     MOV @R13+,R0
3710 THEN
3711 XOR #-1,R14
3712 MOV @R13+,R0
3713 ENDCODE
3714 [THEN]
3715
3716 [UNDEFINED] IF [IF]
3717 CODE IF
3718 SUB #2,R15
3719 MOV R14,0(R15)
3720 MOV &$1DC6,R14
3721 ADD #4,&$1DC6
3722 MOV #$404C,0(R14)
3723 ADD #2,R14
3724 MOV @R13+,R0
3725 ENDCODE IMMEDIATE
3726 [THEN]
3727
3728 [UNDEFINED] THEN [IF]
3729 CODE THEN
3730 MOV &$1DC6,0(R14)
3731 MOV @R15+,R14
3732 MOV @R13+,R0
3733 ENDCODE IMMEDIATE
3734 [THEN]
3735
3736 [UNDEFINED] ELSE [IF]
3737 CODE ELSE
3738 ADD #4,&$1DC6
3739 MOV &$1DC6,R10
3740 MOV #$4048,-4(R10)
3741 MOV R10,0(R14)
3742 SUB #2,R10
3743 MOV R10,R14
3744 MOV @R13+,R0
3745 ENDCODE IMMEDIATE
3746 [THEN]
3747
3748 [UNDEFINED] DEFER [IF]
3749
3750 : DEFER
3751 CREATE
3752 HI2LO
3753 MOV #$4030,-4(R10)
3754 MOV #$402C,-2(R10)
3755 MOV @R1+,R13
3756 MOV @R13+,R0
3757 ENDCODE
3758 [THEN]
3759
3760 [UNDEFINED] DEFER! [IF]
3761 CODE DEFER!
3762 MOV @R15+,2(R14)
3763 MOV @R15+,R14
3764 MOV @R13+,R0
3765 ENDCODE
3766 [THEN]
3767
3768 [UNDEFINED] IS [IF]
3769 : IS
3770 STATE @
3771 IF  POSTPONE ['] POSTPONE DEFER! 
3772 ELSE ' DEFER! 
3773 THEN
3774 ; IMMEDIATE
3775 [THEN]
3776
3777 [UNDEFINED] >BODY [IF]
3778 CODE >BODY
3779 ADD #4,R14
3780 MOV @R13+,R0
3781 ENDCODE
3782 [THEN]
3783
3784
3785 CODE 20_US
3786 BEGIN
3787     BEGIN
3788         BIT #1,&$3C0
3789     0<> UNTIL
3790     BIC #1,&$3C0
3791     SUB #1,R14
3792 U< UNTIL
3793 MOV @R15+,R14
3794 MOV @R13+,R0
3795 ENDCODE
3796
3797 CODE TOP_LCD
3798     BIS.B #4,&$243
3799     BIT.B #1,&$241
3800 0= IF
3801     AND.B #$0F,R14
3802     MOV.B R14,&$222
3803     BIC.B #4,&$243
3804     MOV @R15+,R14
3805     MOV @R13+,R0
3806 THEN
3807     SUB #2,R15
3808     MOV R14,0(R15)
3809     BIC.B #4,&$243
3810     MOV.B &$220,R14
3811     AND.B #$0F,R14
3812     MOV @R13+,R0
3813 ENDCODE
3814
3815 CODE LCD_WRC
3816     BIS.B #2,&$243
3817 BW1 SUB #2,R15
3818     MOV R14,0(R15)
3819     RRUM #4,R14
3820     BIC.B #1,&$243
3821     BIS.B #$0F,&$224
3822 COLON
3823     TOP_LCD 2 20_US
3824     TOP_LCD 2 20_US 
3825 ;
3826
3827 CODE LCD_WRF
3828     BIC.B #2,&$243
3829     GOTO BW1
3830 ENDCODE
3831
3832 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3833 : LCD_HOME $02 LCD_WRF 100 20_us ;
3834
3835
3836
3837 ASM WDT_INT
3838 ADD #2,R1
3839 BIT.B #$20,&$240
3840 0= IF
3841     CMP #19,&$3D6
3842     U< IF
3843         ADD #1,&$3D6
3844     THEN
3845 ELSE
3846     BIT.B #$40,&$240
3847     0= IF
3848         CMP #3,&$3D6
3849         U>= IF
3850            SUB #1,&$3D6
3851         THEN
3852     THEN
3853 THEN
3854 BW1
3855 MOV @R1+,R0
3856 ENDASM
3857
3858 ASM RC5_INT
3859 ADD #2,R1
3860 $1806 @ 16000 = [IF]
3861     MOV #1,&$3A0
3862 [THEN]
3863 $1806 @ 24000 = [IF]
3864     MOV #2,&$3A0
3865 [THEN]
3866 MOV #1778,R9
3867 MOV #14,R10
3868 BEGIN
3869 MOV #%1011100100,&$380
3870     RRUM    #1,R9
3871     MOV     R9,R8
3872     RRUM    #1,R8
3873     ADD     R9,R8
3874     BEGIN   CMP R8,&$390
3875     U>= UNTIL
3876     BIT.B   #4,&$200
3877     ADDC    R11,R11
3878     MOV.B   &$200,&$208
3879     BIC.B   #4,&$20C
3880     SUB     #1,R10
3881 0<> WHILE
3882     ADD R9,R8
3883     BEGIN
3884         MOV &$390,R9
3885         CMP R8,R9
3886         U>= IF
3887         BIC #$30,&$380
3888         GOTO BW1
3889         THEN
3890         BIT.B #4,&$20C
3891     0<> UNTIL
3892 REPEAT
3893 BIC #$30,&$380
3894 RLAM    #1,R11
3895 MOV.B   R11,R9
3896 RRUM    #2,R9
3897 BIT     #$4000,R11
3898 0= IF   BIS #$40,R9
3899 THEN
3900 RRUM    #3,R11
3901 XOR     @R1,R11
3902 BIT     #$400,R11
3903 0= ?GOTO BW1
3904 XOR #$400,0(R1)
3905 SUB #8,R15
3906 MOV R14,6(R15)
3907 MOV &$1DDC,4(R15)
3908 MOV #$10,&$1DDC
3909 MOV R9,0(R15)
3910 MOV #0,R14
3911 LO2HI
3912     LCD_CLEAR
3913     <# # #S #36 HOLD #>
3914     ['] LCD_WRC IS EMIT
3915     TYPE
3916     ['] EMIT >BODY IS EMIT
3917 HI2LO
3918 MOV @R15+,&$1DDC
3919 MOV @R15+,R14
3920 MOV @R1+,R0
3921 ENDASM
3922
3923 ASM BACKGROUND
3924 BEGIN
3925     CALL &$1814
3926     BIS &$180A,R2
3927 AGAIN
3928 ENDASM
3929
3930 ASM SYS_OUT
3931     MOV #WARM,R9
3932     ADD #4,R9
3933     MOV R9,R0
3934 ENDASM
3935
3936 CODE STOP
3937 BW1 MOV #$4000,R9
3938     ADD #4,R9
3939     MOV R9,-2(R9)
3940     MOV #WARM,R9
3941     MOV #SYS_OUT,2(R9)
3942     BIC.B #4,&$20A
3943     BIC.B #4,&$20C
3944     MOV #0,&$3C0
3945     MOV #0,&$340
3946     MOV #0,&$342
3947     CALL #$400E
3948 COLON
3949 ECHO
3950 ." RC5toLCD is removed,"
3951 ."  type START to restart"
3952  WARM
3953 ;
3954
3955 CODE SYS_INIT
3956 MOV #%10_1101_0100,&$3C0
3957 $1806 @ 16000 = [IF]
3958     MOV #1,&$3E0
3959 [THEN]
3960 $1806 @ 24000 = [IF]
3961     MOV #2,&$3E0
3962 [THEN]
3963     MOV #19,&$3D2
3964 MOV #%0110_0000,&$3C6
3965     MOV #10,&$3D6
3966     BIS.B #$20,&$204
3967     BIS.B #$20,&$20A
3968     BIS.B #7,&$245
3969     BIC.B #7,&$247
3970     BIS.B #$0F,&$224
3971     BIC.B #$0F,&$226
3972     BIS.B #4,&$20A
3973     BIC.B #4,&$20C
3974     MOV #RC5_INT,&$FFDE
3975 MOV #%01_0001_0100,&$340
3976     MOV ##3276,&$352
3977     MOV #%10000,&$342
3978     MOV #WDT_INT,&$FFEA
3979 BIC #1,&$130
3980 BIS.B #3,&$20D
3981 MOV &$1808,R8
3982 CMP #4,R8
3983 0= ?GOTO BW1
3984 COLON
3985     #1000 20_US
3986     %011 TOP_LCD
3987     #205 20_US
3988     %011 TOP_LCD
3989     #5 20_US
3990     %011 TOP_LCD
3991     #2 20_US
3992     %010 TOP_LCD
3993     #2 20_US
3994     %00101000 LCD_WRF
3995     %1000 LCD_WRF
3996     LCD_CLEAR
3997     %0110 LCD_WRF
3998     %1100 LCD_WRF
3999     LCD_CLEAR
4000     ['] LCD_HOME IS CR
4001     ['] LCD_WRC  IS EMIT
4002     CR ." I love you"
4003     ['] CR >BODY IS CR
4004     ['] EMIT >BODY IS EMIT
4005     ." RC5toLCD is running. Type STOP to quit"
4006     PWR_STATE ABORT
4007 ;
4008
4009 CODE START
4010 MOV #$4000,R9
4011 MOV #BACKGROUND,2(R9)
4012 MOV #WARM,R9
4013 MOV #SYS_INIT,2(R9)
4014 MOV R9,R0
4015 ENDCODE 
4016
4017 ECHO
4018             ; downloading RC5toLCD.4th is done
4019 RST_HERE    ; this app is protected against <reset>
4020
4021
4022 RST_STATE
4023
4024 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4025
4026 [UNDEFINED] MARKER [IF]
4027 : MARKER
4028 CREATE
4029 HI2LO
4030 MOV &$1DC8,0(R10)
4031 SUB #2,R8
4032 MOV R8,2(R10)
4033 ADD #4,&$1DC6
4034 LO2HI
4035 DOES>
4036 HI2LO
4037 MOV @R1+,R13
4038 MOV @R14+,&$180E
4039 MOV @R14,&$180C
4040 MOV @R15+,R14
4041 MOV #RST_STATE,R0
4042 ENDCODE
4043 [THEN]
4044
4045 MARKER {RC5TOLCD}
4046
4047 [UNDEFINED] @ [IF]
4048 CODE @
4049 MOV @R14,R14
4050 MOV @R13+,R0
4051 ENDCODE
4052 [THEN]
4053
4054 [UNDEFINED] CONSTANT [IF]
4055 : CONSTANT 
4056 CREATE
4057 HI2LO
4058 MOV R14,-2(R10)
4059 MOV @R15+,R14
4060 MOV @R1+,R13
4061 MOV @R13+,R0
4062 ENDCODE
4063 [THEN]
4064
4065 [UNDEFINED] STATE [IF]
4066 $1DBE CONSTANT STATE
4067 [THEN]
4068
4069 [UNDEFINED] = [IF]
4070 CODE =
4071 SUB @R15+,R14
4072 0<> IF
4073     AND #0,R14
4074     MOV @R13+,R0
4075 THEN
4076 XOR #-1,R14
4077 MOV @R13+,R0
4078 ENDCODE
4079 [THEN]
4080
4081 [UNDEFINED] IF [IF]
4082 CODE IF
4083 SUB #2,R15
4084 MOV R14,0(R15)
4085 MOV &$1DC6,R14
4086 ADD #4,&$1DC6
4087 MOV #$404C,0(R14)
4088 ADD #2,R14
4089 MOV @R13+,R0
4090 ENDCODE IMMEDIATE
4091 [THEN]
4092
4093 [UNDEFINED] THEN [IF]
4094 CODE THEN
4095 MOV &$1DC6,0(R14)
4096 MOV @R15+,R14
4097 MOV @R13+,R0
4098 ENDCODE IMMEDIATE
4099 [THEN]
4100
4101 [UNDEFINED] ELSE [IF]
4102 CODE ELSE
4103 ADD #4,&$1DC6
4104 MOV &$1DC6,R10
4105 MOV #$4048,-4(R10)
4106 MOV R10,0(R14)
4107 SUB #2,R10
4108 MOV R10,R14
4109 MOV @R13+,R0
4110 ENDCODE IMMEDIATE
4111 [THEN]
4112
4113 [UNDEFINED] DEFER [IF]
4114
4115 : DEFER
4116 CREATE
4117 HI2LO
4118 MOV #$4030,-4(R10)
4119 MOV #$402C,-2(R10)
4120 MOV @R1+,R13
4121 MOV @R13+,R0
4122 ENDCODE
4123 [THEN]
4124
4125 [UNDEFINED] DEFER! [IF]
4126 CODE DEFER!
4127 MOV @R15+,2(R14)
4128 MOV @R15+,R14
4129 MOV @R13+,R0
4130 ENDCODE
4131 [THEN]
4132
4133 [UNDEFINED] IS [IF]
4134 : IS
4135 STATE @
4136 IF  POSTPONE ['] POSTPONE DEFER! 
4137 ELSE ' DEFER! 
4138 THEN
4139 ; IMMEDIATE
4140 [THEN]
4141
4142 [UNDEFINED] >BODY [IF]
4143 CODE >BODY
4144 ADD #4,R14
4145 MOV @R13+,R0
4146 ENDCODE
4147 [THEN]
4148
4149
4150 CODE 20_US
4151 BEGIN
4152     BEGIN
4153         BIT #1,&$3C0
4154     0<> UNTIL
4155     BIC #1,&$3C0
4156     SUB #1,R14
4157 U< UNTIL
4158 MOV @R15+,R14
4159 MOV @R13+,R0
4160 ENDCODE
4161
4162 CODE TOP_LCD
4163     BIS.B #4,&$243
4164     BIT.B #1,&$241
4165 0= IF
4166     AND.B #$0F,R14
4167     MOV.B R14,&$222
4168     BIC.B #4,&$243
4169     MOV @R15+,R14
4170     MOV @R13+,R0
4171 THEN
4172     SUB #2,R15
4173     MOV R14,0(R15)
4174     BIC.B #4,&$243
4175     MOV.B &$220,R14
4176     AND.B #$0F,R14
4177     MOV @R13+,R0
4178 ENDCODE
4179
4180 CODE LCD_WRC
4181     BIS.B #2,&$243
4182 BW1 SUB #2,R15
4183     MOV R14,0(R15)
4184     RRUM #4,R14
4185     BIC.B #1,&$243
4186     BIS.B #$0F,&$224
4187 COLON
4188     TOP_LCD 2 20_US
4189     TOP_LCD 2 20_US 
4190 ;
4191
4192 CODE LCD_WRF
4193     BIC.B #2,&$243
4194     GOTO BW1
4195 ENDCODE
4196
4197 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4198 : LCD_HOME $02 LCD_WRF 100 20_us ;
4199
4200
4201
4202 ASM WDT_INT
4203 ADD #2,R1
4204 BIT.B #$20,&$240
4205 0= IF
4206     CMP #19,&$3D6
4207     U< IF
4208         ADD #1,&$3D6
4209     THEN
4210 ELSE
4211     BIT.B #$40,&$240
4212     0= IF
4213         CMP #3,&$3D6
4214         U>= IF
4215            SUB #1,&$3D6
4216         THEN
4217     THEN
4218 THEN
4219 BW1
4220 MOV @R1+,R0
4221 ENDASM
4222
4223 ASM RC5_INT
4224 ADD #2,R1
4225 $1806 @ 16000 = [IF]
4226     MOV #1,&$3A0
4227 [THEN]
4228 $1806 @ 24000 = [IF]
4229     MOV #2,&$3A0
4230 [THEN]
4231 MOV #1778,R9
4232 MOV #14,R10
4233 BEGIN
4234 MOV #%1011100100,&$380
4235     RRUM    #1,R9
4236     MOV     R9,R8
4237     RRUM    #1,R8
4238     ADD     R9,R8
4239     BEGIN   CMP R8,&$390
4240     U>= UNTIL
4241     BIT.B   #4,&$200
4242     ADDC    R11,R11
4243     MOV.B   &$200,&$208
4244     BIC.B   #4,&$20C
4245     SUB     #1,R10
4246 0<> WHILE
4247     ADD R9,R8
4248     BEGIN
4249         MOV &$390,R9
4250         CMP R8,R9
4251         U>= IF
4252         BIC #$30,&$380
4253         GOTO BW1
4254         THEN
4255         BIT.B #4,&$20C
4256     0<> UNTIL
4257 REPEAT
4258 BIC #$30,&$380
4259 RLAM    #1,R11
4260 MOV.B   R11,R9
4261 RRUM    #2,R9
4262 BIT     #$4000,R11
4263 0= IF   BIS #$40,R9
4264 THEN
4265 RRUM    #3,R11
4266 XOR     @R1,R11
4267 BIT     #$400,R11
4268 0= ?GOTO BW1
4269 XOR #$400,0(R1)
4270 SUB #8,R15
4271 MOV R14,6(R15)
4272 MOV &$1DDC,4(R15)
4273 MOV #$10,&$1DDC
4274 MOV R9,0(R15)
4275 MOV #0,R14
4276 LO2HI
4277     LCD_CLEAR
4278     <# # #S #36 HOLD #>
4279     ['] LCD_WRC IS EMIT
4280     TYPE
4281     ['] EMIT >BODY IS EMIT
4282 HI2LO
4283 MOV @R15+,&$1DDC
4284 MOV @R15+,R14
4285 MOV @R1+,R0
4286 ENDASM
4287
4288 ASM BACKGROUND
4289 BEGIN
4290     CALL &$1814
4291     BIS &$180A,R2
4292 AGAIN
4293 ENDASM
4294
4295 ASM SYS_OUT
4296     MOV #WARM,R9
4297     ADD #4,R9
4298     MOV R9,R0
4299 ENDASM
4300
4301 CODE STOP
4302 BW1 MOV #$4000,R9
4303     ADD #4,R9
4304     MOV R9,-2(R9)
4305     MOV #WARM,R9
4306     MOV #SYS_OUT,2(R9)
4307     BIC.B #4,&$20A
4308     BIC.B #4,&$20C
4309     MOV #0,&$3C0
4310     MOV #0,&$340
4311     MOV #0,&$342
4312     CALL #$400E
4313 COLON
4314 ECHO
4315 ." RC5toLCD is removed,"
4316 ."  type START to restart"
4317  WARM
4318 ;
4319
4320 CODE SYS_INIT
4321 MOV #%10_1101_0100,&$3C0
4322 $1806 @ 16000 = [IF]
4323     MOV #1,&$3E0
4324 [THEN]
4325 $1806 @ 24000 = [IF]
4326     MOV #2,&$3E0
4327 [THEN]
4328     MOV #19,&$3D2
4329 MOV #%0110_0000,&$3C6
4330     MOV #10,&$3D6
4331     BIS.B #$20,&$204
4332     BIS.B #$20,&$20A
4333     BIS.B #7,&$245
4334     BIC.B #7,&$247
4335     BIS.B #$0F,&$224
4336     BIC.B #$0F,&$226
4337     BIS.B #4,&$20A
4338     BIC.B #4,&$20C
4339     MOV #RC5_INT,&$FFDE
4340 MOV #%01_0001_0100,&$340
4341     MOV ##3276,&$352
4342     MOV #%10000,&$342
4343     MOV #WDT_INT,&$FFEA
4344 BIC #1,&$130
4345 BIS.B #3,&$20D
4346 MOV &$1808,R8
4347 CMP #4,R8
4348 0= ?GOTO BW1
4349 COLON
4350     #1000 20_US
4351     %011 TOP_LCD
4352     #205 20_US
4353     %011 TOP_LCD
4354     #5 20_US
4355     %011 TOP_LCD
4356     #2 20_US
4357     %010 TOP_LCD
4358     #2 20_US
4359     %00101000 LCD_WRF
4360     %1000 LCD_WRF
4361     LCD_CLEAR
4362     %0110 LCD_WRF
4363     %1100 LCD_WRF
4364     LCD_CLEAR
4365     ['] LCD_HOME IS CR
4366     ['] LCD_WRC  IS EMIT
4367     CR ." I love you"
4368     ['] CR >BODY IS CR
4369     ['] EMIT >BODY IS EMIT
4370     ." RC5toLCD is running. Type STOP to quit"
4371     PWR_STATE ABORT
4372 ;
4373
4374 CODE START
4375 MOV #$4000,R9
4376 MOV #BACKGROUND,2(R9)
4377 MOV #WARM,R9
4378 MOV #SYS_INIT,2(R9)
4379 MOV R9,R0
4380 ENDCODE 
4381
4382 ECHO
4383             ; downloading RC5toLCD.4th is done
4384 RST_HERE    ; this app is protected against <reset>
4385
4386
4387 RST_STATE
4388
4389 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4390
4391 [UNDEFINED] MARKER [IF]
4392 : MARKER
4393 CREATE
4394 HI2LO
4395 MOV &$1DC8,0(R10)
4396 SUB #2,R8
4397 MOV R8,2(R10)
4398 ADD #4,&$1DC6
4399 LO2HI
4400 DOES>
4401 HI2LO
4402 MOV @R1+,R13
4403 MOV @R14+,&$180E
4404 MOV @R14,&$180C
4405 MOV @R15+,R14
4406 MOV #RST_STATE,R0
4407 ENDCODE
4408 [THEN]
4409
4410 MARKER {RC5TOLCD}
4411
4412 [UNDEFINED] @ [IF]
4413 CODE @
4414 MOV @R14,R14
4415 MOV @R13+,R0
4416 ENDCODE
4417 [THEN]
4418
4419 [UNDEFINED] CONSTANT [IF]
4420 : CONSTANT 
4421 CREATE
4422 HI2LO
4423 MOV R14,-2(R10)
4424 MOV @R15+,R14
4425 MOV @R1+,R13
4426 MOV @R13+,R0
4427 ENDCODE
4428 [THEN]
4429
4430 [UNDEFINED] STATE [IF]
4431 $1DBE CONSTANT STATE
4432 [THEN]
4433
4434 [UNDEFINED] = [IF]
4435 CODE =
4436 SUB @R15+,R14
4437 0<> IF
4438     AND #0,R14
4439     MOV @R13+,R0
4440 THEN
4441 XOR #-1,R14
4442 MOV @R13+,R0
4443 ENDCODE
4444 [THEN]
4445
4446 [UNDEFINED] IF [IF]
4447 CODE IF
4448 SUB #2,R15
4449 MOV R14,0(R15)
4450 MOV &$1DC6,R14
4451 ADD #4,&$1DC6
4452 MOV #$404C,0(R14)
4453 ADD #2,R14
4454 MOV @R13+,R0
4455 ENDCODE IMMEDIATE
4456 [THEN]
4457
4458 [UNDEFINED] THEN [IF]
4459 CODE THEN
4460 MOV &$1DC6,0(R14)
4461 MOV @R15+,R14
4462 MOV @R13+,R0
4463 ENDCODE IMMEDIATE
4464 [THEN]
4465
4466 [UNDEFINED] ELSE [IF]
4467 CODE ELSE
4468 ADD #4,&$1DC6
4469 MOV &$1DC6,R10
4470 MOV #$4048,-4(R10)
4471 MOV R10,0(R14)
4472 SUB #2,R10
4473 MOV R10,R14
4474 MOV @R13+,R0
4475 ENDCODE IMMEDIATE
4476 [THEN]
4477
4478 [UNDEFINED] DEFER [IF]
4479
4480 : DEFER
4481 CREATE
4482 HI2LO
4483 MOV #$4030,-4(R10)
4484 MOV #$402C,-2(R10)
4485 MOV @R1+,R13
4486 MOV @R13+,R0
4487 ENDCODE
4488 [THEN]
4489
4490 [UNDEFINED] DEFER! [IF]
4491 CODE DEFER!
4492 MOV @R15+,2(R14)
4493 MOV @R15+,R14
4494 MOV @R13+,R0
4495 ENDCODE
4496 [THEN]
4497
4498 [UNDEFINED] IS [IF]
4499 : IS
4500 STATE @
4501 IF  POSTPONE ['] POSTPONE DEFER! 
4502 ELSE ' DEFER! 
4503 THEN
4504 ; IMMEDIATE
4505 [THEN]
4506
4507 [UNDEFINED] >BODY [IF]
4508 CODE >BODY
4509 ADD #4,R14
4510 MOV @R13+,R0
4511 ENDCODE
4512 [THEN]
4513
4514
4515 CODE 20_US
4516 BEGIN
4517     BEGIN
4518         BIT #1,&$3C0
4519     0<> UNTIL
4520     BIC #1,&$3C0
4521     SUB #1,R14
4522 U< UNTIL
4523 MOV @R15+,R14
4524 MOV @R13+,R0
4525 ENDCODE
4526
4527 CODE TOP_LCD
4528     BIS.B #4,&$243
4529     BIT.B #1,&$241
4530 0= IF
4531     AND.B #$0F,R14
4532     MOV.B R14,&$222
4533     BIC.B #4,&$243
4534     MOV @R15+,R14
4535     MOV @R13+,R0
4536 THEN
4537     SUB #2,R15
4538     MOV R14,0(R15)
4539     BIC.B #4,&$243
4540     MOV.B &$220,R14
4541     AND.B #$0F,R14
4542     MOV @R13+,R0
4543 ENDCODE
4544
4545 CODE LCD_WRC
4546     BIS.B #2,&$243
4547 BW1 SUB #2,R15
4548     MOV R14,0(R15)
4549     RRUM #4,R14
4550     BIC.B #1,&$243
4551     BIS.B #$0F,&$224
4552 COLON
4553     TOP_LCD 2 20_US
4554     TOP_LCD 2 20_US 
4555 ;
4556
4557 CODE LCD_WRF
4558     BIC.B #2,&$243
4559     GOTO BW1
4560 ENDCODE
4561
4562 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4563 : LCD_HOME $02 LCD_WRF 100 20_us ;
4564
4565
4566
4567 ASM WDT_INT
4568 ADD #2,R1
4569 BIT.B #$20,&$240
4570 0= IF
4571     CMP #19,&$3D6
4572     U< IF
4573         ADD #1,&$3D6
4574     THEN
4575 ELSE
4576     BIT.B #$40,&$240
4577     0= IF
4578         CMP #3,&$3D6
4579         U>= IF
4580            SUB #1,&$3D6
4581         THEN
4582     THEN
4583 THEN
4584 BW1
4585 MOV @R1+,R0
4586 ENDASM
4587
4588 ASM RC5_INT
4589 ADD #2,R1
4590 $1806 @ 16000 = [IF]
4591     MOV #1,&$3A0
4592 [THEN]
4593 $1806 @ 24000 = [IF]
4594     MOV #2,&$3A0
4595 [THEN]
4596 MOV #1778,R9
4597 MOV #14,R10
4598 BEGIN
4599 MOV #%1011100100,&$380
4600     RRUM    #1,R9
4601     MOV     R9,R8
4602     RRUM    #1,R8
4603     ADD     R9,R8
4604     BEGIN   CMP R8,&$390
4605     U>= UNTIL
4606     BIT.B   #4,&$200
4607     ADDC    R11,R11
4608     MOV.B   &$200,&$208
4609     BIC.B   #4,&$20C
4610     SUB     #1,R10
4611 0<> WHILE
4612     ADD R9,R8
4613     BEGIN
4614         MOV &$390,R9
4615         CMP R8,R9
4616         U>= IF
4617         BIC #$30,&$380
4618         GOTO BW1
4619         THEN
4620         BIT.B #4,&$20C
4621     0<> UNTIL
4622 REPEAT
4623 BIC #$30,&$380
4624 RLAM    #1,R11
4625 MOV.B   R11,R9
4626 RRUM    #2,R9
4627 BIT     #$4000,R11
4628 0= IF   BIS #$40,R9
4629 THEN
4630 RRUM    #3,R11
4631 XOR     @R1,R11
4632 BIT     #$400,R11
4633 0= ?GOTO BW1
4634 XOR #$400,0(R1)
4635 SUB #8,R15
4636 MOV R14,6(R15)
4637 MOV &$1DDC,4(R15)
4638 MOV #$10,&$1DDC
4639 MOV R9,0(R15)
4640 MOV #0,R14
4641 LO2HI
4642     LCD_CLEAR
4643     <# # #S #36 HOLD #>
4644     ['] LCD_WRC IS EMIT
4645     TYPE
4646     ['] EMIT >BODY IS EMIT
4647 HI2LO
4648 MOV @R15+,&$1DDC
4649 MOV @R15+,R14
4650 MOV @R1+,R0
4651 ENDASM
4652
4653 ASM BACKGROUND
4654 BEGIN
4655     CALL &$1814
4656     BIS &$180A,R2
4657 AGAIN
4658 ENDASM
4659
4660 ASM SYS_OUT
4661     MOV #WARM,R9
4662     ADD #4,R9
4663     MOV R9,R0
4664 ENDASM
4665
4666 CODE STOP
4667 BW1 MOV #$4000,R9
4668     ADD #4,R9
4669     MOV R9,-2(R9)
4670     MOV #WARM,R9
4671     MOV #SYS_OUT,2(R9)
4672     BIC.B #4,&$20A
4673     BIC.B #4,&$20C
4674     MOV #0,&$3C0
4675     MOV #0,&$340
4676     MOV #0,&$342
4677     CALL #$400E
4678 COLON
4679 ECHO
4680 ." RC5toLCD is removed,"
4681 ."  type START to restart"
4682  WARM
4683 ;
4684
4685 CODE SYS_INIT
4686 MOV #%10_1101_0100,&$3C0
4687 $1806 @ 16000 = [IF]
4688     MOV #1,&$3E0
4689 [THEN]
4690 $1806 @ 24000 = [IF]
4691     MOV #2,&$3E0
4692 [THEN]
4693     MOV #19,&$3D2
4694 MOV #%0110_0000,&$3C6
4695     MOV #10,&$3D6
4696     BIS.B #$20,&$204
4697     BIS.B #$20,&$20A
4698     BIS.B #7,&$245
4699     BIC.B #7,&$247
4700     BIS.B #$0F,&$224
4701     BIC.B #$0F,&$226
4702     BIS.B #4,&$20A
4703     BIC.B #4,&$20C
4704     MOV #RC5_INT,&$FFDE
4705 MOV #%01_0001_0100,&$340
4706     MOV ##3276,&$352
4707     MOV #%10000,&$342
4708     MOV #WDT_INT,&$FFEA
4709 BIC #1,&$130
4710 BIS.B #3,&$20D
4711 MOV &$1808,R8
4712 CMP #4,R8
4713 0= ?GOTO BW1
4714 COLON
4715     #1000 20_US
4716     %011 TOP_LCD
4717     #205 20_US
4718     %011 TOP_LCD
4719     #5 20_US
4720     %011 TOP_LCD
4721     #2 20_US
4722     %010 TOP_LCD
4723     #2 20_US
4724     %00101000 LCD_WRF
4725     %1000 LCD_WRF
4726     LCD_CLEAR
4727     %0110 LCD_WRF
4728     %1100 LCD_WRF
4729     LCD_CLEAR
4730     ['] LCD_HOME IS CR
4731     ['] LCD_WRC  IS EMIT
4732     CR ." I love you"
4733     ['] CR >BODY IS CR
4734     ['] EMIT >BODY IS EMIT
4735     ." RC5toLCD is running. Type STOP to quit"
4736     PWR_STATE ABORT
4737 ;
4738
4739 CODE START
4740 MOV #$4000,R9
4741 MOV #BACKGROUND,2(R9)
4742 MOV #WARM,R9
4743 MOV #SYS_INIT,2(R9)
4744 MOV R9,R0
4745 ENDCODE 
4746
4747 ECHO
4748             ; downloading RC5toLCD.4th is done
4749 RST_HERE    ; this app is protected against <reset>
4750
4751
4752 RST_STATE
4753
4754 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4755
4756 [UNDEFINED] MARKER [IF]
4757 : MARKER
4758 CREATE
4759 HI2LO
4760 MOV &$1DC8,0(R10)
4761 SUB #2,R8
4762 MOV R8,2(R10)
4763 ADD #4,&$1DC6
4764 LO2HI
4765 DOES>
4766 HI2LO
4767 MOV @R1+,R13
4768 MOV @R14+,&$180E
4769 MOV @R14,&$180C
4770 MOV @R15+,R14
4771 MOV #RST_STATE,R0
4772 ENDCODE
4773 [THEN]
4774
4775 MARKER {RC5TOLCD}
4776
4777 [UNDEFINED] @ [IF]
4778 CODE @
4779 MOV @R14,R14
4780 MOV @R13+,R0
4781 ENDCODE
4782 [THEN]
4783
4784 [UNDEFINED] CONSTANT [IF]
4785 : CONSTANT 
4786 CREATE
4787 HI2LO
4788 MOV R14,-2(R10)
4789 MOV @R15+,R14
4790 MOV @R1+,R13
4791 MOV @R13+,R0
4792 ENDCODE
4793 [THEN]
4794
4795 [UNDEFINED] STATE [IF]
4796 $1DBE CONSTANT STATE
4797 [THEN]
4798
4799 [UNDEFINED] = [IF]
4800 CODE =
4801 SUB @R15+,R14
4802 0<> IF
4803     AND #0,R14
4804     MOV @R13+,R0
4805 THEN
4806 XOR #-1,R14
4807 MOV @R13+,R0
4808 ENDCODE
4809 [THEN]
4810
4811 [UNDEFINED] IF [IF]
4812 CODE IF
4813 SUB #2,R15
4814 MOV R14,0(R15)
4815 MOV &$1DC6,R14
4816 ADD #4,&$1DC6
4817 MOV #$404C,0(R14)
4818 ADD #2,R14
4819 MOV @R13+,R0
4820 ENDCODE IMMEDIATE
4821 [THEN]
4822
4823 [UNDEFINED] THEN [IF]
4824 CODE THEN
4825 MOV &$1DC6,0(R14)
4826 MOV @R15+,R14
4827 MOV @R13+,R0
4828 ENDCODE IMMEDIATE
4829 [THEN]
4830
4831 [UNDEFINED] ELSE [IF]
4832 CODE ELSE
4833 ADD #4,&$1DC6
4834 MOV &$1DC6,R10
4835 MOV #$4048,-4(R10)
4836 MOV R10,0(R14)
4837 SUB #2,R10
4838 MOV R10,R14
4839 MOV @R13+,R0
4840 ENDCODE IMMEDIATE
4841 [THEN]
4842
4843 [UNDEFINED] DEFER [IF]
4844
4845 : DEFER
4846 CREATE
4847 HI2LO
4848 MOV #$4030,-4(R10)
4849 MOV #$402C,-2(R10)
4850 MOV @R1+,R13
4851 MOV @R13+,R0
4852 ENDCODE
4853 [THEN]
4854
4855 [UNDEFINED] DEFER! [IF]
4856 CODE DEFER!
4857 MOV @R15+,2(R14)
4858 MOV @R15+,R14
4859 MOV @R13+,R0
4860 ENDCODE
4861 [THEN]
4862
4863 [UNDEFINED] IS [IF]
4864 : IS
4865 STATE @
4866 IF  POSTPONE ['] POSTPONE DEFER! 
4867 ELSE ' DEFER! 
4868 THEN
4869 ; IMMEDIATE
4870 [THEN]
4871
4872 [UNDEFINED] >BODY [IF]
4873 CODE >BODY
4874 ADD #4,R14
4875 MOV @R13+,R0
4876 ENDCODE
4877 [THEN]
4878
4879
4880 CODE 20_US
4881 BEGIN
4882     BEGIN
4883         BIT #1,&$3C0
4884     0<> UNTIL
4885     BIC #1,&$3C0
4886     SUB #1,R14
4887 U< UNTIL
4888 MOV @R15+,R14
4889 MOV @R13+,R0
4890 ENDCODE
4891
4892 CODE TOP_LCD
4893     BIS.B #4,&$243
4894     BIT.B #1,&$241
4895 0= IF
4896     AND.B #$0F,R14
4897     MOV.B R14,&$222
4898     BIC.B #4,&$243
4899     MOV @R15+,R14
4900     MOV @R13+,R0
4901 THEN
4902     SUB #2,R15
4903     MOV R14,0(R15)
4904     BIC.B #4,&$243
4905     MOV.B &$220,R14
4906     AND.B #$0F,R14
4907     MOV @R13+,R0
4908 ENDCODE
4909
4910 CODE LCD_WRC
4911     BIS.B #2,&$243
4912 BW1 SUB #2,R15
4913     MOV R14,0(R15)
4914     RRUM #4,R14
4915     BIC.B #1,&$243
4916     BIS.B #$0F,&$224
4917 COLON
4918     TOP_LCD 2 20_US
4919     TOP_LCD 2 20_US 
4920 ;
4921
4922 CODE LCD_WRF
4923     BIC.B #2,&$243
4924     GOTO BW1
4925 ENDCODE
4926
4927 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4928 : LCD_HOME $02 LCD_WRF 100 20_us ;
4929
4930
4931
4932 ASM WDT_INT
4933 ADD #2,R1
4934 BIT.B #$20,&$240
4935 0= IF
4936     CMP #19,&$3D6
4937     U< IF
4938         ADD #1,&$3D6
4939     THEN
4940 ELSE
4941     BIT.B #$40,&$240
4942     0= IF
4943         CMP #3,&$3D6
4944         U>= IF
4945            SUB #1,&$3D6
4946         THEN
4947     THEN
4948 THEN
4949 BW1
4950 MOV @R1+,R0
4951 ENDASM
4952
4953 ASM RC5_INT
4954 ADD #2,R1
4955 $1806 @ 16000 = [IF]
4956     MOV #1,&$3A0
4957 [THEN]
4958 $1806 @ 24000 = [IF]
4959     MOV #2,&$3A0
4960 [THEN]
4961 MOV #1778,R9
4962 MOV #14,R10
4963 BEGIN
4964 MOV #%1011100100,&$380
4965     RRUM    #1,R9
4966     MOV     R9,R8
4967     RRUM    #1,R8
4968     ADD     R9,R8
4969     BEGIN   CMP R8,&$390
4970     U>= UNTIL
4971     BIT.B   #4,&$200
4972     ADDC    R11,R11
4973     MOV.B   &$200,&$208
4974     BIC.B   #4,&$20C
4975     SUB     #1,R10
4976 0<> WHILE
4977     ADD R9,R8
4978     BEGIN
4979         MOV &$390,R9
4980         CMP R8,R9
4981         U>= IF
4982         BIC #$30,&$380
4983         GOTO BW1
4984         THEN
4985         BIT.B #4,&$20C
4986     0<> UNTIL
4987 REPEAT
4988 BIC #$30,&$380
4989 RLAM    #1,R11
4990 MOV.B   R11,R9
4991 RRUM    #2,R9
4992 BIT     #$4000,R11
4993 0= IF   BIS #$40,R9
4994 THEN
4995 RRUM    #3,R11
4996 XOR     @R1,R11
4997 BIT     #$400,R11
4998 0= ?GOTO BW1
4999 XOR #$400,0(R1)
5000 SUB #8,R15
5001 MOV R14,6(R15)
5002 MOV &$1DDC,4(R15)
5003 MOV #$10,&$1DDC
5004 MOV R9,0(R15)
5005 MOV #0,R14
5006 LO2HI
5007     LCD_CLEAR
5008     <# # #S #36 HOLD #>
5009     ['] LCD_WRC IS EMIT
5010     TYPE
5011     ['] EMIT >BODY IS EMIT
5012 HI2LO
5013 MOV @R15+,&$1DDC
5014 MOV @R15+,R14
5015 MOV @R1+,R0
5016 ENDASM
5017
5018 ASM BACKGROUND
5019 BEGIN
5020     CALL &$1814
5021     BIS &$180A,R2
5022 AGAIN
5023 ENDASM
5024
5025 ASM SYS_OUT
5026     MOV #WARM,R9
5027     ADD #4,R9
5028     MOV R9,R0
5029 ENDASM
5030
5031 CODE STOP
5032 BW1 MOV #$4000,R9
5033     ADD #4,R9
5034     MOV R9,-2(R9)
5035     MOV #WARM,R9
5036     MOV #SYS_OUT,2(R9)
5037     BIC.B #4,&$20A
5038     BIC.B #4,&$20C
5039     MOV #0,&$3C0
5040     MOV #0,&$340
5041     MOV #0,&$342
5042     CALL #$400E
5043 COLON
5044 ECHO
5045 ." RC5toLCD is removed,"
5046 ."  type START to restart"
5047  WARM
5048 ;
5049
5050 CODE SYS_INIT
5051 MOV #%10_1101_0100,&$3C0
5052 $1806 @ 16000 = [IF]
5053     MOV #1,&$3E0
5054 [THEN]
5055 $1806 @ 24000 = [IF]
5056     MOV #2,&$3E0
5057 [THEN]
5058     MOV #19,&$3D2
5059 MOV #%0110_0000,&$3C6
5060     MOV #10,&$3D6
5061     BIS.B #$20,&$204
5062     BIS.B #$20,&$20A
5063     BIS.B #7,&$245
5064     BIC.B #7,&$247
5065     BIS.B #$0F,&$224
5066     BIC.B #$0F,&$226
5067     BIS.B #4,&$20A
5068     BIC.B #4,&$20C
5069     MOV #RC5_INT,&$FFDE
5070 MOV #%01_0001_0100,&$340
5071     MOV ##3276,&$352
5072     MOV #%10000,&$342
5073     MOV #WDT_INT,&$FFEA
5074 BIC #1,&$130
5075 BIS.B #3,&$20D
5076 MOV &$1808,R8
5077 CMP #4,R8
5078 0= ?GOTO BW1
5079 COLON
5080     #1000 20_US
5081     %011 TOP_LCD
5082     #205 20_US
5083     %011 TOP_LCD
5084     #5 20_US
5085     %011 TOP_LCD
5086     #2 20_US
5087     %010 TOP_LCD
5088     #2 20_US
5089     %00101000 LCD_WRF
5090     %1000 LCD_WRF
5091     LCD_CLEAR
5092     %0110 LCD_WRF
5093     %1100 LCD_WRF
5094     LCD_CLEAR
5095     ['] LCD_HOME IS CR
5096     ['] LCD_WRC  IS EMIT
5097     CR ." I love you"
5098     ['] CR >BODY IS CR
5099     ['] EMIT >BODY IS EMIT
5100     ." RC5toLCD is running. Type STOP to quit"
5101     PWR_STATE ABORT
5102 ;
5103
5104 CODE START
5105 MOV #$4000,R9
5106 MOV #BACKGROUND,2(R9)
5107 MOV #WARM,R9
5108 MOV #SYS_INIT,2(R9)
5109 MOV R9,R0
5110 ENDCODE 
5111
5112 ECHO
5113             ; downloading RC5toLCD.4th is done
5114 RST_HERE    ; this app is protected against <reset>
5115
5116
5117 RST_STATE
5118
5119 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5120
5121 [UNDEFINED] MARKER [IF]
5122 : MARKER
5123 CREATE
5124 HI2LO
5125 MOV &$1DC8,0(R10)
5126 SUB #2,R8
5127 MOV R8,2(R10)
5128 ADD #4,&$1DC6
5129 LO2HI
5130 DOES>
5131 HI2LO
5132 MOV @R1+,R13
5133 MOV @R14+,&$180E
5134 MOV @R14,&$180C
5135 MOV @R15+,R14
5136 MOV #RST_STATE,R0
5137 ENDCODE
5138 [THEN]
5139
5140 MARKER {RC5TOLCD}
5141
5142 [UNDEFINED] @ [IF]
5143 CODE @
5144 MOV @R14,R14
5145 MOV @R13+,R0
5146 ENDCODE
5147 [THEN]
5148
5149 [UNDEFINED] CONSTANT [IF]
5150 : CONSTANT 
5151 CREATE
5152 HI2LO
5153 MOV R14,-2(R10)
5154 MOV @R15+,R14
5155 MOV @R1+,R13
5156 MOV @R13+,R0
5157 ENDCODE
5158 [THEN]
5159
5160 [UNDEFINED] STATE [IF]
5161 $1DBE CONSTANT STATE
5162 [THEN]
5163
5164 [UNDEFINED] = [IF]
5165 CODE =
5166 SUB @R15+,R14
5167 0<> IF
5168     AND #0,R14
5169     MOV @R13+,R0
5170 THEN
5171 XOR #-1,R14
5172 MOV @R13+,R0
5173 ENDCODE
5174 [THEN]
5175
5176 [UNDEFINED] IF [IF]
5177 CODE IF
5178 SUB #2,R15
5179 MOV R14,0(R15)
5180 MOV &$1DC6,R14
5181 ADD #4,&$1DC6
5182 MOV #$404C,0(R14)
5183 ADD #2,R14
5184 MOV @R13+,R0
5185 ENDCODE IMMEDIATE
5186 [THEN]
5187
5188 [UNDEFINED] THEN [IF]
5189 CODE THEN
5190 MOV &$1DC6,0(R14)
5191 MOV @R15+,R14
5192 MOV @R13+,R0
5193 ENDCODE IMMEDIATE
5194 [THEN]
5195
5196 [UNDEFINED] ELSE [IF]
5197 CODE ELSE
5198 ADD #4,&$1DC6
5199 MOV &$1DC6,R10
5200 MOV #$4048,-4(R10)
5201 MOV R10,0(R14)
5202 SUB #2,R10
5203 MOV R10,R14
5204 MOV @R13+,R0
5205 ENDCODE IMMEDIATE
5206 [THEN]
5207
5208 [UNDEFINED] DEFER [IF]
5209
5210 : DEFER
5211 CREATE
5212 HI2LO
5213 MOV #$4030,-4(R10)
5214 MOV #$402C,-2(R10)
5215 MOV @R1+,R13
5216 MOV @R13+,R0
5217 ENDCODE
5218 [THEN]
5219
5220 [UNDEFINED] DEFER! [IF]
5221 CODE DEFER!
5222 MOV @R15+,2(R14)
5223 MOV @R15+,R14
5224 MOV @R13+,R0
5225 ENDCODE
5226 [THEN]
5227
5228 [UNDEFINED] IS [IF]
5229 : IS
5230 STATE @
5231 IF  POSTPONE ['] POSTPONE DEFER! 
5232 ELSE ' DEFER! 
5233 THEN
5234 ; IMMEDIATE
5235 [THEN]
5236
5237 [UNDEFINED] >BODY [IF]
5238 CODE >BODY
5239 ADD #4,R14
5240 MOV @R13+,R0
5241 ENDCODE
5242 [THEN]
5243
5244
5245 CODE 20_US
5246 BEGIN
5247     BEGIN
5248         BIT #1,&$3C0
5249     0<> UNTIL
5250     BIC #1,&$3C0
5251     SUB #1,R14
5252 U< UNTIL
5253 MOV @R15+,R14
5254 MOV @R13+,R0
5255 ENDCODE
5256
5257 CODE TOP_LCD
5258     BIS.B #4,&$243
5259     BIT.B #1,&$241
5260 0= IF
5261     AND.B #$0F,R14
5262     MOV.B R14,&$222
5263     BIC.B #4,&$243
5264     MOV @R15+,R14
5265     MOV @R13+,R0
5266 THEN
5267     SUB #2,R15
5268     MOV R14,0(R15)
5269     BIC.B #4,&$243
5270     MOV.B &$220,R14
5271     AND.B #$0F,R14
5272     MOV @R13+,R0
5273 ENDCODE
5274
5275 CODE LCD_WRC
5276     BIS.B #2,&$243
5277 BW1 SUB #2,R15
5278     MOV R14,0(R15)
5279     RRUM #4,R14
5280     BIC.B #1,&$243
5281     BIS.B #$0F,&$224
5282 COLON
5283     TOP_LCD 2 20_US
5284     TOP_LCD 2 20_US 
5285 ;
5286
5287 CODE LCD_WRF
5288     BIC.B #2,&$243
5289     GOTO BW1
5290 ENDCODE
5291
5292 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
5293 : LCD_HOME $02 LCD_WRF 100 20_us ;
5294
5295
5296
5297 ASM WDT_INT
5298 ADD #2,R1
5299 BIT.B #$20,&$240
5300 0= IF
5301     CMP #19,&$3D6
5302     U< IF
5303         ADD #1,&$3D6
5304     THEN
5305 ELSE
5306     BIT.B #$40,&$240
5307     0= IF
5308         CMP #3,&$3D6
5309         U>= IF
5310            SUB #1,&$3D6
5311         THEN
5312     THEN
5313 THEN
5314 BW1
5315 MOV @R1+,R0
5316 ENDASM
5317
5318 ASM RC5_INT
5319 ADD #2,R1
5320 $1806 @ 16000 = [IF]
5321     MOV #1,&$3A0
5322 [THEN]
5323 $1806 @ 24000 = [IF]
5324     MOV #2,&$3A0
5325 [THEN]
5326 MOV #1778,R9
5327 MOV #14,R10
5328 BEGIN
5329 MOV #%1011100100,&$380
5330     RRUM    #1,R9
5331     MOV     R9,R8
5332     RRUM    #1,R8
5333     ADD     R9,R8
5334     BEGIN   CMP R8,&$390
5335     U>= UNTIL
5336     BIT.B   #4,&$200
5337     ADDC    R11,R11
5338     MOV.B   &$200,&$208
5339     BIC.B   #4,&$20C
5340     SUB     #1,R10
5341 0<> WHILE
5342     ADD R9,R8
5343     BEGIN
5344         MOV &$390,R9
5345         CMP R8,R9
5346         U>= IF
5347         BIC #$30,&$380
5348         GOTO BW1
5349         THEN
5350         BIT.B #4,&$20C
5351     0<> UNTIL
5352 REPEAT
5353 BIC #$30,&$380
5354 RLAM    #1,R11
5355 MOV.B   R11,R9
5356 RRUM    #2,R9
5357 BIT     #$4000,R11
5358 0= IF   BIS #$40,R9
5359 THEN
5360 RRUM    #3,R11
5361 XOR     @R1,R11
5362 BIT     #$400,R11
5363 0= ?GOTO BW1
5364 XOR #$400,0(R1)
5365 SUB #8,R15
5366 MOV R14,6(R15)
5367 MOV &$1DDC,4(R15)
5368 MOV #$10,&$1DDC
5369 MOV R9,0(R15)
5370 MOV #0,R14
5371 LO2HI
5372     LCD_CLEAR
5373     <# # #S #36 HOLD #>
5374     ['] LCD_WRC IS EMIT
5375     TYPE
5376     ['] EMIT >BODY IS EMIT
5377 HI2LO
5378 MOV @R15+,&$1DDC
5379 MOV @R15+,R14
5380 MOV @R1+,R0
5381 ENDASM
5382
5383 ASM BACKGROUND
5384 BEGIN
5385     CALL &$1814
5386     BIS &$180A,R2
5387 AGAIN
5388 ENDASM
5389
5390 ASM SYS_OUT
5391     MOV #WARM,R9
5392     ADD #4,R9
5393     MOV R9,R0
5394 ENDASM
5395
5396 CODE STOP
5397 BW1 MOV #$4000,R9
5398     ADD #4,R9
5399     MOV R9,-2(R9)
5400     MOV #WARM,R9
5401     MOV #SYS_OUT,2(R9)
5402     BIC.B #4,&$20A
5403     BIC.B #4,&$20C
5404     MOV #0,&$3C0
5405     MOV #0,&$340
5406     MOV #0,&$342
5407     CALL #$400E
5408 COLON
5409 ECHO
5410 ." RC5toLCD is removed,"
5411 ."  type START to restart"
5412  WARM
5413 ;
5414
5415 CODE SYS_INIT
5416 MOV #%10_1101_0100,&$3C0
5417 $1806 @ 16000 = [IF]
5418     MOV #1,&$3E0
5419 [THEN]
5420 $1806 @ 24000 = [IF]
5421     MOV #2,&$3E0
5422 [THEN]
5423     MOV #19,&$3D2
5424 MOV #%0110_0000,&$3C6
5425     MOV #10,&$3D6
5426     BIS.B #$20,&$204
5427     BIS.B #$20,&$20A
5428     BIS.B #7,&$245
5429     BIC.B #7,&$247
5430     BIS.B #$0F,&$224
5431     BIC.B #$0F,&$226
5432     BIS.B #4,&$20A
5433     BIC.B #4,&$20C
5434     MOV #RC5_INT,&$FFDE
5435 MOV #%01_0001_0100,&$340
5436     MOV ##3276,&$352
5437     MOV #%10000,&$342
5438     MOV #WDT_INT,&$FFEA
5439 BIC #1,&$130
5440 BIS.B #3,&$20D
5441 MOV &$1808,R8
5442 CMP #4,R8
5443 0= ?GOTO BW1
5444 COLON
5445     #1000 20_US
5446     %011 TOP_LCD
5447     #205 20_US
5448     %011 TOP_LCD
5449     #5 20_US
5450     %011 TOP_LCD
5451     #2 20_US
5452     %010 TOP_LCD
5453     #2 20_US
5454     %00101000 LCD_WRF
5455     %1000 LCD_WRF
5456     LCD_CLEAR
5457     %0110 LCD_WRF
5458     %1100 LCD_WRF
5459     LCD_CLEAR
5460     ['] LCD_HOME IS CR
5461     ['] LCD_WRC  IS EMIT
5462     CR ." I love you"
5463     ['] CR >BODY IS CR
5464     ['] EMIT >BODY IS EMIT
5465     ." RC5toLCD is running. Type STOP to quit"
5466     PWR_STATE ABORT
5467 ;
5468
5469 CODE START
5470 MOV #$4000,R9
5471 MOV #BACKGROUND,2(R9)
5472 MOV #WARM,R9
5473 MOV #SYS_INIT,2(R9)
5474 MOV R9,R0
5475 ENDCODE 
5476
5477 ECHO
5478             ; downloading RC5toLCD.4th is done
5479 RST_HERE    ; this app is protected against <reset>
5480
5481
5482 RST_STATE
5483
5484 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5485
5486 [UNDEFINED] MARKER [IF]
5487 : MARKER
5488 CREATE
5489 HI2LO
5490 MOV &$1DC8,0(R10)
5491 SUB #2,R8
5492 MOV R8,2(R10)
5493 ADD #4,&$1DC6
5494 LO2HI
5495 DOES>
5496 HI2LO
5497 MOV @R1+,R13
5498 MOV @R14+,&$180E
5499 MOV @R14,&$180C
5500 MOV @R15+,R14
5501 MOV #RST_STATE,R0
5502 ENDCODE
5503 [THEN]
5504
5505 MARKER {RC5TOLCD}
5506
5507 [UNDEFINED] @ [IF]
5508 CODE @
5509 MOV @R14,R14
5510 MOV @R13+,R0
5511 ENDCODE
5512 [THEN]
5513
5514 [UNDEFINED] CONSTANT [IF]
5515 : CONSTANT 
5516 CREATE
5517 HI2LO
5518 MOV R14,-2(R10)
5519 MOV @R15+,R14
5520 MOV @R1+,R13
5521 MOV @R13+,R0
5522 ENDCODE
5523 [THEN]
5524
5525 [UNDEFINED] STATE [IF]
5526 $1DBE CONSTANT STATE
5527 [THEN]
5528
5529 [UNDEFINED] = [IF]
5530 CODE =
5531 SUB @R15+,R14
5532 0<> IF
5533     AND #0,R14
5534     MOV @R13+,R0
5535 THEN
5536 XOR #-1,R14
5537 MOV @R13+,R0
5538 ENDCODE
5539 [THEN]
5540
5541 [UNDEFINED] IF [IF]
5542 CODE IF
5543 SUB #2,R15
5544 MOV R14,0(R15)
5545 MOV &$1DC6,R14
5546 ADD #4,&$1DC6
5547 MOV #$404C,0(R14)
5548 ADD #2,R14
5549 MOV @R13+,R0
5550 ENDCODE IMMEDIATE
5551 [THEN]
5552
5553 [UNDEFINED] THEN [IF]
5554 CODE THEN
5555 MOV &$1DC6,0(R14)
5556 MOV @R15+,R14
5557 MOV @R13+,R0
5558 ENDCODE IMMEDIATE
5559 [THEN]
5560
5561 [UNDEFINED] ELSE [IF]
5562 CODE ELSE
5563 ADD #4,&$1DC6
5564 MOV &$1DC6,R10
5565 MOV #$4048,-4(R10)
5566 MOV R10,0(R14)
5567 SUB #2,R10
5568 MOV R10,R14
5569 MOV @R13+,R0
5570 ENDCODE IMMEDIATE
5571 [THEN]
5572
5573 [UNDEFINED] DEFER [IF]
5574
5575 : DEFER
5576 CREATE
5577 HI2LO
5578 MOV #$4030,-4(R10)
5579 MOV #$402C,-2(R10)
5580 MOV @R1+,R13
5581 MOV @R13+,R0
5582 ENDCODE
5583 [THEN]
5584
5585 [UNDEFINED] DEFER! [IF]
5586 CODE DEFER!
5587 MOV @R15+,2(R14)
5588 MOV @R15+,R14
5589 MOV @R13+,R0
5590 ENDCODE
5591 [THEN]
5592
5593 [UNDEFINED] IS [IF]
5594 : IS
5595 STATE @
5596 IF  POSTPONE ['] POSTPONE DEFER! 
5597 ELSE ' DEFER! 
5598 THEN
5599 ; IMMEDIATE
5600 [THEN]
5601
5602 [UNDEFINED] >BODY [IF]
5603 CODE >BODY
5604 ADD #4,R14
5605 MOV @R13+,R0
5606 ENDCODE
5607 [THEN]
5608
5609
5610 CODE 20_US
5611 BEGIN
5612     BEGIN
5613         BIT #1,&$3C0
5614     0<> UNTIL
5615     BIC #1,&$3C0
5616     SUB #1,R14
5617 U< UNTIL
5618 MOV @R15+,R14
5619 MOV @R13+,R0
5620 ENDCODE
5621
5622 CODE TOP_LCD
5623     BIS.B #4,&$243
5624     BIT.B #1,&$241
5625 0= IF
5626     AND.B #$0F,R14
5627     MOV.B R14,&$222
5628     BIC.B #4,&$243
5629     MOV @R15+,R14
5630     MOV @R13+,R0
5631 THEN
5632     SUB #2,R15
5633     MOV R14,0(R15)
5634     BIC.B #4,&$243
5635     MOV.B &$220,R14
5636     AND.B #$0F,R14
5637     MOV @R13+,R0
5638 ENDCODE
5639
5640 CODE LCD_WRC
5641     BIS.B #2,&$243
5642 BW1 SUB #2,R15
5643     MOV R14,0(R15)
5644     RRUM #4,R14
5645     BIC.B #1,&$243
5646     BIS.B #$0F,&$224
5647 COLON
5648     TOP_LCD 2 20_US
5649     TOP_LCD 2 20_US 
5650 ;
5651
5652 CODE LCD_WRF
5653     BIC.B #2,&$243
5654     GOTO BW1
5655 ENDCODE
5656
5657 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
5658 : LCD_HOME $02 LCD_WRF 100 20_us ;
5659
5660
5661
5662 ASM WDT_INT
5663 ADD #2,R1
5664 BIT.B #$20,&$240
5665 0= IF
5666     CMP #19,&$3D6
5667     U< IF
5668         ADD #1,&$3D6
5669     THEN
5670 ELSE
5671     BIT.B #$40,&$240
5672     0= IF
5673         CMP #3,&$3D6
5674         U>= IF
5675            SUB #1,&$3D6
5676         THEN
5677     THEN
5678 THEN
5679 BW1
5680 MOV @R1+,R0
5681 ENDASM
5682
5683 ASM RC5_INT
5684 ADD #2,R1
5685 $1806 @ 16000 = [IF]
5686     MOV #1,&$3A0
5687 [THEN]
5688 $1806 @ 24000 = [IF]
5689     MOV #2,&$3A0
5690 [THEN]
5691 MOV #1778,R9
5692 MOV #14,R10
5693 BEGIN
5694 MOV #%1011100100,&$380
5695     RRUM    #1,R9
5696     MOV     R9,R8
5697     RRUM    #1,R8
5698     ADD     R9,R8
5699     BEGIN   CMP R8,&$390
5700     U>= UNTIL
5701     BIT.B   #4,&$200
5702     ADDC    R11,R11
5703     MOV.B   &$200,&$208
5704     BIC.B   #4,&$20C
5705     SUB     #1,R10
5706 0<> WHILE
5707     ADD R9,R8
5708     BEGIN
5709         MOV &$390,R9
5710         CMP R8,R9
5711         U>= IF
5712         BIC #$30,&$380
5713         GOTO BW1
5714         THEN
5715         BIT.B #4,&$20C
5716     0<> UNTIL
5717 REPEAT
5718 BIC #$30,&$380
5719 RLAM    #1,R11
5720 MOV.B   R11,R9
5721 RRUM    #2,R9
5722 BIT     #$4000,R11
5723 0= IF   BIS #$40,R9
5724 THEN
5725 RRUM    #3,R11
5726 XOR     @R1,R11
5727 BIT     #$400,R11
5728 0= ?GOTO BW1
5729 XOR #$400,0(R1)
5730 SUB #8,R15
5731 MOV R14,6(R15)
5732 MOV &$1DDC,4(R15)
5733 MOV #$10,&$1DDC
5734 MOV R9,0(R15)
5735 MOV #0,R14
5736 LO2HI
5737     LCD_CLEAR
5738     <# # #S #36 HOLD #>
5739     ['] LCD_WRC IS EMIT
5740     TYPE
5741     ['] EMIT >BODY IS EMIT
5742 HI2LO
5743 MOV @R15+,&$1DDC
5744 MOV @R15+,R14
5745 MOV @R1+,R0
5746 ENDASM
5747
5748 ASM BACKGROUND
5749 BEGIN
5750     CALL &$1814
5751     BIS &$180A,R2
5752 AGAIN
5753 ENDASM
5754
5755 ASM SYS_OUT
5756     MOV #WARM,R9
5757     ADD #4,R9
5758     MOV R9,R0
5759 ENDASM
5760
5761 CODE STOP
5762 BW1 MOV #$4000,R9
5763     ADD #4,R9
5764     MOV R9,-2(R9)
5765     MOV #WARM,R9
5766     MOV #SYS_OUT,2(R9)
5767     BIC.B #4,&$20A
5768     BIC.B #4,&$20C
5769     MOV #0,&$3C0
5770     MOV #0,&$340
5771     MOV #0,&$342
5772     CALL #$400E
5773 COLON
5774 ECHO
5775 ." RC5toLCD is removed,"
5776 ."  type START to restart"
5777  WARM
5778 ;
5779
5780 CODE SYS_INIT
5781 MOV #%10_1101_0100,&$3C0
5782 $1806 @ 16000 = [IF]
5783     MOV #1,&$3E0
5784 [THEN]
5785 $1806 @ 24000 = [IF]
5786     MOV #2,&$3E0
5787 [THEN]
5788     MOV #19,&$3D2
5789 MOV #%0110_0000,&$3C6
5790     MOV #10,&$3D6
5791     BIS.B #$20,&$204
5792     BIS.B #$20,&$20A
5793     BIS.B #7,&$245
5794     BIC.B #7,&$247
5795     BIS.B #$0F,&$224
5796     BIC.B #$0F,&$226
5797     BIS.B #4,&$20A
5798     BIC.B #4,&$20C
5799     MOV #RC5_INT,&$FFDE
5800 MOV #%01_0001_0100,&$340
5801     MOV ##3276,&$352
5802     MOV #%10000,&$342
5803     MOV #WDT_INT,&$FFEA
5804 BIC #1,&$130
5805 BIS.B #3,&$20D
5806 MOV &$1808,R8
5807 CMP #4,R8
5808 0= ?GOTO BW1
5809 COLON
5810     #1000 20_US
5811     %011 TOP_LCD
5812     #205 20_US
5813     %011 TOP_LCD
5814     #5 20_US
5815     %011 TOP_LCD
5816     #2 20_US
5817     %010 TOP_LCD
5818     #2 20_US
5819     %00101000 LCD_WRF
5820     %1000 LCD_WRF
5821     LCD_CLEAR
5822     %0110 LCD_WRF
5823     %1100 LCD_WRF
5824     LCD_CLEAR
5825     ['] LCD_HOME IS CR
5826     ['] LCD_WRC  IS EMIT
5827     CR ." I love you"
5828     ['] CR >BODY IS CR
5829     ['] EMIT >BODY IS EMIT
5830     ." RC5toLCD is running. Type STOP to quit"
5831     PWR_STATE ABORT
5832 ;
5833
5834 CODE START
5835 MOV #$4000,R9
5836 MOV #BACKGROUND,2(R9)
5837 MOV #WARM,R9
5838 MOV #SYS_INIT,2(R9)
5839 MOV R9,R0
5840 ENDCODE 
5841
5842 ECHO
5843             ; downloading RC5toLCD.4th is done
5844 RST_HERE    ; this app is protected against <reset>
5845
5846
5847 RST_STATE
5848
5849 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5850
5851 [UNDEFINED] MARKER [IF]
5852 : MARKER
5853 CREATE
5854 HI2LO
5855 MOV &$1DC8,0(R10)
5856 SUB #2,R8
5857 MOV R8,2(R10)
5858 ADD #4,&$1DC6
5859 LO2HI
5860 DOES>
5861 HI2LO
5862 MOV @R1+,R13
5863 MOV @R14+,&$180E
5864 MOV @R14,&$180C
5865 MOV @R15+,R14
5866 MOV #RST_STATE,R0
5867 ENDCODE
5868 [THEN]
5869
5870 MARKER {RC5TOLCD}
5871
5872 [UNDEFINED] @ [IF]
5873 CODE @
5874 MOV @R14,R14
5875 MOV @R13+,R0
5876 ENDCODE
5877 [THEN]
5878
5879 [UNDEFINED] CONSTANT [IF]
5880 : CONSTANT 
5881 CREATE
5882 HI2LO
5883 MOV R14,-2(R10)
5884 MOV @R15+,R14
5885 MOV @R1+,R13
5886 MOV @R13+,R0
5887 ENDCODE
5888 [THEN]
5889
5890 [UNDEFINED] STATE [IF]
5891 $1DBE CONSTANT STATE
5892 [THEN]
5893
5894 [UNDEFINED] = [IF]
5895 CODE =
5896 SUB @R15+,R14
5897 0<> IF
5898     AND #0,R14
5899     MOV @R13+,R0
5900 THEN
5901 XOR #-1,R14
5902 MOV @R13+,R0
5903 ENDCODE
5904 [THEN]
5905
5906 [UNDEFINED] IF [IF]
5907 CODE IF
5908 SUB #2,R15
5909 MOV R14,0(R15)
5910 MOV &$1DC6,R14
5911 ADD #4,&$1DC6
5912 MOV #$404C,0(R14)
5913 ADD #2,R14
5914 MOV @R13+,R0
5915 ENDCODE IMMEDIATE
5916 [THEN]
5917
5918 [UNDEFINED] THEN [IF]
5919 CODE THEN
5920 MOV &$1DC6,0(R14)
5921 MOV @R15+,R14
5922 MOV @R13+,R0
5923 ENDCODE IMMEDIATE
5924 [THEN]
5925
5926 [UNDEFINED] ELSE [IF]
5927 CODE ELSE
5928 ADD #4,&$1DC6
5929 MOV &$1DC6,R10
5930 MOV #$4048,-4(R10)
5931 MOV R10,0(R14)
5932 SUB #2,R10
5933 MOV R10,R14
5934 MOV @R13+,R0
5935 ENDCODE IMMEDIATE
5936 [THEN]
5937
5938 [UNDEFINED] DEFER [IF]
5939
5940 : DEFER
5941 CREATE
5942 HI2LO
5943 MOV #$4030,-4(R10)
5944 MOV #$402C,-2(R10)
5945 MOV @R1+,R13
5946 MOV @R13+,R0
5947 ENDCODE
5948 [THEN]
5949
5950 [UNDEFINED] DEFER! [IF]
5951 CODE DEFER!
5952 MOV @R15+,2(R14)
5953 MOV @R15+,R14
5954 MOV @R13+,R0
5955 ENDCODE
5956 [THEN]
5957
5958 [UNDEFINED] IS [IF]
5959 : IS
5960 STATE @
5961 IF  POSTPONE ['] POSTPONE DEFER! 
5962 ELSE ' DEFER! 
5963 THEN
5964 ; IMMEDIATE
5965 [THEN]
5966
5967 [UNDEFINED] >BODY [IF]
5968 CODE >BODY
5969 ADD #4,R14
5970 MOV @R13+,R0
5971 ENDCODE
5972 [THEN]
5973
5974
5975 CODE 20_US
5976 BEGIN
5977     BEGIN
5978         BIT #1,&$3C0
5979     0<> UNTIL
5980     BIC #1,&$3C0
5981     SUB #1,R14
5982 U< UNTIL
5983 MOV @R15+,R14
5984 MOV @R13+,R0
5985 ENDCODE
5986
5987 CODE TOP_LCD
5988     BIS.B #4,&$243
5989     BIT.B #1,&$241
5990 0= IF
5991     AND.B #$0F,R14
5992     MOV.B R14,&$222
5993     BIC.B #4,&$243
5994     MOV @R15+,R14
5995     MOV @R13+,R0
5996 THEN
5997     SUB #2,R15
5998     MOV R14,0(R15)
5999     BIC.B #4,&$243
6000     MOV.B &$220,R14
6001     AND.B #$0F,R14
6002     MOV @R13+,R0
6003 ENDCODE
6004
6005 CODE LCD_WRC
6006     BIS.B #2,&$243
6007 BW1 SUB #2,R15
6008     MOV R14,0(R15)
6009     RRUM #4,R14
6010     BIC.B #1,&$243
6011     BIS.B #$0F,&$224
6012 COLON
6013     TOP_LCD 2 20_US
6014     TOP_LCD 2 20_US 
6015 ;
6016
6017 CODE LCD_WRF
6018     BIC.B #2,&$243
6019     GOTO BW1
6020 ENDCODE
6021
6022 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6023 : LCD_HOME $02 LCD_WRF 100 20_us ;
6024
6025
6026
6027 ASM WDT_INT
6028 ADD #2,R1
6029 BIT.B #$20,&$240
6030 0= IF
6031     CMP #19,&$3D6
6032     U< IF
6033         ADD #1,&$3D6
6034     THEN
6035 ELSE
6036     BIT.B #$40,&$240
6037     0= IF
6038         CMP #3,&$3D6
6039         U>= IF
6040            SUB #1,&$3D6
6041         THEN
6042     THEN
6043 THEN
6044 BW1
6045 MOV @R1+,R0
6046 ENDASM
6047
6048 ASM RC5_INT
6049 ADD #2,R1
6050 $1806 @ 16000 = [IF]
6051     MOV #1,&$3A0
6052 [THEN]
6053 $1806 @ 24000 = [IF]
6054     MOV #2,&$3A0
6055 [THEN]
6056 MOV #1778,R9
6057 MOV #14,R10
6058 BEGIN
6059 MOV #%1011100100,&$380
6060     RRUM    #1,R9
6061     MOV     R9,R8
6062     RRUM    #1,R8
6063     ADD     R9,R8
6064     BEGIN   CMP R8,&$390
6065     U>= UNTIL
6066     BIT.B   #4,&$200
6067     ADDC    R11,R11
6068     MOV.B   &$200,&$208
6069     BIC.B   #4,&$20C
6070     SUB     #1,R10
6071 0<> WHILE
6072     ADD R9,R8
6073     BEGIN
6074         MOV &$390,R9
6075         CMP R8,R9
6076         U>= IF
6077         BIC #$30,&$380
6078         GOTO BW1
6079         THEN
6080         BIT.B #4,&$20C
6081     0<> UNTIL
6082 REPEAT
6083 BIC #$30,&$380
6084 RLAM    #1,R11
6085 MOV.B   R11,R9
6086 RRUM    #2,R9
6087 BIT     #$4000,R11
6088 0= IF   BIS #$40,R9
6089 THEN
6090 RRUM    #3,R11
6091 XOR     @R1,R11
6092 BIT     #$400,R11
6093 0= ?GOTO BW1
6094 XOR #$400,0(R1)
6095 SUB #8,R15
6096 MOV R14,6(R15)
6097 MOV &$1DDC,4(R15)
6098 MOV #$10,&$1DDC
6099 MOV R9,0(R15)
6100 MOV #0,R14
6101 LO2HI
6102     LCD_CLEAR
6103     <# # #S #36 HOLD #>
6104     ['] LCD_WRC IS EMIT
6105     TYPE
6106     ['] EMIT >BODY IS EMIT
6107 HI2LO
6108 MOV @R15+,&$1DDC
6109 MOV @R15+,R14
6110 MOV @R1+,R0
6111 ENDASM
6112
6113 ASM BACKGROUND
6114 BEGIN
6115     CALL &$1814
6116     BIS &$180A,R2
6117 AGAIN
6118 ENDASM
6119
6120 ASM SYS_OUT
6121     MOV #WARM,R9
6122     ADD #4,R9
6123     MOV R9,R0
6124 ENDASM
6125
6126 CODE STOP
6127 BW1 MOV #$4000,R9
6128     ADD #4,R9
6129     MOV R9,-2(R9)
6130     MOV #WARM,R9
6131     MOV #SYS_OUT,2(R9)
6132     BIC.B #4,&$20A
6133     BIC.B #4,&$20C
6134     MOV #0,&$3C0
6135     MOV #0,&$340
6136     MOV #0,&$342
6137     CALL #$400E
6138 COLON
6139 ECHO
6140 ." RC5toLCD is removed,"
6141 ."  type START to restart"
6142  WARM
6143 ;
6144
6145 CODE SYS_INIT
6146 MOV #%10_1101_0100,&$3C0
6147 $1806 @ 16000 = [IF]
6148     MOV #1,&$3E0
6149 [THEN]
6150 $1806 @ 24000 = [IF]
6151     MOV #2,&$3E0
6152 [THEN]
6153     MOV #19,&$3D2
6154 MOV #%0110_0000,&$3C6
6155     MOV #10,&$3D6
6156     BIS.B #$20,&$204
6157     BIS.B #$20,&$20A
6158     BIS.B #7,&$245
6159     BIC.B #7,&$247
6160     BIS.B #$0F,&$224
6161     BIC.B #$0F,&$226
6162     BIS.B #4,&$20A
6163     BIC.B #4,&$20C
6164     MOV #RC5_INT,&$FFDE
6165 MOV #%01_0001_0100,&$340
6166     MOV ##3276,&$352
6167     MOV #%10000,&$342
6168     MOV #WDT_INT,&$FFEA
6169 BIC #1,&$130
6170 BIS.B #3,&$20D
6171 MOV &$1808,R8
6172 CMP #4,R8
6173 0= ?GOTO BW1
6174 COLON
6175     #1000 20_US
6176     %011 TOP_LCD
6177     #205 20_US
6178     %011 TOP_LCD
6179     #5 20_US
6180     %011 TOP_LCD
6181     #2 20_US
6182     %010 TOP_LCD
6183     #2 20_US
6184     %00101000 LCD_WRF
6185     %1000 LCD_WRF
6186     LCD_CLEAR
6187     %0110 LCD_WRF
6188     %1100 LCD_WRF
6189     LCD_CLEAR
6190     ['] LCD_HOME IS CR
6191     ['] LCD_WRC  IS EMIT
6192     CR ." I love you"
6193     ['] CR >BODY IS CR
6194     ['] EMIT >BODY IS EMIT
6195     ." RC5toLCD is running. Type STOP to quit"
6196     PWR_STATE ABORT
6197 ;
6198
6199 CODE START
6200 MOV #$4000,R9
6201 MOV #BACKGROUND,2(R9)
6202 MOV #WARM,R9
6203 MOV #SYS_INIT,2(R9)
6204 MOV R9,R0
6205 ENDCODE 
6206
6207 ECHO
6208             ; downloading RC5toLCD.4th is done
6209 RST_HERE    ; this app is protected against <reset>
6210
6211
6212 RST_STATE
6213
6214 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6215
6216 [UNDEFINED] MARKER [IF]
6217 : MARKER
6218 CREATE
6219 HI2LO
6220 MOV &$1DC8,0(R10)
6221 SUB #2,R8
6222 MOV R8,2(R10)
6223 ADD #4,&$1DC6
6224 LO2HI
6225 DOES>
6226 HI2LO
6227 MOV @R1+,R13
6228 MOV @R14+,&$180E
6229 MOV @R14,&$180C
6230 MOV @R15+,R14
6231 MOV #RST_STATE,R0
6232 ENDCODE
6233 [THEN]
6234
6235 MARKER {RC5TOLCD}
6236
6237 [UNDEFINED] @ [IF]
6238 CODE @
6239 MOV @R14,R14
6240 MOV @R13+,R0
6241 ENDCODE
6242 [THEN]
6243
6244 [UNDEFINED] CONSTANT [IF]
6245 : CONSTANT 
6246 CREATE
6247 HI2LO
6248 MOV R14,-2(R10)
6249 MOV @R15+,R14
6250 MOV @R1+,R13
6251 MOV @R13+,R0
6252 ENDCODE
6253 [THEN]
6254
6255 [UNDEFINED] STATE [IF]
6256 $1DBE CONSTANT STATE
6257 [THEN]
6258
6259 [UNDEFINED] = [IF]
6260 CODE =
6261 SUB @R15+,R14
6262 0<> IF
6263     AND #0,R14
6264     MOV @R13+,R0
6265 THEN
6266 XOR #-1,R14
6267 MOV @R13+,R0
6268 ENDCODE
6269 [THEN]
6270
6271 [UNDEFINED] IF [IF]
6272 CODE IF
6273 SUB #2,R15
6274 MOV R14,0(R15)
6275 MOV &$1DC6,R14
6276 ADD #4,&$1DC6
6277 MOV #$404C,0(R14)
6278 ADD #2,R14
6279 MOV @R13+,R0
6280 ENDCODE IMMEDIATE
6281 [THEN]
6282
6283 [UNDEFINED] THEN [IF]
6284 CODE THEN
6285 MOV &$1DC6,0(R14)
6286 MOV @R15+,R14
6287 MOV @R13+,R0
6288 ENDCODE IMMEDIATE
6289 [THEN]
6290
6291 [UNDEFINED] ELSE [IF]
6292 CODE ELSE
6293 ADD #4,&$1DC6
6294 MOV &$1DC6,R10
6295 MOV #$4048,-4(R10)
6296 MOV R10,0(R14)
6297 SUB #2,R10
6298 MOV R10,R14
6299 MOV @R13+,R0
6300 ENDCODE IMMEDIATE
6301 [THEN]
6302
6303 [UNDEFINED] DEFER [IF]
6304
6305 : DEFER
6306 CREATE
6307 HI2LO
6308 MOV #$4030,-4(R10)
6309 MOV #$402C,-2(R10)
6310 MOV @R1+,R13
6311 MOV @R13+,R0
6312 ENDCODE
6313 [THEN]
6314
6315 [UNDEFINED] DEFER! [IF]
6316 CODE DEFER!
6317 MOV @R15+,2(R14)
6318 MOV @R15+,R14
6319 MOV @R13+,R0
6320 ENDCODE
6321 [THEN]
6322
6323 [UNDEFINED] IS [IF]
6324 : IS
6325 STATE @
6326 IF  POSTPONE ['] POSTPONE DEFER! 
6327 ELSE ' DEFER! 
6328 THEN
6329 ; IMMEDIATE
6330 [THEN]
6331
6332 [UNDEFINED] >BODY [IF]
6333 CODE >BODY
6334 ADD #4,R14
6335 MOV @R13+,R0
6336 ENDCODE
6337 [THEN]
6338
6339
6340 CODE 20_US
6341 BEGIN
6342     BEGIN
6343         BIT #1,&$3C0
6344     0<> UNTIL
6345     BIC #1,&$3C0
6346     SUB #1,R14
6347 U< UNTIL
6348 MOV @R15+,R14
6349 MOV @R13+,R0
6350 ENDCODE
6351
6352 CODE TOP_LCD
6353     BIS.B #4,&$243
6354     BIT.B #1,&$241
6355 0= IF
6356     AND.B #$0F,R14
6357     MOV.B R14,&$222
6358     BIC.B #4,&$243
6359     MOV @R15+,R14
6360     MOV @R13+,R0
6361 THEN
6362     SUB #2,R15
6363     MOV R14,0(R15)
6364     BIC.B #4,&$243
6365     MOV.B &$220,R14
6366     AND.B #$0F,R14
6367     MOV @R13+,R0
6368 ENDCODE
6369
6370 CODE LCD_WRC
6371     BIS.B #2,&$243
6372 BW1 SUB #2,R15
6373     MOV R14,0(R15)
6374     RRUM #4,R14
6375     BIC.B #1,&$243
6376     BIS.B #$0F,&$224
6377 COLON
6378     TOP_LCD 2 20_US
6379     TOP_LCD 2 20_US 
6380 ;
6381
6382 CODE LCD_WRF
6383     BIC.B #2,&$243
6384     GOTO BW1
6385 ENDCODE
6386
6387 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6388 : LCD_HOME $02 LCD_WRF 100 20_us ;
6389
6390
6391
6392 ASM WDT_INT
6393 ADD #2,R1
6394 BIT.B #$20,&$240
6395 0= IF
6396     CMP #19,&$3D6
6397     U< IF
6398         ADD #1,&$3D6
6399     THEN
6400 ELSE
6401     BIT.B #$40,&$240
6402     0= IF
6403         CMP #3,&$3D6
6404         U>= IF
6405            SUB #1,&$3D6
6406         THEN
6407     THEN
6408 THEN
6409 BW1
6410 MOV @R1+,R0
6411 ENDASM
6412
6413 ASM RC5_INT
6414 ADD #2,R1
6415 $1806 @ 16000 = [IF]
6416     MOV #1,&$3A0
6417 [THEN]
6418 $1806 @ 24000 = [IF]
6419     MOV #2,&$3A0
6420 [THEN]
6421 MOV #1778,R9
6422 MOV #14,R10
6423 BEGIN
6424 MOV #%1011100100,&$380
6425     RRUM    #1,R9
6426     MOV     R9,R8
6427     RRUM    #1,R8
6428     ADD     R9,R8
6429     BEGIN   CMP R8,&$390
6430     U>= UNTIL
6431     BIT.B   #4,&$200
6432     ADDC    R11,R11
6433     MOV.B   &$200,&$208
6434     BIC.B   #4,&$20C
6435     SUB     #1,R10
6436 0<> WHILE
6437     ADD R9,R8
6438     BEGIN
6439         MOV &$390,R9
6440         CMP R8,R9
6441         U>= IF
6442         BIC #$30,&$380
6443         GOTO BW1
6444         THEN
6445         BIT.B #4,&$20C
6446     0<> UNTIL
6447 REPEAT
6448 BIC #$30,&$380
6449 RLAM    #1,R11
6450 MOV.B   R11,R9
6451 RRUM    #2,R9
6452 BIT     #$4000,R11
6453 0= IF   BIS #$40,R9
6454 THEN
6455 RRUM    #3,R11
6456 XOR     @R1,R11
6457 BIT     #$400,R11
6458 0= ?GOTO BW1
6459 XOR #$400,0(R1)
6460 SUB #8,R15
6461 MOV R14,6(R15)
6462 MOV &$1DDC,4(R15)
6463 MOV #$10,&$1DDC
6464 MOV R9,0(R15)
6465 MOV #0,R14
6466 LO2HI
6467     LCD_CLEAR
6468     <# # #S #36 HOLD #>
6469     ['] LCD_WRC IS EMIT
6470     TYPE
6471     ['] EMIT >BODY IS EMIT
6472 HI2LO
6473 MOV @R15+,&$1DDC
6474 MOV @R15+,R14
6475 MOV @R1+,R0
6476 ENDASM
6477
6478 ASM BACKGROUND
6479 BEGIN
6480     CALL &$1814
6481     BIS &$180A,R2
6482 AGAIN
6483 ENDASM
6484
6485 ASM SYS_OUT
6486     MOV #WARM,R9
6487     ADD #4,R9
6488     MOV R9,R0
6489 ENDASM
6490
6491 CODE STOP
6492 BW1 MOV #$4000,R9
6493     ADD #4,R9
6494     MOV R9,-2(R9)
6495     MOV #WARM,R9
6496     MOV #SYS_OUT,2(R9)
6497     BIC.B #4,&$20A
6498     BIC.B #4,&$20C
6499     MOV #0,&$3C0
6500     MOV #0,&$340
6501     MOV #0,&$342
6502     CALL #$400E
6503 COLON
6504 ECHO
6505 ." RC5toLCD is removed,"
6506 ."  type START to restart"
6507  WARM
6508 ;
6509
6510 CODE SYS_INIT
6511 MOV #%10_1101_0100,&$3C0
6512 $1806 @ 16000 = [IF]
6513     MOV #1,&$3E0
6514 [THEN]
6515 $1806 @ 24000 = [IF]
6516     MOV #2,&$3E0
6517 [THEN]
6518     MOV #19,&$3D2
6519 MOV #%0110_0000,&$3C6
6520     MOV #10,&$3D6
6521     BIS.B #$20,&$204
6522     BIS.B #$20,&$20A
6523     BIS.B #7,&$245
6524     BIC.B #7,&$247
6525     BIS.B #$0F,&$224
6526     BIC.B #$0F,&$226
6527     BIS.B #4,&$20A
6528     BIC.B #4,&$20C
6529     MOV #RC5_INT,&$FFDE
6530 MOV #%01_0001_0100,&$340
6531     MOV ##3276,&$352
6532     MOV #%10000,&$342
6533     MOV #WDT_INT,&$FFEA
6534 BIC #1,&$130
6535 BIS.B #3,&$20D
6536 MOV &$1808,R8
6537 CMP #4,R8
6538 0= ?GOTO BW1
6539 COLON
6540     #1000 20_US
6541     %011 TOP_LCD
6542     #205 20_US
6543     %011 TOP_LCD
6544     #5 20_US
6545     %011 TOP_LCD
6546     #2 20_US
6547     %010 TOP_LCD
6548     #2 20_US
6549     %00101000 LCD_WRF
6550     %1000 LCD_WRF
6551     LCD_CLEAR
6552     %0110 LCD_WRF
6553     %1100 LCD_WRF
6554     LCD_CLEAR
6555     ['] LCD_HOME IS CR
6556     ['] LCD_WRC  IS EMIT
6557     CR ." I love you"
6558     ['] CR >BODY IS CR
6559     ['] EMIT >BODY IS EMIT
6560     ." RC5toLCD is running. Type STOP to quit"
6561     PWR_STATE ABORT
6562 ;
6563
6564 CODE START
6565 MOV #$4000,R9
6566 MOV #BACKGROUND,2(R9)
6567 MOV #WARM,R9
6568 MOV #SYS_INIT,2(R9)
6569 MOV R9,R0
6570 ENDCODE 
6571
6572 ECHO
6573             ; downloading RC5toLCD.4th is done
6574 RST_HERE    ; this app is protected against <reset>
6575
6576
6577 RST_STATE
6578
6579 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6580
6581 [UNDEFINED] MARKER [IF]
6582 : MARKER
6583 CREATE
6584 HI2LO
6585 MOV &$1DC8,0(R10)
6586 SUB #2,R8
6587 MOV R8,2(R10)
6588 ADD #4,&$1DC6
6589 LO2HI
6590 DOES>
6591 HI2LO
6592 MOV @R1+,R13
6593 MOV @R14+,&$180E
6594 MOV @R14,&$180C
6595 MOV @R15+,R14
6596 MOV #RST_STATE,R0
6597 ENDCODE
6598 [THEN]
6599
6600 MARKER {RC5TOLCD}
6601
6602 [UNDEFINED] @ [IF]
6603 CODE @
6604 MOV @R14,R14
6605 MOV @R13+,R0
6606 ENDCODE
6607 [THEN]
6608
6609 [UNDEFINED] CONSTANT [IF]
6610 : CONSTANT 
6611 CREATE
6612 HI2LO
6613 MOV R14,-2(R10)
6614 MOV @R15+,R14
6615 MOV @R1+,R13
6616 MOV @R13+,R0
6617 ENDCODE
6618 [THEN]
6619
6620 [UNDEFINED] STATE [IF]
6621 $1DBE CONSTANT STATE
6622 [THEN]
6623
6624 [UNDEFINED] = [IF]
6625 CODE =
6626 SUB @R15+,R14
6627 0<> IF
6628     AND #0,R14
6629     MOV @R13+,R0
6630 THEN
6631 XOR #-1,R14
6632 MOV @R13+,R0
6633 ENDCODE
6634 [THEN]
6635
6636 [UNDEFINED] IF [IF]
6637 CODE IF
6638 SUB #2,R15
6639 MOV R14,0(R15)
6640 MOV &$1DC6,R14
6641 ADD #4,&$1DC6
6642 MOV #$404C,0(R14)
6643 ADD #2,R14
6644 MOV @R13+,R0
6645 ENDCODE IMMEDIATE
6646 [THEN]
6647
6648 [UNDEFINED] THEN [IF]
6649 CODE THEN
6650 MOV &$1DC6,0(R14)
6651 MOV @R15+,R14
6652 MOV @R13+,R0
6653 ENDCODE IMMEDIATE
6654 [THEN]
6655
6656 [UNDEFINED] ELSE [IF]
6657 CODE ELSE
6658 ADD #4,&$1DC6
6659 MOV &$1DC6,R10
6660 MOV #$4048,-4(R10)
6661 MOV R10,0(R14)
6662 SUB #2,R10
6663 MOV R10,R14
6664 MOV @R13+,R0
6665 ENDCODE IMMEDIATE
6666 [THEN]
6667
6668 [UNDEFINED] DEFER [IF]
6669
6670 : DEFER
6671 CREATE
6672 HI2LO
6673 MOV #$4030,-4(R10)
6674 MOV #$402C,-2(R10)
6675 MOV @R1+,R13
6676 MOV @R13+,R0
6677 ENDCODE
6678 [THEN]
6679
6680 [UNDEFINED] DEFER! [IF]
6681 CODE DEFER!
6682 MOV @R15+,2(R14)
6683 MOV @R15+,R14
6684 MOV @R13+,R0
6685 ENDCODE
6686 [THEN]
6687
6688 [UNDEFINED] IS [IF]
6689 : IS
6690 STATE @
6691 IF  POSTPONE ['] POSTPONE DEFER! 
6692 ELSE ' DEFER! 
6693 THEN
6694 ; IMMEDIATE
6695 [THEN]
6696
6697 [UNDEFINED] >BODY [IF]
6698 CODE >BODY
6699 ADD #4,R14
6700 MOV @R13+,R0
6701 ENDCODE
6702 [THEN]
6703
6704
6705 CODE 20_US
6706 BEGIN
6707     BEGIN
6708         BIT #1,&$3C0
6709     0<> UNTIL
6710     BIC #1,&$3C0
6711     SUB #1,R14
6712 U< UNTIL
6713 MOV @R15+,R14
6714 MOV @R13+,R0
6715 ENDCODE
6716
6717 CODE TOP_LCD
6718     BIS.B #4,&$243
6719     BIT.B #1,&$241
6720 0= IF
6721     AND.B #$0F,R14
6722     MOV.B R14,&$222
6723     BIC.B #4,&$243
6724     MOV @R15+,R14
6725     MOV @R13+,R0
6726 THEN
6727     SUB #2,R15
6728     MOV R14,0(R15)
6729     BIC.B #4,&$243
6730     MOV.B &$220,R14
6731     AND.B #$0F,R14
6732     MOV @R13+,R0
6733 ENDCODE
6734
6735 CODE LCD_WRC
6736     BIS.B #2,&$243
6737 BW1 SUB #2,R15
6738     MOV R14,0(R15)
6739     RRUM #4,R14
6740     BIC.B #1,&$243
6741     BIS.B #$0F,&$224
6742 COLON
6743     TOP_LCD 2 20_US
6744     TOP_LCD 2 20_US 
6745 ;
6746
6747 CODE LCD_WRF
6748     BIC.B #2,&$243
6749     GOTO BW1
6750 ENDCODE
6751
6752 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6753 : LCD_HOME $02 LCD_WRF 100 20_us ;
6754
6755
6756
6757 ASM WDT_INT
6758 ADD #2,R1
6759 BIT.B #$20,&$240
6760 0= IF
6761     CMP #19,&$3D6
6762     U< IF
6763         ADD #1,&$3D6
6764     THEN
6765 ELSE
6766     BIT.B #$40,&$240
6767     0= IF
6768         CMP #3,&$3D6
6769         U>= IF
6770            SUB #1,&$3D6
6771         THEN
6772     THEN
6773 THEN
6774 BW1
6775 MOV @R1+,R0
6776 ENDASM
6777
6778 ASM RC5_INT
6779 ADD #2,R1
6780 $1806 @ 16000 = [IF]
6781     MOV #1,&$3A0
6782 [THEN]
6783 $1806 @ 24000 = [IF]
6784     MOV #2,&$3A0
6785 [THEN]
6786 MOV #1778,R9
6787 MOV #14,R10
6788 BEGIN
6789 MOV #%1011100100,&$380
6790     RRUM    #1,R9
6791     MOV     R9,R8
6792     RRUM    #1,R8
6793     ADD     R9,R8
6794     BEGIN   CMP R8,&$390
6795     U>= UNTIL
6796     BIT.B   #4,&$200
6797     ADDC    R11,R11
6798     MOV.B   &$200,&$208
6799     BIC.B   #4,&$20C
6800     SUB     #1,R10
6801 0<> WHILE
6802     ADD R9,R8
6803     BEGIN
6804         MOV &$390,R9
6805         CMP R8,R9
6806         U>= IF
6807         BIC #$30,&$380
6808         GOTO BW1
6809         THEN
6810         BIT.B #4,&$20C
6811     0<> UNTIL
6812 REPEAT
6813 BIC #$30,&$380
6814 RLAM    #1,R11
6815 MOV.B   R11,R9
6816 RRUM    #2,R9
6817 BIT     #$4000,R11
6818 0= IF   BIS #$40,R9
6819 THEN
6820 RRUM    #3,R11
6821 XOR     @R1,R11
6822 BIT     #$400,R11
6823 0= ?GOTO BW1
6824 XOR #$400,0(R1)
6825 SUB #8,R15
6826 MOV R14,6(R15)
6827 MOV &$1DDC,4(R15)
6828 MOV #$10,&$1DDC
6829 MOV R9,0(R15)
6830 MOV #0,R14
6831 LO2HI
6832     LCD_CLEAR
6833     <# # #S #36 HOLD #>
6834     ['] LCD_WRC IS EMIT
6835     TYPE
6836     ['] EMIT >BODY IS EMIT
6837 HI2LO
6838 MOV @R15+,&$1DDC
6839 MOV @R15+,R14
6840 MOV @R1+,R0
6841 ENDASM
6842
6843 ASM BACKGROUND
6844 BEGIN
6845     CALL &$1814
6846     BIS &$180A,R2
6847 AGAIN
6848 ENDASM
6849
6850 ASM SYS_OUT
6851     MOV #WARM,R9
6852     ADD #4,R9
6853     MOV R9,R0
6854 ENDASM
6855
6856 CODE STOP
6857 BW1 MOV #$4000,R9
6858     ADD #4,R9
6859     MOV R9,-2(R9)
6860     MOV #WARM,R9
6861     MOV #SYS_OUT,2(R9)
6862     BIC.B #4,&$20A
6863     BIC.B #4,&$20C
6864     MOV #0,&$3C0
6865     MOV #0,&$340
6866     MOV #0,&$342
6867     CALL #$400E
6868 COLON
6869 ECHO
6870 ." RC5toLCD is removed,"
6871 ."  type START to restart"
6872  WARM
6873 ;
6874
6875 CODE SYS_INIT
6876 MOV #%10_1101_0100,&$3C0
6877 $1806 @ 16000 = [IF]
6878     MOV #1,&$3E0
6879 [THEN]
6880 $1806 @ 24000 = [IF]
6881     MOV #2,&$3E0
6882 [THEN]
6883     MOV #19,&$3D2
6884 MOV #%0110_0000,&$3C6
6885     MOV #10,&$3D6
6886     BIS.B #$20,&$204
6887     BIS.B #$20,&$20A
6888     BIS.B #7,&$245
6889     BIC.B #7,&$247
6890     BIS.B #$0F,&$224
6891     BIC.B #$0F,&$226
6892     BIS.B #4,&$20A
6893     BIC.B #4,&$20C
6894     MOV #RC5_INT,&$FFDE
6895 MOV #%01_0001_0100,&$340
6896     MOV ##3276,&$352
6897     MOV #%10000,&$342
6898     MOV #WDT_INT,&$FFEA
6899 BIC #1,&$130
6900 BIS.B #3,&$20D
6901 MOV &$1808,R8
6902 CMP #4,R8
6903 0= ?GOTO BW1
6904 COLON
6905     #1000 20_US
6906     %011 TOP_LCD
6907     #205 20_US
6908     %011 TOP_LCD
6909     #5 20_US
6910     %011 TOP_LCD
6911     #2 20_US
6912     %010 TOP_LCD
6913     #2 20_US
6914     %00101000 LCD_WRF
6915     %1000 LCD_WRF
6916     LCD_CLEAR
6917     %0110 LCD_WRF
6918     %1100 LCD_WRF
6919     LCD_CLEAR
6920     ['] LCD_HOME IS CR
6921     ['] LCD_WRC  IS EMIT
6922     CR ." I love you"
6923     ['] CR >BODY IS CR
6924     ['] EMIT >BODY IS EMIT
6925     ." RC5toLCD is running. Type STOP to quit"
6926     PWR_STATE ABORT
6927 ;
6928
6929 CODE START
6930 MOV #$4000,R9
6931 MOV #BACKGROUND,2(R9)
6932 MOV #WARM,R9
6933 MOV #SYS_INIT,2(R9)
6934 MOV R9,R0
6935 ENDCODE 
6936
6937 ECHO
6938             ; downloading RC5toLCD.4th is done
6939 RST_HERE    ; this app is protected against <reset>
6940
6941
6942 RST_STATE
6943
6944 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6945
6946 [UNDEFINED] MARKER [IF]
6947 : MARKER
6948 CREATE
6949 HI2LO
6950 MOV &$1DC8,0(R10)
6951 SUB #2,R8
6952 MOV R8,2(R10)
6953 ADD #4,&$1DC6
6954 LO2HI
6955 DOES>
6956 HI2LO
6957 MOV @R1+,R13
6958 MOV @R14+,&$180E
6959 MOV @R14,&$180C
6960 MOV @R15+,R14
6961 MOV #RST_STATE,R0
6962 ENDCODE
6963 [THEN]
6964
6965 MARKER {RC5TOLCD}
6966
6967 [UNDEFINED] @ [IF]
6968 CODE @
6969 MOV @R14,R14
6970 MOV @R13+,R0
6971 ENDCODE
6972 [THEN]
6973
6974 [UNDEFINED] CONSTANT [IF]
6975 : CONSTANT 
6976 CREATE
6977 HI2LO
6978 MOV R14,-2(R10)
6979 MOV @R15+,R14
6980 MOV @R1+,R13
6981 MOV @R13+,R0
6982 ENDCODE
6983 [THEN]
6984
6985 [UNDEFINED] STATE [IF]
6986 $1DBE CONSTANT STATE
6987 [THEN]
6988
6989 [UNDEFINED] = [IF]
6990 CODE =
6991 SUB @R15+,R14
6992 0<> IF
6993     AND #0,R14
6994     MOV @R13+,R0
6995 THEN
6996 XOR #-1,R14
6997 MOV @R13+,R0
6998 ENDCODE
6999 [THEN]
7000
7001 [UNDEFINED] IF [IF]
7002 CODE IF
7003 SUB #2,R15
7004 MOV R14,0(R15)
7005 MOV &$1DC6,R14
7006 ADD #4,&$1DC6
7007 MOV #$404C,0(R14)
7008 ADD #2,R14
7009 MOV @R13+,R0
7010 ENDCODE IMMEDIATE
7011 [THEN]
7012
7013 [UNDEFINED] THEN [IF]
7014 CODE THEN
7015 MOV &$1DC6,0(R14)
7016 MOV @R15+,R14
7017 MOV @R13+,R0
7018 ENDCODE IMMEDIATE
7019 [THEN]
7020
7021 [UNDEFINED] ELSE [IF]
7022 CODE ELSE
7023 ADD #4,&$1DC6
7024 MOV &$1DC6,R10
7025 MOV #$4048,-4(R10)
7026 MOV R10,0(R14)
7027 SUB #2,R10
7028 MOV R10,R14
7029 MOV @R13+,R0
7030 ENDCODE IMMEDIATE
7031 [THEN]
7032
7033 [UNDEFINED] DEFER [IF]
7034
7035 : DEFER
7036 CREATE
7037 HI2LO
7038 MOV #$4030,-4(R10)
7039 MOV #$402C,-2(R10)
7040 MOV @R1+,R13
7041 MOV @R13+,R0
7042 ENDCODE
7043 [THEN]
7044
7045 [UNDEFINED] DEFER! [IF]
7046 CODE DEFER!
7047 MOV @R15+,2(R14)
7048 MOV @R15+,R14
7049 MOV @R13+,R0
7050 ENDCODE
7051 [THEN]
7052
7053 [UNDEFINED] IS [IF]
7054 : IS
7055 STATE @
7056 IF  POSTPONE ['] POSTPONE DEFER! 
7057 ELSE ' DEFER! 
7058 THEN
7059 ; IMMEDIATE
7060 [THEN]
7061
7062 [UNDEFINED] >BODY [IF]
7063 CODE >BODY
7064 ADD #4,R14
7065 MOV @R13+,R0
7066 ENDCODE
7067 [THEN]
7068
7069
7070 CODE 20_US
7071 BEGIN
7072     BEGIN
7073         BIT #1,&$3C0
7074     0<> UNTIL
7075     BIC #1,&$3C0
7076     SUB #1,R14
7077 U< UNTIL
7078 MOV @R15+,R14
7079 MOV @R13+,R0
7080 ENDCODE
7081
7082 CODE TOP_LCD
7083     BIS.B #4,&$243
7084     BIT.B #1,&$241
7085 0= IF
7086     AND.B #$0F,R14
7087     MOV.B R14,&$222
7088     BIC.B #4,&$243
7089     MOV @R15+,R14
7090     MOV @R13+,R0
7091 THEN
7092     SUB #2,R15
7093     MOV R14,0(R15)
7094     BIC.B #4,&$243
7095     MOV.B &$220,R14
7096     AND.B #$0F,R14
7097     MOV @R13+,R0
7098 ENDCODE
7099
7100 CODE LCD_WRC
7101     BIS.B #2,&$243
7102 BW1 SUB #2,R15
7103     MOV R14,0(R15)
7104     RRUM #4,R14
7105     BIC.B #1,&$243
7106     BIS.B #$0F,&$224
7107 COLON
7108     TOP_LCD 2 20_US
7109     TOP_LCD 2 20_US 
7110 ;
7111
7112 CODE LCD_WRF
7113     BIC.B #2,&$243
7114     GOTO BW1
7115 ENDCODE
7116
7117 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7118 : LCD_HOME $02 LCD_WRF 100 20_us ;
7119
7120
7121
7122 ASM WDT_INT
7123 ADD #2,R1
7124 BIT.B #$20,&$240
7125 0= IF
7126     CMP #19,&$3D6
7127     U< IF
7128         ADD #1,&$3D6
7129     THEN
7130 ELSE
7131     BIT.B #$40,&$240
7132     0= IF
7133         CMP #3,&$3D6
7134         U>= IF
7135            SUB #1,&$3D6
7136         THEN
7137     THEN
7138 THEN
7139 BW1
7140 MOV @R1+,R0
7141 ENDASM
7142
7143 ASM RC5_INT
7144 ADD #2,R1
7145 $1806 @ 16000 = [IF]
7146     MOV #1,&$3A0
7147 [THEN]
7148 $1806 @ 24000 = [IF]
7149     MOV #2,&$3A0
7150 [THEN]
7151 MOV #1778,R9
7152 MOV #14,R10
7153 BEGIN
7154 MOV #%1011100100,&$380
7155     RRUM    #1,R9
7156     MOV     R9,R8
7157     RRUM    #1,R8
7158     ADD     R9,R8
7159     BEGIN   CMP R8,&$390
7160     U>= UNTIL
7161     BIT.B   #4,&$200
7162     ADDC    R11,R11
7163     MOV.B   &$200,&$208
7164     BIC.B   #4,&$20C
7165     SUB     #1,R10
7166 0<> WHILE
7167     ADD R9,R8
7168     BEGIN
7169         MOV &$390,R9
7170         CMP R8,R9
7171         U>= IF
7172         BIC #$30,&$380
7173         GOTO BW1
7174         THEN
7175         BIT.B #4,&$20C
7176     0<> UNTIL
7177 REPEAT
7178 BIC #$30,&$380
7179 RLAM    #1,R11
7180 MOV.B   R11,R9
7181 RRUM    #2,R9
7182 BIT     #$4000,R11
7183 0= IF   BIS #$40,R9
7184 THEN
7185 RRUM    #3,R11
7186 XOR     @R1,R11
7187 BIT     #$400,R11
7188 0= ?GOTO BW1
7189 XOR #$400,0(R1)
7190 SUB #8,R15
7191 MOV R14,6(R15)
7192 MOV &$1DDC,4(R15)
7193 MOV #$10,&$1DDC
7194 MOV R9,0(R15)
7195 MOV #0,R14
7196 LO2HI
7197     LCD_CLEAR
7198     <# # #S #36 HOLD #>
7199     ['] LCD_WRC IS EMIT
7200     TYPE
7201     ['] EMIT >BODY IS EMIT
7202 HI2LO
7203 MOV @R15+,&$1DDC
7204 MOV @R15+,R14
7205 MOV @R1+,R0
7206 ENDASM
7207
7208 ASM BACKGROUND
7209 BEGIN
7210     CALL &$1814
7211     BIS &$180A,R2
7212 AGAIN
7213 ENDASM
7214
7215 ASM SYS_OUT
7216     MOV #WARM,R9
7217     ADD #4,R9
7218     MOV R9,R0
7219 ENDASM
7220
7221 CODE STOP
7222 BW1 MOV #$4000,R9
7223     ADD #4,R9
7224     MOV R9,-2(R9)
7225     MOV #WARM,R9
7226     MOV #SYS_OUT,2(R9)
7227     BIC.B #4,&$20A
7228     BIC.B #4,&$20C
7229     MOV #0,&$3C0
7230     MOV #0,&$340
7231     MOV #0,&$342
7232     CALL #$400E
7233 COLON
7234 ECHO
7235 ." RC5toLCD is removed,"
7236 ."  type START to restart"
7237  WARM
7238 ;
7239
7240 CODE SYS_INIT
7241 MOV #%10_1101_0100,&$3C0
7242 $1806 @ 16000 = [IF]
7243     MOV #1,&$3E0
7244 [THEN]
7245 $1806 @ 24000 = [IF]
7246     MOV #2,&$3E0
7247 [THEN]
7248     MOV #19,&$3D2
7249 MOV #%0110_0000,&$3C6
7250     MOV #10,&$3D6
7251     BIS.B #$20,&$204
7252     BIS.B #$20,&$20A
7253     BIS.B #7,&$245
7254     BIC.B #7,&$247
7255     BIS.B #$0F,&$224
7256     BIC.B #$0F,&$226
7257     BIS.B #4,&$20A
7258     BIC.B #4,&$20C
7259     MOV #RC5_INT,&$FFDE
7260 MOV #%01_0001_0100,&$340
7261     MOV ##3276,&$352
7262     MOV #%10000,&$342
7263     MOV #WDT_INT,&$FFEA
7264 BIC #1,&$130
7265 BIS.B #3,&$20D
7266 MOV &$1808,R8
7267 CMP #4,R8
7268 0= ?GOTO BW1
7269 COLON
7270     #1000 20_US
7271     %011 TOP_LCD
7272     #205 20_US
7273     %011 TOP_LCD
7274     #5 20_US
7275     %011 TOP_LCD
7276     #2 20_US
7277     %010 TOP_LCD
7278     #2 20_US
7279     %00101000 LCD_WRF
7280     %1000 LCD_WRF
7281     LCD_CLEAR
7282     %0110 LCD_WRF
7283     %1100 LCD_WRF
7284     LCD_CLEAR
7285     ['] LCD_HOME IS CR
7286     ['] LCD_WRC  IS EMIT
7287     CR ." I love you"
7288     ['] CR >BODY IS CR
7289     ['] EMIT >BODY IS EMIT
7290     ." RC5toLCD is running. Type STOP to quit"
7291     PWR_STATE ABORT
7292 ;
7293
7294 CODE START
7295 MOV #$4000,R9
7296 MOV #BACKGROUND,2(R9)
7297 MOV #WARM,R9
7298 MOV #SYS_INIT,2(R9)
7299 MOV R9,R0
7300 ENDCODE 
7301
7302 ECHO
7303             ; downloading RC5toLCD.4th is done
7304 RST_HERE    ; this app is protected against <reset>
7305
7306
7307 RST_STATE
7308
7309 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
7310
7311 [UNDEFINED] MARKER [IF]
7312 : MARKER
7313 CREATE
7314 HI2LO
7315 MOV &$1DC8,0(R10)
7316 SUB #2,R8
7317 MOV R8,2(R10)
7318 ADD #4,&$1DC6
7319 LO2HI
7320 DOES>
7321 HI2LO
7322 MOV @R1+,R13
7323 MOV @R14+,&$180E
7324 MOV @R14,&$180C
7325 MOV @R15+,R14
7326 MOV #RST_STATE,R0
7327 ENDCODE
7328 [THEN]
7329
7330 MARKER {RC5TOLCD}
7331
7332 [UNDEFINED] @ [IF]
7333 CODE @
7334 MOV @R14,R14
7335 MOV @R13+,R0
7336 ENDCODE
7337 [THEN]
7338
7339 [UNDEFINED] CONSTANT [IF]
7340 : CONSTANT 
7341 CREATE
7342 HI2LO
7343 MOV R14,-2(R10)
7344 MOV @R15+,R14
7345 MOV @R1+,R13
7346 MOV @R13+,R0
7347 ENDCODE
7348 [THEN]
7349
7350 [UNDEFINED] STATE [IF]
7351 $1DBE CONSTANT STATE
7352 [THEN]
7353
7354 [UNDEFINED] = [IF]
7355 CODE =
7356 SUB @R15+,R14
7357 0<> IF
7358     AND #0,R14
7359     MOV @R13+,R0
7360 THEN
7361 XOR #-1,R14
7362 MOV @R13+,R0
7363 ENDCODE
7364 [THEN]
7365
7366 [UNDEFINED] IF [IF]
7367 CODE IF
7368 SUB #2,R15
7369 MOV R14,0(R15)
7370 MOV &$1DC6,R14
7371 ADD #4,&$1DC6
7372 MOV #$404C,0(R14)
7373 ADD #2,R14
7374 MOV @R13+,R0
7375 ENDCODE IMMEDIATE
7376 [THEN]
7377
7378 [UNDEFINED] THEN [IF]
7379 CODE THEN
7380 MOV &$1DC6,0(R14)
7381 MOV @R15+,R14
7382 MOV @R13+,R0
7383 ENDCODE IMMEDIATE
7384 [THEN]
7385
7386 [UNDEFINED] ELSE [IF]
7387 CODE ELSE
7388 ADD #4,&$1DC6
7389 MOV &$1DC6,R10
7390 MOV #$4048,-4(R10)
7391 MOV R10,0(R14)
7392 SUB #2,R10
7393 MOV R10,R14
7394 MOV @R13+,R0
7395 ENDCODE IMMEDIATE
7396 [THEN]
7397
7398 [UNDEFINED] DEFER [IF]
7399
7400 : DEFER
7401 CREATE
7402 HI2LO
7403 MOV #$4030,-4(R10)
7404 MOV #$402C,-2(R10)
7405 MOV @R1+,R13
7406 MOV @R13+,R0
7407 ENDCODE
7408 [THEN]
7409
7410 [UNDEFINED] DEFER! [IF]
7411 CODE DEFER!
7412 MOV @R15+,2(R14)
7413 MOV @R15+,R14
7414 MOV @R13+,R0
7415 ENDCODE
7416 [THEN]
7417
7418 [UNDEFINED] IS [IF]
7419 : IS
7420 STATE @
7421 IF  POSTPONE ['] POSTPONE DEFER! 
7422 ELSE ' DEFER! 
7423 THEN
7424 ; IMMEDIATE
7425 [THEN]
7426
7427 [UNDEFINED] >BODY [IF]
7428 CODE >BODY
7429 ADD #4,R14
7430 MOV @R13+,R0
7431 ENDCODE
7432 [THEN]
7433
7434
7435 CODE 20_US
7436 BEGIN
7437     BEGIN
7438         BIT #1,&$3C0
7439     0<> UNTIL
7440     BIC #1,&$3C0
7441     SUB #1,R14
7442 U< UNTIL
7443 MOV @R15+,R14
7444 MOV @R13+,R0
7445 ENDCODE
7446
7447 CODE TOP_LCD
7448     BIS.B #4,&$243
7449     BIT.B #1,&$241
7450 0= IF
7451     AND.B #$0F,R14
7452     MOV.B R14,&$222
7453     BIC.B #4,&$243
7454     MOV @R15+,R14
7455     MOV @R13+,R0
7456 THEN
7457     SUB #2,R15
7458     MOV R14,0(R15)
7459     BIC.B #4,&$243
7460     MOV.B &$220,R14
7461     AND.B #$0F,R14
7462     MOV @R13+,R0
7463 ENDCODE
7464
7465 CODE LCD_WRC
7466     BIS.B #2,&$243
7467 BW1 SUB #2,R15
7468     MOV R14,0(R15)
7469     RRUM #4,R14
7470     BIC.B #1,&$243
7471     BIS.B #$0F,&$224
7472 COLON
7473     TOP_LCD 2 20_US
7474     TOP_LCD 2 20_US 
7475 ;
7476
7477 CODE LCD_WRF
7478     BIC.B #2,&$243
7479     GOTO BW1
7480 ENDCODE
7481
7482 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7483 : LCD_HOME $02 LCD_WRF 100 20_us ;
7484
7485
7486
7487 ASM WDT_INT
7488 ADD #2,R1
7489 BIT.B #$20,&$240
7490 0= IF
7491     CMP #19,&$3D6
7492     U< IF
7493         ADD #1,&$3D6
7494     THEN
7495 ELSE
7496     BIT.B #$40,&$240
7497     0= IF
7498         CMP #3,&$3D6
7499         U>= IF
7500            SUB #1,&$3D6
7501         THEN
7502     THEN
7503 THEN
7504 BW1
7505 MOV @R1+,R0
7506 ENDASM
7507
7508 ASM RC5_INT
7509 ADD #2,R1
7510 $1806 @ 16000 = [IF]
7511     MOV #1,&$3A0
7512 [THEN]
7513 $1806 @ 24000 = [IF]
7514     MOV #2,&$3A0
7515 [THEN]
7516 MOV #1778,R9
7517 MOV #14,R10
7518 BEGIN
7519 MOV #%1011100100,&$380
7520     RRUM    #1,R9
7521     MOV     R9,R8
7522     RRUM    #1,R8
7523     ADD     R9,R8
7524     BEGIN   CMP R8,&$390
7525     U>= UNTIL
7526     BIT.B   #4,&$200
7527     ADDC    R11,R11
7528     MOV.B   &$200,&$208
7529     BIC.B   #4,&$20C
7530     SUB     #1,R10
7531 0<> WHILE
7532     ADD R9,R8
7533     BEGIN
7534         MOV &$390,R9
7535         CMP R8,R9
7536         U>= IF
7537         BIC #$30,&$380
7538         GOTO BW1
7539         THEN
7540         BIT.B #4,&$20C
7541     0<> UNTIL
7542 REPEAT
7543 BIC #$30,&$380
7544 RLAM    #1,R11
7545 MOV.B   R11,R9
7546 RRUM    #2,R9
7547 BIT     #$4000,R11
7548 0= IF   BIS #$40,R9
7549 THEN
7550 RRUM    #3,R11
7551 XOR     @R1,R11
7552 BIT     #$400,R11
7553 0= ?GOTO BW1
7554 XOR #$400,0(R1)
7555 SUB #8,R15
7556 MOV R14,6(R15)
7557 MOV &$1DDC,4(R15)
7558 MOV #$10,&$1DDC
7559 MOV R9,0(R15)
7560 MOV #0,R14
7561 LO2HI
7562     LCD_CLEAR
7563     <# # #S #36 HOLD #>
7564     ['] LCD_WRC IS EMIT
7565     TYPE
7566     ['] EMIT >BODY IS EMIT
7567 HI2LO
7568 MOV @R15+,&$1DDC
7569 MOV @R15+,R14
7570 MOV @R1+,R0
7571 ENDASM
7572
7573 ASM BACKGROUND
7574 BEGIN
7575     CALL &$1814
7576     BIS &$180A,R2
7577 AGAIN
7578 ENDASM
7579
7580 ASM SYS_OUT
7581     MOV #WARM,R9
7582     ADD #4,R9
7583     MOV R9,R0
7584 ENDASM
7585
7586 CODE STOP
7587 BW1 MOV #$4000,R9
7588     ADD #4,R9
7589     MOV R9,-2(R9)
7590     MOV #WARM,R9
7591     MOV #SYS_OUT,2(R9)
7592     BIC.B #4,&$20A
7593     BIC.B #4,&$20C
7594     MOV #0,&$3C0
7595     MOV #0,&$340
7596     MOV #0,&$342
7597     CALL #$400E
7598 COLON
7599 ECHO
7600 ." RC5toLCD is removed,"
7601 ."  type START to restart"
7602  WARM
7603 ;
7604
7605 CODE SYS_INIT
7606 MOV #%10_1101_0100,&$3C0
7607 $1806 @ 16000 = [IF]
7608     MOV #1,&$3E0
7609 [THEN]
7610 $1806 @ 24000 = [IF]
7611     MOV #2,&$3E0
7612 [THEN]
7613     MOV #19,&$3D2
7614 MOV #%0110_0000,&$3C6
7615     MOV #10,&$3D6
7616     BIS.B #$20,&$204
7617     BIS.B #$20,&$20A
7618     BIS.B #7,&$245
7619     BIC.B #7,&$247
7620     BIS.B #$0F,&$224
7621     BIC.B #$0F,&$226
7622     BIS.B #4,&$20A
7623     BIC.B #4,&$20C
7624     MOV #RC5_INT,&$FFDE
7625 MOV #%01_0001_0100,&$340
7626     MOV ##3276,&$352
7627     MOV #%10000,&$342
7628     MOV #WDT_INT,&$FFEA
7629 BIC #1,&$130
7630 BIS.B #3,&$20D
7631 MOV &$1808,R8
7632 CMP #4,R8
7633 0= ?GOTO BW1
7634 COLON
7635     #1000 20_US
7636     %011 TOP_LCD
7637     #205 20_US
7638     %011 TOP_LCD
7639     #5 20_US
7640     %011 TOP_LCD
7641     #2 20_US
7642     %010 TOP_LCD
7643     #2 20_US
7644     %00101000 LCD_WRF
7645     %1000 LCD_WRF
7646     LCD_CLEAR
7647     %0110 LCD_WRF
7648     %1100 LCD_WRF
7649     LCD_CLEAR
7650     ['] LCD_HOME IS CR
7651     ['] LCD_WRC  IS EMIT
7652     CR ." I love you"
7653     ['] CR >BODY IS CR
7654     ['] EMIT >BODY IS EMIT
7655     ." RC5toLCD is running. Type STOP to quit"
7656     PWR_STATE ABORT
7657 ;
7658
7659 CODE START
7660 MOV #$4000,R9
7661 MOV #BACKGROUND,2(R9)
7662 MOV #WARM,R9
7663 MOV #SYS_INIT,2(R9)
7664 MOV R9,R0
7665 ENDCODE 
7666
7667 ECHO
7668             ; downloading RC5toLCD.4th is done
7669 RST_HERE    ; this app is protected against <reset>
7670
7671
7672 RST_STATE
7673
7674 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
7675
7676 [UNDEFINED] MARKER [IF]
7677 : MARKER
7678 CREATE
7679 HI2LO
7680 MOV &$1DC8,0(R10)
7681 SUB #2,R8
7682 MOV R8,2(R10)
7683 ADD #4,&$1DC6
7684 LO2HI
7685 DOES>
7686 HI2LO
7687 MOV @R1+,R13
7688 MOV @R14+,&$180E
7689 MOV @R14,&$180C
7690 MOV @R15+,R14
7691 MOV #RST_STATE,R0
7692 ENDCODE
7693 [THEN]
7694
7695 MARKER {RC5TOLCD}
7696
7697 [UNDEFINED] @ [IF]
7698 CODE @
7699 MOV @R14,R14
7700 MOV @R13+,R0
7701 ENDCODE
7702 [THEN]
7703
7704 [UNDEFINED] CONSTANT [IF]
7705 : CONSTANT 
7706 CREATE
7707 HI2LO
7708 MOV R14,-2(R10)
7709 MOV @R15+,R14
7710 MOV @R1+,R13
7711 MOV @R13+,R0
7712 ENDCODE
7713 [THEN]
7714
7715 [UNDEFINED] STATE [IF]
7716 $1DBE CONSTANT STATE
7717 [THEN]
7718
7719 [UNDEFINED] = [IF]
7720 CODE =
7721 SUB @R15+,R14
7722 0<> IF
7723     AND #0,R14
7724     MOV @R13+,R0
7725 THEN
7726 XOR #-1,R14
7727 MOV @R13+,R0
7728 ENDCODE
7729 [THEN]
7730
7731 [UNDEFINED] IF [IF]
7732 CODE IF
7733 SUB #2,R15
7734 MOV R14,0(R15)
7735 MOV &$1DC6,R14
7736 ADD #4,&$1DC6
7737 MOV #$404C,0(R14)
7738 ADD #2,R14
7739 MOV @R13+,R0
7740 ENDCODE IMMEDIATE
7741 [THEN]
7742
7743 [UNDEFINED] THEN [IF]
7744 CODE THEN
7745 MOV &$1DC6,0(R14)
7746 MOV @R15+,R14
7747 MOV @R13+,R0
7748 ENDCODE IMMEDIATE
7749 [THEN]
7750
7751 [UNDEFINED] ELSE [IF]
7752 CODE ELSE
7753 ADD #4,&$1DC6
7754 MOV &$1DC6,R10
7755 MOV #$4048,-4(R10)
7756 MOV R10,0(R14)
7757 SUB #2,R10
7758 MOV R10,R14
7759 MOV @R13+,R0
7760 ENDCODE IMMEDIATE
7761 [THEN]
7762
7763 [UNDEFINED] DEFER [IF]
7764
7765 : DEFER
7766 CREATE
7767 HI2LO
7768 MOV #$4030,-4(R10)
7769 MOV #$402C,-2(R10)
7770 MOV @R1+,R13
7771 MOV @R13+,R0
7772 ENDCODE
7773 [THEN]
7774
7775 [UNDEFINED] DEFER! [IF]
7776 CODE DEFER!
7777 MOV @R15+,2(R14)
7778 MOV @R15+,R14
7779 MOV @R13+,R0
7780 ENDCODE
7781 [THEN]
7782
7783 [UNDEFINED] IS [IF]
7784 : IS
7785 STATE @
7786 IF  POSTPONE ['] POSTPONE DEFER! 
7787 ELSE ' DEFER! 
7788 THEN
7789 ; IMMEDIATE
7790 [THEN]
7791
7792 [UNDEFINED] >BODY [IF]
7793 CODE >BODY
7794 ADD #4,R14
7795 MOV @R13+,R0
7796 ENDCODE
7797 [THEN]
7798
7799
7800 CODE 20_US
7801 BEGIN
7802     BEGIN
7803         BIT #1,&$3C0
7804     0<> UNTIL
7805     BIC #1,&$3C0
7806     SUB #1,R14
7807 U< UNTIL
7808 MOV @R15+,R14
7809 MOV @R13+,R0
7810 ENDCODE
7811
7812 CODE TOP_LCD
7813     BIS.B #4,&$243
7814     BIT.B #1,&$241
7815 0= IF
7816     AND.B #$0F,R14
7817     MOV.B R14,&$222
7818     BIC.B #4,&$243
7819     MOV @R15+,R14
7820     MOV @R13+,R0
7821 THEN
7822     SUB #2,R15
7823     MOV R14,0(R15)
7824     BIC.B #4,&$243
7825     MOV.B &$220,R14
7826     AND.B #$0F,R14
7827     MOV @R13+,R0
7828 ENDCODE
7829
7830 CODE LCD_WRC
7831     BIS.B #2,&$243
7832 BW1 SUB #2,R15
7833     MOV R14,0(R15)
7834     RRUM #4,R14
7835     BIC.B #1,&$243
7836     BIS.B #$0F,&$224
7837 COLON
7838     TOP_LCD 2 20_US
7839     TOP_LCD 2 20_US 
7840 ;
7841
7842 CODE LCD_WRF
7843     BIC.B #2,&$243
7844     GOTO BW1
7845 ENDCODE
7846
7847 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7848 : LCD_HOME $02 LCD_WRF 100 20_us ;
7849
7850
7851
7852 ASM WDT_INT
7853 ADD #2,R1
7854 BIT.B #$20,&$240
7855 0= IF
7856     CMP #19,&$3D6
7857     U< IF
7858         ADD #1,&$3D6
7859     THEN
7860 ELSE
7861     BIT.B #$40,&$240
7862     0= IF
7863         CMP #3,&$3D6
7864         U>= IF
7865            SUB #1,&$3D6
7866         THEN
7867     THEN
7868 THEN
7869 BW1
7870 MOV @R1+,R0
7871 ENDASM
7872
7873 ASM RC5_INT
7874 ADD #2,R1
7875 $1806 @ 16000 = [IF]
7876     MOV #1,&$3A0
7877 [THEN]
7878 $1806 @ 24000 = [IF]
7879     MOV #2,&$3A0
7880 [THEN]
7881 MOV #1778,R9
7882 MOV #14,R10
7883 BEGIN
7884 MOV #%1011100100,&$380
7885     RRUM    #1,R9
7886     MOV     R9,R8
7887     RRUM    #1,R8
7888     ADD     R9,R8
7889     BEGIN   CMP R8,&$390
7890     U>= UNTIL
7891     BIT.B   #4,&$200
7892     ADDC    R11,R11
7893     MOV.B   &$200,&$208
7894     BIC.B   #4,&$20C
7895     SUB     #1,R10
7896 0<> WHILE
7897     ADD R9,R8
7898     BEGIN
7899         MOV &$390,R9
7900         CMP R8,R9
7901         U>= IF
7902         BIC #$30,&$380
7903         GOTO BW1
7904         THEN
7905         BIT.B #4,&$20C
7906     0<> UNTIL
7907 REPEAT
7908 BIC #$30,&$380
7909 RLAM    #1,R11
7910 MOV.B   R11,R9
7911 RRUM    #2,R9
7912 BIT     #$4000,R11
7913 0= IF   BIS #$40,R9
7914 THEN
7915 RRUM    #3,R11
7916 XOR     @R1,R11
7917 BIT     #$400,R11
7918 0= ?GOTO BW1
7919 XOR #$400,0(R1)
7920 SUB #8,R15
7921 MOV R14,6(R15)
7922 MOV &$1DDC,4(R15)
7923 MOV #$10,&$1DDC
7924 MOV R9,0(R15)
7925 MOV #0,R14
7926 LO2HI
7927     LCD_CLEAR
7928     <# # #S #36 HOLD #>
7929     ['] LCD_WRC IS EMIT
7930     TYPE
7931     ['] EMIT >BODY IS EMIT
7932 HI2LO
7933 MOV @R15+,&$1DDC
7934 MOV @R15+,R14
7935 MOV @R1+,R0
7936 ENDASM
7937
7938 ASM BACKGROUND
7939 BEGIN
7940     CALL &$1814
7941     BIS &$180A,R2
7942 AGAIN
7943 ENDASM
7944
7945 ASM SYS_OUT
7946     MOV #WARM,R9
7947     ADD #4,R9
7948     MOV R9,R0
7949 ENDASM
7950
7951 CODE STOP
7952 BW1 MOV #$4000,R9
7953     ADD #4,R9
7954     MOV R9,-2(R9)
7955     MOV #WARM,R9
7956     MOV #SYS_OUT,2(R9)
7957     BIC.B #4,&$20A
7958     BIC.B #4,&$20C
7959     MOV #0,&$3C0
7960     MOV #0,&$340
7961     MOV #0,&$342
7962     CALL #$400E
7963 COLON
7964 ECHO
7965 ." RC5toLCD is removed,"
7966 ."  type START to restart"
7967  WARM
7968 ;
7969
7970 CODE SYS_INIT
7971 MOV #%10_1101_0100,&$3C0
7972 $1806 @ 16000 = [IF]
7973     MOV #1,&$3E0
7974 [THEN]
7975 $1806 @ 24000 = [IF]
7976     MOV #2,&$3E0
7977 [THEN]
7978     MOV #19,&$3D2
7979 MOV #%0110_0000,&$3C6
7980     MOV #10,&$3D6
7981     BIS.B #$20,&$204
7982     BIS.B #$20,&$20A
7983     BIS.B #7,&$245
7984     BIC.B #7,&$247
7985     BIS.B #$0F,&$224
7986     BIC.B #$0F,&$226
7987     BIS.B #4,&$20A
7988     BIC.B #4,&$20C
7989     MOV #RC5_INT,&$FFDE
7990 MOV #%01_0001_0100,&$340
7991     MOV ##3276,&$352
7992     MOV #%10000,&$342
7993     MOV #WDT_INT,&$FFEA
7994 BIC #1,&$130
7995 BIS.B #3,&$20D
7996 MOV &$1808,R8
7997 CMP #4,R8
7998 0= ?GOTO BW1
7999 COLON
8000     #1000 20_US
8001     %011 TOP_LCD
8002     #205 20_US
8003     %011 TOP_LCD
8004     #5 20_US
8005     %011 TOP_LCD
8006     #2 20_US
8007     %010 TOP_LCD
8008     #2 20_US
8009     %00101000 LCD_WRF
8010     %1000 LCD_WRF
8011     LCD_CLEAR
8012     %0110 LCD_WRF
8013     %1100 LCD_WRF
8014     LCD_CLEAR
8015     ['] LCD_HOME IS CR
8016     ['] LCD_WRC  IS EMIT
8017     CR ." I love you"
8018     ['] CR >BODY IS CR
8019     ['] EMIT >BODY IS EMIT
8020     ." RC5toLCD is running. Type STOP to quit"
8021     PWR_STATE ABORT
8022 ;
8023
8024 CODE START
8025 MOV #$4000,R9
8026 MOV #BACKGROUND,2(R9)
8027 MOV #WARM,R9
8028 MOV #SYS_INIT,2(R9)
8029 MOV R9,R0
8030 ENDCODE 
8031
8032 ECHO
8033             ; downloading RC5toLCD.4th is done
8034 RST_HERE    ; this app is protected against <reset>
8035
8036
8037 RST_STATE
8038
8039 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8040
8041 [UNDEFINED] MARKER [IF]
8042 : MARKER
8043 CREATE
8044 HI2LO
8045 MOV &$1DC8,0(R10)
8046 SUB #2,R8
8047 MOV R8,2(R10)
8048 ADD #4,&$1DC6
8049 LO2HI
8050 DOES>
8051 HI2LO
8052 MOV @R1+,R13
8053 MOV @R14+,&$180E
8054 MOV @R14,&$180C
8055 MOV @R15+,R14
8056 MOV #RST_STATE,R0
8057 ENDCODE
8058 [THEN]
8059
8060 MARKER {RC5TOLCD}
8061
8062 [UNDEFINED] @ [IF]
8063 CODE @
8064 MOV @R14,R14
8065 MOV @R13+,R0
8066 ENDCODE
8067 [THEN]
8068
8069 [UNDEFINED] CONSTANT [IF]
8070 : CONSTANT 
8071 CREATE
8072 HI2LO
8073 MOV R14,-2(R10)
8074 MOV @R15+,R14
8075 MOV @R1+,R13
8076 MOV @R13+,R0
8077 ENDCODE
8078 [THEN]
8079
8080 [UNDEFINED] STATE [IF]
8081 $1DBE CONSTANT STATE
8082 [THEN]
8083
8084 [UNDEFINED] = [IF]
8085 CODE =
8086 SUB @R15+,R14
8087 0<> IF
8088     AND #0,R14
8089     MOV @R13+,R0
8090 THEN
8091 XOR #-1,R14
8092 MOV @R13+,R0
8093 ENDCODE
8094 [THEN]
8095
8096 [UNDEFINED] IF [IF]
8097 CODE IF
8098 SUB #2,R15
8099 MOV R14,0(R15)
8100 MOV &$1DC6,R14
8101 ADD #4,&$1DC6
8102 MOV #$404C,0(R14)
8103 ADD #2,R14
8104 MOV @R13+,R0
8105 ENDCODE IMMEDIATE
8106 [THEN]
8107
8108 [UNDEFINED] THEN [IF]
8109 CODE THEN
8110 MOV &$1DC6,0(R14)
8111 MOV @R15+,R14
8112 MOV @R13+,R0
8113 ENDCODE IMMEDIATE
8114 [THEN]
8115
8116 [UNDEFINED] ELSE [IF]
8117 CODE ELSE
8118 ADD #4,&$1DC6
8119 MOV &$1DC6,R10
8120 MOV #$4048,-4(R10)
8121 MOV R10,0(R14)
8122 SUB #2,R10
8123 MOV R10,R14
8124 MOV @R13+,R0
8125 ENDCODE IMMEDIATE
8126 [THEN]
8127
8128 [UNDEFINED] DEFER [IF]
8129
8130 : DEFER
8131 CREATE
8132 HI2LO
8133 MOV #$4030,-4(R10)
8134 MOV #$402C,-2(R10)
8135 MOV @R1+,R13
8136 MOV @R13+,R0
8137 ENDCODE
8138 [THEN]
8139
8140 [UNDEFINED] DEFER! [IF]
8141 CODE DEFER!
8142 MOV @R15+,2(R14)
8143 MOV @R15+,R14
8144 MOV @R13+,R0
8145 ENDCODE
8146 [THEN]
8147
8148 [UNDEFINED] IS [IF]
8149 : IS
8150 STATE @
8151 IF  POSTPONE ['] POSTPONE DEFER! 
8152 ELSE ' DEFER! 
8153 THEN
8154 ; IMMEDIATE
8155 [THEN]
8156
8157 [UNDEFINED] >BODY [IF]
8158 CODE >BODY
8159 ADD #4,R14
8160 MOV @R13+,R0
8161 ENDCODE
8162 [THEN]
8163
8164
8165 CODE 20_US
8166 BEGIN
8167     BEGIN
8168         BIT #1,&$3C0
8169     0<> UNTIL
8170     BIC #1,&$3C0
8171     SUB #1,R14
8172 U< UNTIL
8173 MOV @R15+,R14
8174 MOV @R13+,R0
8175 ENDCODE
8176
8177 CODE TOP_LCD
8178     BIS.B #4,&$243
8179     BIT.B #1,&$241
8180 0= IF
8181     AND.B #$0F,R14
8182     MOV.B R14,&$222
8183     BIC.B #4,&$243
8184     MOV @R15+,R14
8185     MOV @R13+,R0
8186 THEN
8187     SUB #2,R15
8188     MOV R14,0(R15)
8189     BIC.B #4,&$243
8190     MOV.B &$220,R14
8191     AND.B #$0F,R14
8192     MOV @R13+,R0
8193 ENDCODE
8194
8195 CODE LCD_WRC
8196     BIS.B #2,&$243
8197 BW1 SUB #2,R15
8198     MOV R14,0(R15)
8199     RRUM #4,R14
8200     BIC.B #1,&$243
8201     BIS.B #$0F,&$224
8202 COLON
8203     TOP_LCD 2 20_US
8204     TOP_LCD 2 20_US 
8205 ;
8206
8207 CODE LCD_WRF
8208     BIC.B #2,&$243
8209     GOTO BW1
8210 ENDCODE
8211
8212 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8213 : LCD_HOME $02 LCD_WRF 100 20_us ;
8214
8215
8216
8217 ASM WDT_INT
8218 ADD #2,R1
8219 BIT.B #$20,&$240
8220 0= IF
8221     CMP #19,&$3D6
8222     U< IF
8223         ADD #1,&$3D6
8224     THEN
8225 ELSE
8226     BIT.B #$40,&$240
8227     0= IF
8228         CMP #3,&$3D6
8229         U>= IF
8230            SUB #1,&$3D6
8231         THEN
8232     THEN
8233 THEN
8234 BW1
8235 MOV @R1+,R0
8236 ENDASM
8237
8238 ASM RC5_INT
8239 ADD #2,R1
8240 $1806 @ 16000 = [IF]
8241     MOV #1,&$3A0
8242 [THEN]
8243 $1806 @ 24000 = [IF]
8244     MOV #2,&$3A0
8245 [THEN]
8246 MOV #1778,R9
8247 MOV #14,R10
8248 BEGIN
8249 MOV #%1011100100,&$380
8250     RRUM    #1,R9
8251     MOV     R9,R8
8252     RRUM    #1,R8
8253     ADD     R9,R8
8254     BEGIN   CMP R8,&$390
8255     U>= UNTIL
8256     BIT.B   #4,&$200
8257     ADDC    R11,R11
8258     MOV.B   &$200,&$208
8259     BIC.B   #4,&$20C
8260     SUB     #1,R10
8261 0<> WHILE
8262     ADD R9,R8
8263     BEGIN
8264         MOV &$390,R9
8265         CMP R8,R9
8266         U>= IF
8267         BIC #$30,&$380
8268         GOTO BW1
8269         THEN
8270         BIT.B #4,&$20C
8271     0<> UNTIL
8272 REPEAT
8273 BIC #$30,&$380
8274 RLAM    #1,R11
8275 MOV.B   R11,R9
8276 RRUM    #2,R9
8277 BIT     #$4000,R11
8278 0= IF   BIS #$40,R9
8279 THEN
8280 RRUM    #3,R11
8281 XOR     @R1,R11
8282 BIT     #$400,R11
8283 0= ?GOTO BW1
8284 XOR #$400,0(R1)
8285 SUB #8,R15
8286 MOV R14,6(R15)
8287 MOV &$1DDC,4(R15)
8288 MOV #$10,&$1DDC
8289 MOV R9,0(R15)
8290 MOV #0,R14
8291 LO2HI
8292     LCD_CLEAR
8293     <# # #S #36 HOLD #>
8294     ['] LCD_WRC IS EMIT
8295     TYPE
8296     ['] EMIT >BODY IS EMIT
8297 HI2LO
8298 MOV @R15+,&$1DDC
8299 MOV @R15+,R14
8300 MOV @R1+,R0
8301 ENDASM
8302
8303 ASM BACKGROUND
8304 BEGIN
8305     CALL &$1814
8306     BIS &$180A,R2
8307 AGAIN
8308 ENDASM
8309
8310 ASM SYS_OUT
8311     MOV #WARM,R9
8312     ADD #4,R9
8313     MOV R9,R0
8314 ENDASM
8315
8316 CODE STOP
8317 BW1 MOV #$4000,R9
8318     ADD #4,R9
8319     MOV R9,-2(R9)
8320     MOV #WARM,R9
8321     MOV #SYS_OUT,2(R9)
8322     BIC.B #4,&$20A
8323     BIC.B #4,&$20C
8324     MOV #0,&$3C0
8325     MOV #0,&$340
8326     MOV #0,&$342
8327     CALL #$400E
8328 COLON
8329 ECHO
8330 ." RC5toLCD is removed,"
8331 ."  type START to restart"
8332  WARM
8333 ;
8334
8335 CODE SYS_INIT
8336 MOV #%10_1101_0100,&$3C0
8337 $1806 @ 16000 = [IF]
8338     MOV #1,&$3E0
8339 [THEN]
8340 $1806 @ 24000 = [IF]
8341     MOV #2,&$3E0
8342 [THEN]
8343     MOV #19,&$3D2
8344 MOV #%0110_0000,&$3C6
8345     MOV #10,&$3D6
8346     BIS.B #$20,&$204
8347     BIS.B #$20,&$20A
8348     BIS.B #7,&$245
8349     BIC.B #7,&$247
8350     BIS.B #$0F,&$224
8351     BIC.B #$0F,&$226
8352     BIS.B #4,&$20A
8353     BIC.B #4,&$20C
8354     MOV #RC5_INT,&$FFDE
8355 MOV #%01_0001_0100,&$340
8356     MOV ##3276,&$352
8357     MOV #%10000,&$342
8358     MOV #WDT_INT,&$FFEA
8359 BIC #1,&$130
8360 BIS.B #3,&$20D
8361 MOV &$1808,R8
8362 CMP #4,R8
8363 0= ?GOTO BW1
8364 COLON
8365     #1000 20_US
8366     %011 TOP_LCD
8367     #205 20_US
8368     %011 TOP_LCD
8369     #5 20_US
8370     %011 TOP_LCD
8371     #2 20_US
8372     %010 TOP_LCD
8373     #2 20_US
8374     %00101000 LCD_WRF
8375     %1000 LCD_WRF
8376     LCD_CLEAR
8377     %0110 LCD_WRF
8378     %1100 LCD_WRF
8379     LCD_CLEAR
8380     ['] LCD_HOME IS CR
8381     ['] LCD_WRC  IS EMIT
8382     CR ." I love you"
8383     ['] CR >BODY IS CR
8384     ['] EMIT >BODY IS EMIT
8385     ." RC5toLCD is running. Type STOP to quit"
8386     PWR_STATE ABORT
8387 ;
8388
8389 CODE START
8390 MOV #$4000,R9
8391 MOV #BACKGROUND,2(R9)
8392 MOV #WARM,R9
8393 MOV #SYS_INIT,2(R9)
8394 MOV R9,R0
8395 ENDCODE 
8396
8397 ECHO
8398             ; downloading RC5toLCD.4th is done
8399 RST_HERE    ; this app is protected against <reset>
8400
8401
8402 RST_STATE
8403
8404 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8405
8406 [UNDEFINED] MARKER [IF]
8407 : MARKER
8408 CREATE
8409 HI2LO
8410 MOV &$1DC8,0(R10)
8411 SUB #2,R8
8412 MOV R8,2(R10)
8413 ADD #4,&$1DC6
8414 LO2HI
8415 DOES>
8416 HI2LO
8417 MOV @R1+,R13
8418 MOV @R14+,&$180E
8419 MOV @R14,&$180C
8420 MOV @R15+,R14
8421 MOV #RST_STATE,R0
8422 ENDCODE
8423 [THEN]
8424
8425 MARKER {RC5TOLCD}
8426
8427 [UNDEFINED] @ [IF]
8428 CODE @
8429 MOV @R14,R14
8430 MOV @R13+,R0
8431 ENDCODE
8432 [THEN]
8433
8434 [UNDEFINED] CONSTANT [IF]
8435 : CONSTANT 
8436 CREATE
8437 HI2LO
8438 MOV R14,-2(R10)
8439 MOV @R15+,R14
8440 MOV @R1+,R13
8441 MOV @R13+,R0
8442 ENDCODE
8443 [THEN]
8444
8445 [UNDEFINED] STATE [IF]
8446 $1DBE CONSTANT STATE
8447 [THEN]
8448
8449 [UNDEFINED] = [IF]
8450 CODE =
8451 SUB @R15+,R14
8452 0<> IF
8453     AND #0,R14
8454     MOV @R13+,R0
8455 THEN
8456 XOR #-1,R14
8457 MOV @R13+,R0
8458 ENDCODE
8459 [THEN]
8460
8461 [UNDEFINED] IF [IF]
8462 CODE IF
8463 SUB #2,R15
8464 MOV R14,0(R15)
8465 MOV &$1DC6,R14
8466 ADD #4,&$1DC6
8467 MOV #$404C,0(R14)
8468 ADD #2,R14
8469 MOV @R13+,R0
8470 ENDCODE IMMEDIATE
8471 [THEN]
8472
8473 [UNDEFINED] THEN [IF]
8474 CODE THEN
8475 MOV &$1DC6,0(R14)
8476 MOV @R15+,R14
8477 MOV @R13+,R0
8478 ENDCODE IMMEDIATE
8479 [THEN]
8480
8481 [UNDEFINED] ELSE [IF]
8482 CODE ELSE
8483 ADD #4,&$1DC6
8484 MOV &$1DC6,R10
8485 MOV #$4048,-4(R10)
8486 MOV R10,0(R14)
8487 SUB #2,R10
8488 MOV R10,R14
8489 MOV @R13+,R0
8490 ENDCODE IMMEDIATE
8491 [THEN]
8492
8493 [UNDEFINED] DEFER [IF]
8494
8495 : DEFER
8496 CREATE
8497 HI2LO
8498 MOV #$4030,-4(R10)
8499 MOV #$402C,-2(R10)
8500 MOV @R1+,R13
8501 MOV @R13+,R0
8502 ENDCODE
8503 [THEN]
8504
8505 [UNDEFINED] DEFER! [IF]
8506 CODE DEFER!
8507 MOV @R15+,2(R14)
8508 MOV @R15+,R14
8509 MOV @R13+,R0
8510 ENDCODE
8511 [THEN]
8512
8513 [UNDEFINED] IS [IF]
8514 : IS
8515 STATE @
8516 IF  POSTPONE ['] POSTPONE DEFER! 
8517 ELSE ' DEFER! 
8518 THEN
8519 ; IMMEDIATE
8520 [THEN]
8521
8522 [UNDEFINED] >BODY [IF]
8523 CODE >BODY
8524 ADD #4,R14
8525 MOV @R13+,R0
8526 ENDCODE
8527 [THEN]
8528
8529
8530 CODE 20_US
8531 BEGIN
8532     BEGIN
8533         BIT #1,&$3C0
8534     0<> UNTIL
8535     BIC #1,&$3C0
8536     SUB #1,R14
8537 U< UNTIL
8538 MOV @R15+,R14
8539 MOV @R13+,R0
8540 ENDCODE
8541
8542 CODE TOP_LCD
8543     BIS.B #4,&$243
8544     BIT.B #1,&$241
8545 0= IF
8546     AND.B #$0F,R14
8547     MOV.B R14,&$222
8548     BIC.B #4,&$243
8549     MOV @R15+,R14
8550     MOV @R13+,R0
8551 THEN
8552     SUB #2,R15
8553     MOV R14,0(R15)
8554     BIC.B #4,&$243
8555     MOV.B &$220,R14
8556     AND.B #$0F,R14
8557     MOV @R13+,R0
8558 ENDCODE
8559
8560 CODE LCD_WRC
8561     BIS.B #2,&$243
8562 BW1 SUB #2,R15
8563     MOV R14,0(R15)
8564     RRUM #4,R14
8565     BIC.B #1,&$243
8566     BIS.B #$0F,&$224
8567 COLON
8568     TOP_LCD 2 20_US
8569     TOP_LCD 2 20_US 
8570 ;
8571
8572 CODE LCD_WRF
8573     BIC.B #2,&$243
8574     GOTO BW1
8575 ENDCODE
8576
8577 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8578 : LCD_HOME $02 LCD_WRF 100 20_us ;
8579
8580
8581
8582 ASM WDT_INT
8583 ADD #2,R1
8584 BIT.B #$20,&$240
8585 0= IF
8586     CMP #19,&$3D6
8587     U< IF
8588         ADD #1,&$3D6
8589     THEN
8590 ELSE
8591     BIT.B #$40,&$240
8592     0= IF
8593         CMP #3,&$3D6
8594         U>= IF
8595            SUB #1,&$3D6
8596         THEN
8597     THEN
8598 THEN
8599 BW1
8600 MOV @R1+,R0
8601 ENDASM
8602
8603 ASM RC5_INT
8604 ADD #2,R1
8605 $1806 @ 16000 = [IF]
8606     MOV #1,&$3A0
8607 [THEN]
8608 $1806 @ 24000 = [IF]
8609     MOV #2,&$3A0
8610 [THEN]
8611 MOV #1778,R9
8612 MOV #14,R10
8613 BEGIN
8614 MOV #%1011100100,&$380
8615     RRUM    #1,R9
8616     MOV     R9,R8
8617     RRUM    #1,R8
8618     ADD     R9,R8
8619     BEGIN   CMP R8,&$390
8620     U>= UNTIL
8621     BIT.B   #4,&$200
8622     ADDC    R11,R11
8623     MOV.B   &$200,&$208
8624     BIC.B   #4,&$20C
8625     SUB     #1,R10
8626 0<> WHILE
8627     ADD R9,R8
8628     BEGIN
8629         MOV &$390,R9
8630         CMP R8,R9
8631         U>= IF
8632         BIC #$30,&$380
8633         GOTO BW1
8634         THEN
8635         BIT.B #4,&$20C
8636     0<> UNTIL
8637 REPEAT
8638 BIC #$30,&$380
8639 RLAM    #1,R11
8640 MOV.B   R11,R9
8641 RRUM    #2,R9
8642 BIT     #$4000,R11
8643 0= IF   BIS #$40,R9
8644 THEN
8645 RRUM    #3,R11
8646 XOR     @R1,R11
8647 BIT     #$400,R11
8648 0= ?GOTO BW1
8649 XOR #$400,0(R1)
8650 SUB #8,R15
8651 MOV R14,6(R15)
8652 MOV &$1DDC,4(R15)
8653 MOV #$10,&$1DDC
8654 MOV R9,0(R15)
8655 MOV #0,R14
8656 LO2HI
8657     LCD_CLEAR
8658     <# # #S #36 HOLD #>
8659     ['] LCD_WRC IS EMIT
8660     TYPE
8661     ['] EMIT >BODY IS EMIT
8662 HI2LO
8663 MOV @R15+,&$1DDC
8664 MOV @R15+,R14
8665 MOV @R1+,R0
8666 ENDASM
8667
8668 ASM BACKGROUND
8669 BEGIN
8670     CALL &$1814
8671     BIS &$180A,R2
8672 AGAIN
8673 ENDASM
8674
8675 ASM SYS_OUT
8676     MOV #WARM,R9
8677     ADD #4,R9
8678     MOV R9,R0
8679 ENDASM
8680
8681 CODE STOP
8682 BW1 MOV #$4000,R9
8683     ADD #4,R9
8684     MOV R9,-2(R9)
8685     MOV #WARM,R9
8686     MOV #SYS_OUT,2(R9)
8687     BIC.B #4,&$20A
8688     BIC.B #4,&$20C
8689     MOV #0,&$3C0
8690     MOV #0,&$340
8691     MOV #0,&$342
8692     CALL #$400E
8693 COLON
8694 ECHO
8695 ." RC5toLCD is removed,"
8696 ."  type START to restart"
8697  WARM
8698 ;
8699
8700 CODE SYS_INIT
8701 MOV #%10_1101_0100,&$3C0
8702 $1806 @ 16000 = [IF]
8703     MOV #1,&$3E0
8704 [THEN]
8705 $1806 @ 24000 = [IF]
8706     MOV #2,&$3E0
8707 [THEN]
8708     MOV #19,&$3D2
8709 MOV #%0110_0000,&$3C6
8710     MOV #10,&$3D6
8711     BIS.B #$20,&$204
8712     BIS.B #$20,&$20A
8713     BIS.B #7,&$245
8714     BIC.B #7,&$247
8715     BIS.B #$0F,&$224
8716     BIC.B #$0F,&$226
8717     BIS.B #4,&$20A
8718     BIC.B #4,&$20C
8719     MOV #RC5_INT,&$FFDE
8720 MOV #%01_0001_0100,&$340
8721     MOV ##3276,&$352
8722     MOV #%10000,&$342
8723     MOV #WDT_INT,&$FFEA
8724 BIC #1,&$130
8725 BIS.B #3,&$20D
8726 MOV &$1808,R8
8727 CMP #4,R8
8728 0= ?GOTO BW1
8729 COLON
8730     #1000 20_US
8731     %011 TOP_LCD
8732     #205 20_US
8733     %011 TOP_LCD
8734     #5 20_US
8735     %011 TOP_LCD
8736     #2 20_US
8737     %010 TOP_LCD
8738     #2 20_US
8739     %00101000 LCD_WRF
8740     %1000 LCD_WRF
8741     LCD_CLEAR
8742     %0110 LCD_WRF
8743     %1100 LCD_WRF
8744     LCD_CLEAR
8745     ['] LCD_HOME IS CR
8746     ['] LCD_WRC  IS EMIT
8747     CR ." I love you"
8748     ['] CR >BODY IS CR
8749     ['] EMIT >BODY IS EMIT
8750     ." RC5toLCD is running. Type STOP to quit"
8751     PWR_STATE ABORT
8752 ;
8753
8754 CODE START
8755 MOV #$4000,R9
8756 MOV #BACKGROUND,2(R9)
8757 MOV #WARM,R9
8758 MOV #SYS_INIT,2(R9)
8759 MOV R9,R0
8760 ENDCODE 
8761
8762 ECHO
8763             ; downloading RC5toLCD.4th is done
8764 RST_HERE    ; this app is protected against <reset>
8765
8766
8767 RST_STATE
8768
8769 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8770
8771 [UNDEFINED] MARKER [IF]
8772 : MARKER
8773 CREATE
8774 HI2LO
8775 MOV &$1DC8,0(R10)
8776 SUB #2,R8
8777 MOV R8,2(R10)
8778 ADD #4,&$1DC6
8779 LO2HI
8780 DOES>
8781 HI2LO
8782 MOV @R1+,R13
8783 MOV @R14+,&$180E
8784 MOV @R14,&$180C
8785 MOV @R15+,R14
8786 MOV #RST_STATE,R0
8787 ENDCODE
8788 [THEN]
8789
8790 MARKER {RC5TOLCD}
8791
8792 [UNDEFINED] @ [IF]
8793 CODE @
8794 MOV @R14,R14
8795 MOV @R13+,R0
8796 ENDCODE
8797 [THEN]
8798
8799 [UNDEFINED] CONSTANT [IF]
8800 : CONSTANT 
8801 CREATE
8802 HI2LO
8803 MOV R14,-2(R10)
8804 MOV @R15+,R14
8805 MOV @R1+,R13
8806 MOV @R13+,R0
8807 ENDCODE
8808 [THEN]
8809
8810 [UNDEFINED] STATE [IF]
8811 $1DBE CONSTANT STATE
8812 [THEN]
8813
8814 [UNDEFINED] = [IF]
8815 CODE =
8816 SUB @R15+,R14
8817 0<> IF
8818     AND #0,R14
8819     MOV @R13+,R0
8820 THEN
8821 XOR #-1,R14
8822 MOV @R13+,R0
8823 ENDCODE
8824 [THEN]
8825
8826 [UNDEFINED] IF [IF]
8827 CODE IF
8828 SUB #2,R15
8829 MOV R14,0(R15)
8830 MOV &$1DC6,R14
8831 ADD #4,&$1DC6
8832 MOV #$404C,0(R14)
8833 ADD #2,R14
8834 MOV @R13+,R0
8835 ENDCODE IMMEDIATE
8836 [THEN]
8837
8838 [UNDEFINED] THEN [IF]
8839 CODE THEN
8840 MOV &$1DC6,0(R14)
8841 MOV @R15+,R14
8842 MOV @R13+,R0
8843 ENDCODE IMMEDIATE
8844 [THEN]
8845
8846 [UNDEFINED] ELSE [IF]
8847 CODE ELSE
8848 ADD #4,&$1DC6
8849 MOV &$1DC6,R10
8850 MOV #$4048,-4(R10)
8851 MOV R10,0(R14)
8852 SUB #2,R10
8853 MOV R10,R14
8854 MOV @R13+,R0
8855 ENDCODE IMMEDIATE
8856 [THEN]
8857
8858 [UNDEFINED] DEFER [IF]
8859
8860 : DEFER
8861 CREATE
8862 HI2LO
8863 MOV #$4030,-4(R10)
8864 MOV #$402C,-2(R10)
8865 MOV @R1+,R13
8866 MOV @R13+,R0
8867 ENDCODE
8868 [THEN]
8869
8870 [UNDEFINED] DEFER! [IF]
8871 CODE DEFER!
8872 MOV @R15+,2(R14)
8873 MOV @R15+,R14
8874 MOV @R13+,R0
8875 ENDCODE
8876 [THEN]
8877
8878 [UNDEFINED] IS [IF]
8879 : IS
8880 STATE @
8881 IF  POSTPONE ['] POSTPONE DEFER! 
8882 ELSE ' DEFER! 
8883 THEN
8884 ; IMMEDIATE
8885 [THEN]
8886
8887 [UNDEFINED] >BODY [IF]
8888 CODE >BODY
8889 ADD #4,R14
8890 MOV @R13+,R0
8891 ENDCODE
8892 [THEN]
8893
8894
8895 CODE 20_US
8896 BEGIN
8897     BEGIN
8898         BIT #1,&$3C0
8899     0<> UNTIL
8900     BIC #1,&$3C0
8901     SUB #1,R14
8902 U< UNTIL
8903 MOV @R15+,R14
8904 MOV @R13+,R0
8905 ENDCODE
8906
8907 CODE TOP_LCD
8908     BIS.B #4,&$243
8909     BIT.B #1,&$241
8910 0= IF
8911     AND.B #$0F,R14
8912     MOV.B R14,&$222
8913     BIC.B #4,&$243
8914     MOV @R15+,R14
8915     MOV @R13+,R0
8916 THEN
8917     SUB #2,R15
8918     MOV R14,0(R15)
8919     BIC.B #4,&$243
8920     MOV.B &$220,R14
8921     AND.B #$0F,R14
8922     MOV @R13+,R0
8923 ENDCODE
8924
8925 CODE LCD_WRC
8926     BIS.B #2,&$243
8927 BW1 SUB #2,R15
8928     MOV R14,0(R15)
8929     RRUM #4,R14
8930     BIC.B #1,&$243
8931     BIS.B #$0F,&$224
8932 COLON
8933     TOP_LCD 2 20_US
8934     TOP_LCD 2 20_US 
8935 ;
8936
8937 CODE LCD_WRF
8938     BIC.B #2,&$243
8939     GOTO BW1
8940 ENDCODE
8941
8942 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8943 : LCD_HOME $02 LCD_WRF 100 20_us ;
8944
8945
8946
8947 ASM WDT_INT
8948 ADD #2,R1
8949 BIT.B #$20,&$240
8950 0= IF
8951     CMP #19,&$3D6
8952     U< IF
8953         ADD #1,&$3D6
8954     THEN
8955 ELSE
8956     BIT.B #$40,&$240
8957     0= IF
8958         CMP #3,&$3D6
8959         U>= IF
8960            SUB #1,&$3D6
8961         THEN
8962     THEN
8963 THEN
8964 BW1
8965 MOV @R1+,R0
8966 ENDASM
8967
8968 ASM RC5_INT
8969 ADD #2,R1
8970 $1806 @ 16000 = [IF]
8971     MOV #1,&$3A0
8972 [THEN]
8973 $1806 @ 24000 = [IF]
8974     MOV #2,&$3A0
8975 [THEN]
8976 MOV #1778,R9
8977 MOV #14,R10
8978 BEGIN
8979 MOV #%1011100100,&$380
8980     RRUM    #1,R9
8981     MOV     R9,R8
8982     RRUM    #1,R8
8983     ADD     R9,R8
8984     BEGIN   CMP R8,&$390
8985     U>= UNTIL
8986     BIT.B   #4,&$200
8987     ADDC    R11,R11
8988     MOV.B   &$200,&$208
8989     BIC.B   #4,&$20C
8990     SUB     #1,R10
8991 0<> WHILE
8992     ADD R9,R8
8993     BEGIN
8994         MOV &$390,R9
8995         CMP R8,R9
8996         U>= IF
8997         BIC #$30,&$380
8998         GOTO BW1
8999         THEN
9000         BIT.B #4,&$20C
9001     0<> UNTIL
9002 REPEAT
9003 BIC #$30,&$380
9004 RLAM    #1,R11
9005 MOV.B   R11,R9
9006 RRUM    #2,R9
9007 BIT     #$4000,R11
9008 0= IF   BIS #$40,R9
9009 THEN
9010 RRUM    #3,R11
9011 XOR     @R1,R11
9012 BIT     #$400,R11
9013 0= ?GOTO BW1
9014 XOR #$400,0(R1)
9015 SUB #8,R15
9016 MOV R14,6(R15)
9017 MOV &$1DDC,4(R15)
9018 MOV #$10,&$1DDC
9019 MOV R9,0(R15)
9020 MOV #0,R14
9021 LO2HI
9022     LCD_CLEAR
9023     <# # #S #36 HOLD #>
9024     ['] LCD_WRC IS EMIT
9025     TYPE
9026     ['] EMIT >BODY IS EMIT
9027 HI2LO
9028 MOV @R15+,&$1DDC
9029 MOV @R15+,R14
9030 MOV @R1+,R0
9031 ENDASM
9032
9033 ASM BACKGROUND
9034 BEGIN
9035     CALL &$1814
9036     BIS &$180A,R2
9037 AGAIN
9038 ENDASM
9039
9040 ASM SYS_OUT
9041     MOV #WARM,R9
9042     ADD #4,R9
9043     MOV R9,R0
9044 ENDASM
9045
9046 CODE STOP
9047 BW1 MOV #$4000,R9
9048     ADD #4,R9
9049     MOV R9,-2(R9)
9050     MOV #WARM,R9
9051     MOV #SYS_OUT,2(R9)
9052     BIC.B #4,&$20A
9053     BIC.B #4,&$20C
9054     MOV #0,&$3C0
9055     MOV #0,&$340
9056     MOV #0,&$342
9057     CALL #$400E
9058 COLON
9059 ECHO
9060 ." RC5toLCD is removed,"
9061 ."  type START to restart"
9062  WARM
9063 ;
9064
9065 CODE SYS_INIT
9066 MOV #%10_1101_0100,&$3C0
9067 $1806 @ 16000 = [IF]
9068     MOV #1,&$3E0
9069 [THEN]
9070 $1806 @ 24000 = [IF]
9071     MOV #2,&$3E0
9072 [THEN]
9073     MOV #19,&$3D2
9074 MOV #%0110_0000,&$3C6
9075     MOV #10,&$3D6
9076     BIS.B #$20,&$204
9077     BIS.B #$20,&$20A
9078     BIS.B #7,&$245
9079     BIC.B #7,&$247
9080     BIS.B #$0F,&$224
9081     BIC.B #$0F,&$226
9082     BIS.B #4,&$20A
9083     BIC.B #4,&$20C
9084     MOV #RC5_INT,&$FFDE
9085 MOV #%01_0001_0100,&$340
9086     MOV ##3276,&$352
9087     MOV #%10000,&$342
9088     MOV #WDT_INT,&$FFEA
9089 BIC #1,&$130
9090 BIS.B #3,&$20D
9091 MOV &$1808,R8
9092 CMP #4,R8
9093 0= ?GOTO BW1
9094 COLON
9095     #1000 20_US
9096     %011 TOP_LCD
9097     #205 20_US
9098     %011 TOP_LCD
9099     #5 20_US
9100     %011 TOP_LCD
9101     #2 20_US
9102     %010 TOP_LCD
9103     #2 20_US
9104     %00101000 LCD_WRF
9105     %1000 LCD_WRF
9106     LCD_CLEAR
9107     %0110 LCD_WRF
9108     %1100 LCD_WRF
9109     LCD_CLEAR
9110     ['] LCD_HOME IS CR
9111     ['] LCD_WRC  IS EMIT
9112     CR ." I love you"
9113     ['] CR >BODY IS CR
9114     ['] EMIT >BODY IS EMIT
9115     ." RC5toLCD is running. Type STOP to quit"
9116     PWR_STATE ABORT
9117 ;
9118
9119 CODE START
9120 MOV #$4000,R9
9121 MOV #BACKGROUND,2(R9)
9122 MOV #WARM,R9
9123 MOV #SYS_INIT,2(R9)
9124 MOV R9,R0
9125 ENDCODE 
9126
9127 ECHO
9128             ; downloading RC5toLCD.4th is done
9129 RST_HERE    ; this app is protected against <reset>
9130
9131
9132 RST_STATE
9133
9134 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9135
9136 [UNDEFINED] MARKER [IF]
9137 : MARKER
9138 CREATE
9139 HI2LO
9140 MOV &$1DC8,0(R10)
9141 SUB #2,R8
9142 MOV R8,2(R10)
9143 ADD #4,&$1DC6
9144 LO2HI
9145 DOES>
9146 HI2LO
9147 MOV @R1+,R13
9148 MOV @R14+,&$180E
9149 MOV @R14,&$180C
9150 MOV @R15+,R14
9151 MOV #RST_STATE,R0
9152 ENDCODE
9153 [THEN]
9154
9155 MARKER {RC5TOLCD}
9156
9157 [UNDEFINED] @ [IF]
9158 CODE @
9159 MOV @R14,R14
9160 MOV @R13+,R0
9161 ENDCODE
9162 [THEN]
9163
9164 [UNDEFINED] CONSTANT [IF]
9165 : CONSTANT 
9166 CREATE
9167 HI2LO
9168 MOV R14,-2(R10)
9169 MOV @R15+,R14
9170 MOV @R1+,R13
9171 MOV @R13+,R0
9172 ENDCODE
9173 [THEN]
9174
9175 [UNDEFINED] STATE [IF]
9176 $1DBE CONSTANT STATE
9177 [THEN]
9178
9179 [UNDEFINED] = [IF]
9180 CODE =
9181 SUB @R15+,R14
9182 0<> IF
9183     AND #0,R14
9184     MOV @R13+,R0
9185 THEN
9186 XOR #-1,R14
9187 MOV @R13+,R0
9188 ENDCODE
9189 [THEN]
9190
9191 [UNDEFINED] IF [IF]
9192 CODE IF
9193 SUB #2,R15
9194 MOV R14,0(R15)
9195 MOV &$1DC6,R14
9196 ADD #4,&$1DC6
9197 MOV #$404C,0(R14)
9198 ADD #2,R14
9199 MOV @R13+,R0
9200 ENDCODE IMMEDIATE
9201 [THEN]
9202
9203 [UNDEFINED] THEN [IF]
9204 CODE THEN
9205 MOV &$1DC6,0(R14)
9206 MOV @R15+,R14
9207 MOV @R13+,R0
9208 ENDCODE IMMEDIATE
9209 [THEN]
9210
9211 [UNDEFINED] ELSE [IF]
9212 CODE ELSE
9213 ADD #4,&$1DC6
9214 MOV &$1DC6,R10
9215 MOV #$4048,-4(R10)
9216 MOV R10,0(R14)
9217 SUB #2,R10
9218 MOV R10,R14
9219 MOV @R13+,R0
9220 ENDCODE IMMEDIATE
9221 [THEN]
9222
9223 [UNDEFINED] DEFER [IF]
9224
9225 : DEFER
9226 CREATE
9227 HI2LO
9228 MOV #$4030,-4(R10)
9229 MOV #$402C,-2(R10)
9230 MOV @R1+,R13
9231 MOV @R13+,R0
9232 ENDCODE
9233 [THEN]
9234
9235 [UNDEFINED] DEFER! [IF]
9236 CODE DEFER!
9237 MOV @R15+,2(R14)
9238 MOV @R15+,R14
9239 MOV @R13+,R0
9240 ENDCODE
9241 [THEN]
9242
9243 [UNDEFINED] IS [IF]
9244 : IS
9245 STATE @
9246 IF  POSTPONE ['] POSTPONE DEFER! 
9247 ELSE ' DEFER! 
9248 THEN
9249 ; IMMEDIATE
9250 [THEN]
9251
9252 [UNDEFINED] >BODY [IF]
9253 CODE >BODY
9254 ADD #4,R14
9255 MOV @R13+,R0
9256 ENDCODE
9257 [THEN]
9258
9259
9260 CODE 20_US
9261 BEGIN
9262     BEGIN
9263         BIT #1,&$3C0
9264     0<> UNTIL
9265     BIC #1,&$3C0
9266     SUB #1,R14
9267 U< UNTIL
9268 MOV @R15+,R14
9269 MOV @R13+,R0
9270 ENDCODE
9271
9272 CODE TOP_LCD
9273     BIS.B #4,&$243
9274     BIT.B #1,&$241
9275 0= IF
9276     AND.B #$0F,R14
9277     MOV.B R14,&$222
9278     BIC.B #4,&$243
9279     MOV @R15+,R14
9280     MOV @R13+,R0
9281 THEN
9282     SUB #2,R15
9283     MOV R14,0(R15)
9284     BIC.B #4,&$243
9285     MOV.B &$220,R14
9286     AND.B #$0F,R14
9287     MOV @R13+,R0
9288 ENDCODE
9289
9290 CODE LCD_WRC
9291     BIS.B #2,&$243
9292 BW1 SUB #2,R15
9293     MOV R14,0(R15)
9294     RRUM #4,R14
9295     BIC.B #1,&$243
9296     BIS.B #$0F,&$224
9297 COLON
9298     TOP_LCD 2 20_US
9299     TOP_LCD 2 20_US 
9300 ;
9301
9302 CODE LCD_WRF
9303     BIC.B #2,&$243
9304     GOTO BW1
9305 ENDCODE
9306
9307 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
9308 : LCD_HOME $02 LCD_WRF 100 20_us ;
9309
9310
9311
9312 ASM WDT_INT
9313 ADD #2,R1
9314 BIT.B #$20,&$240
9315 0= IF
9316     CMP #19,&$3D6
9317     U< IF
9318         ADD #1,&$3D6
9319     THEN
9320 ELSE
9321     BIT.B #$40,&$240
9322     0= IF
9323         CMP #3,&$3D6
9324         U>= IF
9325            SUB #1,&$3D6
9326         THEN
9327     THEN
9328 THEN
9329 BW1
9330 MOV @R1+,R0
9331 ENDASM
9332
9333 ASM RC5_INT
9334 ADD #2,R1
9335 $1806 @ 16000 = [IF]
9336     MOV #1,&$3A0
9337 [THEN]
9338 $1806 @ 24000 = [IF]
9339     MOV #2,&$3A0
9340 [THEN]
9341 MOV #1778,R9
9342 MOV #14,R10
9343 BEGIN
9344 MOV #%1011100100,&$380
9345     RRUM    #1,R9
9346     MOV     R9,R8
9347     RRUM    #1,R8
9348     ADD     R9,R8
9349     BEGIN   CMP R8,&$390
9350     U>= UNTIL
9351     BIT.B   #4,&$200
9352     ADDC    R11,R11
9353     MOV.B   &$200,&$208
9354     BIC.B   #4,&$20C
9355     SUB     #1,R10
9356 0<> WHILE
9357     ADD R9,R8
9358     BEGIN
9359         MOV &$390,R9
9360         CMP R8,R9
9361         U>= IF
9362         BIC #$30,&$380
9363         GOTO BW1
9364         THEN
9365         BIT.B #4,&$20C
9366     0<> UNTIL
9367 REPEAT
9368 BIC #$30,&$380
9369 RLAM    #1,R11
9370 MOV.B   R11,R9
9371 RRUM    #2,R9
9372 BIT     #$4000,R11
9373 0= IF   BIS #$40,R9
9374 THEN
9375 RRUM    #3,R11
9376 XOR     @R1,R11
9377 BIT     #$400,R11
9378 0= ?GOTO BW1
9379 XOR #$400,0(R1)
9380 SUB #8,R15
9381 MOV R14,6(R15)
9382 MOV &$1DDC,4(R15)
9383 MOV #$10,&$1DDC
9384 MOV R9,0(R15)
9385 MOV #0,R14
9386 LO2HI
9387     LCD_CLEAR
9388     <# # #S #36 HOLD #>
9389     ['] LCD_WRC IS EMIT
9390     TYPE
9391     ['] EMIT >BODY IS EMIT
9392 HI2LO
9393 MOV @R15+,&$1DDC
9394 MOV @R15+,R14
9395 MOV @R1+,R0
9396 ENDASM
9397
9398 ASM BACKGROUND
9399 BEGIN
9400     CALL &$1814
9401     BIS &$180A,R2
9402 AGAIN
9403 ENDASM
9404
9405 ASM SYS_OUT
9406     MOV #WARM,R9
9407     ADD #4,R9
9408     MOV R9,R0
9409 ENDASM
9410
9411 CODE STOP
9412 BW1 MOV #$4000,R9
9413     ADD #4,R9
9414     MOV R9,-2(R9)
9415     MOV #WARM,R9
9416     MOV #SYS_OUT,2(R9)
9417     BIC.B #4,&$20A
9418     BIC.B #4,&$20C
9419     MOV #0,&$3C0
9420     MOV #0,&$340
9421     MOV #0,&$342
9422     CALL #$400E
9423 COLON
9424 ECHO
9425 ." RC5toLCD is removed,"
9426 ."  type START to restart"
9427  WARM
9428 ;
9429
9430 CODE SYS_INIT
9431 MOV #%10_1101_0100,&$3C0
9432 $1806 @ 16000 = [IF]
9433     MOV #1,&$3E0
9434 [THEN]
9435 $1806 @ 24000 = [IF]
9436     MOV #2,&$3E0
9437 [THEN]
9438     MOV #19,&$3D2
9439 MOV #%0110_0000,&$3C6
9440     MOV #10,&$3D6
9441     BIS.B #$20,&$204
9442     BIS.B #$20,&$20A
9443     BIS.B #7,&$245
9444     BIC.B #7,&$247
9445     BIS.B #$0F,&$224
9446     BIC.B #$0F,&$226
9447     BIS.B #4,&$20A
9448     BIC.B #4,&$20C
9449     MOV #RC5_INT,&$FFDE
9450 MOV #%01_0001_0100,&$340
9451     MOV ##3276,&$352
9452     MOV #%10000,&$342
9453     MOV #WDT_INT,&$FFEA
9454 BIC #1,&$130
9455 BIS.B #3,&$20D
9456 MOV &$1808,R8
9457 CMP #4,R8
9458 0= ?GOTO BW1
9459 COLON
9460     #1000 20_US
9461     %011 TOP_LCD
9462     #205 20_US
9463     %011 TOP_LCD
9464     #5 20_US
9465     %011 TOP_LCD
9466     #2 20_US
9467     %010 TOP_LCD
9468     #2 20_US
9469     %00101000 LCD_WRF
9470     %1000 LCD_WRF
9471     LCD_CLEAR
9472     %0110 LCD_WRF
9473     %1100 LCD_WRF
9474     LCD_CLEAR
9475     ['] LCD_HOME IS CR
9476     ['] LCD_WRC  IS EMIT
9477     CR ." I love you"
9478     ['] CR >BODY IS CR
9479     ['] EMIT >BODY IS EMIT
9480     ." RC5toLCD is running. Type STOP to quit"
9481     PWR_STATE ABORT
9482 ;
9483
9484 CODE START
9485 MOV #$4000,R9
9486 MOV #BACKGROUND,2(R9)
9487 MOV #WARM,R9
9488 MOV #SYS_INIT,2(R9)
9489 MOV R9,R0
9490 ENDCODE 
9491
9492 ECHO
9493             ; downloading RC5toLCD.4th is done
9494 RST_HERE    ; this app is protected against <reset>
9495
9496
9497 RST_STATE
9498
9499 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9500
9501 [UNDEFINED] MARKER [IF]
9502 : MARKER
9503 CREATE
9504 HI2LO
9505 MOV &$1DC8,0(R10)
9506 SUB #2,R8
9507 MOV R8,2(R10)
9508 ADD #4,&$1DC6
9509 LO2HI
9510 DOES>
9511 HI2LO
9512 MOV @R1+,R13
9513 MOV @R14+,&$180E
9514 MOV @R14,&$180C
9515 MOV @R15+,R14
9516 MOV #RST_STATE,R0
9517 ENDCODE
9518 [THEN]
9519
9520 MARKER {RC5TOLCD}
9521
9522 [UNDEFINED] @ [IF]
9523 CODE @
9524 MOV @R14,R14
9525 MOV @R13+,R0
9526 ENDCODE
9527 [THEN]
9528
9529 [UNDEFINED] CONSTANT [IF]
9530 : CONSTANT 
9531 CREATE
9532 HI2LO
9533 MOV R14,-2(R10)
9534 MOV @R15+,R14
9535 MOV @R1+,R13
9536 MOV @R13+,R0
9537 ENDCODE
9538 [THEN]
9539
9540 [UNDEFINED] STATE [IF]
9541 $1DBE CONSTANT STATE
9542 [THEN]
9543
9544 [UNDEFINED] = [IF]
9545 CODE =
9546 SUB @R15+,R14
9547 0<> IF
9548     AND #0,R14
9549     MOV @R13+,R0
9550 THEN
9551 XOR #-1,R14
9552 MOV @R13+,R0
9553 ENDCODE
9554 [THEN]
9555
9556 [UNDEFINED] IF [IF]
9557 CODE IF
9558 SUB #2,R15
9559 MOV R14,0(R15)
9560 MOV &$1DC6,R14
9561 ADD #4,&$1DC6
9562 MOV #$404C,0(R14)
9563 ADD #2,R14
9564 MOV @R13+,R0
9565 ENDCODE IMMEDIATE
9566 [THEN]
9567
9568 [UNDEFINED] THEN [IF]
9569 CODE THEN
9570 MOV &$1DC6,0(R14)
9571 MOV @R15+,R14
9572 MOV @R13+,R0
9573 ENDCODE IMMEDIATE
9574 [THEN]
9575
9576 [UNDEFINED] ELSE [IF]
9577 CODE ELSE
9578 ADD #4,&$1DC6
9579 MOV &$1DC6,R10
9580 MOV #$4048,-4(R10)
9581 MOV R10,0(R14)
9582 SUB #2,R10
9583 MOV R10,R14
9584 MOV @R13+,R0
9585 ENDCODE IMMEDIATE
9586 [THEN]
9587
9588 [UNDEFINED] DEFER [IF]
9589
9590 : DEFER
9591 CREATE
9592 HI2LO
9593 MOV #$4030,-4(R10)
9594 MOV #$402C,-2(R10)
9595 MOV @R1+,R13
9596 MOV @R13+,R0
9597 ENDCODE
9598 [THEN]
9599
9600 [UNDEFINED] DEFER! [IF]
9601 CODE DEFER!
9602 MOV @R15+,2(R14)
9603 MOV @R15+,R14
9604 MOV @R13+,R0
9605 ENDCODE
9606 [THEN]
9607
9608 [UNDEFINED] IS [IF]
9609 : IS
9610 STATE @
9611 IF  POSTPONE ['] POSTPONE DEFER! 
9612 ELSE ' DEFER! 
9613 THEN
9614 ; IMMEDIATE
9615 [THEN]
9616
9617 [UNDEFINED] >BODY [IF]
9618 CODE >BODY
9619 ADD #4,R14
9620 MOV @R13+,R0
9621 ENDCODE
9622 [THEN]
9623
9624
9625 CODE 20_US
9626 BEGIN
9627     BEGIN
9628         BIT #1,&$3C0
9629     0<> UNTIL
9630     BIC #1,&$3C0
9631     SUB #1,R14
9632 U< UNTIL
9633 MOV @R15+,R14
9634 MOV @R13+,R0
9635 ENDCODE
9636
9637 CODE TOP_LCD
9638     BIS.B #4,&$243
9639     BIT.B #1,&$241
9640 0= IF
9641     AND.B #$0F,R14
9642     MOV.B R14,&$222
9643     BIC.B #4,&$243
9644     MOV @R15+,R14
9645     MOV @R13+,R0
9646 THEN
9647     SUB #2,R15
9648     MOV R14,0(R15)
9649     BIC.B #4,&$243
9650     MOV.B &$220,R14
9651     AND.B #$0F,R14
9652     MOV @R13+,R0
9653 ENDCODE
9654
9655 CODE LCD_WRC
9656     BIS.B #2,&$243
9657 BW1 SUB #2,R15
9658     MOV R14,0(R15)
9659     RRUM #4,R14
9660     BIC.B #1,&$243
9661     BIS.B #$0F,&$224
9662 COLON
9663     TOP_LCD 2 20_US
9664     TOP_LCD 2 20_US 
9665 ;
9666
9667 CODE LCD_WRF
9668     BIC.B #2,&$243
9669     GOTO BW1
9670 ENDCODE
9671
9672 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
9673 : LCD_HOME $02 LCD_WRF 100 20_us ;
9674
9675
9676
9677 ASM WDT_INT
9678 ADD #2,R1
9679 BIT.B #$20,&$240
9680 0= IF
9681     CMP #19,&$3D6
9682     U< IF
9683         ADD #1,&$3D6
9684     THEN
9685 ELSE
9686     BIT.B #$40,&$240
9687     0= IF
9688         CMP #3,&$3D6
9689         U>= IF
9690            SUB #1,&$3D6
9691         THEN
9692     THEN
9693 THEN
9694 BW1
9695 MOV @R1+,R0
9696 ENDASM
9697
9698 ASM RC5_INT
9699 ADD #2,R1
9700 $1806 @ 16000 = [IF]
9701     MOV #1,&$3A0
9702 [THEN]
9703 $1806 @ 24000 = [IF]
9704     MOV #2,&$3A0
9705 [THEN]
9706 MOV #1778,R9
9707 MOV #14,R10
9708 BEGIN
9709 MOV #%1011100100,&$380
9710     RRUM    #1,R9
9711     MOV     R9,R8
9712     RRUM    #1,R8
9713     ADD     R9,R8
9714     BEGIN   CMP R8,&$390
9715     U>= UNTIL
9716     BIT.B   #4,&$200
9717     ADDC    R11,R11
9718     MOV.B   &$200,&$208
9719     BIC.B   #4,&$20C
9720     SUB     #1,R10
9721 0<> WHILE
9722     ADD R9,R8
9723     BEGIN
9724         MOV &$390,R9
9725         CMP R8,R9
9726         U>= IF
9727         BIC #$30,&$380
9728         GOTO BW1
9729         THEN
9730         BIT.B #4,&$20C
9731     0<> UNTIL
9732 REPEAT
9733 BIC #$30,&$380
9734 RLAM    #1,R11
9735 MOV.B   R11,R9
9736 RRUM    #2,R9
9737 BIT     #$4000,R11
9738 0= IF   BIS #$40,R9
9739 THEN
9740 RRUM    #3,R11
9741 XOR     @R1,R11
9742 BIT     #$400,R11
9743 0= ?GOTO BW1
9744 XOR #$400,0(R1)
9745 SUB #8,R15
9746 MOV R14,6(R15)
9747 MOV &$1DDC,4(R15)
9748 MOV #$10,&$1DDC
9749 MOV R9,0(R15)
9750 MOV #0,R14
9751 LO2HI
9752     LCD_CLEAR
9753     <# # #S #36 HOLD #>
9754     ['] LCD_WRC IS EMIT
9755     TYPE
9756     ['] EMIT >BODY IS EMIT
9757 HI2LO
9758 MOV @R15+,&$1DDC
9759 MOV @R15+,R14
9760 MOV @R1+,R0
9761 ENDASM
9762
9763 ASM BACKGROUND
9764 BEGIN
9765     CALL &$1814
9766     BIS &$180A,R2
9767 AGAIN
9768 ENDASM
9769
9770 ASM SYS_OUT
9771     MOV #WARM,R9
9772     ADD #4,R9
9773     MOV R9,R0
9774 ENDASM
9775
9776 CODE STOP
9777 BW1 MOV #$4000,R9
9778     ADD #4,R9
9779     MOV R9,-2(R9)
9780     MOV #WARM,R9
9781     MOV #SYS_OUT,2(R9)
9782     BIC.B #4,&$20A
9783     BIC.B #4,&$20C
9784     MOV #0,&$3C0
9785     MOV #0,&$340
9786     MOV #0,&$342
9787     CALL #$400E
9788 COLON
9789 ECHO
9790 ." RC5toLCD is removed,"
9791 ."  type START to restart"
9792  WARM
9793 ;
9794
9795 CODE SYS_INIT
9796 MOV #%10_1101_0100,&$3C0
9797 $1806 @ 16000 = [IF]
9798     MOV #1,&$3E0
9799 [THEN]
9800 $1806 @ 24000 = [IF]
9801     MOV #2,&$3E0
9802 [THEN]
9803     MOV #19,&$3D2
9804 MOV #%0110_0000,&$3C6
9805     MOV #10,&$3D6
9806     BIS.B #$20,&$204
9807     BIS.B #$20,&$20A
9808     BIS.B #7,&$245
9809     BIC.B #7,&$247
9810     BIS.B #$0F,&$224
9811     BIC.B #$0F,&$226
9812     BIS.B #4,&$20A
9813     BIC.B #4,&$20C
9814     MOV #RC5_INT,&$FFDE
9815 MOV #%01_0001_0100,&$340
9816     MOV ##3276,&$352
9817     MOV #%10000,&$342
9818     MOV #WDT_INT,&$FFEA
9819 BIC #1,&$130
9820 BIS.B #3,&$20D
9821 MOV &$1808,R8
9822 CMP #4,R8
9823 0= ?GOTO BW1
9824 COLON
9825     #1000 20_US
9826     %011 TOP_LCD
9827     #205 20_US
9828     %011 TOP_LCD
9829     #5 20_US
9830     %011 TOP_LCD
9831     #2 20_US
9832     %010 TOP_LCD
9833     #2 20_US
9834     %00101000 LCD_WRF
9835     %1000 LCD_WRF
9836     LCD_CLEAR
9837     %0110 LCD_WRF
9838     %1100 LCD_WRF
9839     LCD_CLEAR
9840     ['] LCD_HOME IS CR
9841     ['] LCD_WRC  IS EMIT
9842     CR ." I love you"
9843     ['] CR >BODY IS CR
9844     ['] EMIT >BODY IS EMIT
9845     ." RC5toLCD is running. Type STOP to quit"
9846     PWR_STATE ABORT
9847 ;
9848
9849 CODE START
9850 MOV #$4000,R9
9851 MOV #BACKGROUND,2(R9)
9852 MOV #WARM,R9
9853 MOV #SYS_INIT,2(R9)
9854 MOV R9,R0
9855 ENDCODE 
9856
9857 ECHO
9858             ; downloading RC5toLCD.4th is done
9859 RST_HERE    ; this app is protected against <reset>
9860
9861
9862 RST_STATE
9863
9864 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9865
9866 [UNDEFINED] MARKER [IF]
9867 : MARKER
9868 CREATE
9869 HI2LO
9870 MOV &$1DC8,0(R10)
9871 SUB #2,R8
9872 MOV R8,2(R10)
9873 ADD #4,&$1DC6
9874 LO2HI
9875 DOES>
9876 HI2LO
9877 MOV @R1+,R13
9878 MOV @R14+,&$180E
9879 MOV @R14,&$180C
9880 MOV @R15+,R14
9881 MOV #RST_STATE,R0
9882 ENDCODE
9883 [THEN]
9884
9885 MARKER {RC5TOLCD}
9886
9887 [UNDEFINED] @ [IF]
9888 CODE @
9889 MOV @R14,R14
9890 MOV @R13+,R0
9891 ENDCODE
9892 [THEN]
9893
9894 [UNDEFINED] CONSTANT [IF]
9895 : CONSTANT 
9896 CREATE
9897 HI2LO
9898 MOV R14,-2(R10)
9899 MOV @R15+,R14
9900 MOV @R1+,R13
9901 MOV @R13+,R0
9902 ENDCODE
9903 [THEN]
9904
9905 [UNDEFINED] STATE [IF]
9906 $1DBE CONSTANT STATE
9907 [THEN]
9908
9909 [UNDEFINED] = [IF]
9910 CODE =
9911 SUB @R15+,R14
9912 0<> IF
9913     AND #0,R14
9914     MOV @R13+,R0
9915 THEN
9916 XOR #-1,R14
9917 MOV @R13+,R0
9918 ENDCODE
9919 [THEN]
9920
9921 [UNDEFINED] IF [IF]
9922 CODE IF
9923 SUB #2,R15
9924 MOV R14,0(R15)
9925 MOV &$1DC6,R14
9926 ADD #4,&$1DC6
9927 MOV #$404C,0(R14)
9928 ADD #2,R14
9929 MOV @R13+,R0
9930 ENDCODE IMMEDIATE
9931 [THEN]
9932
9933 [UNDEFINED] THEN [IF]
9934 CODE THEN
9935 MOV &$1DC6,0(R14)
9936 MOV @R15+,R14
9937 MOV @R13+,R0
9938 ENDCODE IMMEDIATE
9939 [THEN]
9940
9941 [UNDEFINED] ELSE [IF]
9942 CODE ELSE
9943 ADD #4,&$1DC6
9944 MOV &$1DC6,R10
9945 MOV #$4048,-4(R10)
9946 MOV R10,0(R14)
9947 SUB #2,R10
9948 MOV R10,R14
9949 MOV @R13+,R0
9950 ENDCODE IMMEDIATE
9951 [THEN]
9952
9953 [UNDEFINED] DEFER [IF]
9954
9955 : DEFER
9956 CREATE
9957 HI2LO
9958 MOV #$4030,-4(R10)
9959 MOV #$402C,-2(R10)
9960 MOV @R1+,R13
9961 MOV @R13+,R0
9962 ENDCODE
9963 [THEN]
9964
9965 [UNDEFINED] DEFER! [IF]
9966 CODE DEFER!
9967 MOV @R15+,2(R14)
9968 MOV @R15+,R14
9969 MOV @R13+,R0
9970 ENDCODE
9971 [THEN]
9972
9973 [UNDEFINED] IS [IF]
9974 : IS
9975 STATE @
9976 IF  POSTPONE ['] POSTPONE DEFER! 
9977 ELSE ' DEFER! 
9978 THEN
9979 ; IMMEDIATE
9980 [THEN]
9981
9982 [UNDEFINED] >BODY [IF]
9983 CODE >BODY
9984 ADD #4,R14
9985 MOV @R13+,R0
9986 ENDCODE
9987 [THEN]
9988
9989
9990 CODE 20_US
9991 BEGIN
9992     BEGIN
9993         BIT #1,&$3C0
9994     0<> UNTIL
9995     BIC #1,&$3C0
9996     SUB #1,R14
9997 U< UNTIL
9998 MOV @R15+,R14
9999 MOV @R13+,R0
10000 ENDCODE
10001
10002 CODE TOP_LCD
10003     BIS.B #4,&$243
10004     BIT.B #1,&$241
10005 0= IF
10006     AND.B #$0F,R14
10007     MOV.B R14,&$222
10008     BIC.B #4,&$243
10009     MOV @R15+,R14
10010     MOV @R13+,R0
10011 THEN
10012     SUB #2,R15
10013     MOV R14,0(R15)
10014     BIC.B #4,&$243
10015     MOV.B &$220,R14
10016     AND.B #$0F,R14
10017     MOV @R13+,R0
10018 ENDCODE
10019
10020 CODE LCD_WRC
10021     BIS.B #2,&$243
10022 BW1 SUB #2,R15
10023     MOV R14,0(R15)
10024     RRUM #4,R14
10025     BIC.B #1,&$243
10026     BIS.B #$0F,&$224
10027 COLON
10028     TOP_LCD 2 20_US
10029     TOP_LCD 2 20_US 
10030 ;
10031
10032 CODE LCD_WRF
10033     BIC.B #2,&$243
10034     GOTO BW1
10035 ENDCODE
10036
10037 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10038 : LCD_HOME $02 LCD_WRF 100 20_us ;
10039
10040
10041
10042 ASM WDT_INT
10043 ADD #2,R1
10044 BIT.B #$20,&$240
10045 0= IF
10046     CMP #19,&$3D6
10047     U< IF
10048         ADD #1,&$3D6
10049     THEN
10050 ELSE
10051     BIT.B #$40,&$240
10052     0= IF
10053         CMP #3,&$3D6
10054         U>= IF
10055            SUB #1,&$3D6
10056         THEN
10057     THEN
10058 THEN
10059 BW1
10060 MOV @R1+,R0
10061 ENDASM
10062
10063 ASM RC5_INT
10064 ADD #2,R1
10065 $1806 @ 16000 = [IF]
10066     MOV #1,&$3A0
10067 [THEN]
10068 $1806 @ 24000 = [IF]
10069     MOV #2,&$3A0
10070 [THEN]
10071 MOV #1778,R9
10072 MOV #14,R10
10073 BEGIN
10074 MOV #%1011100100,&$380
10075     RRUM    #1,R9
10076     MOV     R9,R8
10077     RRUM    #1,R8
10078     ADD     R9,R8
10079     BEGIN   CMP R8,&$390
10080     U>= UNTIL
10081     BIT.B   #4,&$200
10082     ADDC    R11,R11
10083     MOV.B   &$200,&$208
10084     BIC.B   #4,&$20C
10085     SUB     #1,R10
10086 0<> WHILE
10087     ADD R9,R8
10088     BEGIN
10089         MOV &$390,R9
10090         CMP R8,R9
10091         U>= IF
10092         BIC #$30,&$380
10093         GOTO BW1
10094         THEN
10095         BIT.B #4,&$20C
10096     0<> UNTIL
10097 REPEAT
10098 BIC #$30,&$380
10099 RLAM    #1,R11
10100 MOV.B   R11,R9
10101 RRUM    #2,R9
10102 BIT     #$4000,R11
10103 0= IF   BIS #$40,R9
10104 THEN
10105 RRUM    #3,R11
10106 XOR     @R1,R11
10107 BIT     #$400,R11
10108 0= ?GOTO BW1
10109 XOR #$400,0(R1)
10110 SUB #8,R15
10111 MOV R14,6(R15)
10112 MOV &$1DDC,4(R15)
10113 MOV #$10,&$1DDC
10114 MOV R9,0(R15)
10115 MOV #0,R14
10116 LO2HI
10117     LCD_CLEAR
10118     <# # #S #36 HOLD #>
10119     ['] LCD_WRC IS EMIT
10120     TYPE
10121     ['] EMIT >BODY IS EMIT
10122 HI2LO
10123 MOV @R15+,&$1DDC
10124 MOV @R15+,R14
10125 MOV @R1+,R0
10126 ENDASM
10127
10128 ASM BACKGROUND
10129 BEGIN
10130     CALL &$1814
10131     BIS &$180A,R2
10132 AGAIN
10133 ENDASM
10134
10135 ASM SYS_OUT
10136     MOV #WARM,R9
10137     ADD #4,R9
10138     MOV R9,R0
10139 ENDASM
10140
10141 CODE STOP
10142 BW1 MOV #$4000,R9
10143     ADD #4,R9
10144     MOV R9,-2(R9)
10145     MOV #WARM,R9
10146     MOV #SYS_OUT,2(R9)
10147     BIC.B #4,&$20A
10148     BIC.B #4,&$20C
10149     MOV #0,&$3C0
10150     MOV #0,&$340
10151     MOV #0,&$342
10152     CALL #$400E
10153 COLON
10154 ECHO
10155 ." RC5toLCD is removed,"
10156 ."  type START to restart"
10157  WARM
10158 ;
10159
10160 CODE SYS_INIT
10161 MOV #%10_1101_0100,&$3C0
10162 $1806 @ 16000 = [IF]
10163     MOV #1,&$3E0
10164 [THEN]
10165 $1806 @ 24000 = [IF]
10166     MOV #2,&$3E0
10167 [THEN]
10168     MOV #19,&$3D2
10169 MOV #%0110_0000,&$3C6
10170     MOV #10,&$3D6
10171     BIS.B #$20,&$204
10172     BIS.B #$20,&$20A
10173     BIS.B #7,&$245
10174     BIC.B #7,&$247
10175     BIS.B #$0F,&$224
10176     BIC.B #$0F,&$226
10177     BIS.B #4,&$20A
10178     BIC.B #4,&$20C
10179     MOV #RC5_INT,&$FFDE
10180 MOV #%01_0001_0100,&$340
10181     MOV ##3276,&$352
10182     MOV #%10000,&$342
10183     MOV #WDT_INT,&$FFEA
10184 BIC #1,&$130
10185 BIS.B #3,&$20D
10186 MOV &$1808,R8
10187 CMP #4,R8
10188 0= ?GOTO BW1
10189 COLON
10190     #1000 20_US
10191     %011 TOP_LCD
10192     #205 20_US
10193     %011 TOP_LCD
10194     #5 20_US
10195     %011 TOP_LCD
10196     #2 20_US
10197     %010 TOP_LCD
10198     #2 20_US
10199     %00101000 LCD_WRF
10200     %1000 LCD_WRF
10201     LCD_CLEAR
10202     %0110 LCD_WRF
10203     %1100 LCD_WRF
10204     LCD_CLEAR
10205     ['] LCD_HOME IS CR
10206     ['] LCD_WRC  IS EMIT
10207     CR ." I love you"
10208     ['] CR >BODY IS CR
10209     ['] EMIT >BODY IS EMIT
10210     ." RC5toLCD is running. Type STOP to quit"
10211     PWR_STATE ABORT
10212 ;
10213
10214 CODE START
10215 MOV #$4000,R9
10216 MOV #BACKGROUND,2(R9)
10217 MOV #WARM,R9
10218 MOV #SYS_INIT,2(R9)
10219 MOV R9,R0
10220 ENDCODE 
10221
10222 ECHO
10223             ; downloading RC5toLCD.4th is done
10224 RST_HERE    ; this app is protected against <reset>
10225
10226
10227 RST_STATE
10228
10229 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10230
10231 [UNDEFINED] MARKER [IF]
10232 : MARKER
10233 CREATE
10234 HI2LO
10235 MOV &$1DC8,0(R10)
10236 SUB #2,R8
10237 MOV R8,2(R10)
10238 ADD #4,&$1DC6
10239 LO2HI
10240 DOES>
10241 HI2LO
10242 MOV @R1+,R13
10243 MOV @R14+,&$180E
10244 MOV @R14,&$180C
10245 MOV @R15+,R14
10246 MOV #RST_STATE,R0
10247 ENDCODE
10248 [THEN]
10249
10250 MARKER {RC5TOLCD}
10251
10252 [UNDEFINED] @ [IF]
10253 CODE @
10254 MOV @R14,R14
10255 MOV @R13+,R0
10256 ENDCODE
10257 [THEN]
10258
10259 [UNDEFINED] CONSTANT [IF]
10260 : CONSTANT 
10261 CREATE
10262 HI2LO
10263 MOV R14,-2(R10)
10264 MOV @R15+,R14
10265 MOV @R1+,R13
10266 MOV @R13+,R0
10267 ENDCODE
10268 [THEN]
10269
10270 [UNDEFINED] STATE [IF]
10271 $1DBE CONSTANT STATE
10272 [THEN]
10273
10274 [UNDEFINED] = [IF]
10275 CODE =
10276 SUB @R15+,R14
10277 0<> IF
10278     AND #0,R14
10279     MOV @R13+,R0
10280 THEN
10281 XOR #-1,R14
10282 MOV @R13+,R0
10283 ENDCODE
10284 [THEN]
10285
10286 [UNDEFINED] IF [IF]
10287 CODE IF
10288 SUB #2,R15
10289 MOV R14,0(R15)
10290 MOV &$1DC6,R14
10291 ADD #4,&$1DC6
10292 MOV #$404C,0(R14)
10293 ADD #2,R14
10294 MOV @R13+,R0
10295 ENDCODE IMMEDIATE
10296 [THEN]
10297
10298 [UNDEFINED] THEN [IF]
10299 CODE THEN
10300 MOV &$1DC6,0(R14)
10301 MOV @R15+,R14
10302 MOV @R13+,R0
10303 ENDCODE IMMEDIATE
10304 [THEN]
10305
10306 [UNDEFINED] ELSE [IF]
10307 CODE ELSE
10308 ADD #4,&$1DC6
10309 MOV &$1DC6,R10
10310 MOV #$4048,-4(R10)
10311 MOV R10,0(R14)
10312 SUB #2,R10
10313 MOV R10,R14
10314 MOV @R13+,R0
10315 ENDCODE IMMEDIATE
10316 [THEN]
10317
10318 [UNDEFINED] DEFER [IF]
10319
10320 : DEFER
10321 CREATE
10322 HI2LO
10323 MOV #$4030,-4(R10)
10324 MOV #$402C,-2(R10)
10325 MOV @R1+,R13
10326 MOV @R13+,R0
10327 ENDCODE
10328 [THEN]
10329
10330 [UNDEFINED] DEFER! [IF]
10331 CODE DEFER!
10332 MOV @R15+,2(R14)
10333 MOV @R15+,R14
10334 MOV @R13+,R0
10335 ENDCODE
10336 [THEN]
10337
10338 [UNDEFINED] IS [IF]
10339 : IS
10340 STATE @
10341 IF  POSTPONE ['] POSTPONE DEFER! 
10342 ELSE ' DEFER! 
10343 THEN
10344 ; IMMEDIATE
10345 [THEN]
10346
10347 [UNDEFINED] >BODY [IF]
10348 CODE >BODY
10349 ADD #4,R14
10350 MOV @R13+,R0
10351 ENDCODE
10352 [THEN]
10353
10354
10355 CODE 20_US
10356 BEGIN
10357     BEGIN
10358         BIT #1,&$3C0
10359     0<> UNTIL
10360     BIC #1,&$3C0
10361     SUB #1,R14
10362 U< UNTIL
10363 MOV @R15+,R14
10364 MOV @R13+,R0
10365 ENDCODE
10366
10367 CODE TOP_LCD
10368     BIS.B #4,&$243
10369     BIT.B #1,&$241
10370 0= IF
10371     AND.B #$0F,R14
10372     MOV.B R14,&$222
10373     BIC.B #4,&$243
10374     MOV @R15+,R14
10375     MOV @R13+,R0
10376 THEN
10377     SUB #2,R15
10378     MOV R14,0(R15)
10379     BIC.B #4,&$243
10380     MOV.B &$220,R14
10381     AND.B #$0F,R14
10382     MOV @R13+,R0
10383 ENDCODE
10384
10385 CODE LCD_WRC
10386     BIS.B #2,&$243
10387 BW1 SUB #2,R15
10388     MOV R14,0(R15)
10389     RRUM #4,R14
10390     BIC.B #1,&$243
10391     BIS.B #$0F,&$224
10392 COLON
10393     TOP_LCD 2 20_US
10394     TOP_LCD 2 20_US 
10395 ;
10396
10397 CODE LCD_WRF
10398     BIC.B #2,&$243
10399     GOTO BW1
10400 ENDCODE
10401
10402 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10403 : LCD_HOME $02 LCD_WRF 100 20_us ;
10404
10405
10406
10407 ASM WDT_INT
10408 ADD #2,R1
10409 BIT.B #$20,&$240
10410 0= IF
10411     CMP #19,&$3D6
10412     U< IF
10413         ADD #1,&$3D6
10414     THEN
10415 ELSE
10416     BIT.B #$40,&$240
10417     0= IF
10418         CMP #3,&$3D6
10419         U>= IF
10420            SUB #1,&$3D6
10421         THEN
10422     THEN
10423 THEN
10424 BW1
10425 MOV @R1+,R0
10426 ENDASM
10427
10428 ASM RC5_INT
10429 ADD #2,R1
10430 $1806 @ 16000 = [IF]
10431     MOV #1,&$3A0
10432 [THEN]
10433 $1806 @ 24000 = [IF]
10434     MOV #2,&$3A0
10435 [THEN]
10436 MOV #1778,R9
10437 MOV #14,R10
10438 BEGIN
10439 MOV #%1011100100,&$380
10440     RRUM    #1,R9
10441     MOV     R9,R8
10442     RRUM    #1,R8
10443     ADD     R9,R8
10444     BEGIN   CMP R8,&$390
10445     U>= UNTIL
10446     BIT.B   #4,&$200
10447     ADDC    R11,R11
10448     MOV.B   &$200,&$208
10449     BIC.B   #4,&$20C
10450     SUB     #1,R10
10451 0<> WHILE
10452     ADD R9,R8
10453     BEGIN
10454         MOV &$390,R9
10455         CMP R8,R9
10456         U>= IF
10457         BIC #$30,&$380
10458         GOTO BW1
10459         THEN
10460         BIT.B #4,&$20C
10461     0<> UNTIL
10462 REPEAT
10463 BIC #$30,&$380
10464 RLAM    #1,R11
10465 MOV.B   R11,R9
10466 RRUM    #2,R9
10467 BIT     #$4000,R11
10468 0= IF   BIS #$40,R9
10469 THEN
10470 RRUM    #3,R11
10471 XOR     @R1,R11
10472 BIT     #$400,R11
10473 0= ?GOTO BW1
10474 XOR #$400,0(R1)
10475 SUB #8,R15
10476 MOV R14,6(R15)
10477 MOV &$1DDC,4(R15)
10478 MOV #$10,&$1DDC
10479 MOV R9,0(R15)
10480 MOV #0,R14
10481 LO2HI
10482     LCD_CLEAR
10483     <# # #S #36 HOLD #>
10484     ['] LCD_WRC IS EMIT
10485     TYPE
10486     ['] EMIT >BODY IS EMIT
10487 HI2LO
10488 MOV @R15+,&$1DDC
10489 MOV @R15+,R14
10490 MOV @R1+,R0
10491 ENDASM
10492
10493 ASM BACKGROUND
10494 BEGIN
10495     CALL &$1814
10496     BIS &$180A,R2
10497 AGAIN
10498 ENDASM
10499
10500 ASM SYS_OUT
10501     MOV #WARM,R9
10502     ADD #4,R9
10503     MOV R9,R0
10504 ENDASM
10505
10506 CODE STOP
10507 BW1 MOV #$4000,R9
10508     ADD #4,R9
10509     MOV R9,-2(R9)
10510     MOV #WARM,R9
10511     MOV #SYS_OUT,2(R9)
10512     BIC.B #4,&$20A
10513     BIC.B #4,&$20C
10514     MOV #0,&$3C0
10515     MOV #0,&$340
10516     MOV #0,&$342
10517     CALL #$400E
10518 COLON
10519 ECHO
10520 ." RC5toLCD is removed,"
10521 ."  type START to restart"
10522  WARM
10523 ;
10524
10525 CODE SYS_INIT
10526 MOV #%10_1101_0100,&$3C0
10527 $1806 @ 16000 = [IF]
10528     MOV #1,&$3E0
10529 [THEN]
10530 $1806 @ 24000 = [IF]
10531     MOV #2,&$3E0
10532 [THEN]
10533     MOV #19,&$3D2
10534 MOV #%0110_0000,&$3C6
10535     MOV #10,&$3D6
10536     BIS.B #$20,&$204
10537     BIS.B #$20,&$20A
10538     BIS.B #7,&$245
10539     BIC.B #7,&$247
10540     BIS.B #$0F,&$224
10541     BIC.B #$0F,&$226
10542     BIS.B #4,&$20A
10543     BIC.B #4,&$20C
10544     MOV #RC5_INT,&$FFDE
10545 MOV #%01_0001_0100,&$340
10546     MOV ##3276,&$352
10547     MOV #%10000,&$342
10548     MOV #WDT_INT,&$FFEA
10549 BIC #1,&$130
10550 BIS.B #3,&$20D
10551 MOV &$1808,R8
10552 CMP #4,R8
10553 0= ?GOTO BW1
10554 COLON
10555     #1000 20_US
10556     %011 TOP_LCD
10557     #205 20_US
10558     %011 TOP_LCD
10559     #5 20_US
10560     %011 TOP_LCD
10561     #2 20_US
10562     %010 TOP_LCD
10563     #2 20_US
10564     %00101000 LCD_WRF
10565     %1000 LCD_WRF
10566     LCD_CLEAR
10567     %0110 LCD_WRF
10568     %1100 LCD_WRF
10569     LCD_CLEAR
10570     ['] LCD_HOME IS CR
10571     ['] LCD_WRC  IS EMIT
10572     CR ." I love you"
10573     ['] CR >BODY IS CR
10574     ['] EMIT >BODY IS EMIT
10575     ." RC5toLCD is running. Type STOP to quit"
10576     PWR_STATE ABORT
10577 ;
10578
10579 CODE START
10580 MOV #$4000,R9
10581 MOV #BACKGROUND,2(R9)
10582 MOV #WARM,R9
10583 MOV #SYS_INIT,2(R9)
10584 MOV R9,R0
10585 ENDCODE 
10586
10587 ECHO
10588             ; downloading RC5toLCD.4th is done
10589 RST_HERE    ; this app is protected against <reset>
10590
10591
10592 RST_STATE
10593
10594 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10595
10596 [UNDEFINED] MARKER [IF]
10597 : MARKER
10598 CREATE
10599 HI2LO
10600 MOV &$1DC8,0(R10)
10601 SUB #2,R8
10602 MOV R8,2(R10)
10603 ADD #4,&$1DC6
10604 LO2HI
10605 DOES>
10606 HI2LO
10607 MOV @R1+,R13
10608 MOV @R14+,&$180E
10609 MOV @R14,&$180C
10610 MOV @R15+,R14
10611 MOV #RST_STATE,R0
10612 ENDCODE
10613 [THEN]
10614
10615 MARKER {RC5TOLCD}
10616
10617 [UNDEFINED] @ [IF]
10618 CODE @
10619 MOV @R14,R14
10620 MOV @R13+,R0
10621 ENDCODE
10622 [THEN]
10623
10624 [UNDEFINED] CONSTANT [IF]
10625 : CONSTANT 
10626 CREATE
10627 HI2LO
10628 MOV R14,-2(R10)
10629 MOV @R15+,R14
10630 MOV @R1+,R13
10631 MOV @R13+,R0
10632 ENDCODE
10633 [THEN]
10634
10635 [UNDEFINED] STATE [IF]
10636 $1DBE CONSTANT STATE
10637 [THEN]
10638
10639 [UNDEFINED] = [IF]
10640 CODE =
10641 SUB @R15+,R14
10642 0<> IF
10643     AND #0,R14
10644     MOV @R13+,R0
10645 THEN
10646 XOR #-1,R14
10647 MOV @R13+,R0
10648 ENDCODE
10649 [THEN]
10650
10651 [UNDEFINED] IF [IF]
10652 CODE IF
10653 SUB #2,R15
10654 MOV R14,0(R15)
10655 MOV &$1DC6,R14
10656 ADD #4,&$1DC6
10657 MOV #$404C,0(R14)
10658 ADD #2,R14
10659 MOV @R13+,R0
10660 ENDCODE IMMEDIATE
10661 [THEN]
10662
10663 [UNDEFINED] THEN [IF]
10664 CODE THEN
10665 MOV &$1DC6,0(R14)
10666 MOV @R15+,R14
10667 MOV @R13+,R0
10668 ENDCODE IMMEDIATE
10669 [THEN]
10670
10671 [UNDEFINED] ELSE [IF]
10672 CODE ELSE
10673 ADD #4,&$1DC6
10674 MOV &$1DC6,R10
10675 MOV #$4048,-4(R10)
10676 MOV R10,0(R14)
10677 SUB #2,R10
10678 MOV R10,R14
10679 MOV @R13+,R0
10680 ENDCODE IMMEDIATE
10681 [THEN]
10682
10683 [UNDEFINED] DEFER [IF]
10684
10685 : DEFER
10686 CREATE
10687 HI2LO
10688 MOV #$4030,-4(R10)
10689 MOV #$402C,-2(R10)
10690 MOV @R1+,R13
10691 MOV @R13+,R0
10692 ENDCODE
10693 [THEN]
10694
10695 [UNDEFINED] DEFER! [IF]
10696 CODE DEFER!
10697 MOV @R15+,2(R14)
10698 MOV @R15+,R14
10699 MOV @R13+,R0
10700 ENDCODE
10701 [THEN]
10702
10703 [UNDEFINED] IS [IF]
10704 : IS
10705 STATE @
10706 IF  POSTPONE ['] POSTPONE DEFER! 
10707 ELSE ' DEFER! 
10708 THEN
10709 ; IMMEDIATE
10710 [THEN]
10711
10712 [UNDEFINED] >BODY [IF]
10713 CODE >BODY
10714 ADD #4,R14
10715 MOV @R13+,R0
10716 ENDCODE
10717 [THEN]
10718
10719
10720 CODE 20_US
10721 BEGIN
10722     BEGIN
10723         BIT #1,&$3C0
10724     0<> UNTIL
10725     BIC #1,&$3C0
10726     SUB #1,R14
10727 U< UNTIL
10728 MOV @R15+,R14
10729 MOV @R13+,R0
10730 ENDCODE
10731
10732 CODE TOP_LCD
10733     BIS.B #4,&$243
10734     BIT.B #1,&$241
10735 0= IF
10736     AND.B #$0F,R14
10737     MOV.B R14,&$222
10738     BIC.B #4,&$243
10739     MOV @R15+,R14
10740     MOV @R13+,R0
10741 THEN
10742     SUB #2,R15
10743     MOV R14,0(R15)
10744     BIC.B #4,&$243
10745     MOV.B &$220,R14
10746     AND.B #$0F,R14
10747     MOV @R13+,R0
10748 ENDCODE
10749
10750 CODE LCD_WRC
10751     BIS.B #2,&$243
10752 BW1 SUB #2,R15
10753     MOV R14,0(R15)
10754     RRUM #4,R14
10755     BIC.B #1,&$243
10756     BIS.B #$0F,&$224
10757 COLON
10758     TOP_LCD 2 20_US
10759     TOP_LCD 2 20_US 
10760 ;
10761
10762 CODE LCD_WRF
10763     BIC.B #2,&$243
10764     GOTO BW1
10765 ENDCODE
10766
10767 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10768 : LCD_HOME $02 LCD_WRF 100 20_us ;
10769
10770
10771
10772 ASM WDT_INT
10773 ADD #2,R1
10774 BIT.B #$20,&$240
10775 0= IF
10776     CMP #19,&$3D6
10777     U< IF
10778         ADD #1,&$3D6
10779     THEN
10780 ELSE
10781     BIT.B #$40,&$240
10782     0= IF
10783         CMP #3,&$3D6
10784         U>= IF
10785            SUB #1,&$3D6
10786         THEN
10787     THEN
10788 THEN
10789 BW1
10790 MOV @R1+,R0
10791 ENDASM
10792
10793 ASM RC5_INT
10794 ADD #2,R1
10795 $1806 @ 16000 = [IF]
10796     MOV #1,&$3A0
10797 [THEN]
10798 $1806 @ 24000 = [IF]
10799     MOV #2,&$3A0
10800 [THEN]
10801 MOV #1778,R9
10802 MOV #14,R10
10803 BEGIN
10804 MOV #%1011100100,&$380
10805     RRUM    #1,R9
10806     MOV     R9,R8
10807     RRUM    #1,R8
10808     ADD     R9,R8
10809     BEGIN   CMP R8,&$390
10810     U>= UNTIL
10811     BIT.B   #4,&$200
10812     ADDC    R11,R11
10813     MOV.B   &$200,&$208
10814     BIC.B   #4,&$20C
10815     SUB     #1,R10
10816 0<> WHILE
10817     ADD R9,R8
10818     BEGIN
10819         MOV &$390,R9
10820         CMP R8,R9
10821         U>= IF
10822         BIC #$30,&$380
10823         GOTO BW1
10824         THEN
10825         BIT.B #4,&$20C
10826     0<> UNTIL
10827 REPEAT
10828 BIC #$30,&$380
10829 RLAM    #1,R11
10830 MOV.B   R11,R9
10831 RRUM    #2,R9
10832 BIT     #$4000,R11
10833 0= IF   BIS #$40,R9
10834 THEN
10835 RRUM    #3,R11
10836 XOR     @R1,R11
10837 BIT     #$400,R11
10838 0= ?GOTO BW1
10839 XOR #$400,0(R1)
10840 SUB #8,R15
10841 MOV R14,6(R15)
10842 MOV &$1DDC,4(R15)
10843 MOV #$10,&$1DDC
10844 MOV R9,0(R15)
10845 MOV #0,R14
10846 LO2HI
10847     LCD_CLEAR
10848     <# # #S #36 HOLD #>
10849     ['] LCD_WRC IS EMIT
10850     TYPE
10851     ['] EMIT >BODY IS EMIT
10852 HI2LO
10853 MOV @R15+,&$1DDC
10854 MOV @R15+,R14
10855 MOV @R1+,R0
10856 ENDASM
10857
10858 ASM BACKGROUND
10859 BEGIN
10860     CALL &$1814
10861     BIS &$180A,R2
10862 AGAIN
10863 ENDASM
10864
10865 ASM SYS_OUT
10866     MOV #WARM,R9
10867     ADD #4,R9
10868     MOV R9,R0
10869 ENDASM
10870
10871 CODE STOP
10872 BW1 MOV #$4000,R9
10873     ADD #4,R9
10874     MOV R9,-2(R9)
10875     MOV #WARM,R9
10876     MOV #SYS_OUT,2(R9)
10877     BIC.B #4,&$20A
10878     BIC.B #4,&$20C
10879     MOV #0,&$3C0
10880     MOV #0,&$340
10881     MOV #0,&$342
10882     CALL #$400E
10883 COLON
10884 ECHO
10885 ." RC5toLCD is removed,"
10886 ."  type START to restart"
10887  WARM
10888 ;
10889
10890 CODE SYS_INIT
10891 MOV #%10_1101_0100,&$3C0
10892 $1806 @ 16000 = [IF]
10893     MOV #1,&$3E0
10894 [THEN]
10895 $1806 @ 24000 = [IF]
10896     MOV #2,&$3E0
10897 [THEN]
10898     MOV #19,&$3D2
10899 MOV #%0110_0000,&$3C6
10900     MOV #10,&$3D6
10901     BIS.B #$20,&$204
10902     BIS.B #$20,&$20A
10903     BIS.B #7,&$245
10904     BIC.B #7,&$247
10905     BIS.B #$0F,&$224
10906     BIC.B #$0F,&$226
10907     BIS.B #4,&$20A
10908     BIC.B #4,&$20C
10909     MOV #RC5_INT,&$FFDE
10910 MOV #%01_0001_0100,&$340
10911     MOV ##3276,&$352
10912     MOV #%10000,&$342
10913     MOV #WDT_INT,&$FFEA
10914 BIC #1,&$130
10915 BIS.B #3,&$20D
10916 MOV &$1808,R8
10917 CMP #4,R8
10918 0= ?GOTO BW1
10919 COLON
10920     #1000 20_US
10921     %011 TOP_LCD
10922     #205 20_US
10923     %011 TOP_LCD
10924     #5 20_US
10925     %011 TOP_LCD
10926     #2 20_US
10927     %010 TOP_LCD
10928     #2 20_US
10929     %00101000 LCD_WRF
10930     %1000 LCD_WRF
10931     LCD_CLEAR
10932     %0110 LCD_WRF
10933     %1100 LCD_WRF
10934     LCD_CLEAR
10935     ['] LCD_HOME IS CR
10936     ['] LCD_WRC  IS EMIT
10937     CR ." I love you"
10938     ['] CR >BODY IS CR
10939     ['] EMIT >BODY IS EMIT
10940     ." RC5toLCD is running. Type STOP to quit"
10941     PWR_STATE ABORT
10942 ;
10943
10944 CODE START
10945 MOV #$4000,R9
10946 MOV #BACKGROUND,2(R9)
10947 MOV #WARM,R9
10948 MOV #SYS_INIT,2(R9)
10949 MOV R9,R0
10950 ENDCODE 
10951
10952 ECHO
10953             ; downloading RC5toLCD.4th is done
10954 RST_HERE    ; this app is protected against <reset>
10955
10956
10957 RST_STATE
10958
10959 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10960
10961 [UNDEFINED] MARKER [IF]
10962 : MARKER
10963 CREATE
10964 HI2LO
10965 MOV &$1DC8,0(R10)
10966 SUB #2,R8
10967 MOV R8,2(R10)
10968 ADD #4,&$1DC6
10969 LO2HI
10970 DOES>
10971 HI2LO
10972 MOV @R1+,R13
10973 MOV @R14+,&$180E
10974 MOV @R14,&$180C
10975 MOV @R15+,R14
10976 MOV #RST_STATE,R0
10977 ENDCODE
10978 [THEN]
10979
10980 MARKER {RC5TOLCD}
10981
10982 [UNDEFINED] @ [IF]
10983 CODE @
10984 MOV @R14,R14
10985 MOV @R13+,R0
10986 ENDCODE
10987 [THEN]
10988
10989 [UNDEFINED] CONSTANT [IF]
10990 : CONSTANT 
10991 CREATE
10992 HI2LO
10993 MOV R14,-2(R10)
10994 MOV @R15+,R14
10995 MOV @R1+,R13
10996 MOV @R13+,R0
10997 ENDCODE
10998 [THEN]
10999
11000 [UNDEFINED] STATE [IF]
11001 $1DBE CONSTANT STATE
11002 [THEN]
11003
11004 [UNDEFINED] = [IF]
11005 CODE =
11006 SUB @R15+,R14
11007 0<> IF
11008     AND #0,R14
11009     MOV @R13+,R0
11010 THEN
11011 XOR #-1,R14
11012 MOV @R13+,R0
11013 ENDCODE
11014 [THEN]
11015
11016 [UNDEFINED] IF [IF]
11017 CODE IF
11018 SUB #2,R15
11019 MOV R14,0(R15)
11020 MOV &$1DC6,R14
11021 ADD #4,&$1DC6
11022 MOV #$404C,0(R14)
11023 ADD #2,R14
11024 MOV @R13+,R0
11025 ENDCODE IMMEDIATE
11026 [THEN]
11027
11028 [UNDEFINED] THEN [IF]
11029 CODE THEN
11030 MOV &$1DC6,0(R14)
11031 MOV @R15+,R14
11032 MOV @R13+,R0
11033 ENDCODE IMMEDIATE
11034 [THEN]
11035
11036 [UNDEFINED] ELSE [IF]
11037 CODE ELSE
11038 ADD #4,&$1DC6
11039 MOV &$1DC6,R10
11040 MOV #$4048,-4(R10)
11041 MOV R10,0(R14)
11042 SUB #2,R10
11043 MOV R10,R14
11044 MOV @R13+,R0
11045 ENDCODE IMMEDIATE
11046 [THEN]
11047
11048 [UNDEFINED] DEFER [IF]
11049
11050 : DEFER
11051 CREATE
11052 HI2LO
11053 MOV #$4030,-4(R10)
11054 MOV #$402C,-2(R10)
11055 MOV @R1+,R13
11056 MOV @R13+,R0
11057 ENDCODE
11058 [THEN]
11059
11060 [UNDEFINED] DEFER! [IF]
11061 CODE DEFER!
11062 MOV @R15+,2(R14)
11063 MOV @R15+,R14
11064 MOV @R13+,R0
11065 ENDCODE
11066 [THEN]
11067
11068 [UNDEFINED] IS [IF]
11069 : IS
11070 STATE @
11071 IF  POSTPONE ['] POSTPONE DEFER! 
11072 ELSE ' DEFER! 
11073 THEN
11074 ; IMMEDIATE
11075 [THEN]
11076
11077 [UNDEFINED] >BODY [IF]
11078 CODE >BODY
11079 ADD #4,R14
11080 MOV @R13+,R0
11081 ENDCODE
11082 [THEN]
11083
11084
11085 CODE 20_US
11086 BEGIN
11087     BEGIN
11088         BIT #1,&$3C0
11089     0<> UNTIL
11090     BIC #1,&$3C0
11091     SUB #1,R14
11092 U< UNTIL
11093 MOV @R15+,R14
11094 MOV @R13+,R0
11095 ENDCODE
11096
11097 CODE TOP_LCD
11098     BIS.B #4,&$243
11099     BIT.B #1,&$241
11100 0= IF
11101     AND.B #$0F,R14
11102     MOV.B R14,&$222
11103     BIC.B #4,&$243
11104     MOV @R15+,R14
11105     MOV @R13+,R0
11106 THEN
11107     SUB #2,R15
11108     MOV R14,0(R15)
11109     BIC.B #4,&$243
11110     MOV.B &$220,R14
11111     AND.B #$0F,R14
11112     MOV @R13+,R0
11113 ENDCODE
11114
11115 CODE LCD_WRC
11116     BIS.B #2,&$243
11117 BW1 SUB #2,R15
11118     MOV R14,0(R15)
11119     RRUM #4,R14
11120     BIC.B #1,&$243
11121     BIS.B #$0F,&$224
11122 COLON
11123     TOP_LCD 2 20_US
11124     TOP_LCD 2 20_US 
11125 ;
11126
11127 CODE LCD_WRF
11128     BIC.B #2,&$243
11129     GOTO BW1
11130 ENDCODE
11131
11132 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11133 : LCD_HOME $02 LCD_WRF 100 20_us ;
11134
11135
11136
11137 ASM WDT_INT
11138 ADD #2,R1
11139 BIT.B #$20,&$240
11140 0= IF
11141     CMP #19,&$3D6
11142     U< IF
11143         ADD #1,&$3D6
11144     THEN
11145 ELSE
11146     BIT.B #$40,&$240
11147     0= IF
11148         CMP #3,&$3D6
11149         U>= IF
11150            SUB #1,&$3D6
11151         THEN
11152     THEN
11153 THEN
11154 BW1
11155 MOV @R1+,R0
11156 ENDASM
11157
11158 ASM RC5_INT
11159 ADD #2,R1
11160 $1806 @ 16000 = [IF]
11161     MOV #1,&$3A0
11162 [THEN]
11163 $1806 @ 24000 = [IF]
11164     MOV #2,&$3A0
11165 [THEN]
11166 MOV #1778,R9
11167 MOV #14,R10
11168 BEGIN
11169 MOV #%1011100100,&$380
11170     RRUM    #1,R9
11171     MOV     R9,R8
11172     RRUM    #1,R8
11173     ADD     R9,R8
11174     BEGIN   CMP R8,&$390
11175     U>= UNTIL
11176     BIT.B   #4,&$200
11177     ADDC    R11,R11
11178     MOV.B   &$200,&$208
11179     BIC.B   #4,&$20C
11180     SUB     #1,R10
11181 0<> WHILE
11182     ADD R9,R8
11183     BEGIN
11184         MOV &$390,R9
11185         CMP R8,R9
11186         U>= IF
11187         BIC #$30,&$380
11188         GOTO BW1
11189         THEN
11190         BIT.B #4,&$20C
11191     0<> UNTIL
11192 REPEAT
11193 BIC #$30,&$380
11194 RLAM    #1,R11
11195 MOV.B   R11,R9
11196 RRUM    #2,R9
11197 BIT     #$4000,R11
11198 0= IF   BIS #$40,R9
11199 THEN
11200 RRUM    #3,R11
11201 XOR     @R1,R11
11202 BIT     #$400,R11
11203 0= ?GOTO BW1
11204 XOR #$400,0(R1)
11205 SUB #8,R15
11206 MOV R14,6(R15)
11207 MOV &$1DDC,4(R15)
11208 MOV #$10,&$1DDC
11209 MOV R9,0(R15)
11210 MOV #0,R14
11211 LO2HI
11212     LCD_CLEAR
11213     <# # #S #36 HOLD #>
11214     ['] LCD_WRC IS EMIT
11215     TYPE
11216     ['] EMIT >BODY IS EMIT
11217 HI2LO
11218 MOV @R15+,&$1DDC
11219 MOV @R15+,R14
11220 MOV @R1+,R0
11221 ENDASM
11222
11223 ASM BACKGROUND
11224 BEGIN
11225     CALL &$1814
11226     BIS &$180A,R2
11227 AGAIN
11228 ENDASM
11229
11230 ASM SYS_OUT
11231     MOV #WARM,R9
11232     ADD #4,R9
11233     MOV R9,R0
11234 ENDASM
11235
11236 CODE STOP
11237 BW1 MOV #$4000,R9
11238     ADD #4,R9
11239     MOV R9,-2(R9)
11240     MOV #WARM,R9
11241     MOV #SYS_OUT,2(R9)
11242     BIC.B #4,&$20A
11243     BIC.B #4,&$20C
11244     MOV #0,&$3C0
11245     MOV #0,&$340
11246     MOV #0,&$342
11247     CALL #$400E
11248 COLON
11249 ECHO
11250 ." RC5toLCD is removed,"
11251 ."  type START to restart"
11252  WARM
11253 ;
11254
11255 CODE SYS_INIT
11256 MOV #%10_1101_0100,&$3C0
11257 $1806 @ 16000 = [IF]
11258     MOV #1,&$3E0
11259 [THEN]
11260 $1806 @ 24000 = [IF]
11261     MOV #2,&$3E0
11262 [THEN]
11263     MOV #19,&$3D2
11264 MOV #%0110_0000,&$3C6
11265     MOV #10,&$3D6
11266     BIS.B #$20,&$204
11267     BIS.B #$20,&$20A
11268     BIS.B #7,&$245
11269     BIC.B #7,&$247
11270     BIS.B #$0F,&$224
11271     BIC.B #$0F,&$226
11272     BIS.B #4,&$20A
11273     BIC.B #4,&$20C
11274     MOV #RC5_INT,&$FFDE
11275 MOV #%01_0001_0100,&$340
11276     MOV ##3276,&$352
11277     MOV #%10000,&$342
11278     MOV #WDT_INT,&$FFEA
11279 BIC #1,&$130
11280 BIS.B #3,&$20D
11281 MOV &$1808,R8
11282 CMP #4,R8
11283 0= ?GOTO BW1
11284 COLON
11285     #1000 20_US
11286     %011 TOP_LCD
11287     #205 20_US
11288     %011 TOP_LCD
11289     #5 20_US
11290     %011 TOP_LCD
11291     #2 20_US
11292     %010 TOP_LCD
11293     #2 20_US
11294     %00101000 LCD_WRF
11295     %1000 LCD_WRF
11296     LCD_CLEAR
11297     %0110 LCD_WRF
11298     %1100 LCD_WRF
11299     LCD_CLEAR
11300     ['] LCD_HOME IS CR
11301     ['] LCD_WRC  IS EMIT
11302     CR ." I love you"
11303     ['] CR >BODY IS CR
11304     ['] EMIT >BODY IS EMIT
11305     ." RC5toLCD is running. Type STOP to quit"
11306     PWR_STATE ABORT
11307 ;
11308
11309 CODE START
11310 MOV #$4000,R9
11311 MOV #BACKGROUND,2(R9)
11312 MOV #WARM,R9
11313 MOV #SYS_INIT,2(R9)
11314 MOV R9,R0
11315 ENDCODE 
11316
11317 ECHO
11318             ; downloading RC5toLCD.4th is done
11319 RST_HERE    ; this app is protected against <reset>
11320
11321
11322 RST_STATE
11323
11324 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11325
11326 [UNDEFINED] MARKER [IF]
11327 : MARKER
11328 CREATE
11329 HI2LO
11330 MOV &$1DC8,0(R10)
11331 SUB #2,R8
11332 MOV R8,2(R10)
11333 ADD #4,&$1DC6
11334 LO2HI
11335 DOES>
11336 HI2LO
11337 MOV @R1+,R13
11338 MOV @R14+,&$180E
11339 MOV @R14,&$180C
11340 MOV @R15+,R14
11341 MOV #RST_STATE,R0
11342 ENDCODE
11343 [THEN]
11344
11345 MARKER {RC5TOLCD}
11346
11347 [UNDEFINED] @ [IF]
11348 CODE @
11349 MOV @R14,R14
11350 MOV @R13+,R0
11351 ENDCODE
11352 [THEN]
11353
11354 [UNDEFINED] CONSTANT [IF]
11355 : CONSTANT 
11356 CREATE
11357 HI2LO
11358 MOV R14,-2(R10)
11359 MOV @R15+,R14
11360 MOV @R1+,R13
11361 MOV @R13+,R0
11362 ENDCODE
11363 [THEN]
11364
11365 [UNDEFINED] STATE [IF]
11366 $1DBE CONSTANT STATE
11367 [THEN]
11368
11369 [UNDEFINED] = [IF]
11370 CODE =
11371 SUB @R15+,R14
11372 0<> IF
11373     AND #0,R14
11374     MOV @R13+,R0
11375 THEN
11376 XOR #-1,R14
11377 MOV @R13+,R0
11378 ENDCODE
11379 [THEN]
11380
11381 [UNDEFINED] IF [IF]
11382 CODE IF
11383 SUB #2,R15
11384 MOV R14,0(R15)
11385 MOV &$1DC6,R14
11386 ADD #4,&$1DC6
11387 MOV #$404C,0(R14)
11388 ADD #2,R14
11389 MOV @R13+,R0
11390 ENDCODE IMMEDIATE
11391 [THEN]
11392
11393 [UNDEFINED] THEN [IF]
11394 CODE THEN
11395 MOV &$1DC6,0(R14)
11396 MOV @R15+,R14
11397 MOV @R13+,R0
11398 ENDCODE IMMEDIATE
11399 [THEN]
11400
11401 [UNDEFINED] ELSE [IF]
11402 CODE ELSE
11403 ADD #4,&$1DC6
11404 MOV &$1DC6,R10
11405 MOV #$4048,-4(R10)
11406 MOV R10,0(R14)
11407 SUB #2,R10
11408 MOV R10,R14
11409 MOV @R13+,R0
11410 ENDCODE IMMEDIATE
11411 [THEN]
11412
11413 [UNDEFINED] DEFER [IF]
11414
11415 : DEFER
11416 CREATE
11417 HI2LO
11418 MOV #$4030,-4(R10)
11419 MOV #$402C,-2(R10)
11420 MOV @R1+,R13
11421 MOV @R13+,R0
11422 ENDCODE
11423 [THEN]
11424
11425 [UNDEFINED] DEFER! [IF]
11426 CODE DEFER!
11427 MOV @R15+,2(R14)
11428 MOV @R15+,R14
11429 MOV @R13+,R0
11430 ENDCODE
11431 [THEN]
11432
11433 [UNDEFINED] IS [IF]
11434 : IS
11435 STATE @
11436 IF  POSTPONE ['] POSTPONE DEFER! 
11437 ELSE ' DEFER! 
11438 THEN
11439 ; IMMEDIATE
11440 [THEN]
11441
11442 [UNDEFINED] >BODY [IF]
11443 CODE >BODY
11444 ADD #4,R14
11445 MOV @R13+,R0
11446 ENDCODE
11447 [THEN]
11448
11449
11450 CODE 20_US
11451 BEGIN
11452     BEGIN
11453         BIT #1,&$3C0
11454     0<> UNTIL
11455     BIC #1,&$3C0
11456     SUB #1,R14
11457 U< UNTIL
11458 MOV @R15+,R14
11459 MOV @R13+,R0
11460 ENDCODE
11461
11462 CODE TOP_LCD
11463     BIS.B #4,&$243
11464     BIT.B #1,&$241
11465 0= IF
11466     AND.B #$0F,R14
11467     MOV.B R14,&$222
11468     BIC.B #4,&$243
11469     MOV @R15+,R14
11470     MOV @R13+,R0
11471 THEN
11472     SUB #2,R15
11473     MOV R14,0(R15)
11474     BIC.B #4,&$243
11475     MOV.B &$220,R14
11476     AND.B #$0F,R14
11477     MOV @R13+,R0
11478 ENDCODE
11479
11480 CODE LCD_WRC
11481     BIS.B #2,&$243
11482 BW1 SUB #2,R15
11483     MOV R14,0(R15)
11484     RRUM #4,R14
11485     BIC.B #1,&$243
11486     BIS.B #$0F,&$224
11487 COLON
11488     TOP_LCD 2 20_US
11489     TOP_LCD 2 20_US 
11490 ;
11491
11492 CODE LCD_WRF
11493     BIC.B #2,&$243
11494     GOTO BW1
11495 ENDCODE
11496
11497 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11498 : LCD_HOME $02 LCD_WRF 100 20_us ;
11499
11500
11501
11502 ASM WDT_INT
11503 ADD #2,R1
11504 BIT.B #$20,&$240
11505 0= IF
11506     CMP #19,&$3D6
11507     U< IF
11508         ADD #1,&$3D6
11509     THEN
11510 ELSE
11511     BIT.B #$40,&$240
11512     0= IF
11513         CMP #3,&$3D6
11514         U>= IF
11515            SUB #1,&$3D6
11516         THEN
11517     THEN
11518 THEN
11519 BW1
11520 MOV @R1+,R0
11521 ENDASM
11522
11523 ASM RC5_INT
11524 ADD #2,R1
11525 $1806 @ 16000 = [IF]
11526     MOV #1,&$3A0
11527 [THEN]
11528 $1806 @ 24000 = [IF]
11529     MOV #2,&$3A0
11530 [THEN]
11531 MOV #1778,R9
11532 MOV #14,R10
11533 BEGIN
11534 MOV #%1011100100,&$380
11535     RRUM    #1,R9
11536     MOV     R9,R8
11537     RRUM    #1,R8
11538     ADD     R9,R8
11539     BEGIN   CMP R8,&$390
11540     U>= UNTIL
11541     BIT.B   #4,&$200
11542     ADDC    R11,R11
11543     MOV.B   &$200,&$208
11544     BIC.B   #4,&$20C
11545     SUB     #1,R10
11546 0<> WHILE
11547     ADD R9,R8
11548     BEGIN
11549         MOV &$390,R9
11550         CMP R8,R9
11551         U>= IF
11552         BIC #$30,&$380
11553         GOTO BW1
11554         THEN
11555         BIT.B #4,&$20C
11556     0<> UNTIL
11557 REPEAT
11558 BIC #$30,&$380
11559 RLAM    #1,R11
11560 MOV.B   R11,R9
11561 RRUM    #2,R9
11562 BIT     #$4000,R11
11563 0= IF   BIS #$40,R9
11564 THEN
11565 RRUM    #3,R11
11566 XOR     @R1,R11
11567 BIT     #$400,R11
11568 0= ?GOTO BW1
11569 XOR #$400,0(R1)
11570 SUB #8,R15
11571 MOV R14,6(R15)
11572 MOV &$1DDC,4(R15)
11573 MOV #$10,&$1DDC
11574 MOV R9,0(R15)
11575 MOV #0,R14
11576 LO2HI
11577     LCD_CLEAR
11578     <# # #S #36 HOLD #>
11579     ['] LCD_WRC IS EMIT
11580     TYPE
11581     ['] EMIT >BODY IS EMIT
11582 HI2LO
11583 MOV @R15+,&$1DDC
11584 MOV @R15+,R14
11585 MOV @R1+,R0
11586 ENDASM
11587
11588 ASM BACKGROUND
11589 BEGIN
11590     CALL &$1814
11591     BIS &$180A,R2
11592 AGAIN
11593 ENDASM
11594
11595 ASM SYS_OUT
11596     MOV #WARM,R9
11597     ADD #4,R9
11598     MOV R9,R0
11599 ENDASM
11600
11601 CODE STOP
11602 BW1 MOV #$4000,R9
11603     ADD #4,R9
11604     MOV R9,-2(R9)
11605     MOV #WARM,R9
11606     MOV #SYS_OUT,2(R9)
11607     BIC.B #4,&$20A
11608     BIC.B #4,&$20C
11609     MOV #0,&$3C0
11610     MOV #0,&$340
11611     MOV #0,&$342
11612     CALL #$400E
11613 COLON
11614 ECHO
11615 ." RC5toLCD is removed,"
11616 ."  type START to restart"
11617  WARM
11618 ;
11619
11620 CODE SYS_INIT
11621 MOV #%10_1101_0100,&$3C0
11622 $1806 @ 16000 = [IF]
11623     MOV #1,&$3E0
11624 [THEN]
11625 $1806 @ 24000 = [IF]
11626     MOV #2,&$3E0
11627 [THEN]
11628     MOV #19,&$3D2
11629 MOV #%0110_0000,&$3C6
11630     MOV #10,&$3D6
11631     BIS.B #$20,&$204
11632     BIS.B #$20,&$20A
11633     BIS.B #7,&$245
11634     BIC.B #7,&$247
11635     BIS.B #$0F,&$224
11636     BIC.B #$0F,&$226
11637     BIS.B #4,&$20A
11638     BIC.B #4,&$20C
11639     MOV #RC5_INT,&$FFDE
11640 MOV #%01_0001_0100,&$340
11641     MOV ##3276,&$352
11642     MOV #%10000,&$342
11643     MOV #WDT_INT,&$FFEA
11644 BIC #1,&$130
11645 BIS.B #3,&$20D
11646 MOV &$1808,R8
11647 CMP #4,R8
11648 0= ?GOTO BW1
11649 COLON
11650     #1000 20_US
11651     %011 TOP_LCD
11652     #205 20_US
11653     %011 TOP_LCD
11654     #5 20_US
11655     %011 TOP_LCD
11656     #2 20_US
11657     %010 TOP_LCD
11658     #2 20_US
11659     %00101000 LCD_WRF
11660     %1000 LCD_WRF
11661     LCD_CLEAR
11662     %0110 LCD_WRF
11663     %1100 LCD_WRF
11664     LCD_CLEAR
11665     ['] LCD_HOME IS CR
11666     ['] LCD_WRC  IS EMIT
11667     CR ." I love you"
11668     ['] CR >BODY IS CR
11669     ['] EMIT >BODY IS EMIT
11670     ." RC5toLCD is running. Type STOP to quit"
11671     PWR_STATE ABORT
11672 ;
11673
11674 CODE START
11675 MOV #$4000,R9
11676 MOV #BACKGROUND,2(R9)
11677 MOV #WARM,R9
11678 MOV #SYS_INIT,2(R9)
11679 MOV R9,R0
11680 ENDCODE 
11681
11682 ECHO
11683             ; downloading RC5toLCD.4th is done
11684 RST_HERE    ; this app is protected against <reset>
11685
11686
11687 RST_STATE
11688
11689 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11690
11691 [UNDEFINED] MARKER [IF]
11692 : MARKER
11693 CREATE
11694 HI2LO
11695 MOV &$1DC8,0(R10)
11696 SUB #2,R8
11697 MOV R8,2(R10)
11698 ADD #4,&$1DC6
11699 LO2HI
11700 DOES>
11701 HI2LO
11702 MOV @R1+,R13
11703 MOV @R14+,&$180E
11704 MOV @R14,&$180C
11705 MOV @R15+,R14
11706 MOV #RST_STATE,R0
11707 ENDCODE
11708 [THEN]
11709
11710 MARKER {RC5TOLCD}
11711
11712 [UNDEFINED] @ [IF]
11713 CODE @
11714 MOV @R14,R14
11715 MOV @R13+,R0
11716 ENDCODE
11717 [THEN]
11718
11719 [UNDEFINED] CONSTANT [IF]
11720 : CONSTANT 
11721 CREATE
11722 HI2LO
11723 MOV R14,-2(R10)
11724 MOV @R15+,R14
11725 MOV @R1+,R13
11726 MOV @R13+,R0
11727 ENDCODE
11728 [THEN]
11729
11730 [UNDEFINED] STATE [IF]
11731 $1DBE CONSTANT STATE
11732 [THEN]
11733
11734 [UNDEFINED] = [IF]
11735 CODE =
11736 SUB @R15+,R14
11737 0<> IF
11738     AND #0,R14
11739     MOV @R13+,R0
11740 THEN
11741 XOR #-1,R14
11742 MOV @R13+,R0
11743 ENDCODE
11744 [THEN]
11745
11746 [UNDEFINED] IF [IF]
11747 CODE IF
11748 SUB #2,R15
11749 MOV R14,0(R15)
11750 MOV &$1DC6,R14
11751 ADD #4,&$1DC6
11752 MOV #$404C,0(R14)
11753 ADD #2,R14
11754 MOV @R13+,R0
11755 ENDCODE IMMEDIATE
11756 [THEN]
11757
11758 [UNDEFINED] THEN [IF]
11759 CODE THEN
11760 MOV &$1DC6,0(R14)
11761 MOV @R15+,R14
11762 MOV @R13+,R0
11763 ENDCODE IMMEDIATE
11764 [THEN]
11765
11766 [UNDEFINED] ELSE [IF]
11767 CODE ELSE
11768 ADD #4,&$1DC6
11769 MOV &$1DC6,R10
11770 MOV #$4048,-4(R10)
11771 MOV R10,0(R14)
11772 SUB #2,R10
11773 MOV R10,R14
11774 MOV @R13+,R0
11775 ENDCODE IMMEDIATE
11776 [THEN]
11777
11778 [UNDEFINED] DEFER [IF]
11779
11780 : DEFER
11781 CREATE
11782 HI2LO
11783 MOV #$4030,-4(R10)
11784 MOV #$402C,-2(R10)
11785 MOV @R1+,R13
11786 MOV @R13+,R0
11787 ENDCODE
11788 [THEN]
11789
11790 [UNDEFINED] DEFER! [IF]
11791 CODE DEFER!
11792 MOV @R15+,2(R14)
11793 MOV @R15+,R14
11794 MOV @R13+,R0
11795 ENDCODE
11796 [THEN]
11797
11798 [UNDEFINED] IS [IF]
11799 : IS
11800 STATE @
11801 IF  POSTPONE ['] POSTPONE DEFER! 
11802 ELSE ' DEFER! 
11803 THEN
11804 ; IMMEDIATE
11805 [THEN]
11806
11807 [UNDEFINED] >BODY [IF]
11808 CODE >BODY
11809 ADD #4,R14
11810 MOV @R13+,R0
11811 ENDCODE
11812 [THEN]
11813
11814
11815 CODE 20_US
11816 BEGIN
11817     BEGIN
11818         BIT #1,&$3C0
11819     0<> UNTIL
11820     BIC #1,&$3C0
11821     SUB #1,R14
11822 U< UNTIL
11823 MOV @R15+,R14
11824 MOV @R13+,R0
11825 ENDCODE
11826
11827 CODE TOP_LCD
11828     BIS.B #4,&$243
11829     BIT.B #1,&$241
11830 0= IF
11831     AND.B #$0F,R14
11832     MOV.B R14,&$222
11833     BIC.B #4,&$243
11834     MOV @R15+,R14
11835     MOV @R13+,R0
11836 THEN
11837     SUB #2,R15
11838     MOV R14,0(R15)
11839     BIC.B #4,&$243
11840     MOV.B &$220,R14
11841     AND.B #$0F,R14
11842     MOV @R13+,R0
11843 ENDCODE
11844
11845 CODE LCD_WRC
11846     BIS.B #2,&$243
11847 BW1 SUB #2,R15
11848     MOV R14,0(R15)
11849     RRUM #4,R14
11850     BIC.B #1,&$243
11851     BIS.B #$0F,&$224
11852 COLON
11853     TOP_LCD 2 20_US
11854     TOP_LCD 2 20_US 
11855 ;
11856
11857 CODE LCD_WRF
11858     BIC.B #2,&$243
11859     GOTO BW1
11860 ENDCODE
11861
11862 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11863 : LCD_HOME $02 LCD_WRF 100 20_us ;
11864
11865
11866
11867 ASM WDT_INT
11868 ADD #2,R1
11869 BIT.B #$20,&$240
11870 0= IF
11871     CMP #19,&$3D6
11872     U< IF
11873         ADD #1,&$3D6
11874     THEN
11875 ELSE
11876     BIT.B #$40,&$240
11877     0= IF
11878         CMP #3,&$3D6
11879         U>= IF
11880            SUB #1,&$3D6
11881         THEN
11882     THEN
11883 THEN
11884 BW1
11885 MOV @R1+,R0
11886 ENDASM
11887
11888 ASM RC5_INT
11889 ADD #2,R1
11890 $1806 @ 16000 = [IF]
11891     MOV #1,&$3A0
11892 [THEN]
11893 $1806 @ 24000 = [IF]
11894     MOV #2,&$3A0
11895 [THEN]
11896 MOV #1778,R9
11897 MOV #14,R10
11898 BEGIN
11899 MOV #%1011100100,&$380
11900     RRUM    #1,R9
11901     MOV     R9,R8
11902     RRUM    #1,R8
11903     ADD     R9,R8
11904     BEGIN   CMP R8,&$390
11905     U>= UNTIL
11906     BIT.B   #4,&$200
11907     ADDC    R11,R11
11908     MOV.B   &$200,&$208
11909     BIC.B   #4,&$20C
11910     SUB     #1,R10
11911 0<> WHILE
11912     ADD R9,R8
11913     BEGIN
11914         MOV &$390,R9
11915         CMP R8,R9
11916         U>= IF
11917         BIC #$30,&$380
11918         GOTO BW1
11919         THEN
11920         BIT.B #4,&$20C
11921     0<> UNTIL
11922 REPEAT
11923 BIC #$30,&$380
11924 RLAM    #1,R11
11925 MOV.B   R11,R9
11926 RRUM    #2,R9
11927 BIT     #$4000,R11
11928 0= IF   BIS #$40,R9
11929 THEN
11930 RRUM    #3,R11
11931 XOR     @R1,R11
11932 BIT     #$400,R11
11933 0= ?GOTO BW1
11934 XOR #$400,0(R1)
11935 SUB #8,R15
11936 MOV R14,6(R15)
11937 MOV &$1DDC,4(R15)
11938 MOV #$10,&$1DDC
11939 MOV R9,0(R15)
11940 MOV #0,R14
11941 LO2HI
11942     LCD_CLEAR
11943     <# # #S #36 HOLD #>
11944     ['] LCD_WRC IS EMIT
11945     TYPE
11946     ['] EMIT >BODY IS EMIT
11947 HI2LO
11948 MOV @R15+,&$1DDC
11949 MOV @R15+,R14
11950 MOV @R1+,R0
11951 ENDASM
11952
11953 ASM BACKGROUND
11954 BEGIN
11955     CALL &$1814
11956     BIS &$180A,R2
11957 AGAIN
11958 ENDASM
11959
11960 ASM SYS_OUT
11961     MOV #WARM,R9
11962     ADD #4,R9
11963     MOV R9,R0
11964 ENDASM
11965
11966 CODE STOP
11967 BW1 MOV #$4000,R9
11968     ADD #4,R9
11969     MOV R9,-2(R9)
11970     MOV #WARM,R9
11971     MOV #SYS_OUT,2(R9)
11972     BIC.B #4,&$20A
11973     BIC.B #4,&$20C
11974     MOV #0,&$3C0
11975     MOV #0,&$340
11976     MOV #0,&$342
11977     CALL #$400E
11978 COLON
11979 ECHO
11980 ." RC5toLCD is removed,"
11981 ."  type START to restart"
11982  WARM
11983 ;
11984
11985 CODE SYS_INIT
11986 MOV #%10_1101_0100,&$3C0
11987 $1806 @ 16000 = [IF]
11988     MOV #1,&$3E0
11989 [THEN]
11990 $1806 @ 24000 = [IF]
11991     MOV #2,&$3E0
11992 [THEN]
11993     MOV #19,&$3D2
11994 MOV #%0110_0000,&$3C6
11995     MOV #10,&$3D6
11996     BIS.B #$20,&$204
11997     BIS.B #$20,&$20A
11998     BIS.B #7,&$245
11999     BIC.B #7,&$247
12000     BIS.B #$0F,&$224
12001     BIC.B #$0F,&$226
12002     BIS.B #4,&$20A
12003     BIC.B #4,&$20C
12004     MOV #RC5_INT,&$FFDE
12005 MOV #%01_0001_0100,&$340
12006     MOV ##3276,&$352
12007     MOV #%10000,&$342
12008     MOV #WDT_INT,&$FFEA
12009 BIC #1,&$130
12010 BIS.B #3,&$20D
12011 MOV &$1808,R8
12012 CMP #4,R8
12013 0= ?GOTO BW1
12014 COLON
12015     #1000 20_US
12016     %011 TOP_LCD
12017     #205 20_US
12018     %011 TOP_LCD
12019     #5 20_US
12020     %011 TOP_LCD
12021     #2 20_US
12022     %010 TOP_LCD
12023     #2 20_US
12024     %00101000 LCD_WRF
12025     %1000 LCD_WRF
12026     LCD_CLEAR
12027     %0110 LCD_WRF
12028     %1100 LCD_WRF
12029     LCD_CLEAR
12030     ['] LCD_HOME IS CR
12031     ['] LCD_WRC  IS EMIT
12032     CR ." I love you"
12033     ['] CR >BODY IS CR
12034     ['] EMIT >BODY IS EMIT
12035     ." RC5toLCD is running. Type STOP to quit"
12036     PWR_STATE ABORT
12037 ;
12038
12039 CODE START
12040 MOV #$4000,R9
12041 MOV #BACKGROUND,2(R9)
12042 MOV #WARM,R9
12043 MOV #SYS_INIT,2(R9)
12044 MOV R9,R0
12045 ENDCODE 
12046
12047 ECHO
12048             ; downloading RC5toLCD.4th is done
12049 RST_HERE    ; this app is protected against <reset>
12050
12051
12052 RST_STATE
12053
12054 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12055
12056 [UNDEFINED] MARKER [IF]
12057 : MARKER
12058 CREATE
12059 HI2LO
12060 MOV &$1DC8,0(R10)
12061 SUB #2,R8
12062 MOV R8,2(R10)
12063 ADD #4,&$1DC6
12064 LO2HI
12065 DOES>
12066 HI2LO
12067 MOV @R1+,R13
12068 MOV @R14+,&$180E
12069 MOV @R14,&$180C
12070 MOV @R15+,R14
12071 MOV #RST_STATE,R0
12072 ENDCODE
12073 [THEN]
12074
12075 MARKER {RC5TOLCD}
12076
12077 [UNDEFINED] @ [IF]
12078 CODE @
12079 MOV @R14,R14
12080 MOV @R13+,R0
12081 ENDCODE
12082 [THEN]
12083
12084 [UNDEFINED] CONSTANT [IF]
12085 : CONSTANT 
12086 CREATE
12087 HI2LO
12088 MOV R14,-2(R10)
12089 MOV @R15+,R14
12090 MOV @R1+,R13
12091 MOV @R13+,R0
12092 ENDCODE
12093 [THEN]
12094
12095 [UNDEFINED] STATE [IF]
12096 $1DBE CONSTANT STATE
12097 [THEN]
12098
12099 [UNDEFINED] = [IF]
12100 CODE =
12101 SUB @R15+,R14
12102 0<> IF
12103     AND #0,R14
12104     MOV @R13+,R0
12105 THEN
12106 XOR #-1,R14
12107 MOV @R13+,R0
12108 ENDCODE
12109 [THEN]
12110
12111 [UNDEFINED] IF [IF]
12112 CODE IF
12113 SUB #2,R15
12114 MOV R14,0(R15)
12115 MOV &$1DC6,R14
12116 ADD #4,&$1DC6
12117 MOV #$404C,0(R14)
12118 ADD #2,R14
12119 MOV @R13+,R0
12120 ENDCODE IMMEDIATE
12121 [THEN]
12122
12123 [UNDEFINED] THEN [IF]
12124 CODE THEN
12125 MOV &$1DC6,0(R14)
12126 MOV @R15+,R14
12127 MOV @R13+,R0
12128 ENDCODE IMMEDIATE
12129 [THEN]
12130
12131 [UNDEFINED] ELSE [IF]
12132 CODE ELSE
12133 ADD #4,&$1DC6
12134 MOV &$1DC6,R10
12135 MOV #$4048,-4(R10)
12136 MOV R10,0(R14)
12137 SUB #2,R10
12138 MOV R10,R14
12139 MOV @R13+,R0
12140 ENDCODE IMMEDIATE
12141 [THEN]
12142
12143 [UNDEFINED] DEFER [IF]
12144
12145 : DEFER
12146 CREATE
12147 HI2LO
12148 MOV #$4030,-4(R10)
12149 MOV #$402C,-2(R10)
12150 MOV @R1+,R13
12151 MOV @R13+,R0
12152 ENDCODE
12153 [THEN]
12154
12155 [UNDEFINED] DEFER! [IF]
12156 CODE DEFER!
12157 MOV @R15+,2(R14)
12158 MOV @R15+,R14
12159 MOV @R13+,R0
12160 ENDCODE
12161 [THEN]
12162
12163 [UNDEFINED] IS [IF]
12164 : IS
12165 STATE @
12166 IF  POSTPONE ['] POSTPONE DEFER! 
12167 ELSE ' DEFER! 
12168 THEN
12169 ; IMMEDIATE
12170 [THEN]
12171
12172 [UNDEFINED] >BODY [IF]
12173 CODE >BODY
12174 ADD #4,R14
12175 MOV @R13+,R0
12176 ENDCODE
12177 [THEN]
12178
12179
12180 CODE 20_US
12181 BEGIN
12182     BEGIN
12183         BIT #1,&$3C0
12184     0<> UNTIL
12185     BIC #1,&$3C0
12186     SUB #1,R14
12187 U< UNTIL
12188 MOV @R15+,R14
12189 MOV @R13+,R0
12190 ENDCODE
12191
12192 CODE TOP_LCD
12193     BIS.B #4,&$243
12194     BIT.B #1,&$241
12195 0= IF
12196     AND.B #$0F,R14
12197     MOV.B R14,&$222
12198     BIC.B #4,&$243
12199     MOV @R15+,R14
12200     MOV @R13+,R0
12201 THEN
12202     SUB #2,R15
12203     MOV R14,0(R15)
12204     BIC.B #4,&$243
12205     MOV.B &$220,R14
12206     AND.B #$0F,R14
12207     MOV @R13+,R0
12208 ENDCODE
12209
12210 CODE LCD_WRC
12211     BIS.B #2,&$243
12212 BW1 SUB #2,R15
12213     MOV R14,0(R15)
12214     RRUM #4,R14
12215     BIC.B #1,&$243
12216     BIS.B #$0F,&$224
12217 COLON
12218     TOP_LCD 2 20_US
12219     TOP_LCD 2 20_US 
12220 ;
12221
12222 CODE LCD_WRF
12223     BIC.B #2,&$243
12224     GOTO BW1
12225 ENDCODE
12226
12227 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12228 : LCD_HOME $02 LCD_WRF 100 20_us ;
12229
12230
12231
12232 ASM WDT_INT
12233 ADD #2,R1
12234 BIT.B #$20,&$240
12235 0= IF
12236     CMP #19,&$3D6
12237     U< IF
12238         ADD #1,&$3D6
12239     THEN
12240 ELSE
12241     BIT.B #$40,&$240
12242     0= IF
12243         CMP #3,&$3D6
12244         U>= IF
12245            SUB #1,&$3D6
12246         THEN
12247     THEN
12248 THEN
12249 BW1
12250 MOV @R1+,R0
12251 ENDASM
12252
12253 ASM RC5_INT
12254 ADD #2,R1
12255 $1806 @ 16000 = [IF]
12256     MOV #1,&$3A0
12257 [THEN]
12258 $1806 @ 24000 = [IF]
12259     MOV #2,&$3A0
12260 [THEN]
12261 MOV #1778,R9
12262 MOV #14,R10
12263 BEGIN
12264 MOV #%1011100100,&$380
12265     RRUM    #1,R9
12266     MOV     R9,R8
12267     RRUM    #1,R8
12268     ADD     R9,R8
12269     BEGIN   CMP R8,&$390
12270     U>= UNTIL
12271     BIT.B   #4,&$200
12272     ADDC    R11,R11
12273     MOV.B   &$200,&$208
12274     BIC.B   #4,&$20C
12275     SUB     #1,R10
12276 0<> WHILE
12277     ADD R9,R8
12278     BEGIN
12279         MOV &$390,R9
12280         CMP R8,R9
12281         U>= IF
12282         BIC #$30,&$380
12283         GOTO BW1
12284         THEN
12285         BIT.B #4,&$20C
12286     0<> UNTIL
12287 REPEAT
12288 BIC #$30,&$380
12289 RLAM    #1,R11
12290 MOV.B   R11,R9
12291 RRUM    #2,R9
12292 BIT     #$4000,R11
12293 0= IF   BIS #$40,R9
12294 THEN
12295 RRUM    #3,R11
12296 XOR     @R1,R11
12297 BIT     #$400,R11
12298 0= ?GOTO BW1
12299 XOR #$400,0(R1)
12300 SUB #8,R15
12301 MOV R14,6(R15)
12302 MOV &$1DDC,4(R15)
12303 MOV #$10,&$1DDC
12304 MOV R9,0(R15)
12305 MOV #0,R14
12306 LO2HI
12307     LCD_CLEAR
12308     <# # #S #36 HOLD #>
12309     ['] LCD_WRC IS EMIT
12310     TYPE
12311     ['] EMIT >BODY IS EMIT
12312 HI2LO
12313 MOV @R15+,&$1DDC
12314 MOV @R15+,R14
12315 MOV @R1+,R0
12316 ENDASM
12317
12318 ASM BACKGROUND
12319 BEGIN
12320     CALL &$1814
12321     BIS &$180A,R2
12322 AGAIN
12323 ENDASM
12324
12325 ASM SYS_OUT
12326     MOV #WARM,R9
12327     ADD #4,R9
12328     MOV R9,R0
12329 ENDASM
12330
12331 CODE STOP
12332 BW1 MOV #$4000,R9
12333     ADD #4,R9
12334     MOV R9,-2(R9)
12335     MOV #WARM,R9
12336     MOV #SYS_OUT,2(R9)
12337     BIC.B #4,&$20A
12338     BIC.B #4,&$20C
12339     MOV #0,&$3C0
12340     MOV #0,&$340
12341     MOV #0,&$342
12342     CALL #$400E
12343 COLON
12344 ECHO
12345 ." RC5toLCD is removed,"
12346 ."  type START to restart"
12347  WARM
12348 ;
12349
12350 CODE SYS_INIT
12351 MOV #%10_1101_0100,&$3C0
12352 $1806 @ 16000 = [IF]
12353     MOV #1,&$3E0
12354 [THEN]
12355 $1806 @ 24000 = [IF]
12356     MOV #2,&$3E0
12357 [THEN]
12358     MOV #19,&$3D2
12359 MOV #%0110_0000,&$3C6
12360     MOV #10,&$3D6
12361     BIS.B #$20,&$204
12362     BIS.B #$20,&$20A
12363     BIS.B #7,&$245
12364     BIC.B #7,&$247
12365     BIS.B #$0F,&$224
12366     BIC.B #$0F,&$226
12367     BIS.B #4,&$20A
12368     BIC.B #4,&$20C
12369     MOV #RC5_INT,&$FFDE
12370 MOV #%01_0001_0100,&$340
12371     MOV ##3276,&$352
12372     MOV #%10000,&$342
12373     MOV #WDT_INT,&$FFEA
12374 BIC #1,&$130
12375 BIS.B #3,&$20D
12376 MOV &$1808,R8
12377 CMP #4,R8
12378 0= ?GOTO BW1
12379 COLON
12380     #1000 20_US
12381     %011 TOP_LCD
12382     #205 20_US
12383     %011 TOP_LCD
12384     #5 20_US
12385     %011 TOP_LCD
12386     #2 20_US
12387     %010 TOP_LCD
12388     #2 20_US
12389     %00101000 LCD_WRF
12390     %1000 LCD_WRF
12391     LCD_CLEAR
12392     %0110 LCD_WRF
12393     %1100 LCD_WRF
12394     LCD_CLEAR
12395     ['] LCD_HOME IS CR
12396     ['] LCD_WRC  IS EMIT
12397     CR ." I love you"
12398     ['] CR >BODY IS CR
12399     ['] EMIT >BODY IS EMIT
12400     ." RC5toLCD is running. Type STOP to quit"
12401     PWR_STATE ABORT
12402 ;
12403
12404 CODE START
12405 MOV #$4000,R9
12406 MOV #BACKGROUND,2(R9)
12407 MOV #WARM,R9
12408 MOV #SYS_INIT,2(R9)
12409 MOV R9,R0
12410 ENDCODE 
12411
12412 ECHO
12413             ; downloading RC5toLCD.4th is done
12414 RST_HERE    ; this app is protected against <reset>
12415
12416
12417 RST_STATE
12418
12419 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12420
12421 [UNDEFINED] MARKER [IF]
12422 : MARKER
12423 CREATE
12424 HI2LO
12425 MOV &$1DC8,0(R10)
12426 SUB #2,R8
12427 MOV R8,2(R10)
12428 ADD #4,&$1DC6
12429 LO2HI
12430 DOES>
12431 HI2LO
12432 MOV @R1+,R13
12433 MOV @R14+,&$180E
12434 MOV @R14,&$180C
12435 MOV @R15+,R14
12436 MOV #RST_STATE,R0
12437 ENDCODE
12438 [THEN]
12439
12440 MARKER {RC5TOLCD}
12441
12442 [UNDEFINED] @ [IF]
12443 CODE @
12444 MOV @R14,R14
12445 MOV @R13+,R0
12446 ENDCODE
12447 [THEN]
12448
12449 [UNDEFINED] CONSTANT [IF]
12450 : CONSTANT 
12451 CREATE
12452 HI2LO
12453 MOV R14,-2(R10)
12454 MOV @R15+,R14
12455 MOV @R1+,R13
12456 MOV @R13+,R0
12457 ENDCODE
12458 [THEN]
12459
12460 [UNDEFINED] STATE [IF]
12461 $1DBE CONSTANT STATE
12462 [THEN]
12463
12464 [UNDEFINED] = [IF]
12465 CODE =
12466 SUB @R15+,R14
12467 0<> IF
12468     AND #0,R14
12469     MOV @R13+,R0
12470 THEN
12471 XOR #-1,R14
12472 MOV @R13+,R0
12473 ENDCODE
12474 [THEN]
12475
12476 [UNDEFINED] IF [IF]
12477 CODE IF
12478 SUB #2,R15
12479 MOV R14,0(R15)
12480 MOV &$1DC6,R14
12481 ADD #4,&$1DC6
12482 MOV #$404C,0(R14)
12483 ADD #2,R14
12484 MOV @R13+,R0
12485 ENDCODE IMMEDIATE
12486 [THEN]
12487
12488 [UNDEFINED] THEN [IF]
12489 CODE THEN
12490 MOV &$1DC6,0(R14)
12491 MOV @R15+,R14
12492 MOV @R13+,R0
12493 ENDCODE IMMEDIATE
12494 [THEN]
12495
12496 [UNDEFINED] ELSE [IF]
12497 CODE ELSE
12498 ADD #4,&$1DC6
12499 MOV &$1DC6,R10
12500 MOV #$4048,-4(R10)
12501 MOV R10,0(R14)
12502 SUB #2,R10
12503 MOV R10,R14
12504 MOV @R13+,R0
12505 ENDCODE IMMEDIATE
12506 [THEN]
12507
12508 [UNDEFINED] DEFER [IF]
12509
12510 : DEFER
12511 CREATE
12512 HI2LO
12513 MOV #$4030,-4(R10)
12514 MOV #$402C,-2(R10)
12515 MOV @R1+,R13
12516 MOV @R13+,R0
12517 ENDCODE
12518 [THEN]
12519
12520 [UNDEFINED] DEFER! [IF]
12521 CODE DEFER!
12522 MOV @R15+,2(R14)
12523 MOV @R15+,R14
12524 MOV @R13+,R0
12525 ENDCODE
12526 [THEN]
12527
12528 [UNDEFINED] IS [IF]
12529 : IS
12530 STATE @
12531 IF  POSTPONE ['] POSTPONE DEFER! 
12532 ELSE ' DEFER! 
12533 THEN
12534 ; IMMEDIATE
12535 [THEN]
12536
12537 [UNDEFINED] >BODY [IF]
12538 CODE >BODY
12539 ADD #4,R14
12540 MOV @R13+,R0
12541 ENDCODE
12542 [THEN]
12543
12544
12545 CODE 20_US
12546 BEGIN
12547     BEGIN
12548         BIT #1,&$3C0
12549     0<> UNTIL
12550     BIC #1,&$3C0
12551     SUB #1,R14
12552 U< UNTIL
12553 MOV @R15+,R14
12554 MOV @R13+,R0
12555 ENDCODE
12556
12557 CODE TOP_LCD
12558     BIS.B #4,&$243
12559     BIT.B #1,&$241
12560 0= IF
12561     AND.B #$0F,R14
12562     MOV.B R14,&$222
12563     BIC.B #4,&$243
12564     MOV @R15+,R14
12565     MOV @R13+,R0
12566 THEN
12567     SUB #2,R15
12568     MOV R14,0(R15)
12569     BIC.B #4,&$243
12570     MOV.B &$220,R14
12571     AND.B #$0F,R14
12572     MOV @R13+,R0
12573 ENDCODE
12574
12575 CODE LCD_WRC
12576     BIS.B #2,&$243
12577 BW1 SUB #2,R15
12578     MOV R14,0(R15)
12579     RRUM #4,R14
12580     BIC.B #1,&$243
12581     BIS.B #$0F,&$224
12582 COLON
12583     TOP_LCD 2 20_US
12584     TOP_LCD 2 20_US 
12585 ;
12586
12587 CODE LCD_WRF
12588     BIC.B #2,&$243
12589     GOTO BW1
12590 ENDCODE
12591
12592 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12593 : LCD_HOME $02 LCD_WRF 100 20_us ;
12594
12595
12596
12597 ASM WDT_INT
12598 ADD #2,R1
12599 BIT.B #$20,&$240
12600 0= IF
12601     CMP #19,&$3D6
12602     U< IF
12603         ADD #1,&$3D6
12604     THEN
12605 ELSE
12606     BIT.B #$40,&$240
12607     0= IF
12608         CMP #3,&$3D6
12609         U>= IF
12610            SUB #1,&$3D6
12611         THEN
12612     THEN
12613 THEN
12614 BW1
12615 MOV @R1+,R0
12616 ENDASM
12617
12618 ASM RC5_INT
12619 ADD #2,R1
12620 $1806 @ 16000 = [IF]
12621     MOV #1,&$3A0
12622 [THEN]
12623 $1806 @ 24000 = [IF]
12624     MOV #2,&$3A0
12625 [THEN]
12626 MOV #1778,R9
12627 MOV #14,R10
12628 BEGIN
12629 MOV #%1011100100,&$380
12630     RRUM    #1,R9
12631     MOV     R9,R8
12632     RRUM    #1,R8
12633     ADD     R9,R8
12634     BEGIN   CMP R8,&$390
12635     U>= UNTIL
12636     BIT.B   #4,&$200
12637     ADDC    R11,R11
12638     MOV.B   &$200,&$208
12639     BIC.B   #4,&$20C
12640     SUB     #1,R10
12641 0<> WHILE
12642     ADD R9,R8
12643     BEGIN
12644         MOV &$390,R9
12645         CMP R8,R9
12646         U>= IF
12647         BIC #$30,&$380
12648         GOTO BW1
12649         THEN
12650         BIT.B #4,&$20C
12651     0<> UNTIL
12652 REPEAT
12653 BIC #$30,&$380
12654 RLAM    #1,R11
12655 MOV.B   R11,R9
12656 RRUM    #2,R9
12657 BIT     #$4000,R11
12658 0= IF   BIS #$40,R9
12659 THEN
12660 RRUM    #3,R11
12661 XOR     @R1,R11
12662 BIT     #$400,R11
12663 0= ?GOTO BW1
12664 XOR #$400,0(R1)
12665 SUB #8,R15
12666 MOV R14,6(R15)
12667 MOV &$1DDC,4(R15)
12668 MOV #$10,&$1DDC
12669 MOV R9,0(R15)
12670 MOV #0,R14
12671 LO2HI
12672     LCD_CLEAR
12673     <# # #S #36 HOLD #>
12674     ['] LCD_WRC IS EMIT
12675     TYPE
12676     ['] EMIT >BODY IS EMIT
12677 HI2LO
12678 MOV @R15+,&$1DDC
12679 MOV @R15+,R14
12680 MOV @R1+,R0
12681 ENDASM
12682
12683 ASM BACKGROUND
12684 BEGIN
12685     CALL &$1814
12686     BIS &$180A,R2
12687 AGAIN
12688 ENDASM
12689
12690 ASM SYS_OUT
12691     MOV #WARM,R9
12692     ADD #4,R9
12693     MOV R9,R0
12694 ENDASM
12695
12696 CODE STOP
12697 BW1 MOV #$4000,R9
12698     ADD #4,R9
12699     MOV R9,-2(R9)
12700     MOV #WARM,R9
12701     MOV #SYS_OUT,2(R9)
12702     BIC.B #4,&$20A
12703     BIC.B #4,&$20C
12704     MOV #0,&$3C0
12705     MOV #0,&$340
12706     MOV #0,&$342
12707     CALL #$400E
12708 COLON
12709 ECHO
12710 ." RC5toLCD is removed,"
12711 ."  type START to restart"
12712  WARM
12713 ;
12714
12715 CODE SYS_INIT
12716 MOV #%10_1101_0100,&$3C0
12717 $1806 @ 16000 = [IF]
12718     MOV #1,&$3E0
12719 [THEN]
12720 $1806 @ 24000 = [IF]
12721     MOV #2,&$3E0
12722 [THEN]
12723     MOV #19,&$3D2
12724 MOV #%0110_0000,&$3C6
12725     MOV #10,&$3D6
12726     BIS.B #$20,&$204
12727     BIS.B #$20,&$20A
12728     BIS.B #7,&$245
12729     BIC.B #7,&$247
12730     BIS.B #$0F,&$224
12731     BIC.B #$0F,&$226
12732     BIS.B #4,&$20A
12733     BIC.B #4,&$20C
12734     MOV #RC5_INT,&$FFDE
12735 MOV #%01_0001_0100,&$340
12736     MOV ##3276,&$352
12737     MOV #%10000,&$342
12738     MOV #WDT_INT,&$FFEA
12739 BIC #1,&$130
12740 BIS.B #3,&$20D
12741 MOV &$1808,R8
12742 CMP #4,R8
12743 0= ?GOTO BW1
12744 COLON
12745     #1000 20_US
12746     %011 TOP_LCD
12747     #205 20_US
12748     %011 TOP_LCD
12749     #5 20_US
12750     %011 TOP_LCD
12751     #2 20_US
12752     %010 TOP_LCD
12753     #2 20_US
12754     %00101000 LCD_WRF
12755     %1000 LCD_WRF
12756     LCD_CLEAR
12757     %0110 LCD_WRF
12758     %1100 LCD_WRF
12759     LCD_CLEAR
12760     ['] LCD_HOME IS CR
12761     ['] LCD_WRC  IS EMIT
12762     CR ." I love you"
12763     ['] CR >BODY IS CR
12764     ['] EMIT >BODY IS EMIT
12765     ." RC5toLCD is running. Type STOP to quit"
12766     PWR_STATE ABORT
12767 ;
12768
12769 CODE START
12770 MOV #$4000,R9
12771 MOV #BACKGROUND,2(R9)
12772 MOV #WARM,R9
12773 MOV #SYS_INIT,2(R9)
12774 MOV R9,R0
12775 ENDCODE 
12776
12777 ECHO
12778             ; downloading RC5toLCD.4th is done
12779 RST_HERE    ; this app is protected against <reset>
12780
12781
12782 RST_STATE
12783
12784 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12785
12786 [UNDEFINED] MARKER [IF]
12787 : MARKER
12788 CREATE
12789 HI2LO
12790 MOV &$1DC8,0(R10)
12791 SUB #2,R8
12792 MOV R8,2(R10)
12793 ADD #4,&$1DC6
12794 LO2HI
12795 DOES>
12796 HI2LO
12797 MOV @R1+,R13
12798 MOV @R14+,&$180E
12799 MOV @R14,&$180C
12800 MOV @R15+,R14
12801 MOV #RST_STATE,R0
12802 ENDCODE
12803 [THEN]
12804
12805 MARKER {RC5TOLCD}
12806
12807 [UNDEFINED] @ [IF]
12808 CODE @
12809 MOV @R14,R14
12810 MOV @R13+,R0
12811 ENDCODE
12812 [THEN]
12813
12814 [UNDEFINED] CONSTANT [IF]
12815 : CONSTANT 
12816 CREATE
12817 HI2LO
12818 MOV R14,-2(R10)
12819 MOV @R15+,R14
12820 MOV @R1+,R13
12821 MOV @R13+,R0
12822 ENDCODE
12823 [THEN]
12824
12825 [UNDEFINED] STATE [IF]
12826 $1DBE CONSTANT STATE
12827 [THEN]
12828
12829 [UNDEFINED] = [IF]
12830 CODE =
12831 SUB @R15+,R14
12832 0<> IF
12833     AND #0,R14
12834     MOV @R13+,R0
12835 THEN
12836 XOR #-1,R14
12837 MOV @R13+,R0
12838 ENDCODE
12839 [THEN]
12840
12841 [UNDEFINED] IF [IF]
12842 CODE IF
12843 SUB #2,R15
12844 MOV R14,0(R15)
12845 MOV &$1DC6,R14
12846 ADD #4,&$1DC6
12847 MOV #$404C,0(R14)
12848 ADD #2,R14
12849 MOV @R13+,R0
12850 ENDCODE IMMEDIATE
12851 [THEN]
12852
12853 [UNDEFINED] THEN [IF]
12854 CODE THEN
12855 MOV &$1DC6,0(R14)
12856 MOV @R15+,R14
12857 MOV @R13+,R0
12858 ENDCODE IMMEDIATE
12859 [THEN]
12860
12861 [UNDEFINED] ELSE [IF]
12862 CODE ELSE
12863 ADD #4,&$1DC6
12864 MOV &$1DC6,R10
12865 MOV #$4048,-4(R10)
12866 MOV R10,0(R14)
12867 SUB #2,R10
12868 MOV R10,R14
12869 MOV @R13+,R0
12870 ENDCODE IMMEDIATE
12871 [THEN]
12872
12873 [UNDEFINED] DEFER [IF]
12874
12875 : DEFER
12876 CREATE
12877 HI2LO
12878 MOV #$4030,-4(R10)
12879 MOV #$402C,-2(R10)
12880 MOV @R1+,R13
12881 MOV @R13+,R0
12882 ENDCODE
12883 [THEN]
12884
12885 [UNDEFINED] DEFER! [IF]
12886 CODE DEFER!
12887 MOV @R15+,2(R14)
12888 MOV @R15+,R14
12889 MOV @R13+,R0
12890 ENDCODE
12891 [THEN]
12892
12893 [UNDEFINED] IS [IF]
12894 : IS
12895 STATE @
12896 IF  POSTPONE ['] POSTPONE DEFER! 
12897 ELSE ' DEFER! 
12898 THEN
12899 ; IMMEDIATE
12900 [THEN]
12901
12902 [UNDEFINED] >BODY [IF]
12903 CODE >BODY
12904 ADD #4,R14
12905 MOV @R13+,R0
12906 ENDCODE
12907 [THEN]
12908
12909
12910 CODE 20_US
12911 BEGIN
12912     BEGIN
12913         BIT #1,&$3C0
12914     0<> UNTIL
12915     BIC #1,&$3C0
12916     SUB #1,R14
12917 U< UNTIL
12918 MOV @R15+,R14
12919 MOV @R13+,R0
12920 ENDCODE
12921
12922 CODE TOP_LCD
12923     BIS.B #4,&$243
12924     BIT.B #1,&$241
12925 0= IF
12926     AND.B #$0F,R14
12927     MOV.B R14,&$222
12928     BIC.B #4,&$243
12929     MOV @R15+,R14
12930     MOV @R13+,R0
12931 THEN
12932     SUB #2,R15
12933     MOV R14,0(R15)
12934     BIC.B #4,&$243
12935     MOV.B &$220,R14
12936     AND.B #$0F,R14
12937     MOV @R13+,R0
12938 ENDCODE
12939
12940 CODE LCD_WRC
12941     BIS.B #2,&$243
12942 BW1 SUB #2,R15
12943     MOV R14,0(R15)
12944     RRUM #4,R14
12945     BIC.B #1,&$243
12946     BIS.B #$0F,&$224
12947 COLON
12948     TOP_LCD 2 20_US
12949     TOP_LCD 2 20_US 
12950 ;
12951
12952 CODE LCD_WRF
12953     BIC.B #2,&$243
12954     GOTO BW1
12955 ENDCODE
12956
12957 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12958 : LCD_HOME $02 LCD_WRF 100 20_us ;
12959
12960
12961
12962 ASM WDT_INT
12963 ADD #2,R1
12964 BIT.B #$20,&$240
12965 0= IF
12966     CMP #19,&$3D6
12967     U< IF
12968         ADD #1,&$3D6
12969     THEN
12970 ELSE
12971     BIT.B #$40,&$240
12972     0= IF
12973         CMP #3,&$3D6
12974         U>= IF
12975            SUB #1,&$3D6
12976         THEN
12977     THEN
12978 THEN
12979 BW1
12980 MOV @R1+,R0
12981 ENDASM
12982
12983 ASM RC5_INT
12984 ADD #2,R1
12985 $1806 @ 16000 = [IF]
12986     MOV #1,&$3A0
12987 [THEN]
12988 $1806 @ 24000 = [IF]
12989     MOV #2,&$3A0
12990 [THEN]
12991 MOV #1778,R9
12992 MOV #14,R10
12993 BEGIN
12994 MOV #%1011100100,&$380
12995     RRUM    #1,R9
12996     MOV     R9,R8
12997     RRUM    #1,R8
12998     ADD     R9,R8
12999     BEGIN   CMP R8,&$390
13000     U>= UNTIL
13001     BIT.B   #4,&$200
13002     ADDC    R11,R11
13003     MOV.B   &$200,&$208
13004     BIC.B   #4,&$20C
13005     SUB     #1,R10
13006 0<> WHILE
13007     ADD R9,R8
13008     BEGIN
13009         MOV &$390,R9
13010         CMP R8,R9
13011         U>= IF
13012         BIC #$30,&$380
13013         GOTO BW1
13014         THEN
13015         BIT.B #4,&$20C
13016     0<> UNTIL
13017 REPEAT
13018 BIC #$30,&$380
13019 RLAM    #1,R11
13020 MOV.B   R11,R9
13021 RRUM    #2,R9
13022 BIT     #$4000,R11
13023 0= IF   BIS #$40,R9
13024 THEN
13025 RRUM    #3,R11
13026 XOR     @R1,R11
13027 BIT     #$400,R11
13028 0= ?GOTO BW1
13029 XOR #$400,0(R1)
13030 SUB #8,R15
13031 MOV R14,6(R15)
13032 MOV &$1DDC,4(R15)
13033 MOV #$10,&$1DDC
13034 MOV R9,0(R15)
13035 MOV #0,R14
13036 LO2HI
13037     LCD_CLEAR
13038     <# # #S #36 HOLD #>
13039     ['] LCD_WRC IS EMIT
13040     TYPE
13041     ['] EMIT >BODY IS EMIT
13042 HI2LO
13043 MOV @R15+,&$1DDC
13044 MOV @R15+,R14
13045 MOV @R1+,R0
13046 ENDASM
13047
13048 ASM BACKGROUND
13049 BEGIN
13050     CALL &$1814
13051     BIS &$180A,R2
13052 AGAIN
13053 ENDASM
13054
13055 ASM SYS_OUT
13056     MOV #WARM,R9
13057     ADD #4,R9
13058     MOV R9,R0
13059 ENDASM
13060
13061 CODE STOP
13062 BW1 MOV #$4000,R9
13063     ADD #4,R9
13064     MOV R9,-2(R9)
13065     MOV #WARM,R9
13066     MOV #SYS_OUT,2(R9)
13067     BIC.B #4,&$20A
13068     BIC.B #4,&$20C
13069     MOV #0,&$3C0
13070     MOV #0,&$340
13071     MOV #0,&$342
13072     CALL #$400E
13073 COLON
13074 ECHO
13075 ." RC5toLCD is removed,"
13076 ."  type START to restart"
13077  WARM
13078 ;
13079
13080 CODE SYS_INIT
13081 MOV #%10_1101_0100,&$3C0
13082 $1806 @ 16000 = [IF]
13083     MOV #1,&$3E0
13084 [THEN]
13085 $1806 @ 24000 = [IF]
13086     MOV #2,&$3E0
13087 [THEN]
13088     MOV #19,&$3D2
13089 MOV #%0110_0000,&$3C6
13090     MOV #10,&$3D6
13091     BIS.B #$20,&$204
13092     BIS.B #$20,&$20A
13093     BIS.B #7,&$245
13094     BIC.B #7,&$247
13095     BIS.B #$0F,&$224
13096     BIC.B #$0F,&$226
13097     BIS.B #4,&$20A
13098     BIC.B #4,&$20C
13099     MOV #RC5_INT,&$FFDE
13100 MOV #%01_0001_0100,&$340
13101     MOV ##3276,&$352
13102     MOV #%10000,&$342
13103     MOV #WDT_INT,&$FFEA
13104 BIC #1,&$130
13105 BIS.B #3,&$20D
13106 MOV &$1808,R8
13107 CMP #4,R8
13108 0= ?GOTO BW1
13109 COLON
13110     #1000 20_US
13111     %011 TOP_LCD
13112     #205 20_US
13113     %011 TOP_LCD
13114     #5 20_US
13115     %011 TOP_LCD
13116     #2 20_US
13117     %010 TOP_LCD
13118     #2 20_US
13119     %00101000 LCD_WRF
13120     %1000 LCD_WRF
13121     LCD_CLEAR
13122     %0110 LCD_WRF
13123     %1100 LCD_WRF
13124     LCD_CLEAR
13125     ['] LCD_HOME IS CR
13126     ['] LCD_WRC  IS EMIT
13127     CR ." I love you"
13128     ['] CR >BODY IS CR
13129     ['] EMIT >BODY IS EMIT
13130     ." RC5toLCD is running. Type STOP to quit"
13131     PWR_STATE ABORT
13132 ;
13133
13134 CODE START
13135 MOV #$4000,R9
13136 MOV #BACKGROUND,2(R9)
13137 MOV #WARM,R9
13138 MOV #SYS_INIT,2(R9)
13139 MOV R9,R0
13140 ENDCODE 
13141
13142 ECHO
13143             ; downloading RC5toLCD.4th is done
13144 RST_HERE    ; this app is protected against <reset>
13145
13146
13147 RST_STATE
13148
13149 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13150
13151 [UNDEFINED] MARKER [IF]
13152 : MARKER
13153 CREATE
13154 HI2LO
13155 MOV &$1DC8,0(R10)
13156 SUB #2,R8
13157 MOV R8,2(R10)
13158 ADD #4,&$1DC6
13159 LO2HI
13160 DOES>
13161 HI2LO
13162 MOV @R1+,R13
13163 MOV @R14+,&$180E
13164 MOV @R14,&$180C
13165 MOV @R15+,R14
13166 MOV #RST_STATE,R0
13167 ENDCODE
13168 [THEN]
13169
13170 MARKER {RC5TOLCD}
13171
13172 [UNDEFINED] @ [IF]
13173 CODE @
13174 MOV @R14,R14
13175 MOV @R13+,R0
13176 ENDCODE
13177 [THEN]
13178
13179 [UNDEFINED] CONSTANT [IF]
13180 : CONSTANT 
13181 CREATE
13182 HI2LO
13183 MOV R14,-2(R10)
13184 MOV @R15+,R14
13185 MOV @R1+,R13
13186 MOV @R13+,R0
13187 ENDCODE
13188 [THEN]
13189
13190 [UNDEFINED] STATE [IF]
13191 $1DBE CONSTANT STATE
13192 [THEN]
13193
13194 [UNDEFINED] = [IF]
13195 CODE =
13196 SUB @R15+,R14
13197 0<> IF
13198     AND #0,R14
13199     MOV @R13+,R0
13200 THEN
13201 XOR #-1,R14
13202 MOV @R13+,R0
13203 ENDCODE
13204 [THEN]
13205
13206 [UNDEFINED] IF [IF]
13207 CODE IF
13208 SUB #2,R15
13209 MOV R14,0(R15)
13210 MOV &$1DC6,R14
13211 ADD #4,&$1DC6
13212 MOV #$404C,0(R14)
13213 ADD #2,R14
13214 MOV @R13+,R0
13215 ENDCODE IMMEDIATE
13216 [THEN]
13217
13218 [UNDEFINED] THEN [IF]
13219 CODE THEN
13220 MOV &$1DC6,0(R14)
13221 MOV @R15+,R14
13222 MOV @R13+,R0
13223 ENDCODE IMMEDIATE
13224 [THEN]
13225
13226 [UNDEFINED] ELSE [IF]
13227 CODE ELSE
13228 ADD #4,&$1DC6
13229 MOV &$1DC6,R10
13230 MOV #$4048,-4(R10)
13231 MOV R10,0(R14)
13232 SUB #2,R10
13233 MOV R10,R14
13234 MOV @R13+,R0
13235 ENDCODE IMMEDIATE
13236 [THEN]
13237
13238 [UNDEFINED] DEFER [IF]
13239
13240 : DEFER
13241 CREATE
13242 HI2LO
13243 MOV #$4030,-4(R10)
13244 MOV #$402C,-2(R10)
13245 MOV @R1+,R13
13246 MOV @R13+,R0
13247 ENDCODE
13248 [THEN]
13249
13250 [UNDEFINED] DEFER! [IF]
13251 CODE DEFER!
13252 MOV @R15+,2(R14)
13253 MOV @R15+,R14
13254 MOV @R13+,R0
13255 ENDCODE
13256 [THEN]
13257
13258 [UNDEFINED] IS [IF]
13259 : IS
13260 STATE @
13261 IF  POSTPONE ['] POSTPONE DEFER! 
13262 ELSE ' DEFER! 
13263 THEN
13264 ; IMMEDIATE
13265 [THEN]
13266
13267 [UNDEFINED] >BODY [IF]
13268 CODE >BODY
13269 ADD #4,R14
13270 MOV @R13+,R0
13271 ENDCODE
13272 [THEN]
13273
13274
13275 CODE 20_US
13276 BEGIN
13277     BEGIN
13278         BIT #1,&$3C0
13279     0<> UNTIL
13280     BIC #1,&$3C0
13281     SUB #1,R14
13282 U< UNTIL
13283 MOV @R15+,R14
13284 MOV @R13+,R0
13285 ENDCODE
13286
13287 CODE TOP_LCD
13288     BIS.B #4,&$243
13289     BIT.B #1,&$241
13290 0= IF
13291     AND.B #$0F,R14
13292     MOV.B R14,&$222
13293     BIC.B #4,&$243
13294     MOV @R15+,R14
13295     MOV @R13+,R0
13296 THEN
13297     SUB #2,R15
13298     MOV R14,0(R15)
13299     BIC.B #4,&$243
13300     MOV.B &$220,R14
13301     AND.B #$0F,R14
13302     MOV @R13+,R0
13303 ENDCODE
13304
13305 CODE LCD_WRC
13306     BIS.B #2,&$243
13307 BW1 SUB #2,R15
13308     MOV R14,0(R15)
13309     RRUM #4,R14
13310     BIC.B #1,&$243
13311     BIS.B #$0F,&$224
13312 COLON
13313     TOP_LCD 2 20_US
13314     TOP_LCD 2 20_US 
13315 ;
13316
13317 CODE LCD_WRF
13318     BIC.B #2,&$243
13319     GOTO BW1
13320 ENDCODE
13321
13322 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
13323 : LCD_HOME $02 LCD_WRF 100 20_us ;
13324
13325
13326
13327 ASM WDT_INT
13328 ADD #2,R1
13329 BIT.B #$20,&$240
13330 0= IF
13331     CMP #19,&$3D6
13332     U< IF
13333         ADD #1,&$3D6
13334     THEN
13335 ELSE
13336     BIT.B #$40,&$240
13337     0= IF
13338         CMP #3,&$3D6
13339         U>= IF
13340            SUB #1,&$3D6
13341         THEN
13342     THEN
13343 THEN
13344 BW1
13345 MOV @R1+,R0
13346 ENDASM
13347
13348 ASM RC5_INT
13349 ADD #2,R1
13350 $1806 @ 16000 = [IF]
13351     MOV #1,&$3A0
13352 [THEN]
13353 $1806 @ 24000 = [IF]
13354     MOV #2,&$3A0
13355 [THEN]
13356 MOV #1778,R9
13357 MOV #14,R10
13358 BEGIN
13359 MOV #%1011100100,&$380
13360     RRUM    #1,R9
13361     MOV     R9,R8
13362     RRUM    #1,R8
13363     ADD     R9,R8
13364     BEGIN   CMP R8,&$390
13365     U>= UNTIL
13366     BIT.B   #4,&$200
13367     ADDC    R11,R11
13368     MOV.B   &$200,&$208
13369     BIC.B   #4,&$20C
13370     SUB     #1,R10
13371 0<> WHILE
13372     ADD R9,R8
13373     BEGIN
13374         MOV &$390,R9
13375         CMP R8,R9
13376         U>= IF
13377         BIC #$30,&$380
13378         GOTO BW1
13379         THEN
13380         BIT.B #4,&$20C
13381     0<> UNTIL
13382 REPEAT
13383 BIC #$30,&$380
13384 RLAM    #1,R11
13385 MOV.B   R11,R9
13386 RRUM    #2,R9
13387 BIT     #$4000,R11
13388 0= IF   BIS #$40,R9
13389 THEN
13390 RRUM    #3,R11
13391 XOR     @R1,R11
13392 BIT     #$400,R11
13393 0= ?GOTO BW1
13394 XOR #$400,0(R1)
13395 SUB #8,R15
13396 MOV R14,6(R15)
13397 MOV &$1DDC,4(R15)
13398 MOV #$10,&$1DDC
13399 MOV R9,0(R15)
13400 MOV #0,R14
13401 LO2HI
13402     LCD_CLEAR
13403     <# # #S #36 HOLD #>
13404     ['] LCD_WRC IS EMIT
13405     TYPE
13406     ['] EMIT >BODY IS EMIT
13407 HI2LO
13408 MOV @R15+,&$1DDC
13409 MOV @R15+,R14
13410 MOV @R1+,R0
13411 ENDASM
13412
13413 ASM BACKGROUND
13414 BEGIN
13415     CALL &$1814
13416     BIS &$180A,R2
13417 AGAIN
13418 ENDASM
13419
13420 ASM SYS_OUT
13421     MOV #WARM,R9
13422     ADD #4,R9
13423     MOV R9,R0
13424 ENDASM
13425
13426 CODE STOP
13427 BW1 MOV #$4000,R9
13428     ADD #4,R9
13429     MOV R9,-2(R9)
13430     MOV #WARM,R9
13431     MOV #SYS_OUT,2(R9)
13432     BIC.B #4,&$20A
13433     BIC.B #4,&$20C
13434     MOV #0,&$3C0
13435     MOV #0,&$340
13436     MOV #0,&$342
13437     CALL #$400E
13438 COLON
13439 ECHO
13440 ." RC5toLCD is removed,"
13441 ."  type START to restart"
13442  WARM
13443 ;
13444
13445 CODE SYS_INIT
13446 MOV #%10_1101_0100,&$3C0
13447 $1806 @ 16000 = [IF]
13448     MOV #1,&$3E0
13449 [THEN]
13450 $1806 @ 24000 = [IF]
13451     MOV #2,&$3E0
13452 [THEN]
13453     MOV #19,&$3D2
13454 MOV #%0110_0000,&$3C6
13455     MOV #10,&$3D6
13456     BIS.B #$20,&$204
13457     BIS.B #$20,&$20A
13458     BIS.B #7,&$245
13459     BIC.B #7,&$247
13460     BIS.B #$0F,&$224
13461     BIC.B #$0F,&$226
13462     BIS.B #4,&$20A
13463     BIC.B #4,&$20C
13464     MOV #RC5_INT,&$FFDE
13465 MOV #%01_0001_0100,&$340
13466     MOV ##3276,&$352
13467     MOV #%10000,&$342
13468     MOV #WDT_INT,&$FFEA
13469 BIC #1,&$130
13470 BIS.B #3,&$20D
13471 MOV &$1808,R8
13472 CMP #4,R8
13473 0= ?GOTO BW1
13474 COLON
13475     #1000 20_US
13476     %011 TOP_LCD
13477     #205 20_US
13478     %011 TOP_LCD
13479     #5 20_US
13480     %011 TOP_LCD
13481     #2 20_US
13482     %010 TOP_LCD
13483     #2 20_US
13484     %00101000 LCD_WRF
13485     %1000 LCD_WRF
13486     LCD_CLEAR
13487     %0110 LCD_WRF
13488     %1100 LCD_WRF
13489     LCD_CLEAR
13490     ['] LCD_HOME IS CR
13491     ['] LCD_WRC  IS EMIT
13492     CR ." I love you"
13493     ['] CR >BODY IS CR
13494     ['] EMIT >BODY IS EMIT
13495     ." RC5toLCD is running. Type STOP to quit"
13496     PWR_STATE ABORT
13497 ;
13498
13499 CODE START
13500 MOV #$4000,R9
13501 MOV #BACKGROUND,2(R9)
13502 MOV #WARM,R9
13503 MOV #SYS_INIT,2(R9)
13504 MOV R9,R0
13505 ENDCODE 
13506
13507 ECHO
13508             ; downloading RC5toLCD.4th is done
13509 RST_HERE    ; this app is protected against <reset>
13510
13511
13512 RST_STATE
13513
13514 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13515
13516 [UNDEFINED] MARKER [IF]
13517 : MARKER
13518 CREATE
13519 HI2LO
13520 MOV &$1DC8,0(R10)
13521 SUB #2,R8
13522 MOV R8,2(R10)
13523 ADD #4,&$1DC6
13524 LO2HI
13525 DOES>
13526 HI2LO
13527 MOV @R1+,R13
13528 MOV @R14+,&$180E
13529 MOV @R14,&$180C
13530 MOV @R15+,R14
13531 MOV #RST_STATE,R0
13532 ENDCODE
13533 [THEN]
13534
13535 MARKER {RC5TOLCD}
13536
13537 [UNDEFINED] @ [IF]
13538 CODE @
13539 MOV @R14,R14
13540 MOV @R13+,R0
13541 ENDCODE
13542 [THEN]
13543
13544 [UNDEFINED] CONSTANT [IF]
13545 : CONSTANT 
13546 CREATE
13547 HI2LO
13548 MOV R14,-2(R10)
13549 MOV @R15+,R14
13550 MOV @R1+,R13
13551 MOV @R13+,R0
13552 ENDCODE
13553 [THEN]
13554
13555 [UNDEFINED] STATE [IF]
13556 $1DBE CONSTANT STATE
13557 [THEN]
13558
13559 [UNDEFINED] = [IF]
13560 CODE =
13561 SUB @R15+,R14
13562 0<> IF
13563     AND #0,R14
13564     MOV @R13+,R0
13565 THEN
13566 XOR #-1,R14
13567 MOV @R13+,R0
13568 ENDCODE
13569 [THEN]
13570
13571 [UNDEFINED] IF [IF]
13572 CODE IF
13573 SUB #2,R15
13574 MOV R14,0(R15)
13575 MOV &$1DC6,R14
13576 ADD #4,&$1DC6
13577 MOV #$404C,0(R14)
13578 ADD #2,R14
13579 MOV @R13+,R0
13580 ENDCODE IMMEDIATE
13581 [THEN]
13582
13583 [UNDEFINED] THEN [IF]
13584 CODE THEN
13585 MOV &$1DC6,0(R14)
13586 MOV @R15+,R14
13587 MOV @R13+,R0
13588 ENDCODE IMMEDIATE
13589 [THEN]
13590
13591 [UNDEFINED] ELSE [IF]
13592 CODE ELSE
13593 ADD #4,&$1DC6
13594 MOV &$1DC6,R10
13595 MOV #$4048,-4(R10)
13596 MOV R10,0(R14)
13597 SUB #2,R10
13598 MOV R10,R14
13599 MOV @R13+,R0
13600 ENDCODE IMMEDIATE
13601 [THEN]
13602
13603 [UNDEFINED] DEFER [IF]
13604
13605 : DEFER
13606 CREATE
13607 HI2LO
13608 MOV #$4030,-4(R10)
13609 MOV #$402C,-2(R10)
13610 MOV @R1+,R13
13611 MOV @R13+,R0
13612 ENDCODE
13613 [THEN]
13614
13615 [UNDEFINED] DEFER! [IF]
13616 CODE DEFER!
13617 MOV @R15+,2(R14)
13618 MOV @R15+,R14
13619 MOV @R13+,R0
13620 ENDCODE
13621 [THEN]
13622
13623 [UNDEFINED] IS [IF]
13624 : IS
13625 STATE @
13626 IF  POSTPONE ['] POSTPONE DEFER! 
13627 ELSE ' DEFER! 
13628 THEN
13629 ; IMMEDIATE
13630 [THEN]
13631
13632 [UNDEFINED] >BODY [IF]
13633 CODE >BODY
13634 ADD #4,R14
13635 MOV @R13+,R0
13636 ENDCODE
13637 [THEN]
13638
13639
13640 CODE 20_US
13641 BEGIN
13642     BEGIN
13643         BIT #1,&$3C0
13644     0<> UNTIL
13645     BIC #1,&$3C0
13646     SUB #1,R14
13647 U< UNTIL
13648 MOV @R15+,R14
13649 MOV @R13+,R0
13650 ENDCODE
13651
13652 CODE TOP_LCD
13653     BIS.B #4,&$243
13654     BIT.B #1,&$241
13655 0= IF
13656     AND.B #$0F,R14
13657     MOV.B R14,&$222
13658     BIC.B #4,&$243
13659     MOV @R15+,R14
13660     MOV @R13+,R0
13661 THEN
13662     SUB #2,R15
13663     MOV R14,0(R15)
13664     BIC.B #4,&$243
13665     MOV.B &$220,R14
13666     AND.B #$0F,R14
13667     MOV @R13+,R0
13668 ENDCODE
13669
13670 CODE LCD_WRC
13671     BIS.B #2,&$243
13672 BW1 SUB #2,R15
13673     MOV R14,0(R15)
13674     RRUM #4,R14
13675     BIC.B #1,&$243
13676     BIS.B #$0F,&$224
13677 COLON
13678     TOP_LCD 2 20_US
13679     TOP_LCD 2 20_US 
13680 ;
13681
13682 CODE LCD_WRF
13683     BIC.B #2,&$243
13684     GOTO BW1
13685 ENDCODE
13686
13687 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
13688 : LCD_HOME $02 LCD_WRF 100 20_us ;
13689
13690
13691
13692 ASM WDT_INT
13693 ADD #2,R1
13694 BIT.B #$20,&$240
13695 0= IF
13696     CMP #19,&$3D6
13697     U< IF
13698         ADD #1,&$3D6
13699     THEN
13700 ELSE
13701     BIT.B #$40,&$240
13702     0= IF
13703         CMP #3,&$3D6
13704         U>= IF
13705            SUB #1,&$3D6
13706         THEN
13707     THEN
13708 THEN
13709 BW1
13710 MOV @R1+,R0
13711 ENDASM
13712
13713 ASM RC5_INT
13714 ADD #2,R1
13715 $1806 @ 16000 = [IF]
13716     MOV #1,&$3A0
13717 [THEN]
13718 $1806 @ 24000 = [IF]
13719     MOV #2,&$3A0
13720 [THEN]
13721 MOV #1778,R9
13722 MOV #14,R10
13723 BEGIN
13724 MOV #%1011100100,&$380
13725     RRUM    #1,R9
13726     MOV     R9,R8
13727     RRUM    #1,R8
13728     ADD     R9,R8
13729     BEGIN   CMP R8,&$390
13730     U>= UNTIL
13731     BIT.B   #4,&$200
13732     ADDC    R11,R11
13733     MOV.B   &$200,&$208
13734     BIC.B   #4,&$20C
13735     SUB     #1,R10
13736 0<> WHILE
13737     ADD R9,R8
13738     BEGIN
13739         MOV &$390,R9
13740         CMP R8,R9
13741         U>= IF
13742         BIC #$30,&$380
13743         GOTO BW1
13744         THEN
13745         BIT.B #4,&$20C
13746     0<> UNTIL
13747 REPEAT
13748 BIC #$30,&$380
13749 RLAM    #1,R11
13750 MOV.B   R11,R9
13751 RRUM    #2,R9
13752 BIT     #$4000,R11
13753 0= IF   BIS #$40,R9
13754 THEN
13755 RRUM    #3,R11
13756 XOR     @R1,R11
13757 BIT     #$400,R11
13758 0= ?GOTO BW1
13759 XOR #$400,0(R1)
13760 SUB #8,R15
13761 MOV R14,6(R15)
13762 MOV &$1DDC,4(R15)
13763 MOV #$10,&$1DDC
13764 MOV R9,0(R15)
13765 MOV #0,R14
13766 LO2HI
13767     LCD_CLEAR
13768     <# # #S #36 HOLD #>
13769     ['] LCD_WRC IS EMIT
13770     TYPE
13771     ['] EMIT >BODY IS EMIT
13772 HI2LO
13773 MOV @R15+,&$1DDC
13774 MOV @R15+,R14
13775 MOV @R1+,R0
13776 ENDASM
13777
13778 ASM BACKGROUND
13779 BEGIN
13780     CALL &$1814
13781     BIS &$180A,R2
13782 AGAIN
13783 ENDASM
13784
13785 ASM SYS_OUT
13786     MOV #WARM,R9
13787     ADD #4,R9
13788     MOV R9,R0
13789 ENDASM
13790
13791 CODE STOP
13792 BW1 MOV #$4000,R9
13793     ADD #4,R9
13794     MOV R9,-2(R9)
13795     MOV #WARM,R9
13796     MOV #SYS_OUT,2(R9)
13797     BIC.B #4,&$20A
13798     BIC.B #4,&$20C
13799     MOV #0,&$3C0
13800     MOV #0,&$340
13801     MOV #0,&$342
13802     CALL #$400E
13803 COLON
13804 ECHO
13805 ." RC5toLCD is removed,"
13806 ."  type START to restart"
13807  WARM
13808 ;
13809
13810 CODE SYS_INIT
13811 MOV #%10_1101_0100,&$3C0
13812 $1806 @ 16000 = [IF]
13813     MOV #1,&$3E0
13814 [THEN]
13815 $1806 @ 24000 = [IF]
13816     MOV #2,&$3E0
13817 [THEN]
13818     MOV #19,&$3D2
13819 MOV #%0110_0000,&$3C6
13820     MOV #10,&$3D6
13821     BIS.B #$20,&$204
13822     BIS.B #$20,&$20A
13823     BIS.B #7,&$245
13824     BIC.B #7,&$247
13825     BIS.B #$0F,&$224
13826     BIC.B #$0F,&$226
13827     BIS.B #4,&$20A
13828     BIC.B #4,&$20C
13829     MOV #RC5_INT,&$FFDE
13830 MOV #%01_0001_0100,&$340
13831     MOV ##3276,&$352
13832     MOV #%10000,&$342
13833     MOV #WDT_INT,&$FFEA
13834 BIC #1,&$130
13835 BIS.B #3,&$20D
13836 MOV &$1808,R8
13837 CMP #4,R8
13838 0= ?GOTO BW1
13839 COLON
13840     #1000 20_US
13841     %011 TOP_LCD
13842     #205 20_US
13843     %011 TOP_LCD
13844     #5 20_US
13845     %011 TOP_LCD
13846     #2 20_US
13847     %010 TOP_LCD
13848     #2 20_US
13849     %00101000 LCD_WRF
13850     %1000 LCD_WRF
13851     LCD_CLEAR
13852     %0110 LCD_WRF
13853     %1100 LCD_WRF
13854     LCD_CLEAR
13855     ['] LCD_HOME IS CR
13856     ['] LCD_WRC  IS EMIT
13857     CR ." I love you"
13858     ['] CR >BODY IS CR
13859     ['] EMIT >BODY IS EMIT
13860     ." RC5toLCD is running. Type STOP to quit"
13861     PWR_STATE ABORT
13862 ;
13863
13864 CODE START
13865 MOV #$4000,R9
13866 MOV #BACKGROUND,2(R9)
13867 MOV #WARM,R9
13868 MOV #SYS_INIT,2(R9)
13869 MOV R9,R0
13870 ENDCODE 
13871
13872 ECHO
13873             ; downloading RC5toLCD.4th is done
13874 RST_HERE    ; this app is protected against <reset>
13875
13876
13877 RST_STATE
13878
13879 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13880
13881 [UNDEFINED] MARKER [IF]
13882 : MARKER
13883 CREATE
13884 HI2LO
13885 MOV &$1DC8,0(R10)
13886 SUB #2,R8
13887 MOV R8,2(R10)
13888 ADD #4,&$1DC6
13889 LO2HI
13890 DOES>
13891 HI2LO
13892 MOV @R1+,R13
13893 MOV @R14+,&$180E
13894 MOV @R14,&$180C
13895 MOV @R15+,R14
13896 MOV #RST_STATE,R0
13897 ENDCODE
13898 [THEN]
13899
13900 MARKER {RC5TOLCD}
13901
13902 [UNDEFINED] @ [IF]
13903 CODE @
13904 MOV @R14,R14
13905 MOV @R13+,R0
13906 ENDCODE
13907 [THEN]
13908
13909 [UNDEFINED] CONSTANT [IF]
13910 : CONSTANT 
13911 CREATE
13912 HI2LO
13913 MOV R14,-2(R10)
13914 MOV @R15+,R14
13915 MOV @R1+,R13
13916 MOV @R13+,R0
13917 ENDCODE
13918 [THEN]
13919
13920 [UNDEFINED] STATE [IF]
13921 $1DBE CONSTANT STATE
13922 [THEN]
13923
13924 [UNDEFINED] = [IF]
13925 CODE =
13926 SUB @R15+,R14
13927 0<> IF
13928     AND #0,R14
13929     MOV @R13+,R0
13930 THEN
13931 XOR #-1,R14
13932 MOV @R13+,R0
13933 ENDCODE
13934 [THEN]
13935
13936 [UNDEFINED] IF [IF]
13937 CODE IF
13938 SUB #2,R15
13939 MOV R14,0(R15)
13940 MOV &$1DC6,R14
13941 ADD #4,&$1DC6
13942 MOV #$404C,0(R14)
13943 ADD #2,R14
13944 MOV @R13+,R0
13945 ENDCODE IMMEDIATE
13946 [THEN]
13947
13948 [UNDEFINED] THEN [IF]
13949 CODE THEN
13950 MOV &$1DC6,0(R14)
13951 MOV @R15+,R14
13952 MOV @R13+,R0
13953 ENDCODE IMMEDIATE
13954 [THEN]
13955
13956 [UNDEFINED] ELSE [IF]
13957 CODE ELSE
13958 ADD #4,&$1DC6
13959 MOV &$1DC6,R10
13960 MOV #$4048,-4(R10)
13961 MOV R10,0(R14)
13962 SUB #2,R10
13963 MOV R10,R14
13964 MOV @R13+,R0
13965 ENDCODE IMMEDIATE
13966 [THEN]
13967
13968 [UNDEFINED] DEFER [IF]
13969
13970 : DEFER
13971 CREATE
13972 HI2LO
13973 MOV #$4030,-4(R10)
13974 MOV #$402C,-2(R10)
13975 MOV @R1+,R13
13976 MOV @R13+,R0
13977 ENDCODE
13978 [THEN]
13979
13980 [UNDEFINED] DEFER! [IF]
13981 CODE DEFER!
13982 MOV @R15+,2(R14)
13983 MOV @R15+,R14
13984 MOV @R13+,R0
13985 ENDCODE
13986 [THEN]
13987
13988 [UNDEFINED] IS [IF]
13989 : IS
13990 STATE @
13991 IF  POSTPONE ['] POSTPONE DEFER! 
13992 ELSE ' DEFER! 
13993 THEN
13994 ; IMMEDIATE
13995 [THEN]
13996
13997 [UNDEFINED] >BODY [IF]
13998 CODE >BODY
13999 ADD #4,R14
14000 MOV @R13+,R0
14001 ENDCODE
14002 [THEN]
14003
14004
14005 CODE 20_US
14006 BEGIN
14007     BEGIN
14008         BIT #1,&$3C0
14009     0<> UNTIL
14010     BIC #1,&$3C0
14011     SUB #1,R14
14012 U< UNTIL
14013 MOV @R15+,R14
14014 MOV @R13+,R0
14015 ENDCODE
14016
14017 CODE TOP_LCD
14018     BIS.B #4,&$243
14019     BIT.B #1,&$241
14020 0= IF
14021     AND.B #$0F,R14
14022     MOV.B R14,&$222
14023     BIC.B #4,&$243
14024     MOV @R15+,R14
14025     MOV @R13+,R0
14026 THEN
14027     SUB #2,R15
14028     MOV R14,0(R15)
14029     BIC.B #4,&$243
14030     MOV.B &$220,R14
14031     AND.B #$0F,R14
14032     MOV @R13+,R0
14033 ENDCODE
14034
14035 CODE LCD_WRC
14036     BIS.B #2,&$243
14037 BW1 SUB #2,R15
14038     MOV R14,0(R15)
14039     RRUM #4,R14
14040     BIC.B #1,&$243
14041     BIS.B #$0F,&$224
14042 COLON
14043     TOP_LCD 2 20_US
14044     TOP_LCD 2 20_US 
14045 ;
14046
14047 CODE LCD_WRF
14048     BIC.B #2,&$243
14049     GOTO BW1
14050 ENDCODE
14051
14052 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14053 : LCD_HOME $02 LCD_WRF 100 20_us ;
14054
14055
14056
14057 ASM WDT_INT
14058 ADD #2,R1
14059 BIT.B #$20,&$240
14060 0= IF
14061     CMP #19,&$3D6
14062     U< IF
14063         ADD #1,&$3D6
14064     THEN
14065 ELSE
14066     BIT.B #$40,&$240
14067     0= IF
14068         CMP #3,&$3D6
14069         U>= IF
14070            SUB #1,&$3D6
14071         THEN
14072     THEN
14073 THEN
14074 BW1
14075 MOV @R1+,R0
14076 ENDASM
14077
14078 ASM RC5_INT
14079 ADD #2,R1
14080 $1806 @ 16000 = [IF]
14081     MOV #1,&$3A0
14082 [THEN]
14083 $1806 @ 24000 = [IF]
14084     MOV #2,&$3A0
14085 [THEN]
14086 MOV #1778,R9
14087 MOV #14,R10
14088 BEGIN
14089 MOV #%1011100100,&$380
14090     RRUM    #1,R9
14091     MOV     R9,R8
14092     RRUM    #1,R8
14093     ADD     R9,R8
14094     BEGIN   CMP R8,&$390
14095     U>= UNTIL
14096     BIT.B   #4,&$200
14097     ADDC    R11,R11
14098     MOV.B   &$200,&$208
14099     BIC.B   #4,&$20C
14100     SUB     #1,R10
14101 0<> WHILE
14102     ADD R9,R8
14103     BEGIN
14104         MOV &$390,R9
14105         CMP R8,R9
14106         U>= IF
14107         BIC #$30,&$380
14108         GOTO BW1
14109         THEN
14110         BIT.B #4,&$20C
14111     0<> UNTIL
14112 REPEAT
14113 BIC #$30,&$380
14114 RLAM    #1,R11
14115 MOV.B   R11,R9
14116 RRUM    #2,R9
14117 BIT     #$4000,R11
14118 0= IF   BIS #$40,R9
14119 THEN
14120 RRUM    #3,R11
14121 XOR     @R1,R11
14122 BIT     #$400,R11
14123 0= ?GOTO BW1
14124 XOR #$400,0(R1)
14125 SUB #8,R15
14126 MOV R14,6(R15)
14127 MOV &$1DDC,4(R15)
14128 MOV #$10,&$1DDC
14129 MOV R9,0(R15)
14130 MOV #0,R14
14131 LO2HI
14132     LCD_CLEAR
14133     <# # #S #36 HOLD #>
14134     ['] LCD_WRC IS EMIT
14135     TYPE
14136     ['] EMIT >BODY IS EMIT
14137 HI2LO
14138 MOV @R15+,&$1DDC
14139 MOV @R15+,R14
14140 MOV @R1+,R0
14141 ENDASM
14142
14143 ASM BACKGROUND
14144 BEGIN
14145     CALL &$1814
14146     BIS &$180A,R2
14147 AGAIN
14148 ENDASM
14149
14150 ASM SYS_OUT
14151     MOV #WARM,R9
14152     ADD #4,R9
14153     MOV R9,R0
14154 ENDASM
14155
14156 CODE STOP
14157 BW1 MOV #$4000,R9
14158     ADD #4,R9
14159     MOV R9,-2(R9)
14160     MOV #WARM,R9
14161     MOV #SYS_OUT,2(R9)
14162     BIC.B #4,&$20A
14163     BIC.B #4,&$20C
14164     MOV #0,&$3C0
14165     MOV #0,&$340
14166     MOV #0,&$342
14167     CALL #$400E
14168 COLON
14169 ECHO
14170 ." RC5toLCD is removed,"
14171 ."  type START to restart"
14172  WARM
14173 ;
14174
14175 CODE SYS_INIT
14176 MOV #%10_1101_0100,&$3C0
14177 $1806 @ 16000 = [IF]
14178     MOV #1,&$3E0
14179 [THEN]
14180 $1806 @ 24000 = [IF]
14181     MOV #2,&$3E0
14182 [THEN]
14183     MOV #19,&$3D2
14184 MOV #%0110_0000,&$3C6
14185     MOV #10,&$3D6
14186     BIS.B #$20,&$204
14187     BIS.B #$20,&$20A
14188     BIS.B #7,&$245
14189     BIC.B #7,&$247
14190     BIS.B #$0F,&$224
14191     BIC.B #$0F,&$226
14192     BIS.B #4,&$20A
14193     BIC.B #4,&$20C
14194     MOV #RC5_INT,&$FFDE
14195 MOV #%01_0001_0100,&$340
14196     MOV ##3276,&$352
14197     MOV #%10000,&$342
14198     MOV #WDT_INT,&$FFEA
14199 BIC #1,&$130
14200 BIS.B #3,&$20D
14201 MOV &$1808,R8
14202 CMP #4,R8
14203 0= ?GOTO BW1
14204 COLON
14205     #1000 20_US
14206     %011 TOP_LCD
14207     #205 20_US
14208     %011 TOP_LCD
14209     #5 20_US
14210     %011 TOP_LCD
14211     #2 20_US
14212     %010 TOP_LCD
14213     #2 20_US
14214     %00101000 LCD_WRF
14215     %1000 LCD_WRF
14216     LCD_CLEAR
14217     %0110 LCD_WRF
14218     %1100 LCD_WRF
14219     LCD_CLEAR
14220     ['] LCD_HOME IS CR
14221     ['] LCD_WRC  IS EMIT
14222     CR ." I love you"
14223     ['] CR >BODY IS CR
14224     ['] EMIT >BODY IS EMIT
14225     ." RC5toLCD is running. Type STOP to quit"
14226     PWR_STATE ABORT
14227 ;
14228
14229 CODE START
14230 MOV #$4000,R9
14231 MOV #BACKGROUND,2(R9)
14232 MOV #WARM,R9
14233 MOV #SYS_INIT,2(R9)
14234 MOV R9,R0
14235 ENDCODE 
14236
14237 ECHO
14238             ; downloading RC5toLCD.4th is done
14239 RST_HERE    ; this app is protected against <reset>
14240
14241
14242 RST_STATE
14243
14244 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14245
14246 [UNDEFINED] MARKER [IF]
14247 : MARKER
14248 CREATE
14249 HI2LO
14250 MOV &$1DC8,0(R10)
14251 SUB #2,R8
14252 MOV R8,2(R10)
14253 ADD #4,&$1DC6
14254 LO2HI
14255 DOES>
14256 HI2LO
14257 MOV @R1+,R13
14258 MOV @R14+,&$180E
14259 MOV @R14,&$180C
14260 MOV @R15+,R14
14261 MOV #RST_STATE,R0
14262 ENDCODE
14263 [THEN]
14264
14265 MARKER {RC5TOLCD}
14266
14267 [UNDEFINED] @ [IF]
14268 CODE @
14269 MOV @R14,R14
14270 MOV @R13+,R0
14271 ENDCODE
14272 [THEN]
14273
14274 [UNDEFINED] CONSTANT [IF]
14275 : CONSTANT 
14276 CREATE
14277 HI2LO
14278 MOV R14,-2(R10)
14279 MOV @R15+,R14
14280 MOV @R1+,R13
14281 MOV @R13+,R0
14282 ENDCODE
14283 [THEN]
14284
14285 [UNDEFINED] STATE [IF]
14286 $1DBE CONSTANT STATE
14287 [THEN]
14288
14289 [UNDEFINED] = [IF]
14290 CODE =
14291 SUB @R15+,R14
14292 0<> IF
14293     AND #0,R14
14294     MOV @R13+,R0
14295 THEN
14296 XOR #-1,R14
14297 MOV @R13+,R0
14298 ENDCODE
14299 [THEN]
14300
14301 [UNDEFINED] IF [IF]
14302 CODE IF
14303 SUB #2,R15
14304 MOV R14,0(R15)
14305 MOV &$1DC6,R14
14306 ADD #4,&$1DC6
14307 MOV #$404C,0(R14)
14308 ADD #2,R14
14309 MOV @R13+,R0
14310 ENDCODE IMMEDIATE
14311 [THEN]
14312
14313 [UNDEFINED] THEN [IF]
14314 CODE THEN
14315 MOV &$1DC6,0(R14)
14316 MOV @R15+,R14
14317 MOV @R13+,R0
14318 ENDCODE IMMEDIATE
14319 [THEN]
14320
14321 [UNDEFINED] ELSE [IF]
14322 CODE ELSE
14323 ADD #4,&$1DC6
14324 MOV &$1DC6,R10
14325 MOV #$4048,-4(R10)
14326 MOV R10,0(R14)
14327 SUB #2,R10
14328 MOV R10,R14
14329 MOV @R13+,R0
14330 ENDCODE IMMEDIATE
14331 [THEN]
14332
14333 [UNDEFINED] DEFER [IF]
14334
14335 : DEFER
14336 CREATE
14337 HI2LO
14338 MOV #$4030,-4(R10)
14339 MOV #$402C,-2(R10)
14340 MOV @R1+,R13
14341 MOV @R13+,R0
14342 ENDCODE
14343 [THEN]
14344
14345 [UNDEFINED] DEFER! [IF]
14346 CODE DEFER!
14347 MOV @R15+,2(R14)
14348 MOV @R15+,R14
14349 MOV @R13+,R0
14350 ENDCODE
14351 [THEN]
14352
14353 [UNDEFINED] IS [IF]
14354 : IS
14355 STATE @
14356 IF  POSTPONE ['] POSTPONE DEFER! 
14357 ELSE ' DEFER! 
14358 THEN
14359 ; IMMEDIATE
14360 [THEN]
14361
14362 [UNDEFINED] >BODY [IF]
14363 CODE >BODY
14364 ADD #4,R14
14365 MOV @R13+,R0
14366 ENDCODE
14367 [THEN]
14368
14369
14370 CODE 20_US
14371 BEGIN
14372     BEGIN
14373         BIT #1,&$3C0
14374     0<> UNTIL
14375     BIC #1,&$3C0
14376     SUB #1,R14
14377 U< UNTIL
14378 MOV @R15+,R14
14379 MOV @R13+,R0
14380 ENDCODE
14381
14382 CODE TOP_LCD
14383     BIS.B #4,&$243
14384     BIT.B #1,&$241
14385 0= IF
14386     AND.B #$0F,R14
14387     MOV.B R14,&$222
14388     BIC.B #4,&$243
14389     MOV @R15+,R14
14390     MOV @R13+,R0
14391 THEN
14392     SUB #2,R15
14393     MOV R14,0(R15)
14394     BIC.B #4,&$243
14395     MOV.B &$220,R14
14396     AND.B #$0F,R14
14397     MOV @R13+,R0
14398 ENDCODE
14399
14400 CODE LCD_WRC
14401     BIS.B #2,&$243
14402 BW1 SUB #2,R15
14403     MOV R14,0(R15)
14404     RRUM #4,R14
14405     BIC.B #1,&$243
14406     BIS.B #$0F,&$224
14407 COLON
14408     TOP_LCD 2 20_US
14409     TOP_LCD 2 20_US 
14410 ;
14411
14412 CODE LCD_WRF
14413     BIC.B #2,&$243
14414     GOTO BW1
14415 ENDCODE
14416
14417 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14418 : LCD_HOME $02 LCD_WRF 100 20_us ;
14419
14420
14421
14422 ASM WDT_INT
14423 ADD #2,R1
14424 BIT.B #$20,&$240
14425 0= IF
14426     CMP #19,&$3D6
14427     U< IF
14428         ADD #1,&$3D6
14429     THEN
14430 ELSE
14431     BIT.B #$40,&$240
14432     0= IF
14433         CMP #3,&$3D6
14434         U>= IF
14435            SUB #1,&$3D6
14436         THEN
14437     THEN
14438 THEN
14439 BW1
14440 MOV @R1+,R0
14441 ENDASM
14442
14443 ASM RC5_INT
14444 ADD #2,R1
14445 $1806 @ 16000 = [IF]
14446     MOV #1,&$3A0
14447 [THEN]
14448 $1806 @ 24000 = [IF]
14449     MOV #2,&$3A0
14450 [THEN]
14451 MOV #1778,R9
14452 MOV #14,R10
14453 BEGIN
14454 MOV #%1011100100,&$380
14455     RRUM    #1,R9
14456     MOV     R9,R8
14457     RRUM    #1,R8
14458     ADD     R9,R8
14459     BEGIN   CMP R8,&$390
14460     U>= UNTIL
14461     BIT.B   #4,&$200
14462     ADDC    R11,R11
14463     MOV.B   &$200,&$208
14464     BIC.B   #4,&$20C
14465     SUB     #1,R10
14466 0<> WHILE
14467     ADD R9,R8
14468     BEGIN
14469         MOV &$390,R9
14470         CMP R8,R9
14471         U>= IF
14472         BIC #$30,&$380
14473         GOTO BW1
14474         THEN
14475         BIT.B #4,&$20C
14476     0<> UNTIL
14477 REPEAT
14478 BIC #$30,&$380
14479 RLAM    #1,R11
14480 MOV.B   R11,R9
14481 RRUM    #2,R9
14482 BIT     #$4000,R11
14483 0= IF   BIS #$40,R9
14484 THEN
14485 RRUM    #3,R11
14486 XOR     @R1,R11
14487 BIT     #$400,R11
14488 0= ?GOTO BW1
14489 XOR #$400,0(R1)
14490 SUB #8,R15
14491 MOV R14,6(R15)
14492 MOV &$1DDC,4(R15)
14493 MOV #$10,&$1DDC
14494 MOV R9,0(R15)
14495 MOV #0,R14
14496 LO2HI
14497     LCD_CLEAR
14498     <# # #S #36 HOLD #>
14499     ['] LCD_WRC IS EMIT
14500     TYPE
14501     ['] EMIT >BODY IS EMIT
14502 HI2LO
14503 MOV @R15+,&$1DDC
14504 MOV @R15+,R14
14505 MOV @R1+,R0
14506 ENDASM
14507
14508 ASM BACKGROUND
14509 BEGIN
14510     CALL &$1814
14511     BIS &$180A,R2
14512 AGAIN
14513 ENDASM
14514
14515 ASM SYS_OUT
14516     MOV #WARM,R9
14517     ADD #4,R9
14518     MOV R9,R0
14519 ENDASM
14520
14521 CODE STOP
14522 BW1 MOV #$4000,R9
14523     ADD #4,R9
14524     MOV R9,-2(R9)
14525     MOV #WARM,R9
14526     MOV #SYS_OUT,2(R9)
14527     BIC.B #4,&$20A
14528     BIC.B #4,&$20C
14529     MOV #0,&$3C0
14530     MOV #0,&$340
14531     MOV #0,&$342
14532     CALL #$400E
14533 COLON
14534 ECHO
14535 ." RC5toLCD is removed,"
14536 ."  type START to restart"
14537  WARM
14538 ;
14539
14540 CODE SYS_INIT
14541 MOV #%10_1101_0100,&$3C0
14542 $1806 @ 16000 = [IF]
14543     MOV #1,&$3E0
14544 [THEN]
14545 $1806 @ 24000 = [IF]
14546     MOV #2,&$3E0
14547 [THEN]
14548     MOV #19,&$3D2
14549 MOV #%0110_0000,&$3C6
14550     MOV #10,&$3D6
14551     BIS.B #$20,&$204
14552     BIS.B #$20,&$20A
14553     BIS.B #7,&$245
14554     BIC.B #7,&$247
14555     BIS.B #$0F,&$224
14556     BIC.B #$0F,&$226
14557     BIS.B #4,&$20A
14558     BIC.B #4,&$20C
14559     MOV #RC5_INT,&$FFDE
14560 MOV #%01_0001_0100,&$340
14561     MOV ##3276,&$352
14562     MOV #%10000,&$342
14563     MOV #WDT_INT,&$FFEA
14564 BIC #1,&$130
14565 BIS.B #3,&$20D
14566 MOV &$1808,R8
14567 CMP #4,R8
14568 0= ?GOTO BW1
14569 COLON
14570     #1000 20_US
14571     %011 TOP_LCD
14572     #205 20_US
14573     %011 TOP_LCD
14574     #5 20_US
14575     %011 TOP_LCD
14576     #2 20_US
14577     %010 TOP_LCD
14578     #2 20_US
14579     %00101000 LCD_WRF
14580     %1000 LCD_WRF
14581     LCD_CLEAR
14582     %0110 LCD_WRF
14583     %1100 LCD_WRF
14584     LCD_CLEAR
14585     ['] LCD_HOME IS CR
14586     ['] LCD_WRC  IS EMIT
14587     CR ." I love you"
14588     ['] CR >BODY IS CR
14589     ['] EMIT >BODY IS EMIT
14590     ." RC5toLCD is running. Type STOP to quit"
14591     PWR_STATE ABORT
14592 ;
14593
14594 CODE START
14595 MOV #$4000,R9
14596 MOV #BACKGROUND,2(R9)
14597 MOV #WARM,R9
14598 MOV #SYS_INIT,2(R9)
14599 MOV R9,R0
14600 ENDCODE 
14601
14602 ECHO
14603             ; downloading RC5toLCD.4th is done
14604 RST_HERE    ; this app is protected against <reset>
14605
14606
14607 RST_STATE
14608
14609 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14610
14611 [UNDEFINED] MARKER [IF]
14612 : MARKER
14613 CREATE
14614 HI2LO
14615 MOV &$1DC8,0(R10)
14616 SUB #2,R8
14617 MOV R8,2(R10)
14618 ADD #4,&$1DC6
14619 LO2HI
14620 DOES>
14621 HI2LO
14622 MOV @R1+,R13
14623 MOV @R14+,&$180E
14624 MOV @R14,&$180C
14625 MOV @R15+,R14
14626 MOV #RST_STATE,R0
14627 ENDCODE
14628 [THEN]
14629
14630 MARKER {RC5TOLCD}
14631
14632 [UNDEFINED] @ [IF]
14633 CODE @
14634 MOV @R14,R14
14635 MOV @R13+,R0
14636 ENDCODE
14637 [THEN]
14638
14639 [UNDEFINED] CONSTANT [IF]
14640 : CONSTANT 
14641 CREATE
14642 HI2LO
14643 MOV R14,-2(R10)
14644 MOV @R15+,R14
14645 MOV @R1+,R13
14646 MOV @R13+,R0
14647 ENDCODE
14648 [THEN]
14649
14650 [UNDEFINED] STATE [IF]
14651 $1DBE CONSTANT STATE
14652 [THEN]
14653
14654 [UNDEFINED] = [IF]
14655 CODE =
14656 SUB @R15+,R14
14657 0<> IF
14658     AND #0,R14
14659     MOV @R13+,R0
14660 THEN
14661 XOR #-1,R14
14662 MOV @R13+,R0
14663 ENDCODE
14664 [THEN]
14665
14666 [UNDEFINED] IF [IF]
14667 CODE IF
14668 SUB #2,R15
14669 MOV R14,0(R15)
14670 MOV &$1DC6,R14
14671 ADD #4,&$1DC6
14672 MOV #$404C,0(R14)
14673 ADD #2,R14
14674 MOV @R13+,R0
14675 ENDCODE IMMEDIATE
14676 [THEN]
14677
14678 [UNDEFINED] THEN [IF]
14679 CODE THEN
14680 MOV &$1DC6,0(R14)
14681 MOV @R15+,R14
14682 MOV @R13+,R0
14683 ENDCODE IMMEDIATE
14684 [THEN]
14685
14686 [UNDEFINED] ELSE [IF]
14687 CODE ELSE
14688 ADD #4,&$1DC6
14689 MOV &$1DC6,R10
14690 MOV #$4048,-4(R10)
14691 MOV R10,0(R14)
14692 SUB #2,R10
14693 MOV R10,R14
14694 MOV @R13+,R0
14695 ENDCODE IMMEDIATE
14696 [THEN]
14697
14698 [UNDEFINED] DEFER [IF]
14699
14700 : DEFER
14701 CREATE
14702 HI2LO
14703 MOV #$4030,-4(R10)
14704 MOV #$402C,-2(R10)
14705 MOV @R1+,R13
14706 MOV @R13+,R0
14707 ENDCODE
14708 [THEN]
14709
14710 [UNDEFINED] DEFER! [IF]
14711 CODE DEFER!
14712 MOV @R15+,2(R14)
14713 MOV @R15+,R14
14714 MOV @R13+,R0
14715 ENDCODE
14716 [THEN]
14717
14718 [UNDEFINED] IS [IF]
14719 : IS
14720 STATE @
14721 IF  POSTPONE ['] POSTPONE DEFER! 
14722 ELSE ' DEFER! 
14723 THEN
14724 ; IMMEDIATE
14725 [THEN]
14726
14727 [UNDEFINED] >BODY [IF]
14728 CODE >BODY
14729 ADD #4,R14
14730 MOV @R13+,R0
14731 ENDCODE
14732 [THEN]
14733
14734
14735 CODE 20_US
14736 BEGIN
14737     BEGIN
14738         BIT #1,&$3C0
14739     0<> UNTIL
14740     BIC #1,&$3C0
14741     SUB #1,R14
14742 U< UNTIL
14743 MOV @R15+,R14
14744 MOV @R13+,R0
14745 ENDCODE
14746
14747 CODE TOP_LCD
14748     BIS.B #4,&$243
14749     BIT.B #1,&$241
14750 0= IF
14751     AND.B #$0F,R14
14752     MOV.B R14,&$222
14753     BIC.B #4,&$243
14754     MOV @R15+,R14
14755     MOV @R13+,R0
14756 THEN
14757     SUB #2,R15
14758     MOV R14,0(R15)
14759     BIC.B #4,&$243
14760     MOV.B &$220,R14
14761     AND.B #$0F,R14
14762     MOV @R13+,R0
14763 ENDCODE
14764
14765 CODE LCD_WRC
14766     BIS.B #2,&$243
14767 BW1 SUB #2,R15
14768     MOV R14,0(R15)
14769     RRUM #4,R14
14770     BIC.B #1,&$243
14771     BIS.B #$0F,&$224
14772 COLON
14773     TOP_LCD 2 20_US
14774     TOP_LCD 2 20_US 
14775 ;
14776
14777 CODE LCD_WRF
14778     BIC.B #2,&$243
14779     GOTO BW1
14780 ENDCODE
14781
14782 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14783 : LCD_HOME $02 LCD_WRF 100 20_us ;
14784
14785
14786
14787 ASM WDT_INT
14788 ADD #2,R1
14789 BIT.B #$20,&$240
14790 0= IF
14791     CMP #19,&$3D6
14792     U< IF
14793         ADD #1,&$3D6
14794     THEN
14795 ELSE
14796     BIT.B #$40,&$240
14797     0= IF
14798         CMP #3,&$3D6
14799         U>= IF
14800            SUB #1,&$3D6
14801         THEN
14802     THEN
14803 THEN
14804 BW1
14805 MOV @R1+,R0
14806 ENDASM
14807
14808 ASM RC5_INT
14809 ADD #2,R1
14810 $1806 @ 16000 = [IF]
14811     MOV #1,&$3A0
14812 [THEN]
14813 $1806 @ 24000 = [IF]
14814     MOV #2,&$3A0
14815 [THEN]
14816 MOV #1778,R9
14817 MOV #14,R10
14818 BEGIN
14819 MOV #%1011100100,&$380
14820     RRUM    #1,R9
14821     MOV     R9,R8
14822     RRUM    #1,R8
14823     ADD     R9,R8
14824     BEGIN   CMP R8,&$390
14825     U>= UNTIL
14826     BIT.B   #4,&$200
14827     ADDC    R11,R11
14828     MOV.B   &$200,&$208
14829     BIC.B   #4,&$20C
14830     SUB     #1,R10
14831 0<> WHILE
14832     ADD R9,R8
14833     BEGIN
14834         MOV &$390,R9
14835         CMP R8,R9
14836         U>= IF
14837         BIC #$30,&$380
14838         GOTO BW1
14839         THEN
14840         BIT.B #4,&$20C
14841     0<> UNTIL
14842 REPEAT
14843 BIC #$30,&$380
14844 RLAM    #1,R11
14845 MOV.B   R11,R9
14846 RRUM    #2,R9
14847 BIT     #$4000,R11
14848 0= IF   BIS #$40,R9
14849 THEN
14850 RRUM    #3,R11
14851 XOR     @R1,R11
14852 BIT     #$400,R11
14853 0= ?GOTO BW1
14854 XOR #$400,0(R1)
14855 SUB #8,R15
14856 MOV R14,6(R15)
14857 MOV &$1DDC,4(R15)
14858 MOV #$10,&$1DDC
14859 MOV R9,0(R15)
14860 MOV #0,R14
14861 LO2HI
14862     LCD_CLEAR
14863     <# # #S #36 HOLD #>
14864     ['] LCD_WRC IS EMIT
14865     TYPE
14866     ['] EMIT >BODY IS EMIT
14867 HI2LO
14868 MOV @R15+,&$1DDC
14869 MOV @R15+,R14
14870 MOV @R1+,R0
14871 ENDASM
14872
14873 ASM BACKGROUND
14874 BEGIN
14875     CALL &$1814
14876     BIS &$180A,R2
14877 AGAIN
14878 ENDASM
14879
14880 ASM SYS_OUT
14881     MOV #WARM,R9
14882     ADD #4,R9
14883     MOV R9,R0
14884 ENDASM
14885
14886 CODE STOP
14887 BW1 MOV #$4000,R9
14888     ADD #4,R9
14889     MOV R9,-2(R9)
14890     MOV #WARM,R9
14891     MOV #SYS_OUT,2(R9)
14892     BIC.B #4,&$20A
14893     BIC.B #4,&$20C
14894     MOV #0,&$3C0
14895     MOV #0,&$340
14896     MOV #0,&$342
14897     CALL #$400E
14898 COLON
14899 ECHO
14900 ." RC5toLCD is removed,"
14901 ."  type START to restart"
14902  WARM
14903 ;
14904
14905 CODE SYS_INIT
14906 MOV #%10_1101_0100,&$3C0
14907 $1806 @ 16000 = [IF]
14908     MOV #1,&$3E0
14909 [THEN]
14910 $1806 @ 24000 = [IF]
14911     MOV #2,&$3E0
14912 [THEN]
14913     MOV #19,&$3D2
14914 MOV #%0110_0000,&$3C6
14915     MOV #10,&$3D6
14916     BIS.B #$20,&$204
14917     BIS.B #$20,&$20A
14918     BIS.B #7,&$245
14919     BIC.B #7,&$247
14920     BIS.B #$0F,&$224
14921     BIC.B #$0F,&$226
14922     BIS.B #4,&$20A
14923     BIC.B #4,&$20C
14924     MOV #RC5_INT,&$FFDE
14925 MOV #%01_0001_0100,&$340
14926     MOV ##3276,&$352
14927     MOV #%10000,&$342
14928     MOV #WDT_INT,&$FFEA
14929 BIC #1,&$130
14930 BIS.B #3,&$20D
14931 MOV &$1808,R8
14932 CMP #4,R8
14933 0= ?GOTO BW1
14934 COLON
14935     #1000 20_US
14936     %011 TOP_LCD
14937     #205 20_US
14938     %011 TOP_LCD
14939     #5 20_US
14940     %011 TOP_LCD
14941     #2 20_US
14942     %010 TOP_LCD
14943     #2 20_US
14944     %00101000 LCD_WRF
14945     %1000 LCD_WRF
14946     LCD_CLEAR
14947     %0110 LCD_WRF
14948     %1100 LCD_WRF
14949     LCD_CLEAR
14950     ['] LCD_HOME IS CR
14951     ['] LCD_WRC  IS EMIT
14952     CR ." I love you"
14953     ['] CR >BODY IS CR
14954     ['] EMIT >BODY IS EMIT
14955     ." RC5toLCD is running. Type STOP to quit"
14956     PWR_STATE ABORT
14957 ;
14958
14959 CODE START
14960 MOV #$4000,R9
14961 MOV #BACKGROUND,2(R9)
14962 MOV #WARM,R9
14963 MOV #SYS_INIT,2(R9)
14964 MOV R9,R0
14965 ENDCODE 
14966
14967 ECHO
14968             ; downloading RC5toLCD.4th is done
14969 RST_HERE    ; this app is protected against <reset>
14970
14971
14972 RST_STATE
14973
14974 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14975
14976 [UNDEFINED] MARKER [IF]
14977 : MARKER
14978 CREATE
14979 HI2LO
14980 MOV &$1DC8,0(R10)
14981 SUB #2,R8
14982 MOV R8,2(R10)
14983 ADD #4,&$1DC6
14984 LO2HI
14985 DOES>
14986 HI2LO
14987 MOV @R1+,R13
14988 MOV @R14+,&$180E
14989 MOV @R14,&$180C
14990 MOV @R15+,R14
14991 MOV #RST_STATE,R0
14992 ENDCODE
14993 [THEN]
14994
14995 MARKER {RC5TOLCD}
14996
14997 [UNDEFINED] @ [IF]
14998 CODE @
14999 MOV @R14,R14
15000 MOV @R13+,R0
15001 ENDCODE
15002 [THEN]
15003
15004 [UNDEFINED] CONSTANT [IF]
15005 : CONSTANT 
15006 CREATE
15007 HI2LO
15008 MOV R14,-2(R10)
15009 MOV @R15+,R14
15010 MOV @R1+,R13
15011 MOV @R13+,R0
15012 ENDCODE
15013 [THEN]
15014
15015 [UNDEFINED] STATE [IF]
15016 $1DBE CONSTANT STATE
15017 [THEN]
15018
15019 [UNDEFINED] = [IF]
15020 CODE =
15021 SUB @R15+,R14
15022 0<> IF
15023     AND #0,R14
15024     MOV @R13+,R0
15025 THEN
15026 XOR #-1,R14
15027 MOV @R13+,R0
15028 ENDCODE
15029 [THEN]
15030
15031 [UNDEFINED] IF [IF]
15032 CODE IF
15033 SUB #2,R15
15034 MOV R14,0(R15)
15035 MOV &$1DC6,R14
15036 ADD #4,&$1DC6
15037 MOV #$404C,0(R14)
15038 ADD #2,R14
15039 MOV @R13+,R0
15040 ENDCODE IMMEDIATE
15041 [THEN]
15042
15043 [UNDEFINED] THEN [IF]
15044 CODE THEN
15045 MOV &$1DC6,0(R14)
15046 MOV @R15+,R14
15047 MOV @R13+,R0
15048 ENDCODE IMMEDIATE
15049 [THEN]
15050
15051 [UNDEFINED] ELSE [IF]
15052 CODE ELSE
15053 ADD #4,&$1DC6
15054 MOV &$1DC6,R10
15055 MOV #$4048,-4(R10)
15056 MOV R10,0(R14)
15057 SUB #2,R10
15058 MOV R10,R14
15059 MOV @R13+,R0
15060 ENDCODE IMMEDIATE
15061 [THEN]
15062
15063 [UNDEFINED] DEFER [IF]
15064
15065 : DEFER
15066 CREATE
15067 HI2LO
15068 MOV #$4030,-4(R10)
15069 MOV #$402C,-2(R10)
15070 MOV @R1+,R13
15071 MOV @R13+,R0
15072 ENDCODE
15073 [THEN]
15074
15075 [UNDEFINED] DEFER! [IF]
15076 CODE DEFER!
15077 MOV @R15+,2(R14)
15078 MOV @R15+,R14
15079 MOV @R13+,R0
15080 ENDCODE
15081 [THEN]
15082
15083 [UNDEFINED] IS [IF]
15084 : IS
15085 STATE @
15086 IF  POSTPONE ['] POSTPONE DEFER! 
15087 ELSE ' DEFER! 
15088 THEN
15089 ; IMMEDIATE
15090 [THEN]
15091
15092 [UNDEFINED] >BODY [IF]
15093 CODE >BODY
15094 ADD #4,R14
15095 MOV @R13+,R0
15096 ENDCODE
15097 [THEN]
15098
15099
15100 CODE 20_US
15101 BEGIN
15102     BEGIN
15103         BIT #1,&$3C0
15104     0<> UNTIL
15105     BIC #1,&$3C0
15106     SUB #1,R14
15107 U< UNTIL
15108 MOV @R15+,R14
15109 MOV @R13+,R0
15110 ENDCODE
15111
15112 CODE TOP_LCD
15113     BIS.B #4,&$243
15114     BIT.B #1,&$241
15115 0= IF
15116     AND.B #$0F,R14
15117     MOV.B R14,&$222
15118     BIC.B #4,&$243
15119     MOV @R15+,R14
15120     MOV @R13+,R0
15121 THEN
15122     SUB #2,R15
15123     MOV R14,0(R15)
15124     BIC.B #4,&$243
15125     MOV.B &$220,R14
15126     AND.B #$0F,R14
15127     MOV @R13+,R0
15128 ENDCODE
15129
15130 CODE LCD_WRC
15131     BIS.B #2,&$243
15132 BW1 SUB #2,R15
15133     MOV R14,0(R15)
15134     RRUM #4,R14
15135     BIC.B #1,&$243
15136     BIS.B #$0F,&$224
15137 COLON
15138     TOP_LCD 2 20_US
15139     TOP_LCD 2 20_US 
15140 ;
15141
15142 CODE LCD_WRF
15143     BIC.B #2,&$243
15144     GOTO BW1
15145 ENDCODE
15146
15147 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15148 : LCD_HOME $02 LCD_WRF 100 20_us ;
15149
15150
15151
15152 ASM WDT_INT
15153 ADD #2,R1
15154 BIT.B #$20,&$240
15155 0= IF
15156     CMP #19,&$3D6
15157     U< IF
15158         ADD #1,&$3D6
15159     THEN
15160 ELSE
15161     BIT.B #$40,&$240
15162     0= IF
15163         CMP #3,&$3D6
15164         U>= IF
15165            SUB #1,&$3D6
15166         THEN
15167     THEN
15168 THEN
15169 BW1
15170 MOV @R1+,R0
15171 ENDASM
15172
15173 ASM RC5_INT
15174 ADD #2,R1
15175 $1806 @ 16000 = [IF]
15176     MOV #1,&$3A0
15177 [THEN]
15178 $1806 @ 24000 = [IF]
15179     MOV #2,&$3A0
15180 [THEN]
15181 MOV #1778,R9
15182 MOV #14,R10
15183 BEGIN
15184 MOV #%1011100100,&$380
15185     RRUM    #1,R9
15186     MOV     R9,R8
15187     RRUM    #1,R8
15188     ADD     R9,R8
15189     BEGIN   CMP R8,&$390
15190     U>= UNTIL
15191     BIT.B   #4,&$200
15192     ADDC    R11,R11
15193     MOV.B   &$200,&$208
15194     BIC.B   #4,&$20C
15195     SUB     #1,R10
15196 0<> WHILE
15197     ADD R9,R8
15198     BEGIN
15199         MOV &$390,R9
15200         CMP R8,R9
15201         U>= IF
15202         BIC #$30,&$380
15203         GOTO BW1
15204         THEN
15205         BIT.B #4,&$20C
15206     0<> UNTIL
15207 REPEAT
15208 BIC #$30,&$380
15209 RLAM    #1,R11
15210 MOV.B   R11,R9
15211 RRUM    #2,R9
15212 BIT     #$4000,R11
15213 0= IF   BIS #$40,R9
15214 THEN
15215 RRUM    #3,R11
15216 XOR     @R1,R11
15217 BIT     #$400,R11
15218 0= ?GOTO BW1
15219 XOR #$400,0(R1)
15220 SUB #8,R15
15221 MOV R14,6(R15)
15222 MOV &$1DDC,4(R15)
15223 MOV #$10,&$1DDC
15224 MOV R9,0(R15)
15225 MOV #0,R14
15226 LO2HI
15227     LCD_CLEAR
15228     <# # #S #36 HOLD #>
15229     ['] LCD_WRC IS EMIT
15230     TYPE
15231     ['] EMIT >BODY IS EMIT
15232 HI2LO
15233 MOV @R15+,&$1DDC
15234 MOV @R15+,R14
15235 MOV @R1+,R0
15236 ENDASM
15237
15238 ASM BACKGROUND
15239 BEGIN
15240     CALL &$1814
15241     BIS &$180A,R2
15242 AGAIN
15243 ENDASM
15244
15245 ASM SYS_OUT
15246     MOV #WARM,R9
15247     ADD #4,R9
15248     MOV R9,R0
15249 ENDASM
15250
15251 CODE STOP
15252 BW1 MOV #$4000,R9
15253     ADD #4,R9
15254     MOV R9,-2(R9)
15255     MOV #WARM,R9
15256     MOV #SYS_OUT,2(R9)
15257     BIC.B #4,&$20A
15258     BIC.B #4,&$20C
15259     MOV #0,&$3C0
15260     MOV #0,&$340
15261     MOV #0,&$342
15262     CALL #$400E
15263 COLON
15264 ECHO
15265 ." RC5toLCD is removed,"
15266 ."  type START to restart"
15267  WARM
15268 ;
15269
15270 CODE SYS_INIT
15271 MOV #%10_1101_0100,&$3C0
15272 $1806 @ 16000 = [IF]
15273     MOV #1,&$3E0
15274 [THEN]
15275 $1806 @ 24000 = [IF]
15276     MOV #2,&$3E0
15277 [THEN]
15278     MOV #19,&$3D2
15279 MOV #%0110_0000,&$3C6
15280     MOV #10,&$3D6
15281     BIS.B #$20,&$204
15282     BIS.B #$20,&$20A
15283     BIS.B #7,&$245
15284     BIC.B #7,&$247
15285     BIS.B #$0F,&$224
15286     BIC.B #$0F,&$226
15287     BIS.B #4,&$20A
15288     BIC.B #4,&$20C
15289     MOV #RC5_INT,&$FFDE
15290 MOV #%01_0001_0100,&$340
15291     MOV ##3276,&$352
15292     MOV #%10000,&$342
15293     MOV #WDT_INT,&$FFEA
15294 BIC #1,&$130
15295 BIS.B #3,&$20D
15296 MOV &$1808,R8
15297 CMP #4,R8
15298 0= ?GOTO BW1
15299 COLON
15300     #1000 20_US
15301     %011 TOP_LCD
15302     #205 20_US
15303     %011 TOP_LCD
15304     #5 20_US
15305     %011 TOP_LCD
15306     #2 20_US
15307     %010 TOP_LCD
15308     #2 20_US
15309     %00101000 LCD_WRF
15310     %1000 LCD_WRF
15311     LCD_CLEAR
15312     %0110 LCD_WRF
15313     %1100 LCD_WRF
15314     LCD_CLEAR
15315     ['] LCD_HOME IS CR
15316     ['] LCD_WRC  IS EMIT
15317     CR ." I love you"
15318     ['] CR >BODY IS CR
15319     ['] EMIT >BODY IS EMIT
15320     ." RC5toLCD is running. Type STOP to quit"
15321     PWR_STATE ABORT
15322 ;
15323
15324 CODE START
15325 MOV #$4000,R9
15326 MOV #BACKGROUND,2(R9)
15327 MOV #WARM,R9
15328 MOV #SYS_INIT,2(R9)
15329 MOV R9,R0
15330 ENDCODE 
15331
15332 ECHO
15333             ; downloading RC5toLCD.4th is done
15334 RST_HERE    ; this app is protected against <reset>
15335
15336
15337 RST_STATE
15338
15339 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15340
15341 [UNDEFINED] MARKER [IF]
15342 : MARKER
15343 CREATE
15344 HI2LO
15345 MOV &$1DC8,0(R10)
15346 SUB #2,R8
15347 MOV R8,2(R10)
15348 ADD #4,&$1DC6
15349 LO2HI
15350 DOES>
15351 HI2LO
15352 MOV @R1+,R13
15353 MOV @R14+,&$180E
15354 MOV @R14,&$180C
15355 MOV @R15+,R14
15356 MOV #RST_STATE,R0
15357 ENDCODE
15358 [THEN]
15359
15360 MARKER {RC5TOLCD}
15361
15362 [UNDEFINED] @ [IF]
15363 CODE @
15364 MOV @R14,R14
15365 MOV @R13+,R0
15366 ENDCODE
15367 [THEN]
15368
15369 [UNDEFINED] CONSTANT [IF]
15370 : CONSTANT 
15371 CREATE
15372 HI2LO
15373 MOV R14,-2(R10)
15374 MOV @R15+,R14
15375 MOV @R1+,R13
15376 MOV @R13+,R0
15377 ENDCODE
15378 [THEN]
15379
15380 [UNDEFINED] STATE [IF]
15381 $1DBE CONSTANT STATE
15382 [THEN]
15383
15384 [UNDEFINED] = [IF]
15385 CODE =
15386 SUB @R15+,R14
15387 0<> IF
15388     AND #0,R14
15389     MOV @R13+,R0
15390 THEN
15391 XOR #-1,R14
15392 MOV @R13+,R0
15393 ENDCODE
15394 [THEN]
15395
15396 [UNDEFINED] IF [IF]
15397 CODE IF
15398 SUB #2,R15
15399 MOV R14,0(R15)
15400 MOV &$1DC6,R14
15401 ADD #4,&$1DC6
15402 MOV #$404C,0(R14)
15403 ADD #2,R14
15404 MOV @R13+,R0
15405 ENDCODE IMMEDIATE
15406 [THEN]
15407
15408 [UNDEFINED] THEN [IF]
15409 CODE THEN
15410 MOV &$1DC6,0(R14)
15411 MOV @R15+,R14
15412 MOV @R13+,R0
15413 ENDCODE IMMEDIATE
15414 [THEN]
15415
15416 [UNDEFINED] ELSE [IF]
15417 CODE ELSE
15418 ADD #4,&$1DC6
15419 MOV &$1DC6,R10
15420 MOV #$4048,-4(R10)
15421 MOV R10,0(R14)
15422 SUB #2,R10
15423 MOV R10,R14
15424 MOV @R13+,R0
15425 ENDCODE IMMEDIATE
15426 [THEN]
15427
15428 [UNDEFINED] DEFER [IF]
15429
15430 : DEFER
15431 CREATE
15432 HI2LO
15433 MOV #$4030,-4(R10)
15434 MOV #$402C,-2(R10)
15435 MOV @R1+,R13
15436 MOV @R13+,R0
15437 ENDCODE
15438 [THEN]
15439
15440 [UNDEFINED] DEFER! [IF]
15441 CODE DEFER!
15442 MOV @R15+,2(R14)
15443 MOV @R15+,R14
15444 MOV @R13+,R0
15445 ENDCODE
15446 [THEN]
15447
15448 [UNDEFINED] IS [IF]
15449 : IS
15450 STATE @
15451 IF  POSTPONE ['] POSTPONE DEFER! 
15452 ELSE ' DEFER! 
15453 THEN
15454 ; IMMEDIATE
15455 [THEN]
15456
15457 [UNDEFINED] >BODY [IF]
15458 CODE >BODY
15459 ADD #4,R14
15460 MOV @R13+,R0
15461 ENDCODE
15462 [THEN]
15463
15464
15465 CODE 20_US
15466 BEGIN
15467     BEGIN
15468         BIT #1,&$3C0
15469     0<> UNTIL
15470     BIC #1,&$3C0
15471     SUB #1,R14
15472 U< UNTIL
15473 MOV @R15+,R14
15474 MOV @R13+,R0
15475 ENDCODE
15476
15477 CODE TOP_LCD
15478     BIS.B #4,&$243
15479     BIT.B #1,&$241
15480 0= IF
15481     AND.B #$0F,R14
15482     MOV.B R14,&$222
15483     BIC.B #4,&$243
15484     MOV @R15+,R14
15485     MOV @R13+,R0
15486 THEN
15487     SUB #2,R15
15488     MOV R14,0(R15)
15489     BIC.B #4,&$243
15490     MOV.B &$220,R14
15491     AND.B #$0F,R14
15492     MOV @R13+,R0
15493 ENDCODE
15494
15495 CODE LCD_WRC
15496     BIS.B #2,&$243
15497 BW1 SUB #2,R15
15498     MOV R14,0(R15)
15499     RRUM #4,R14
15500     BIC.B #1,&$243
15501     BIS.B #$0F,&$224
15502 COLON
15503     TOP_LCD 2 20_US
15504     TOP_LCD 2 20_US 
15505 ;
15506
15507 CODE LCD_WRF
15508     BIC.B #2,&$243
15509     GOTO BW1
15510 ENDCODE
15511
15512 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15513 : LCD_HOME $02 LCD_WRF 100 20_us ;
15514
15515
15516
15517 ASM WDT_INT
15518 ADD #2,R1
15519 BIT.B #$20,&$240
15520 0= IF
15521     CMP #19,&$3D6
15522     U< IF
15523         ADD #1,&$3D6
15524     THEN
15525 ELSE
15526     BIT.B #$40,&$240
15527     0= IF
15528         CMP #3,&$3D6
15529         U>= IF
15530            SUB #1,&$3D6
15531         THEN
15532     THEN
15533 THEN
15534 BW1
15535 MOV @R1+,R0
15536 ENDASM
15537
15538 ASM RC5_INT
15539 ADD #2,R1
15540 $1806 @ 16000 = [IF]
15541     MOV #1,&$3A0
15542 [THEN]
15543 $1806 @ 24000 = [IF]
15544     MOV #2,&$3A0
15545 [THEN]
15546 MOV #1778,R9
15547 MOV #14,R10
15548 BEGIN
15549 MOV #%1011100100,&$380
15550     RRUM    #1,R9
15551     MOV     R9,R8
15552     RRUM    #1,R8
15553     ADD     R9,R8
15554     BEGIN   CMP R8,&$390
15555     U>= UNTIL
15556     BIT.B   #4,&$200
15557     ADDC    R11,R11
15558     MOV.B   &$200,&$208
15559     BIC.B   #4,&$20C
15560     SUB     #1,R10
15561 0<> WHILE
15562     ADD R9,R8
15563     BEGIN
15564         MOV &$390,R9
15565         CMP R8,R9
15566         U>= IF
15567         BIC #$30,&$380
15568         GOTO BW1
15569         THEN
15570         BIT.B #4,&$20C
15571     0<> UNTIL
15572 REPEAT
15573 BIC #$30,&$380
15574 RLAM    #1,R11
15575 MOV.B   R11,R9
15576 RRUM    #2,R9
15577 BIT     #$4000,R11
15578 0= IF   BIS #$40,R9
15579 THEN
15580 RRUM    #3,R11
15581 XOR     @R1,R11
15582 BIT     #$400,R11
15583 0= ?GOTO BW1
15584 XOR #$400,0(R1)
15585 SUB #8,R15
15586 MOV R14,6(R15)
15587 MOV &$1DDC,4(R15)
15588 MOV #$10,&$1DDC
15589 MOV R9,0(R15)
15590 MOV #0,R14
15591 LO2HI
15592     LCD_CLEAR
15593     <# # #S #36 HOLD #>
15594     ['] LCD_WRC IS EMIT
15595     TYPE
15596     ['] EMIT >BODY IS EMIT
15597 HI2LO
15598 MOV @R15+,&$1DDC
15599 MOV @R15+,R14
15600 MOV @R1+,R0
15601 ENDASM
15602
15603 ASM BACKGROUND
15604 BEGIN
15605     CALL &$1814
15606     BIS &$180A,R2
15607 AGAIN
15608 ENDASM
15609
15610 ASM SYS_OUT
15611     MOV #WARM,R9
15612     ADD #4,R9
15613     MOV R9,R0
15614 ENDASM
15615
15616 CODE STOP
15617 BW1 MOV #$4000,R9
15618     ADD #4,R9
15619     MOV R9,-2(R9)
15620     MOV #WARM,R9
15621     MOV #SYS_OUT,2(R9)
15622     BIC.B #4,&$20A
15623     BIC.B #4,&$20C
15624     MOV #0,&$3C0
15625     MOV #0,&$340
15626     MOV #0,&$342
15627     CALL #$400E
15628 COLON
15629 ECHO
15630 ." RC5toLCD is removed,"
15631 ."  type START to restart"
15632  WARM
15633 ;
15634
15635 CODE SYS_INIT
15636 MOV #%10_1101_0100,&$3C0
15637 $1806 @ 16000 = [IF]
15638     MOV #1,&$3E0
15639 [THEN]
15640 $1806 @ 24000 = [IF]
15641     MOV #2,&$3E0
15642 [THEN]
15643     MOV #19,&$3D2
15644 MOV #%0110_0000,&$3C6
15645     MOV #10,&$3D6
15646     BIS.B #$20,&$204
15647     BIS.B #$20,&$20A
15648     BIS.B #7,&$245
15649     BIC.B #7,&$247
15650     BIS.B #$0F,&$224
15651     BIC.B #$0F,&$226
15652     BIS.B #4,&$20A
15653     BIC.B #4,&$20C
15654     MOV #RC5_INT,&$FFDE
15655 MOV #%01_0001_0100,&$340
15656     MOV ##3276,&$352
15657     MOV #%10000,&$342
15658     MOV #WDT_INT,&$FFEA
15659 BIC #1,&$130
15660 BIS.B #3,&$20D
15661 MOV &$1808,R8
15662 CMP #4,R8
15663 0= ?GOTO BW1
15664 COLON
15665     #1000 20_US
15666     %011 TOP_LCD
15667     #205 20_US
15668     %011 TOP_LCD
15669     #5 20_US
15670     %011 TOP_LCD
15671     #2 20_US
15672     %010 TOP_LCD
15673     #2 20_US
15674     %00101000 LCD_WRF
15675     %1000 LCD_WRF
15676     LCD_CLEAR
15677     %0110 LCD_WRF
15678     %1100 LCD_WRF
15679     LCD_CLEAR
15680     ['] LCD_HOME IS CR
15681     ['] LCD_WRC  IS EMIT
15682     CR ." I love you"
15683     ['] CR >BODY IS CR
15684     ['] EMIT >BODY IS EMIT
15685     ." RC5toLCD is running. Type STOP to quit"
15686     PWR_STATE ABORT
15687 ;
15688
15689 CODE START
15690 MOV #$4000,R9
15691 MOV #BACKGROUND,2(R9)
15692 MOV #WARM,R9
15693 MOV #SYS_INIT,2(R9)
15694 MOV R9,R0
15695 ENDCODE 
15696
15697 ECHO
15698             ; downloading RC5toLCD.4th is done
15699 RST_HERE    ; this app is protected against <reset>
15700
15701
15702 RST_STATE
15703
15704 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15705
15706 [UNDEFINED] MARKER [IF]
15707 : MARKER
15708 CREATE
15709 HI2LO
15710 MOV &$1DC8,0(R10)
15711 SUB #2,R8
15712 MOV R8,2(R10)
15713 ADD #4,&$1DC6
15714 LO2HI
15715 DOES>
15716 HI2LO
15717 MOV @R1+,R13
15718 MOV @R14+,&$180E
15719 MOV @R14,&$180C
15720 MOV @R15+,R14
15721 MOV #RST_STATE,R0
15722 ENDCODE
15723 [THEN]
15724
15725 MARKER {RC5TOLCD}
15726
15727 [UNDEFINED] @ [IF]
15728 CODE @
15729 MOV @R14,R14
15730 MOV @R13+,R0
15731 ENDCODE
15732 [THEN]
15733
15734 [UNDEFINED] CONSTANT [IF]
15735 : CONSTANT 
15736 CREATE
15737 HI2LO
15738 MOV R14,-2(R10)
15739 MOV @R15+,R14
15740 MOV @R1+,R13
15741 MOV @R13+,R0
15742 ENDCODE
15743 [THEN]
15744
15745 [UNDEFINED] STATE [IF]
15746 $1DBE CONSTANT STATE
15747 [THEN]
15748
15749 [UNDEFINED] = [IF]
15750 CODE =
15751 SUB @R15+,R14
15752 0<> IF
15753     AND #0,R14
15754     MOV @R13+,R0
15755 THEN
15756 XOR #-1,R14
15757 MOV @R13+,R0
15758 ENDCODE
15759 [THEN]
15760
15761 [UNDEFINED] IF [IF]
15762 CODE IF
15763 SUB #2,R15
15764 MOV R14,0(R15)
15765 MOV &$1DC6,R14
15766 ADD #4,&$1DC6
15767 MOV #$404C,0(R14)
15768 ADD #2,R14
15769 MOV @R13+,R0
15770 ENDCODE IMMEDIATE
15771 [THEN]
15772
15773 [UNDEFINED] THEN [IF]
15774 CODE THEN
15775 MOV &$1DC6,0(R14)
15776 MOV @R15+,R14
15777 MOV @R13+,R0
15778 ENDCODE IMMEDIATE
15779 [THEN]
15780
15781 [UNDEFINED] ELSE [IF]
15782 CODE ELSE
15783 ADD #4,&$1DC6
15784 MOV &$1DC6,R10
15785 MOV #$4048,-4(R10)
15786 MOV R10,0(R14)
15787 SUB #2,R10
15788 MOV R10,R14
15789 MOV @R13+,R0
15790 ENDCODE IMMEDIATE
15791 [THEN]
15792
15793 [UNDEFINED] DEFER [IF]
15794
15795 : DEFER
15796 CREATE
15797 HI2LO
15798 MOV #$4030,-4(R10)
15799 MOV #$402C,-2(R10)
15800 MOV @R1+,R13
15801 MOV @R13+,R0
15802 ENDCODE
15803 [THEN]
15804
15805 [UNDEFINED] DEFER! [IF]
15806 CODE DEFER!
15807 MOV @R15+,2(R14)
15808 MOV @R15+,R14
15809 MOV @R13+,R0
15810 ENDCODE
15811 [THEN]
15812
15813 [UNDEFINED] IS [IF]
15814 : IS
15815 STATE @
15816 IF  POSTPONE ['] POSTPONE DEFER! 
15817 ELSE ' DEFER! 
15818 THEN
15819 ; IMMEDIATE
15820 [THEN]
15821
15822 [UNDEFINED] >BODY [IF]
15823 CODE >BODY
15824 ADD #4,R14
15825 MOV @R13+,R0
15826 ENDCODE
15827 [THEN]
15828
15829
15830 CODE 20_US
15831 BEGIN
15832     BEGIN
15833         BIT #1,&$3C0
15834     0<> UNTIL
15835     BIC #1,&$3C0
15836     SUB #1,R14
15837 U< UNTIL
15838 MOV @R15+,R14
15839 MOV @R13+,R0
15840 ENDCODE
15841
15842 CODE TOP_LCD
15843     BIS.B #4,&$243
15844     BIT.B #1,&$241
15845 0= IF
15846     AND.B #$0F,R14
15847     MOV.B R14,&$222
15848     BIC.B #4,&$243
15849     MOV @R15+,R14
15850     MOV @R13+,R0
15851 THEN
15852     SUB #2,R15
15853     MOV R14,0(R15)
15854     BIC.B #4,&$243
15855     MOV.B &$220,R14
15856     AND.B #$0F,R14
15857     MOV @R13+,R0
15858 ENDCODE
15859
15860 CODE LCD_WRC
15861     BIS.B #2,&$243
15862 BW1 SUB #2,R15
15863     MOV R14,0(R15)
15864     RRUM #4,R14
15865     BIC.B #1,&$243
15866     BIS.B #$0F,&$224
15867 COLON
15868     TOP_LCD 2 20_US
15869     TOP_LCD 2 20_US 
15870 ;
15871
15872 CODE LCD_WRF
15873     BIC.B #2,&$243
15874     GOTO BW1
15875 ENDCODE
15876
15877 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15878 : LCD_HOME $02 LCD_WRF 100 20_us ;
15879
15880
15881
15882 ASM WDT_INT
15883 ADD #2,R1
15884 BIT.B #$20,&$240
15885 0= IF
15886     CMP #19,&$3D6
15887     U< IF
15888         ADD #1,&$3D6
15889     THEN
15890 ELSE
15891     BIT.B #$40,&$240
15892     0= IF
15893         CMP #3,&$3D6
15894         U>= IF
15895            SUB #1,&$3D6
15896         THEN
15897     THEN
15898 THEN
15899 BW1
15900 MOV @R1+,R0
15901 ENDASM
15902
15903 ASM RC5_INT
15904 ADD #2,R1
15905 $1806 @ 16000 = [IF]
15906     MOV #1,&$3A0
15907 [THEN]
15908 $1806 @ 24000 = [IF]
15909     MOV #2,&$3A0
15910 [THEN]
15911 MOV #1778,R9
15912 MOV #14,R10
15913 BEGIN
15914 MOV #%1011100100,&$380
15915     RRUM    #1,R9
15916     MOV     R9,R8
15917     RRUM    #1,R8
15918     ADD     R9,R8
15919     BEGIN   CMP R8,&$390
15920     U>= UNTIL
15921     BIT.B   #4,&$200
15922     ADDC    R11,R11
15923     MOV.B   &$200,&$208
15924     BIC.B   #4,&$20C
15925     SUB     #1,R10
15926 0<> WHILE
15927     ADD R9,R8
15928     BEGIN
15929         MOV &$390,R9
15930         CMP R8,R9
15931         U>= IF
15932         BIC #$30,&$380
15933         GOTO BW1
15934         THEN
15935         BIT.B #4,&$20C
15936     0<> UNTIL
15937 REPEAT
15938 BIC #$30,&$380
15939 RLAM    #1,R11
15940 MOV.B   R11,R9
15941 RRUM    #2,R9
15942 BIT     #$4000,R11
15943 0= IF   BIS #$40,R9
15944 THEN
15945 RRUM    #3,R11
15946 XOR     @R1,R11
15947 BIT     #$400,R11
15948 0= ?GOTO BW1
15949 XOR #$400,0(R1)
15950 SUB #8,R15
15951 MOV R14,6(R15)
15952 MOV &$1DDC,4(R15)
15953 MOV #$10,&$1DDC
15954 MOV R9,0(R15)
15955 MOV #0,R14
15956 LO2HI
15957     LCD_CLEAR
15958     <# # #S #36 HOLD #>
15959     ['] LCD_WRC IS EMIT
15960     TYPE
15961     ['] EMIT >BODY IS EMIT
15962 HI2LO
15963 MOV @R15+,&$1DDC
15964 MOV @R15+,R14
15965 MOV @R1+,R0
15966 ENDASM
15967
15968 ASM BACKGROUND
15969 BEGIN
15970     CALL &$1814
15971     BIS &$180A,R2
15972 AGAIN
15973 ENDASM
15974
15975 ASM SYS_OUT
15976     MOV #WARM,R9
15977     ADD #4,R9
15978     MOV R9,R0
15979 ENDASM
15980
15981 CODE STOP
15982 BW1 MOV #$4000,R9
15983     ADD #4,R9
15984     MOV R9,-2(R9)
15985     MOV #WARM,R9
15986     MOV #SYS_OUT,2(R9)
15987     BIC.B #4,&$20A
15988     BIC.B #4,&$20C
15989     MOV #0,&$3C0
15990     MOV #0,&$340
15991     MOV #0,&$342
15992     CALL #$400E
15993 COLON
15994 ECHO
15995 ." RC5toLCD is removed,"
15996 ."  type START to restart"
15997  WARM
15998 ;
15999
16000 CODE SYS_INIT
16001 MOV #%10_1101_0100,&$3C0
16002 $1806 @ 16000 = [IF]
16003     MOV #1,&$3E0
16004 [THEN]
16005 $1806 @ 24000 = [IF]
16006     MOV #2,&$3E0
16007 [THEN]
16008     MOV #19,&$3D2
16009 MOV #%0110_0000,&$3C6
16010     MOV #10,&$3D6
16011     BIS.B #$20,&$204
16012     BIS.B #$20,&$20A
16013     BIS.B #7,&$245
16014     BIC.B #7,&$247
16015     BIS.B #$0F,&$224
16016     BIC.B #$0F,&$226
16017     BIS.B #4,&$20A
16018     BIC.B #4,&$20C
16019     MOV #RC5_INT,&$FFDE
16020 MOV #%01_0001_0100,&$340
16021     MOV ##3276,&$352
16022     MOV #%10000,&$342
16023     MOV #WDT_INT,&$FFEA
16024 BIC #1,&$130
16025 BIS.B #3,&$20D
16026 MOV &$1808,R8
16027 CMP #4,R8
16028 0= ?GOTO BW1
16029 COLON
16030     #1000 20_US
16031     %011 TOP_LCD
16032     #205 20_US
16033     %011 TOP_LCD
16034     #5 20_US
16035     %011 TOP_LCD
16036     #2 20_US
16037     %010 TOP_LCD
16038     #2 20_US
16039     %00101000 LCD_WRF
16040     %1000 LCD_WRF
16041     LCD_CLEAR
16042     %0110 LCD_WRF
16043     %1100 LCD_WRF
16044     LCD_CLEAR
16045     ['] LCD_HOME IS CR
16046     ['] LCD_WRC  IS EMIT
16047     CR ." I love you"
16048     ['] CR >BODY IS CR
16049     ['] EMIT >BODY IS EMIT
16050     ." RC5toLCD is running. Type STOP to quit"
16051     PWR_STATE ABORT
16052 ;
16053
16054 CODE START
16055 MOV #$4000,R9
16056 MOV #BACKGROUND,2(R9)
16057 MOV #WARM,R9
16058 MOV #SYS_INIT,2(R9)
16059 MOV R9,R0
16060 ENDCODE 
16061
16062 ECHO
16063             ; downloading RC5toLCD.4th is done
16064 RST_HERE    ; this app is protected against <reset>
16065
16066
16067 RST_STATE
16068
16069 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16070
16071 [UNDEFINED] MARKER [IF]
16072 : MARKER
16073 CREATE
16074 HI2LO
16075 MOV &$1DC8,0(R10)
16076 SUB #2,R8
16077 MOV R8,2(R10)
16078 ADD #4,&$1DC6
16079 LO2HI
16080 DOES>
16081 HI2LO
16082 MOV @R1+,R13
16083 MOV @R14+,&$180E
16084 MOV @R14,&$180C
16085 MOV @R15+,R14
16086 MOV #RST_STATE,R0
16087 ENDCODE
16088 [THEN]
16089
16090 MARKER {RC5TOLCD}
16091
16092 [UNDEFINED] @ [IF]
16093 CODE @
16094 MOV @R14,R14
16095 MOV @R13+,R0
16096 ENDCODE
16097 [THEN]
16098
16099 [UNDEFINED] CONSTANT [IF]
16100 : CONSTANT 
16101 CREATE
16102 HI2LO
16103 MOV R14,-2(R10)
16104 MOV @R15+,R14
16105 MOV @R1+,R13
16106 MOV @R13+,R0
16107 ENDCODE
16108 [THEN]
16109
16110 [UNDEFINED] STATE [IF]
16111 $1DBE CONSTANT STATE
16112 [THEN]
16113
16114 [UNDEFINED] = [IF]
16115 CODE =
16116 SUB @R15+,R14
16117 0<> IF
16118     AND #0,R14
16119     MOV @R13+,R0
16120 THEN
16121 XOR #-1,R14
16122 MOV @R13+,R0
16123 ENDCODE
16124 [THEN]
16125
16126 [UNDEFINED] IF [IF]
16127 CODE IF
16128 SUB #2,R15
16129 MOV R14,0(R15)
16130 MOV &$1DC6,R14
16131 ADD #4,&$1DC6
16132 MOV #$404C,0(R14)
16133 ADD #2,R14
16134 MOV @R13+,R0
16135 ENDCODE IMMEDIATE
16136 [THEN]
16137
16138 [UNDEFINED] THEN [IF]
16139 CODE THEN
16140 MOV &$1DC6,0(R14)
16141 MOV @R15+,R14
16142 MOV @R13+,R0
16143 ENDCODE IMMEDIATE
16144 [THEN]
16145
16146 [UNDEFINED] ELSE [IF]
16147 CODE ELSE
16148 ADD #4,&$1DC6
16149 MOV &$1DC6,R10
16150 MOV #$4048,-4(R10)
16151 MOV R10,0(R14)
16152 SUB #2,R10
16153 MOV R10,R14
16154 MOV @R13+,R0
16155 ENDCODE IMMEDIATE
16156 [THEN]
16157
16158 [UNDEFINED] DEFER [IF]
16159
16160 : DEFER
16161 CREATE
16162 HI2LO
16163 MOV #$4030,-4(R10)
16164 MOV #$402C,-2(R10)
16165 MOV @R1+,R13
16166 MOV @R13+,R0
16167 ENDCODE
16168 [THEN]
16169
16170 [UNDEFINED] DEFER! [IF]
16171 CODE DEFER!
16172 MOV @R15+,2(R14)
16173 MOV @R15+,R14
16174 MOV @R13+,R0
16175 ENDCODE
16176 [THEN]
16177
16178 [UNDEFINED] IS [IF]
16179 : IS
16180 STATE @
16181 IF  POSTPONE ['] POSTPONE DEFER! 
16182 ELSE ' DEFER! 
16183 THEN
16184 ; IMMEDIATE
16185 [THEN]
16186
16187 [UNDEFINED] >BODY [IF]
16188 CODE >BODY
16189 ADD #4,R14
16190 MOV @R13+,R0
16191 ENDCODE
16192 [THEN]
16193
16194
16195 CODE 20_US
16196 BEGIN
16197     BEGIN
16198         BIT #1,&$3C0
16199     0<> UNTIL
16200     BIC #1,&$3C0
16201     SUB #1,R14
16202 U< UNTIL
16203 MOV @R15+,R14
16204 MOV @R13+,R0
16205 ENDCODE
16206
16207 CODE TOP_LCD
16208     BIS.B #4,&$243
16209     BIT.B #1,&$241
16210 0= IF
16211     AND.B #$0F,R14
16212     MOV.B R14,&$222
16213     BIC.B #4,&$243
16214     MOV @R15+,R14
16215     MOV @R13+,R0
16216 THEN
16217     SUB #2,R15
16218     MOV R14,0(R15)
16219     BIC.B #4,&$243
16220     MOV.B &$220,R14
16221     AND.B #$0F,R14
16222     MOV @R13+,R0
16223 ENDCODE
16224
16225 CODE LCD_WRC
16226     BIS.B #2,&$243
16227 BW1 SUB #2,R15
16228     MOV R14,0(R15)
16229     RRUM #4,R14
16230     BIC.B #1,&$243
16231     BIS.B #$0F,&$224
16232 COLON
16233     TOP_LCD 2 20_US
16234     TOP_LCD 2 20_US 
16235 ;
16236
16237 CODE LCD_WRF
16238     BIC.B #2,&$243
16239     GOTO BW1
16240 ENDCODE
16241
16242 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16243 : LCD_HOME $02 LCD_WRF 100 20_us ;
16244
16245
16246
16247 ASM WDT_INT
16248 ADD #2,R1
16249 BIT.B #$20,&$240
16250 0= IF
16251     CMP #19,&$3D6
16252     U< IF
16253         ADD #1,&$3D6
16254     THEN
16255 ELSE
16256     BIT.B #$40,&$240
16257     0= IF
16258         CMP #3,&$3D6
16259         U>= IF
16260            SUB #1,&$3D6
16261         THEN
16262     THEN
16263 THEN
16264 BW1
16265 MOV @R1+,R0
16266 ENDASM
16267
16268 ASM RC5_INT
16269 ADD #2,R1
16270 $1806 @ 16000 = [IF]
16271     MOV #1,&$3A0
16272 [THEN]
16273 $1806 @ 24000 = [IF]
16274     MOV #2,&$3A0
16275 [THEN]
16276 MOV #1778,R9
16277 MOV #14,R10
16278 BEGIN
16279 MOV #%1011100100,&$380
16280     RRUM    #1,R9
16281     MOV     R9,R8
16282     RRUM    #1,R8
16283     ADD     R9,R8
16284     BEGIN   CMP R8,&$390
16285     U>= UNTIL
16286     BIT.B   #4,&$200
16287     ADDC    R11,R11
16288     MOV.B   &$200,&$208
16289     BIC.B   #4,&$20C
16290     SUB     #1,R10
16291 0<> WHILE
16292     ADD R9,R8
16293     BEGIN
16294         MOV &$390,R9
16295         CMP R8,R9
16296         U>= IF
16297         BIC #$30,&$380
16298         GOTO BW1
16299         THEN
16300         BIT.B #4,&$20C
16301     0<> UNTIL
16302 REPEAT
16303 BIC #$30,&$380
16304 RLAM    #1,R11
16305 MOV.B   R11,R9
16306 RRUM    #2,R9
16307 BIT     #$4000,R11
16308 0= IF   BIS #$40,R9
16309 THEN
16310 RRUM    #3,R11
16311 XOR     @R1,R11
16312 BIT     #$400,R11
16313 0= ?GOTO BW1
16314 XOR #$400,0(R1)
16315 SUB #8,R15
16316 MOV R14,6(R15)
16317 MOV &$1DDC,4(R15)
16318 MOV #$10,&$1DDC
16319 MOV R9,0(R15)
16320 MOV #0,R14
16321 LO2HI
16322     LCD_CLEAR
16323     <# # #S #36 HOLD #>
16324     ['] LCD_WRC IS EMIT
16325     TYPE
16326     ['] EMIT >BODY IS EMIT
16327 HI2LO
16328 MOV @R15+,&$1DDC
16329 MOV @R15+,R14
16330 MOV @R1+,R0
16331 ENDASM
16332
16333 ASM BACKGROUND
16334 BEGIN
16335     CALL &$1814
16336     BIS &$180A,R2
16337 AGAIN
16338 ENDASM
16339
16340 ASM SYS_OUT
16341     MOV #WARM,R9
16342     ADD #4,R9
16343     MOV R9,R0
16344 ENDASM
16345
16346 CODE STOP
16347 BW1 MOV #$4000,R9
16348     ADD #4,R9
16349     MOV R9,-2(R9)
16350     MOV #WARM,R9
16351     MOV #SYS_OUT,2(R9)
16352     BIC.B #4,&$20A
16353     BIC.B #4,&$20C
16354     MOV #0,&$3C0
16355     MOV #0,&$340
16356     MOV #0,&$342
16357     CALL #$400E
16358 COLON
16359 ECHO
16360 ." RC5toLCD is removed,"
16361 ."  type START to restart"
16362  WARM
16363 ;
16364
16365 CODE SYS_INIT
16366 MOV #%10_1101_0100,&$3C0
16367 $1806 @ 16000 = [IF]
16368     MOV #1,&$3E0
16369 [THEN]
16370 $1806 @ 24000 = [IF]
16371     MOV #2,&$3E0
16372 [THEN]
16373     MOV #19,&$3D2
16374 MOV #%0110_0000,&$3C6
16375     MOV #10,&$3D6
16376     BIS.B #$20,&$204
16377     BIS.B #$20,&$20A
16378     BIS.B #7,&$245
16379     BIC.B #7,&$247
16380     BIS.B #$0F,&$224
16381     BIC.B #$0F,&$226
16382     BIS.B #4,&$20A
16383     BIC.B #4,&$20C
16384     MOV #RC5_INT,&$FFDE
16385 MOV #%01_0001_0100,&$340
16386     MOV ##3276,&$352
16387     MOV #%10000,&$342
16388     MOV #WDT_INT,&$FFEA
16389 BIC #1,&$130
16390 BIS.B #3,&$20D
16391 MOV &$1808,R8
16392 CMP #4,R8
16393 0= ?GOTO BW1
16394 COLON
16395     #1000 20_US
16396     %011 TOP_LCD
16397     #205 20_US
16398     %011 TOP_LCD
16399     #5 20_US
16400     %011 TOP_LCD
16401     #2 20_US
16402     %010 TOP_LCD
16403     #2 20_US
16404     %00101000 LCD_WRF
16405     %1000 LCD_WRF
16406     LCD_CLEAR
16407     %0110 LCD_WRF
16408     %1100 LCD_WRF
16409     LCD_CLEAR
16410     ['] LCD_HOME IS CR
16411     ['] LCD_WRC  IS EMIT
16412     CR ." I love you"
16413     ['] CR >BODY IS CR
16414     ['] EMIT >BODY IS EMIT
16415     ." RC5toLCD is running. Type STOP to quit"
16416     PWR_STATE ABORT
16417 ;
16418
16419 CODE START
16420 MOV #$4000,R9
16421 MOV #BACKGROUND,2(R9)
16422 MOV #WARM,R9
16423 MOV #SYS_INIT,2(R9)
16424 MOV R9,R0
16425 ENDCODE 
16426
16427 ECHO
16428             ; downloading RC5toLCD.4th is done
16429 RST_HERE    ; this app is protected against <reset>
16430
16431
16432 RST_STATE
16433
16434 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16435
16436 [UNDEFINED] MARKER [IF]
16437 : MARKER
16438 CREATE
16439 HI2LO
16440 MOV &$1DC8,0(R10)
16441 SUB #2,R8
16442 MOV R8,2(R10)
16443 ADD #4,&$1DC6
16444 LO2HI
16445 DOES>
16446 HI2LO
16447 MOV @R1+,R13
16448 MOV @R14+,&$180E
16449 MOV @R14,&$180C
16450 MOV @R15+,R14
16451 MOV #RST_STATE,R0
16452 ENDCODE
16453 [THEN]
16454
16455 MARKER {RC5TOLCD}
16456
16457 [UNDEFINED] @ [IF]
16458 CODE @
16459 MOV @R14,R14
16460 MOV @R13+,R0
16461 ENDCODE
16462 [THEN]
16463
16464 [UNDEFINED] CONSTANT [IF]
16465 : CONSTANT 
16466 CREATE
16467 HI2LO
16468 MOV R14,-2(R10)
16469 MOV @R15+,R14
16470 MOV @R1+,R13
16471 MOV @R13+,R0
16472 ENDCODE
16473 [THEN]
16474
16475 [UNDEFINED] STATE [IF]
16476 $1DBE CONSTANT STATE
16477 [THEN]
16478
16479 [UNDEFINED] = [IF]
16480 CODE =
16481 SUB @R15+,R14
16482 0<> IF
16483     AND #0,R14
16484     MOV @R13+,R0
16485 THEN
16486 XOR #-1,R14
16487 MOV @R13+,R0
16488 ENDCODE
16489 [THEN]
16490
16491 [UNDEFINED] IF [IF]
16492 CODE IF
16493 SUB #2,R15
16494 MOV R14,0(R15)
16495 MOV &$1DC6,R14
16496 ADD #4,&$1DC6
16497 MOV #$404C,0(R14)
16498 ADD #2,R14
16499 MOV @R13+,R0
16500 ENDCODE IMMEDIATE
16501 [THEN]
16502
16503 [UNDEFINED] THEN [IF]
16504 CODE THEN
16505 MOV &$1DC6,0(R14)
16506 MOV @R15+,R14
16507 MOV @R13+,R0
16508 ENDCODE IMMEDIATE
16509 [THEN]
16510
16511 [UNDEFINED] ELSE [IF]
16512 CODE ELSE
16513 ADD #4,&$1DC6
16514 MOV &$1DC6,R10
16515 MOV #$4048,-4(R10)
16516 MOV R10,0(R14)
16517 SUB #2,R10
16518 MOV R10,R14
16519 MOV @R13+,R0
16520 ENDCODE IMMEDIATE
16521 [THEN]
16522
16523 [UNDEFINED] DEFER [IF]
16524
16525 : DEFER
16526 CREATE
16527 HI2LO
16528 MOV #$4030,-4(R10)
16529 MOV #$402C,-2(R10)
16530 MOV @R1+,R13
16531 MOV @R13+,R0
16532 ENDCODE
16533 [THEN]
16534
16535 [UNDEFINED] DEFER! [IF]
16536 CODE DEFER!
16537 MOV @R15+,2(R14)
16538 MOV @R15+,R14
16539 MOV @R13+,R0
16540 ENDCODE
16541 [THEN]
16542
16543 [UNDEFINED] IS [IF]
16544 : IS
16545 STATE @
16546 IF  POSTPONE ['] POSTPONE DEFER! 
16547 ELSE ' DEFER! 
16548 THEN
16549 ; IMMEDIATE
16550 [THEN]
16551
16552 [UNDEFINED] >BODY [IF]
16553 CODE >BODY
16554 ADD #4,R14
16555 MOV @R13+,R0
16556 ENDCODE
16557 [THEN]
16558
16559
16560 CODE 20_US
16561 BEGIN
16562     BEGIN
16563         BIT #1,&$3C0
16564     0<> UNTIL
16565     BIC #1,&$3C0
16566     SUB #1,R14
16567 U< UNTIL
16568 MOV @R15+,R14
16569 MOV @R13+,R0
16570 ENDCODE
16571
16572 CODE TOP_LCD
16573     BIS.B #4,&$243
16574     BIT.B #1,&$241
16575 0= IF
16576     AND.B #$0F,R14
16577     MOV.B R14,&$222
16578     BIC.B #4,&$243
16579     MOV @R15+,R14
16580     MOV @R13+,R0
16581 THEN
16582     SUB #2,R15
16583     MOV R14,0(R15)
16584     BIC.B #4,&$243
16585     MOV.B &$220,R14
16586     AND.B #$0F,R14
16587     MOV @R13+,R0
16588 ENDCODE
16589
16590 CODE LCD_WRC
16591     BIS.B #2,&$243
16592 BW1 SUB #2,R15
16593     MOV R14,0(R15)
16594     RRUM #4,R14
16595     BIC.B #1,&$243
16596     BIS.B #$0F,&$224
16597 COLON
16598     TOP_LCD 2 20_US
16599     TOP_LCD 2 20_US 
16600 ;
16601
16602 CODE LCD_WRF
16603     BIC.B #2,&$243
16604     GOTO BW1
16605 ENDCODE
16606
16607 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16608 : LCD_HOME $02 LCD_WRF 100 20_us ;
16609
16610
16611
16612 ASM WDT_INT
16613 ADD #2,R1
16614 BIT.B #$20,&$240
16615 0= IF
16616     CMP #19,&$3D6
16617     U< IF
16618         ADD #1,&$3D6
16619     THEN
16620 ELSE
16621     BIT.B #$40,&$240
16622     0= IF
16623         CMP #3,&$3D6
16624         U>= IF
16625            SUB #1,&$3D6
16626         THEN
16627     THEN
16628 THEN
16629 BW1
16630 MOV @R1+,R0
16631 ENDASM
16632
16633 ASM RC5_INT
16634 ADD #2,R1
16635 $1806 @ 16000 = [IF]
16636     MOV #1,&$3A0
16637 [THEN]
16638 $1806 @ 24000 = [IF]
16639     MOV #2,&$3A0
16640 [THEN]
16641 MOV #1778,R9
16642 MOV #14,R10
16643 BEGIN
16644 MOV #%1011100100,&$380
16645     RRUM    #1,R9
16646     MOV     R9,R8
16647     RRUM    #1,R8
16648     ADD     R9,R8
16649     BEGIN   CMP R8,&$390
16650     U>= UNTIL
16651     BIT.B   #4,&$200
16652     ADDC    R11,R11
16653     MOV.B   &$200,&$208
16654     BIC.B   #4,&$20C
16655     SUB     #1,R10
16656 0<> WHILE
16657     ADD R9,R8
16658     BEGIN
16659         MOV &$390,R9
16660         CMP R8,R9
16661         U>= IF
16662         BIC #$30,&$380
16663         GOTO BW1
16664         THEN
16665         BIT.B #4,&$20C
16666     0<> UNTIL
16667 REPEAT
16668 BIC #$30,&$380
16669 RLAM    #1,R11
16670 MOV.B   R11,R9
16671 RRUM    #2,R9
16672 BIT     #$4000,R11
16673 0= IF   BIS #$40,R9
16674 THEN
16675 RRUM    #3,R11
16676 XOR     @R1,R11
16677 BIT     #$400,R11
16678 0= ?GOTO BW1
16679 XOR #$400,0(R1)
16680 SUB #8,R15
16681 MOV R14,6(R15)
16682 MOV &$1DDC,4(R15)
16683 MOV #$10,&$1DDC
16684 MOV R9,0(R15)
16685 MOV #0,R14
16686 LO2HI
16687     LCD_CLEAR
16688     <# # #S #36 HOLD #>
16689     ['] LCD_WRC IS EMIT
16690     TYPE
16691     ['] EMIT >BODY IS EMIT
16692 HI2LO
16693 MOV @R15+,&$1DDC
16694 MOV @R15+,R14
16695 MOV @R1+,R0
16696 ENDASM
16697
16698 ASM BACKGROUND
16699 BEGIN
16700     CALL &$1814
16701     BIS &$180A,R2
16702 AGAIN
16703 ENDASM
16704
16705 ASM SYS_OUT
16706     MOV #WARM,R9
16707     ADD #4,R9
16708     MOV R9,R0
16709 ENDASM
16710
16711 CODE STOP
16712 BW1 MOV #$4000,R9
16713     ADD #4,R9
16714     MOV R9,-2(R9)
16715     MOV #WARM,R9
16716     MOV #SYS_OUT,2(R9)
16717     BIC.B #4,&$20A
16718     BIC.B #4,&$20C
16719     MOV #0,&$3C0
16720     MOV #0,&$340
16721     MOV #0,&$342
16722     CALL #$400E
16723 COLON
16724 ECHO
16725 ." RC5toLCD is removed,"
16726 ."  type START to restart"
16727  WARM
16728 ;
16729
16730 CODE SYS_INIT
16731 MOV #%10_1101_0100,&$3C0
16732 $1806 @ 16000 = [IF]
16733     MOV #1,&$3E0
16734 [THEN]
16735 $1806 @ 24000 = [IF]
16736     MOV #2,&$3E0
16737 [THEN]
16738     MOV #19,&$3D2
16739 MOV #%0110_0000,&$3C6
16740     MOV #10,&$3D6
16741     BIS.B #$20,&$204
16742     BIS.B #$20,&$20A
16743     BIS.B #7,&$245
16744     BIC.B #7,&$247
16745     BIS.B #$0F,&$224
16746     BIC.B #$0F,&$226
16747     BIS.B #4,&$20A
16748     BIC.B #4,&$20C
16749     MOV #RC5_INT,&$FFDE
16750 MOV #%01_0001_0100,&$340
16751     MOV ##3276,&$352
16752     MOV #%10000,&$342
16753     MOV #WDT_INT,&$FFEA
16754 BIC #1,&$130
16755 BIS.B #3,&$20D
16756 MOV &$1808,R8
16757 CMP #4,R8
16758 0= ?GOTO BW1
16759 COLON
16760     #1000 20_US
16761     %011 TOP_LCD
16762     #205 20_US
16763     %011 TOP_LCD
16764     #5 20_US
16765     %011 TOP_LCD
16766     #2 20_US
16767     %010 TOP_LCD
16768     #2 20_US
16769     %00101000 LCD_WRF
16770     %1000 LCD_WRF
16771     LCD_CLEAR
16772     %0110 LCD_WRF
16773     %1100 LCD_WRF
16774     LCD_CLEAR
16775     ['] LCD_HOME IS CR
16776     ['] LCD_WRC  IS EMIT
16777     CR ." I love you"
16778     ['] CR >BODY IS CR
16779     ['] EMIT >BODY IS EMIT
16780     ." RC5toLCD is running. Type STOP to quit"
16781     PWR_STATE ABORT
16782 ;
16783
16784 CODE START
16785 MOV #$4000,R9
16786 MOV #BACKGROUND,2(R9)
16787 MOV #WARM,R9
16788 MOV #SYS_INIT,2(R9)
16789 MOV R9,R0
16790 ENDCODE 
16791
16792 ECHO
16793             ; downloading RC5toLCD.4th is done
16794 RST_HERE    ; this app is protected against <reset>
16795
16796
16797 RST_STATE
16798
16799 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16800
16801 [UNDEFINED] MARKER [IF]
16802 : MARKER
16803 CREATE
16804 HI2LO
16805 MOV &$1DC8,0(R10)
16806 SUB #2,R8
16807 MOV R8,2(R10)
16808 ADD #4,&$1DC6
16809 LO2HI
16810 DOES>
16811 HI2LO
16812 MOV @R1+,R13
16813 MOV @R14+,&$180E
16814 MOV @R14,&$180C
16815 MOV @R15+,R14
16816 MOV #RST_STATE,R0
16817 ENDCODE
16818 [THEN]
16819
16820 MARKER {RC5TOLCD}
16821
16822 [UNDEFINED] @ [IF]
16823 CODE @
16824 MOV @R14,R14
16825 MOV @R13+,R0
16826 ENDCODE
16827 [THEN]
16828
16829 [UNDEFINED] CONSTANT [IF]
16830 : CONSTANT 
16831 CREATE
16832 HI2LO
16833 MOV R14,-2(R10)
16834 MOV @R15+,R14
16835 MOV @R1+,R13
16836 MOV @R13+,R0
16837 ENDCODE
16838 [THEN]
16839
16840 [UNDEFINED] STATE [IF]
16841 $1DBE CONSTANT STATE
16842 [THEN]
16843
16844 [UNDEFINED] = [IF]
16845 CODE =
16846 SUB @R15+,R14
16847 0<> IF
16848     AND #0,R14
16849     MOV @R13+,R0
16850 THEN
16851 XOR #-1,R14
16852 MOV @R13+,R0
16853 ENDCODE
16854 [THEN]
16855
16856 [UNDEFINED] IF [IF]
16857 CODE IF
16858 SUB #2,R15
16859 MOV R14,0(R15)
16860 MOV &$1DC6,R14
16861 ADD #4,&$1DC6
16862 MOV #$404C,0(R14)
16863 ADD #2,R14
16864 MOV @R13+,R0
16865 ENDCODE IMMEDIATE
16866 [THEN]
16867
16868 [UNDEFINED] THEN [IF]
16869 CODE THEN
16870 MOV &$1DC6,0(R14)
16871 MOV @R15+,R14
16872 MOV @R13+,R0
16873 ENDCODE IMMEDIATE
16874 [THEN]
16875
16876 [UNDEFINED] ELSE [IF]
16877 CODE ELSE
16878 ADD #4,&$1DC6
16879 MOV &$1DC6,R10
16880 MOV #$4048,-4(R10)
16881 MOV R10,0(R14)
16882 SUB #2,R10
16883 MOV R10,R14
16884 MOV @R13+,R0
16885 ENDCODE IMMEDIATE
16886 [THEN]
16887
16888 [UNDEFINED] DEFER [IF]
16889
16890 : DEFER
16891 CREATE
16892 HI2LO
16893 MOV #$4030,-4(R10)
16894 MOV #$402C,-2(R10)
16895 MOV @R1+,R13
16896 MOV @R13+,R0
16897 ENDCODE
16898 [THEN]
16899
16900 [UNDEFINED] DEFER! [IF]
16901 CODE DEFER!
16902 MOV @R15+,2(R14)
16903 MOV @R15+,R14
16904 MOV @R13+,R0
16905 ENDCODE
16906 [THEN]
16907
16908 [UNDEFINED] IS [IF]
16909 : IS
16910 STATE @
16911 IF  POSTPONE ['] POSTPONE DEFER! 
16912 ELSE ' DEFER! 
16913 THEN
16914 ; IMMEDIATE
16915 [THEN]
16916
16917 [UNDEFINED] >BODY [IF]
16918 CODE >BODY
16919 ADD #4,R14
16920 MOV @R13+,R0
16921 ENDCODE
16922 [THEN]
16923
16924
16925 CODE 20_US
16926 BEGIN
16927     BEGIN
16928         BIT #1,&$3C0
16929     0<> UNTIL
16930     BIC #1,&$3C0
16931     SUB #1,R14
16932 U< UNTIL
16933 MOV @R15+,R14
16934 MOV @R13+,R0
16935 ENDCODE
16936
16937 CODE TOP_LCD
16938     BIS.B #4,&$243
16939     BIT.B #1,&$241
16940 0= IF
16941     AND.B #$0F,R14
16942     MOV.B R14,&$222
16943     BIC.B #4,&$243
16944     MOV @R15+,R14
16945     MOV @R13+,R0
16946 THEN
16947     SUB #2,R15
16948     MOV R14,0(R15)
16949     BIC.B #4,&$243
16950     MOV.B &$220,R14
16951     AND.B #$0F,R14
16952     MOV @R13+,R0
16953 ENDCODE
16954
16955 CODE LCD_WRC
16956     BIS.B #2,&$243
16957 BW1 SUB #2,R15
16958     MOV R14,0(R15)
16959     RRUM #4,R14
16960     BIC.B #1,&$243
16961     BIS.B #$0F,&$224
16962 COLON
16963     TOP_LCD 2 20_US
16964     TOP_LCD 2 20_US 
16965 ;
16966
16967 CODE LCD_WRF
16968     BIC.B #2,&$243
16969     GOTO BW1
16970 ENDCODE
16971
16972 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16973 : LCD_HOME $02 LCD_WRF 100 20_us ;
16974
16975
16976
16977 ASM WDT_INT
16978 ADD #2,R1
16979 BIT.B #$20,&$240
16980 0= IF
16981     CMP #19,&$3D6
16982     U< IF
16983         ADD #1,&$3D6
16984     THEN
16985 ELSE
16986     BIT.B #$40,&$240
16987     0= IF
16988         CMP #3,&$3D6
16989         U>= IF
16990            SUB #1,&$3D6
16991         THEN
16992     THEN
16993 THEN
16994 BW1
16995 MOV @R1+,R0
16996 ENDASM
16997
16998 ASM RC5_INT
16999 ADD #2,R1
17000 $1806 @ 16000 = [IF]
17001     MOV #1,&$3A0
17002 [THEN]
17003 $1806 @ 24000 = [IF]
17004     MOV #2,&$3A0
17005 [THEN]
17006 MOV #1778,R9
17007 MOV #14,R10
17008 BEGIN
17009 MOV #%1011100100,&$380
17010     RRUM    #1,R9
17011     MOV     R9,R8
17012     RRUM    #1,R8
17013     ADD     R9,R8
17014     BEGIN   CMP R8,&$390
17015     U>= UNTIL
17016     BIT.B   #4,&$200
17017     ADDC    R11,R11
17018     MOV.B   &$200,&$208
17019     BIC.B   #4,&$20C
17020     SUB     #1,R10
17021 0<> WHILE
17022     ADD R9,R8
17023     BEGIN
17024         MOV &$390,R9
17025         CMP R8,R9
17026         U>= IF
17027         BIC #$30,&$380
17028         GOTO BW1
17029         THEN
17030         BIT.B #4,&$20C
17031     0<> UNTIL
17032 REPEAT
17033 BIC #$30,&$380
17034 RLAM    #1,R11
17035 MOV.B   R11,R9
17036 RRUM    #2,R9
17037 BIT     #$4000,R11
17038 0= IF   BIS #$40,R9
17039 THEN
17040 RRUM    #3,R11
17041 XOR     @R1,R11
17042 BIT     #$400,R11
17043 0= ?GOTO BW1
17044 XOR #$400,0(R1)
17045 SUB #8,R15
17046 MOV R14,6(R15)
17047 MOV &$1DDC,4(R15)
17048 MOV #$10,&$1DDC
17049 MOV R9,0(R15)
17050 MOV #0,R14
17051 LO2HI
17052     LCD_CLEAR
17053     <# # #S #36 HOLD #>
17054     ['] LCD_WRC IS EMIT
17055     TYPE
17056     ['] EMIT >BODY IS EMIT
17057 HI2LO
17058 MOV @R15+,&$1DDC
17059 MOV @R15+,R14
17060 MOV @R1+,R0
17061 ENDASM
17062
17063 ASM BACKGROUND
17064 BEGIN
17065     CALL &$1814
17066     BIS &$180A,R2
17067 AGAIN
17068 ENDASM
17069
17070 ASM SYS_OUT
17071     MOV #WARM,R9
17072     ADD #4,R9
17073     MOV R9,R0
17074 ENDASM
17075
17076 CODE STOP
17077 BW1 MOV #$4000,R9
17078     ADD #4,R9
17079     MOV R9,-2(R9)
17080     MOV #WARM,R9
17081     MOV #SYS_OUT,2(R9)
17082     BIC.B #4,&$20A
17083     BIC.B #4,&$20C
17084     MOV #0,&$3C0
17085     MOV #0,&$340
17086     MOV #0,&$342
17087     CALL #$400E
17088 COLON
17089 ECHO
17090 ." RC5toLCD is removed,"
17091 ."  type START to restart"
17092  WARM
17093 ;
17094
17095 CODE SYS_INIT
17096 MOV #%10_1101_0100,&$3C0
17097 $1806 @ 16000 = [IF]
17098     MOV #1,&$3E0
17099 [THEN]
17100 $1806 @ 24000 = [IF]
17101     MOV #2,&$3E0
17102 [THEN]
17103     MOV #19,&$3D2
17104 MOV #%0110_0000,&$3C6
17105     MOV #10,&$3D6
17106     BIS.B #$20,&$204
17107     BIS.B #$20,&$20A
17108     BIS.B #7,&$245
17109     BIC.B #7,&$247
17110     BIS.B #$0F,&$224
17111     BIC.B #$0F,&$226
17112     BIS.B #4,&$20A
17113     BIC.B #4,&$20C
17114     MOV #RC5_INT,&$FFDE
17115 MOV #%01_0001_0100,&$340
17116     MOV ##3276,&$352
17117     MOV #%10000,&$342
17118     MOV #WDT_INT,&$FFEA
17119 BIC #1,&$130
17120 BIS.B #3,&$20D
17121 MOV &$1808,R8
17122 CMP #4,R8
17123 0= ?GOTO BW1
17124 COLON
17125     #1000 20_US
17126     %011 TOP_LCD
17127     #205 20_US
17128     %011 TOP_LCD
17129     #5 20_US
17130     %011 TOP_LCD
17131     #2 20_US
17132     %010 TOP_LCD
17133     #2 20_US
17134     %00101000 LCD_WRF
17135     %1000 LCD_WRF
17136     LCD_CLEAR
17137     %0110 LCD_WRF
17138     %1100 LCD_WRF
17139     LCD_CLEAR
17140     ['] LCD_HOME IS CR
17141     ['] LCD_WRC  IS EMIT
17142     CR ." I love you"
17143     ['] CR >BODY IS CR
17144     ['] EMIT >BODY IS EMIT
17145     ." RC5toLCD is running. Type STOP to quit"
17146     PWR_STATE ABORT
17147 ;
17148
17149 CODE START
17150 MOV #$4000,R9
17151 MOV #BACKGROUND,2(R9)
17152 MOV #WARM,R9
17153 MOV #SYS_INIT,2(R9)
17154 MOV R9,R0
17155 ENDCODE 
17156
17157 ECHO
17158             ; downloading RC5toLCD.4th is done
17159 RST_HERE    ; this app is protected against <reset>
17160
17161
17162 RST_STATE
17163
17164 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
17165
17166 [UNDEFINED] MARKER [IF]
17167 : MARKER
17168 CREATE
17169 HI2LO
17170 MOV &$1DC8,0(R10)
17171 SUB #2,R8
17172 MOV R8,2(R10)
17173 ADD #4,&$1DC6
17174 LO2HI
17175 DOES>
17176 HI2LO
17177 MOV @R1+,R13
17178 MOV @R14+,&$180E
17179 MOV @R14,&$180C
17180 MOV @R15+,R14
17181 MOV #RST_STATE,R0
17182 ENDCODE
17183 [THEN]
17184
17185 MARKER {RC5TOLCD}
17186
17187 [UNDEFINED] @ [IF]
17188 CODE @
17189 MOV @R14,R14
17190 MOV @R13+,R0
17191 ENDCODE
17192 [THEN]
17193
17194 [UNDEFINED] CONSTANT [IF]
17195 : CONSTANT 
17196 CREATE
17197 HI2LO
17198 MOV R14,-2(R10)
17199 MOV @R15+,R14
17200 MOV @R1+,R13
17201 MOV @R13+,R0
17202 ENDCODE
17203 [THEN]
17204
17205 [UNDEFINED] STATE [IF]
17206 $1DBE CONSTANT STATE
17207 [THEN]
17208
17209 [UNDEFINED] = [IF]
17210 CODE =
17211 SUB @R15+,R14
17212 0<> IF
17213     AND #0,R14
17214     MOV @R13+,R0
17215 THEN
17216 XOR #-1,R14
17217 MOV @R13+,R0
17218 ENDCODE
17219 [THEN]
17220
17221 [UNDEFINED] IF [IF]
17222 CODE IF
17223 SUB #2,R15
17224 MOV R14,0(R15)
17225 MOV &$1DC6,R14
17226 ADD #4,&$1DC6
17227 MOV #$404C,0(R14)
17228 ADD #2,R14
17229 MOV @R13+,R0
17230 ENDCODE IMMEDIATE
17231 [THEN]
17232
17233 [UNDEFINED] THEN [IF]
17234 CODE THEN
17235 MOV &$1DC6,0(R14)
17236 MOV @R15+,R14
17237 MOV @R13+,R0
17238 ENDCODE IMMEDIATE
17239 [THEN]
17240
17241 [UNDEFINED] ELSE [IF]
17242 CODE ELSE
17243 ADD #4,&$1DC6
17244 MOV &$1DC6,R10
17245 MOV #$4048,-4(R10)
17246 MOV R10,0(R14)
17247 SUB #2,R10
17248 MOV R10,R14
17249 MOV @R13+,R0
17250 ENDCODE IMMEDIATE
17251 [THEN]
17252
17253 [UNDEFINED] DEFER [IF]
17254
17255 : DEFER
17256 CREATE
17257 HI2LO
17258 MOV #$4030,-4(R10)
17259 MOV #$402C,-2(R10)
17260 MOV @R1+,R13
17261 MOV @R13+,R0
17262 ENDCODE
17263 [THEN]
17264
17265 [UNDEFINED] DEFER! [IF]
17266 CODE DEFER!
17267 MOV @R15+,2(R14)
17268 MOV @R15+,R14
17269 MOV @R13+,R0
17270 ENDCODE
17271 [THEN]
17272
17273 [UNDEFINED] IS [IF]
17274 : IS
17275 STATE @
17276 IF  POSTPONE ['] POSTPONE DEFER! 
17277 ELSE ' DEFER! 
17278 THEN
17279 ; IMMEDIATE
17280 [THEN]
17281
17282 [UNDEFINED] >BODY [IF]
17283 CODE >BODY
17284 ADD #4,R14
17285 MOV @R13+,R0
17286 ENDCODE
17287 [THEN]
17288
17289
17290 CODE 20_US
17291 BEGIN
17292     BEGIN
17293         BIT #1,&$3C0
17294     0<> UNTIL
17295     BIC #1,&$3C0
17296     SUB #1,R14
17297 U< UNTIL
17298 MOV @R15+,R14
17299 MOV @R13+,R0
17300 ENDCODE
17301
17302 CODE TOP_LCD
17303     BIS.B #4,&$243
17304     BIT.B #1,&$241
17305 0= IF
17306     AND.B #$0F,R14
17307     MOV.B R14,&$222
17308     BIC.B #4,&$243
17309     MOV @R15+,R14
17310     MOV @R13+,R0
17311 THEN
17312     SUB #2,R15
17313     MOV R14,0(R15)
17314     BIC.B #4,&$243
17315     MOV.B &$220,R14
17316     AND.B #$0F,R14
17317     MOV @R13+,R0
17318 ENDCODE
17319
17320 CODE LCD_WRC
17321     BIS.B #2,&$243
17322 BW1 SUB #2,R15
17323     MOV R14,0(R15)
17324     RRUM #4,R14
17325     BIC.B #1,&$243
17326     BIS.B #$0F,&$224
17327 COLON
17328     TOP_LCD 2 20_US
17329     TOP_LCD 2 20_US 
17330 ;
17331
17332 CODE LCD_WRF
17333     BIC.B #2,&$243
17334     GOTO BW1
17335 ENDCODE
17336
17337 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
17338 : LCD_HOME $02 LCD_WRF 100 20_us ;
17339
17340
17341
17342 ASM WDT_INT
17343 ADD #2,R1
17344 BIT.B #$20,&$240
17345 0= IF
17346     CMP #19,&$3D6
17347     U< IF
17348         ADD #1,&$3D6
17349     THEN
17350 ELSE
17351     BIT.B #$40,&$240
17352     0= IF
17353         CMP #3,&$3D6
17354         U>= IF
17355            SUB #1,&$3D6
17356         THEN
17357     THEN
17358 THEN
17359 BW1
17360 MOV @R1+,R0
17361 ENDASM
17362
17363 ASM RC5_INT
17364 ADD #2,R1
17365 $1806 @ 16000 = [IF]
17366     MOV #1,&$3A0
17367 [THEN]
17368 $1806 @ 24000 = [IF]
17369     MOV #2,&$3A0
17370 [THEN]
17371 MOV #1778,R9
17372 MOV #14,R10
17373 BEGIN
17374 MOV #%1011100100,&$380
17375     RRUM    #1,R9
17376     MOV     R9,R8
17377     RRUM    #1,R8
17378     ADD     R9,R8
17379     BEGIN   CMP R8,&$390
17380     U>= UNTIL
17381     BIT.B   #4,&$200
17382     ADDC    R11,R11
17383     MOV.B   &$200,&$208
17384     BIC.B   #4,&$20C
17385     SUB     #1,R10
17386 0<> WHILE
17387     ADD R9,R8
17388     BEGIN
17389         MOV &$390,R9
17390         CMP R8,R9
17391         U>= IF
17392         BIC #$30,&$380
17393         GOTO BW1
17394         THEN
17395         BIT.B #4,&$20C
17396     0<> UNTIL
17397 REPEAT
17398 BIC #$30,&$380
17399 RLAM    #1,R11
17400 MOV.B   R11,R9
17401 RRUM    #2,R9
17402 BIT     #$4000,R11
17403 0= IF   BIS #$40,R9
17404 THEN
17405 RRUM    #3,R11
17406 XOR     @R1,R11
17407 BIT     #$400,R11
17408 0= ?GOTO BW1
17409 XOR #$400,0(R1)
17410 SUB #8,R15
17411 MOV R14,6(R15)
17412 MOV &$1DDC,4(R15)
17413 MOV #$10,&$1DDC
17414 MOV R9,0(R15)
17415 MOV #0,R14
17416 LO2HI
17417     LCD_CLEAR
17418     <# # #S #36 HOLD #>
17419     ['] LCD_WRC IS EMIT
17420     TYPE
17421     ['] EMIT >BODY IS EMIT
17422 HI2LO
17423 MOV @R15+,&$1DDC
17424 MOV @R15+,R14
17425 MOV @R1+,R0
17426 ENDASM
17427
17428 ASM BACKGROUND
17429 BEGIN
17430     CALL &$1814
17431     BIS &$180A,R2
17432 AGAIN
17433 ENDASM
17434
17435 ASM SYS_OUT
17436     MOV #WARM,R9
17437     ADD #4,R9
17438     MOV R9,R0
17439 ENDASM
17440
17441 CODE STOP
17442 BW1 MOV #$4000,R9
17443     ADD #4,R9
17444     MOV R9,-2(R9)
17445     MOV #WARM,R9
17446     MOV #SYS_OUT,2(R9)
17447     BIC.B #4,&$20A
17448     BIC.B #4,&$20C
17449     MOV #0,&$3C0
17450     MOV #0,&$340
17451     MOV #0,&$342
17452     CALL #$400E
17453 COLON
17454 ECHO
17455 ." RC5toLCD is removed,"
17456 ."  type START to restart"
17457  WARM
17458 ;
17459
17460 CODE SYS_INIT
17461 MOV #%10_1101_0100,&$3C0
17462 $1806 @ 16000 = [IF]
17463     MOV #1,&$3E0
17464 [THEN]
17465 $1806 @ 24000 = [IF]
17466     MOV #2,&$3E0
17467 [THEN]
17468     MOV #19,&$3D2
17469 MOV #%0110_0000,&$3C6
17470     MOV #10,&$3D6
17471     BIS.B #$20,&$204
17472     BIS.B #$20,&$20A
17473     BIS.B #7,&$245
17474     BIC.B #7,&$247
17475     BIS.B #$0F,&$224
17476     BIC.B #$0F,&$226
17477     BIS.B #4,&$20A
17478     BIC.B #4,&$20C
17479     MOV #RC5_INT,&$FFDE
17480 MOV #%01_0001_0100,&$340
17481     MOV ##3276,&$352
17482     MOV #%10000,&$342
17483     MOV #WDT_INT,&$FFEA
17484 BIC #1,&$130
17485 BIS.B #3,&$20D
17486 MOV &$1808,R8
17487 CMP #4,R8
17488 0= ?GOTO BW1
17489 COLON
17490     #1000 20_US
17491     %011 TOP_LCD
17492     #205 20_US
17493     %011 TOP_LCD
17494     #5 20_US
17495     %011 TOP_LCD
17496     #2 20_US
17497     %010 TOP_LCD
17498     #2 20_US
17499     %00101000 LCD_WRF
17500     %1000 LCD_WRF
17501     LCD_CLEAR
17502     %0110 LCD_WRF
17503     %1100 LCD_WRF
17504     LCD_CLEAR
17505     ['] LCD_HOME IS CR
17506     ['] LCD_WRC  IS EMIT
17507     CR ." I love you"
17508     ['] CR >BODY IS CR
17509     ['] EMIT >BODY IS EMIT
17510     ." RC5toLCD is running. Type STOP to quit"
17511     PWR_STATE ABORT
17512 ;
17513
17514 CODE START
17515 MOV #$4000,R9
17516 MOV #BACKGROUND,2(R9)
17517 MOV #WARM,R9
17518 MOV #SYS_INIT,2(R9)
17519 MOV R9,R0
17520 ENDCODE 
17521
17522 ECHO
17523             ; downloading RC5toLCD.4th is done
17524 RST_HERE    ; this app is protected against <reset>
17525
17526
17527 RST_STATE
17528
17529 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
17530
17531 [UNDEFINED] MARKER [IF]
17532 : MARKER
17533 CREATE
17534 HI2LO
17535 MOV &$1DC8,0(R10)
17536 SUB #2,R8
17537 MOV R8,2(R10)
17538 ADD #4,&$1DC6
17539 LO2HI
17540 DOES>
17541 HI2LO
17542 MOV @R1+,R13
17543 MOV @R14+,&$180E
17544 MOV @R14,&$180C
17545 MOV @R15+,R14
17546 MOV #RST_STATE,R0
17547 ENDCODE
17548 [THEN]
17549
17550 MARKER {RC5TOLCD}
17551
17552 [UNDEFINED] @ [IF]
17553 CODE @
17554 MOV @R14,R14
17555 MOV @R13+,R0
17556 ENDCODE
17557 [THEN]
17558
17559 [UNDEFINED] CONSTANT [IF]
17560 : CONSTANT 
17561 CREATE
17562 HI2LO
17563 MOV R14,-2(R10)
17564 MOV @R15+,R14
17565 MOV @R1+,R13
17566 MOV @R13+,R0
17567 ENDCODE
17568 [THEN]
17569
17570 [UNDEFINED] STATE [IF]
17571 $1DBE CONSTANT STATE
17572 [THEN]
17573
17574 [UNDEFINED] = [IF]
17575 CODE =
17576 SUB @R15+,R14
17577 0<> IF
17578     AND #0,R14
17579     MOV @R13+,R0
17580 THEN
17581 XOR #-1,R14
17582 MOV @R13+,R0
17583 ENDCODE
17584 [THEN]
17585
17586 [UNDEFINED] IF [IF]
17587 CODE IF
17588 SUB #2,R15
17589 MOV R14,0(R15)
17590 MOV &$1DC6,R14
17591 ADD #4,&$1DC6
17592 MOV #$404C,0(R14)
17593 ADD #2,R14
17594 MOV @R13+,R0
17595 ENDCODE IMMEDIATE
17596 [THEN]
17597
17598 [UNDEFINED] THEN [IF]
17599 CODE THEN
17600 MOV &$1DC6,0(R14)
17601 MOV @R15+,R14
17602 MOV @R13+,R0
17603 ENDCODE IMMEDIATE
17604 [THEN]
17605
17606 [UNDEFINED] ELSE [IF]
17607 CODE ELSE
17608 ADD #4,&$1DC6
17609 MOV &$1DC6,R10
17610 MOV #$4048,-4(R10)
17611 MOV R10,0(R14)
17612 SUB #2,R10
17613 MOV R10,R14
17614 MOV @R13+,R0
17615 ENDCODE IMMEDIATE
17616 [THEN]
17617
17618 [UNDEFINED] DEFER [IF]
17619
17620 : DEFER
17621 CREATE
17622 HI2LO
17623 MOV #$4030,-4(R10)
17624 MOV #$402C,-2(R10)
17625 MOV @R1+,R13
17626 MOV @R13+,R0
17627 ENDCODE
17628 [THEN]
17629
17630 [UNDEFINED] DEFER! [IF]
17631 CODE DEFER!
17632 MOV @R15+,2(R14)
17633 MOV @R15+,R14
17634 MOV @R13+,R0
17635 ENDCODE
17636 [THEN]
17637
17638 [UNDEFINED] IS [IF]
17639 : IS
17640 STATE @
17641 IF  POSTPONE ['] POSTPONE DEFER! 
17642 ELSE ' DEFER! 
17643 THEN
17644 ; IMMEDIATE
17645 [THEN]
17646
17647 [UNDEFINED] >BODY [IF]
17648 CODE >BODY
17649 ADD #4,R14
17650 MOV @R13+,R0
17651 ENDCODE
17652 [THEN]
17653
17654
17655 CODE 20_US
17656 BEGIN
17657     BEGIN
17658         BIT #1,&$3C0
17659     0<> UNTIL
17660     BIC #1,&$3C0
17661     SUB #1,R14
17662 U< UNTIL
17663 MOV @R15+,R14
17664 MOV @R13+,R0
17665 ENDCODE
17666
17667 CODE TOP_LCD
17668     BIS.B #4,&$243
17669     BIT.B #1,&$241
17670 0= IF
17671     AND.B #$0F,R14
17672     MOV.B R14,&$222
17673     BIC.B #4,&$243
17674     MOV @R15+,R14
17675     MOV @R13+,R0
17676 THEN
17677     SUB #2,R15
17678     MOV R14,0(R15)
17679     BIC.B #4,&$243
17680     MOV.B &$220,R14
17681     AND.B #$0F,R14
17682     MOV @R13+,R0
17683 ENDCODE
17684
17685 CODE LCD_WRC
17686     BIS.B #2,&$243
17687 BW1 SUB #2,R15
17688     MOV R14,0(R15)
17689     RRUM #4,R14
17690     BIC.B #1,&$243
17691     BIS.B #$0F,&$224
17692 COLON
17693     TOP_LCD 2 20_US
17694     TOP_LCD 2 20_US 
17695 ;
17696
17697 CODE LCD_WRF
17698     BIC.B #2,&$243
17699     GOTO BW1
17700 ENDCODE
17701
17702 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
17703 : LCD_HOME $02 LCD_WRF 100 20_us ;
17704
17705
17706
17707 ASM WDT_INT
17708 ADD #2,R1
17709 BIT.B #$20,&$240
17710 0= IF
17711     CMP #19,&$3D6
17712     U< IF
17713         ADD #1,&$3D6
17714     THEN
17715 ELSE
17716     BIT.B #$40,&$240
17717     0= IF
17718         CMP #3,&$3D6
17719         U>= IF
17720            SUB #1,&$3D6
17721         THEN
17722     THEN
17723 THEN
17724 BW1
17725 MOV @R1+,R0
17726 ENDASM
17727
17728 ASM RC5_INT
17729 ADD #2,R1
17730 $1806 @ 16000 = [IF]
17731     MOV #1,&$3A0
17732 [THEN]
17733 $1806 @ 24000 = [IF]
17734     MOV #2,&$3A0
17735 [THEN]
17736 MOV #1778,R9
17737 MOV #14,R10
17738 BEGIN
17739 MOV #%1011100100,&$380
17740     RRUM    #1,R9
17741     MOV     R9,R8
17742     RRUM    #1,R8
17743     ADD     R9,R8
17744     BEGIN   CMP R8,&$390
17745     U>= UNTIL
17746     BIT.B   #4,&$200
17747     ADDC    R11,R11
17748     MOV.B   &$200,&$208
17749     BIC.B   #4,&$20C
17750     SUB     #1,R10
17751 0<> WHILE
17752     ADD R9,R8
17753     BEGIN
17754         MOV &$390,R9
17755         CMP R8,R9
17756         U>= IF
17757         BIC #$30,&$380
17758         GOTO BW1
17759         THEN
17760         BIT.B #4,&$20C
17761     0<> UNTIL
17762 REPEAT
17763 BIC #$30,&$380
17764 RLAM    #1,R11
17765 MOV.B   R11,R9
17766 RRUM    #2,R9
17767 BIT     #$4000,R11
17768 0= IF   BIS #$40,R9
17769 THEN
17770 RRUM    #3,R11
17771 XOR     @R1,R11
17772 BIT     #$400,R11
17773 0= ?GOTO BW1
17774 XOR #$400,0(R1)
17775 SUB #8,R15
17776 MOV R14,6(R15)
17777 MOV &$1DDC,4(R15)
17778 MOV #$10,&$1DDC
17779 MOV R9,0(R15)
17780 MOV #0,R14
17781 LO2HI
17782     LCD_CLEAR
17783     <# # #S #36 HOLD #>
17784     ['] LCD_WRC IS EMIT
17785     TYPE
17786     ['] EMIT >BODY IS EMIT
17787 HI2LO
17788 MOV @R15+,&$1DDC
17789 MOV @R15+,R14
17790 MOV @R1+,R0
17791 ENDASM
17792
17793 ASM BACKGROUND
17794 BEGIN
17795     CALL &$1814
17796     BIS &$180A,R2
17797 AGAIN
17798 ENDASM
17799
17800 ASM SYS_OUT
17801     MOV #WARM,R9
17802     ADD #4,R9
17803     MOV R9,R0
17804 ENDASM
17805
17806 CODE STOP
17807 BW1 MOV #$4000,R9
17808     ADD #4,R9
17809     MOV R9,-2(R9)
17810     MOV #WARM,R9
17811     MOV #SYS_OUT,2(R9)
17812     BIC.B #4,&$20A
17813     BIC.B #4,&$20C
17814     MOV #0,&$3C0
17815     MOV #0,&$340
17816     MOV #0,&$342
17817     CALL #$400E
17818 COLON
17819 ECHO
17820 ." RC5toLCD is removed,"
17821 ."  type START to restart"
17822  WARM
17823 ;
17824
17825 CODE SYS_INIT
17826 MOV #%10_1101_0100,&$3C0
17827 $1806 @ 16000 = [IF]
17828     MOV #1,&$3E0
17829 [THEN]
17830 $1806 @ 24000 = [IF]
17831     MOV #2,&$3E0
17832 [THEN]
17833     MOV #19,&$3D2
17834 MOV #%0110_0000,&$3C6
17835     MOV #10,&$3D6
17836     BIS.B #$20,&$204
17837     BIS.B #$20,&$20A
17838     BIS.B #7,&$245
17839     BIC.B #7,&$247
17840     BIS.B #$0F,&$224
17841     BIC.B #$0F,&$226
17842     BIS.B #4,&$20A
17843     BIC.B #4,&$20C
17844     MOV #RC5_INT,&$FFDE
17845 MOV #%01_0001_0100,&$340
17846     MOV ##3276,&$352
17847     MOV #%10000,&$342
17848     MOV #WDT_INT,&$FFEA
17849 BIC #1,&$130
17850 BIS.B #3,&$20D
17851 MOV &$1808,R8
17852 CMP #4,R8
17853 0= ?GOTO BW1
17854 COLON
17855     #1000 20_US
17856     %011 TOP_LCD
17857     #205 20_US
17858     %011 TOP_LCD
17859     #5 20_US
17860     %011 TOP_LCD
17861     #2 20_US
17862     %010 TOP_LCD
17863     #2 20_US
17864     %00101000 LCD_WRF
17865     %1000 LCD_WRF
17866     LCD_CLEAR
17867     %0110 LCD_WRF
17868     %1100 LCD_WRF
17869     LCD_CLEAR
17870     ['] LCD_HOME IS CR
17871     ['] LCD_WRC  IS EMIT
17872     CR ." I love you"
17873     ['] CR >BODY IS CR
17874     ['] EMIT >BODY IS EMIT
17875     ." RC5toLCD is running. Type STOP to quit"
17876     PWR_STATE ABORT
17877 ;
17878
17879 CODE START
17880 MOV #$4000,R9
17881 MOV #BACKGROUND,2(R9)
17882 MOV #WARM,R9
17883 MOV #SYS_INIT,2(R9)
17884 MOV R9,R0
17885 ENDCODE 
17886
17887 ECHO
17888             ; downloading RC5toLCD.4th is done
17889 RST_HERE    ; this app is protected against <reset>
17890
17891
17892 RST_STATE
17893
17894 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
17895
17896 [UNDEFINED] MARKER [IF]
17897 : MARKER
17898 CREATE
17899 HI2LO
17900 MOV &$1DC8,0(R10)
17901 SUB #2,R8
17902 MOV R8,2(R10)
17903 ADD #4,&$1DC6
17904 LO2HI
17905 DOES>
17906 HI2LO
17907 MOV @R1+,R13
17908 MOV @R14+,&$180E
17909 MOV @R14,&$180C
17910 MOV @R15+,R14
17911 MOV #RST_STATE,R0
17912 ENDCODE
17913 [THEN]
17914
17915 MARKER {RC5TOLCD}
17916
17917 [UNDEFINED] @ [IF]
17918 CODE @
17919 MOV @R14,R14
17920 MOV @R13+,R0
17921 ENDCODE
17922 [THEN]
17923
17924 [UNDEFINED] CONSTANT [IF]
17925 : CONSTANT 
17926 CREATE
17927 HI2LO
17928 MOV R14,-2(R10)
17929 MOV @R15+,R14
17930 MOV @R1+,R13
17931 MOV @R13+,R0
17932 ENDCODE
17933 [THEN]
17934
17935 [UNDEFINED] STATE [IF]
17936 $1DBE CONSTANT STATE
17937 [THEN]
17938
17939 [UNDEFINED] = [IF]
17940 CODE =
17941 SUB @R15+,R14
17942 0<> IF
17943     AND #0,R14
17944     MOV @R13+,R0
17945 THEN
17946 XOR #-1,R14
17947 MOV @R13+,R0
17948 ENDCODE
17949 [THEN]
17950
17951 [UNDEFINED] IF [IF]
17952 CODE IF
17953 SUB #2,R15
17954 MOV R14,0(R15)
17955 MOV &$1DC6,R14
17956 ADD #4,&$1DC6
17957 MOV #$404C,0(R14)
17958 ADD #2,R14
17959 MOV @R13+,R0
17960 ENDCODE IMMEDIATE
17961 [THEN]
17962
17963 [UNDEFINED] THEN [IF]
17964 CODE THEN
17965 MOV &$1DC6,0(R14)
17966 MOV @R15+,R14
17967 MOV @R13+,R0
17968 ENDCODE IMMEDIATE
17969 [THEN]
17970
17971 [UNDEFINED] ELSE [IF]
17972 CODE ELSE
17973 ADD #4,&$1DC6
17974 MOV &$1DC6,R10
17975 MOV #$4048,-4(R10)
17976 MOV R10,0(R14)
17977 SUB #2,R10
17978 MOV R10,R14
17979 MOV @R13+,R0
17980 ENDCODE IMMEDIATE
17981 [THEN]
17982
17983 [UNDEFINED] DEFER [IF]
17984
17985 : DEFER
17986 CREATE
17987 HI2LO
17988 MOV #$4030,-4(R10)
17989 MOV #$402C,-2(R10)
17990 MOV @R1+,R13
17991 MOV @R13+,R0
17992 ENDCODE
17993 [THEN]
17994
17995 [UNDEFINED] DEFER! [IF]
17996 CODE DEFER!
17997 MOV @R15+,2(R14)
17998 MOV @R15+,R14
17999 MOV @R13+,R0
18000 ENDCODE
18001 [THEN]
18002
18003 [UNDEFINED] IS [IF]
18004 : IS
18005 STATE @
18006 IF  POSTPONE ['] POSTPONE DEFER! 
18007 ELSE ' DEFER! 
18008 THEN
18009 ; IMMEDIATE
18010 [THEN]
18011
18012 [UNDEFINED] >BODY [IF]
18013 CODE >BODY
18014 ADD #4,R14
18015 MOV @R13+,R0
18016 ENDCODE
18017 [THEN]
18018
18019
18020 CODE 20_US
18021 BEGIN
18022     BEGIN
18023         BIT #1,&$3C0
18024     0<> UNTIL
18025     BIC #1,&$3C0
18026     SUB #1,R14
18027 U< UNTIL
18028 MOV @R15+,R14
18029 MOV @R13+,R0
18030 ENDCODE
18031
18032 CODE TOP_LCD
18033     BIS.B #4,&$243
18034     BIT.B #1,&$241
18035 0= IF
18036     AND.B #$0F,R14
18037     MOV.B R14,&$222
18038     BIC.B #4,&$243
18039     MOV @R15+,R14
18040     MOV @R13+,R0
18041 THEN
18042     SUB #2,R15
18043     MOV R14,0(R15)
18044     BIC.B #4,&$243
18045     MOV.B &$220,R14
18046     AND.B #$0F,R14
18047     MOV @R13+,R0
18048 ENDCODE
18049
18050 CODE LCD_WRC
18051     BIS.B #2,&$243
18052 BW1 SUB #2,R15
18053     MOV R14,0(R15)
18054     RRUM #4,R14
18055     BIC.B #1,&$243
18056     BIS.B #$0F,&$224
18057 COLON
18058     TOP_LCD 2 20_US
18059     TOP_LCD 2 20_US 
18060 ;
18061
18062 CODE LCD_WRF
18063     BIC.B #2,&$243
18064     GOTO BW1
18065 ENDCODE
18066
18067 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
18068 : LCD_HOME $02 LCD_WRF 100 20_us ;
18069
18070
18071
18072 ASM WDT_INT
18073 ADD #2,R1
18074 BIT.B #$20,&$240
18075 0= IF
18076     CMP #19,&$3D6
18077     U< IF
18078         ADD #1,&$3D6
18079     THEN
18080 ELSE
18081     BIT.B #$40,&$240
18082     0= IF
18083         CMP #3,&$3D6
18084         U>= IF
18085            SUB #1,&$3D6
18086         THEN
18087     THEN
18088 THEN
18089 BW1
18090 MOV @R1+,R0
18091 ENDASM
18092
18093 ASM RC5_INT
18094 ADD #2,R1
18095 $1806 @ 16000 = [IF]
18096     MOV #1,&$3A0
18097 [THEN]
18098 $1806 @ 24000 = [IF]
18099     MOV #2,&$3A0
18100 [THEN]
18101 MOV #1778,R9
18102 MOV #14,R10
18103 BEGIN
18104 MOV #%1011100100,&$380
18105     RRUM    #1,R9
18106     MOV     R9,R8
18107     RRUM    #1,R8
18108     ADD     R9,R8
18109     BEGIN   CMP R8,&$390
18110     U>= UNTIL
18111     BIT.B   #4,&$200
18112     ADDC    R11,R11
18113     MOV.B   &$200,&$208
18114     BIC.B   #4,&$20C
18115     SUB     #1,R10
18116 0<> WHILE
18117     ADD R9,R8
18118     BEGIN
18119         MOV &$390,R9
18120         CMP R8,R9
18121         U>= IF
18122         BIC #$30,&$380
18123         GOTO BW1
18124         THEN
18125         BIT.B #4,&$20C
18126     0<> UNTIL
18127 REPEAT
18128 BIC #$30,&$380
18129 RLAM    #1,R11
18130 MOV.B   R11,R9
18131 RRUM    #2,R9
18132 BIT     #$4000,R11
18133 0= IF   BIS #$40,R9
18134 THEN
18135 RRUM    #3,R11
18136 XOR     @R1,R11
18137 BIT     #$400,R11
18138 0= ?GOTO BW1
18139 XOR #$400,0(R1)
18140 SUB #8,R15
18141 MOV R14,6(R15)
18142 MOV &$1DDC,4(R15)
18143 MOV #$10,&$1DDC
18144 MOV R9,0(R15)
18145 MOV #0,R14
18146 LO2HI
18147     LCD_CLEAR
18148     <# # #S #36 HOLD #>
18149     ['] LCD_WRC IS EMIT
18150     TYPE
18151     ['] EMIT >BODY IS EMIT
18152 HI2LO
18153 MOV @R15+,&$1DDC
18154 MOV @R15+,R14
18155 MOV @R1+,R0
18156 ENDASM
18157
18158 ASM BACKGROUND
18159 BEGIN
18160     CALL &$1814
18161     BIS &$180A,R2
18162 AGAIN
18163 ENDASM
18164
18165 ASM SYS_OUT
18166     MOV #WARM,R9
18167     ADD #4,R9
18168     MOV R9,R0
18169 ENDASM
18170
18171 CODE STOP
18172 BW1 MOV #$4000,R9
18173     ADD #4,R9
18174     MOV R9,-2(R9)
18175     MOV #WARM,R9
18176     MOV #SYS_OUT,2(R9)
18177     BIC.B #4,&$20A
18178     BIC.B #4,&$20C
18179     MOV #0,&$3C0
18180     MOV #0,&$340
18181     MOV #0,&$342
18182     CALL #$400E
18183 COLON
18184 ECHO
18185 ." RC5toLCD is removed,"
18186 ."  type START to restart"
18187  WARM
18188 ;
18189
18190 CODE SYS_INIT
18191 MOV #%10_1101_0100,&$3C0
18192 $1806 @ 16000 = [IF]
18193     MOV #1,&$3E0
18194 [THEN]
18195 $1806 @ 24000 = [IF]
18196     MOV #2,&$3E0
18197 [THEN]
18198     MOV #19,&$3D2
18199 MOV #%0110_0000,&$3C6
18200     MOV #10,&$3D6
18201     BIS.B #$20,&$204
18202     BIS.B #$20,&$20A
18203     BIS.B #7,&$245
18204     BIC.B #7,&$247
18205     BIS.B #$0F,&$224
18206     BIC.B #$0F,&$226
18207     BIS.B #4,&$20A
18208     BIC.B #4,&$20C
18209     MOV #RC5_INT,&$FFDE
18210 MOV #%01_0001_0100,&$340
18211     MOV ##3276,&$352
18212     MOV #%10000,&$342
18213     MOV #WDT_INT,&$FFEA
18214 BIC #1,&$130
18215 BIS.B #3,&$20D
18216 MOV &$1808,R8
18217 CMP #4,R8
18218 0= ?GOTO BW1
18219 COLON
18220     #1000 20_US
18221     %011 TOP_LCD
18222     #205 20_US
18223     %011 TOP_LCD
18224     #5 20_US
18225     %011 TOP_LCD
18226     #2 20_US
18227     %010 TOP_LCD
18228     #2 20_US
18229     %00101000 LCD_WRF
18230     %1000 LCD_WRF
18231     LCD_CLEAR
18232     %0110 LCD_WRF
18233     %1100 LCD_WRF
18234     LCD_CLEAR
18235     ['] LCD_HOME IS CR
18236     ['] LCD_WRC  IS EMIT
18237     CR ." I love you"
18238     ['] CR >BODY IS CR
18239     ['] EMIT >BODY IS EMIT
18240     ." RC5toLCD is running. Type STOP to quit"
18241     PWR_STATE ABORT
18242 ;
18243
18244 CODE START
18245 MOV #$4000,R9
18246 MOV #BACKGROUND,2(R9)
18247 MOV #WARM,R9
18248 MOV #SYS_INIT,2(R9)
18249 MOV R9,R0
18250 ENDCODE 
18251
18252 ECHO
18253             ; downloading RC5toLCD.4th is done
18254 RST_HERE    ; this app is protected against <reset>
18255
18256
18257 RST_STATE
18258
18259 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
18260
18261 [UNDEFINED] MARKER [IF]
18262 : MARKER
18263 CREATE
18264 HI2LO
18265 MOV &$1DC8,0(R10)
18266 SUB #2,R8
18267 MOV R8,2(R10)
18268 ADD #4,&$1DC6
18269 LO2HI
18270 DOES>
18271 HI2LO
18272 MOV @R1+,R13
18273 MOV @R14+,&$180E
18274 MOV @R14,&$180C
18275 MOV @R15+,R14
18276 MOV #RST_STATE,R0
18277 ENDCODE
18278 [THEN]
18279
18280 MARKER {RC5TOLCD}
18281
18282 [UNDEFINED] @ [IF]
18283 CODE @
18284 MOV @R14,R14
18285 MOV @R13+,R0
18286 ENDCODE
18287 [THEN]
18288
18289 [UNDEFINED] CONSTANT [IF]
18290 : CONSTANT 
18291 CREATE
18292 HI2LO
18293 MOV R14,-2(R10)
18294 MOV @R15+,R14
18295 MOV @R1+,R13
18296 MOV @R13+,R0
18297 ENDCODE
18298 [THEN]
18299
18300 [UNDEFINED] STATE [IF]
18301 $1DBE CONSTANT STATE
18302 [THEN]
18303
18304 [UNDEFINED] = [IF]
18305 CODE =
18306 SUB @R15+,R14
18307 0<> IF
18308     AND #0,R14
18309     MOV @R13+,R0
18310 THEN
18311 XOR #-1,R14
18312 MOV @R13+,R0
18313 ENDCODE
18314 [THEN]
18315
18316 [UNDEFINED] IF [IF]
18317 CODE IF
18318 SUB #2,R15
18319 MOV R14,0(R15)
18320 MOV &$1DC6,R14
18321 ADD #4,&$1DC6
18322 MOV #$404C,0(R14)
18323 ADD #2,R14
18324 MOV @R13+,R0
18325 ENDCODE IMMEDIATE
18326 [THEN]
18327
18328 [UNDEFINED] THEN [IF]
18329 CODE THEN
18330 MOV &$1DC6,0(R14)
18331 MOV @R15+,R14
18332 MOV @R13+,R0
18333 ENDCODE IMMEDIATE
18334 [THEN]
18335
18336 [UNDEFINED] ELSE [IF]
18337 CODE ELSE
18338 ADD #4,&$1DC6
18339 MOV &$1DC6,R10
18340 MOV #$4048,-4(R10)
18341 MOV R10,0(R14)
18342 SUB #2,R10
18343 MOV R10,R14
18344 MOV @R13+,R0
18345 ENDCODE IMMEDIATE
18346 [THEN]
18347
18348 [UNDEFINED] DEFER [IF]
18349
18350 : DEFER
18351 CREATE
18352 HI2LO
18353 MOV #$4030,-4(R10)
18354 MOV #$402C,-2(R10)
18355 MOV @R1+,R13
18356 MOV @R13+,R0
18357 ENDCODE
18358 [THEN]
18359
18360 [UNDEFINED] DEFER! [IF]
18361 CODE DEFER!
18362 MOV @R15+,2(R14)
18363 MOV @R15+,R14
18364 MOV @R13+,R0
18365 ENDCODE
18366 [THEN]
18367
18368 [UNDEFINED] IS [IF]
18369 : IS
18370 STATE @
18371 IF  POSTPONE ['] POSTPONE DEFER! 
18372 ELSE ' DEFER! 
18373 THEN
18374 ; IMMEDIATE
18375 [THEN]
18376
18377 [UNDEFINED] >BODY [IF]
18378 CODE >BODY
18379 ADD #4,R14
18380 MOV @R13+,R0
18381 ENDCODE
18382 [THEN]
18383
18384
18385 CODE 20_US
18386 BEGIN
18387     BEGIN
18388         BIT #1,&$3C0
18389     0<> UNTIL
18390     BIC #1,&$3C0
18391     SUB #1,R14
18392 U< UNTIL
18393 MOV @R15+,R14
18394 MOV @R13+,R0
18395 ENDCODE
18396
18397 CODE TOP_LCD
18398     BIS.B #4,&$243
18399     BIT.B #1,&$241
18400 0= IF
18401     AND.B #$0F,R14
18402     MOV.B R14,&$222
18403     BIC.B #4,&$243
18404     MOV @R15+,R14
18405     MOV @R13+,R0
18406 THEN
18407     SUB #2,R15
18408     MOV R14,0(R15)
18409     BIC.B #4,&$243
18410     MOV.B &$220,R14
18411     AND.B #$0F,R14
18412     MOV @R13+,R0
18413 ENDCODE
18414
18415 CODE LCD_WRC
18416     BIS.B #2,&$243
18417 BW1 SUB #2,R15
18418     MOV R14,0(R15)
18419     RRUM #4,R14
18420     BIC.B #1,&$243
18421     BIS.B #$0F,&$224
18422 COLON
18423     TOP_LCD 2 20_US
18424     TOP_LCD 2 20_US 
18425 ;
18426
18427 CODE LCD_WRF
18428     BIC.B #2,&$243
18429     GOTO BW1
18430 ENDCODE
18431
18432 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
18433 : LCD_HOME $02 LCD_WRF 100 20_us ;
18434
18435
18436
18437 ASM WDT_INT
18438 ADD #2,R1
18439 BIT.B #$20,&$240
18440 0= IF
18441     CMP #19,&$3D6
18442     U< IF
18443         ADD #1,&$3D6
18444     THEN
18445 ELSE
18446     BIT.B #$40,&$240
18447     0= IF
18448         CMP #3,&$3D6
18449         U>= IF
18450            SUB #1,&$3D6
18451         THEN
18452     THEN
18453 THEN
18454 BW1
18455 MOV @R1+,R0
18456 ENDASM
18457
18458 ASM RC5_INT
18459 ADD #2,R1
18460 $1806 @ 16000 = [IF]
18461     MOV #1,&$3A0
18462 [THEN]
18463 $1806 @ 24000 = [IF]
18464     MOV #2,&$3A0
18465 [THEN]
18466 MOV #1778,R9
18467 MOV #14,R10
18468 BEGIN
18469 MOV #%1011100100,&$380
18470     RRUM    #1,R9
18471     MOV     R9,R8
18472     RRUM    #1,R8
18473     ADD     R9,R8
18474     BEGIN   CMP R8,&$390
18475     U>= UNTIL
18476     BIT.B   #4,&$200
18477     ADDC    R11,R11
18478     MOV.B   &$200,&$208
18479     BIC.B   #4,&$20C
18480     SUB     #1,R10
18481 0<> WHILE
18482     ADD R9,R8
18483     BEGIN
18484         MOV &$390,R9
18485         CMP R8,R9
18486         U>= IF
18487         BIC #$30,&$380
18488         GOTO BW1
18489         THEN
18490         BIT.B #4,&$20C
18491     0<> UNTIL
18492 REPEAT
18493 BIC #$30,&$380
18494 RLAM    #1,R11
18495 MOV.B   R11,R9
18496 RRUM    #2,R9
18497 BIT     #$4000,R11
18498 0= IF   BIS #$40,R9
18499 THEN
18500 RRUM    #3,R11
18501 XOR     @R1,R11
18502 BIT     #$400,R11
18503 0= ?GOTO BW1
18504 XOR #$400,0(R1)
18505 SUB #8,R15
18506 MOV R14,6(R15)
18507 MOV &$1DDC,4(R15)
18508 MOV #$10,&$1DDC
18509 MOV R9,0(R15)
18510 MOV #0,R14
18511 LO2HI
18512     LCD_CLEAR
18513     <# # #S #36 HOLD #>
18514     ['] LCD_WRC IS EMIT
18515     TYPE
18516     ['] EMIT >BODY IS EMIT
18517 HI2LO
18518 MOV @R15+,&$1DDC
18519 MOV @R15+,R14
18520 MOV @R1+,R0
18521 ENDASM
18522
18523 ASM BACKGROUND
18524 BEGIN
18525     CALL &$1814
18526     BIS &$180A,R2
18527 AGAIN
18528 ENDASM
18529
18530 ASM SYS_OUT
18531     MOV #WARM,R9
18532     ADD #4,R9
18533     MOV R9,R0
18534 ENDASM
18535
18536 CODE STOP
18537 BW1 MOV #$4000,R9
18538     ADD #4,R9
18539     MOV R9,-2(R9)
18540     MOV #WARM,R9
18541     MOV #SYS_OUT,2(R9)
18542     BIC.B #4,&$20A
18543     BIC.B #4,&$20C
18544     MOV #0,&$3C0
18545     MOV #0,&$340
18546     MOV #0,&$342
18547     CALL #$400E
18548 COLON
18549 ECHO
18550 ." RC5toLCD is removed,"
18551 ."  type START to restart"
18552  WARM
18553 ;
18554
18555 CODE SYS_INIT
18556 MOV #%10_1101_0100,&$3C0
18557 $1806 @ 16000 = [IF]
18558     MOV #1,&$3E0
18559 [THEN]
18560 $1806 @ 24000 = [IF]
18561     MOV #2,&$3E0
18562 [THEN]
18563     MOV #19,&$3D2
18564 MOV #%0110_0000,&$3C6
18565     MOV #10,&$3D6
18566     BIS.B #$20,&$204
18567     BIS.B #$20,&$20A
18568     BIS.B #7,&$245
18569     BIC.B #7,&$247
18570     BIS.B #$0F,&$224
18571     BIC.B #$0F,&$226
18572     BIS.B #4,&$20A
18573     BIC.B #4,&$20C
18574     MOV #RC5_INT,&$FFDE
18575 MOV #%01_0001_0100,&$340
18576     MOV ##3276,&$352
18577     MOV #%10000,&$342
18578     MOV #WDT_INT,&$FFEA
18579 BIC #1,&$130
18580 BIS.B #3,&$20D
18581 MOV &$1808,R8
18582 CMP #4,R8
18583 0= ?GOTO BW1
18584 COLON
18585     #1000 20_US
18586     %011 TOP_LCD
18587     #205 20_US
18588     %011 TOP_LCD
18589     #5 20_US
18590     %011 TOP_LCD
18591     #2 20_US
18592     %010 TOP_LCD
18593     #2 20_US
18594     %00101000 LCD_WRF
18595     %1000 LCD_WRF
18596     LCD_CLEAR
18597     %0110 LCD_WRF
18598     %1100 LCD_WRF
18599     LCD_CLEAR
18600     ['] LCD_HOME IS CR
18601     ['] LCD_WRC  IS EMIT
18602     CR ." I love you"
18603     ['] CR >BODY IS CR
18604     ['] EMIT >BODY IS EMIT
18605     ." RC5toLCD is running. Type STOP to quit"
18606     PWR_STATE ABORT
18607 ;
18608
18609 CODE START
18610 MOV #$4000,R9
18611 MOV #BACKGROUND,2(R9)
18612 MOV #WARM,R9
18613 MOV #SYS_INIT,2(R9)
18614 MOV R9,R0
18615 ENDCODE 
18616
18617 ECHO
18618             ; downloading RC5toLCD.4th is done
18619 RST_HERE    ; this app is protected against <reset>
18620
18621
18622 RST_STATE
18623
18624 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
18625
18626 [UNDEFINED] MARKER [IF]
18627 : MARKER
18628 CREATE
18629 HI2LO
18630 MOV &$1DC8,0(R10)
18631 SUB #2,R8
18632 MOV R8,2(R10)
18633 ADD #4,&$1DC6
18634 LO2HI
18635 DOES>
18636 HI2LO
18637 MOV @R1+,R13
18638 MOV @R14+,&$180E
18639 MOV @R14,&$180C
18640 MOV @R15+,R14
18641 MOV #RST_STATE,R0
18642 ENDCODE
18643 [THEN]
18644
18645 MARKER {RC5TOLCD}
18646
18647 [UNDEFINED] @ [IF]
18648 CODE @
18649 MOV @R14,R14
18650 MOV @R13+,R0
18651 ENDCODE
18652 [THEN]
18653
18654 [UNDEFINED] CONSTANT [IF]
18655 : CONSTANT 
18656 CREATE
18657 HI2LO
18658 MOV R14,-2(R10)
18659 MOV @R15+,R14
18660 MOV @R1+,R13
18661 MOV @R13+,R0
18662 ENDCODE
18663 [THEN]
18664
18665 [UNDEFINED] STATE [IF]
18666 $1DBE CONSTANT STATE
18667 [THEN]
18668
18669 [UNDEFINED] = [IF]
18670 CODE =
18671 SUB @R15+,R14
18672 0<> IF
18673     AND #0,R14
18674     MOV @R13+,R0
18675 THEN
18676 XOR #-1,R14
18677 MOV @R13+,R0
18678 ENDCODE
18679 [THEN]
18680
18681 [UNDEFINED] IF [IF]
18682 CODE IF
18683 SUB #2,R15
18684 MOV R14,0(R15)
18685 MOV &$1DC6,R14
18686 ADD #4,&$1DC6
18687 MOV #$404C,0(R14)
18688 ADD #2,R14
18689 MOV @R13+,R0
18690 ENDCODE IMMEDIATE
18691 [THEN]
18692
18693 [UNDEFINED] THEN [IF]
18694 CODE THEN
18695 MOV &$1DC6,0(R14)
18696 MOV @R15+,R14
18697 MOV @R13+,R0
18698 ENDCODE IMMEDIATE
18699 [THEN]
18700
18701 [UNDEFINED] ELSE [IF]
18702 CODE ELSE
18703 ADD #4,&$1DC6
18704 MOV &$1DC6,R10
18705 MOV #$4048,-4(R10)
18706 MOV R10,0(R14)
18707 SUB #2,R10
18708 MOV R10,R14
18709 MOV @R13+,R0
18710 ENDCODE IMMEDIATE
18711 [THEN]
18712
18713 [UNDEFINED] DEFER [IF]
18714
18715 : DEFER
18716 CREATE
18717 HI2LO
18718 MOV #$4030,-4(R10)
18719 MOV #$402C,-2(R10)
18720 MOV @R1+,R13
18721 MOV @R13+,R0
18722 ENDCODE
18723 [THEN]
18724
18725 [UNDEFINED] DEFER! [IF]
18726 CODE DEFER!
18727 MOV @R15+,2(R14)
18728 MOV @R15+,R14
18729 MOV @R13+,R0
18730 ENDCODE
18731 [THEN]
18732
18733 [UNDEFINED] IS [IF]
18734 : IS
18735 STATE @
18736 IF  POSTPONE ['] POSTPONE DEFER! 
18737 ELSE ' DEFER! 
18738 THEN
18739 ; IMMEDIATE
18740 [THEN]
18741
18742 [UNDEFINED] >BODY [IF]
18743 CODE >BODY
18744 ADD #4,R14
18745 MOV @R13+,R0
18746 ENDCODE
18747 [THEN]
18748
18749
18750 CODE 20_US
18751 BEGIN
18752     BEGIN
18753         BIT #1,&$3C0
18754     0<> UNTIL
18755     BIC #1,&$3C0
18756     SUB #1,R14
18757 U< UNTIL
18758 MOV @R15+,R14
18759 MOV @R13+,R0
18760 ENDCODE
18761
18762 CODE TOP_LCD
18763     BIS.B #4,&$243
18764     BIT.B #1,&$241
18765 0= IF
18766     AND.B #$0F,R14
18767     MOV.B R14,&$222
18768     BIC.B #4,&$243
18769     MOV @R15+,R14
18770     MOV @R13+,R0
18771 THEN
18772     SUB #2,R15
18773     MOV R14,0(R15)
18774     BIC.B #4,&$243
18775     MOV.B &$220,R14
18776     AND.B #$0F,R14
18777     MOV @R13+,R0
18778 ENDCODE
18779
18780 CODE LCD_WRC
18781     BIS.B #2,&$243
18782 BW1 SUB #2,R15
18783     MOV R14,0(R15)
18784     RRUM #4,R14
18785     BIC.B #1,&$243
18786     BIS.B #$0F,&$224
18787 COLON
18788     TOP_LCD 2 20_US
18789     TOP_LCD 2 20_US 
18790 ;
18791
18792 CODE LCD_WRF
18793     BIC.B #2,&$243
18794     GOTO BW1
18795 ENDCODE
18796
18797 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
18798 : LCD_HOME $02 LCD_WRF 100 20_us ;
18799
18800
18801
18802 ASM WDT_INT
18803 ADD #2,R1
18804 BIT.B #$20,&$240
18805 0= IF
18806     CMP #19,&$3D6
18807     U< IF
18808         ADD #1,&$3D6
18809     THEN
18810 ELSE
18811     BIT.B #$40,&$240
18812     0= IF
18813         CMP #3,&$3D6
18814         U>= IF
18815            SUB #1,&$3D6
18816         THEN
18817     THEN
18818 THEN
18819 BW1
18820 MOV @R1+,R0
18821 ENDASM
18822
18823 ASM RC5_INT
18824 ADD #2,R1
18825 $1806 @ 16000 = [IF]
18826     MOV #1,&$3A0
18827 [THEN]
18828 $1806 @ 24000 = [IF]
18829     MOV #2,&$3A0
18830 [THEN]
18831 MOV #1778,R9
18832 MOV #14,R10
18833 BEGIN
18834 MOV #%1011100100,&$380
18835     RRUM    #1,R9
18836     MOV     R9,R8
18837     RRUM    #1,R8
18838     ADD     R9,R8
18839     BEGIN   CMP R8,&$390
18840     U>= UNTIL
18841     BIT.B   #4,&$200
18842     ADDC    R11,R11
18843     MOV.B   &$200,&$208
18844     BIC.B   #4,&$20C
18845     SUB     #1,R10
18846 0<> WHILE
18847     ADD R9,R8
18848     BEGIN
18849         MOV &$390,R9
18850         CMP R8,R9
18851         U>= IF
18852         BIC #$30,&$380
18853         GOTO BW1
18854         THEN
18855         BIT.B #4,&$20C
18856     0<> UNTIL
18857 REPEAT
18858 BIC #$30,&$380
18859 RLAM    #1,R11
18860 MOV.B   R11,R9
18861 RRUM    #2,R9
18862 BIT     #$4000,R11
18863 0= IF   BIS #$40,R9
18864 THEN
18865 RRUM    #3,R11
18866 XOR     @R1,R11
18867 BIT     #$400,R11
18868 0= ?GOTO BW1
18869 XOR #$400,0(R1)
18870 SUB #8,R15
18871 MOV R14,6(R15)
18872 MOV &$1DDC,4(R15)
18873 MOV #$10,&$1DDC
18874 MOV R9,0(R15)
18875 MOV #0,R14
18876 LO2HI
18877     LCD_CLEAR
18878     <# # #S #36 HOLD #>
18879     ['] LCD_WRC IS EMIT
18880     TYPE
18881     ['] EMIT >BODY IS EMIT
18882 HI2LO
18883 MOV @R15+,&$1DDC
18884 MOV @R15+,R14
18885 MOV @R1+,R0
18886 ENDASM
18887
18888 ASM BACKGROUND
18889 BEGIN
18890     CALL &$1814
18891     BIS &$180A,R2
18892 AGAIN
18893 ENDASM
18894
18895 ASM SYS_OUT
18896     MOV #WARM,R9
18897     ADD #4,R9
18898     MOV R9,R0
18899 ENDASM
18900
18901 CODE STOP
18902 BW1 MOV #$4000,R9
18903     ADD #4,R9
18904     MOV R9,-2(R9)
18905     MOV #WARM,R9
18906     MOV #SYS_OUT,2(R9)
18907     BIC.B #4,&$20A
18908     BIC.B #4,&$20C
18909     MOV #0,&$3C0
18910     MOV #0,&$340
18911     MOV #0,&$342
18912     CALL #$400E
18913 COLON
18914 ECHO
18915 ." RC5toLCD is removed,"
18916 ."  type START to restart"
18917  WARM
18918 ;
18919
18920 CODE SYS_INIT
18921 MOV #%10_1101_0100,&$3C0
18922 $1806 @ 16000 = [IF]
18923     MOV #1,&$3E0
18924 [THEN]
18925 $1806 @ 24000 = [IF]
18926     MOV #2,&$3E0
18927 [THEN]
18928     MOV #19,&$3D2
18929 MOV #%0110_0000,&$3C6
18930     MOV #10,&$3D6
18931     BIS.B #$20,&$204
18932     BIS.B #$20,&$20A
18933     BIS.B #7,&$245
18934     BIC.B #7,&$247
18935     BIS.B #$0F,&$224
18936     BIC.B #$0F,&$226
18937     BIS.B #4,&$20A
18938     BIC.B #4,&$20C
18939     MOV #RC5_INT,&$FFDE
18940 MOV #%01_0001_0100,&$340
18941     MOV ##3276,&$352
18942     MOV #%10000,&$342
18943     MOV #WDT_INT,&$FFEA
18944 BIC #1,&$130
18945 BIS.B #3,&$20D
18946 MOV &$1808,R8
18947 CMP #4,R8
18948 0= ?GOTO BW1
18949 COLON
18950     #1000 20_US
18951     %011 TOP_LCD
18952     #205 20_US
18953     %011 TOP_LCD
18954     #5 20_US
18955     %011 TOP_LCD
18956     #2 20_US
18957     %010 TOP_LCD
18958     #2 20_US
18959     %00101000 LCD_WRF
18960     %1000 LCD_WRF
18961     LCD_CLEAR
18962     %0110 LCD_WRF
18963     %1100 LCD_WRF
18964     LCD_CLEAR
18965     ['] LCD_HOME IS CR
18966     ['] LCD_WRC  IS EMIT
18967     CR ." I love you"
18968     ['] CR >BODY IS CR
18969     ['] EMIT >BODY IS EMIT
18970     ." RC5toLCD is running. Type STOP to quit"
18971     PWR_STATE ABORT
18972 ;
18973
18974 CODE START
18975 MOV #$4000,R9
18976 MOV #BACKGROUND,2(R9)
18977 MOV #WARM,R9
18978 MOV #SYS_INIT,2(R9)
18979 MOV R9,R0
18980 ENDCODE 
18981
18982 ECHO
18983             ; downloading RC5toLCD.4th is done
18984 RST_HERE    ; this app is protected against <reset>
18985
18986
18987 RST_STATE
18988
18989 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
18990
18991 [UNDEFINED] MARKER [IF]
18992 : MARKER
18993 CREATE
18994 HI2LO
18995 MOV &$1DC8,0(R10)
18996 SUB #2,R8
18997 MOV R8,2(R10)
18998 ADD #4,&$1DC6
18999 LO2HI
19000 DOES>
19001 HI2LO
19002 MOV @R1+,R13
19003 MOV @R14+,&$180E
19004 MOV @R14,&$180C
19005 MOV @R15+,R14
19006 MOV #RST_STATE,R0
19007 ENDCODE
19008 [THEN]
19009
19010 MARKER {RC5TOLCD}
19011
19012 [UNDEFINED] @ [IF]
19013 CODE @
19014 MOV @R14,R14
19015 MOV @R13+,R0
19016 ENDCODE
19017 [THEN]
19018
19019 [UNDEFINED] CONSTANT [IF]
19020 : CONSTANT 
19021 CREATE
19022 HI2LO
19023 MOV R14,-2(R10)
19024 MOV @R15+,R14
19025 MOV @R1+,R13
19026 MOV @R13+,R0
19027 ENDCODE
19028 [THEN]
19029
19030 [UNDEFINED] STATE [IF]
19031 $1DBE CONSTANT STATE
19032 [THEN]
19033
19034 [UNDEFINED] = [IF]
19035 CODE =
19036 SUB @R15+,R14
19037 0<> IF
19038     AND #0,R14
19039     MOV @R13+,R0
19040 THEN
19041 XOR #-1,R14
19042 MOV @R13+,R0
19043 ENDCODE
19044 [THEN]
19045
19046 [UNDEFINED] IF [IF]
19047 CODE IF
19048 SUB #2,R15
19049 MOV R14,0(R15)
19050 MOV &$1DC6,R14
19051 ADD #4,&$1DC6
19052 MOV #$404C,0(R14)
19053 ADD #2,R14
19054 MOV @R13+,R0
19055 ENDCODE IMMEDIATE
19056 [THEN]
19057
19058 [UNDEFINED] THEN [IF]
19059 CODE THEN
19060 MOV &$1DC6,0(R14)
19061 MOV @R15+,R14
19062 MOV @R13+,R0
19063 ENDCODE IMMEDIATE
19064 [THEN]
19065
19066 [UNDEFINED] ELSE [IF]
19067 CODE ELSE
19068 ADD #4,&$1DC6
19069 MOV &$1DC6,R10
19070 MOV #$4048,-4(R10)
19071 MOV R10,0(R14)
19072 SUB #2,R10
19073 MOV R10,R14
19074 MOV @R13+,R0
19075 ENDCODE IMMEDIATE
19076 [THEN]
19077
19078 [UNDEFINED] DEFER [IF]
19079
19080 : DEFER
19081 CREATE
19082 HI2LO
19083 MOV #$4030,-4(R10)
19084 MOV #$402C,-2(R10)
19085 MOV @R1+,R13
19086 MOV @R13+,R0
19087 ENDCODE
19088 [THEN]
19089
19090 [UNDEFINED] DEFER! [IF]
19091 CODE DEFER!
19092 MOV @R15+,2(R14)
19093 MOV @R15+,R14
19094 MOV @R13+,R0
19095 ENDCODE
19096 [THEN]
19097
19098 [UNDEFINED] IS [IF]
19099 : IS
19100 STATE @
19101 IF  POSTPONE ['] POSTPONE DEFER! 
19102 ELSE ' DEFER! 
19103 THEN
19104 ; IMMEDIATE
19105 [THEN]
19106
19107 [UNDEFINED] >BODY [IF]
19108 CODE >BODY
19109 ADD #4,R14
19110 MOV @R13+,R0
19111 ENDCODE
19112 [THEN]
19113
19114
19115 CODE 20_US
19116 BEGIN
19117     BEGIN
19118         BIT #1,&$3C0
19119     0<> UNTIL
19120     BIC #1,&$3C0
19121     SUB #1,R14
19122 U< UNTIL
19123 MOV @R15+,R14
19124 MOV @R13+,R0
19125 ENDCODE
19126
19127 CODE TOP_LCD
19128     BIS.B #4,&$243
19129     BIT.B #1,&$241
19130 0= IF
19131     AND.B #$0F,R14
19132     MOV.B R14,&$222
19133     BIC.B #4,&$243
19134     MOV @R15+,R14
19135     MOV @R13+,R0
19136 THEN
19137     SUB #2,R15
19138     MOV R14,0(R15)
19139     BIC.B #4,&$243
19140     MOV.B &$220,R14
19141     AND.B #$0F,R14
19142     MOV @R13+,R0
19143 ENDCODE
19144
19145 CODE LCD_WRC
19146     BIS.B #2,&$243
19147 BW1 SUB #2,R15
19148     MOV R14,0(R15)
19149     RRUM #4,R14
19150     BIC.B #1,&$243
19151     BIS.B #$0F,&$224
19152 COLON
19153     TOP_LCD 2 20_US
19154     TOP_LCD 2 20_US 
19155 ;
19156
19157 CODE LCD_WRF
19158     BIC.B #2,&$243
19159     GOTO BW1
19160 ENDCODE
19161
19162 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
19163 : LCD_HOME $02 LCD_WRF 100 20_us ;
19164
19165
19166
19167 ASM WDT_INT
19168 ADD #2,R1
19169 BIT.B #$20,&$240
19170 0= IF
19171     CMP #19,&$3D6
19172     U< IF
19173         ADD #1,&$3D6
19174     THEN
19175 ELSE
19176     BIT.B #$40,&$240
19177     0= IF
19178         CMP #3,&$3D6
19179         U>= IF
19180            SUB #1,&$3D6
19181         THEN
19182     THEN
19183 THEN
19184 BW1
19185 MOV @R1+,R0
19186 ENDASM
19187
19188 ASM RC5_INT
19189 ADD #2,R1
19190 $1806 @ 16000 = [IF]
19191     MOV #1,&$3A0
19192 [THEN]
19193 $1806 @ 24000 = [IF]
19194     MOV #2,&$3A0
19195 [THEN]
19196 MOV #1778,R9
19197 MOV #14,R10
19198 BEGIN
19199 MOV #%1011100100,&$380
19200     RRUM    #1,R9
19201     MOV     R9,R8
19202     RRUM    #1,R8
19203     ADD     R9,R8
19204     BEGIN   CMP R8,&$390
19205     U>= UNTIL
19206     BIT.B   #4,&$200
19207     ADDC    R11,R11
19208     MOV.B   &$200,&$208
19209     BIC.B   #4,&$20C
19210     SUB     #1,R10
19211 0<> WHILE
19212     ADD R9,R8
19213     BEGIN
19214         MOV &$390,R9
19215         CMP R8,R9
19216         U>= IF
19217         BIC #$30,&$380
19218         GOTO BW1
19219         THEN
19220         BIT.B #4,&$20C
19221     0<> UNTIL
19222 REPEAT
19223 BIC #$30,&$380
19224 RLAM    #1,R11
19225 MOV.B   R11,R9
19226 RRUM    #2,R9
19227 BIT     #$4000,R11
19228 0= IF   BIS #$40,R9
19229 THEN
19230 RRUM    #3,R11
19231 XOR     @R1,R11
19232 BIT     #$400,R11
19233 0= ?GOTO BW1
19234 XOR #$400,0(R1)
19235 SUB #8,R15
19236 MOV R14,6(R15)
19237 MOV &$1DDC,4(R15)
19238 MOV #$10,&$1DDC
19239 MOV R9,0(R15)
19240 MOV #0,R14
19241 LO2HI
19242     LCD_CLEAR
19243     <# # #S #36 HOLD #>
19244     ['] LCD_WRC IS EMIT
19245     TYPE
19246     ['] EMIT >BODY IS EMIT
19247 HI2LO
19248 MOV @R15+,&$1DDC
19249 MOV @R15+,R14
19250 MOV @R1+,R0
19251 ENDASM
19252
19253 ASM BACKGROUND
19254 BEGIN
19255     CALL &$1814
19256     BIS &$180A,R2
19257 AGAIN
19258 ENDASM
19259
19260 ASM SYS_OUT
19261     MOV #WARM,R9
19262     ADD #4,R9
19263     MOV R9,R0
19264 ENDASM
19265
19266 CODE STOP
19267 BW1 MOV #$4000,R9
19268     ADD #4,R9
19269     MOV R9,-2(R9)
19270     MOV #WARM,R9
19271     MOV #SYS_OUT,2(R9)
19272     BIC.B #4,&$20A
19273     BIC.B #4,&$20C
19274     MOV #0,&$3C0
19275     MOV #0,&$340
19276     MOV #0,&$342
19277     CALL #$400E
19278 COLON
19279 ECHO
19280 ." RC5toLCD is removed,"
19281 ."  type START to restart"
19282  WARM
19283 ;
19284
19285 CODE SYS_INIT
19286 MOV #%10_1101_0100,&$3C0
19287 $1806 @ 16000 = [IF]
19288     MOV #1,&$3E0
19289 [THEN]
19290 $1806 @ 24000 = [IF]
19291     MOV #2,&$3E0
19292 [THEN]
19293     MOV #19,&$3D2
19294 MOV #%0110_0000,&$3C6
19295     MOV #10,&$3D6
19296     BIS.B #$20,&$204
19297     BIS.B #$20,&$20A
19298     BIS.B #7,&$245
19299     BIC.B #7,&$247
19300     BIS.B #$0F,&$224
19301     BIC.B #$0F,&$226
19302     BIS.B #4,&$20A
19303     BIC.B #4,&$20C
19304     MOV #RC5_INT,&$FFDE
19305 MOV #%01_0001_0100,&$340
19306     MOV ##3276,&$352
19307     MOV #%10000,&$342
19308     MOV #WDT_INT,&$FFEA
19309 BIC #1,&$130
19310 BIS.B #3,&$20D
19311 MOV &$1808,R8
19312 CMP #4,R8
19313 0= ?GOTO BW1
19314 COLON
19315     #1000 20_US
19316     %011 TOP_LCD
19317     #205 20_US
19318     %011 TOP_LCD
19319     #5 20_US
19320     %011 TOP_LCD
19321     #2 20_US
19322     %010 TOP_LCD
19323     #2 20_US
19324     %00101000 LCD_WRF
19325     %1000 LCD_WRF
19326     LCD_CLEAR
19327     %0110 LCD_WRF
19328     %1100 LCD_WRF
19329     LCD_CLEAR
19330     ['] LCD_HOME IS CR
19331     ['] LCD_WRC  IS EMIT
19332     CR ." I love you"
19333     ['] CR >BODY IS CR
19334     ['] EMIT >BODY IS EMIT
19335     ." RC5toLCD is running. Type STOP to quit"
19336     PWR_STATE ABORT
19337 ;
19338
19339 CODE START
19340 MOV #$4000,R9
19341 MOV #BACKGROUND,2(R9)
19342 MOV #WARM,R9
19343 MOV #SYS_INIT,2(R9)
19344 MOV R9,R0
19345 ENDCODE 
19346
19347 ECHO
19348             ; downloading RC5toLCD.4th is done
19349 RST_HERE    ; this app is protected against <reset>
19350
19351
19352 RST_STATE
19353
19354 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
19355
19356 [UNDEFINED] MARKER [IF]
19357 : MARKER
19358 CREATE
19359 HI2LO
19360 MOV &$1DC8,0(R10)
19361 SUB #2,R8
19362 MOV R8,2(R10)
19363 ADD #4,&$1DC6
19364 LO2HI
19365 DOES>
19366 HI2LO
19367 MOV @R1+,R13
19368 MOV @R14+,&$180E
19369 MOV @R14,&$180C
19370 MOV @R15+,R14
19371 MOV #RST_STATE,R0
19372 ENDCODE
19373 [THEN]
19374
19375 MARKER {RC5TOLCD}
19376
19377 [UNDEFINED] @ [IF]
19378 CODE @
19379 MOV @R14,R14
19380 MOV @R13+,R0
19381 ENDCODE
19382 [THEN]
19383
19384 [UNDEFINED] CONSTANT [IF]
19385 : CONSTANT 
19386 CREATE
19387 HI2LO
19388 MOV R14,-2(R10)
19389 MOV @R15+,R14
19390 MOV @R1+,R13
19391 MOV @R13+,R0
19392 ENDCODE
19393 [THEN]
19394
19395 [UNDEFINED] STATE [IF]
19396 $1DBE CONSTANT STATE
19397 [THEN]
19398
19399 [UNDEFINED] = [IF]
19400 CODE =
19401 SUB @R15+,R14
19402 0<> IF
19403     AND #0,R14
19404     MOV @R13+,R0
19405 THEN
19406 XOR #-1,R14
19407 MOV @R13+,R0
19408 ENDCODE
19409 [THEN]
19410
19411 [UNDEFINED] IF [IF]
19412 CODE IF
19413 SUB #2,R15
19414 MOV R14,0(R15)
19415 MOV &$1DC6,R14
19416 ADD #4,&$1DC6
19417 MOV #$404C,0(R14)
19418 ADD #2,R14
19419 MOV @R13+,R0
19420 ENDCODE IMMEDIATE
19421 [THEN]
19422
19423 [UNDEFINED] THEN [IF]
19424 CODE THEN
19425 MOV &$1DC6,0(R14)
19426 MOV @R15+,R14
19427 MOV @R13+,R0
19428 ENDCODE IMMEDIATE
19429 [THEN]
19430
19431 [UNDEFINED] ELSE [IF]
19432 CODE ELSE
19433 ADD #4,&$1DC6
19434 MOV &$1DC6,R10
19435 MOV #$4048,-4(R10)
19436 MOV R10,0(R14)
19437 SUB #2,R10
19438 MOV R10,R14
19439 MOV @R13+,R0
19440 ENDCODE IMMEDIATE
19441 [THEN]
19442
19443 [UNDEFINED] DEFER [IF]
19444
19445 : DEFER
19446 CREATE
19447 HI2LO
19448 MOV #$4030,-4(R10)
19449 MOV #$402C,-2(R10)
19450 MOV @R1+,R13
19451 MOV @R13+,R0
19452 ENDCODE
19453 [THEN]
19454
19455 [UNDEFINED] DEFER! [IF]
19456 CODE DEFER!
19457 MOV @R15+,2(R14)
19458 MOV @R15+,R14
19459 MOV @R13+,R0
19460 ENDCODE
19461 [THEN]
19462
19463 [UNDEFINED] IS [IF]
19464 : IS
19465 STATE @
19466 IF  POSTPONE ['] POSTPONE DEFER! 
19467 ELSE ' DEFER! 
19468 THEN
19469 ; IMMEDIATE
19470 [THEN]
19471
19472 [UNDEFINED] >BODY [IF]
19473 CODE >BODY
19474 ADD #4,R14
19475 MOV @R13+,R0
19476 ENDCODE
19477 [THEN]
19478
19479
19480 CODE 20_US
19481 BEGIN
19482     BEGIN
19483         BIT #1,&$3C0
19484     0<> UNTIL
19485     BIC #1,&$3C0
19486     SUB #1,R14
19487 U< UNTIL
19488 MOV @R15+,R14
19489 MOV @R13+,R0
19490 ENDCODE
19491
19492 CODE TOP_LCD
19493     BIS.B #4,&$243
19494     BIT.B #1,&$241
19495 0= IF
19496     AND.B #$0F,R14
19497     MOV.B R14,&$222
19498     BIC.B #4,&$243
19499     MOV @R15+,R14
19500     MOV @R13+,R0
19501 THEN
19502     SUB #2,R15
19503     MOV R14,0(R15)
19504     BIC.B #4,&$243
19505     MOV.B &$220,R14
19506     AND.B #$0F,R14
19507     MOV @R13+,R0
19508 ENDCODE
19509
19510 CODE LCD_WRC
19511     BIS.B #2,&$243
19512 BW1 SUB #2,R15
19513     MOV R14,0(R15)
19514     RRUM #4,R14
19515     BIC.B #1,&$243
19516     BIS.B #$0F,&$224
19517 COLON
19518     TOP_LCD 2 20_US
19519     TOP_LCD 2 20_US 
19520 ;
19521
19522 CODE LCD_WRF
19523     BIC.B #2,&$243
19524     GOTO BW1
19525 ENDCODE
19526
19527 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
19528 : LCD_HOME $02 LCD_WRF 100 20_us ;
19529
19530
19531
19532 ASM WDT_INT
19533 ADD #2,R1
19534 BIT.B #$20,&$240
19535 0= IF
19536     CMP #19,&$3D6
19537     U< IF
19538         ADD #1,&$3D6
19539     THEN
19540 ELSE
19541     BIT.B #$40,&$240
19542     0= IF
19543         CMP #3,&$3D6
19544         U>= IF
19545            SUB #1,&$3D6
19546         THEN
19547     THEN
19548 THEN
19549 BW1
19550 MOV @R1+,R0
19551 ENDASM
19552
19553 ASM RC5_INT
19554 ADD #2,R1
19555 $1806 @ 16000 = [IF]
19556     MOV #1,&$3A0
19557 [THEN]
19558 $1806 @ 24000 = [IF]
19559     MOV #2,&$3A0
19560 [THEN]
19561 MOV #1778,R9
19562 MOV #14,R10
19563 BEGIN
19564 MOV #%1011100100,&$380
19565     RRUM    #1,R9
19566     MOV     R9,R8
19567     RRUM    #1,R8
19568     ADD     R9,R8
19569     BEGIN   CMP R8,&$390
19570     U>= UNTIL
19571     BIT.B   #4,&$200
19572     ADDC    R11,R11
19573     MOV.B   &$200,&$208
19574     BIC.B   #4,&$20C
19575     SUB     #1,R10
19576 0<> WHILE
19577     ADD R9,R8
19578     BEGIN
19579         MOV &$390,R9
19580         CMP R8,R9
19581         U>= IF
19582         BIC #$30,&$380
19583         GOTO BW1
19584         THEN
19585         BIT.B #4,&$20C
19586     0<> UNTIL
19587 REPEAT
19588 BIC #$30,&$380
19589 RLAM    #1,R11
19590 MOV.B   R11,R9
19591 RRUM    #2,R9
19592 BIT     #$4000,R11
19593 0= IF   BIS #$40,R9
19594 THEN
19595 RRUM    #3,R11
19596 XOR     @R1,R11
19597 BIT     #$400,R11
19598 0= ?GOTO BW1
19599 XOR #$400,0(R1)
19600 SUB #8,R15
19601 MOV R14,6(R15)
19602 MOV &$1DDC,4(R15)
19603 MOV #$10,&$1DDC
19604 MOV R9,0(R15)
19605 MOV #0,R14
19606 LO2HI
19607     LCD_CLEAR
19608     <# # #S #36 HOLD #>
19609     ['] LCD_WRC IS EMIT
19610     TYPE
19611     ['] EMIT >BODY IS EMIT
19612 HI2LO
19613 MOV @R15+,&$1DDC
19614 MOV @R15+,R14
19615 MOV @R1+,R0
19616 ENDASM
19617
19618 ASM BACKGROUND
19619 BEGIN
19620     CALL &$1814
19621     BIS &$180A,R2
19622 AGAIN
19623 ENDASM
19624
19625 ASM SYS_OUT
19626     MOV #WARM,R9
19627     ADD #4,R9
19628     MOV R9,R0
19629 ENDASM
19630
19631 CODE STOP
19632 BW1 MOV #$4000,R9
19633     ADD #4,R9
19634     MOV R9,-2(R9)
19635     MOV #WARM,R9
19636     MOV #SYS_OUT,2(R9)
19637     BIC.B #4,&$20A
19638     BIC.B #4,&$20C
19639     MOV #0,&$3C0
19640     MOV #0,&$340
19641     MOV #0,&$342
19642     CALL #$400E
19643 COLON
19644 ECHO
19645 ." RC5toLCD is removed,"
19646 ."  type START to restart"
19647  WARM
19648 ;
19649
19650 CODE SYS_INIT
19651 MOV #%10_1101_0100,&$3C0
19652 $1806 @ 16000 = [IF]
19653     MOV #1,&$3E0
19654 [THEN]
19655 $1806 @ 24000 = [IF]
19656     MOV #2,&$3E0
19657 [THEN]
19658     MOV #19,&$3D2
19659 MOV #%0110_0000,&$3C6
19660     MOV #10,&$3D6
19661     BIS.B #$20,&$204
19662     BIS.B #$20,&$20A
19663     BIS.B #7,&$245
19664     BIC.B #7,&$247
19665     BIS.B #$0F,&$224
19666     BIC.B #$0F,&$226
19667     BIS.B #4,&$20A
19668     BIC.B #4,&$20C
19669     MOV #RC5_INT,&$FFDE
19670 MOV #%01_0001_0100,&$340
19671     MOV ##3276,&$352
19672     MOV #%10000,&$342
19673     MOV #WDT_INT,&$FFEA
19674 BIC #1,&$130
19675 BIS.B #3,&$20D
19676 MOV &$1808,R8
19677 CMP #4,R8
19678 0= ?GOTO BW1
19679 COLON
19680     #1000 20_US
19681     %011 TOP_LCD
19682     #205 20_US
19683     %011 TOP_LCD
19684     #5 20_US
19685     %011 TOP_LCD
19686     #2 20_US
19687     %010 TOP_LCD
19688     #2 20_US
19689     %00101000 LCD_WRF
19690     %1000 LCD_WRF
19691     LCD_CLEAR
19692     %0110 LCD_WRF
19693     %1100 LCD_WRF
19694     LCD_CLEAR
19695     ['] LCD_HOME IS CR
19696     ['] LCD_WRC  IS EMIT
19697     CR ." I love you"
19698     ['] CR >BODY IS CR
19699     ['] EMIT >BODY IS EMIT
19700     ." RC5toLCD is running. Type STOP to quit"
19701     PWR_STATE ABORT
19702 ;
19703
19704 CODE START
19705 MOV #$4000,R9
19706 MOV #BACKGROUND,2(R9)
19707 MOV #WARM,R9
19708 MOV #SYS_INIT,2(R9)
19709 MOV R9,R0
19710 ENDCODE 
19711
19712 ECHO
19713             ; downloading RC5toLCD.4th is done
19714 RST_HERE    ; this app is protected against <reset>
19715
19716
19717 RST_STATE
19718
19719 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
19720
19721 [UNDEFINED] MARKER [IF]
19722 : MARKER
19723 CREATE
19724 HI2LO
19725 MOV &$1DC8,0(R10)
19726 SUB #2,R8
19727 MOV R8,2(R10)
19728 ADD #4,&$1DC6
19729 LO2HI
19730 DOES>
19731 HI2LO
19732 MOV @R1+,R13
19733 MOV @R14+,&$180E
19734 MOV @R14,&$180C
19735 MOV @R15+,R14
19736 MOV #RST_STATE,R0
19737 ENDCODE
19738 [THEN]
19739
19740 MARKER {RC5TOLCD}
19741
19742 [UNDEFINED] @ [IF]
19743 CODE @
19744 MOV @R14,R14
19745 MOV @R13+,R0
19746 ENDCODE
19747 [THEN]
19748
19749 [UNDEFINED] CONSTANT [IF]
19750 : CONSTANT 
19751 CREATE
19752 HI2LO
19753 MOV R14,-2(R10)
19754 MOV @R15+,R14
19755 MOV @R1+,R13
19756 MOV @R13+,R0
19757 ENDCODE
19758 [THEN]
19759
19760 [UNDEFINED] STATE [IF]
19761 $1DBE CONSTANT STATE
19762 [THEN]
19763
19764 [UNDEFINED] = [IF]
19765 CODE =
19766 SUB @R15+,R14
19767 0<> IF
19768     AND #0,R14
19769     MOV @R13+,R0
19770 THEN
19771 XOR #-1,R14
19772 MOV @R13+,R0
19773 ENDCODE
19774 [THEN]
19775
19776 [UNDEFINED] IF [IF]
19777 CODE IF
19778 SUB #2,R15
19779 MOV R14,0(R15)
19780 MOV &$1DC6,R14
19781 ADD #4,&$1DC6
19782 MOV #$404C,0(R14)
19783 ADD #2,R14
19784 MOV @R13+,R0
19785 ENDCODE IMMEDIATE
19786 [THEN]
19787
19788 [UNDEFINED] THEN [IF]
19789 CODE THEN
19790 MOV &$1DC6,0(R14)
19791 MOV @R15+,R14
19792 MOV @R13+,R0
19793 ENDCODE IMMEDIATE
19794 [THEN]
19795
19796 [UNDEFINED] ELSE [IF]
19797 CODE ELSE
19798 ADD #4,&$1DC6
19799 MOV &$1DC6,R10
19800 MOV #$4048,-4(R10)
19801 MOV R10,0(R14)
19802 SUB #2,R10
19803 MOV R10,R14
19804 MOV @R13+,R0
19805 ENDCODE IMMEDIATE
19806 [THEN]
19807
19808 [UNDEFINED] DEFER [IF]
19809
19810 : DEFER
19811 CREATE
19812 HI2LO
19813 MOV #$4030,-4(R10)
19814 MOV #$402C,-2(R10)
19815 MOV @R1+,R13
19816 MOV @R13+,R0
19817 ENDCODE
19818 [THEN]
19819
19820 [UNDEFINED] DEFER! [IF]
19821 CODE DEFER!
19822 MOV @R15+,2(R14)
19823 MOV @R15+,R14
19824 MOV @R13+,R0
19825 ENDCODE
19826 [THEN]
19827
19828 [UNDEFINED] IS [IF]
19829 : IS
19830 STATE @
19831 IF  POSTPONE ['] POSTPONE DEFER! 
19832 ELSE ' DEFER! 
19833 THEN
19834 ; IMMEDIATE
19835 [THEN]
19836
19837 [UNDEFINED] >BODY [IF]
19838 CODE >BODY
19839 ADD #4,R14
19840 MOV @R13+,R0
19841 ENDCODE
19842 [THEN]
19843
19844
19845 CODE 20_US
19846 BEGIN
19847     BEGIN
19848         BIT #1,&$3C0
19849     0<> UNTIL
19850     BIC #1,&$3C0
19851     SUB #1,R14
19852 U< UNTIL
19853 MOV @R15+,R14
19854 MOV @R13+,R0
19855 ENDCODE
19856
19857 CODE TOP_LCD
19858     BIS.B #4,&$243
19859     BIT.B #1,&$241
19860 0= IF
19861     AND.B #$0F,R14
19862     MOV.B R14,&$222
19863     BIC.B #4,&$243
19864     MOV @R15+,R14
19865     MOV @R13+,R0
19866 THEN
19867     SUB #2,R15
19868     MOV R14,0(R15)
19869     BIC.B #4,&$243
19870     MOV.B &$220,R14
19871     AND.B #$0F,R14
19872     MOV @R13+,R0
19873 ENDCODE
19874
19875 CODE LCD_WRC
19876     BIS.B #2,&$243
19877 BW1 SUB #2,R15
19878     MOV R14,0(R15)
19879     RRUM #4,R14
19880     BIC.B #1,&$243
19881     BIS.B #$0F,&$224
19882 COLON
19883     TOP_LCD 2 20_US
19884     TOP_LCD 2 20_US 
19885 ;
19886
19887 CODE LCD_WRF
19888     BIC.B #2,&$243
19889     GOTO BW1
19890 ENDCODE
19891
19892 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
19893 : LCD_HOME $02 LCD_WRF 100 20_us ;
19894
19895
19896
19897 ASM WDT_INT
19898 ADD #2,R1
19899 BIT.B #$20,&$240
19900 0= IF
19901     CMP #19,&$3D6
19902     U< IF
19903         ADD #1,&$3D6
19904     THEN
19905 ELSE
19906     BIT.B #$40,&$240
19907     0= IF
19908         CMP #3,&$3D6
19909         U>= IF
19910            SUB #1,&$3D6
19911         THEN
19912     THEN
19913 THEN
19914 BW1
19915 MOV @R1+,R0
19916 ENDASM
19917
19918 ASM RC5_INT
19919 ADD #2,R1
19920 $1806 @ 16000 = [IF]
19921     MOV #1,&$3A0
19922 [THEN]
19923 $1806 @ 24000 = [IF]
19924     MOV #2,&$3A0
19925 [THEN]
19926 MOV #1778,R9
19927 MOV #14,R10
19928 BEGIN
19929 MOV #%1011100100,&$380
19930     RRUM    #1,R9
19931     MOV     R9,R8
19932     RRUM    #1,R8
19933     ADD     R9,R8
19934     BEGIN   CMP R8,&$390
19935     U>= UNTIL
19936     BIT.B   #4,&$200
19937     ADDC    R11,R11
19938     MOV.B   &$200,&$208
19939     BIC.B   #4,&$20C
19940     SUB     #1,R10
19941 0<> WHILE
19942     ADD R9,R8
19943     BEGIN
19944         MOV &$390,R9
19945         CMP R8,R9
19946         U>= IF
19947         BIC #$30,&$380
19948         GOTO BW1
19949         THEN
19950         BIT.B #4,&$20C
19951     0<> UNTIL
19952 REPEAT
19953 BIC #$30,&$380
19954 RLAM    #1,R11
19955 MOV.B   R11,R9
19956 RRUM    #2,R9
19957 BIT     #$4000,R11
19958 0= IF   BIS #$40,R9
19959 THEN
19960 RRUM    #3,R11
19961 XOR     @R1,R11
19962 BIT     #$400,R11
19963 0= ?GOTO BW1
19964 XOR #$400,0(R1)
19965 SUB #8,R15
19966 MOV R14,6(R15)
19967 MOV &$1DDC,4(R15)
19968 MOV #$10,&$1DDC
19969 MOV R9,0(R15)
19970 MOV #0,R14
19971 LO2HI
19972     LCD_CLEAR
19973     <# # #S #36 HOLD #>
19974     ['] LCD_WRC IS EMIT
19975     TYPE
19976     ['] EMIT >BODY IS EMIT
19977 HI2LO
19978 MOV @R15+,&$1DDC
19979 MOV @R15+,R14
19980 MOV @R1+,R0
19981 ENDASM
19982
19983 ASM BACKGROUND
19984 BEGIN
19985     CALL &$1814
19986     BIS &$180A,R2
19987 AGAIN
19988 ENDASM
19989
19990 ASM SYS_OUT
19991     MOV #WARM,R9
19992     ADD #4,R9
19993     MOV R9,R0
19994 ENDASM
19995
19996 CODE STOP
19997 BW1 MOV #$4000,R9
19998     ADD #4,R9
19999     MOV R9,-2(R9)
20000     MOV #WARM,R9
20001     MOV #SYS_OUT,2(R9)
20002     BIC.B #4,&$20A
20003     BIC.B #4,&$20C
20004     MOV #0,&$3C0
20005     MOV #0,&$340
20006     MOV #0,&$342
20007     CALL #$400E
20008 COLON
20009 ECHO
20010 ." RC5toLCD is removed,"
20011 ."  type START to restart"
20012  WARM
20013 ;
20014
20015 CODE SYS_INIT
20016 MOV #%10_1101_0100,&$3C0
20017 $1806 @ 16000 = [IF]
20018     MOV #1,&$3E0
20019 [THEN]
20020 $1806 @ 24000 = [IF]
20021     MOV #2,&$3E0
20022 [THEN]
20023     MOV #19,&$3D2
20024 MOV #%0110_0000,&$3C6
20025     MOV #10,&$3D6
20026     BIS.B #$20,&$204
20027     BIS.B #$20,&$20A
20028     BIS.B #7,&$245
20029     BIC.B #7,&$247
20030     BIS.B #$0F,&$224
20031     BIC.B #$0F,&$226
20032     BIS.B #4,&$20A
20033     BIC.B #4,&$20C
20034     MOV #RC5_INT,&$FFDE
20035 MOV #%01_0001_0100,&$340
20036     MOV ##3276,&$352
20037     MOV #%10000,&$342
20038     MOV #WDT_INT,&$FFEA
20039 BIC #1,&$130
20040 BIS.B #3,&$20D
20041 MOV &$1808,R8
20042 CMP #4,R8
20043 0= ?GOTO BW1
20044 COLON
20045     #1000 20_US
20046     %011 TOP_LCD
20047     #205 20_US
20048     %011 TOP_LCD
20049     #5 20_US
20050     %011 TOP_LCD
20051     #2 20_US
20052     %010 TOP_LCD
20053     #2 20_US
20054     %00101000 LCD_WRF
20055     %1000 LCD_WRF
20056     LCD_CLEAR
20057     %0110 LCD_WRF
20058     %1100 LCD_WRF
20059     LCD_CLEAR
20060     ['] LCD_HOME IS CR
20061     ['] LCD_WRC  IS EMIT
20062     CR ." I love you"
20063     ['] CR >BODY IS CR
20064     ['] EMIT >BODY IS EMIT
20065     ." RC5toLCD is running. Type STOP to quit"
20066     PWR_STATE ABORT
20067 ;
20068
20069 CODE START
20070 MOV #$4000,R9
20071 MOV #BACKGROUND,2(R9)
20072 MOV #WARM,R9
20073 MOV #SYS_INIT,2(R9)
20074 MOV R9,R0
20075 ENDCODE 
20076
20077 ECHO
20078             ; downloading RC5toLCD.4th is done
20079 RST_HERE    ; this app is protected against <reset>
20080
20081
20082 RST_STATE
20083
20084 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
20085
20086 [UNDEFINED] MARKER [IF]
20087 : MARKER
20088 CREATE
20089 HI2LO
20090 MOV &$1DC8,0(R10)
20091 SUB #2,R8
20092 MOV R8,2(R10)
20093 ADD #4,&$1DC6
20094 LO2HI
20095 DOES>
20096 HI2LO
20097 MOV @R1+,R13
20098 MOV @R14+,&$180E
20099 MOV @R14,&$180C
20100 MOV @R15+,R14
20101 MOV #RST_STATE,R0
20102 ENDCODE
20103 [THEN]
20104
20105 MARKER {RC5TOLCD}
20106
20107 [UNDEFINED] @ [IF]
20108 CODE @
20109 MOV @R14,R14
20110 MOV @R13+,R0
20111 ENDCODE
20112 [THEN]
20113
20114 [UNDEFINED] CONSTANT [IF]
20115 : CONSTANT 
20116 CREATE
20117 HI2LO
20118 MOV R14,-2(R10)
20119 MOV @R15+,R14
20120 MOV @R1+,R13
20121 MOV @R13+,R0
20122 ENDCODE
20123 [THEN]
20124
20125 [UNDEFINED] STATE [IF]
20126 $1DBE CONSTANT STATE
20127 [THEN]
20128
20129 [UNDEFINED] = [IF]
20130 CODE =
20131 SUB @R15+,R14
20132 0<> IF
20133     AND #0,R14
20134     MOV @R13+,R0
20135 THEN
20136 XOR #-1,R14
20137 MOV @R13+,R0
20138 ENDCODE
20139 [THEN]
20140
20141 [UNDEFINED] IF [IF]
20142 CODE IF
20143 SUB #2,R15
20144 MOV R14,0(R15)
20145 MOV &$1DC6,R14
20146 ADD #4,&$1DC6
20147 MOV #$404C,0(R14)
20148 ADD #2,R14
20149 MOV @R13+,R0
20150 ENDCODE IMMEDIATE
20151 [THEN]
20152
20153 [UNDEFINED] THEN [IF]
20154 CODE THEN
20155 MOV &$1DC6,0(R14)
20156 MOV @R15+,R14
20157 MOV @R13+,R0
20158 ENDCODE IMMEDIATE
20159 [THEN]
20160
20161 [UNDEFINED] ELSE [IF]
20162 CODE ELSE
20163 ADD #4,&$1DC6
20164 MOV &$1DC6,R10
20165 MOV #$4048,-4(R10)
20166 MOV R10,0(R14)
20167 SUB #2,R10
20168 MOV R10,R14
20169 MOV @R13+,R0
20170 ENDCODE IMMEDIATE
20171 [THEN]
20172
20173 [UNDEFINED] DEFER [IF]
20174
20175 : DEFER
20176 CREATE
20177 HI2LO
20178 MOV #$4030,-4(R10)
20179 MOV #$402C,-2(R10)
20180 MOV @R1+,R13
20181 MOV @R13+,R0
20182 ENDCODE
20183 [THEN]
20184
20185 [UNDEFINED] DEFER! [IF]
20186 CODE DEFER!
20187 MOV @R15+,2(R14)
20188 MOV @R15+,R14
20189 MOV @R13+,R0
20190 ENDCODE
20191 [THEN]
20192
20193 [UNDEFINED] IS [IF]
20194 : IS
20195 STATE @
20196 IF  POSTPONE ['] POSTPONE DEFER! 
20197 ELSE ' DEFER! 
20198 THEN
20199 ; IMMEDIATE
20200 [THEN]
20201
20202 [UNDEFINED] >BODY [IF]
20203 CODE >BODY
20204 ADD #4,R14
20205 MOV @R13+,R0
20206 ENDCODE
20207 [THEN]
20208
20209
20210 CODE 20_US
20211 BEGIN
20212     BEGIN
20213         BIT #1,&$3C0
20214     0<> UNTIL
20215     BIC #1,&$3C0
20216     SUB #1,R14
20217 U< UNTIL
20218 MOV @R15+,R14
20219 MOV @R13+,R0
20220 ENDCODE
20221
20222 CODE TOP_LCD
20223     BIS.B #4,&$243
20224     BIT.B #1,&$241
20225 0= IF
20226     AND.B #$0F,R14
20227     MOV.B R14,&$222
20228     BIC.B #4,&$243
20229     MOV @R15+,R14
20230     MOV @R13+,R0
20231 THEN
20232     SUB #2,R15
20233     MOV R14,0(R15)
20234     BIC.B #4,&$243
20235     MOV.B &$220,R14
20236     AND.B #$0F,R14
20237     MOV @R13+,R0
20238 ENDCODE
20239
20240 CODE LCD_WRC
20241     BIS.B #2,&$243
20242 BW1 SUB #2,R15
20243     MOV R14,0(R15)
20244     RRUM #4,R14
20245     BIC.B #1,&$243
20246     BIS.B #$0F,&$224
20247 COLON
20248     TOP_LCD 2 20_US
20249     TOP_LCD 2 20_US 
20250 ;
20251
20252 CODE LCD_WRF
20253     BIC.B #2,&$243
20254     GOTO BW1
20255 ENDCODE
20256
20257 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
20258 : LCD_HOME $02 LCD_WRF 100 20_us ;
20259
20260
20261
20262 ASM WDT_INT
20263 ADD #2,R1
20264 BIT.B #$20,&$240
20265 0= IF
20266     CMP #19,&$3D6
20267     U< IF
20268         ADD #1,&$3D6
20269     THEN
20270 ELSE
20271     BIT.B #$40,&$240
20272     0= IF
20273         CMP #3,&$3D6
20274         U>= IF
20275            SUB #1,&$3D6
20276         THEN
20277     THEN
20278 THEN
20279 BW1
20280 MOV @R1+,R0
20281 ENDASM
20282
20283 ASM RC5_INT
20284 ADD #2,R1
20285 $1806 @ 16000 = [IF]
20286     MOV #1,&$3A0
20287 [THEN]
20288 $1806 @ 24000 = [IF]
20289     MOV #2,&$3A0
20290 [THEN]
20291 MOV #1778,R9
20292 MOV #14,R10
20293 BEGIN
20294 MOV #%1011100100,&$380
20295     RRUM    #1,R9
20296     MOV     R9,R8
20297     RRUM    #1,R8
20298     ADD     R9,R8
20299     BEGIN   CMP R8,&$390
20300     U>= UNTIL
20301     BIT.B   #4,&$200
20302     ADDC    R11,R11
20303     MOV.B   &$200,&$208
20304     BIC.B   #4,&$20C
20305     SUB     #1,R10
20306 0<> WHILE
20307     ADD R9,R8
20308     BEGIN
20309         MOV &$390,R9
20310         CMP R8,R9
20311         U>= IF
20312         BIC #$30,&$380
20313         GOTO BW1
20314         THEN
20315         BIT.B #4,&$20C
20316     0<> UNTIL
20317 REPEAT
20318 BIC #$30,&$380
20319 RLAM    #1,R11
20320 MOV.B   R11,R9
20321 RRUM    #2,R9
20322 BIT     #$4000,R11
20323 0= IF   BIS #$40,R9
20324 THEN
20325 RRUM    #3,R11
20326 XOR     @R1,R11
20327 BIT     #$400,R11
20328 0= ?GOTO BW1
20329 XOR #$400,0(R1)
20330 SUB #8,R15
20331 MOV R14,6(R15)
20332 MOV &$1DDC,4(R15)
20333 MOV #$10,&$1DDC
20334 MOV R9,0(R15)
20335 MOV #0,R14
20336 LO2HI
20337     LCD_CLEAR
20338     <# # #S #36 HOLD #>
20339     ['] LCD_WRC IS EMIT
20340     TYPE
20341     ['] EMIT >BODY IS EMIT
20342 HI2LO
20343 MOV @R15+,&$1DDC
20344 MOV @R15+,R14
20345 MOV @R1+,R0
20346 ENDASM
20347
20348 ASM BACKGROUND
20349 BEGIN
20350     CALL &$1814
20351     BIS &$180A,R2
20352 AGAIN
20353 ENDASM
20354
20355 ASM SYS_OUT
20356     MOV #WARM,R9
20357     ADD #4,R9
20358     MOV R9,R0
20359 ENDASM
20360
20361 CODE STOP
20362 BW1 MOV #$4000,R9
20363     ADD #4,R9
20364     MOV R9,-2(R9)
20365     MOV #WARM,R9
20366     MOV #SYS_OUT,2(R9)
20367     BIC.B #4,&$20A
20368     BIC.B #4,&$20C
20369     MOV #0,&$3C0
20370     MOV #0,&$340
20371     MOV #0,&$342
20372     CALL #$400E
20373 COLON
20374 ECHO
20375 ." RC5toLCD is removed,"
20376 ."  type START to restart"
20377  WARM
20378 ;
20379
20380 CODE SYS_INIT
20381 MOV #%10_1101_0100,&$3C0
20382 $1806 @ 16000 = [IF]
20383     MOV #1,&$3E0
20384 [THEN]
20385 $1806 @ 24000 = [IF]
20386     MOV #2,&$3E0
20387 [THEN]
20388     MOV #19,&$3D2
20389 MOV #%0110_0000,&$3C6
20390     MOV #10,&$3D6
20391     BIS.B #$20,&$204
20392     BIS.B #$20,&$20A
20393     BIS.B #7,&$245
20394     BIC.B #7,&$247
20395     BIS.B #$0F,&$224
20396     BIC.B #$0F,&$226
20397     BIS.B #4,&$20A
20398     BIC.B #4,&$20C
20399     MOV #RC5_INT,&$FFDE
20400 MOV #%01_0001_0100,&$340
20401     MOV ##3276,&$352
20402     MOV #%10000,&$342
20403     MOV #WDT_INT,&$FFEA
20404 BIC #1,&$130
20405 BIS.B #3,&$20D
20406 MOV &$1808,R8
20407 CMP #4,R8
20408 0= ?GOTO BW1
20409 COLON
20410     #1000 20_US
20411     %011 TOP_LCD
20412     #205 20_US
20413     %011 TOP_LCD
20414     #5 20_US
20415     %011 TOP_LCD
20416     #2 20_US
20417     %010 TOP_LCD
20418     #2 20_US
20419     %00101000 LCD_WRF
20420     %1000 LCD_WRF
20421     LCD_CLEAR
20422     %0110 LCD_WRF
20423     %1100 LCD_WRF
20424     LCD_CLEAR
20425     ['] LCD_HOME IS CR
20426     ['] LCD_WRC  IS EMIT
20427     CR ." I love you"
20428     ['] CR >BODY IS CR
20429     ['] EMIT >BODY IS EMIT
20430     ." RC5toLCD is running. Type STOP to quit"
20431     PWR_STATE ABORT
20432 ;
20433
20434 CODE START
20435 MOV #$4000,R9
20436 MOV #BACKGROUND,2(R9)
20437 MOV #WARM,R9
20438 MOV #SYS_INIT,2(R9)
20439 MOV R9,R0
20440 ENDCODE 
20441
20442 ECHO
20443             ; downloading RC5toLCD.4th is done
20444 RST_HERE    ; this app is protected against <reset>
20445
20446
20447 RST_STATE
20448
20449 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
20450
20451 [UNDEFINED] MARKER [IF]
20452 : MARKER
20453 CREATE
20454 HI2LO
20455 MOV &$1DC8,0(R10)
20456 SUB #2,R8
20457 MOV R8,2(R10)
20458 ADD #4,&$1DC6
20459 LO2HI
20460 DOES>
20461 HI2LO
20462 MOV @R1+,R13
20463 MOV @R14+,&$180E
20464 MOV @R14,&$180C
20465 MOV @R15+,R14
20466 MOV #RST_STATE,R0
20467 ENDCODE
20468 [THEN]
20469
20470 MARKER {RC5TOLCD}
20471
20472 [UNDEFINED] @ [IF]
20473 CODE @
20474 MOV @R14,R14
20475 MOV @R13+,R0
20476 ENDCODE
20477 [THEN]
20478
20479 [UNDEFINED] CONSTANT [IF]
20480 : CONSTANT 
20481 CREATE
20482 HI2LO
20483 MOV R14,-2(R10)
20484 MOV @R15+,R14
20485 MOV @R1+,R13
20486 MOV @R13+,R0
20487 ENDCODE
20488 [THEN]
20489
20490 [UNDEFINED] STATE [IF]
20491 $1DBE CONSTANT STATE
20492 [THEN]
20493
20494 [UNDEFINED] = [IF]
20495 CODE =
20496 SUB @R15+,R14
20497 0<> IF
20498     AND #0,R14
20499     MOV @R13+,R0
20500 THEN
20501 XOR #-1,R14
20502 MOV @R13+,R0
20503 ENDCODE
20504 [THEN]
20505
20506 [UNDEFINED] IF [IF]
20507 CODE IF
20508 SUB #2,R15
20509 MOV R14,0(R15)
20510 MOV &$1DC6,R14
20511 ADD #4,&$1DC6
20512 MOV #$404C,0(R14)
20513 ADD #2,R14
20514 MOV @R13+,R0
20515 ENDCODE IMMEDIATE
20516 [THEN]
20517
20518 [UNDEFINED] THEN [IF]
20519 CODE THEN
20520 MOV &$1DC6,0(R14)
20521 MOV @R15+,R14
20522 MOV @R13+,R0
20523 ENDCODE IMMEDIATE
20524 [THEN]
20525
20526 [UNDEFINED] ELSE [IF]
20527 CODE ELSE
20528 ADD #4,&$1DC6
20529 MOV &$1DC6,R10
20530 MOV #$4048,-4(R10)
20531 MOV R10,0(R14)
20532 SUB #2,R10
20533 MOV R10,R14
20534 MOV @R13+,R0
20535 ENDCODE IMMEDIATE
20536 [THEN]
20537
20538 [UNDEFINED] DEFER [IF]
20539
20540 : DEFER
20541 CREATE
20542 HI2LO
20543 MOV #$4030,-4(R10)
20544 MOV #$402C,-2(R10)
20545 MOV @R1+,R13
20546 MOV @R13+,R0
20547 ENDCODE
20548 [THEN]
20549
20550 [UNDEFINED] DEFER! [IF]
20551 CODE DEFER!
20552 MOV @R15+,2(R14)
20553 MOV @R15+,R14
20554 MOV @R13+,R0
20555 ENDCODE
20556 [THEN]
20557
20558 [UNDEFINED] IS [IF]
20559 : IS
20560 STATE @
20561 IF  POSTPONE ['] POSTPONE DEFER! 
20562 ELSE ' DEFER! 
20563 THEN
20564 ; IMMEDIATE
20565 [THEN]
20566
20567 [UNDEFINED] >BODY [IF]
20568 CODE >BODY
20569 ADD #4,R14
20570 MOV @R13+,R0
20571 ENDCODE
20572 [THEN]
20573
20574
20575 CODE 20_US
20576 BEGIN
20577     BEGIN
20578         BIT #1,&$3C0
20579     0<> UNTIL
20580     BIC #1,&$3C0
20581     SUB #1,R14
20582 U< UNTIL
20583 MOV @R15+,R14
20584 MOV @R13+,R0
20585 ENDCODE
20586
20587 CODE TOP_LCD
20588     BIS.B #4,&$243
20589     BIT.B #1,&$241
20590 0= IF
20591     AND.B #$0F,R14
20592     MOV.B R14,&$222
20593     BIC.B #4,&$243
20594     MOV @R15+,R14
20595     MOV @R13+,R0
20596 THEN
20597     SUB #2,R15
20598     MOV R14,0(R15)
20599     BIC.B #4,&$243
20600     MOV.B &$220,R14
20601     AND.B #$0F,R14
20602     MOV @R13+,R0
20603 ENDCODE
20604
20605 CODE LCD_WRC
20606     BIS.B #2,&$243
20607 BW1 SUB #2,R15
20608     MOV R14,0(R15)
20609     RRUM #4,R14
20610     BIC.B #1,&$243
20611     BIS.B #$0F,&$224
20612 COLON
20613     TOP_LCD 2 20_US
20614     TOP_LCD 2 20_US 
20615 ;
20616
20617 CODE LCD_WRF
20618     BIC.B #2,&$243
20619     GOTO BW1
20620 ENDCODE
20621
20622 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
20623 : LCD_HOME $02 LCD_WRF 100 20_us ;
20624
20625
20626
20627 ASM WDT_INT
20628 ADD #2,R1
20629 BIT.B #$20,&$240
20630 0= IF
20631     CMP #19,&$3D6
20632     U< IF
20633         ADD #1,&$3D6
20634     THEN
20635 ELSE
20636     BIT.B #$40,&$240
20637     0= IF
20638         CMP #3,&$3D6
20639         U>= IF
20640            SUB #1,&$3D6
20641         THEN
20642     THEN
20643 THEN
20644 BW1
20645 MOV @R1+,R0
20646 ENDASM
20647
20648 ASM RC5_INT
20649 ADD #2,R1
20650 $1806 @ 16000 = [IF]
20651     MOV #1,&$3A0
20652 [THEN]
20653 $1806 @ 24000 = [IF]
20654     MOV #2,&$3A0
20655 [THEN]
20656 MOV #1778,R9
20657 MOV #14,R10
20658 BEGIN
20659 MOV #%1011100100,&$380
20660     RRUM    #1,R9
20661     MOV     R9,R8
20662     RRUM    #1,R8
20663     ADD     R9,R8
20664     BEGIN   CMP R8,&$390
20665     U>= UNTIL
20666     BIT.B   #4,&$200
20667     ADDC    R11,R11
20668     MOV.B   &$200,&$208
20669     BIC.B   #4,&$20C
20670     SUB     #1,R10
20671 0<> WHILE
20672     ADD R9,R8
20673     BEGIN
20674         MOV &$390,R9
20675         CMP R8,R9
20676         U>= IF
20677         BIC #$30,&$380
20678         GOTO BW1
20679         THEN
20680         BIT.B #4,&$20C
20681     0<> UNTIL
20682 REPEAT
20683 BIC #$30,&$380
20684 RLAM    #1,R11
20685 MOV.B   R11,R9
20686 RRUM    #2,R9
20687 BIT     #$4000,R11
20688 0= IF   BIS #$40,R9
20689 THEN
20690 RRUM    #3,R11
20691 XOR     @R1,R11
20692 BIT     #$400,R11
20693 0= ?GOTO BW1
20694 XOR #$400,0(R1)
20695 SUB #8,R15
20696 MOV R14,6(R15)
20697 MOV &$1DDC,4(R15)
20698 MOV #$10,&$1DDC
20699 MOV R9,0(R15)
20700 MOV #0,R14
20701 LO2HI
20702     LCD_CLEAR
20703     <# # #S #36 HOLD #>
20704     ['] LCD_WRC IS EMIT
20705     TYPE
20706     ['] EMIT >BODY IS EMIT
20707 HI2LO
20708 MOV @R15+,&$1DDC
20709 MOV @R15+,R14
20710 MOV @R1+,R0
20711 ENDASM
20712
20713 ASM BACKGROUND
20714 BEGIN
20715     CALL &$1814
20716     BIS &$180A,R2
20717 AGAIN
20718 ENDASM
20719
20720 ASM SYS_OUT
20721     MOV #WARM,R9
20722     ADD #4,R9
20723     MOV R9,R0
20724 ENDASM
20725
20726 CODE STOP
20727 BW1 MOV #$4000,R9
20728     ADD #4,R9
20729     MOV R9,-2(R9)
20730     MOV #WARM,R9
20731     MOV #SYS_OUT,2(R9)
20732     BIC.B #4,&$20A
20733     BIC.B #4,&$20C
20734     MOV #0,&$3C0
20735     MOV #0,&$340
20736     MOV #0,&$342
20737     CALL #$400E
20738 COLON
20739 ECHO
20740 ." RC5toLCD is removed,"
20741 ."  type START to restart"
20742  WARM
20743 ;
20744
20745 CODE SYS_INIT
20746 MOV #%10_1101_0100,&$3C0
20747 $1806 @ 16000 = [IF]
20748     MOV #1,&$3E0
20749 [THEN]
20750 $1806 @ 24000 = [IF]
20751     MOV #2,&$3E0
20752 [THEN]
20753     MOV #19,&$3D2
20754 MOV #%0110_0000,&$3C6
20755     MOV #10,&$3D6
20756     BIS.B #$20,&$204
20757     BIS.B #$20,&$20A
20758     BIS.B #7,&$245
20759     BIC.B #7,&$247
20760     BIS.B #$0F,&$224
20761     BIC.B #$0F,&$226
20762     BIS.B #4,&$20A
20763     BIC.B #4,&$20C
20764     MOV #RC5_INT,&$FFDE
20765 MOV #%01_0001_0100,&$340
20766     MOV ##3276,&$352
20767     MOV #%10000,&$342
20768     MOV #WDT_INT,&$FFEA
20769 BIC #1,&$130
20770 BIS.B #3,&$20D
20771 MOV &$1808,R8
20772 CMP #4,R8
20773 0= ?GOTO BW1
20774 COLON
20775     #1000 20_US
20776     %011 TOP_LCD
20777     #205 20_US
20778     %011 TOP_LCD
20779     #5 20_US
20780     %011 TOP_LCD
20781     #2 20_US
20782     %010 TOP_LCD
20783     #2 20_US
20784     %00101000 LCD_WRF
20785     %1000 LCD_WRF
20786     LCD_CLEAR
20787     %0110 LCD_WRF
20788     %1100 LCD_WRF
20789     LCD_CLEAR
20790     ['] LCD_HOME IS CR
20791     ['] LCD_WRC  IS EMIT
20792     CR ." I love you"
20793     ['] CR >BODY IS CR
20794     ['] EMIT >BODY IS EMIT
20795     ." RC5toLCD is running. Type STOP to quit"
20796     PWR_STATE ABORT
20797 ;
20798
20799 CODE START
20800 MOV #$4000,R9
20801 MOV #BACKGROUND,2(R9)
20802 MOV #WARM,R9
20803 MOV #SYS_INIT,2(R9)
20804 MOV R9,R0
20805 ENDCODE 
20806
20807 ECHO
20808             ; downloading RC5toLCD.4th is done
20809 RST_HERE    ; this app is protected against <reset>
20810
20811
20812 RST_STATE
20813
20814 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
20815
20816 [UNDEFINED] MARKER [IF]
20817 : MARKER
20818 CREATE
20819 HI2LO
20820 MOV &$1DC8,0(R10)
20821 SUB #2,R8
20822 MOV R8,2(R10)
20823 ADD #4,&$1DC6
20824 LO2HI
20825 DOES>
20826 HI2LO
20827 MOV @R1+,R13
20828 MOV @R14+,&$180E
20829 MOV @R14,&$180C
20830 MOV @R15+,R14
20831 MOV #RST_STATE,R0
20832 ENDCODE
20833 [THEN]
20834
20835 MARKER {RC5TOLCD}
20836
20837 [UNDEFINED] @ [IF]
20838 CODE @
20839 MOV @R14,R14
20840 MOV @R13+,R0
20841 ENDCODE
20842 [THEN]
20843
20844 [UNDEFINED] CONSTANT [IF]
20845 : CONSTANT 
20846 CREATE
20847 HI2LO
20848 MOV R14,-2(R10)
20849 MOV @R15+,R14
20850 MOV @R1+,R13
20851 MOV @R13+,R0
20852 ENDCODE
20853 [THEN]
20854
20855 [UNDEFINED] STATE [IF]
20856 $1DBE CONSTANT STATE
20857 [THEN]
20858
20859 [UNDEFINED] = [IF]
20860 CODE =
20861 SUB @R15+,R14
20862 0<> IF
20863     AND #0,R14
20864     MOV @R13+,R0
20865 THEN
20866 XOR #-1,R14
20867 MOV @R13+,R0
20868 ENDCODE
20869 [THEN]
20870
20871 [UNDEFINED] IF [IF]
20872 CODE IF
20873 SUB #2,R15
20874 MOV R14,0(R15)
20875 MOV &$1DC6,R14
20876 ADD #4,&$1DC6
20877 MOV #$404C,0(R14)
20878 ADD #2,R14
20879 MOV @R13+,R0
20880 ENDCODE IMMEDIATE
20881 [THEN]
20882
20883 [UNDEFINED] THEN [IF]
20884 CODE THEN
20885 MOV &$1DC6,0(R14)
20886 MOV @R15+,R14
20887 MOV @R13+,R0
20888 ENDCODE IMMEDIATE
20889 [THEN]
20890
20891 [UNDEFINED] ELSE [IF]
20892 CODE ELSE
20893 ADD #4,&$1DC6
20894 MOV &$1DC6,R10
20895 MOV #$4048,-4(R10)
20896 MOV R10,0(R14)
20897 SUB #2,R10
20898 MOV R10,R14
20899 MOV @R13+,R0
20900 ENDCODE IMMEDIATE
20901 [THEN]
20902
20903 [UNDEFINED] DEFER [IF]
20904
20905 : DEFER
20906 CREATE
20907 HI2LO
20908 MOV #$4030,-4(R10)
20909 MOV #$402C,-2(R10)
20910 MOV @R1+,R13
20911 MOV @R13+,R0
20912 ENDCODE
20913 [THEN]
20914
20915 [UNDEFINED] DEFER! [IF]
20916 CODE DEFER!
20917 MOV @R15+,2(R14)
20918 MOV @R15+,R14
20919 MOV @R13+,R0
20920 ENDCODE
20921 [THEN]
20922
20923 [UNDEFINED] IS [IF]
20924 : IS
20925 STATE @
20926 IF  POSTPONE ['] POSTPONE DEFER! 
20927 ELSE ' DEFER! 
20928 THEN
20929 ; IMMEDIATE
20930 [THEN]
20931
20932 [UNDEFINED] >BODY [IF]
20933 CODE >BODY
20934 ADD #4,R14
20935 MOV @R13+,R0
20936 ENDCODE
20937 [THEN]
20938
20939
20940 CODE 20_US
20941 BEGIN
20942     BEGIN
20943         BIT #1,&$3C0
20944     0<> UNTIL
20945     BIC #1,&$3C0
20946     SUB #1,R14
20947 U< UNTIL
20948 MOV @R15+,R14
20949 MOV @R13+,R0
20950 ENDCODE
20951
20952 CODE TOP_LCD
20953     BIS.B #4,&$243
20954     BIT.B #1,&$241
20955 0= IF
20956     AND.B #$0F,R14
20957     MOV.B R14,&$222
20958     BIC.B #4,&$243
20959     MOV @R15+,R14
20960     MOV @R13+,R0
20961 THEN
20962     SUB #2,R15
20963     MOV R14,0(R15)
20964     BIC.B #4,&$243
20965     MOV.B &$220,R14
20966     AND.B #$0F,R14
20967     MOV @R13+,R0
20968 ENDCODE
20969
20970 CODE LCD_WRC
20971     BIS.B #2,&$243
20972 BW1 SUB #2,R15
20973     MOV R14,0(R15)
20974     RRUM #4,R14
20975     BIC.B #1,&$243
20976     BIS.B #$0F,&$224
20977 COLON
20978     TOP_LCD 2 20_US
20979     TOP_LCD 2 20_US 
20980 ;
20981
20982 CODE LCD_WRF
20983     BIC.B #2,&$243
20984     GOTO BW1
20985 ENDCODE
20986
20987 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
20988 : LCD_HOME $02 LCD_WRF 100 20_us ;
20989
20990
20991
20992 ASM WDT_INT
20993 ADD #2,R1
20994 BIT.B #$20,&$240
20995 0= IF
20996     CMP #19,&$3D6
20997     U< IF
20998         ADD #1,&$3D6
20999     THEN
21000 ELSE
21001     BIT.B #$40,&$240
21002     0= IF
21003         CMP #3,&$3D6
21004         U>= IF
21005            SUB #1,&$3D6
21006         THEN
21007     THEN
21008 THEN
21009 BW1
21010 MOV @R1+,R0
21011 ENDASM
21012
21013 ASM RC5_INT
21014 ADD #2,R1
21015 $1806 @ 16000 = [IF]
21016     MOV #1,&$3A0
21017 [THEN]
21018 $1806 @ 24000 = [IF]
21019     MOV #2,&$3A0
21020 [THEN]
21021 MOV #1778,R9
21022 MOV #14,R10
21023 BEGIN
21024 MOV #%1011100100,&$380
21025     RRUM    #1,R9
21026     MOV     R9,R8
21027     RRUM    #1,R8
21028     ADD     R9,R8
21029     BEGIN   CMP R8,&$390
21030     U>= UNTIL
21031     BIT.B   #4,&$200
21032     ADDC    R11,R11
21033     MOV.B   &$200,&$208
21034     BIC.B   #4,&$20C
21035     SUB     #1,R10
21036 0<> WHILE
21037     ADD R9,R8
21038     BEGIN
21039         MOV &$390,R9
21040         CMP R8,R9
21041         U>= IF
21042         BIC #$30,&$380
21043         GOTO BW1
21044         THEN
21045         BIT.B #4,&$20C
21046     0<> UNTIL
21047 REPEAT
21048 BIC #$30,&$380
21049 RLAM    #1,R11
21050 MOV.B   R11,R9
21051 RRUM    #2,R9
21052 BIT     #$4000,R11
21053 0= IF   BIS #$40,R9
21054 THEN
21055 RRUM    #3,R11
21056 XOR     @R1,R11
21057 BIT     #$400,R11
21058 0= ?GOTO BW1
21059 XOR #$400,0(R1)
21060 SUB #8,R15
21061 MOV R14,6(R15)
21062 MOV &$1DDC,4(R15)
21063 MOV #$10,&$1DDC
21064 MOV R9,0(R15)
21065 MOV #0,R14
21066 LO2HI
21067     LCD_CLEAR
21068     <# # #S #36 HOLD #>
21069     ['] LCD_WRC IS EMIT
21070     TYPE
21071     ['] EMIT >BODY IS EMIT
21072 HI2LO
21073 MOV @R15+,&$1DDC
21074 MOV @R15+,R14
21075 MOV @R1+,R0
21076 ENDASM
21077
21078 ASM BACKGROUND
21079 BEGIN
21080     CALL &$1814
21081     BIS &$180A,R2
21082 AGAIN
21083 ENDASM
21084
21085 ASM SYS_OUT
21086     MOV #WARM,R9
21087     ADD #4,R9
21088     MOV R9,R0
21089 ENDASM
21090
21091 CODE STOP
21092 BW1 MOV #$4000,R9
21093     ADD #4,R9
21094     MOV R9,-2(R9)
21095     MOV #WARM,R9
21096     MOV #SYS_OUT,2(R9)
21097     BIC.B #4,&$20A
21098     BIC.B #4,&$20C
21099     MOV #0,&$3C0
21100     MOV #0,&$340
21101     MOV #0,&$342
21102     CALL #$400E
21103 COLON
21104 ECHO
21105 ." RC5toLCD is removed,"
21106 ."  type START to restart"
21107  WARM
21108 ;
21109
21110 CODE SYS_INIT
21111 MOV #%10_1101_0100,&$3C0
21112 $1806 @ 16000 = [IF]
21113     MOV #1,&$3E0
21114 [THEN]
21115 $1806 @ 24000 = [IF]
21116     MOV #2,&$3E0
21117 [THEN]
21118     MOV #19,&$3D2
21119 MOV #%0110_0000,&$3C6
21120     MOV #10,&$3D6
21121     BIS.B #$20,&$204
21122     BIS.B #$20,&$20A
21123     BIS.B #7,&$245
21124     BIC.B #7,&$247
21125     BIS.B #$0F,&$224
21126     BIC.B #$0F,&$226
21127     BIS.B #4,&$20A
21128     BIC.B #4,&$20C
21129     MOV #RC5_INT,&$FFDE
21130 MOV #%01_0001_0100,&$340
21131     MOV ##3276,&$352
21132     MOV #%10000,&$342
21133     MOV #WDT_INT,&$FFEA
21134 BIC #1,&$130
21135 BIS.B #3,&$20D
21136 MOV &$1808,R8
21137 CMP #4,R8
21138 0= ?GOTO BW1
21139 COLON
21140     #1000 20_US
21141     %011 TOP_LCD
21142     #205 20_US
21143     %011 TOP_LCD
21144     #5 20_US
21145     %011 TOP_LCD
21146     #2 20_US
21147     %010 TOP_LCD
21148     #2 20_US
21149     %00101000 LCD_WRF
21150     %1000 LCD_WRF
21151     LCD_CLEAR
21152     %0110 LCD_WRF
21153     %1100 LCD_WRF
21154     LCD_CLEAR
21155     ['] LCD_HOME IS CR
21156     ['] LCD_WRC  IS EMIT
21157     CR ." I love you"
21158     ['] CR >BODY IS CR
21159     ['] EMIT >BODY IS EMIT
21160     ." RC5toLCD is running. Type STOP to quit"
21161     PWR_STATE ABORT
21162 ;
21163
21164 CODE START
21165 MOV #$4000,R9
21166 MOV #BACKGROUND,2(R9)
21167 MOV #WARM,R9
21168 MOV #SYS_INIT,2(R9)
21169 MOV R9,R0
21170 ENDCODE 
21171
21172 ECHO
21173             ; downloading RC5toLCD.4th is done
21174 RST_HERE    ; this app is protected against <reset>
21175
21176
21177 RST_STATE
21178
21179 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
21180
21181 [UNDEFINED] MARKER [IF]
21182 : MARKER
21183 CREATE
21184 HI2LO
21185 MOV &$1DC8,0(R10)
21186 SUB #2,R8
21187 MOV R8,2(R10)
21188 ADD #4,&$1DC6
21189 LO2HI
21190 DOES>
21191 HI2LO
21192 MOV @R1+,R13
21193 MOV @R14+,&$180E
21194 MOV @R14,&$180C
21195 MOV @R15+,R14
21196 MOV #RST_STATE,R0
21197 ENDCODE
21198 [THEN]
21199
21200 MARKER {RC5TOLCD}
21201
21202 [UNDEFINED] @ [IF]
21203 CODE @
21204 MOV @R14,R14
21205 MOV @R13+,R0
21206 ENDCODE
21207 [THEN]
21208
21209 [UNDEFINED] CONSTANT [IF]
21210 : CONSTANT 
21211 CREATE
21212 HI2LO
21213 MOV R14,-2(R10)
21214 MOV @R15+,R14
21215 MOV @R1+,R13
21216 MOV @R13+,R0
21217 ENDCODE
21218 [THEN]
21219
21220 [UNDEFINED] STATE [IF]
21221 $1DBE CONSTANT STATE
21222 [THEN]
21223
21224 [UNDEFINED] = [IF]
21225 CODE =
21226 SUB @R15+,R14
21227 0<> IF
21228     AND #0,R14
21229     MOV @R13+,R0
21230 THEN
21231 XOR #-1,R14
21232 MOV @R13+,R0
21233 ENDCODE
21234 [THEN]
21235
21236 [UNDEFINED] IF [IF]
21237 CODE IF
21238 SUB #2,R15
21239 MOV R14,0(R15)
21240 MOV &$1DC6,R14
21241 ADD #4,&$1DC6
21242 MOV #$404C,0(R14)
21243 ADD #2,R14
21244 MOV @R13+,R0
21245 ENDCODE IMMEDIATE
21246 [THEN]
21247
21248 [UNDEFINED] THEN [IF]
21249 CODE THEN
21250 MOV &$1DC6,0(R14)
21251 MOV @R15+,R14
21252 MOV @R13+,R0
21253 ENDCODE IMMEDIATE
21254 [THEN]
21255
21256 [UNDEFINED] ELSE [IF]
21257 CODE ELSE
21258 ADD #4,&$1DC6
21259 MOV &$1DC6,R10
21260 MOV #$4048,-4(R10)
21261 MOV R10,0(R14)
21262 SUB #2,R10
21263 MOV R10,R14
21264 MOV @R13+,R0
21265 ENDCODE IMMEDIATE
21266 [THEN]
21267
21268 [UNDEFINED] DEFER [IF]
21269
21270 : DEFER
21271 CREATE
21272 HI2LO
21273 MOV #$4030,-4(R10)
21274 MOV #$402C,-2(R10)
21275 MOV @R1+,R13
21276 MOV @R13+,R0
21277 ENDCODE
21278 [THEN]
21279
21280 [UNDEFINED] DEFER! [IF]
21281 CODE DEFER!
21282 MOV @R15+,2(R14)
21283 MOV @R15+,R14
21284 MOV @R13+,R0
21285 ENDCODE
21286 [THEN]
21287
21288 [UNDEFINED] IS [IF]
21289 : IS
21290 STATE @
21291 IF  POSTPONE ['] POSTPONE DEFER! 
21292 ELSE ' DEFER! 
21293 THEN
21294 ; IMMEDIATE
21295 [THEN]
21296
21297 [UNDEFINED] >BODY [IF]
21298 CODE >BODY
21299 ADD #4,R14
21300 MOV @R13+,R0
21301 ENDCODE
21302 [THEN]
21303
21304
21305 CODE 20_US
21306 BEGIN
21307     BEGIN
21308         BIT #1,&$3C0
21309     0<> UNTIL
21310     BIC #1,&$3C0
21311     SUB #1,R14
21312 U< UNTIL
21313 MOV @R15+,R14
21314 MOV @R13+,R0
21315 ENDCODE
21316
21317 CODE TOP_LCD
21318     BIS.B #4,&$243
21319     BIT.B #1,&$241
21320 0= IF
21321     AND.B #$0F,R14
21322     MOV.B R14,&$222
21323     BIC.B #4,&$243
21324     MOV @R15+,R14
21325     MOV @R13+,R0
21326 THEN
21327     SUB #2,R15
21328     MOV R14,0(R15)
21329     BIC.B #4,&$243
21330     MOV.B &$220,R14
21331     AND.B #$0F,R14
21332     MOV @R13+,R0
21333 ENDCODE
21334
21335 CODE LCD_WRC
21336     BIS.B #2,&$243
21337 BW1 SUB #2,R15
21338     MOV R14,0(R15)
21339     RRUM #4,R14
21340     BIC.B #1,&$243
21341     BIS.B #$0F,&$224
21342 COLON
21343     TOP_LCD 2 20_US
21344     TOP_LCD 2 20_US 
21345 ;
21346
21347 CODE LCD_WRF
21348     BIC.B #2,&$243
21349     GOTO BW1
21350 ENDCODE
21351
21352 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
21353 : LCD_HOME $02 LCD_WRF 100 20_us ;
21354
21355
21356
21357 ASM WDT_INT
21358 ADD #2,R1
21359 BIT.B #$20,&$240
21360 0= IF
21361     CMP #19,&$3D6
21362     U< IF
21363         ADD #1,&$3D6
21364     THEN
21365 ELSE
21366     BIT.B #$40,&$240
21367     0= IF
21368         CMP #3,&$3D6
21369         U>= IF
21370            SUB #1,&$3D6
21371         THEN
21372     THEN
21373 THEN
21374 BW1
21375 MOV @R1+,R0
21376 ENDASM
21377
21378 ASM RC5_INT
21379 ADD #2,R1
21380 $1806 @ 16000 = [IF]
21381     MOV #1,&$3A0
21382 [THEN]
21383 $1806 @ 24000 = [IF]
21384     MOV #2,&$3A0
21385 [THEN]
21386 MOV #1778,R9
21387 MOV #14,R10
21388 BEGIN
21389 MOV #%1011100100,&$380
21390     RRUM    #1,R9
21391     MOV     R9,R8
21392     RRUM    #1,R8
21393     ADD     R9,R8
21394     BEGIN   CMP R8,&$390
21395     U>= UNTIL
21396     BIT.B   #4,&$200
21397     ADDC    R11,R11
21398     MOV.B   &$200,&$208
21399     BIC.B   #4,&$20C
21400     SUB     #1,R10
21401 0<> WHILE
21402     ADD R9,R8
21403     BEGIN
21404         MOV &$390,R9
21405         CMP R8,R9
21406         U>= IF
21407         BIC #$30,&$380
21408         GOTO BW1
21409         THEN
21410         BIT.B #4,&$20C
21411     0<> UNTIL
21412 REPEAT
21413 BIC #$30,&$380
21414 RLAM    #1,R11
21415 MOV.B   R11,R9
21416 RRUM    #2,R9
21417 BIT     #$4000,R11
21418 0= IF   BIS #$40,R9
21419 THEN
21420 RRUM    #3,R11
21421 XOR     @R1,R11
21422 BIT     #$400,R11
21423 0= ?GOTO BW1
21424 XOR #$400,0(R1)
21425 SUB #8,R15
21426 MOV R14,6(R15)
21427 MOV &$1DDC,4(R15)
21428 MOV #$10,&$1DDC
21429 MOV R9,0(R15)
21430 MOV #0,R14
21431 LO2HI
21432     LCD_CLEAR
21433     <# # #S #36 HOLD #>
21434     ['] LCD_WRC IS EMIT
21435     TYPE
21436     ['] EMIT >BODY IS EMIT
21437 HI2LO
21438 MOV @R15+,&$1DDC
21439 MOV @R15+,R14
21440 MOV @R1+,R0
21441 ENDASM
21442
21443 ASM BACKGROUND
21444 BEGIN
21445     CALL &$1814
21446     BIS &$180A,R2
21447 AGAIN
21448 ENDASM
21449
21450 ASM SYS_OUT
21451     MOV #WARM,R9
21452     ADD #4,R9
21453     MOV R9,R0
21454 ENDASM
21455
21456 CODE STOP
21457 BW1 MOV #$4000,R9
21458     ADD #4,R9
21459     MOV R9,-2(R9)
21460     MOV #WARM,R9
21461     MOV #SYS_OUT,2(R9)
21462     BIC.B #4,&$20A
21463     BIC.B #4,&$20C
21464     MOV #0,&$3C0
21465     MOV #0,&$340
21466     MOV #0,&$342
21467     CALL #$400E
21468 COLON
21469 ECHO
21470 ." RC5toLCD is removed,"
21471 ."  type START to restart"
21472  WARM
21473 ;
21474
21475 CODE SYS_INIT
21476 MOV #%10_1101_0100,&$3C0
21477 $1806 @ 16000 = [IF]
21478     MOV #1,&$3E0
21479 [THEN]
21480 $1806 @ 24000 = [IF]
21481     MOV #2,&$3E0
21482 [THEN]
21483     MOV #19,&$3D2
21484 MOV #%0110_0000,&$3C6
21485     MOV #10,&$3D6
21486     BIS.B #$20,&$204
21487     BIS.B #$20,&$20A
21488     BIS.B #7,&$245
21489     BIC.B #7,&$247
21490     BIS.B #$0F,&$224
21491     BIC.B #$0F,&$226
21492     BIS.B #4,&$20A
21493     BIC.B #4,&$20C
21494     MOV #RC5_INT,&$FFDE
21495 MOV #%01_0001_0100,&$340
21496     MOV ##3276,&$352
21497     MOV #%10000,&$342
21498     MOV #WDT_INT,&$FFEA
21499 BIC #1,&$130
21500 BIS.B #3,&$20D
21501 MOV &$1808,R8
21502 CMP #4,R8
21503 0= ?GOTO BW1
21504 COLON
21505     #1000 20_US
21506     %011 TOP_LCD
21507     #205 20_US
21508     %011 TOP_LCD
21509     #5 20_US
21510     %011 TOP_LCD
21511     #2 20_US
21512     %010 TOP_LCD
21513     #2 20_US
21514     %00101000 LCD_WRF
21515     %1000 LCD_WRF
21516     LCD_CLEAR
21517     %0110 LCD_WRF
21518     %1100 LCD_WRF
21519     LCD_CLEAR
21520     ['] LCD_HOME IS CR
21521     ['] LCD_WRC  IS EMIT
21522     CR ." I love you"
21523     ['] CR >BODY IS CR
21524     ['] EMIT >BODY IS EMIT
21525     ." RC5toLCD is running. Type STOP to quit"
21526     PWR_STATE ABORT
21527 ;
21528
21529 CODE START
21530 MOV #$4000,R9
21531 MOV #BACKGROUND,2(R9)
21532 MOV #WARM,R9
21533 MOV #SYS_INIT,2(R9)
21534 MOV R9,R0
21535 ENDCODE 
21536
21537 ECHO
21538             ; downloading RC5toLCD.4th is done
21539 RST_HERE    ; this app is protected against <reset>
21540
21541
21542 RST_STATE
21543
21544 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
21545
21546 [UNDEFINED] MARKER [IF]
21547 : MARKER
21548 CREATE
21549 HI2LO
21550 MOV &$1DC8,0(R10)
21551 SUB #2,R8
21552 MOV R8,2(R10)
21553 ADD #4,&$1DC6
21554 LO2HI
21555 DOES>
21556 HI2LO
21557 MOV @R1+,R13
21558 MOV @R14+,&$180E
21559 MOV @R14,&$180C
21560 MOV @R15+,R14
21561 MOV #RST_STATE,R0
21562 ENDCODE
21563 [THEN]
21564
21565 MARKER {RC5TOLCD}
21566
21567 [UNDEFINED] @ [IF]
21568 CODE @
21569 MOV @R14,R14
21570 MOV @R13+,R0
21571 ENDCODE
21572 [THEN]
21573
21574 [UNDEFINED] CONSTANT [IF]
21575 : CONSTANT 
21576 CREATE
21577 HI2LO
21578 MOV R14,-2(R10)
21579 MOV @R15+,R14
21580 MOV @R1+,R13
21581 MOV @R13+,R0
21582 ENDCODE
21583 [THEN]
21584
21585 [UNDEFINED] STATE [IF]
21586 $1DBE CONSTANT STATE
21587 [THEN]
21588
21589 [UNDEFINED] = [IF]
21590 CODE =
21591 SUB @R15+,R14
21592 0<> IF
21593     AND #0,R14
21594     MOV @R13+,R0
21595 THEN
21596 XOR #-1,R14
21597 MOV @R13+,R0
21598 ENDCODE
21599 [THEN]
21600
21601 [UNDEFINED] IF [IF]
21602 CODE IF
21603 SUB #2,R15
21604 MOV R14,0(R15)
21605 MOV &$1DC6,R14
21606 ADD #4,&$1DC6
21607 MOV #$404C,0(R14)
21608 ADD #2,R14
21609 MOV @R13+,R0
21610 ENDCODE IMMEDIATE
21611 [THEN]
21612
21613 [UNDEFINED] THEN [IF]
21614 CODE THEN
21615 MOV &$1DC6,0(R14)
21616 MOV @R15+,R14
21617 MOV @R13+,R0
21618 ENDCODE IMMEDIATE
21619 [THEN]
21620
21621 [UNDEFINED] ELSE [IF]
21622 CODE ELSE
21623 ADD #4,&$1DC6
21624 MOV &$1DC6,R10
21625 MOV #$4048,-4(R10)
21626 MOV R10,0(R14)
21627 SUB #2,R10
21628 MOV R10,R14
21629 MOV @R13+,R0
21630 ENDCODE IMMEDIATE
21631 [THEN]
21632
21633 [UNDEFINED] DEFER [IF]
21634
21635 : DEFER
21636 CREATE
21637 HI2LO
21638 MOV #$4030,-4(R10)
21639 MOV #$402C,-2(R10)
21640 MOV @R1+,R13
21641 MOV @R13+,R0
21642 ENDCODE
21643 [THEN]
21644
21645 [UNDEFINED] DEFER! [IF]
21646 CODE DEFER!
21647 MOV @R15+,2(R14)
21648 MOV @R15+,R14
21649 MOV @R13+,R0
21650 ENDCODE
21651 [THEN]
21652
21653 [UNDEFINED] IS [IF]
21654 : IS
21655 STATE @
21656 IF  POSTPONE ['] POSTPONE DEFER! 
21657 ELSE ' DEFER! 
21658 THEN
21659 ; IMMEDIATE
21660 [THEN]
21661
21662 [UNDEFINED] >BODY [IF]
21663 CODE >BODY
21664 ADD #4,R14
21665 MOV @R13+,R0
21666 ENDCODE
21667 [THEN]
21668
21669
21670 CODE 20_US
21671 BEGIN
21672     BEGIN
21673         BIT #1,&$3C0
21674     0<> UNTIL
21675     BIC #1,&$3C0
21676     SUB #1,R14
21677 U< UNTIL
21678 MOV @R15+,R14
21679 MOV @R13+,R0
21680 ENDCODE
21681
21682 CODE TOP_LCD
21683     BIS.B #4,&$243
21684     BIT.B #1,&$241
21685 0= IF
21686     AND.B #$0F,R14
21687     MOV.B R14,&$222
21688     BIC.B #4,&$243
21689     MOV @R15+,R14
21690     MOV @R13+,R0
21691 THEN
21692     SUB #2,R15
21693     MOV R14,0(R15)
21694     BIC.B #4,&$243
21695     MOV.B &$220,R14
21696     AND.B #$0F,R14
21697     MOV @R13+,R0
21698 ENDCODE
21699
21700 CODE LCD_WRC
21701     BIS.B #2,&$243
21702 BW1 SUB #2,R15
21703     MOV R14,0(R15)
21704     RRUM #4,R14
21705     BIC.B #1,&$243
21706     BIS.B #$0F,&$224
21707 COLON
21708     TOP_LCD 2 20_US
21709     TOP_LCD 2 20_US 
21710 ;
21711
21712 CODE LCD_WRF
21713     BIC.B #2,&$243
21714     GOTO BW1
21715 ENDCODE
21716
21717 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
21718 : LCD_HOME $02 LCD_WRF 100 20_us ;
21719
21720
21721
21722 ASM WDT_INT
21723 ADD #2,R1
21724 BIT.B #$20,&$240
21725 0= IF
21726     CMP #19,&$3D6
21727     U< IF
21728         ADD #1,&$3D6
21729     THEN
21730 ELSE
21731     BIT.B #$40,&$240
21732     0= IF
21733         CMP #3,&$3D6
21734         U>= IF
21735            SUB #1,&$3D6
21736         THEN
21737     THEN
21738 THEN
21739 BW1
21740 MOV @R1+,R0
21741 ENDASM
21742
21743 ASM RC5_INT
21744 ADD #2,R1
21745 $1806 @ 16000 = [IF]
21746     MOV #1,&$3A0
21747 [THEN]
21748 $1806 @ 24000 = [IF]
21749     MOV #2,&$3A0
21750 [THEN]
21751 MOV #1778,R9
21752 MOV #14,R10
21753 BEGIN
21754 MOV #%1011100100,&$380
21755     RRUM    #1,R9
21756     MOV     R9,R8
21757     RRUM    #1,R8
21758     ADD     R9,R8
21759     BEGIN   CMP R8,&$390
21760     U>= UNTIL
21761     BIT.B   #4,&$200
21762     ADDC    R11,R11
21763     MOV.B   &$200,&$208
21764     BIC.B   #4,&$20C
21765     SUB     #1,R10
21766 0<> WHILE
21767     ADD R9,R8
21768     BEGIN
21769         MOV &$390,R9
21770         CMP R8,R9
21771         U>= IF
21772         BIC #$30,&$380
21773         GOTO BW1
21774         THEN
21775         BIT.B #4,&$20C
21776     0<> UNTIL
21777 REPEAT
21778 BIC #$30,&$380
21779 RLAM    #1,R11
21780 MOV.B   R11,R9
21781 RRUM    #2,R9
21782 BIT     #$4000,R11
21783 0= IF   BIS #$40,R9
21784 THEN
21785 RRUM    #3,R11
21786 XOR     @R1,R11
21787 BIT     #$400,R11
21788 0= ?GOTO BW1
21789 XOR #$400,0(R1)
21790 SUB #8,R15
21791 MOV R14,6(R15)
21792 MOV &$1DDC,4(R15)
21793 MOV #$10,&$1DDC
21794 MOV R9,0(R15)
21795 MOV #0,R14
21796 LO2HI
21797     LCD_CLEAR
21798     <# # #S #36 HOLD #>
21799     ['] LCD_WRC IS EMIT
21800     TYPE
21801     ['] EMIT >BODY IS EMIT
21802 HI2LO
21803 MOV @R15+,&$1DDC
21804 MOV @R15+,R14
21805 MOV @R1+,R0
21806 ENDASM
21807
21808 ASM BACKGROUND
21809 BEGIN
21810     CALL &$1814
21811     BIS &$180A,R2
21812 AGAIN
21813 ENDASM
21814
21815 ASM SYS_OUT
21816     MOV #WARM,R9
21817     ADD #4,R9
21818     MOV R9,R0
21819 ENDASM
21820
21821 CODE STOP
21822 BW1 MOV #$4000,R9
21823     ADD #4,R9
21824     MOV R9,-2(R9)
21825     MOV #WARM,R9
21826     MOV #SYS_OUT,2(R9)
21827     BIC.B #4,&$20A
21828     BIC.B #4,&$20C
21829     MOV #0,&$3C0
21830     MOV #0,&$340
21831     MOV #0,&$342
21832     CALL #$400E
21833 COLON
21834 ECHO
21835 ." RC5toLCD is removed,"
21836 ."  type START to restart"
21837  WARM
21838 ;
21839
21840 CODE SYS_INIT
21841 MOV #%10_1101_0100,&$3C0
21842 $1806 @ 16000 = [IF]
21843     MOV #1,&$3E0
21844 [THEN]
21845 $1806 @ 24000 = [IF]
21846     MOV #2,&$3E0
21847 [THEN]
21848     MOV #19,&$3D2
21849 MOV #%0110_0000,&$3C6
21850     MOV #10,&$3D6
21851     BIS.B #$20,&$204
21852     BIS.B #$20,&$20A
21853     BIS.B #7,&$245
21854     BIC.B #7,&$247
21855     BIS.B #$0F,&$224
21856     BIC.B #$0F,&$226
21857     BIS.B #4,&$20A
21858     BIC.B #4,&$20C
21859     MOV #RC5_INT,&$FFDE
21860 MOV #%01_0001_0100,&$340
21861     MOV ##3276,&$352
21862     MOV #%10000,&$342
21863     MOV #WDT_INT,&$FFEA
21864 BIC #1,&$130
21865 BIS.B #3,&$20D
21866 MOV &$1808,R8
21867 CMP #4,R8
21868 0= ?GOTO BW1
21869 COLON
21870     #1000 20_US
21871     %011 TOP_LCD
21872     #205 20_US
21873     %011 TOP_LCD
21874     #5 20_US
21875     %011 TOP_LCD
21876     #2 20_US
21877     %010 TOP_LCD
21878     #2 20_US
21879     %00101000 LCD_WRF
21880     %1000 LCD_WRF
21881     LCD_CLEAR
21882     %0110 LCD_WRF
21883     %1100 LCD_WRF
21884     LCD_CLEAR
21885     ['] LCD_HOME IS CR
21886     ['] LCD_WRC  IS EMIT
21887     CR ." I love you"
21888     ['] CR >BODY IS CR
21889     ['] EMIT >BODY IS EMIT
21890     ." RC5toLCD is running. Type STOP to quit"
21891     PWR_STATE ABORT
21892 ;
21893
21894 CODE START
21895 MOV #$4000,R9
21896 MOV #BACKGROUND,2(R9)
21897 MOV #WARM,R9
21898 MOV #SYS_INIT,2(R9)
21899 MOV R9,R0
21900 ENDCODE 
21901
21902 ECHO
21903             ; downloading RC5toLCD.4th is done
21904 RST_HERE    ; this app is protected against <reset>
21905
21906
21907 RST_STATE
21908
21909 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
21910
21911 [UNDEFINED] MARKER [IF]
21912 : MARKER
21913 CREATE
21914 HI2LO
21915 MOV &$1DC8,0(R10)
21916 SUB #2,R8
21917 MOV R8,2(R10)
21918 ADD #4,&$1DC6
21919 LO2HI
21920 DOES>
21921 HI2LO
21922 MOV @R1+,R13
21923 MOV @R14+,&$180E
21924 MOV @R14,&$180C
21925 MOV @R15+,R14
21926 MOV #RST_STATE,R0
21927 ENDCODE
21928 [THEN]
21929
21930 MARKER {RC5TOLCD}
21931
21932 [UNDEFINED] @ [IF]
21933 CODE @
21934 MOV @R14,R14
21935 MOV @R13+,R0
21936 ENDCODE
21937 [THEN]
21938
21939 [UNDEFINED] CONSTANT [IF]
21940 : CONSTANT 
21941 CREATE
21942 HI2LO
21943 MOV R14,-2(R10)
21944 MOV @R15+,R14
21945 MOV @R1+,R13
21946 MOV @R13+,R0
21947 ENDCODE
21948 [THEN]
21949
21950 [UNDEFINED] STATE [IF]
21951 $1DBE CONSTANT STATE
21952 [THEN]
21953
21954 [UNDEFINED] = [IF]
21955 CODE =
21956 SUB @R15+,R14
21957 0<> IF
21958     AND #0,R14
21959     MOV @R13+,R0
21960 THEN
21961 XOR #-1,R14
21962 MOV @R13+,R0
21963 ENDCODE
21964 [THEN]
21965
21966 [UNDEFINED] IF [IF]
21967 CODE IF
21968 SUB #2,R15
21969 MOV R14,0(R15)
21970 MOV &$1DC6,R14
21971 ADD #4,&$1DC6
21972 MOV #$404C,0(R14)
21973 ADD #2,R14
21974 MOV @R13+,R0
21975 ENDCODE IMMEDIATE
21976 [THEN]
21977
21978 [UNDEFINED] THEN [IF]
21979 CODE THEN
21980 MOV &$1DC6,0(R14)
21981 MOV @R15+,R14
21982 MOV @R13+,R0
21983 ENDCODE IMMEDIATE
21984 [THEN]
21985
21986 [UNDEFINED] ELSE [IF]
21987 CODE ELSE
21988 ADD #4,&$1DC6
21989 MOV &$1DC6,R10
21990 MOV #$4048,-4(R10)
21991 MOV R10,0(R14)
21992 SUB #2,R10
21993 MOV R10,R14
21994 MOV @R13+,R0
21995 ENDCODE IMMEDIATE
21996 [THEN]
21997
21998 [UNDEFINED] DEFER [IF]
21999
22000 : DEFER
22001 CREATE
22002 HI2LO
22003 MOV #$4030,-4(R10)
22004 MOV #$402C,-2(R10)
22005 MOV @R1+,R13
22006 MOV @R13+,R0
22007 ENDCODE
22008 [THEN]
22009
22010 [UNDEFINED] DEFER! [IF]
22011 CODE DEFER!
22012 MOV @R15+,2(R14)
22013 MOV @R15+,R14
22014 MOV @R13+,R0
22015 ENDCODE
22016 [THEN]
22017
22018 [UNDEFINED] IS [IF]
22019 : IS
22020 STATE @
22021 IF  POSTPONE ['] POSTPONE DEFER! 
22022 ELSE ' DEFER! 
22023 THEN
22024 ; IMMEDIATE
22025 [THEN]
22026
22027 [UNDEFINED] >BODY [IF]
22028 CODE >BODY
22029 ADD #4,R14
22030 MOV @R13+,R0
22031 ENDCODE
22032 [THEN]
22033
22034
22035 CODE 20_US
22036 BEGIN
22037     BEGIN
22038         BIT #1,&$3C0
22039     0<> UNTIL
22040     BIC #1,&$3C0
22041     SUB #1,R14
22042 U< UNTIL
22043 MOV @R15+,R14
22044 MOV @R13+,R0
22045 ENDCODE
22046
22047 CODE TOP_LCD
22048     BIS.B #4,&$243
22049     BIT.B #1,&$241
22050 0= IF
22051     AND.B #$0F,R14
22052     MOV.B R14,&$222
22053     BIC.B #4,&$243
22054     MOV @R15+,R14
22055     MOV @R13+,R0
22056 THEN
22057     SUB #2,R15
22058     MOV R14,0(R15)
22059     BIC.B #4,&$243
22060     MOV.B &$220,R14
22061     AND.B #$0F,R14
22062     MOV @R13+,R0
22063 ENDCODE
22064
22065 CODE LCD_WRC
22066     BIS.B #2,&$243
22067 BW1 SUB #2,R15
22068     MOV R14,0(R15)
22069     RRUM #4,R14
22070     BIC.B #1,&$243
22071     BIS.B #$0F,&$224
22072 COLON
22073     TOP_LCD 2 20_US
22074     TOP_LCD 2 20_US 
22075 ;
22076
22077 CODE LCD_WRF
22078     BIC.B #2,&$243
22079     GOTO BW1
22080 ENDCODE
22081
22082 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
22083 : LCD_HOME $02 LCD_WRF 100 20_us ;
22084
22085
22086
22087 ASM WDT_INT
22088 ADD #2,R1
22089 BIT.B #$20,&$240
22090 0= IF
22091     CMP #19,&$3D6
22092     U< IF
22093         ADD #1,&$3D6
22094     THEN
22095 ELSE
22096     BIT.B #$40,&$240
22097     0= IF
22098         CMP #3,&$3D6
22099         U>= IF
22100            SUB #1,&$3D6
22101         THEN
22102     THEN
22103 THEN
22104 BW1
22105 MOV @R1+,R0
22106 ENDASM
22107
22108 ASM RC5_INT
22109 ADD #2,R1
22110 $1806 @ 16000 = [IF]
22111     MOV #1,&$3A0
22112 [THEN]
22113 $1806 @ 24000 = [IF]
22114     MOV #2,&$3A0
22115 [THEN]
22116 MOV #1778,R9
22117 MOV #14,R10
22118 BEGIN
22119 MOV #%1011100100,&$380
22120     RRUM    #1,R9
22121     MOV     R9,R8
22122     RRUM    #1,R8
22123     ADD     R9,R8
22124     BEGIN   CMP R8,&$390
22125     U>= UNTIL
22126     BIT.B   #4,&$200
22127     ADDC    R11,R11
22128     MOV.B   &$200,&$208
22129     BIC.B   #4,&$20C
22130     SUB     #1,R10
22131 0<> WHILE
22132     ADD R9,R8
22133     BEGIN
22134         MOV &$390,R9
22135         CMP R8,R9
22136         U>= IF
22137         BIC #$30,&$380
22138         GOTO BW1
22139         THEN
22140         BIT.B #4,&$20C
22141     0<> UNTIL
22142 REPEAT
22143 BIC #$30,&$380
22144 RLAM    #1,R11
22145 MOV.B   R11,R9
22146 RRUM    #2,R9
22147 BIT     #$4000,R11
22148 0= IF   BIS #$40,R9
22149 THEN
22150 RRUM    #3,R11
22151 XOR     @R1,R11
22152 BIT     #$400,R11
22153 0= ?GOTO BW1
22154 XOR #$400,0(R1)
22155 SUB #8,R15
22156 MOV R14,6(R15)
22157 MOV &$1DDC,4(R15)
22158 MOV #$10,&$1DDC
22159 MOV R9,0(R15)
22160 MOV #0,R14
22161 LO2HI
22162     LCD_CLEAR
22163     <# # #S #36 HOLD #>
22164     ['] LCD_WRC IS EMIT
22165     TYPE
22166     ['] EMIT >BODY IS EMIT
22167 HI2LO
22168 MOV @R15+,&$1DDC
22169 MOV @R15+,R14
22170 MOV @R1+,R0
22171 ENDASM
22172
22173 ASM BACKGROUND
22174 BEGIN
22175     CALL &$1814
22176     BIS &$180A,R2
22177 AGAIN
22178 ENDASM
22179
22180 ASM SYS_OUT
22181     MOV #WARM,R9
22182     ADD #4,R9
22183     MOV R9,R0
22184 ENDASM
22185
22186 CODE STOP
22187 BW1 MOV #$4000,R9
22188     ADD #4,R9
22189     MOV R9,-2(R9)
22190     MOV #WARM,R9
22191     MOV #SYS_OUT,2(R9)
22192     BIC.B #4,&$20A
22193     BIC.B #4,&$20C
22194     MOV #0,&$3C0
22195     MOV #0,&$340
22196     MOV #0,&$342
22197     CALL #$400E
22198 COLON
22199 ECHO
22200 ." RC5toLCD is removed,"
22201 ."  type START to restart"
22202  WARM
22203 ;
22204
22205 CODE SYS_INIT
22206 MOV #%10_1101_0100,&$3C0
22207 $1806 @ 16000 = [IF]
22208     MOV #1,&$3E0
22209 [THEN]
22210 $1806 @ 24000 = [IF]
22211     MOV #2,&$3E0
22212 [THEN]
22213     MOV #19,&$3D2
22214 MOV #%0110_0000,&$3C6
22215     MOV #10,&$3D6
22216     BIS.B #$20,&$204
22217     BIS.B #$20,&$20A
22218     BIS.B #7,&$245
22219     BIC.B #7,&$247
22220     BIS.B #$0F,&$224
22221     BIC.B #$0F,&$226
22222     BIS.B #4,&$20A
22223     BIC.B #4,&$20C
22224     MOV #RC5_INT,&$FFDE
22225 MOV #%01_0001_0100,&$340
22226     MOV ##3276,&$352
22227     MOV #%10000,&$342
22228     MOV #WDT_INT,&$FFEA
22229 BIC #1,&$130
22230 BIS.B #3,&$20D
22231 MOV &$1808,R8
22232 CMP #4,R8
22233 0= ?GOTO BW1
22234 COLON
22235     #1000 20_US
22236     %011 TOP_LCD
22237     #205 20_US
22238     %011 TOP_LCD
22239     #5 20_US
22240     %011 TOP_LCD
22241     #2 20_US
22242     %010 TOP_LCD
22243     #2 20_US
22244     %00101000 LCD_WRF
22245     %1000 LCD_WRF
22246     LCD_CLEAR
22247     %0110 LCD_WRF
22248     %1100 LCD_WRF
22249     LCD_CLEAR
22250     ['] LCD_HOME IS CR
22251     ['] LCD_WRC  IS EMIT
22252     CR ." I love you"
22253     ['] CR >BODY IS CR
22254     ['] EMIT >BODY IS EMIT
22255     ." RC5toLCD is running. Type STOP to quit"
22256     PWR_STATE ABORT
22257 ;
22258
22259 CODE START
22260 MOV #$4000,R9
22261 MOV #BACKGROUND,2(R9)
22262 MOV #WARM,R9
22263 MOV #SYS_INIT,2(R9)
22264 MOV R9,R0
22265 ENDCODE 
22266
22267 ECHO
22268             ; downloading RC5toLCD.4th is done
22269 RST_HERE    ; this app is protected against <reset>
22270
22271
22272 RST_STATE
22273
22274 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
22275
22276 [UNDEFINED] MARKER [IF]
22277 : MARKER
22278 CREATE
22279 HI2LO
22280 MOV &$1DC8,0(R10)
22281 SUB #2,R8
22282 MOV R8,2(R10)
22283 ADD #4,&$1DC6
22284 LO2HI
22285 DOES>
22286 HI2LO
22287 MOV @R1+,R13
22288 MOV @R14+,&$180E
22289 MOV @R14,&$180C
22290 MOV @R15+,R14
22291 MOV #RST_STATE,R0
22292 ENDCODE
22293 [THEN]
22294
22295 MARKER {RC5TOLCD}
22296
22297 [UNDEFINED] @ [IF]
22298 CODE @
22299 MOV @R14,R14
22300 MOV @R13+,R0
22301 ENDCODE
22302 [THEN]
22303
22304 [UNDEFINED] CONSTANT [IF]
22305 : CONSTANT 
22306 CREATE
22307 HI2LO
22308 MOV R14,-2(R10)
22309 MOV @R15+,R14
22310 MOV @R1+,R13
22311 MOV @R13+,R0
22312 ENDCODE
22313 [THEN]
22314
22315 [UNDEFINED] STATE [IF]
22316 $1DBE CONSTANT STATE
22317 [THEN]
22318
22319 [UNDEFINED] = [IF]
22320 CODE =
22321 SUB @R15+,R14
22322 0<> IF
22323     AND #0,R14
22324     MOV @R13+,R0
22325 THEN
22326 XOR #-1,R14
22327 MOV @R13+,R0
22328 ENDCODE
22329 [THEN]
22330
22331 [UNDEFINED] IF [IF]
22332 CODE IF
22333 SUB #2,R15
22334 MOV R14,0(R15)
22335 MOV &$1DC6,R14
22336 ADD #4,&$1DC6
22337 MOV #$404C,0(R14)
22338 ADD #2,R14
22339 MOV @R13+,R0
22340 ENDCODE IMMEDIATE
22341 [THEN]
22342
22343 [UNDEFINED] THEN [IF]
22344 CODE THEN
22345 MOV &$1DC6,0(R14)
22346 MOV @R15+,R14
22347 MOV @R13+,R0
22348 ENDCODE IMMEDIATE
22349 [THEN]
22350
22351 [UNDEFINED] ELSE [IF]
22352 CODE ELSE
22353 ADD #4,&$1DC6
22354 MOV &$1DC6,R10
22355 MOV #$4048,-4(R10)
22356 MOV R10,0(R14)
22357 SUB #2,R10
22358 MOV R10,R14
22359 MOV @R13+,R0
22360 ENDCODE IMMEDIATE
22361 [THEN]
22362
22363 [UNDEFINED] DEFER [IF]
22364
22365 : DEFER
22366 CREATE
22367 HI2LO
22368 MOV #$4030,-4(R10)
22369 MOV #$402C,-2(R10)
22370 MOV @R1+,R13
22371 MOV @R13+,R0
22372 ENDCODE
22373 [THEN]
22374
22375 [UNDEFINED] DEFER! [IF]
22376 CODE DEFER!
22377 MOV @R15+,2(R14)
22378 MOV @R15+,R14
22379 MOV @R13+,R0
22380 ENDCODE
22381 [THEN]
22382
22383 [UNDEFINED] IS [IF]
22384 : IS
22385 STATE @
22386 IF  POSTPONE ['] POSTPONE DEFER! 
22387 ELSE ' DEFER! 
22388 THEN
22389 ; IMMEDIATE
22390 [THEN]
22391
22392 [UNDEFINED] >BODY [IF]
22393 CODE >BODY
22394 ADD #4,R14
22395 MOV @R13+,R0
22396 ENDCODE
22397 [THEN]
22398
22399
22400 CODE 20_US
22401 BEGIN
22402     BEGIN
22403         BIT #1,&$3C0
22404     0<> UNTIL
22405     BIC #1,&$3C0
22406     SUB #1,R14
22407 U< UNTIL
22408 MOV @R15+,R14
22409 MOV @R13+,R0
22410 ENDCODE
22411
22412 CODE TOP_LCD
22413     BIS.B #4,&$243
22414     BIT.B #1,&$241
22415 0= IF
22416     AND.B #$0F,R14
22417     MOV.B R14,&$222
22418     BIC.B #4,&$243
22419     MOV @R15+,R14
22420     MOV @R13+,R0
22421 THEN
22422     SUB #2,R15
22423     MOV R14,0(R15)
22424     BIC.B #4,&$243
22425     MOV.B &$220,R14
22426     AND.B #$0F,R14
22427     MOV @R13+,R0
22428 ENDCODE
22429
22430 CODE LCD_WRC
22431     BIS.B #2,&$243
22432 BW1 SUB #2,R15
22433     MOV R14,0(R15)
22434     RRUM #4,R14
22435     BIC.B #1,&$243
22436     BIS.B #$0F,&$224
22437 COLON
22438     TOP_LCD 2 20_US
22439     TOP_LCD 2 20_US 
22440 ;
22441
22442 CODE LCD_WRF
22443     BIC.B #2,&$243
22444     GOTO BW1
22445 ENDCODE
22446
22447 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
22448 : LCD_HOME $02 LCD_WRF 100 20_us ;
22449
22450
22451
22452 ASM WDT_INT
22453 ADD #2,R1
22454 BIT.B #$20,&$240
22455 0= IF
22456     CMP #19,&$3D6
22457     U< IF
22458         ADD #1,&$3D6
22459     THEN
22460 ELSE
22461     BIT.B #$40,&$240
22462     0= IF
22463         CMP #3,&$3D6
22464         U>= IF
22465            SUB #1,&$3D6
22466         THEN
22467     THEN
22468 THEN
22469 BW1
22470 MOV @R1+,R0
22471 ENDASM
22472
22473 ASM RC5_INT
22474 ADD #2,R1
22475 $1806 @ 16000 = [IF]
22476     MOV #1,&$3A0
22477 [THEN]
22478 $1806 @ 24000 = [IF]
22479     MOV #2,&$3A0
22480 [THEN]
22481 MOV #1778,R9
22482 MOV #14,R10
22483 BEGIN
22484 MOV #%1011100100,&$380
22485     RRUM    #1,R9
22486     MOV     R9,R8
22487     RRUM    #1,R8
22488     ADD     R9,R8
22489     BEGIN   CMP R8,&$390
22490     U>= UNTIL
22491     BIT.B   #4,&$200
22492     ADDC    R11,R11
22493     MOV.B   &$200,&$208
22494     BIC.B   #4,&$20C
22495     SUB     #1,R10
22496 0<> WHILE
22497     ADD R9,R8
22498     BEGIN
22499         MOV &$390,R9
22500         CMP R8,R9
22501         U>= IF
22502         BIC #$30,&$380
22503         GOTO BW1
22504         THEN
22505         BIT.B #4,&$20C
22506     0<> UNTIL
22507 REPEAT
22508 BIC #$30,&$380
22509 RLAM    #1,R11
22510 MOV.B   R11,R9
22511 RRUM    #2,R9
22512 BIT     #$4000,R11
22513 0= IF   BIS #$40,R9
22514 THEN
22515 RRUM    #3,R11
22516 XOR     @R1,R11
22517 BIT     #$400,R11
22518 0= ?GOTO BW1
22519 XOR #$400,0(R1)
22520 SUB #8,R15
22521 MOV R14,6(R15)
22522 MOV &$1DDC,4(R15)
22523 MOV #$10,&$1DDC
22524 MOV R9,0(R15)
22525 MOV #0,R14
22526 LO2HI
22527     LCD_CLEAR
22528     <# # #S #36 HOLD #>
22529     ['] LCD_WRC IS EMIT
22530     TYPE
22531     ['] EMIT >BODY IS EMIT
22532 HI2LO
22533 MOV @R15+,&$1DDC
22534 MOV @R15+,R14
22535 MOV @R1+,R0
22536 ENDASM
22537
22538 ASM BACKGROUND
22539 BEGIN
22540     CALL &$1814
22541     BIS &$180A,R2
22542 AGAIN
22543 ENDASM
22544
22545 ASM SYS_OUT
22546     MOV #WARM,R9
22547     ADD #4,R9
22548     MOV R9,R0
22549 ENDASM
22550
22551 CODE STOP
22552 BW1 MOV #$4000,R9
22553     ADD #4,R9
22554     MOV R9,-2(R9)
22555     MOV #WARM,R9
22556     MOV #SYS_OUT,2(R9)
22557     BIC.B #4,&$20A
22558     BIC.B #4,&$20C
22559     MOV #0,&$3C0
22560     MOV #0,&$340
22561     MOV #0,&$342
22562     CALL #$400E
22563 COLON
22564 ECHO
22565 ." RC5toLCD is removed,"
22566 ."  type START to restart"
22567  WARM
22568 ;
22569
22570 CODE SYS_INIT
22571 MOV #%10_1101_0100,&$3C0
22572 $1806 @ 16000 = [IF]
22573     MOV #1,&$3E0
22574 [THEN]
22575 $1806 @ 24000 = [IF]
22576     MOV #2,&$3E0
22577 [THEN]
22578     MOV #19,&$3D2
22579 MOV #%0110_0000,&$3C6
22580     MOV #10,&$3D6
22581     BIS.B #$20,&$204
22582     BIS.B #$20,&$20A
22583     BIS.B #7,&$245
22584     BIC.B #7,&$247
22585     BIS.B #$0F,&$224
22586     BIC.B #$0F,&$226
22587     BIS.B #4,&$20A
22588     BIC.B #4,&$20C
22589     MOV #RC5_INT,&$FFDE
22590 MOV #%01_0001_0100,&$340
22591     MOV ##3276,&$352
22592     MOV #%10000,&$342
22593     MOV #WDT_INT,&$FFEA
22594 BIC #1,&$130
22595 BIS.B #3,&$20D
22596 MOV &$1808,R8
22597 CMP #4,R8
22598 0= ?GOTO BW1
22599 COLON
22600     #1000 20_US
22601     %011 TOP_LCD
22602     #205 20_US
22603     %011 TOP_LCD
22604     #5 20_US
22605     %011 TOP_LCD
22606     #2 20_US
22607     %010 TOP_LCD
22608     #2 20_US
22609     %00101000 LCD_WRF
22610     %1000 LCD_WRF
22611     LCD_CLEAR
22612     %0110 LCD_WRF
22613     %1100 LCD_WRF
22614     LCD_CLEAR
22615     ['] LCD_HOME IS CR
22616     ['] LCD_WRC  IS EMIT
22617     CR ." I love you"
22618     ['] CR >BODY IS CR
22619     ['] EMIT >BODY IS EMIT
22620     ." RC5toLCD is running. Type STOP to quit"
22621     PWR_STATE ABORT
22622 ;
22623
22624 CODE START
22625 MOV #$4000,R9
22626 MOV #BACKGROUND,2(R9)
22627 MOV #WARM,R9
22628 MOV #SYS_INIT,2(R9)
22629 MOV R9,R0
22630 ENDCODE 
22631
22632 ECHO
22633             ; downloading RC5toLCD.4th is done
22634 RST_HERE    ; this app is protected against <reset>
22635
22636
22637 RST_STATE
22638
22639 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
22640
22641 [UNDEFINED] MARKER [IF]
22642 : MARKER
22643 CREATE
22644 HI2LO
22645 MOV &$1DC8,0(R10)
22646 SUB #2,R8
22647 MOV R8,2(R10)
22648 ADD #4,&$1DC6
22649 LO2HI
22650 DOES>
22651 HI2LO
22652 MOV @R1+,R13
22653 MOV @R14+,&$180E
22654 MOV @R14,&$180C
22655 MOV @R15+,R14
22656 MOV #RST_STATE,R0
22657 ENDCODE
22658 [THEN]
22659
22660 MARKER {RC5TOLCD}
22661
22662 [UNDEFINED] @ [IF]
22663 CODE @
22664 MOV @R14,R14
22665 MOV @R13+,R0
22666 ENDCODE
22667 [THEN]
22668
22669 [UNDEFINED] CONSTANT [IF]
22670 : CONSTANT 
22671 CREATE
22672 HI2LO
22673 MOV R14,-2(R10)
22674 MOV @R15+,R14
22675 MOV @R1+,R13
22676 MOV @R13+,R0
22677 ENDCODE
22678 [THEN]
22679
22680 [UNDEFINED] STATE [IF]
22681 $1DBE CONSTANT STATE
22682 [THEN]
22683
22684 [UNDEFINED] = [IF]
22685 CODE =
22686 SUB @R15+,R14
22687 0<> IF
22688     AND #0,R14
22689     MOV @R13+,R0
22690 THEN
22691 XOR #-1,R14
22692 MOV @R13+,R0
22693 ENDCODE
22694 [THEN]
22695
22696 [UNDEFINED] IF [IF]
22697 CODE IF
22698 SUB #2,R15
22699 MOV R14,0(R15)
22700 MOV &$1DC6,R14
22701 ADD #4,&$1DC6
22702 MOV #$404C,0(R14)
22703 ADD #2,R14
22704 MOV @R13+,R0
22705 ENDCODE IMMEDIATE
22706 [THEN]
22707
22708 [UNDEFINED] THEN [IF]
22709 CODE THEN
22710 MOV &$1DC6,0(R14)
22711 MOV @R15+,R14
22712 MOV @R13+,R0
22713 ENDCODE IMMEDIATE
22714 [THEN]
22715
22716 [UNDEFINED] ELSE [IF]
22717 CODE ELSE
22718 ADD #4,&$1DC6
22719 MOV &$1DC6,R10
22720 MOV #$4048,-4(R10)
22721 MOV R10,0(R14)
22722 SUB #2,R10
22723 MOV R10,R14
22724 MOV @R13+,R0
22725 ENDCODE IMMEDIATE
22726 [THEN]
22727
22728 [UNDEFINED] DEFER [IF]
22729
22730 : DEFER
22731 CREATE
22732 HI2LO
22733 MOV #$4030,-4(R10)
22734 MOV #$402C,-2(R10)
22735 MOV @R1+,R13
22736 MOV @R13+,R0
22737 ENDCODE
22738 [THEN]
22739
22740 [UNDEFINED] DEFER! [IF]
22741 CODE DEFER!
22742 MOV @R15+,2(R14)
22743 MOV @R15+,R14
22744 MOV @R13+,R0
22745 ENDCODE
22746 [THEN]
22747
22748 [UNDEFINED] IS [IF]
22749 : IS
22750 STATE @
22751 IF  POSTPONE ['] POSTPONE DEFER! 
22752 ELSE ' DEFER! 
22753 THEN
22754 ; IMMEDIATE
22755 [THEN]
22756
22757 [UNDEFINED] >BODY [IF]
22758 CODE >BODY
22759 ADD #4,R14
22760 MOV @R13+,R0
22761 ENDCODE
22762 [THEN]
22763
22764
22765 CODE 20_US
22766 BEGIN
22767     BEGIN
22768         BIT #1,&$3C0
22769     0<> UNTIL
22770     BIC #1,&$3C0
22771     SUB #1,R14
22772 U< UNTIL
22773 MOV @R15+,R14
22774 MOV @R13+,R0
22775 ENDCODE
22776
22777 CODE TOP_LCD
22778     BIS.B #4,&$243
22779     BIT.B #1,&$241
22780 0= IF
22781     AND.B #$0F,R14
22782     MOV.B R14,&$222
22783     BIC.B #4,&$243
22784     MOV @R15+,R14
22785     MOV @R13+,R0
22786 THEN
22787     SUB #2,R15
22788     MOV R14,0(R15)
22789     BIC.B #4,&$243
22790     MOV.B &$220,R14
22791     AND.B #$0F,R14
22792     MOV @R13+,R0
22793 ENDCODE
22794
22795 CODE LCD_WRC
22796     BIS.B #2,&$243
22797 BW1 SUB #2,R15
22798     MOV R14,0(R15)
22799     RRUM #4,R14
22800     BIC.B #1,&$243
22801     BIS.B #$0F,&$224
22802 COLON
22803     TOP_LCD 2 20_US
22804     TOP_LCD 2 20_US 
22805 ;
22806
22807 CODE LCD_WRF
22808     BIC.B #2,&$243
22809     GOTO BW1
22810 ENDCODE
22811
22812 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
22813 : LCD_HOME $02 LCD_WRF 100 20_us ;
22814
22815
22816
22817 ASM WDT_INT
22818 ADD #2,R1
22819 BIT.B #$20,&$240
22820 0= IF
22821     CMP #19,&$3D6
22822     U< IF
22823         ADD #1,&$3D6
22824     THEN
22825 ELSE
22826     BIT.B #$40,&$240
22827     0= IF
22828         CMP #3,&$3D6
22829         U>= IF
22830            SUB #1,&$3D6
22831         THEN
22832     THEN
22833 THEN
22834 BW1
22835 MOV @R1+,R0
22836 ENDASM
22837
22838 ASM RC5_INT
22839 ADD #2,R1
22840 $1806 @ 16000 = [IF]
22841     MOV #1,&$3A0
22842 [THEN]
22843 $1806 @ 24000 = [IF]
22844     MOV #2,&$3A0
22845 [THEN]
22846 MOV #1778,R9
22847 MOV #14,R10
22848 BEGIN
22849 MOV #%1011100100,&$380
22850     RRUM    #1,R9
22851     MOV     R9,R8
22852     RRUM    #1,R8
22853     ADD     R9,R8
22854     BEGIN   CMP R8,&$390
22855     U>= UNTIL
22856     BIT.B   #4,&$200
22857     ADDC    R11,R11
22858     MOV.B   &$200,&$208
22859     BIC.B   #4,&$20C
22860     SUB     #1,R10
22861 0<> WHILE
22862     ADD R9,R8
22863     BEGIN
22864         MOV &$390,R9
22865         CMP R8,R9
22866         U>= IF
22867         BIC #$30,&$380
22868         GOTO BW1
22869         THEN
22870         BIT.B #4,&$20C
22871     0<> UNTIL
22872 REPEAT
22873 BIC #$30,&$380
22874 RLAM    #1,R11
22875 MOV.B   R11,R9
22876 RRUM    #2,R9
22877 BIT     #$4000,R11
22878 0= IF   BIS #$40,R9
22879 THEN
22880 RRUM    #3,R11
22881 XOR     @R1,R11
22882 BIT     #$400,R11
22883 0= ?GOTO BW1
22884 XOR #$400,0(R1)
22885 SUB #8,R15
22886 MOV R14,6(R15)
22887 MOV &$1DDC,4(R15)
22888 MOV #$10,&$1DDC
22889 MOV R9,0(R15)
22890 MOV #0,R14
22891 LO2HI
22892     LCD_CLEAR
22893     <# # #S #36 HOLD #>
22894     ['] LCD_WRC IS EMIT
22895     TYPE
22896     ['] EMIT >BODY IS EMIT
22897 HI2LO
22898 MOV @R15+,&$1DDC
22899 MOV @R15+,R14
22900 MOV @R1+,R0
22901 ENDASM
22902
22903 ASM BACKGROUND
22904 BEGIN
22905     CALL &$1814
22906     BIS &$180A,R2
22907 AGAIN
22908 ENDASM
22909
22910 ASM SYS_OUT
22911     MOV #WARM,R9
22912     ADD #4,R9
22913     MOV R9,R0
22914 ENDASM
22915
22916 CODE STOP
22917 BW1 MOV #$4000,R9
22918     ADD #4,R9
22919     MOV R9,-2(R9)
22920     MOV #WARM,R9
22921     MOV #SYS_OUT,2(R9)
22922     BIC.B #4,&$20A
22923     BIC.B #4,&$20C
22924     MOV #0,&$3C0
22925     MOV #0,&$340
22926     MOV #0,&$342
22927     CALL #$400E
22928 COLON
22929 ECHO
22930 ." RC5toLCD is removed,"
22931 ."  type START to restart"
22932  WARM
22933 ;
22934
22935 CODE SYS_INIT
22936 MOV #%10_1101_0100,&$3C0
22937 $1806 @ 16000 = [IF]
22938     MOV #1,&$3E0
22939 [THEN]
22940 $1806 @ 24000 = [IF]
22941     MOV #2,&$3E0
22942 [THEN]
22943     MOV #19,&$3D2
22944 MOV #%0110_0000,&$3C6
22945     MOV #10,&$3D6
22946     BIS.B #$20,&$204
22947     BIS.B #$20,&$20A
22948     BIS.B #7,&$245
22949     BIC.B #7,&$247
22950     BIS.B #$0F,&$224
22951     BIC.B #$0F,&$226
22952     BIS.B #4,&$20A
22953     BIC.B #4,&$20C
22954     MOV #RC5_INT,&$FFDE
22955 MOV #%01_0001_0100,&$340
22956     MOV ##3276,&$352
22957     MOV #%10000,&$342
22958     MOV #WDT_INT,&$FFEA
22959 BIC #1,&$130
22960 BIS.B #3,&$20D
22961 MOV &$1808,R8
22962 CMP #4,R8
22963 0= ?GOTO BW1
22964 COLON
22965     #1000 20_US
22966     %011 TOP_LCD
22967     #205 20_US
22968     %011 TOP_LCD
22969     #5 20_US
22970     %011 TOP_LCD
22971     #2 20_US
22972     %010 TOP_LCD
22973     #2 20_US
22974     %00101000 LCD_WRF
22975     %1000 LCD_WRF
22976     LCD_CLEAR
22977     %0110 LCD_WRF
22978     %1100 LCD_WRF
22979     LCD_CLEAR
22980     ['] LCD_HOME IS CR
22981     ['] LCD_WRC  IS EMIT
22982     CR ." I love you"
22983     ['] CR >BODY IS CR
22984     ['] EMIT >BODY IS EMIT
22985     ." RC5toLCD is running. Type STOP to quit"
22986     PWR_STATE ABORT
22987 ;
22988
22989 CODE START
22990 MOV #$4000,R9
22991 MOV #BACKGROUND,2(R9)
22992 MOV #WARM,R9
22993 MOV #SYS_INIT,2(R9)
22994 MOV R9,R0
22995 ENDCODE 
22996
22997 ECHO
22998             ; downloading RC5toLCD.4th is done
22999 RST_HERE    ; this app is protected against <reset>
23000
23001
23002 RST_STATE
23003
23004 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
23005
23006 [UNDEFINED] MARKER [IF]
23007 : MARKER
23008 CREATE
23009 HI2LO
23010 MOV &$1DC8,0(R10)
23011 SUB #2,R8
23012 MOV R8,2(R10)
23013 ADD #4,&$1DC6
23014 LO2HI
23015 DOES>
23016 HI2LO
23017 MOV @R1+,R13
23018 MOV @R14+,&$180E
23019 MOV @R14,&$180C
23020 MOV @R15+,R14
23021 MOV #RST_STATE,R0
23022 ENDCODE
23023 [THEN]
23024
23025 MARKER {RC5TOLCD}
23026
23027 [UNDEFINED] @ [IF]
23028 CODE @
23029 MOV @R14,R14
23030 MOV @R13+,R0
23031 ENDCODE
23032 [THEN]
23033
23034 [UNDEFINED] CONSTANT [IF]
23035 : CONSTANT 
23036 CREATE
23037 HI2LO
23038 MOV R14,-2(R10)
23039 MOV @R15+,R14
23040 MOV @R1+,R13
23041 MOV @R13+,R0
23042 ENDCODE
23043 [THEN]
23044
23045 [UNDEFINED] STATE [IF]
23046 $1DBE CONSTANT STATE
23047 [THEN]
23048
23049 [UNDEFINED] = [IF]
23050 CODE =
23051 SUB @R15+,R14
23052 0<> IF
23053     AND #0,R14
23054     MOV @R13+,R0
23055 THEN
23056 XOR #-1,R14
23057 MOV @R13+,R0
23058 ENDCODE
23059 [THEN]
23060
23061 [UNDEFINED] IF [IF]
23062 CODE IF
23063 SUB #2,R15
23064 MOV R14,0(R15)
23065 MOV &$1DC6,R14
23066 ADD #4,&$1DC6
23067 MOV #$404C,0(R14)
23068 ADD #2,R14
23069 MOV @R13+,R0
23070 ENDCODE IMMEDIATE
23071 [THEN]
23072
23073 [UNDEFINED] THEN [IF]
23074 CODE THEN
23075 MOV &$1DC6,0(R14)
23076 MOV @R15+,R14
23077 MOV @R13+,R0
23078 ENDCODE IMMEDIATE
23079 [THEN]
23080
23081 [UNDEFINED] ELSE [IF]
23082 CODE ELSE
23083 ADD #4,&$1DC6
23084 MOV &$1DC6,R10
23085 MOV #$4048,-4(R10)
23086 MOV R10,0(R14)
23087 SUB #2,R10
23088 MOV R10,R14
23089 MOV @R13+,R0
23090 ENDCODE IMMEDIATE
23091 [THEN]
23092
23093 [UNDEFINED] DEFER [IF]
23094
23095 : DEFER
23096 CREATE
23097 HI2LO
23098 MOV #$4030,-4(R10)
23099 MOV #$402C,-2(R10)
23100 MOV @R1+,R13
23101 MOV @R13+,R0
23102 ENDCODE
23103 [THEN]
23104
23105 [UNDEFINED] DEFER! [IF]
23106 CODE DEFER!
23107 MOV @R15+,2(R14)
23108 MOV @R15+,R14
23109 MOV @R13+,R0
23110 ENDCODE
23111 [THEN]
23112
23113 [UNDEFINED] IS [IF]
23114 : IS
23115 STATE @
23116 IF  POSTPONE ['] POSTPONE DEFER! 
23117 ELSE ' DEFER! 
23118 THEN
23119 ; IMMEDIATE
23120 [THEN]
23121
23122 [UNDEFINED] >BODY [IF]
23123 CODE >BODY
23124 ADD #4,R14
23125 MOV @R13+,R0
23126 ENDCODE
23127 [THEN]
23128
23129
23130 CODE 20_US
23131 BEGIN
23132     BEGIN
23133         BIT #1,&$3C0
23134     0<> UNTIL
23135     BIC #1,&$3C0
23136     SUB #1,R14
23137 U< UNTIL
23138 MOV @R15+,R14
23139 MOV @R13+,R0
23140 ENDCODE
23141
23142 CODE TOP_LCD
23143     BIS.B #4,&$243
23144     BIT.B #1,&$241
23145 0= IF
23146     AND.B #$0F,R14
23147     MOV.B R14,&$222
23148     BIC.B #4,&$243
23149     MOV @R15+,R14
23150     MOV @R13+,R0
23151 THEN
23152     SUB #2,R15
23153     MOV R14,0(R15)
23154     BIC.B #4,&$243
23155     MOV.B &$220,R14
23156     AND.B #$0F,R14
23157     MOV @R13+,R0
23158 ENDCODE
23159
23160 CODE LCD_WRC
23161     BIS.B #2,&$243
23162 BW1 SUB #2,R15
23163     MOV R14,0(R15)
23164     RRUM #4,R14
23165     BIC.B #1,&$243
23166     BIS.B #$0F,&$224
23167 COLON
23168     TOP_LCD 2 20_US
23169     TOP_LCD 2 20_US 
23170 ;
23171
23172 CODE LCD_WRF
23173     BIC.B #2,&$243
23174     GOTO BW1
23175 ENDCODE
23176
23177 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
23178 : LCD_HOME $02 LCD_WRF 100 20_us ;
23179
23180
23181
23182 ASM WDT_INT
23183 ADD #2,R1
23184 BIT.B #$20,&$240
23185 0= IF
23186     CMP #19,&$3D6
23187     U< IF
23188         ADD #1,&$3D6
23189     THEN
23190 ELSE
23191     BIT.B #$40,&$240
23192     0= IF
23193         CMP #3,&$3D6
23194         U>= IF
23195            SUB #1,&$3D6
23196         THEN
23197     THEN
23198 THEN
23199 BW1
23200 MOV @R1+,R0
23201 ENDASM
23202
23203 ASM RC5_INT
23204 ADD #2,R1
23205 $1806 @ 16000 = [IF]
23206     MOV #1,&$3A0
23207 [THEN]
23208 $1806 @ 24000 = [IF]
23209     MOV #2,&$3A0
23210 [THEN]
23211 MOV #1778,R9
23212 MOV #14,R10
23213 BEGIN
23214 MOV #%1011100100,&$380
23215     RRUM    #1,R9
23216     MOV     R9,R8
23217     RRUM    #1,R8
23218     ADD     R9,R8
23219     BEGIN   CMP R8,&$390
23220     U>= UNTIL
23221     BIT.B   #4,&$200
23222     ADDC    R11,R11
23223     MOV.B   &$200,&$208
23224     BIC.B   #4,&$20C
23225     SUB     #1,R10
23226 0<> WHILE
23227     ADD R9,R8
23228     BEGIN
23229         MOV &$390,R9
23230         CMP R8,R9
23231         U>= IF
23232         BIC #$30,&$380
23233         GOTO BW1
23234         THEN
23235         BIT.B #4,&$20C
23236     0<> UNTIL
23237 REPEAT
23238 BIC #$30,&$380
23239 RLAM    #1,R11
23240 MOV.B   R11,R9
23241 RRUM    #2,R9
23242 BIT     #$4000,R11
23243 0= IF   BIS #$40,R9
23244 THEN
23245 RRUM    #3,R11
23246 XOR     @R1,R11
23247 BIT     #$400,R11
23248 0= ?GOTO BW1
23249 XOR #$400,0(R1)
23250 SUB #8,R15
23251 MOV R14,6(R15)
23252 MOV &$1DDC,4(R15)
23253 MOV #$10,&$1DDC
23254 MOV R9,0(R15)
23255 MOV #0,R14
23256 LO2HI
23257     LCD_CLEAR
23258     <# # #S #36 HOLD #>
23259     ['] LCD_WRC IS EMIT
23260     TYPE
23261     ['] EMIT >BODY IS EMIT
23262 HI2LO
23263 MOV @R15+,&$1DDC
23264 MOV @R15+,R14
23265 MOV @R1+,R0
23266 ENDASM
23267
23268 ASM BACKGROUND
23269 BEGIN
23270     CALL &$1814
23271     BIS &$180A,R2
23272 AGAIN
23273 ENDASM
23274
23275 ASM SYS_OUT
23276     MOV #WARM,R9
23277     ADD #4,R9
23278     MOV R9,R0
23279 ENDASM
23280
23281 CODE STOP
23282 BW1 MOV #$4000,R9
23283     ADD #4,R9
23284     MOV R9,-2(R9)
23285     MOV #WARM,R9
23286     MOV #SYS_OUT,2(R9)
23287     BIC.B #4,&$20A
23288     BIC.B #4,&$20C
23289     MOV #0,&$3C0
23290     MOV #0,&$340
23291     MOV #0,&$342
23292     CALL #$400E
23293 COLON
23294 ECHO
23295 ." RC5toLCD is removed,"
23296 ."  type START to restart"
23297  WARM
23298 ;
23299
23300 CODE SYS_INIT
23301 MOV #%10_1101_0100,&$3C0
23302 $1806 @ 16000 = [IF]
23303     MOV #1,&$3E0
23304 [THEN]
23305 $1806 @ 24000 = [IF]
23306     MOV #2,&$3E0
23307 [THEN]
23308     MOV #19,&$3D2
23309 MOV #%0110_0000,&$3C6
23310     MOV #10,&$3D6
23311     BIS.B #$20,&$204
23312     BIS.B #$20,&$20A
23313     BIS.B #7,&$245
23314     BIC.B #7,&$247
23315     BIS.B #$0F,&$224
23316     BIC.B #$0F,&$226
23317     BIS.B #4,&$20A
23318     BIC.B #4,&$20C
23319     MOV #RC5_INT,&$FFDE
23320 MOV #%01_0001_0100,&$340
23321     MOV ##3276,&$352
23322     MOV #%10000,&$342
23323     MOV #WDT_INT,&$FFEA
23324 BIC #1,&$130
23325 BIS.B #3,&$20D
23326 MOV &$1808,R8
23327 CMP #4,R8
23328 0= ?GOTO BW1
23329 COLON
23330     #1000 20_US
23331     %011 TOP_LCD
23332     #205 20_US
23333     %011 TOP_LCD
23334     #5 20_US
23335     %011 TOP_LCD
23336     #2 20_US
23337     %010 TOP_LCD
23338     #2 20_US
23339     %00101000 LCD_WRF
23340     %1000 LCD_WRF
23341     LCD_CLEAR
23342     %0110 LCD_WRF
23343     %1100 LCD_WRF
23344     LCD_CLEAR
23345     ['] LCD_HOME IS CR
23346     ['] LCD_WRC  IS EMIT
23347     CR ." I love you"
23348     ['] CR >BODY IS CR
23349     ['] EMIT >BODY IS EMIT
23350     ." RC5toLCD is running. Type STOP to quit"
23351     PWR_STATE ABORT
23352 ;
23353
23354 CODE START
23355 MOV #$4000,R9
23356 MOV #BACKGROUND,2(R9)
23357 MOV #WARM,R9
23358 MOV #SYS_INIT,2(R9)
23359 MOV R9,R0
23360 ENDCODE 
23361
23362 ECHO
23363             ; downloading RC5toLCD.4th is done
23364 RST_HERE    ; this app is protected against <reset>
23365
23366
23367 RST_STATE
23368
23369 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
23370
23371 [UNDEFINED] MARKER [IF]
23372 : MARKER
23373 CREATE
23374 HI2LO
23375 MOV &$1DC8,0(R10)
23376 SUB #2,R8
23377 MOV R8,2(R10)
23378 ADD #4,&$1DC6
23379 LO2HI
23380 DOES>
23381 HI2LO
23382 MOV @R1+,R13
23383 MOV @R14+,&$180E
23384 MOV @R14,&$180C
23385 MOV @R15+,R14
23386 MOV #RST_STATE,R0
23387 ENDCODE
23388 [THEN]
23389
23390 MARKER {RC5TOLCD}
23391
23392 [UNDEFINED] @ [IF]
23393 CODE @
23394 MOV @R14,R14
23395 MOV @R13+,R0
23396 ENDCODE
23397 [THEN]
23398
23399 [UNDEFINED] CONSTANT [IF]
23400 : CONSTANT 
23401 CREATE
23402 HI2LO
23403 MOV R14,-2(R10)
23404 MOV @R15+,R14
23405 MOV @R1+,R13
23406 MOV @R13+,R0
23407 ENDCODE
23408 [THEN]
23409
23410 [UNDEFINED] STATE [IF]
23411 $1DBE CONSTANT STATE
23412 [THEN]
23413
23414 [UNDEFINED] = [IF]
23415 CODE =
23416 SUB @R15+,R14
23417 0<> IF
23418     AND #0,R14
23419     MOV @R13+,R0
23420 THEN
23421 XOR #-1,R14
23422 MOV @R13+,R0
23423 ENDCODE
23424 [THEN]
23425
23426 [UNDEFINED] IF [IF]
23427 CODE IF
23428 SUB #2,R15
23429 MOV R14,0(R15)
23430 MOV &$1DC6,R14
23431 ADD #4,&$1DC6
23432 MOV #$404C,0(R14)
23433 ADD #2,R14
23434 MOV @R13+,R0
23435 ENDCODE IMMEDIATE
23436 [THEN]
23437
23438 [UNDEFINED] THEN [IF]
23439 CODE THEN
23440 MOV &$1DC6,0(R14)
23441 MOV @R15+,R14
23442 MOV @R13+,R0
23443 ENDCODE IMMEDIATE
23444 [THEN]
23445
23446 [UNDEFINED] ELSE [IF]
23447 CODE ELSE
23448 ADD #4,&$1DC6
23449 MOV &$1DC6,R10
23450 MOV #$4048,-4(R10)
23451 MOV R10,0(R14)
23452 SUB #2,R10
23453 MOV R10,R14
23454 MOV @R13+,R0
23455 ENDCODE IMMEDIATE
23456 [THEN]
23457
23458 [UNDEFINED] DEFER [IF]
23459
23460 : DEFER
23461 CREATE
23462 HI2LO
23463 MOV #$4030,-4(R10)
23464 MOV #$402C,-2(R10)
23465 MOV @R1+,R13
23466 MOV @R13+,R0
23467 ENDCODE
23468 [THEN]
23469
23470 [UNDEFINED] DEFER! [IF]
23471 CODE DEFER!
23472 MOV @R15+,2(R14)
23473 MOV @R15+,R14
23474 MOV @R13+,R0
23475 ENDCODE
23476 [THEN]
23477
23478 [UNDEFINED] IS [IF]
23479 : IS
23480 STATE @
23481 IF  POSTPONE ['] POSTPONE DEFER! 
23482 ELSE ' DEFER! 
23483 THEN
23484 ; IMMEDIATE
23485 [THEN]
23486
23487 [UNDEFINED] >BODY [IF]
23488 CODE >BODY
23489 ADD #4,R14
23490 MOV @R13+,R0
23491 ENDCODE
23492 [THEN]
23493
23494
23495 CODE 20_US
23496 BEGIN
23497     BEGIN
23498         BIT #1,&$3C0
23499     0<> UNTIL
23500     BIC #1,&$3C0
23501     SUB #1,R14
23502 U< UNTIL
23503 MOV @R15+,R14
23504 MOV @R13+,R0
23505 ENDCODE
23506
23507 CODE TOP_LCD
23508     BIS.B #4,&$243
23509     BIT.B #1,&$241
23510 0= IF
23511     AND.B #$0F,R14
23512     MOV.B R14,&$222
23513     BIC.B #4,&$243
23514     MOV @R15+,R14
23515     MOV @R13+,R0
23516 THEN
23517     SUB #2,R15
23518     MOV R14,0(R15)
23519     BIC.B #4,&$243
23520     MOV.B &$220,R14
23521     AND.B #$0F,R14
23522     MOV @R13+,R0
23523 ENDCODE
23524
23525 CODE LCD_WRC
23526     BIS.B #2,&$243
23527 BW1 SUB #2,R15
23528     MOV R14,0(R15)
23529     RRUM #4,R14
23530     BIC.B #1,&$243
23531     BIS.B #$0F,&$224
23532 COLON
23533     TOP_LCD 2 20_US
23534     TOP_LCD 2 20_US 
23535 ;
23536
23537 CODE LCD_WRF
23538     BIC.B #2,&$243
23539     GOTO BW1
23540 ENDCODE
23541
23542 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
23543 : LCD_HOME $02 LCD_WRF 100 20_us ;
23544
23545
23546
23547 ASM WDT_INT
23548 ADD #2,R1
23549 BIT.B #$20,&$240
23550 0= IF
23551     CMP #19,&$3D6
23552     U< IF
23553         ADD #1,&$3D6
23554     THEN
23555 ELSE
23556     BIT.B #$40,&$240
23557     0= IF
23558         CMP #3,&$3D6
23559         U>= IF
23560            SUB #1,&$3D6
23561         THEN
23562     THEN
23563 THEN
23564 BW1
23565 MOV @R1+,R0
23566 ENDASM
23567
23568 ASM RC5_INT
23569 ADD #2,R1
23570 $1806 @ 16000 = [IF]
23571     MOV #1,&$3A0
23572 [THEN]
23573 $1806 @ 24000 = [IF]
23574     MOV #2,&$3A0
23575 [THEN]
23576 MOV #1778,R9
23577 MOV #14,R10
23578 BEGIN
23579 MOV #%1011100100,&$380
23580     RRUM    #1,R9
23581     MOV     R9,R8
23582     RRUM    #1,R8
23583     ADD     R9,R8
23584     BEGIN   CMP R8,&$390
23585     U>= UNTIL
23586     BIT.B   #4,&$200
23587     ADDC    R11,R11
23588     MOV.B   &$200,&$208
23589     BIC.B   #4,&$20C
23590     SUB     #1,R10
23591 0<> WHILE
23592     ADD R9,R8
23593     BEGIN
23594         MOV &$390,R9
23595         CMP R8,R9
23596         U>= IF
23597         BIC #$30,&$380
23598         GOTO BW1
23599         THEN
23600         BIT.B #4,&$20C
23601     0<> UNTIL
23602 REPEAT
23603 BIC #$30,&$380
23604 RLAM    #1,R11
23605 MOV.B   R11,R9
23606 RRUM    #2,R9
23607 BIT     #$4000,R11
23608 0= IF   BIS #$40,R9
23609 THEN
23610 RRUM    #3,R11
23611 XOR     @R1,R11
23612 BIT     #$400,R11
23613 0= ?GOTO BW1
23614 XOR #$400,0(R1)
23615 SUB #8,R15
23616 MOV R14,6(R15)
23617 MOV &$1DDC,4(R15)
23618 MOV #$10,&$1DDC
23619 MOV R9,0(R15)
23620 MOV #0,R14
23621 LO2HI
23622     LCD_CLEAR
23623     <# # #S #36 HOLD #>
23624     ['] LCD_WRC IS EMIT
23625     TYPE
23626     ['] EMIT >BODY IS EMIT
23627 HI2LO
23628 MOV @R15+,&$1DDC
23629 MOV @R15+,R14
23630 MOV @R1+,R0
23631 ENDASM
23632
23633 ASM BACKGROUND
23634 BEGIN
23635     CALL &$1814
23636     BIS &$180A,R2
23637 AGAIN
23638 ENDASM
23639
23640 ASM SYS_OUT
23641     MOV #WARM,R9
23642     ADD #4,R9
23643     MOV R9,R0
23644 ENDASM
23645
23646 CODE STOP
23647 BW1 MOV #$4000,R9
23648     ADD #4,R9
23649     MOV R9,-2(R9)
23650     MOV #WARM,R9
23651     MOV #SYS_OUT,2(R9)
23652     BIC.B #4,&$20A
23653     BIC.B #4,&$20C
23654     MOV #0,&$3C0
23655     MOV #0,&$340
23656     MOV #0,&$342
23657     CALL #$400E
23658 COLON
23659 ECHO
23660 ." RC5toLCD is removed,"
23661 ."  type START to restart"
23662  WARM
23663 ;
23664
23665 CODE SYS_INIT
23666 MOV #%10_1101_0100,&$3C0
23667 $1806 @ 16000 = [IF]
23668     MOV #1,&$3E0
23669 [THEN]
23670 $1806 @ 24000 = [IF]
23671     MOV #2,&$3E0
23672 [THEN]
23673     MOV #19,&$3D2
23674 MOV #%0110_0000,&$3C6
23675     MOV #10,&$3D6
23676     BIS.B #$20,&$204
23677     BIS.B #$20,&$20A
23678     BIS.B #7,&$245
23679     BIC.B #7,&$247
23680     BIS.B #$0F,&$224
23681     BIC.B #$0F,&$226
23682     BIS.B #4,&$20A
23683     BIC.B #4,&$20C
23684     MOV #RC5_INT,&$FFDE
23685 MOV #%01_0001_0100,&$340
23686     MOV ##3276,&$352
23687     MOV #%10000,&$342
23688     MOV #WDT_INT,&$FFEA
23689 BIC #1,&$130
23690 BIS.B #3,&$20D
23691 MOV &$1808,R8
23692 CMP #4,R8
23693 0= ?GOTO BW1
23694 COLON
23695     #1000 20_US
23696     %011 TOP_LCD
23697     #205 20_US
23698     %011 TOP_LCD
23699     #5 20_US
23700     %011 TOP_LCD
23701     #2 20_US
23702     %010 TOP_LCD
23703     #2 20_US
23704     %00101000 LCD_WRF
23705     %1000 LCD_WRF
23706     LCD_CLEAR
23707     %0110 LCD_WRF
23708     %1100 LCD_WRF
23709     LCD_CLEAR
23710     ['] LCD_HOME IS CR
23711     ['] LCD_WRC  IS EMIT
23712     CR ." I love you"
23713     ['] CR >BODY IS CR
23714     ['] EMIT >BODY IS EMIT
23715     ." RC5toLCD is running. Type STOP to quit"
23716     PWR_STATE ABORT
23717 ;
23718
23719 CODE START
23720 MOV #$4000,R9
23721 MOV #BACKGROUND,2(R9)
23722 MOV #WARM,R9
23723 MOV #SYS_INIT,2(R9)
23724 MOV R9,R0
23725 ENDCODE 
23726
23727 ECHO
23728             ; downloading RC5toLCD.4th is done
23729 RST_HERE    ; this app is protected against <reset>
23730
23731
23732 RST_STATE
23733
23734 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
23735
23736 [UNDEFINED] MARKER [IF]
23737 : MARKER
23738 CREATE
23739 HI2LO
23740 MOV &$1DC8,0(R10)
23741 SUB #2,R8
23742 MOV R8,2(R10)
23743 ADD #4,&$1DC6
23744 LO2HI
23745 DOES>
23746 HI2LO
23747 MOV @R1+,R13
23748 MOV @R14+,&$180E
23749 MOV @R14,&$180C
23750 MOV @R15+,R14
23751 MOV #RST_STATE,R0
23752 ENDCODE
23753 [THEN]
23754
23755 MARKER {RC5TOLCD}
23756
23757 [UNDEFINED] @ [IF]
23758 CODE @
23759 MOV @R14,R14
23760 MOV @R13+,R0
23761 ENDCODE
23762 [THEN]
23763
23764 [UNDEFINED] CONSTANT [IF]
23765 : CONSTANT 
23766 CREATE
23767 HI2LO
23768 MOV R14,-2(R10)
23769 MOV @R15+,R14
23770 MOV @R1+,R13
23771 MOV @R13+,R0
23772 ENDCODE
23773 [THEN]
23774
23775 [UNDEFINED] STATE [IF]
23776 $1DBE CONSTANT STATE
23777 [THEN]
23778
23779 [UNDEFINED] = [IF]
23780 CODE =
23781 SUB @R15+,R14
23782 0<> IF
23783     AND #0,R14
23784     MOV @R13+,R0
23785 THEN
23786 XOR #-1,R14
23787 MOV @R13+,R0
23788 ENDCODE
23789 [THEN]
23790
23791 [UNDEFINED] IF [IF]
23792 CODE IF
23793 SUB #2,R15
23794 MOV R14,0(R15)
23795 MOV &$1DC6,R14
23796 ADD #4,&$1DC6
23797 MOV #$404C,0(R14)
23798 ADD #2,R14
23799 MOV @R13+,R0
23800 ENDCODE IMMEDIATE
23801 [THEN]
23802
23803 [UNDEFINED] THEN [IF]
23804 CODE THEN
23805 MOV &$1DC6,0(R14)
23806 MOV @R15+,R14
23807 MOV @R13+,R0
23808 ENDCODE IMMEDIATE
23809 [THEN]
23810
23811 [UNDEFINED] ELSE [IF]
23812 CODE ELSE
23813 ADD #4,&$1DC6
23814 MOV &$1DC6,R10
23815 MOV #$4048,-4(R10)
23816 MOV R10,0(R14)
23817 SUB #2,R10
23818 MOV R10,R14
23819 MOV @R13+,R0
23820 ENDCODE IMMEDIATE
23821 [THEN]
23822
23823 [UNDEFINED] DEFER [IF]
23824
23825 : DEFER
23826 CREATE
23827 HI2LO
23828 MOV #$4030,-4(R10)
23829 MOV #$402C,-2(R10)
23830 MOV @R1+,R13
23831 MOV @R13+,R0
23832 ENDCODE
23833 [THEN]
23834
23835 [UNDEFINED] DEFER! [IF]
23836 CODE DEFER!
23837 MOV @R15+,2(R14)
23838 MOV @R15+,R14
23839 MOV @R13+,R0
23840 ENDCODE
23841 [THEN]
23842
23843 [UNDEFINED] IS [IF]
23844 : IS
23845 STATE @
23846 IF  POSTPONE ['] POSTPONE DEFER! 
23847 ELSE ' DEFER! 
23848 THEN
23849 ; IMMEDIATE
23850 [THEN]
23851
23852 [UNDEFINED] >BODY [IF]
23853 CODE >BODY
23854 ADD #4,R14
23855 MOV @R13+,R0
23856 ENDCODE
23857 [THEN]
23858
23859
23860 CODE 20_US
23861 BEGIN
23862     BEGIN
23863         BIT #1,&$3C0
23864     0<> UNTIL
23865     BIC #1,&$3C0
23866     SUB #1,R14
23867 U< UNTIL
23868 MOV @R15+,R14
23869 MOV @R13+,R0
23870 ENDCODE
23871
23872 CODE TOP_LCD
23873     BIS.B #4,&$243
23874     BIT.B #1,&$241
23875 0= IF
23876     AND.B #$0F,R14
23877     MOV.B R14,&$222
23878     BIC.B #4,&$243
23879     MOV @R15+,R14
23880     MOV @R13+,R0
23881 THEN
23882     SUB #2,R15
23883     MOV R14,0(R15)
23884     BIC.B #4,&$243
23885     MOV.B &$220,R14
23886     AND.B #$0F,R14
23887     MOV @R13+,R0
23888 ENDCODE
23889
23890 CODE LCD_WRC
23891     BIS.B #2,&$243
23892 BW1 SUB #2,R15
23893     MOV R14,0(R15)
23894     RRUM #4,R14
23895     BIC.B #1,&$243
23896     BIS.B #$0F,&$224
23897 COLON
23898     TOP_LCD 2 20_US
23899     TOP_LCD 2 20_US 
23900 ;
23901
23902 CODE LCD_WRF
23903     BIC.B #2,&$243
23904     GOTO BW1
23905 ENDCODE
23906
23907 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
23908 : LCD_HOME $02 LCD_WRF 100 20_us ;
23909
23910
23911
23912 ASM WDT_INT
23913 ADD #2,R1
23914 BIT.B #$20,&$240
23915 0= IF
23916     CMP #19,&$3D6
23917     U< IF
23918         ADD #1,&$3D6
23919     THEN
23920 ELSE
23921     BIT.B #$40,&$240
23922     0= IF
23923         CMP #3,&$3D6
23924         U>= IF
23925            SUB #1,&$3D6
23926         THEN
23927     THEN
23928 THEN
23929 BW1
23930 MOV @R1+,R0
23931 ENDASM
23932
23933 ASM RC5_INT
23934 ADD #2,R1
23935 $1806 @ 16000 = [IF]
23936     MOV #1,&$3A0
23937 [THEN]
23938 $1806 @ 24000 = [IF]
23939     MOV #2,&$3A0
23940 [THEN]
23941 MOV #1778,R9
23942 MOV #14,R10
23943 BEGIN
23944 MOV #%1011100100,&$380
23945     RRUM    #1,R9
23946     MOV     R9,R8
23947     RRUM    #1,R8
23948     ADD     R9,R8
23949     BEGIN   CMP R8,&$390
23950     U>= UNTIL
23951     BIT.B   #4,&$200
23952     ADDC    R11,R11
23953     MOV.B   &$200,&$208
23954     BIC.B   #4,&$20C
23955     SUB     #1,R10
23956 0<> WHILE
23957     ADD R9,R8
23958     BEGIN
23959         MOV &$390,R9
23960         CMP R8,R9
23961         U>= IF
23962         BIC #$30,&$380
23963         GOTO BW1
23964         THEN
23965         BIT.B #4,&$20C
23966     0<> UNTIL
23967 REPEAT
23968 BIC #$30,&$380
23969 RLAM    #1,R11
23970 MOV.B   R11,R9
23971 RRUM    #2,R9
23972 BIT     #$4000,R11
23973 0= IF   BIS #$40,R9
23974 THEN
23975 RRUM    #3,R11
23976 XOR     @R1,R11
23977 BIT     #$400,R11
23978 0= ?GOTO BW1
23979 XOR #$400,0(R1)
23980 SUB #8,R15
23981 MOV R14,6(R15)
23982 MOV &$1DDC,4(R15)
23983 MOV #$10,&$1DDC
23984 MOV R9,0(R15)
23985 MOV #0,R14
23986 LO2HI
23987     LCD_CLEAR
23988     <# # #S #36 HOLD #>
23989     ['] LCD_WRC IS EMIT
23990     TYPE
23991     ['] EMIT >BODY IS EMIT
23992 HI2LO
23993 MOV @R15+,&$1DDC
23994 MOV @R15+,R14
23995 MOV @R1+,R0
23996 ENDASM
23997
23998 ASM BACKGROUND
23999 BEGIN
24000     CALL &$1814
24001     BIS &$180A,R2
24002 AGAIN
24003 ENDASM
24004
24005 ASM SYS_OUT
24006     MOV #WARM,R9
24007     ADD #4,R9
24008     MOV R9,R0
24009 ENDASM
24010
24011 CODE STOP
24012 BW1 MOV #$4000,R9
24013     ADD #4,R9
24014     MOV R9,-2(R9)
24015     MOV #WARM,R9
24016     MOV #SYS_OUT,2(R9)
24017     BIC.B #4,&$20A
24018     BIC.B #4,&$20C
24019     MOV #0,&$3C0
24020     MOV #0,&$340
24021     MOV #0,&$342
24022     CALL #$400E
24023 COLON
24024 ECHO
24025 ." RC5toLCD is removed,"
24026 ."  type START to restart"
24027  WARM
24028 ;
24029
24030 CODE SYS_INIT
24031 MOV #%10_1101_0100,&$3C0
24032 $1806 @ 16000 = [IF]
24033     MOV #1,&$3E0
24034 [THEN]
24035 $1806 @ 24000 = [IF]
24036     MOV #2,&$3E0
24037 [THEN]
24038     MOV #19,&$3D2
24039 MOV #%0110_0000,&$3C6
24040     MOV #10,&$3D6
24041     BIS.B #$20,&$204
24042     BIS.B #$20,&$20A
24043     BIS.B #7,&$245
24044     BIC.B #7,&$247
24045     BIS.B #$0F,&$224
24046     BIC.B #$0F,&$226
24047     BIS.B #4,&$20A
24048     BIC.B #4,&$20C
24049     MOV #RC5_INT,&$FFDE
24050 MOV #%01_0001_0100,&$340
24051     MOV ##3276,&$352
24052     MOV #%10000,&$342
24053     MOV #WDT_INT,&$FFEA
24054 BIC #1,&$130
24055 BIS.B #3,&$20D
24056 MOV &$1808,R8
24057 CMP #4,R8
24058 0= ?GOTO BW1
24059 COLON
24060     #1000 20_US
24061     %011 TOP_LCD
24062     #205 20_US
24063     %011 TOP_LCD
24064     #5 20_US
24065     %011 TOP_LCD
24066     #2 20_US
24067     %010 TOP_LCD
24068     #2 20_US
24069     %00101000 LCD_WRF
24070     %1000 LCD_WRF
24071     LCD_CLEAR
24072     %0110 LCD_WRF
24073     %1100 LCD_WRF
24074     LCD_CLEAR
24075     ['] LCD_HOME IS CR
24076     ['] LCD_WRC  IS EMIT
24077     CR ." I love you"
24078     ['] CR >BODY IS CR
24079     ['] EMIT >BODY IS EMIT
24080     ." RC5toLCD is running. Type STOP to quit"
24081     PWR_STATE ABORT
24082 ;
24083
24084 CODE START
24085 MOV #$4000,R9
24086 MOV #BACKGROUND,2(R9)
24087 MOV #WARM,R9
24088 MOV #SYS_INIT,2(R9)
24089 MOV R9,R0
24090 ENDCODE 
24091
24092 ECHO
24093             ; downloading RC5toLCD.4th is done
24094 RST_HERE    ; this app is protected against <reset>
24095
24096
24097 RST_STATE
24098
24099 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
24100
24101 [UNDEFINED] MARKER [IF]
24102 : MARKER
24103 CREATE
24104 HI2LO
24105 MOV &$1DC8,0(R10)
24106 SUB #2,R8
24107 MOV R8,2(R10)
24108 ADD #4,&$1DC6
24109 LO2HI
24110 DOES>
24111 HI2LO
24112 MOV @R1+,R13
24113 MOV @R14+,&$180E
24114 MOV @R14,&$180C
24115 MOV @R15+,R14
24116 MOV #RST_STATE,R0
24117 ENDCODE
24118 [THEN]
24119
24120 MARKER {RC5TOLCD}
24121
24122 [UNDEFINED] @ [IF]
24123 CODE @
24124 MOV @R14,R14
24125 MOV @R13+,R0
24126 ENDCODE
24127 [THEN]
24128
24129 [UNDEFINED] CONSTANT [IF]
24130 : CONSTANT 
24131 CREATE
24132 HI2LO
24133 MOV R14,-2(R10)
24134 MOV @R15+,R14
24135 MOV @R1+,R13
24136 MOV @R13+,R0
24137 ENDCODE
24138 [THEN]
24139
24140 [UNDEFINED] STATE [IF]
24141 $1DBE CONSTANT STATE
24142 [THEN]
24143
24144 [UNDEFINED] = [IF]
24145 CODE =
24146 SUB @R15+,R14
24147 0<> IF
24148     AND #0,R14
24149     MOV @R13+,R0
24150 THEN
24151 XOR #-1,R14
24152 MOV @R13+,R0
24153 ENDCODE
24154 [THEN]
24155
24156 [UNDEFINED] IF [IF]
24157 CODE IF
24158 SUB #2,R15
24159 MOV R14,0(R15)
24160 MOV &$1DC6,R14
24161 ADD #4,&$1DC6
24162 MOV #$404C,0(R14)
24163 ADD #2,R14
24164 MOV @R13+,R0
24165 ENDCODE IMMEDIATE
24166 [THEN]
24167
24168 [UNDEFINED] THEN [IF]
24169 CODE THEN
24170 MOV &$1DC6,0(R14)
24171 MOV @R15+,R14
24172 MOV @R13+,R0
24173 ENDCODE IMMEDIATE
24174 [THEN]
24175
24176 [UNDEFINED] ELSE [IF]
24177 CODE ELSE
24178 ADD #4,&$1DC6
24179 MOV &$1DC6,R10
24180 MOV #$4048,-4(R10)
24181 MOV R10,0(R14)
24182 SUB #2,R10
24183 MOV R10,R14
24184 MOV @R13+,R0
24185 ENDCODE IMMEDIATE
24186 [THEN]
24187
24188 [UNDEFINED] DEFER [IF]
24189
24190 : DEFER
24191 CREATE
24192 HI2LO
24193 MOV #$4030,-4(R10)
24194 MOV #$402C,-2(R10)
24195 MOV @R1+,R13
24196 MOV @R13+,R0
24197 ENDCODE
24198 [THEN]
24199
24200 [UNDEFINED] DEFER! [IF]
24201 CODE DEFER!
24202 MOV @R15+,2(R14)
24203 MOV @R15+,R14
24204 MOV @R13+,R0
24205 ENDCODE
24206 [THEN]
24207
24208 [UNDEFINED] IS [IF]
24209 : IS
24210 STATE @
24211 IF  POSTPONE ['] POSTPONE DEFER! 
24212 ELSE ' DEFER! 
24213 THEN
24214 ; IMMEDIATE
24215 [THEN]
24216
24217 [UNDEFINED] >BODY [IF]
24218 CODE >BODY
24219 ADD #4,R14
24220 MOV @R13+,R0
24221 ENDCODE
24222 [THEN]
24223
24224
24225 CODE 20_US
24226 BEGIN
24227     BEGIN
24228         BIT #1,&$3C0
24229     0<> UNTIL
24230     BIC #1,&$3C0
24231     SUB #1,R14
24232 U< UNTIL
24233 MOV @R15+,R14
24234 MOV @R13+,R0
24235 ENDCODE
24236
24237 CODE TOP_LCD
24238     BIS.B #4,&$243
24239     BIT.B #1,&$241
24240 0= IF
24241     AND.B #$0F,R14
24242     MOV.B R14,&$222
24243     BIC.B #4,&$243
24244     MOV @R15+,R14
24245     MOV @R13+,R0
24246 THEN
24247     SUB #2,R15
24248     MOV R14,0(R15)
24249     BIC.B #4,&$243
24250     MOV.B &$220,R14
24251     AND.B #$0F,R14
24252     MOV @R13+,R0
24253 ENDCODE
24254
24255 CODE LCD_WRC
24256     BIS.B #2,&$243
24257 BW1 SUB #2,R15
24258     MOV R14,0(R15)
24259     RRUM #4,R14
24260     BIC.B #1,&$243
24261     BIS.B #$0F,&$224
24262 COLON
24263     TOP_LCD 2 20_US
24264     TOP_LCD 2 20_US 
24265 ;
24266
24267 CODE LCD_WRF
24268     BIC.B #2,&$243
24269     GOTO BW1
24270 ENDCODE
24271
24272 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
24273 : LCD_HOME $02 LCD_WRF 100 20_us ;
24274
24275
24276
24277 ASM WDT_INT
24278 ADD #2,R1
24279 BIT.B #$20,&$240
24280 0= IF
24281     CMP #19,&$3D6
24282     U< IF
24283         ADD #1,&$3D6
24284     THEN
24285 ELSE
24286     BIT.B #$40,&$240
24287     0= IF
24288         CMP #3,&$3D6
24289         U>= IF
24290            SUB #1,&$3D6
24291         THEN
24292     THEN
24293 THEN
24294 BW1
24295 MOV @R1+,R0
24296 ENDASM
24297
24298 ASM RC5_INT
24299 ADD #2,R1
24300 $1806 @ 16000 = [IF]
24301     MOV #1,&$3A0
24302 [THEN]
24303 $1806 @ 24000 = [IF]
24304     MOV #2,&$3A0
24305 [THEN]
24306 MOV #1778,R9
24307 MOV #14,R10
24308 BEGIN
24309 MOV #%1011100100,&$380
24310     RRUM    #1,R9
24311     MOV     R9,R8
24312     RRUM    #1,R8
24313     ADD     R9,R8
24314     BEGIN   CMP R8,&$390
24315     U>= UNTIL
24316     BIT.B   #4,&$200
24317     ADDC    R11,R11
24318     MOV.B   &$200,&$208
24319     BIC.B   #4,&$20C
24320     SUB     #1,R10
24321 0<> WHILE
24322     ADD R9,R8
24323     BEGIN
24324         MOV &$390,R9
24325         CMP R8,R9
24326         U>= IF
24327         BIC #$30,&$380
24328         GOTO BW1
24329         THEN
24330         BIT.B #4,&$20C
24331     0<> UNTIL
24332 REPEAT
24333 BIC #$30,&$380
24334 RLAM    #1,R11
24335 MOV.B   R11,R9
24336 RRUM    #2,R9
24337 BIT     #$4000,R11
24338 0= IF   BIS #$40,R9
24339 THEN
24340 RRUM    #3,R11
24341 XOR     @R1,R11
24342 BIT     #$400,R11
24343 0= ?GOTO BW1
24344 XOR #$400,0(R1)
24345 SUB #8,R15
24346 MOV R14,6(R15)
24347 MOV &$1DDC,4(R15)
24348 MOV #$10,&$1DDC
24349 MOV R9,0(R15)
24350 MOV #0,R14
24351 LO2HI
24352     LCD_CLEAR
24353     <# # #S #36 HOLD #>
24354     ['] LCD_WRC IS EMIT
24355     TYPE
24356     ['] EMIT >BODY IS EMIT
24357 HI2LO
24358 MOV @R15+,&$1DDC
24359 MOV @R15+,R14
24360 MOV @R1+,R0
24361 ENDASM
24362
24363 ASM BACKGROUND
24364 BEGIN
24365     CALL &$1814
24366     BIS &$180A,R2
24367 AGAIN
24368 ENDASM
24369
24370 ASM SYS_OUT
24371     MOV #WARM,R9
24372     ADD #4,R9
24373     MOV R9,R0
24374 ENDASM
24375
24376 CODE STOP
24377 BW1 MOV #$4000,R9
24378     ADD #4,R9
24379     MOV R9,-2(R9)
24380     MOV #WARM,R9
24381     MOV #SYS_OUT,2(R9)
24382     BIC.B #4,&$20A
24383     BIC.B #4,&$20C
24384     MOV #0,&$3C0
24385     MOV #0,&$340
24386     MOV #0,&$342
24387     CALL #$400E
24388 COLON
24389 ECHO
24390 ." RC5toLCD is removed,"
24391 ."  type START to restart"
24392  WARM
24393 ;
24394
24395 CODE SYS_INIT
24396 MOV #%10_1101_0100,&$3C0
24397 $1806 @ 16000 = [IF]
24398     MOV #1,&$3E0
24399 [THEN]
24400 $1806 @ 24000 = [IF]
24401     MOV #2,&$3E0
24402 [THEN]
24403     MOV #19,&$3D2
24404 MOV #%0110_0000,&$3C6
24405     MOV #10,&$3D6
24406     BIS.B #$20,&$204
24407     BIS.B #$20,&$20A
24408     BIS.B #7,&$245
24409     BIC.B #7,&$247
24410     BIS.B #$0F,&$224
24411     BIC.B #$0F,&$226
24412     BIS.B #4,&$20A
24413     BIC.B #4,&$20C
24414     MOV #RC5_INT,&$FFDE
24415 MOV #%01_0001_0100,&$340
24416     MOV ##3276,&$352
24417     MOV #%10000,&$342
24418     MOV #WDT_INT,&$FFEA
24419 BIC #1,&$130
24420 BIS.B #3,&$20D
24421 MOV &$1808,R8
24422 CMP #4,R8
24423 0= ?GOTO BW1
24424 COLON
24425     #1000 20_US
24426     %011 TOP_LCD
24427     #205 20_US
24428     %011 TOP_LCD
24429     #5 20_US
24430     %011 TOP_LCD
24431     #2 20_US
24432     %010 TOP_LCD
24433     #2 20_US
24434     %00101000 LCD_WRF
24435     %1000 LCD_WRF
24436     LCD_CLEAR
24437     %0110 LCD_WRF
24438     %1100 LCD_WRF
24439     LCD_CLEAR
24440     ['] LCD_HOME IS CR
24441     ['] LCD_WRC  IS EMIT
24442     CR ." I love you"
24443     ['] CR >BODY IS CR
24444     ['] EMIT >BODY IS EMIT
24445     ." RC5toLCD is running. Type STOP to quit"
24446     PWR_STATE ABORT
24447 ;
24448
24449 CODE START
24450 MOV #$4000,R9
24451 MOV #BACKGROUND,2(R9)
24452 MOV #WARM,R9
24453 MOV #SYS_INIT,2(R9)
24454 MOV R9,R0
24455 ENDCODE 
24456
24457 ECHO
24458             ; downloading RC5toLCD.4th is done
24459 RST_HERE    ; this app is protected against <reset>
24460
24461
24462 RST_STATE
24463
24464 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
24465
24466 [UNDEFINED] MARKER [IF]
24467 : MARKER
24468 CREATE
24469 HI2LO
24470 MOV &$1DC8,0(R10)
24471 SUB #2,R8
24472 MOV R8,2(R10)
24473 ADD #4,&$1DC6
24474 LO2HI
24475 DOES>
24476 HI2LO
24477 MOV @R1+,R13
24478 MOV @R14+,&$180E
24479 MOV @R14,&$180C
24480 MOV @R15+,R14
24481 MOV #RST_STATE,R0
24482 ENDCODE
24483 [THEN]
24484
24485 MARKER {RC5TOLCD}
24486
24487 [UNDEFINED] @ [IF]
24488 CODE @
24489 MOV @R14,R14
24490 MOV @R13+,R0
24491 ENDCODE
24492 [THEN]
24493
24494 [UNDEFINED] CONSTANT [IF]
24495 : CONSTANT 
24496 CREATE
24497 HI2LO
24498 MOV R14,-2(R10)
24499 MOV @R15+,R14
24500 MOV @R1+,R13
24501 MOV @R13+,R0
24502 ENDCODE
24503 [THEN]
24504
24505 [UNDEFINED] STATE [IF]
24506 $1DBE CONSTANT STATE
24507 [THEN]
24508
24509 [UNDEFINED] = [IF]
24510 CODE =
24511 SUB @R15+,R14
24512 0<> IF
24513     AND #0,R14
24514     MOV @R13+,R0
24515 THEN
24516 XOR #-1,R14
24517 MOV @R13+,R0
24518 ENDCODE
24519 [THEN]
24520
24521 [UNDEFINED] IF [IF]
24522 CODE IF
24523 SUB #2,R15
24524 MOV R14,0(R15)
24525 MOV &$1DC6,R14
24526 ADD #4,&$1DC6
24527 MOV #$404C,0(R14)
24528 ADD #2,R14
24529 MOV @R13+,R0
24530 ENDCODE IMMEDIATE
24531 [THEN]
24532
24533 [UNDEFINED] THEN [IF]
24534 CODE THEN
24535 MOV &$1DC6,0(R14)
24536 MOV @R15+,R14
24537 MOV @R13+,R0
24538 ENDCODE IMMEDIATE
24539 [THEN]
24540
24541 [UNDEFINED] ELSE [IF]
24542 CODE ELSE
24543 ADD #4,&$1DC6
24544 MOV &$1DC6,R10
24545 MOV #$4048,-4(R10)
24546 MOV R10,0(R14)
24547 SUB #2,R10
24548 MOV R10,R14
24549 MOV @R13+,R0
24550 ENDCODE IMMEDIATE
24551 [THEN]
24552
24553 [UNDEFINED] DEFER [IF]
24554
24555 : DEFER
24556 CREATE
24557 HI2LO
24558 MOV #$4030,-4(R10)
24559 MOV #$402C,-2(R10)
24560 MOV @R1+,R13
24561 MOV @R13+,R0
24562 ENDCODE
24563 [THEN]
24564
24565 [UNDEFINED] DEFER! [IF]
24566 CODE DEFER!
24567 MOV @R15+,2(R14)
24568 MOV @R15+,R14
24569 MOV @R13+,R0
24570 ENDCODE
24571 [THEN]
24572
24573 [UNDEFINED] IS [IF]
24574 : IS
24575 STATE @
24576 IF  POSTPONE ['] POSTPONE DEFER! 
24577 ELSE ' DEFER! 
24578 THEN
24579 ; IMMEDIATE
24580 [THEN]
24581
24582 [UNDEFINED] >BODY [IF]
24583 CODE >BODY
24584 ADD #4,R14
24585 MOV @R13+,R0
24586 ENDCODE
24587 [THEN]
24588
24589
24590 CODE 20_US
24591 BEGIN
24592     BEGIN
24593         BIT #1,&$3C0
24594     0<> UNTIL
24595     BIC #1,&$3C0
24596     SUB #1,R14
24597 U< UNTIL
24598 MOV @R15+,R14
24599 MOV @R13+,R0
24600 ENDCODE
24601
24602 CODE TOP_LCD
24603     BIS.B #4,&$243
24604     BIT.B #1,&$241
24605 0= IF
24606     AND.B #$0F,R14
24607     MOV.B R14,&$222
24608     BIC.B #4,&$243
24609     MOV @R15+,R14
24610     MOV @R13+,R0
24611 THEN
24612     SUB #2,R15
24613     MOV R14,0(R15)
24614     BIC.B #4,&$243
24615     MOV.B &$220,R14
24616     AND.B #$0F,R14
24617     MOV @R13+,R0
24618 ENDCODE
24619
24620 CODE LCD_WRC
24621     BIS.B #2,&$243
24622 BW1 SUB #2,R15
24623     MOV R14,0(R15)
24624     RRUM #4,R14
24625     BIC.B #1,&$243
24626     BIS.B #$0F,&$224
24627 COLON
24628     TOP_LCD 2 20_US
24629     TOP_LCD 2 20_US 
24630 ;
24631
24632 CODE LCD_WRF
24633     BIC.B #2,&$243
24634     GOTO BW1
24635 ENDCODE
24636
24637 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
24638 : LCD_HOME $02 LCD_WRF 100 20_us ;
24639
24640
24641
24642 ASM WDT_INT
24643 ADD #2,R1
24644 BIT.B #$20,&$240
24645 0= IF
24646     CMP #19,&$3D6
24647     U< IF
24648         ADD #1,&$3D6
24649     THEN
24650 ELSE
24651     BIT.B #$40,&$240
24652     0= IF
24653         CMP #3,&$3D6
24654         U>= IF
24655            SUB #1,&$3D6
24656         THEN
24657     THEN
24658 THEN
24659 BW1
24660 MOV @R1+,R0
24661 ENDASM
24662
24663 ASM RC5_INT
24664 ADD #2,R1
24665 $1806 @ 16000 = [IF]
24666     MOV #1,&$3A0
24667 [THEN]
24668 $1806 @ 24000 = [IF]
24669     MOV #2,&$3A0
24670 [THEN]
24671 MOV #1778,R9
24672 MOV #14,R10
24673 BEGIN
24674 MOV #%1011100100,&$380
24675     RRUM    #1,R9
24676     MOV     R9,R8
24677     RRUM    #1,R8
24678     ADD     R9,R8
24679     BEGIN   CMP R8,&$390
24680     U>= UNTIL
24681     BIT.B   #4,&$200
24682     ADDC    R11,R11
24683     MOV.B   &$200,&$208
24684     BIC.B   #4,&$20C
24685     SUB     #1,R10
24686 0<> WHILE
24687     ADD R9,R8
24688     BEGIN
24689         MOV &$390,R9
24690         CMP R8,R9
24691         U>= IF
24692         BIC #$30,&$380
24693         GOTO BW1
24694         THEN
24695         BIT.B #4,&$20C
24696     0<> UNTIL
24697 REPEAT
24698 BIC #$30,&$380
24699 RLAM    #1,R11
24700 MOV.B   R11,R9
24701 RRUM    #2,R9
24702 BIT     #$4000,R11
24703 0= IF   BIS #$40,R9
24704 THEN
24705 RRUM    #3,R11
24706 XOR     @R1,R11
24707 BIT     #$400,R11
24708 0= ?GOTO BW1
24709 XOR #$400,0(R1)
24710 SUB #8,R15
24711 MOV R14,6(R15)
24712 MOV &$1DDC,4(R15)
24713 MOV #$10,&$1DDC
24714 MOV R9,0(R15)
24715 MOV #0,R14
24716 LO2HI
24717     LCD_CLEAR
24718     <# # #S #36 HOLD #>
24719     ['] LCD_WRC IS EMIT
24720     TYPE
24721     ['] EMIT >BODY IS EMIT
24722 HI2LO
24723 MOV @R15+,&$1DDC
24724 MOV @R15+,R14
24725 MOV @R1+,R0
24726 ENDASM
24727
24728 ASM BACKGROUND
24729 BEGIN
24730     CALL &$1814
24731     BIS &$180A,R2
24732 AGAIN
24733 ENDASM
24734
24735 ASM SYS_OUT
24736     MOV #WARM,R9
24737     ADD #4,R9
24738     MOV R9,R0
24739 ENDASM
24740
24741 CODE STOP
24742 BW1 MOV #$4000,R9
24743     ADD #4,R9
24744     MOV R9,-2(R9)
24745     MOV #WARM,R9
24746     MOV #SYS_OUT,2(R9)
24747     BIC.B #4,&$20A
24748     BIC.B #4,&$20C
24749     MOV #0,&$3C0
24750     MOV #0,&$340
24751     MOV #0,&$342
24752     CALL #$400E
24753 COLON
24754 ECHO
24755 ." RC5toLCD is removed,"
24756 ."  type START to restart"
24757  WARM
24758 ;
24759
24760 CODE SYS_INIT
24761 MOV #%10_1101_0100,&$3C0
24762 $1806 @ 16000 = [IF]
24763     MOV #1,&$3E0
24764 [THEN]
24765 $1806 @ 24000 = [IF]
24766     MOV #2,&$3E0
24767 [THEN]
24768     MOV #19,&$3D2
24769 MOV #%0110_0000,&$3C6
24770     MOV #10,&$3D6
24771     BIS.B #$20,&$204
24772     BIS.B #$20,&$20A
24773     BIS.B #7,&$245
24774     BIC.B #7,&$247
24775     BIS.B #$0F,&$224
24776     BIC.B #$0F,&$226
24777     BIS.B #4,&$20A
24778     BIC.B #4,&$20C
24779     MOV #RC5_INT,&$FFDE
24780 MOV #%01_0001_0100,&$340
24781     MOV ##3276,&$352
24782     MOV #%10000,&$342
24783     MOV #WDT_INT,&$FFEA
24784 BIC #1,&$130
24785 BIS.B #3,&$20D
24786 MOV &$1808,R8
24787 CMP #4,R8
24788 0= ?GOTO BW1
24789 COLON
24790     #1000 20_US
24791     %011 TOP_LCD
24792     #205 20_US
24793     %011 TOP_LCD
24794     #5 20_US
24795     %011 TOP_LCD
24796     #2 20_US
24797     %010 TOP_LCD
24798     #2 20_US
24799     %00101000 LCD_WRF
24800     %1000 LCD_WRF
24801     LCD_CLEAR
24802     %0110 LCD_WRF
24803     %1100 LCD_WRF
24804     LCD_CLEAR
24805     ['] LCD_HOME IS CR
24806     ['] LCD_WRC  IS EMIT
24807     CR ." I love you"
24808     ['] CR >BODY IS CR
24809     ['] EMIT >BODY IS EMIT
24810     ." RC5toLCD is running. Type STOP to quit"
24811     PWR_STATE ABORT
24812 ;
24813
24814 CODE START
24815 MOV #$4000,R9
24816 MOV #BACKGROUND,2(R9)
24817 MOV #WARM,R9
24818 MOV #SYS_INIT,2(R9)
24819 MOV R9,R0
24820 ENDCODE 
24821
24822 ECHO
24823             ; downloading RC5toLCD.4th is done
24824 RST_HERE    ; this app is protected against <reset>
24825
24826
24827 RST_STATE
24828
24829 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
24830
24831 [UNDEFINED] MARKER [IF]
24832 : MARKER
24833 CREATE
24834 HI2LO
24835 MOV &$1DC8,0(R10)
24836 SUB #2,R8
24837 MOV R8,2(R10)
24838 ADD #4,&$1DC6
24839 LO2HI
24840 DOES>
24841 HI2LO
24842 MOV @R1+,R13
24843 MOV @R14+,&$180E
24844 MOV @R14,&$180C
24845 MOV @R15+,R14
24846 MOV #RST_STATE,R0
24847 ENDCODE
24848 [THEN]
24849
24850 MARKER {RC5TOLCD}
24851
24852 [UNDEFINED] @ [IF]
24853 CODE @
24854 MOV @R14,R14
24855 MOV @R13+,R0
24856 ENDCODE
24857 [THEN]
24858
24859 [UNDEFINED] CONSTANT [IF]
24860 : CONSTANT 
24861 CREATE
24862 HI2LO
24863 MOV R14,-2(R10)
24864 MOV @R15+,R14
24865 MOV @R1+,R13
24866 MOV @R13+,R0
24867 ENDCODE
24868 [THEN]
24869
24870 [UNDEFINED] STATE [IF]
24871 $1DBE CONSTANT STATE
24872 [THEN]
24873
24874 [UNDEFINED] = [IF]
24875 CODE =
24876 SUB @R15+,R14
24877 0<> IF
24878     AND #0,R14
24879     MOV @R13+,R0
24880 THEN
24881 XOR #-1,R14
24882 MOV @R13+,R0
24883 ENDCODE
24884 [THEN]
24885
24886 [UNDEFINED] IF [IF]
24887 CODE IF
24888 SUB #2,R15
24889 MOV R14,0(R15)
24890 MOV &$1DC6,R14
24891 ADD #4,&$1DC6
24892 MOV #$404C,0(R14)
24893 ADD #2,R14
24894 MOV @R13+,R0
24895 ENDCODE IMMEDIATE
24896 [THEN]
24897
24898 [UNDEFINED] THEN [IF]
24899 CODE THEN
24900 MOV &$1DC6,0(R14)
24901 MOV @R15+,R14
24902 MOV @R13+,R0
24903 ENDCODE IMMEDIATE
24904 [THEN]
24905
24906 [UNDEFINED] ELSE [IF]
24907 CODE ELSE
24908 ADD #4,&$1DC6
24909 MOV &$1DC6,R10
24910 MOV #$4048,-4(R10)
24911 MOV R10,0(R14)
24912 SUB #2,R10
24913 MOV R10,R14
24914 MOV @R13+,R0
24915 ENDCODE IMMEDIATE
24916 [THEN]
24917
24918 [UNDEFINED] DEFER [IF]
24919
24920 : DEFER
24921 CREATE
24922 HI2LO
24923 MOV #$4030,-4(R10)
24924 MOV #$402C,-2(R10)
24925 MOV @R1+,R13
24926 MOV @R13+,R0
24927 ENDCODE
24928 [THEN]
24929
24930 [UNDEFINED] DEFER! [IF]
24931 CODE DEFER!
24932 MOV @R15+,2(R14)
24933 MOV @R15+,R14
24934 MOV @R13+,R0
24935 ENDCODE
24936 [THEN]
24937
24938 [UNDEFINED] IS [IF]
24939 : IS
24940 STATE @
24941 IF  POSTPONE ['] POSTPONE DEFER! 
24942 ELSE ' DEFER! 
24943 THEN
24944 ; IMMEDIATE
24945 [THEN]
24946
24947 [UNDEFINED] >BODY [IF]
24948 CODE >BODY
24949 ADD #4,R14
24950 MOV @R13+,R0
24951 ENDCODE
24952 [THEN]
24953
24954
24955 CODE 20_US
24956 BEGIN
24957     BEGIN
24958         BIT #1,&$3C0
24959     0<> UNTIL
24960     BIC #1,&$3C0
24961     SUB #1,R14
24962 U< UNTIL
24963 MOV @R15+,R14
24964 MOV @R13+,R0
24965 ENDCODE
24966
24967 CODE TOP_LCD
24968     BIS.B #4,&$243
24969     BIT.B #1,&$241
24970 0= IF
24971     AND.B #$0F,R14
24972     MOV.B R14,&$222
24973     BIC.B #4,&$243
24974     MOV @R15+,R14
24975     MOV @R13+,R0
24976 THEN
24977     SUB #2,R15
24978     MOV R14,0(R15)
24979     BIC.B #4,&$243
24980     MOV.B &$220,R14
24981     AND.B #$0F,R14
24982     MOV @R13+,R0
24983 ENDCODE
24984
24985 CODE LCD_WRC
24986     BIS.B #2,&$243
24987 BW1 SUB #2,R15
24988     MOV R14,0(R15)
24989     RRUM #4,R14
24990     BIC.B #1,&$243
24991     BIS.B #$0F,&$224
24992 COLON
24993     TOP_LCD 2 20_US
24994     TOP_LCD 2 20_US 
24995 ;
24996
24997 CODE LCD_WRF
24998     BIC.B #2,&$243
24999     GOTO BW1
25000 ENDCODE
25001
25002 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
25003 : LCD_HOME $02 LCD_WRF 100 20_us ;
25004
25005
25006
25007 ASM WDT_INT
25008 ADD #2,R1
25009 BIT.B #$20,&$240
25010 0= IF
25011     CMP #19,&$3D6
25012     U< IF
25013         ADD #1,&$3D6
25014     THEN
25015 ELSE
25016     BIT.B #$40,&$240
25017     0= IF
25018         CMP #3,&$3D6
25019         U>= IF
25020            SUB #1,&$3D6
25021         THEN
25022     THEN
25023 THEN
25024 BW1
25025 MOV @R1+,R0
25026 ENDASM
25027
25028 ASM RC5_INT
25029 ADD #2,R1
25030 $1806 @ 16000 = [IF]
25031     MOV #1,&$3A0
25032 [THEN]
25033 $1806 @ 24000 = [IF]
25034     MOV #2,&$3A0
25035 [THEN]
25036 MOV #1778,R9
25037 MOV #14,R10
25038 BEGIN
25039 MOV #%1011100100,&$380
25040     RRUM    #1,R9
25041     MOV     R9,R8
25042     RRUM    #1,R8
25043     ADD     R9,R8
25044     BEGIN   CMP R8,&$390
25045     U>= UNTIL
25046     BIT.B   #4,&$200
25047     ADDC    R11,R11
25048     MOV.B   &$200,&$208
25049     BIC.B   #4,&$20C
25050     SUB     #1,R10
25051 0<> WHILE
25052     ADD R9,R8
25053     BEGIN
25054         MOV &$390,R9
25055         CMP R8,R9
25056         U>= IF
25057         BIC #$30,&$380
25058         GOTO BW1
25059         THEN
25060         BIT.B #4,&$20C
25061     0<> UNTIL
25062 REPEAT
25063 BIC #$30,&$380
25064 RLAM    #1,R11
25065 MOV.B   R11,R9
25066 RRUM    #2,R9
25067 BIT     #$4000,R11
25068 0= IF   BIS #$40,R9
25069 THEN
25070 RRUM    #3,R11
25071 XOR     @R1,R11
25072 BIT     #$400,R11
25073 0= ?GOTO BW1
25074 XOR #$400,0(R1)
25075 SUB #8,R15
25076 MOV R14,6(R15)
25077 MOV &$1DDC,4(R15)
25078 MOV #$10,&$1DDC
25079 MOV R9,0(R15)
25080 MOV #0,R14
25081 LO2HI
25082     LCD_CLEAR
25083     <# # #S #36 HOLD #>
25084     ['] LCD_WRC IS EMIT
25085     TYPE
25086     ['] EMIT >BODY IS EMIT
25087 HI2LO
25088 MOV @R15+,&$1DDC
25089 MOV @R15+,R14
25090 MOV @R1+,R0
25091 ENDASM
25092
25093 ASM BACKGROUND
25094 BEGIN
25095     CALL &$1814
25096     BIS &$180A,R2
25097 AGAIN
25098 ENDASM
25099
25100 ASM SYS_OUT
25101     MOV #WARM,R9
25102     ADD #4,R9
25103     MOV R9,R0
25104 ENDASM
25105
25106 CODE STOP
25107 BW1 MOV #$4000,R9
25108     ADD #4,R9
25109     MOV R9,-2(R9)
25110     MOV #WARM,R9
25111     MOV #SYS_OUT,2(R9)
25112     BIC.B #4,&$20A
25113     BIC.B #4,&$20C
25114     MOV #0,&$3C0
25115     MOV #0,&$340
25116     MOV #0,&$342
25117     CALL #$400E
25118 COLON
25119 ECHO
25120 ." RC5toLCD is removed,"
25121 ."  type START to restart"
25122  WARM
25123 ;
25124
25125 CODE SYS_INIT
25126 MOV #%10_1101_0100,&$3C0
25127 $1806 @ 16000 = [IF]
25128     MOV #1,&$3E0
25129 [THEN]
25130 $1806 @ 24000 = [IF]
25131     MOV #2,&$3E0
25132 [THEN]
25133     MOV #19,&$3D2
25134 MOV #%0110_0000,&$3C6
25135     MOV #10,&$3D6
25136     BIS.B #$20,&$204
25137     BIS.B #$20,&$20A
25138     BIS.B #7,&$245
25139     BIC.B #7,&$247
25140     BIS.B #$0F,&$224
25141     BIC.B #$0F,&$226
25142     BIS.B #4,&$20A
25143     BIC.B #4,&$20C
25144     MOV #RC5_INT,&$FFDE
25145 MOV #%01_0001_0100,&$340
25146     MOV ##3276,&$352
25147     MOV #%10000,&$342
25148     MOV #WDT_INT,&$FFEA
25149 BIC #1,&$130
25150 BIS.B #3,&$20D
25151 MOV &$1808,R8
25152 CMP #4,R8
25153 0= ?GOTO BW1
25154 COLON
25155     #1000 20_US
25156     %011 TOP_LCD
25157     #205 20_US
25158     %011 TOP_LCD
25159     #5 20_US
25160     %011 TOP_LCD
25161     #2 20_US
25162     %010 TOP_LCD
25163     #2 20_US
25164     %00101000 LCD_WRF
25165     %1000 LCD_WRF
25166     LCD_CLEAR
25167     %0110 LCD_WRF
25168     %1100 LCD_WRF
25169     LCD_CLEAR
25170     ['] LCD_HOME IS CR
25171     ['] LCD_WRC  IS EMIT
25172     CR ." I love you"
25173     ['] CR >BODY IS CR
25174     ['] EMIT >BODY IS EMIT
25175     ." RC5toLCD is running. Type STOP to quit"
25176     PWR_STATE ABORT
25177 ;
25178
25179 CODE START
25180 MOV #$4000,R9
25181 MOV #BACKGROUND,2(R9)
25182 MOV #WARM,R9
25183 MOV #SYS_INIT,2(R9)
25184 MOV R9,R0
25185 ENDCODE 
25186
25187 ECHO
25188             ; downloading RC5toLCD.4th is done
25189 RST_HERE    ; this app is protected against <reset>
25190
25191
25192 RST_STATE
25193
25194 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
25195
25196 [UNDEFINED] MARKER [IF]
25197 : MARKER
25198 CREATE
25199 HI2LO
25200 MOV &$1DC8,0(R10)
25201 SUB #2,R8
25202 MOV R8,2(R10)
25203 ADD #4,&$1DC6
25204 LO2HI
25205 DOES>
25206 HI2LO
25207 MOV @R1+,R13
25208 MOV @R14+,&$180E
25209 MOV @R14,&$180C
25210 MOV @R15+,R14
25211 MOV #RST_STATE,R0
25212 ENDCODE
25213 [THEN]
25214
25215 MARKER {RC5TOLCD}
25216
25217 [UNDEFINED] @ [IF]
25218 CODE @
25219 MOV @R14,R14
25220 MOV @R13+,R0
25221 ENDCODE
25222 [THEN]
25223
25224 [UNDEFINED] CONSTANT [IF]
25225 : CONSTANT 
25226 CREATE
25227 HI2LO
25228 MOV R14,-2(R10)
25229 MOV @R15+,R14
25230 MOV @R1+,R13
25231 MOV @R13+,R0
25232 ENDCODE
25233 [THEN]
25234
25235 [UNDEFINED] STATE [IF]
25236 $1DBE CONSTANT STATE
25237 [THEN]
25238
25239 [UNDEFINED] = [IF]
25240 CODE =
25241 SUB @R15+,R14
25242 0<> IF
25243     AND #0,R14
25244     MOV @R13+,R0
25245 THEN
25246 XOR #-1,R14
25247 MOV @R13+,R0
25248 ENDCODE
25249 [THEN]
25250
25251 [UNDEFINED] IF [IF]
25252 CODE IF
25253 SUB #2,R15
25254 MOV R14,0(R15)
25255 MOV &$1DC6,R14
25256 ADD #4,&$1DC6
25257 MOV #$404C,0(R14)
25258 ADD #2,R14
25259 MOV @R13+,R0
25260 ENDCODE IMMEDIATE
25261 [THEN]
25262
25263 [UNDEFINED] THEN [IF]
25264 CODE THEN
25265 MOV &$1DC6,0(R14)
25266 MOV @R15+,R14
25267 MOV @R13+,R0
25268 ENDCODE IMMEDIATE
25269 [THEN]
25270
25271 [UNDEFINED] ELSE [IF]
25272 CODE ELSE
25273 ADD #4,&$1DC6
25274 MOV &$1DC6,R10
25275 MOV #$4048,-4(R10)
25276 MOV R10,0(R14)
25277 SUB #2,R10
25278 MOV R10,R14
25279 MOV @R13+,R0
25280 ENDCODE IMMEDIATE
25281 [THEN]
25282
25283 [UNDEFINED] DEFER [IF]
25284
25285 : DEFER
25286 CREATE
25287 HI2LO
25288 MOV #$4030,-4(R10)
25289 MOV #$402C,-2(R10)
25290 MOV @R1+,R13
25291 MOV @R13+,R0
25292 ENDCODE
25293 [THEN]
25294
25295 [UNDEFINED] DEFER! [IF]
25296 CODE DEFER!
25297 MOV @R15+,2(R14)
25298 MOV @R15+,R14
25299 MOV @R13+,R0
25300 ENDCODE
25301 [THEN]
25302
25303 [UNDEFINED] IS [IF]
25304 : IS
25305 STATE @
25306 IF  POSTPONE ['] POSTPONE DEFER! 
25307 ELSE ' DEFER! 
25308 THEN
25309 ; IMMEDIATE
25310 [THEN]
25311
25312 [UNDEFINED] >BODY [IF]
25313 CODE >BODY
25314 ADD #4,R14
25315 MOV @R13+,R0
25316 ENDCODE
25317 [THEN]
25318
25319
25320 CODE 20_US
25321 BEGIN
25322     BEGIN
25323         BIT #1,&$3C0
25324     0<> UNTIL
25325     BIC #1,&$3C0
25326     SUB #1,R14
25327 U< UNTIL
25328 MOV @R15+,R14
25329 MOV @R13+,R0
25330 ENDCODE
25331
25332 CODE TOP_LCD
25333     BIS.B #4,&$243
25334     BIT.B #1,&$241
25335 0= IF
25336     AND.B #$0F,R14
25337     MOV.B R14,&$222
25338     BIC.B #4,&$243
25339     MOV @R15+,R14
25340     MOV @R13+,R0
25341 THEN
25342     SUB #2,R15
25343     MOV R14,0(R15)
25344     BIC.B #4,&$243
25345     MOV.B &$220,R14
25346     AND.B #$0F,R14
25347     MOV @R13+,R0
25348 ENDCODE
25349
25350 CODE LCD_WRC
25351     BIS.B #2,&$243
25352 BW1 SUB #2,R15
25353     MOV R14,0(R15)
25354     RRUM #4,R14
25355     BIC.B #1,&$243
25356     BIS.B #$0F,&$224
25357 COLON
25358     TOP_LCD 2 20_US
25359     TOP_LCD 2 20_US 
25360 ;
25361
25362 CODE LCD_WRF
25363     BIC.B #2,&$243
25364     GOTO BW1
25365 ENDCODE
25366
25367 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
25368 : LCD_HOME $02 LCD_WRF 100 20_us ;
25369
25370
25371
25372 ASM WDT_INT
25373 ADD #2,R1
25374 BIT.B #$20,&$240
25375 0= IF
25376     CMP #19,&$3D6
25377     U< IF
25378         ADD #1,&$3D6
25379     THEN
25380 ELSE
25381     BIT.B #$40,&$240
25382     0= IF
25383         CMP #3,&$3D6
25384         U>= IF
25385            SUB #1,&$3D6
25386         THEN
25387     THEN
25388 THEN
25389 BW1
25390 MOV @R1+,R0
25391 ENDASM
25392
25393 ASM RC5_INT
25394 ADD #2,R1
25395 $1806 @ 16000 = [IF]
25396     MOV #1,&$3A0
25397 [THEN]
25398 $1806 @ 24000 = [IF]
25399     MOV #2,&$3A0
25400 [THEN]
25401 MOV #1778,R9
25402 MOV #14,R10
25403 BEGIN
25404 MOV #%1011100100,&$380
25405     RRUM    #1,R9
25406     MOV     R9,R8
25407     RRUM    #1,R8
25408     ADD     R9,R8
25409     BEGIN   CMP R8,&$390
25410     U>= UNTIL
25411     BIT.B   #4,&$200
25412     ADDC    R11,R11
25413     MOV.B   &$200,&$208
25414     BIC.B   #4,&$20C
25415     SUB     #1,R10
25416 0<> WHILE
25417     ADD R9,R8
25418     BEGIN
25419         MOV &$390,R9
25420         CMP R8,R9
25421         U>= IF
25422         BIC #$30,&$380
25423         GOTO BW1
25424         THEN
25425         BIT.B #4,&$20C
25426     0<> UNTIL
25427 REPEAT
25428 BIC #$30,&$380
25429 RLAM    #1,R11
25430 MOV.B   R11,R9
25431 RRUM    #2,R9
25432 BIT     #$4000,R11
25433 0= IF   BIS #$40,R9
25434 THEN
25435 RRUM    #3,R11
25436 XOR     @R1,R11
25437 BIT     #$400,R11
25438 0= ?GOTO BW1
25439 XOR #$400,0(R1)
25440 SUB #8,R15
25441 MOV R14,6(R15)
25442 MOV &$1DDC,4(R15)
25443 MOV #$10,&$1DDC
25444 MOV R9,0(R15)
25445 MOV #0,R14
25446 LO2HI
25447     LCD_CLEAR
25448     <# # #S #36 HOLD #>
25449     ['] LCD_WRC IS EMIT
25450     TYPE
25451     ['] EMIT >BODY IS EMIT
25452 HI2LO
25453 MOV @R15+,&$1DDC
25454 MOV @R15+,R14
25455 MOV @R1+,R0
25456 ENDASM
25457
25458 ASM BACKGROUND
25459 BEGIN
25460     CALL &$1814
25461     BIS &$180A,R2
25462 AGAIN
25463 ENDASM
25464
25465 ASM SYS_OUT
25466     MOV #WARM,R9
25467     ADD #4,R9
25468     MOV R9,R0
25469 ENDASM
25470
25471 CODE STOP
25472 BW1 MOV #$4000,R9
25473     ADD #4,R9
25474     MOV R9,-2(R9)
25475     MOV #WARM,R9
25476     MOV #SYS_OUT,2(R9)
25477     BIC.B #4,&$20A
25478     BIC.B #4,&$20C
25479     MOV #0,&$3C0
25480     MOV #0,&$340
25481     MOV #0,&$342
25482     CALL #$400E
25483 COLON
25484 ECHO
25485 ." RC5toLCD is removed,"
25486 ."  type START to restart"
25487  WARM
25488 ;
25489
25490 CODE SYS_INIT
25491 MOV #%10_1101_0100,&$3C0
25492 $1806 @ 16000 = [IF]
25493     MOV #1,&$3E0
25494 [THEN]
25495 $1806 @ 24000 = [IF]
25496     MOV #2,&$3E0
25497 [THEN]
25498     MOV #19,&$3D2
25499 MOV #%0110_0000,&$3C6
25500     MOV #10,&$3D6
25501     BIS.B #$20,&$204
25502     BIS.B #$20,&$20A
25503     BIS.B #7,&$245
25504     BIC.B #7,&$247
25505     BIS.B #$0F,&$224
25506     BIC.B #$0F,&$226
25507     BIS.B #4,&$20A
25508     BIC.B #4,&$20C
25509     MOV #RC5_INT,&$FFDE
25510 MOV #%01_0001_0100,&$340
25511     MOV ##3276,&$352
25512     MOV #%10000,&$342
25513     MOV #WDT_INT,&$FFEA
25514 BIC #1,&$130
25515 BIS.B #3,&$20D
25516 MOV &$1808,R8
25517 CMP #4,R8
25518 0= ?GOTO BW1
25519 COLON
25520     #1000 20_US
25521     %011 TOP_LCD
25522     #205 20_US
25523     %011 TOP_LCD
25524     #5 20_US
25525     %011 TOP_LCD
25526     #2 20_US
25527     %010 TOP_LCD
25528     #2 20_US
25529     %00101000 LCD_WRF
25530     %1000 LCD_WRF
25531     LCD_CLEAR
25532     %0110 LCD_WRF
25533     %1100 LCD_WRF
25534     LCD_CLEAR
25535     ['] LCD_HOME IS CR
25536     ['] LCD_WRC  IS EMIT
25537     CR ." I love you"
25538     ['] CR >BODY IS CR
25539     ['] EMIT >BODY IS EMIT
25540     ." RC5toLCD is running. Type STOP to quit"
25541     PWR_STATE ABORT
25542 ;
25543
25544 CODE START
25545 MOV #$4000,R9
25546 MOV #BACKGROUND,2(R9)
25547 MOV #WARM,R9
25548 MOV #SYS_INIT,2(R9)
25549 MOV R9,R0
25550 ENDCODE 
25551
25552 ECHO
25553             ; downloading RC5toLCD.4th is done
25554 RST_HERE    ; this app is protected against <reset>
25555
25556
25557 RST_STATE
25558
25559 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
25560
25561 [UNDEFINED] MARKER [IF]
25562 : MARKER
25563 CREATE
25564 HI2LO
25565 MOV &$1DC8,0(R10)
25566 SUB #2,R8
25567 MOV R8,2(R10)
25568 ADD #4,&$1DC6
25569 LO2HI
25570 DOES>
25571 HI2LO
25572 MOV @R1+,R13
25573 MOV @R14+,&$180E
25574 MOV @R14,&$180C
25575 MOV @R15+,R14
25576 MOV #RST_STATE,R0
25577 ENDCODE
25578 [THEN]
25579
25580 MARKER {RC5TOLCD}
25581
25582 [UNDEFINED] @ [IF]
25583 CODE @
25584 MOV @R14,R14
25585 MOV @R13+,R0
25586 ENDCODE
25587 [THEN]
25588
25589 [UNDEFINED] CONSTANT [IF]
25590 : CONSTANT 
25591 CREATE
25592 HI2LO
25593 MOV R14,-2(R10)
25594 MOV @R15+,R14
25595 MOV @R1+,R13
25596 MOV @R13+,R0
25597 ENDCODE
25598 [THEN]
25599
25600 [UNDEFINED] STATE [IF]
25601 $1DBE CONSTANT STATE
25602 [THEN]
25603
25604 [UNDEFINED] = [IF]
25605 CODE =
25606 SUB @R15+,R14
25607 0<> IF
25608     AND #0,R14
25609     MOV @R13+,R0
25610 THEN
25611 XOR #-1,R14
25612 MOV @R13+,R0
25613 ENDCODE
25614 [THEN]
25615
25616 [UNDEFINED] IF [IF]
25617 CODE IF
25618 SUB #2,R15
25619 MOV R14,0(R15)
25620 MOV &$1DC6,R14
25621 ADD #4,&$1DC6
25622 MOV #$404C,0(R14)
25623 ADD #2,R14
25624 MOV @R13+,R0
25625 ENDCODE IMMEDIATE
25626 [THEN]
25627
25628 [UNDEFINED] THEN [IF]
25629 CODE THEN
25630 MOV &$1DC6,0(R14)
25631 MOV @R15+,R14
25632 MOV @R13+,R0
25633 ENDCODE IMMEDIATE
25634 [THEN]
25635
25636 [UNDEFINED] ELSE [IF]
25637 CODE ELSE
25638 ADD #4,&$1DC6
25639 MOV &$1DC6,R10
25640 MOV #$4048,-4(R10)
25641 MOV R10,0(R14)
25642 SUB #2,R10
25643 MOV R10,R14
25644 MOV @R13+,R0
25645 ENDCODE IMMEDIATE
25646 [THEN]
25647
25648 [UNDEFINED] DEFER [IF]
25649
25650 : DEFER
25651 CREATE
25652 HI2LO
25653 MOV #$4030,-4(R10)
25654 MOV #$402C,-2(R10)
25655 MOV @R1+,R13
25656 MOV @R13+,R0
25657 ENDCODE
25658 [THEN]
25659
25660 [UNDEFINED] DEFER! [IF]
25661 CODE DEFER!
25662 MOV @R15+,2(R14)
25663 MOV @R15+,R14
25664 MOV @R13+,R0
25665 ENDCODE
25666 [THEN]
25667
25668 [UNDEFINED] IS [IF]
25669 : IS
25670 STATE @
25671 IF  POSTPONE ['] POSTPONE DEFER! 
25672 ELSE ' DEFER! 
25673 THEN
25674 ; IMMEDIATE
25675 [THEN]
25676
25677 [UNDEFINED] >BODY [IF]
25678 CODE >BODY
25679 ADD #4,R14
25680 MOV @R13+,R0
25681 ENDCODE
25682 [THEN]
25683
25684
25685 CODE 20_US
25686 BEGIN
25687     BEGIN
25688         BIT #1,&$3C0
25689     0<> UNTIL
25690     BIC #1,&$3C0
25691     SUB #1,R14
25692 U< UNTIL
25693 MOV @R15+,R14
25694 MOV @R13+,R0
25695 ENDCODE
25696
25697 CODE TOP_LCD
25698     BIS.B #4,&$243
25699     BIT.B #1,&$241
25700 0= IF
25701     AND.B #$0F,R14
25702     MOV.B R14,&$222
25703     BIC.B #4,&$243
25704     MOV @R15+,R14
25705     MOV @R13+,R0
25706 THEN
25707     SUB #2,R15
25708     MOV R14,0(R15)
25709     BIC.B #4,&$243
25710     MOV.B &$220,R14
25711     AND.B #$0F,R14
25712     MOV @R13+,R0
25713 ENDCODE
25714
25715 CODE LCD_WRC
25716     BIS.B #2,&$243
25717 BW1 SUB #2,R15
25718     MOV R14,0(R15)
25719     RRUM #4,R14
25720     BIC.B #1,&$243
25721     BIS.B #$0F,&$224
25722 COLON
25723     TOP_LCD 2 20_US
25724     TOP_LCD 2 20_US 
25725 ;
25726
25727 CODE LCD_WRF
25728     BIC.B #2,&$243
25729     GOTO BW1
25730 ENDCODE
25731
25732 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
25733 : LCD_HOME $02 LCD_WRF 100 20_us ;
25734
25735
25736
25737 ASM WDT_INT
25738 ADD #2,R1
25739 BIT.B #$20,&$240
25740 0= IF
25741     CMP #19,&$3D6
25742     U< IF
25743         ADD #1,&$3D6
25744     THEN
25745 ELSE
25746     BIT.B #$40,&$240
25747     0= IF
25748         CMP #3,&$3D6
25749         U>= IF
25750            SUB #1,&$3D6
25751         THEN
25752     THEN
25753 THEN
25754 BW1
25755 MOV @R1+,R0
25756 ENDASM
25757
25758 ASM RC5_INT
25759 ADD #2,R1
25760 $1806 @ 16000 = [IF]
25761     MOV #1,&$3A0
25762 [THEN]
25763 $1806 @ 24000 = [IF]
25764     MOV #2,&$3A0
25765 [THEN]
25766 MOV #1778,R9
25767 MOV #14,R10
25768 BEGIN
25769 MOV #%1011100100,&$380
25770     RRUM    #1,R9
25771     MOV     R9,R8
25772     RRUM    #1,R8
25773     ADD     R9,R8
25774     BEGIN   CMP R8,&$390
25775     U>= UNTIL
25776     BIT.B   #4,&$200
25777     ADDC    R11,R11
25778     MOV.B   &$200,&$208
25779     BIC.B   #4,&$20C
25780     SUB     #1,R10
25781 0<> WHILE
25782     ADD R9,R8
25783     BEGIN
25784         MOV &$390,R9
25785         CMP R8,R9
25786         U>= IF
25787         BIC #$30,&$380
25788         GOTO BW1
25789         THEN
25790         BIT.B #4,&$20C
25791     0<> UNTIL
25792 REPEAT
25793 BIC #$30,&$380
25794 RLAM    #1,R11
25795 MOV.B   R11,R9
25796 RRUM    #2,R9
25797 BIT     #$4000,R11
25798 0= IF   BIS #$40,R9
25799 THEN
25800 RRUM    #3,R11
25801 XOR     @R1,R11
25802 BIT     #$400,R11
25803 0= ?GOTO BW1
25804 XOR #$400,0(R1)
25805 SUB #8,R15
25806 MOV R14,6(R15)
25807 MOV &$1DDC,4(R15)
25808 MOV #$10,&$1DDC
25809 MOV R9,0(R15)
25810 MOV #0,R14
25811 LO2HI
25812     LCD_CLEAR
25813     <# # #S #36 HOLD #>
25814     ['] LCD_WRC IS EMIT
25815     TYPE
25816     ['] EMIT >BODY IS EMIT
25817 HI2LO
25818 MOV @R15+,&$1DDC
25819 MOV @R15+,R14
25820 MOV @R1+,R0
25821 ENDASM
25822
25823 ASM BACKGROUND
25824 BEGIN
25825     CALL &$1814
25826     BIS &$180A,R2
25827 AGAIN
25828 ENDASM
25829
25830 ASM SYS_OUT
25831     MOV #WARM,R9
25832     ADD #4,R9
25833     MOV R9,R0
25834 ENDASM
25835
25836 CODE STOP
25837 BW1 MOV #$4000,R9
25838     ADD #4,R9
25839     MOV R9,-2(R9)
25840     MOV #WARM,R9
25841     MOV #SYS_OUT,2(R9)
25842     BIC.B #4,&$20A
25843     BIC.B #4,&$20C
25844     MOV #0,&$3C0
25845     MOV #0,&$340
25846     MOV #0,&$342
25847     CALL #$400E
25848 COLON
25849 ECHO
25850 ." RC5toLCD is removed,"
25851 ."  type START to restart"
25852  WARM
25853 ;
25854
25855 CODE SYS_INIT
25856 MOV #%10_1101_0100,&$3C0
25857 $1806 @ 16000 = [IF]
25858     MOV #1,&$3E0
25859 [THEN]
25860 $1806 @ 24000 = [IF]
25861     MOV #2,&$3E0
25862 [THEN]
25863     MOV #19,&$3D2
25864 MOV #%0110_0000,&$3C6
25865     MOV #10,&$3D6
25866     BIS.B #$20,&$204
25867     BIS.B #$20,&$20A
25868     BIS.B #7,&$245
25869     BIC.B #7,&$247
25870     BIS.B #$0F,&$224
25871     BIC.B #$0F,&$226
25872     BIS.B #4,&$20A
25873     BIC.B #4,&$20C
25874     MOV #RC5_INT,&$FFDE
25875 MOV #%01_0001_0100,&$340
25876     MOV ##3276,&$352
25877     MOV #%10000,&$342
25878     MOV #WDT_INT,&$FFEA
25879 BIC #1,&$130
25880 BIS.B #3,&$20D
25881 MOV &$1808,R8
25882 CMP #4,R8
25883 0= ?GOTO BW1
25884 COLON
25885     #1000 20_US
25886     %011 TOP_LCD
25887     #205 20_US
25888     %011 TOP_LCD
25889     #5 20_US
25890     %011 TOP_LCD
25891     #2 20_US
25892     %010 TOP_LCD
25893     #2 20_US
25894     %00101000 LCD_WRF
25895     %1000 LCD_WRF
25896     LCD_CLEAR
25897     %0110 LCD_WRF
25898     %1100 LCD_WRF
25899     LCD_CLEAR
25900     ['] LCD_HOME IS CR
25901     ['] LCD_WRC  IS EMIT
25902     CR ." I love you"
25903     ['] CR >BODY IS CR
25904     ['] EMIT >BODY IS EMIT
25905     ." RC5toLCD is running. Type STOP to quit"
25906     PWR_STATE ABORT
25907 ;
25908
25909 CODE START
25910 MOV #$4000,R9
25911 MOV #BACKGROUND,2(R9)
25912 MOV #WARM,R9
25913 MOV #SYS_INIT,2(R9)
25914 MOV R9,R0
25915 ENDCODE 
25916
25917 ECHO
25918             ; downloading RC5toLCD.4th is done
25919 RST_HERE    ; this app is protected against <reset>
25920
25921
25922 RST_STATE
25923
25924 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
25925
25926 [UNDEFINED] MARKER [IF]
25927 : MARKER
25928 CREATE
25929 HI2LO
25930 MOV &$1DC8,0(R10)
25931 SUB #2,R8
25932 MOV R8,2(R10)
25933 ADD #4,&$1DC6
25934 LO2HI
25935 DOES>
25936 HI2LO
25937 MOV @R1+,R13
25938 MOV @R14+,&$180E
25939 MOV @R14,&$180C
25940 MOV @R15+,R14
25941 MOV #RST_STATE,R0
25942 ENDCODE
25943 [THEN]
25944
25945 MARKER {RC5TOLCD}
25946
25947 [UNDEFINED] @ [IF]
25948 CODE @
25949 MOV @R14,R14
25950 MOV @R13+,R0
25951 ENDCODE
25952 [THEN]
25953
25954 [UNDEFINED] CONSTANT [IF]
25955 : CONSTANT 
25956 CREATE
25957 HI2LO
25958 MOV R14,-2(R10)
25959 MOV @R15+,R14
25960 MOV @R1+,R13
25961 MOV @R13+,R0
25962 ENDCODE
25963 [THEN]
25964
25965 [UNDEFINED] STATE [IF]
25966 $1DBE CONSTANT STATE
25967 [THEN]
25968
25969 [UNDEFINED] = [IF]
25970 CODE =
25971 SUB @R15+,R14
25972 0<> IF
25973     AND #0,R14
25974     MOV @R13+,R0
25975 THEN
25976 XOR #-1,R14
25977 MOV @R13+,R0
25978 ENDCODE
25979 [THEN]
25980
25981 [UNDEFINED] IF [IF]
25982 CODE IF
25983 SUB #2,R15
25984 MOV R14,0(R15)
25985 MOV &$1DC6,R14
25986 ADD #4,&$1DC6
25987 MOV #$404C,0(R14)
25988 ADD #2,R14
25989 MOV @R13+,R0
25990 ENDCODE IMMEDIATE
25991 [THEN]
25992
25993 [UNDEFINED] THEN [IF]
25994 CODE THEN
25995 MOV &$1DC6,0(R14)
25996 MOV @R15+,R14
25997 MOV @R13+,R0
25998 ENDCODE IMMEDIATE
25999 [THEN]
26000
26001 [UNDEFINED] ELSE [IF]
26002 CODE ELSE
26003 ADD #4,&$1DC6
26004 MOV &$1DC6,R10
26005 MOV #$4048,-4(R10)
26006 MOV R10,0(R14)
26007 SUB #2,R10
26008 MOV R10,R14
26009 MOV @R13+,R0
26010 ENDCODE IMMEDIATE
26011 [THEN]
26012
26013 [UNDEFINED] DEFER [IF]
26014
26015 : DEFER
26016 CREATE
26017 HI2LO
26018 MOV #$4030,-4(R10)
26019 MOV #$402C,-2(R10)
26020 MOV @R1+,R13
26021 MOV @R13+,R0
26022 ENDCODE
26023 [THEN]
26024
26025 [UNDEFINED] DEFER! [IF]
26026 CODE DEFER!
26027 MOV @R15+,2(R14)
26028 MOV @R15+,R14
26029 MOV @R13+,R0
26030 ENDCODE
26031 [THEN]
26032
26033 [UNDEFINED] IS [IF]
26034 : IS
26035 STATE @
26036 IF  POSTPONE ['] POSTPONE DEFER! 
26037 ELSE ' DEFER! 
26038 THEN
26039 ; IMMEDIATE
26040 [THEN]
26041
26042 [UNDEFINED] >BODY [IF]
26043 CODE >BODY
26044 ADD #4,R14
26045 MOV @R13+,R0
26046 ENDCODE
26047 [THEN]
26048
26049
26050 CODE 20_US
26051 BEGIN
26052     BEGIN
26053         BIT #1,&$3C0
26054     0<> UNTIL
26055     BIC #1,&$3C0
26056     SUB #1,R14
26057 U< UNTIL
26058 MOV @R15+,R14
26059 MOV @R13+,R0
26060 ENDCODE
26061
26062 CODE TOP_LCD
26063     BIS.B #4,&$243
26064     BIT.B #1,&$241
26065 0= IF
26066     AND.B #$0F,R14
26067     MOV.B R14,&$222
26068     BIC.B #4,&$243
26069     MOV @R15+,R14
26070     MOV @R13+,R0
26071 THEN
26072     SUB #2,R15
26073     MOV R14,0(R15)
26074     BIC.B #4,&$243
26075     MOV.B &$220,R14
26076     AND.B #$0F,R14
26077     MOV @R13+,R0
26078 ENDCODE
26079
26080 CODE LCD_WRC
26081     BIS.B #2,&$243
26082 BW1 SUB #2,R15
26083     MOV R14,0(R15)
26084     RRUM #4,R14
26085     BIC.B #1,&$243
26086     BIS.B #$0F,&$224
26087 COLON
26088     TOP_LCD 2 20_US
26089     TOP_LCD 2 20_US 
26090 ;
26091
26092 CODE LCD_WRF
26093     BIC.B #2,&$243
26094     GOTO BW1
26095 ENDCODE
26096
26097 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
26098 : LCD_HOME $02 LCD_WRF 100 20_us ;
26099
26100
26101
26102 ASM WDT_INT
26103 ADD #2,R1
26104 BIT.B #$20,&$240
26105 0= IF
26106     CMP #19,&$3D6
26107     U< IF
26108         ADD #1,&$3D6
26109     THEN
26110 ELSE
26111     BIT.B #$40,&$240
26112     0= IF
26113         CMP #3,&$3D6
26114         U>= IF
26115            SUB #1,&$3D6
26116         THEN
26117     THEN
26118 THEN
26119 BW1
26120 MOV @R1+,R0
26121 ENDASM
26122
26123 ASM RC5_INT
26124 ADD #2,R1
26125 $1806 @ 16000 = [IF]
26126     MOV #1,&$3A0
26127 [THEN]
26128 $1806 @ 24000 = [IF]
26129     MOV #2,&$3A0
26130 [THEN]
26131 MOV #1778,R9
26132 MOV #14,R10
26133 BEGIN
26134 MOV #%1011100100,&$380
26135     RRUM    #1,R9
26136     MOV     R9,R8
26137     RRUM    #1,R8
26138     ADD     R9,R8
26139     BEGIN   CMP R8,&$390
26140     U>= UNTIL
26141     BIT.B   #4,&$200
26142     ADDC    R11,R11
26143     MOV.B   &$200,&$208
26144     BIC.B   #4,&$20C
26145     SUB     #1,R10
26146 0<> WHILE
26147     ADD R9,R8
26148     BEGIN
26149         MOV &$390,R9
26150         CMP R8,R9
26151         U>= IF
26152         BIC #$30,&$380
26153         GOTO BW1
26154         THEN
26155         BIT.B #4,&$20C
26156     0<> UNTIL
26157 REPEAT
26158 BIC #$30,&$380
26159 RLAM    #1,R11
26160 MOV.B   R11,R9
26161 RRUM    #2,R9
26162 BIT     #$4000,R11
26163 0= IF   BIS #$40,R9
26164 THEN
26165 RRUM    #3,R11
26166 XOR     @R1,R11
26167 BIT     #$400,R11
26168 0= ?GOTO BW1
26169 XOR #$400,0(R1)
26170 SUB #8,R15
26171 MOV R14,6(R15)
26172 MOV &$1DDC,4(R15)
26173 MOV #$10,&$1DDC
26174 MOV R9,0(R15)
26175 MOV #0,R14
26176 LO2HI
26177     LCD_CLEAR
26178     <# # #S #36 HOLD #>
26179     ['] LCD_WRC IS EMIT
26180     TYPE
26181     ['] EMIT >BODY IS EMIT
26182 HI2LO
26183 MOV @R15+,&$1DDC
26184 MOV @R15+,R14
26185 MOV @R1+,R0
26186 ENDASM
26187
26188 ASM BACKGROUND
26189 BEGIN
26190     CALL &$1814
26191     BIS &$180A,R2
26192 AGAIN
26193 ENDASM
26194
26195 ASM SYS_OUT
26196     MOV #WARM,R9
26197     ADD #4,R9
26198     MOV R9,R0
26199 ENDASM
26200
26201 CODE STOP
26202 BW1 MOV #$4000,R9
26203     ADD #4,R9
26204     MOV R9,-2(R9)
26205     MOV #WARM,R9
26206     MOV #SYS_OUT,2(R9)
26207     BIC.B #4,&$20A
26208     BIC.B #4,&$20C
26209     MOV #0,&$3C0
26210     MOV #0,&$340
26211     MOV #0,&$342
26212     CALL #$400E
26213 COLON
26214 ECHO
26215 ." RC5toLCD is removed,"
26216 ."  type START to restart"
26217  WARM
26218 ;
26219
26220 CODE SYS_INIT
26221 MOV #%10_1101_0100,&$3C0
26222 $1806 @ 16000 = [IF]
26223     MOV #1,&$3E0
26224 [THEN]
26225 $1806 @ 24000 = [IF]
26226     MOV #2,&$3E0
26227 [THEN]
26228     MOV #19,&$3D2
26229 MOV #%0110_0000,&$3C6
26230     MOV #10,&$3D6
26231     BIS.B #$20,&$204
26232     BIS.B #$20,&$20A
26233     BIS.B #7,&$245
26234     BIC.B #7,&$247
26235     BIS.B #$0F,&$224
26236     BIC.B #$0F,&$226
26237     BIS.B #4,&$20A
26238     BIC.B #4,&$20C
26239     MOV #RC5_INT,&$FFDE
26240 MOV #%01_0001_0100,&$340
26241     MOV ##3276,&$352
26242     MOV #%10000,&$342
26243     MOV #WDT_INT,&$FFEA
26244 BIC #1,&$130
26245 BIS.B #3,&$20D
26246 MOV &$1808,R8
26247 CMP #4,R8
26248 0= ?GOTO BW1
26249 COLON
26250     #1000 20_US
26251     %011 TOP_LCD
26252     #205 20_US
26253     %011 TOP_LCD
26254     #5 20_US
26255     %011 TOP_LCD
26256     #2 20_US
26257     %010 TOP_LCD
26258     #2 20_US
26259     %00101000 LCD_WRF
26260     %1000 LCD_WRF
26261     LCD_CLEAR
26262     %0110 LCD_WRF
26263     %1100 LCD_WRF
26264     LCD_CLEAR
26265     ['] LCD_HOME IS CR
26266     ['] LCD_WRC  IS EMIT
26267     CR ." I love you"
26268     ['] CR >BODY IS CR
26269     ['] EMIT >BODY IS EMIT
26270     ." RC5toLCD is running. Type STOP to quit"
26271     PWR_STATE ABORT
26272 ;
26273
26274 CODE START
26275 MOV #$4000,R9
26276 MOV #BACKGROUND,2(R9)
26277 MOV #WARM,R9
26278 MOV #SYS_INIT,2(R9)
26279 MOV R9,R0
26280 ENDCODE 
26281
26282 ECHO
26283             ; downloading RC5toLCD.4th is done
26284 RST_HERE    ; this app is protected against <reset>
26285
26286
26287 RST_STATE
26288
26289 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
26290
26291 [UNDEFINED] MARKER [IF]
26292 : MARKER
26293 CREATE
26294 HI2LO
26295 MOV &$1DC8,0(R10)
26296 SUB #2,R8
26297 MOV R8,2(R10)
26298 ADD #4,&$1DC6
26299 LO2HI
26300 DOES>
26301 HI2LO
26302 MOV @R1+,R13
26303 MOV @R14+,&$180E
26304 MOV @R14,&$180C
26305 MOV @R15+,R14
26306 MOV #RST_STATE,R0
26307 ENDCODE
26308 [THEN]
26309
26310 MARKER {RC5TOLCD}
26311
26312 [UNDEFINED] @ [IF]
26313 CODE @
26314 MOV @R14,R14
26315 MOV @R13+,R0
26316 ENDCODE
26317 [THEN]
26318
26319 [UNDEFINED] CONSTANT [IF]
26320 : CONSTANT 
26321 CREATE
26322 HI2LO
26323 MOV R14,-2(R10)
26324 MOV @R15+,R14
26325 MOV @R1+,R13
26326 MOV @R13+,R0
26327 ENDCODE
26328 [THEN]
26329
26330 [UNDEFINED] STATE [IF]
26331 $1DBE CONSTANT STATE
26332 [THEN]
26333
26334 [UNDEFINED] = [IF]
26335 CODE =
26336 SUB @R15+,R14
26337 0<> IF
26338     AND #0,R14
26339     MOV @R13+,R0
26340 THEN
26341 XOR #-1,R14
26342 MOV @R13+,R0
26343 ENDCODE
26344 [THEN]
26345
26346 [UNDEFINED] IF [IF]
26347 CODE IF
26348 SUB #2,R15
26349 MOV R14,0(R15)
26350 MOV &$1DC6,R14
26351 ADD #4,&$1DC6
26352 MOV #$404C,0(R14)
26353 ADD #2,R14
26354 MOV @R13+,R0
26355 ENDCODE IMMEDIATE
26356 [THEN]
26357
26358 [UNDEFINED] THEN [IF]
26359 CODE THEN
26360 MOV &$1DC6,0(R14)
26361 MOV @R15+,R14
26362 MOV @R13+,R0
26363 ENDCODE IMMEDIATE
26364 [THEN]
26365
26366 [UNDEFINED] ELSE [IF]
26367 CODE ELSE
26368 ADD #4,&$1DC6
26369 MOV &$1DC6,R10
26370 MOV #$4048,-4(R10)
26371 MOV R10,0(R14)
26372 SUB #2,R10
26373 MOV R10,R14
26374 MOV @R13+,R0
26375 ENDCODE IMMEDIATE
26376 [THEN]
26377
26378 [UNDEFINED] DEFER [IF]
26379
26380 : DEFER
26381 CREATE
26382 HI2LO
26383 MOV #$4030,-4(R10)
26384 MOV #$402C,-2(R10)
26385 MOV @R1+,R13
26386 MOV @R13+,R0
26387 ENDCODE
26388 [THEN]
26389
26390 [UNDEFINED] DEFER! [IF]
26391 CODE DEFER!
26392 MOV @R15+,2(R14)
26393 MOV @R15+,R14
26394 MOV @R13+,R0
26395 ENDCODE
26396 [THEN]
26397
26398 [UNDEFINED] IS [IF]
26399 : IS
26400 STATE @
26401 IF  POSTPONE ['] POSTPONE DEFER! 
26402 ELSE ' DEFER! 
26403 THEN
26404 ; IMMEDIATE
26405 [THEN]
26406
26407 [UNDEFINED] >BODY [IF]
26408 CODE >BODY
26409 ADD #4,R14
26410 MOV @R13+,R0
26411 ENDCODE
26412 [THEN]
26413
26414
26415 CODE 20_US
26416 BEGIN
26417     BEGIN
26418         BIT #1,&$3C0
26419     0<> UNTIL
26420     BIC #1,&$3C0
26421     SUB #1,R14
26422 U< UNTIL
26423 MOV @R15+,R14
26424 MOV @R13+,R0
26425 ENDCODE
26426
26427 CODE TOP_LCD
26428     BIS.B #4,&$243
26429     BIT.B #1,&$241
26430 0= IF
26431     AND.B #$0F,R14
26432     MOV.B R14,&$222
26433     BIC.B #4,&$243
26434     MOV @R15+,R14
26435     MOV @R13+,R0
26436 THEN
26437     SUB #2,R15
26438     MOV R14,0(R15)
26439     BIC.B #4,&$243
26440     MOV.B &$220,R14
26441     AND.B #$0F,R14
26442     MOV @R13+,R0
26443 ENDCODE
26444
26445 CODE LCD_WRC
26446     BIS.B #2,&$243
26447 BW1 SUB #2,R15
26448     MOV R14,0(R15)
26449     RRUM #4,R14
26450     BIC.B #1,&$243
26451     BIS.B #$0F,&$224
26452 COLON
26453     TOP_LCD 2 20_US
26454     TOP_LCD 2 20_US 
26455 ;
26456
26457 CODE LCD_WRF
26458     BIC.B #2,&$243
26459     GOTO BW1
26460 ENDCODE
26461
26462 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
26463 : LCD_HOME $02 LCD_WRF 100 20_us ;
26464
26465
26466
26467 ASM WDT_INT
26468 ADD #2,R1
26469 BIT.B #$20,&$240
26470 0= IF
26471     CMP #19,&$3D6
26472     U< IF
26473         ADD #1,&$3D6
26474     THEN
26475 ELSE
26476     BIT.B #$40,&$240
26477     0= IF
26478         CMP #3,&$3D6
26479         U>= IF
26480            SUB #1,&$3D6
26481         THEN
26482     THEN
26483 THEN
26484 BW1
26485 MOV @R1+,R0
26486 ENDASM
26487
26488 ASM RC5_INT
26489 ADD #2,R1
26490 $1806 @ 16000 = [IF]
26491     MOV #1,&$3A0
26492 [THEN]
26493 $1806 @ 24000 = [IF]
26494     MOV #2,&$3A0
26495 [THEN]
26496 MOV #1778,R9
26497 MOV #14,R10
26498 BEGIN
26499 MOV #%1011100100,&$380
26500     RRUM    #1,R9
26501     MOV     R9,R8
26502     RRUM    #1,R8
26503     ADD     R9,R8
26504     BEGIN   CMP R8,&$390
26505     U>= UNTIL
26506     BIT.B   #4,&$200
26507     ADDC    R11,R11
26508     MOV.B   &$200,&$208
26509     BIC.B   #4,&$20C
26510     SUB     #1,R10
26511 0<> WHILE
26512     ADD R9,R8
26513     BEGIN
26514         MOV &$390,R9
26515         CMP R8,R9
26516         U>= IF
26517         BIC #$30,&$380
26518         GOTO BW1
26519         THEN
26520         BIT.B #4,&$20C
26521     0<> UNTIL
26522 REPEAT
26523 BIC #$30,&$380
26524 RLAM    #1,R11
26525 MOV.B   R11,R9
26526 RRUM    #2,R9
26527 BIT     #$4000,R11
26528 0= IF   BIS #$40,R9
26529 THEN
26530 RRUM    #3,R11
26531 XOR     @R1,R11
26532 BIT     #$400,R11
26533 0= ?GOTO BW1
26534 XOR #$400,0(R1)
26535 SUB #8,R15
26536 MOV R14,6(R15)
26537 MOV &$1DDC,4(R15)
26538 MOV #$10,&$1DDC
26539 MOV R9,0(R15)
26540 MOV #0,R14
26541 LO2HI
26542     LCD_CLEAR
26543     <# # #S #36 HOLD #>
26544     ['] LCD_WRC IS EMIT
26545     TYPE
26546     ['] EMIT >BODY IS EMIT
26547 HI2LO
26548 MOV @R15+,&$1DDC
26549 MOV @R15+,R14
26550 MOV @R1+,R0
26551 ENDASM
26552
26553 ASM BACKGROUND
26554 BEGIN
26555     CALL &$1814
26556     BIS &$180A,R2
26557 AGAIN
26558 ENDASM
26559
26560 ASM SYS_OUT
26561     MOV #WARM,R9
26562     ADD #4,R9
26563     MOV R9,R0
26564 ENDASM
26565
26566 CODE STOP
26567 BW1 MOV #$4000,R9
26568     ADD #4,R9
26569     MOV R9,-2(R9)
26570     MOV #WARM,R9
26571     MOV #SYS_OUT,2(R9)
26572     BIC.B #4,&$20A
26573     BIC.B #4,&$20C
26574     MOV #0,&$3C0
26575     MOV #0,&$340
26576     MOV #0,&$342
26577     CALL #$400E
26578 COLON
26579 ECHO
26580 ." RC5toLCD is removed,"
26581 ."  type START to restart"
26582  WARM
26583 ;
26584
26585 CODE SYS_INIT
26586 MOV #%10_1101_0100,&$3C0
26587 $1806 @ 16000 = [IF]
26588     MOV #1,&$3E0
26589 [THEN]
26590 $1806 @ 24000 = [IF]
26591     MOV #2,&$3E0
26592 [THEN]
26593     MOV #19,&$3D2
26594 MOV #%0110_0000,&$3C6
26595     MOV #10,&$3D6
26596     BIS.B #$20,&$204
26597     BIS.B #$20,&$20A
26598     BIS.B #7,&$245
26599     BIC.B #7,&$247
26600     BIS.B #$0F,&$224
26601     BIC.B #$0F,&$226
26602     BIS.B #4,&$20A
26603     BIC.B #4,&$20C
26604     MOV #RC5_INT,&$FFDE
26605 MOV #%01_0001_0100,&$340
26606     MOV ##3276,&$352
26607     MOV #%10000,&$342
26608     MOV #WDT_INT,&$FFEA
26609 BIC #1,&$130
26610 BIS.B #3,&$20D
26611 MOV &$1808,R8
26612 CMP #4,R8
26613 0= ?GOTO BW1
26614 COLON
26615     #1000 20_US
26616     %011 TOP_LCD
26617     #205 20_US
26618     %011 TOP_LCD
26619     #5 20_US
26620     %011 TOP_LCD
26621     #2 20_US
26622     %010 TOP_LCD
26623     #2 20_US
26624     %00101000 LCD_WRF
26625     %1000 LCD_WRF
26626     LCD_CLEAR
26627     %0110 LCD_WRF
26628     %1100 LCD_WRF
26629     LCD_CLEAR
26630     ['] LCD_HOME IS CR
26631     ['] LCD_WRC  IS EMIT
26632     CR ." I love you"
26633     ['] CR >BODY IS CR
26634     ['] EMIT >BODY IS EMIT
26635     ." RC5toLCD is running. Type STOP to quit"
26636     PWR_STATE ABORT
26637 ;
26638
26639 CODE START
26640 MOV #$4000,R9
26641 MOV #BACKGROUND,2(R9)
26642 MOV #WARM,R9
26643 MOV #SYS_INIT,2(R9)
26644 MOV R9,R0
26645 ENDCODE 
26646
26647 ECHO
26648             ; downloading RC5toLCD.4th is done
26649 RST_HERE    ; this app is protected against <reset>
26650
26651
26652 RST_STATE
26653
26654 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
26655
26656 [UNDEFINED] MARKER [IF]
26657 : MARKER
26658 CREATE
26659 HI2LO
26660 MOV &$1DC8,0(R10)
26661 SUB #2,R8
26662 MOV R8,2(R10)
26663 ADD #4,&$1DC6
26664 LO2HI
26665 DOES>
26666 HI2LO
26667 MOV @R1+,R13
26668 MOV @R14+,&$180E
26669 MOV @R14,&$180C
26670 MOV @R15+,R14
26671 MOV #RST_STATE,R0
26672 ENDCODE
26673 [THEN]
26674
26675 MARKER {RC5TOLCD}
26676
26677 [UNDEFINED] @ [IF]
26678 CODE @
26679 MOV @R14,R14
26680 MOV @R13+,R0
26681 ENDCODE
26682 [THEN]
26683
26684 [UNDEFINED] CONSTANT [IF]
26685 : CONSTANT 
26686 CREATE
26687 HI2LO
26688 MOV R14,-2(R10)
26689 MOV @R15+,R14
26690 MOV @R1+,R13
26691 MOV @R13+,R0
26692 ENDCODE
26693 [THEN]
26694
26695 [UNDEFINED] STATE [IF]
26696 $1DBE CONSTANT STATE
26697 [THEN]
26698
26699 [UNDEFINED] = [IF]
26700 CODE =
26701 SUB @R15+,R14
26702 0<> IF
26703     AND #0,R14
26704     MOV @R13+,R0
26705 THEN
26706 XOR #-1,R14
26707 MOV @R13+,R0
26708 ENDCODE
26709 [THEN]
26710
26711 [UNDEFINED] IF [IF]
26712 CODE IF
26713 SUB #2,R15
26714 MOV R14,0(R15)
26715 MOV &$1DC6,R14
26716 ADD #4,&$1DC6
26717 MOV #$404C,0(R14)
26718 ADD #2,R14
26719 MOV @R13+,R0
26720 ENDCODE IMMEDIATE
26721 [THEN]
26722
26723 [UNDEFINED] THEN [IF]
26724 CODE THEN
26725 MOV &$1DC6,0(R14)
26726 MOV @R15+,R14
26727 MOV @R13+,R0
26728 ENDCODE IMMEDIATE
26729 [THEN]
26730
26731 [UNDEFINED] ELSE [IF]
26732 CODE ELSE
26733 ADD #4,&$1DC6
26734 MOV &$1DC6,R10
26735 MOV #$4048,-4(R10)
26736 MOV R10,0(R14)
26737 SUB #2,R10
26738 MOV R10,R14
26739 MOV @R13+,R0
26740 ENDCODE IMMEDIATE
26741 [THEN]
26742
26743 [UNDEFINED] DEFER [IF]
26744
26745 : DEFER
26746 CREATE
26747 HI2LO
26748 MOV #$4030,-4(R10)
26749 MOV #$402C,-2(R10)
26750 MOV @R1+,R13
26751 MOV @R13+,R0
26752 ENDCODE
26753 [THEN]
26754
26755 [UNDEFINED] DEFER! [IF]
26756 CODE DEFER!
26757 MOV @R15+,2(R14)
26758 MOV @R15+,R14
26759 MOV @R13+,R0
26760 ENDCODE
26761 [THEN]
26762
26763 [UNDEFINED] IS [IF]
26764 : IS
26765 STATE @
26766 IF  POSTPONE ['] POSTPONE DEFER! 
26767 ELSE ' DEFER! 
26768 THEN
26769 ; IMMEDIATE
26770 [THEN]
26771
26772 [UNDEFINED] >BODY [IF]
26773 CODE >BODY
26774 ADD #4,R14
26775 MOV @R13+,R0
26776 ENDCODE
26777 [THEN]
26778
26779
26780 CODE 20_US
26781 BEGIN
26782     BEGIN
26783         BIT #1,&$3C0
26784     0<> UNTIL
26785     BIC #1,&$3C0
26786     SUB #1,R14
26787 U< UNTIL
26788 MOV @R15+,R14
26789 MOV @R13+,R0
26790 ENDCODE
26791
26792 CODE TOP_LCD
26793     BIS.B #4,&$243
26794     BIT.B #1,&$241
26795 0= IF
26796     AND.B #$0F,R14
26797     MOV.B R14,&$222
26798     BIC.B #4,&$243
26799     MOV @R15+,R14
26800     MOV @R13+,R0
26801 THEN
26802     SUB #2,R15
26803     MOV R14,0(R15)
26804     BIC.B #4,&$243
26805     MOV.B &$220,R14
26806     AND.B #$0F,R14
26807     MOV @R13+,R0
26808 ENDCODE
26809
26810 CODE LCD_WRC
26811     BIS.B #2,&$243
26812 BW1 SUB #2,R15
26813     MOV R14,0(R15)
26814     RRUM #4,R14
26815     BIC.B #1,&$243
26816     BIS.B #$0F,&$224
26817 COLON
26818     TOP_LCD 2 20_US
26819     TOP_LCD 2 20_US 
26820 ;
26821
26822 CODE LCD_WRF
26823     BIC.B #2,&$243
26824     GOTO BW1
26825 ENDCODE
26826
26827 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
26828 : LCD_HOME $02 LCD_WRF 100 20_us ;
26829
26830
26831
26832 ASM WDT_INT
26833 ADD #2,R1
26834 BIT.B #$20,&$240
26835 0= IF
26836     CMP #19,&$3D6
26837     U< IF
26838         ADD #1,&$3D6
26839     THEN
26840 ELSE
26841     BIT.B #$40,&$240
26842     0= IF
26843         CMP #3,&$3D6
26844         U>= IF
26845            SUB #1,&$3D6
26846         THEN
26847     THEN
26848 THEN
26849 BW1
26850 MOV @R1+,R0
26851 ENDASM
26852
26853 ASM RC5_INT
26854 ADD #2,R1
26855 $1806 @ 16000 = [IF]
26856     MOV #1,&$3A0
26857 [THEN]
26858 $1806 @ 24000 = [IF]
26859     MOV #2,&$3A0
26860 [THEN]
26861 MOV #1778,R9
26862 MOV #14,R10
26863 BEGIN
26864 MOV #%1011100100,&$380
26865     RRUM    #1,R9
26866     MOV     R9,R8
26867     RRUM    #1,R8
26868     ADD     R9,R8
26869     BEGIN   CMP R8,&$390
26870     U>= UNTIL
26871     BIT.B   #4,&$200
26872     ADDC    R11,R11
26873     MOV.B   &$200,&$208
26874     BIC.B   #4,&$20C
26875     SUB     #1,R10
26876 0<> WHILE
26877     ADD R9,R8
26878     BEGIN
26879         MOV &$390,R9
26880         CMP R8,R9
26881         U>= IF
26882         BIC #$30,&$380
26883         GOTO BW1
26884         THEN
26885         BIT.B #4,&$20C
26886     0<> UNTIL
26887 REPEAT
26888 BIC #$30,&$380
26889 RLAM    #1,R11
26890 MOV.B   R11,R9
26891 RRUM    #2,R9
26892 BIT     #$4000,R11
26893 0= IF   BIS #$40,R9
26894 THEN
26895 RRUM    #3,R11
26896 XOR     @R1,R11
26897 BIT     #$400,R11
26898 0= ?GOTO BW1
26899 XOR #$400,0(R1)
26900 SUB #8,R15
26901 MOV R14,6(R15)
26902 MOV &$1DDC,4(R15)
26903 MOV #$10,&$1DDC
26904 MOV R9,0(R15)
26905 MOV #0,R14
26906 LO2HI
26907     LCD_CLEAR
26908     <# # #S #36 HOLD #>
26909     ['] LCD_WRC IS EMIT
26910     TYPE
26911     ['] EMIT >BODY IS EMIT
26912 HI2LO
26913 MOV @R15+,&$1DDC
26914 MOV @R15+,R14
26915 MOV @R1+,R0
26916 ENDASM
26917
26918 ASM BACKGROUND
26919 BEGIN
26920     CALL &$1814
26921     BIS &$180A,R2
26922 AGAIN
26923 ENDASM
26924
26925 ASM SYS_OUT
26926     MOV #WARM,R9
26927     ADD #4,R9
26928     MOV R9,R0
26929 ENDASM
26930
26931 CODE STOP
26932 BW1 MOV #$4000,R9
26933     ADD #4,R9
26934     MOV R9,-2(R9)
26935     MOV #WARM,R9
26936     MOV #SYS_OUT,2(R9)
26937     BIC.B #4,&$20A
26938     BIC.B #4,&$20C
26939     MOV #0,&$3C0
26940     MOV #0,&$340
26941     MOV #0,&$342
26942     CALL #$400E
26943 COLON
26944 ECHO
26945 ." RC5toLCD is removed,"
26946 ."  type START to restart"
26947  WARM
26948 ;
26949
26950 CODE SYS_INIT
26951 MOV #%10_1101_0100,&$3C0
26952 $1806 @ 16000 = [IF]
26953     MOV #1,&$3E0
26954 [THEN]
26955 $1806 @ 24000 = [IF]
26956     MOV #2,&$3E0
26957 [THEN]
26958     MOV #19,&$3D2
26959 MOV #%0110_0000,&$3C6
26960     MOV #10,&$3D6
26961     BIS.B #$20,&$204
26962     BIS.B #$20,&$20A
26963     BIS.B #7,&$245
26964     BIC.B #7,&$247
26965     BIS.B #$0F,&$224
26966     BIC.B #$0F,&$226
26967     BIS.B #4,&$20A
26968     BIC.B #4,&$20C
26969     MOV #RC5_INT,&$FFDE
26970 MOV #%01_0001_0100,&$340
26971     MOV ##3276,&$352
26972     MOV #%10000,&$342
26973     MOV #WDT_INT,&$FFEA
26974 BIC #1,&$130
26975 BIS.B #3,&$20D
26976 MOV &$1808,R8
26977 CMP #4,R8
26978 0= ?GOTO BW1
26979 COLON
26980     #1000 20_US
26981     %011 TOP_LCD
26982     #205 20_US
26983     %011 TOP_LCD
26984     #5 20_US
26985     %011 TOP_LCD
26986     #2 20_US
26987     %010 TOP_LCD
26988     #2 20_US
26989     %00101000 LCD_WRF
26990     %1000 LCD_WRF
26991     LCD_CLEAR
26992     %0110 LCD_WRF
26993     %1100 LCD_WRF
26994     LCD_CLEAR
26995     ['] LCD_HOME IS CR
26996     ['] LCD_WRC  IS EMIT
26997     CR ." I love you"
26998     ['] CR >BODY IS CR
26999     ['] EMIT >BODY IS EMIT
27000     ." RC5toLCD is running. Type STOP to quit"
27001     PWR_STATE ABORT
27002 ;
27003
27004 CODE START
27005 MOV #$4000,R9
27006 MOV #BACKGROUND,2(R9)
27007 MOV #WARM,R9
27008 MOV #SYS_INIT,2(R9)
27009 MOV R9,R0
27010 ENDCODE 
27011
27012 ECHO
27013             ; downloading RC5toLCD.4th is done
27014 RST_HERE    ; this app is protected against <reset>
27015
27016
27017 RST_STATE
27018
27019 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
27020
27021 [UNDEFINED] MARKER [IF]
27022 : MARKER
27023 CREATE
27024 HI2LO
27025 MOV &$1DC8,0(R10)
27026 SUB #2,R8
27027 MOV R8,2(R10)
27028 ADD #4,&$1DC6
27029 LO2HI
27030 DOES>
27031 HI2LO
27032 MOV @R1+,R13
27033 MOV @R14+,&$180E
27034 MOV @R14,&$180C
27035 MOV @R15+,R14
27036 MOV #RST_STATE,R0
27037 ENDCODE
27038 [THEN]
27039
27040 MARKER {RC5TOLCD}
27041
27042 [UNDEFINED] @ [IF]
27043 CODE @
27044 MOV @R14,R14
27045 MOV @R13+,R0
27046 ENDCODE
27047 [THEN]
27048
27049 [UNDEFINED] CONSTANT [IF]
27050 : CONSTANT 
27051 CREATE
27052 HI2LO
27053 MOV R14,-2(R10)
27054 MOV @R15+,R14
27055 MOV @R1+,R13
27056 MOV @R13+,R0
27057 ENDCODE
27058 [THEN]
27059
27060 [UNDEFINED] STATE [IF]
27061 $1DBE CONSTANT STATE
27062 [THEN]
27063
27064 [UNDEFINED] = [IF]
27065 CODE =
27066 SUB @R15+,R14
27067 0<> IF
27068     AND #0,R14
27069     MOV @R13+,R0
27070 THEN
27071 XOR #-1,R14
27072 MOV @R13+,R0
27073 ENDCODE
27074 [THEN]
27075
27076 [UNDEFINED] IF [IF]
27077 CODE IF
27078 SUB #2,R15
27079 MOV R14,0(R15)
27080 MOV &$1DC6,R14
27081 ADD #4,&$1DC6
27082 MOV #$404C,0(R14)
27083 ADD #2,R14
27084 MOV @R13+,R0
27085 ENDCODE IMMEDIATE
27086 [THEN]
27087
27088 [UNDEFINED] THEN [IF]
27089 CODE THEN
27090 MOV &$1DC6,0(R14)
27091 MOV @R15+,R14
27092 MOV @R13+,R0
27093 ENDCODE IMMEDIATE
27094 [THEN]
27095
27096 [UNDEFINED] ELSE [IF]
27097 CODE ELSE
27098 ADD #4,&$1DC6
27099 MOV &$1DC6,R10
27100 MOV #$4048,-4(R10)
27101 MOV R10,0(R14)
27102 SUB #2,R10
27103 MOV R10,R14
27104 MOV @R13+,R0
27105 ENDCODE IMMEDIATE
27106 [THEN]
27107
27108 [UNDEFINED] DEFER [IF]
27109
27110 : DEFER
27111 CREATE
27112 HI2LO
27113 MOV #$4030,-4(R10)
27114 MOV #$402C,-2(R10)
27115 MOV @R1+,R13
27116 MOV @R13+,R0
27117 ENDCODE
27118 [THEN]
27119
27120 [UNDEFINED] DEFER! [IF]
27121 CODE DEFER!
27122 MOV @R15+,2(R14)
27123 MOV @R15+,R14
27124 MOV @R13+,R0
27125 ENDCODE
27126 [THEN]
27127
27128 [UNDEFINED] IS [IF]
27129 : IS
27130 STATE @
27131 IF  POSTPONE ['] POSTPONE DEFER! 
27132 ELSE ' DEFER! 
27133 THEN
27134 ; IMMEDIATE
27135 [THEN]
27136
27137 [UNDEFINED] >BODY [IF]
27138 CODE >BODY
27139 ADD #4,R14
27140 MOV @R13+,R0
27141 ENDCODE
27142 [THEN]
27143
27144
27145 CODE 20_US
27146 BEGIN
27147     BEGIN
27148         BIT #1,&$3C0
27149     0<> UNTIL
27150     BIC #1,&$3C0
27151     SUB #1,R14
27152 U< UNTIL
27153 MOV @R15+,R14
27154 MOV @R13+,R0
27155 ENDCODE
27156
27157 CODE TOP_LCD
27158     BIS.B #4,&$243
27159     BIT.B #1,&$241
27160 0= IF
27161     AND.B #$0F,R14
27162     MOV.B R14,&$222
27163     BIC.B #4,&$243
27164     MOV @R15+,R14
27165     MOV @R13+,R0
27166 THEN
27167     SUB #2,R15
27168     MOV R14,0(R15)
27169     BIC.B #4,&$243
27170     MOV.B &$220,R14
27171     AND.B #$0F,R14
27172     MOV @R13+,R0
27173 ENDCODE
27174
27175 CODE LCD_WRC
27176     BIS.B #2,&$243
27177 BW1 SUB #2,R15
27178     MOV R14,0(R15)
27179     RRUM #4,R14
27180     BIC.B #1,&$243
27181     BIS.B #$0F,&$224
27182 COLON
27183     TOP_LCD 2 20_US
27184     TOP_LCD 2 20_US 
27185 ;
27186
27187 CODE LCD_WRF
27188     BIC.B #2,&$243
27189     GOTO BW1
27190 ENDCODE
27191
27192 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
27193 : LCD_HOME $02 LCD_WRF 100 20_us ;
27194
27195
27196
27197 ASM WDT_INT
27198 ADD #2,R1
27199 BIT.B #$20,&$240
27200 0= IF
27201     CMP #19,&$3D6
27202     U< IF
27203         ADD #1,&$3D6
27204     THEN
27205 ELSE
27206     BIT.B #$40,&$240
27207     0= IF
27208         CMP #3,&$3D6
27209         U>= IF
27210            SUB #1,&$3D6
27211         THEN
27212     THEN
27213 THEN
27214 BW1
27215 MOV @R1+,R0
27216 ENDASM
27217
27218 ASM RC5_INT
27219 ADD #2,R1
27220 $1806 @ 16000 = [IF]
27221     MOV #1,&$3A0
27222 [THEN]
27223 $1806 @ 24000 = [IF]
27224     MOV #2,&$3A0
27225 [THEN]
27226 MOV #1778,R9
27227 MOV #14,R10
27228 BEGIN
27229 MOV #%1011100100,&$380
27230     RRUM    #1,R9
27231     MOV     R9,R8
27232     RRUM    #1,R8
27233     ADD     R9,R8
27234     BEGIN   CMP R8,&$390
27235     U>= UNTIL
27236     BIT.B   #4,&$200
27237     ADDC    R11,R11
27238     MOV.B   &$200,&$208
27239     BIC.B   #4,&$20C
27240     SUB     #1,R10
27241 0<> WHILE
27242     ADD R9,R8
27243     BEGIN
27244         MOV &$390,R9
27245         CMP R8,R9
27246         U>= IF
27247         BIC #$30,&$380
27248         GOTO BW1
27249         THEN
27250         BIT.B #4,&$20C
27251     0<> UNTIL
27252 REPEAT
27253 BIC #$30,&$380
27254 RLAM    #1,R11
27255 MOV.B   R11,R9
27256 RRUM    #2,R9
27257 BIT     #$4000,R11
27258 0= IF   BIS #$40,R9
27259 THEN
27260 RRUM    #3,R11
27261 XOR     @R1,R11
27262 BIT     #$400,R11
27263 0= ?GOTO BW1
27264 XOR #$400,0(R1)
27265 SUB #8,R15
27266 MOV R14,6(R15)
27267 MOV &$1DDC,4(R15)
27268 MOV #$10,&$1DDC
27269 MOV R9,0(R15)
27270 MOV #0,R14
27271 LO2HI
27272     LCD_CLEAR
27273     <# # #S #36 HOLD #>
27274     ['] LCD_WRC IS EMIT
27275     TYPE
27276     ['] EMIT >BODY IS EMIT
27277 HI2LO
27278 MOV @R15+,&$1DDC
27279 MOV @R15+,R14
27280 MOV @R1+,R0
27281 ENDASM
27282
27283 ASM BACKGROUND
27284 BEGIN
27285     CALL &$1814
27286     BIS &$180A,R2
27287 AGAIN
27288 ENDASM
27289
27290 ASM SYS_OUT
27291     MOV #WARM,R9
27292     ADD #4,R9
27293     MOV R9,R0
27294 ENDASM
27295
27296 CODE STOP
27297 BW1 MOV #$4000,R9
27298     ADD #4,R9
27299     MOV R9,-2(R9)
27300     MOV #WARM,R9
27301     MOV #SYS_OUT,2(R9)
27302     BIC.B #4,&$20A
27303     BIC.B #4,&$20C
27304     MOV #0,&$3C0
27305     MOV #0,&$340
27306     MOV #0,&$342
27307     CALL #$400E
27308 COLON
27309 ECHO
27310 ." RC5toLCD is removed,"
27311 ."  type START to restart"
27312  WARM
27313 ;
27314
27315 CODE SYS_INIT
27316 MOV #%10_1101_0100,&$3C0
27317 $1806 @ 16000 = [IF]
27318     MOV #1,&$3E0
27319 [THEN]
27320 $1806 @ 24000 = [IF]
27321     MOV #2,&$3E0
27322 [THEN]
27323     MOV #19,&$3D2
27324 MOV #%0110_0000,&$3C6
27325     MOV #10,&$3D6
27326     BIS.B #$20,&$204
27327     BIS.B #$20,&$20A
27328     BIS.B #7,&$245
27329     BIC.B #7,&$247
27330     BIS.B #$0F,&$224
27331     BIC.B #$0F,&$226
27332     BIS.B #4,&$20A
27333     BIC.B #4,&$20C
27334     MOV #RC5_INT,&$FFDE
27335 MOV #%01_0001_0100,&$340
27336     MOV ##3276,&$352
27337     MOV #%10000,&$342
27338     MOV #WDT_INT,&$FFEA
27339 BIC #1,&$130
27340 BIS.B #3,&$20D
27341 MOV &$1808,R8
27342 CMP #4,R8
27343 0= ?GOTO BW1
27344 COLON
27345     #1000 20_US
27346     %011 TOP_LCD
27347     #205 20_US
27348     %011 TOP_LCD
27349     #5 20_US
27350     %011 TOP_LCD
27351     #2 20_US
27352     %010 TOP_LCD
27353     #2 20_US
27354     %00101000 LCD_WRF
27355     %1000 LCD_WRF
27356     LCD_CLEAR
27357     %0110 LCD_WRF
27358     %1100 LCD_WRF
27359     LCD_CLEAR
27360     ['] LCD_HOME IS CR
27361     ['] LCD_WRC  IS EMIT
27362     CR ." I love you"
27363     ['] CR >BODY IS CR
27364     ['] EMIT >BODY IS EMIT
27365     ." RC5toLCD is running. Type STOP to quit"
27366     PWR_STATE ABORT
27367 ;
27368
27369 CODE START
27370 MOV #$4000,R9
27371 MOV #BACKGROUND,2(R9)
27372 MOV #WARM,R9
27373 MOV #SYS_INIT,2(R9)
27374 MOV R9,R0
27375 ENDCODE 
27376
27377 ECHO
27378             ; downloading RC5toLCD.4th is done
27379 RST_HERE    ; this app is protected against <reset>
27380
27381
27382 RST_STATE
27383
27384 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
27385
27386 [UNDEFINED] MARKER [IF]
27387 : MARKER
27388 CREATE
27389 HI2LO
27390 MOV &$1DC8,0(R10)
27391 SUB #2,R8
27392 MOV R8,2(R10)
27393 ADD #4,&$1DC6
27394 LO2HI
27395 DOES>
27396 HI2LO
27397 MOV @R1+,R13
27398 MOV @R14+,&$180E
27399 MOV @R14,&$180C
27400 MOV @R15+,R14
27401 MOV #RST_STATE,R0
27402 ENDCODE
27403 [THEN]
27404
27405 MARKER {RC5TOLCD}
27406
27407 [UNDEFINED] @ [IF]
27408 CODE @
27409 MOV @R14,R14
27410 MOV @R13+,R0
27411 ENDCODE
27412 [THEN]
27413
27414 [UNDEFINED] CONSTANT [IF]
27415 : CONSTANT 
27416 CREATE
27417 HI2LO
27418 MOV R14,-2(R10)
27419 MOV @R15+,R14
27420 MOV @R1+,R13
27421 MOV @R13+,R0
27422 ENDCODE
27423 [THEN]
27424
27425 [UNDEFINED] STATE [IF]
27426 $1DBE CONSTANT STATE
27427 [THEN]
27428
27429 [UNDEFINED] = [IF]
27430 CODE =
27431 SUB @R15+,R14
27432 0<> IF
27433     AND #0,R14
27434     MOV @R13+,R0
27435 THEN
27436 XOR #-1,R14
27437 MOV @R13+,R0
27438 ENDCODE
27439 [THEN]
27440
27441 [UNDEFINED] IF [IF]
27442 CODE IF
27443 SUB #2,R15
27444 MOV R14,0(R15)
27445 MOV &$1DC6,R14
27446 ADD #4,&$1DC6
27447 MOV #$404C,0(R14)
27448 ADD #2,R14
27449 MOV @R13+,R0
27450 ENDCODE IMMEDIATE
27451 [THEN]
27452
27453 [UNDEFINED] THEN [IF]
27454 CODE THEN
27455 MOV &$1DC6,0(R14)
27456 MOV @R15+,R14
27457 MOV @R13+,R0
27458 ENDCODE IMMEDIATE
27459 [THEN]
27460
27461 [UNDEFINED] ELSE [IF]
27462 CODE ELSE
27463 ADD #4,&$1DC6
27464 MOV &$1DC6,R10
27465 MOV #$4048,-4(R10)
27466 MOV R10,0(R14)
27467 SUB #2,R10
27468 MOV R10,R14
27469 MOV @R13+,R0
27470 ENDCODE IMMEDIATE
27471 [THEN]
27472
27473 [UNDEFINED] DEFER [IF]
27474
27475 : DEFER
27476 CREATE
27477 HI2LO
27478 MOV #$4030,-4(R10)
27479 MOV #$402C,-2(R10)
27480 MOV @R1+,R13
27481 MOV @R13+,R0
27482 ENDCODE
27483 [THEN]
27484
27485 [UNDEFINED] DEFER! [IF]
27486 CODE DEFER!
27487 MOV @R15+,2(R14)
27488 MOV @R15+,R14
27489 MOV @R13+,R0
27490 ENDCODE
27491 [THEN]
27492
27493 [UNDEFINED] IS [IF]
27494 : IS
27495 STATE @
27496 IF  POSTPONE ['] POSTPONE DEFER! 
27497 ELSE ' DEFER! 
27498 THEN
27499 ; IMMEDIATE
27500 [THEN]
27501
27502 [UNDEFINED] >BODY [IF]
27503 CODE >BODY
27504 ADD #4,R14
27505 MOV @R13+,R0
27506 ENDCODE
27507 [THEN]
27508
27509
27510 CODE 20_US
27511 BEGIN
27512     BEGIN
27513         BIT #1,&$3C0
27514     0<> UNTIL
27515     BIC #1,&$3C0
27516     SUB #1,R14
27517 U< UNTIL
27518 MOV @R15+,R14
27519 MOV @R13+,R0
27520 ENDCODE
27521
27522 CODE TOP_LCD
27523     BIS.B #4,&$243
27524     BIT.B #1,&$241
27525 0= IF
27526     AND.B #$0F,R14
27527     MOV.B R14,&$222
27528     BIC.B #4,&$243
27529     MOV @R15+,R14
27530     MOV @R13+,R0
27531 THEN
27532     SUB #2,R15
27533     MOV R14,0(R15)
27534     BIC.B #4,&$243
27535     MOV.B &$220,R14
27536     AND.B #$0F,R14
27537     MOV @R13+,R0
27538 ENDCODE
27539
27540 CODE LCD_WRC
27541     BIS.B #2,&$243
27542 BW1 SUB #2,R15
27543     MOV R14,0(R15)
27544     RRUM #4,R14
27545     BIC.B #1,&$243
27546     BIS.B #$0F,&$224
27547 COLON
27548     TOP_LCD 2 20_US
27549     TOP_LCD 2 20_US 
27550 ;
27551
27552 CODE LCD_WRF
27553     BIC.B #2,&$243
27554     GOTO BW1
27555 ENDCODE
27556
27557 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
27558 : LCD_HOME $02 LCD_WRF 100 20_us ;
27559
27560
27561
27562 ASM WDT_INT
27563 ADD #2,R1
27564 BIT.B #$20,&$240
27565 0= IF
27566     CMP #19,&$3D6
27567     U< IF
27568         ADD #1,&$3D6
27569     THEN
27570 ELSE
27571     BIT.B #$40,&$240
27572     0= IF
27573         CMP #3,&$3D6
27574         U>= IF
27575            SUB #1,&$3D6
27576         THEN
27577     THEN
27578 THEN
27579 BW1
27580 MOV @R1+,R0
27581 ENDASM
27582
27583 ASM RC5_INT
27584 ADD #2,R1
27585 $1806 @ 16000 = [IF]
27586     MOV #1,&$3A0
27587 [THEN]
27588 $1806 @ 24000 = [IF]
27589     MOV #2,&$3A0
27590 [THEN]
27591 MOV #1778,R9
27592 MOV #14,R10
27593 BEGIN
27594 MOV #%1011100100,&$380
27595     RRUM    #1,R9
27596     MOV     R9,R8
27597     RRUM    #1,R8
27598     ADD     R9,R8
27599     BEGIN   CMP R8,&$390
27600     U>= UNTIL
27601     BIT.B   #4,&$200
27602     ADDC    R11,R11
27603     MOV.B   &$200,&$208
27604     BIC.B   #4,&$20C
27605     SUB     #1,R10
27606 0<> WHILE
27607     ADD R9,R8
27608     BEGIN
27609         MOV &$390,R9
27610         CMP R8,R9
27611         U>= IF
27612         BIC #$30,&$380
27613         GOTO BW1
27614         THEN
27615         BIT.B #4,&$20C
27616     0<> UNTIL
27617 REPEAT
27618 BIC #$30,&$380
27619 RLAM    #1,R11
27620 MOV.B   R11,R9
27621 RRUM    #2,R9
27622 BIT     #$4000,R11
27623 0= IF   BIS #$40,R9
27624 THEN
27625 RRUM    #3,R11
27626 XOR     @R1,R11
27627 BIT     #$400,R11
27628 0= ?GOTO BW1
27629 XOR #$400,0(R1)
27630 SUB #8,R15
27631 MOV R14,6(R15)
27632 MOV &$1DDC,4(R15)
27633 MOV #$10,&$1DDC
27634 MOV R9,0(R15)
27635 MOV #0,R14
27636 LO2HI
27637     LCD_CLEAR
27638     <# # #S #36 HOLD #>
27639     ['] LCD_WRC IS EMIT
27640     TYPE
27641     ['] EMIT >BODY IS EMIT
27642 HI2LO
27643 MOV @R15+,&$1DDC
27644 MOV @R15+,R14
27645 MOV @R1+,R0
27646 ENDASM
27647
27648 ASM BACKGROUND
27649 BEGIN
27650     CALL &$1814
27651     BIS &$180A,R2
27652 AGAIN
27653 ENDASM
27654
27655 ASM SYS_OUT
27656     MOV #WARM,R9
27657     ADD #4,R9
27658     MOV R9,R0
27659 ENDASM
27660
27661 CODE STOP
27662 BW1 MOV #$4000,R9
27663     ADD #4,R9
27664     MOV R9,-2(R9)
27665     MOV #WARM,R9
27666     MOV #SYS_OUT,2(R9)
27667     BIC.B #4,&$20A
27668     BIC.B #4,&$20C
27669     MOV #0,&$3C0
27670     MOV #0,&$340
27671     MOV #0,&$342
27672     CALL #$400E
27673 COLON
27674 ECHO
27675 ." RC5toLCD is removed,"
27676 ."  type START to restart"
27677  WARM
27678 ;
27679
27680 CODE SYS_INIT
27681 MOV #%10_1101_0100,&$3C0
27682 $1806 @ 16000 = [IF]
27683     MOV #1,&$3E0
27684 [THEN]
27685 $1806 @ 24000 = [IF]
27686     MOV #2,&$3E0
27687 [THEN]
27688     MOV #19,&$3D2
27689 MOV #%0110_0000,&$3C6
27690     MOV #10,&$3D6
27691     BIS.B #$20,&$204
27692     BIS.B #$20,&$20A
27693     BIS.B #7,&$245
27694     BIC.B #7,&$247
27695     BIS.B #$0F,&$224
27696     BIC.B #$0F,&$226
27697     BIS.B #4,&$20A
27698     BIC.B #4,&$20C
27699     MOV #RC5_INT,&$FFDE
27700 MOV #%01_0001_0100,&$340
27701     MOV ##3276,&$352
27702     MOV #%10000,&$342
27703     MOV #WDT_INT,&$FFEA
27704 BIC #1,&$130
27705 BIS.B #3,&$20D
27706 MOV &$1808,R8
27707 CMP #4,R8
27708 0= ?GOTO BW1
27709 COLON
27710     #1000 20_US
27711     %011 TOP_LCD
27712     #205 20_US
27713     %011 TOP_LCD
27714     #5 20_US
27715     %011 TOP_LCD
27716     #2 20_US
27717     %010 TOP_LCD
27718     #2 20_US
27719     %00101000 LCD_WRF
27720     %1000 LCD_WRF
27721     LCD_CLEAR
27722     %0110 LCD_WRF
27723     %1100 LCD_WRF
27724     LCD_CLEAR
27725     ['] LCD_HOME IS CR
27726     ['] LCD_WRC  IS EMIT
27727     CR ." I love you"
27728     ['] CR >BODY IS CR
27729     ['] EMIT >BODY IS EMIT
27730     ." RC5toLCD is running. Type STOP to quit"
27731     PWR_STATE ABORT
27732 ;
27733
27734 CODE START
27735 MOV #$4000,R9
27736 MOV #BACKGROUND,2(R9)
27737 MOV #WARM,R9
27738 MOV #SYS_INIT,2(R9)
27739 MOV R9,R0
27740 ENDCODE 
27741
27742 ECHO
27743             ; downloading RC5toLCD.4th is done
27744 RST_HERE    ; this app is protected against <reset>
27745
27746
27747 RST_STATE
27748
27749 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
27750
27751 [UNDEFINED] MARKER [IF]
27752 : MARKER
27753 CREATE
27754 HI2LO
27755 MOV &$1DC8,0(R10)
27756 SUB #2,R8
27757 MOV R8,2(R10)
27758 ADD #4,&$1DC6
27759 LO2HI
27760 DOES>
27761 HI2LO
27762 MOV @R1+,R13
27763 MOV @R14+,&$180E
27764 MOV @R14,&$180C
27765 MOV @R15+,R14
27766 MOV #RST_STATE,R0
27767 ENDCODE
27768 [THEN]
27769
27770 MARKER {RC5TOLCD}
27771
27772 [UNDEFINED] @ [IF]
27773 CODE @
27774 MOV @R14,R14
27775 MOV @R13+,R0
27776 ENDCODE
27777 [THEN]
27778
27779 [UNDEFINED] CONSTANT [IF]
27780 : CONSTANT 
27781 CREATE
27782 HI2LO
27783 MOV R14,-2(R10)
27784 MOV @R15+,R14
27785 MOV @R1+,R13
27786 MOV @R13+,R0
27787 ENDCODE
27788 [THEN]
27789
27790 [UNDEFINED] STATE [IF]
27791 $1DBE CONSTANT STATE
27792 [THEN]
27793
27794 [UNDEFINED] = [IF]
27795 CODE =
27796 SUB @R15+,R14
27797 0<> IF
27798     AND #0,R14
27799     MOV @R13+,R0
27800 THEN
27801 XOR #-1,R14
27802 MOV @R13+,R0
27803 ENDCODE
27804 [THEN]
27805
27806 [UNDEFINED] IF [IF]
27807 CODE IF
27808 SUB #2,R15
27809 MOV R14,0(R15)
27810 MOV &$1DC6,R14
27811 ADD #4,&$1DC6
27812 MOV #$404C,0(R14)
27813 ADD #2,R14
27814 MOV @R13+,R0
27815 ENDCODE IMMEDIATE
27816 [THEN]
27817
27818 [UNDEFINED] THEN [IF]
27819 CODE THEN
27820 MOV &$1DC6,0(R14)
27821 MOV @R15+,R14
27822 MOV @R13+,R0
27823 ENDCODE IMMEDIATE
27824 [THEN]
27825
27826 [UNDEFINED] ELSE [IF]
27827 CODE ELSE
27828 ADD #4,&$1DC6
27829 MOV &$1DC6,R10
27830 MOV #$4048,-4(R10)
27831 MOV R10,0(R14)
27832 SUB #2,R10
27833 MOV R10,R14
27834 MOV @R13+,R0
27835 ENDCODE IMMEDIATE
27836 [THEN]
27837
27838 [UNDEFINED] DEFER [IF]
27839
27840 : DEFER
27841 CREATE
27842 HI2LO
27843 MOV #$4030,-4(R10)
27844 MOV #$402C,-2(R10)
27845 MOV @R1+,R13
27846 MOV @R13+,R0
27847 ENDCODE
27848 [THEN]
27849
27850 [UNDEFINED] DEFER! [IF]
27851 CODE DEFER!
27852 MOV @R15+,2(R14)
27853 MOV @R15+,R14
27854 MOV @R13+,R0
27855 ENDCODE
27856 [THEN]
27857
27858 [UNDEFINED] IS [IF]
27859 : IS
27860 STATE @
27861 IF  POSTPONE ['] POSTPONE DEFER! 
27862 ELSE ' DEFER! 
27863 THEN
27864 ; IMMEDIATE
27865 [THEN]
27866
27867 [UNDEFINED] >BODY [IF]
27868 CODE >BODY
27869 ADD #4,R14
27870 MOV @R13+,R0
27871 ENDCODE
27872 [THEN]
27873
27874
27875 CODE 20_US
27876 BEGIN
27877     BEGIN
27878         BIT #1,&$3C0
27879     0<> UNTIL
27880     BIC #1,&$3C0
27881     SUB #1,R14
27882 U< UNTIL
27883 MOV @R15+,R14
27884 MOV @R13+,R0
27885 ENDCODE
27886
27887 CODE TOP_LCD
27888     BIS.B #4,&$243
27889     BIT.B #1,&$241
27890 0= IF
27891     AND.B #$0F,R14
27892     MOV.B R14,&$222
27893     BIC.B #4,&$243
27894     MOV @R15+,R14
27895     MOV @R13+,R0
27896 THEN
27897     SUB #2,R15
27898     MOV R14,0(R15)
27899     BIC.B #4,&$243
27900     MOV.B &$220,R14
27901     AND.B #$0F,R14
27902     MOV @R13+,R0
27903 ENDCODE
27904
27905 CODE LCD_WRC
27906     BIS.B #2,&$243
27907 BW1 SUB #2,R15
27908     MOV R14,0(R15)
27909     RRUM #4,R14
27910     BIC.B #1,&$243
27911     BIS.B #$0F,&$224
27912 COLON
27913     TOP_LCD 2 20_US
27914     TOP_LCD 2 20_US 
27915 ;
27916
27917 CODE LCD_WRF
27918     BIC.B #2,&$243
27919     GOTO BW1
27920 ENDCODE
27921
27922 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
27923 : LCD_HOME $02 LCD_WRF 100 20_us ;
27924
27925
27926
27927 ASM WDT_INT
27928 ADD #2,R1
27929 BIT.B #$20,&$240
27930 0= IF
27931     CMP #19,&$3D6
27932     U< IF
27933         ADD #1,&$3D6
27934     THEN
27935 ELSE
27936     BIT.B #$40,&$240
27937     0= IF
27938         CMP #3,&$3D6
27939         U>= IF
27940            SUB #1,&$3D6
27941         THEN
27942     THEN
27943 THEN
27944 BW1
27945 MOV @R1+,R0
27946 ENDASM
27947
27948 ASM RC5_INT
27949 ADD #2,R1
27950 $1806 @ 16000 = [IF]
27951     MOV #1,&$3A0
27952 [THEN]
27953 $1806 @ 24000 = [IF]
27954     MOV #2,&$3A0
27955 [THEN]
27956 MOV #1778,R9
27957 MOV #14,R10
27958 BEGIN
27959 MOV #%1011100100,&$380
27960     RRUM    #1,R9
27961     MOV     R9,R8
27962     RRUM    #1,R8
27963     ADD     R9,R8
27964     BEGIN   CMP R8,&$390
27965     U>= UNTIL
27966     BIT.B   #4,&$200
27967     ADDC    R11,R11
27968     MOV.B   &$200,&$208
27969     BIC.B   #4,&$20C
27970     SUB     #1,R10
27971 0<> WHILE
27972     ADD R9,R8
27973     BEGIN
27974         MOV &$390,R9
27975         CMP R8,R9
27976         U>= IF
27977         BIC #$30,&$380
27978         GOTO BW1
27979         THEN
27980         BIT.B #4,&$20C
27981     0<> UNTIL
27982 REPEAT
27983 BIC #$30,&$380
27984 RLAM    #1,R11
27985 MOV.B   R11,R9
27986 RRUM    #2,R9
27987 BIT     #$4000,R11
27988 0= IF   BIS #$40,R9
27989 THEN
27990 RRUM    #3,R11
27991 XOR     @R1,R11
27992 BIT     #$400,R11
27993 0= ?GOTO BW1
27994 XOR #$400,0(R1)
27995 SUB #8,R15
27996 MOV R14,6(R15)
27997 MOV &$1DDC,4(R15)
27998 MOV #$10,&$1DDC
27999 MOV R9,0(R15)
28000 MOV #0,R14
28001 LO2HI
28002     LCD_CLEAR
28003     <# # #S #36 HOLD #>
28004     ['] LCD_WRC IS EMIT
28005     TYPE
28006     ['] EMIT >BODY IS EMIT
28007 HI2LO
28008 MOV @R15+,&$1DDC
28009 MOV @R15+,R14
28010 MOV @R1+,R0
28011 ENDASM
28012
28013 ASM BACKGROUND
28014 BEGIN
28015     CALL &$1814
28016     BIS &$180A,R2
28017 AGAIN
28018 ENDASM
28019
28020 ASM SYS_OUT
28021     MOV #WARM,R9
28022     ADD #4,R9
28023     MOV R9,R0
28024 ENDASM
28025
28026 CODE STOP
28027 BW1 MOV #$4000,R9
28028     ADD #4,R9
28029     MOV R9,-2(R9)
28030     MOV #WARM,R9
28031     MOV #SYS_OUT,2(R9)
28032     BIC.B #4,&$20A
28033     BIC.B #4,&$20C
28034     MOV #0,&$3C0
28035     MOV #0,&$340
28036     MOV #0,&$342
28037     CALL #$400E
28038 COLON
28039 ECHO
28040 ." RC5toLCD is removed,"
28041 ."  type START to restart"
28042  WARM
28043 ;
28044
28045 CODE SYS_INIT
28046 MOV #%10_1101_0100,&$3C0
28047 $1806 @ 16000 = [IF]
28048     MOV #1,&$3E0
28049 [THEN]
28050 $1806 @ 24000 = [IF]
28051     MOV #2,&$3E0
28052 [THEN]
28053     MOV #19,&$3D2
28054 MOV #%0110_0000,&$3C6
28055     MOV #10,&$3D6
28056     BIS.B #$20,&$204
28057     BIS.B #$20,&$20A
28058     BIS.B #7,&$245
28059     BIC.B #7,&$247
28060     BIS.B #$0F,&$224
28061     BIC.B #$0F,&$226
28062     BIS.B #4,&$20A
28063     BIC.B #4,&$20C
28064     MOV #RC5_INT,&$FFDE
28065 MOV #%01_0001_0100,&$340
28066     MOV ##3276,&$352
28067     MOV #%10000,&$342
28068     MOV #WDT_INT,&$FFEA
28069 BIC #1,&$130
28070 BIS.B #3,&$20D
28071 MOV &$1808,R8
28072 CMP #4,R8
28073 0= ?GOTO BW1
28074 COLON
28075     #1000 20_US
28076     %011 TOP_LCD
28077     #205 20_US
28078     %011 TOP_LCD
28079     #5 20_US
28080     %011 TOP_LCD
28081     #2 20_US
28082     %010 TOP_LCD
28083     #2 20_US
28084     %00101000 LCD_WRF
28085     %1000 LCD_WRF
28086     LCD_CLEAR
28087     %0110 LCD_WRF
28088     %1100 LCD_WRF
28089     LCD_CLEAR
28090     ['] LCD_HOME IS CR
28091     ['] LCD_WRC  IS EMIT
28092     CR ." I love you"
28093     ['] CR >BODY IS CR
28094     ['] EMIT >BODY IS EMIT
28095     ." RC5toLCD is running. Type STOP to quit"
28096     PWR_STATE ABORT
28097 ;
28098
28099 CODE START
28100 MOV #$4000,R9
28101 MOV #BACKGROUND,2(R9)
28102 MOV #WARM,R9
28103 MOV #SYS_INIT,2(R9)
28104 MOV R9,R0
28105 ENDCODE 
28106
28107 ECHO
28108             ; downloading RC5toLCD.4th is done
28109 RST_HERE    ; this app is protected against <reset>
28110