OSDN Git Service

0cce85433a717f2bc92f5c5c36c6cfbeaabb37bd
[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 MARKER {RC5TOLCD}
12
13 CODE 20_US
14 BEGIN
15     BEGIN
16         BIT #1,&$3C0
17     0<> UNTIL
18     BIC #1,&$3C0
19     SUB #1,R14
20 U< UNTIL
21 MOV @R15+,R14
22 MOV @R13+,R0
23 ENDCODE
24
25 CODE TOP_LCD
26     BIS.B #4,&$243
27     BIT.B #1,&$241
28 0= IF
29     AND.B #$0F,R14
30     MOV.B R14,&$222
31     BIC.B #4,&$243
32     MOV @R15+,R14
33     MOV @R13+,R0
34 THEN
35     SUB #2,R15
36     MOV R14,0(R15)
37     BIC.B #4,&$243
38     MOV.B &$220,R14
39     AND.B #$0F,R14
40     MOV @R13+,R0
41 ENDCODE
42
43 CODE LCD_WRC
44     BIS.B #2,&$243
45 BW1 SUB #2,R15
46     MOV R14,0(R15)
47     RRUM #4,R14
48     BIC.B #1,&$243
49     BIS.B #$0F,&$224
50 COLON
51     TOP_LCD 2 20_US
52     TOP_LCD 2 20_US 
53 ;
54
55 CODE LCD_WRF
56     BIC.B #2,&$243
57     GOTO BW1
58 ENDCODE
59
60 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
61 : LCD_HOME $02 LCD_WRF 100 20_us ;
62
63
64
65 ASM WDT_INT
66 ADD #2,R1
67 BIT.B #$20,&$240
68 0= IF
69     CMP #19,&$3D6
70     U< IF
71         ADD #1,&$3D6
72     THEN
73 ELSE
74     BIT.B #$40,&$240
75     0= IF
76         CMP #3,&$3D6
77         U>= IF
78            SUB #1,&$3D6
79         THEN
80     THEN
81 THEN
82 BW1
83 MOV @R1+,R0
84 ENDASM
85
86 ASM RC5_INT
87 ADD #2,R1
88 $1806 @ 16000 = [IF]
89     MOV #1,&$3A0
90 [THEN]
91 $1806 @ 24000 = [IF]
92     MOV #2,&$3A0
93 [THEN]
94 MOV #1778,R9
95 MOV #14,R10
96 BEGIN
97 MOV #%1011100100,&$380
98     RRUM    #1,R9
99     MOV     R9,R8
100     RRUM    #1,R8
101     ADD     R9,R8
102     BEGIN   CMP R8,&$390
103     U>= UNTIL
104     BIT.B   #4,&$200
105     ADDC    R11,R11
106     MOV.B   &$200,&$208
107     BIC.B   #4,&$20C
108     SUB     #1,R10
109 0<> WHILE
110     ADD R9,R8
111     BEGIN
112         MOV &$390,R9
113         CMP R8,R9
114         U>= IF
115         BIC #$30,&$380
116         GOTO BW1
117         THEN
118         BIT.B #4,&$20C
119     0<> UNTIL
120 REPEAT
121 BIC #$30,&$380
122 RLAM    #1,R11
123 MOV.B   R11,R9
124 RRUM    #2,R9
125 BIT     #$4000,R11
126 0= IF   BIS #$40,R9
127 THEN
128 RRUM    #3,R11
129 XOR     @R1,R11
130 BIT     #$400,R11
131 0= ?GOTO BW1
132 XOR #$400,0(R1)
133 SUB #8,R15
134 MOV R14,6(R15)
135 MOV &$1DDC,4(R15)
136 MOV #$10,&$1DDC
137 MOV R9,0(R15)
138 MOV #0,R14
139 LO2HI
140     LCD_CLEAR
141     <# # #S #36 HOLD #>
142     ['] LCD_WRC IS EMIT
143     TYPE
144     ['] EMIT >BODY IS EMIT
145 HI2LO
146 MOV @R15+,&$1DDC
147 MOV @R15+,R14
148 MOV @R1+,R0
149 ENDASM
150
151 ASM BACKGROUND
152 BEGIN
153     CALL &$1814
154     BIS &$180A,R2
155 AGAIN
156 ENDASM
157
158 CODE STOP
159 BW1 MOV #SLEEP,R9
160     ADD #4,R9
161     MOV R9,-2(R9)
162 COLON
163 ['] WARM >BODY IS WARM
164 ECHO
165 ." RC5toLCD is removed. type START to restart"
166 COLD
167 ;
168
169 CODE APP_INIT
170 MOV #%1011010100,&$3C0
171 $1806 @ 16000 = [IF]
172     MOV #1,&$3E0
173 [THEN]
174 $1806 @ 24000 = [IF]
175     MOV #2,&$3E0
176 [THEN]
177     MOV #19,&$3D2
178     MOV #%01100000,&$3C6
179     MOV #10,&$3D6
180     BIS.B #$20,&$204
181     BIS.B #$20,&$20A
182     BIS.B #7,&$245
183     BIC.B #7,&$247
184     BIS.B #$0F,&$224
185     BIC.B #$0F,&$226
186     BIS.B #4,&$20A
187     BIC.B #4,&$20C
188     MOV #RC5_INT,&$FFDE
189     MOV #%0100010100,&$340
190     MOV ##3276,&$352
191     MOV #%10000,&$342
192     MOV #WDT_INT,&$FFEA
193 BIC #1,&$130
194 BIS.B #3,&$20D
195 MOV &$1808,R8
196 CMP #4,R8
197 0= ?GOTO BW1
198 COLON
199     #1000 20_US
200     %011 TOP_LCD
201     #205 20_US
202     %011 TOP_LCD
203     #5 20_US
204     %011 TOP_LCD
205     #2 20_US
206     %010 TOP_LCD
207     #2 20_US
208     %00101000 LCD_WRF
209     %1000 LCD_WRF
210     LCD_CLEAR
211     %0110 LCD_WRF
212     %1100 LCD_WRF
213     LCD_CLEAR
214     ['] LCD_HOME IS CR
215     ['] LCD_WRC  IS EMIT
216     CR ." I love you"
217     ['] CR >BODY IS CR
218     ['] EMIT >BODY IS EMIT
219     ." RC5toLCD is running. Type STOP to quit"
220     ABORT
221 ;
222
223 CODE START
224 MOV #SLEEP,R9
225 MOV #BACKGROUND,2(R9)
226 MOV #WARM,R9
227 MOV #APP_INIT,2(R9)
228 MOV R9,R0
229 ENDCODE 
230
231 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
232
233 MARKER {RC5TOLCD}
234
235 CODE 20_US
236 BEGIN
237     BEGIN
238         BIT #1,&$3C0
239     0<> UNTIL
240     BIC #1,&$3C0
241     SUB #1,R14
242 U< UNTIL
243 MOV @R15+,R14
244 MOV @R13+,R0
245 ENDCODE
246
247 CODE TOP_LCD
248     BIS.B #4,&$243
249     BIT.B #1,&$241
250 0= IF
251     AND.B #$0F,R14
252     MOV.B R14,&$222
253     BIC.B #4,&$243
254     MOV @R15+,R14
255     MOV @R13+,R0
256 THEN
257     SUB #2,R15
258     MOV R14,0(R15)
259     BIC.B #4,&$243
260     MOV.B &$220,R14
261     AND.B #$0F,R14
262     MOV @R13+,R0
263 ENDCODE
264
265 CODE LCD_WRC
266     BIS.B #2,&$243
267 BW1 SUB #2,R15
268     MOV R14,0(R15)
269     RRUM #4,R14
270     BIC.B #1,&$243
271     BIS.B #$0F,&$224
272 COLON
273     TOP_LCD 2 20_US
274     TOP_LCD 2 20_US 
275 ;
276
277 CODE LCD_WRF
278     BIC.B #2,&$243
279     GOTO BW1
280 ENDCODE
281
282 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
283 : LCD_HOME $02 LCD_WRF 100 20_us ;
284
285
286
287 ASM WDT_INT
288 ADD #2,R1
289 BIT.B #$20,&$240
290 0= IF
291     CMP #19,&$3D6
292     U< IF
293         ADD #1,&$3D6
294     THEN
295 ELSE
296     BIT.B #$40,&$240
297     0= IF
298         CMP #3,&$3D6
299         U>= IF
300            SUB #1,&$3D6
301         THEN
302     THEN
303 THEN
304 BW1
305 MOV @R1+,R0
306 ENDASM
307
308 ASM RC5_INT
309 ADD #2,R1
310 $1806 @ 16000 = [IF]
311     MOV #1,&$3A0
312 [THEN]
313 $1806 @ 24000 = [IF]
314     MOV #2,&$3A0
315 [THEN]
316 MOV #1778,R9
317 MOV #14,R10
318 BEGIN
319 MOV #%1011100100,&$380
320     RRUM    #1,R9
321     MOV     R9,R8
322     RRUM    #1,R8
323     ADD     R9,R8
324     BEGIN   CMP R8,&$390
325     U>= UNTIL
326     BIT.B   #4,&$200
327     ADDC    R11,R11
328     MOV.B   &$200,&$208
329     BIC.B   #4,&$20C
330     SUB     #1,R10
331 0<> WHILE
332     ADD R9,R8
333     BEGIN
334         MOV &$390,R9
335         CMP R8,R9
336         U>= IF
337         BIC #$30,&$380
338         GOTO BW1
339         THEN
340         BIT.B #4,&$20C
341     0<> UNTIL
342 REPEAT
343 BIC #$30,&$380
344 RLAM    #1,R11
345 MOV.B   R11,R9
346 RRUM    #2,R9
347 BIT     #$4000,R11
348 0= IF   BIS #$40,R9
349 THEN
350 RRUM    #3,R11
351 XOR     @R1,R11
352 BIT     #$400,R11
353 0= ?GOTO BW1
354 XOR #$400,0(R1)
355 SUB #8,R15
356 MOV R14,6(R15)
357 MOV &$1DDC,4(R15)
358 MOV #$10,&$1DDC
359 MOV R9,0(R15)
360 MOV #0,R14
361 LO2HI
362     LCD_CLEAR
363     <# # #S #36 HOLD #>
364     ['] LCD_WRC IS EMIT
365     TYPE
366     ['] EMIT >BODY IS EMIT
367 HI2LO
368 MOV @R15+,&$1DDC
369 MOV @R15+,R14
370 MOV @R1+,R0
371 ENDASM
372
373 ASM BACKGROUND
374 BEGIN
375     CALL &$1814
376     BIS &$180A,R2
377 AGAIN
378 ENDASM
379
380 CODE STOP
381 BW1 MOV #SLEEP,R9
382     ADD #4,R9
383     MOV R9,-2(R9)
384 COLON
385 ['] WARM >BODY IS WARM
386 ECHO
387 ." RC5toLCD is removed. type START to restart"
388 COLD
389 ;
390
391 CODE APP_INIT
392 MOV #%1011010100,&$3C0
393 $1806 @ 16000 = [IF]
394     MOV #1,&$3E0
395 [THEN]
396 $1806 @ 24000 = [IF]
397     MOV #2,&$3E0
398 [THEN]
399     MOV #19,&$3D2
400     MOV #%01100000,&$3C6
401     MOV #10,&$3D6
402     BIS.B #$20,&$204
403     BIS.B #$20,&$20A
404     BIS.B #7,&$245
405     BIC.B #7,&$247
406     BIS.B #$0F,&$224
407     BIC.B #$0F,&$226
408     BIS.B #4,&$20A
409     BIC.B #4,&$20C
410     MOV #RC5_INT,&$FFDE
411     MOV #%0100010100,&$340
412     MOV ##3276,&$352
413     MOV #%10000,&$342
414     MOV #WDT_INT,&$FFEA
415 BIC #1,&$130
416 BIS.B #3,&$20D
417 MOV &$1808,R8
418 CMP #4,R8
419 0= ?GOTO BW1
420 COLON
421     #1000 20_US
422     %011 TOP_LCD
423     #205 20_US
424     %011 TOP_LCD
425     #5 20_US
426     %011 TOP_LCD
427     #2 20_US
428     %010 TOP_LCD
429     #2 20_US
430     %00101000 LCD_WRF
431     %1000 LCD_WRF
432     LCD_CLEAR
433     %0110 LCD_WRF
434     %1100 LCD_WRF
435     LCD_CLEAR
436     ['] LCD_HOME IS CR
437     ['] LCD_WRC  IS EMIT
438     CR ." I love you"
439     ['] CR >BODY IS CR
440     ['] EMIT >BODY IS EMIT
441     ." RC5toLCD is running. Type STOP to quit"
442     ABORT
443 ;
444
445 CODE START
446 MOV #SLEEP,R9
447 MOV #BACKGROUND,2(R9)
448 MOV #WARM,R9
449 MOV #APP_INIT,2(R9)
450 MOV R9,R0
451 ENDCODE 
452
453 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
454
455 MARKER {RC5TOLCD}
456
457 CODE 20_US
458 BEGIN
459     BEGIN
460         BIT #1,&$3C0
461     0<> UNTIL
462     BIC #1,&$3C0
463     SUB #1,R14
464 U< UNTIL
465 MOV @R15+,R14
466 MOV @R13+,R0
467 ENDCODE
468
469 CODE TOP_LCD
470     BIS.B #4,&$243
471     BIT.B #1,&$241
472 0= IF
473     AND.B #$0F,R14
474     MOV.B R14,&$222
475     BIC.B #4,&$243
476     MOV @R15+,R14
477     MOV @R13+,R0
478 THEN
479     SUB #2,R15
480     MOV R14,0(R15)
481     BIC.B #4,&$243
482     MOV.B &$220,R14
483     AND.B #$0F,R14
484     MOV @R13+,R0
485 ENDCODE
486
487 CODE LCD_WRC
488     BIS.B #2,&$243
489 BW1 SUB #2,R15
490     MOV R14,0(R15)
491     RRUM #4,R14
492     BIC.B #1,&$243
493     BIS.B #$0F,&$224
494 COLON
495     TOP_LCD 2 20_US
496     TOP_LCD 2 20_US 
497 ;
498
499 CODE LCD_WRF
500     BIC.B #2,&$243
501     GOTO BW1
502 ENDCODE
503
504 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
505 : LCD_HOME $02 LCD_WRF 100 20_us ;
506
507
508
509 ASM WDT_INT
510 ADD #2,R1
511 BIT.B #$20,&$240
512 0= IF
513     CMP #19,&$3D6
514     U< IF
515         ADD #1,&$3D6
516     THEN
517 ELSE
518     BIT.B #$40,&$240
519     0= IF
520         CMP #3,&$3D6
521         U>= IF
522            SUB #1,&$3D6
523         THEN
524     THEN
525 THEN
526 BW1
527 MOV @R1+,R0
528 ENDASM
529
530 ASM RC5_INT
531 ADD #2,R1
532 $1806 @ 16000 = [IF]
533     MOV #1,&$3A0
534 [THEN]
535 $1806 @ 24000 = [IF]
536     MOV #2,&$3A0
537 [THEN]
538 MOV #1778,R9
539 MOV #14,R10
540 BEGIN
541 MOV #%1011100100,&$380
542     RRUM    #1,R9
543     MOV     R9,R8
544     RRUM    #1,R8
545     ADD     R9,R8
546     BEGIN   CMP R8,&$390
547     U>= UNTIL
548     BIT.B   #4,&$200
549     ADDC    R11,R11
550     MOV.B   &$200,&$208
551     BIC.B   #4,&$20C
552     SUB     #1,R10
553 0<> WHILE
554     ADD R9,R8
555     BEGIN
556         MOV &$390,R9
557         CMP R8,R9
558         U>= IF
559         BIC #$30,&$380
560         GOTO BW1
561         THEN
562         BIT.B #4,&$20C
563     0<> UNTIL
564 REPEAT
565 BIC #$30,&$380
566 RLAM    #1,R11
567 MOV.B   R11,R9
568 RRUM    #2,R9
569 BIT     #$4000,R11
570 0= IF   BIS #$40,R9
571 THEN
572 RRUM    #3,R11
573 XOR     @R1,R11
574 BIT     #$400,R11
575 0= ?GOTO BW1
576 XOR #$400,0(R1)
577 SUB #8,R15
578 MOV R14,6(R15)
579 MOV &$1DDC,4(R15)
580 MOV #$10,&$1DDC
581 MOV R9,0(R15)
582 MOV #0,R14
583 LO2HI
584     LCD_CLEAR
585     <# # #S #36 HOLD #>
586     ['] LCD_WRC IS EMIT
587     TYPE
588     ['] EMIT >BODY IS EMIT
589 HI2LO
590 MOV @R15+,&$1DDC
591 MOV @R15+,R14
592 MOV @R1+,R0
593 ENDASM
594
595 ASM BACKGROUND
596 BEGIN
597     CALL &$1814
598     BIS &$180A,R2
599 AGAIN
600 ENDASM
601
602 CODE STOP
603 BW1 MOV #SLEEP,R9
604     ADD #4,R9
605     MOV R9,-2(R9)
606 COLON
607 ['] WARM >BODY IS WARM
608 ECHO
609 ." RC5toLCD is removed. type START to restart"
610 COLD
611 ;
612
613 CODE APP_INIT
614 MOV #%1011010100,&$3C0
615 $1806 @ 16000 = [IF]
616     MOV #1,&$3E0
617 [THEN]
618 $1806 @ 24000 = [IF]
619     MOV #2,&$3E0
620 [THEN]
621     MOV #19,&$3D2
622     MOV #%01100000,&$3C6
623     MOV #10,&$3D6
624     BIS.B #$20,&$204
625     BIS.B #$20,&$20A
626     BIS.B #7,&$245
627     BIC.B #7,&$247
628     BIS.B #$0F,&$224
629     BIC.B #$0F,&$226
630     BIS.B #4,&$20A
631     BIC.B #4,&$20C
632     MOV #RC5_INT,&$FFDE
633     MOV #%0100010100,&$340
634     MOV ##3276,&$352
635     MOV #%10000,&$342
636     MOV #WDT_INT,&$FFEA
637 BIC #1,&$130
638 BIS.B #3,&$20D
639 MOV &$1808,R8
640 CMP #4,R8
641 0= ?GOTO BW1
642 COLON
643     #1000 20_US
644     %011 TOP_LCD
645     #205 20_US
646     %011 TOP_LCD
647     #5 20_US
648     %011 TOP_LCD
649     #2 20_US
650     %010 TOP_LCD
651     #2 20_US
652     %00101000 LCD_WRF
653     %1000 LCD_WRF
654     LCD_CLEAR
655     %0110 LCD_WRF
656     %1100 LCD_WRF
657     LCD_CLEAR
658     ['] LCD_HOME IS CR
659     ['] LCD_WRC  IS EMIT
660     CR ." I love you"
661     ['] CR >BODY IS CR
662     ['] EMIT >BODY IS EMIT
663     ." RC5toLCD is running. Type STOP to quit"
664     ABORT
665 ;
666
667 CODE START
668 MOV #SLEEP,R9
669 MOV #BACKGROUND,2(R9)
670 MOV #WARM,R9
671 MOV #APP_INIT,2(R9)
672 MOV R9,R0
673 ENDCODE 
674
675 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
676
677 MARKER {RC5TOLCD}
678
679 CODE 20_US
680 BEGIN
681     BEGIN
682         BIT #1,&$3C0
683     0<> UNTIL
684     BIC #1,&$3C0
685     SUB #1,R14
686 U< UNTIL
687 MOV @R15+,R14
688 MOV @R13+,R0
689 ENDCODE
690
691 CODE TOP_LCD
692     BIS.B #4,&$243
693     BIT.B #1,&$241
694 0= IF
695     AND.B #$0F,R14
696     MOV.B R14,&$222
697     BIC.B #4,&$243
698     MOV @R15+,R14
699     MOV @R13+,R0
700 THEN
701     SUB #2,R15
702     MOV R14,0(R15)
703     BIC.B #4,&$243
704     MOV.B &$220,R14
705     AND.B #$0F,R14
706     MOV @R13+,R0
707 ENDCODE
708
709 CODE LCD_WRC
710     BIS.B #2,&$243
711 BW1 SUB #2,R15
712     MOV R14,0(R15)
713     RRUM #4,R14
714     BIC.B #1,&$243
715     BIS.B #$0F,&$224
716 COLON
717     TOP_LCD 2 20_US
718     TOP_LCD 2 20_US 
719 ;
720
721 CODE LCD_WRF
722     BIC.B #2,&$243
723     GOTO BW1
724 ENDCODE
725
726 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
727 : LCD_HOME $02 LCD_WRF 100 20_us ;
728
729
730
731 ASM WDT_INT
732 ADD #2,R1
733 BIT.B #$20,&$240
734 0= IF
735     CMP #19,&$3D6
736     U< IF
737         ADD #1,&$3D6
738     THEN
739 ELSE
740     BIT.B #$40,&$240
741     0= IF
742         CMP #3,&$3D6
743         U>= IF
744            SUB #1,&$3D6
745         THEN
746     THEN
747 THEN
748 BW1
749 MOV @R1+,R0
750 ENDASM
751
752 ASM RC5_INT
753 ADD #2,R1
754 $1806 @ 16000 = [IF]
755     MOV #1,&$3A0
756 [THEN]
757 $1806 @ 24000 = [IF]
758     MOV #2,&$3A0
759 [THEN]
760 MOV #1778,R9
761 MOV #14,R10
762 BEGIN
763 MOV #%1011100100,&$380
764     RRUM    #1,R9
765     MOV     R9,R8
766     RRUM    #1,R8
767     ADD     R9,R8
768     BEGIN   CMP R8,&$390
769     U>= UNTIL
770     BIT.B   #4,&$200
771     ADDC    R11,R11
772     MOV.B   &$200,&$208
773     BIC.B   #4,&$20C
774     SUB     #1,R10
775 0<> WHILE
776     ADD R9,R8
777     BEGIN
778         MOV &$390,R9
779         CMP R8,R9
780         U>= IF
781         BIC #$30,&$380
782         GOTO BW1
783         THEN
784         BIT.B #4,&$20C
785     0<> UNTIL
786 REPEAT
787 BIC #$30,&$380
788 RLAM    #1,R11
789 MOV.B   R11,R9
790 RRUM    #2,R9
791 BIT     #$4000,R11
792 0= IF   BIS #$40,R9
793 THEN
794 RRUM    #3,R11
795 XOR     @R1,R11
796 BIT     #$400,R11
797 0= ?GOTO BW1
798 XOR #$400,0(R1)
799 SUB #8,R15
800 MOV R14,6(R15)
801 MOV &$1DDC,4(R15)
802 MOV #$10,&$1DDC
803 MOV R9,0(R15)
804 MOV #0,R14
805 LO2HI
806     LCD_CLEAR
807     <# # #S #36 HOLD #>
808     ['] LCD_WRC IS EMIT
809     TYPE
810     ['] EMIT >BODY IS EMIT
811 HI2LO
812 MOV @R15+,&$1DDC
813 MOV @R15+,R14
814 MOV @R1+,R0
815 ENDASM
816
817 ASM BACKGROUND
818 BEGIN
819     CALL &$1814
820     BIS &$180A,R2
821 AGAIN
822 ENDASM
823
824 CODE STOP
825 BW1 MOV #SLEEP,R9
826     ADD #4,R9
827     MOV R9,-2(R9)
828 COLON
829 ['] WARM >BODY IS WARM
830 ECHO
831 ." RC5toLCD is removed. type START to restart"
832 COLD
833 ;
834
835 CODE APP_INIT
836 MOV #%1011010100,&$3C0
837 $1806 @ 16000 = [IF]
838     MOV #1,&$3E0
839 [THEN]
840 $1806 @ 24000 = [IF]
841     MOV #2,&$3E0
842 [THEN]
843     MOV #19,&$3D2
844     MOV #%01100000,&$3C6
845     MOV #10,&$3D6
846     BIS.B #$20,&$204
847     BIS.B #$20,&$20A
848     BIS.B #7,&$245
849     BIC.B #7,&$247
850     BIS.B #$0F,&$224
851     BIC.B #$0F,&$226
852     BIS.B #4,&$20A
853     BIC.B #4,&$20C
854     MOV #RC5_INT,&$FFDE
855     MOV #%0100010100,&$340
856     MOV ##3276,&$352
857     MOV #%10000,&$342
858     MOV #WDT_INT,&$FFEA
859 BIC #1,&$130
860 BIS.B #3,&$20D
861 MOV &$1808,R8
862 CMP #4,R8
863 0= ?GOTO BW1
864 COLON
865     #1000 20_US
866     %011 TOP_LCD
867     #205 20_US
868     %011 TOP_LCD
869     #5 20_US
870     %011 TOP_LCD
871     #2 20_US
872     %010 TOP_LCD
873     #2 20_US
874     %00101000 LCD_WRF
875     %1000 LCD_WRF
876     LCD_CLEAR
877     %0110 LCD_WRF
878     %1100 LCD_WRF
879     LCD_CLEAR
880     ['] LCD_HOME IS CR
881     ['] LCD_WRC  IS EMIT
882     CR ." I love you"
883     ['] CR >BODY IS CR
884     ['] EMIT >BODY IS EMIT
885     ." RC5toLCD is running. Type STOP to quit"
886     ABORT
887 ;
888
889 CODE START
890 MOV #SLEEP,R9
891 MOV #BACKGROUND,2(R9)
892 MOV #WARM,R9
893 MOV #APP_INIT,2(R9)
894 MOV R9,R0
895 ENDCODE 
896
897 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
898
899 MARKER {RC5TOLCD}
900
901 CODE 20_US
902 BEGIN
903     BEGIN
904         BIT #1,&$3C0
905     0<> UNTIL
906     BIC #1,&$3C0
907     SUB #1,R14
908 U< UNTIL
909 MOV @R15+,R14
910 MOV @R13+,R0
911 ENDCODE
912
913 CODE TOP_LCD
914     BIS.B #4,&$243
915     BIT.B #1,&$241
916 0= IF
917     AND.B #$0F,R14
918     MOV.B R14,&$222
919     BIC.B #4,&$243
920     MOV @R15+,R14
921     MOV @R13+,R0
922 THEN
923     SUB #2,R15
924     MOV R14,0(R15)
925     BIC.B #4,&$243
926     MOV.B &$220,R14
927     AND.B #$0F,R14
928     MOV @R13+,R0
929 ENDCODE
930
931 CODE LCD_WRC
932     BIS.B #2,&$243
933 BW1 SUB #2,R15
934     MOV R14,0(R15)
935     RRUM #4,R14
936     BIC.B #1,&$243
937     BIS.B #$0F,&$224
938 COLON
939     TOP_LCD 2 20_US
940     TOP_LCD 2 20_US 
941 ;
942
943 CODE LCD_WRF
944     BIC.B #2,&$243
945     GOTO BW1
946 ENDCODE
947
948 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
949 : LCD_HOME $02 LCD_WRF 100 20_us ;
950
951
952
953 ASM WDT_INT
954 ADD #2,R1
955 BIT.B #$20,&$240
956 0= IF
957     CMP #19,&$3D6
958     U< IF
959         ADD #1,&$3D6
960     THEN
961 ELSE
962     BIT.B #$40,&$240
963     0= IF
964         CMP #3,&$3D6
965         U>= IF
966            SUB #1,&$3D6
967         THEN
968     THEN
969 THEN
970 BW1
971 MOV @R1+,R0
972 ENDASM
973
974 ASM RC5_INT
975 ADD #2,R1
976 $1806 @ 16000 = [IF]
977     MOV #1,&$3A0
978 [THEN]
979 $1806 @ 24000 = [IF]
980     MOV #2,&$3A0
981 [THEN]
982 MOV #1778,R9
983 MOV #14,R10
984 BEGIN
985 MOV #%1011100100,&$380
986     RRUM    #1,R9
987     MOV     R9,R8
988     RRUM    #1,R8
989     ADD     R9,R8
990     BEGIN   CMP R8,&$390
991     U>= UNTIL
992     BIT.B   #4,&$200
993     ADDC    R11,R11
994     MOV.B   &$200,&$208
995     BIC.B   #4,&$20C
996     SUB     #1,R10
997 0<> WHILE
998     ADD R9,R8
999     BEGIN
1000         MOV &$390,R9
1001         CMP R8,R9
1002         U>= IF
1003         BIC #$30,&$380
1004         GOTO BW1
1005         THEN
1006         BIT.B #4,&$20C
1007     0<> UNTIL
1008 REPEAT
1009 BIC #$30,&$380
1010 RLAM    #1,R11
1011 MOV.B   R11,R9
1012 RRUM    #2,R9
1013 BIT     #$4000,R11
1014 0= IF   BIS #$40,R9
1015 THEN
1016 RRUM    #3,R11
1017 XOR     @R1,R11
1018 BIT     #$400,R11
1019 0= ?GOTO BW1
1020 XOR #$400,0(R1)
1021 SUB #8,R15
1022 MOV R14,6(R15)
1023 MOV &$1DDC,4(R15)
1024 MOV #$10,&$1DDC
1025 MOV R9,0(R15)
1026 MOV #0,R14
1027 LO2HI
1028     LCD_CLEAR
1029     <# # #S #36 HOLD #>
1030     ['] LCD_WRC IS EMIT
1031     TYPE
1032     ['] EMIT >BODY IS EMIT
1033 HI2LO
1034 MOV @R15+,&$1DDC
1035 MOV @R15+,R14
1036 MOV @R1+,R0
1037 ENDASM
1038
1039 ASM BACKGROUND
1040 BEGIN
1041     CALL &$1814
1042     BIS &$180A,R2
1043 AGAIN
1044 ENDASM
1045
1046 CODE STOP
1047 BW1 MOV #SLEEP,R9
1048     ADD #4,R9
1049     MOV R9,-2(R9)
1050 COLON
1051 ['] WARM >BODY IS WARM
1052 ECHO
1053 ." RC5toLCD is removed. type START to restart"
1054 COLD
1055 ;
1056
1057 CODE APP_INIT
1058 MOV #%1011010100,&$3C0
1059 $1806 @ 16000 = [IF]
1060     MOV #1,&$3E0
1061 [THEN]
1062 $1806 @ 24000 = [IF]
1063     MOV #2,&$3E0
1064 [THEN]
1065     MOV #19,&$3D2
1066     MOV #%01100000,&$3C6
1067     MOV #10,&$3D6
1068     BIS.B #$20,&$204
1069     BIS.B #$20,&$20A
1070     BIS.B #7,&$245
1071     BIC.B #7,&$247
1072     BIS.B #$0F,&$224
1073     BIC.B #$0F,&$226
1074     BIS.B #4,&$20A
1075     BIC.B #4,&$20C
1076     MOV #RC5_INT,&$FFDE
1077     MOV #%0100010100,&$340
1078     MOV ##3276,&$352
1079     MOV #%10000,&$342
1080     MOV #WDT_INT,&$FFEA
1081 BIC #1,&$130
1082 BIS.B #3,&$20D
1083 MOV &$1808,R8
1084 CMP #4,R8
1085 0= ?GOTO BW1
1086 COLON
1087     #1000 20_US
1088     %011 TOP_LCD
1089     #205 20_US
1090     %011 TOP_LCD
1091     #5 20_US
1092     %011 TOP_LCD
1093     #2 20_US
1094     %010 TOP_LCD
1095     #2 20_US
1096     %00101000 LCD_WRF
1097     %1000 LCD_WRF
1098     LCD_CLEAR
1099     %0110 LCD_WRF
1100     %1100 LCD_WRF
1101     LCD_CLEAR
1102     ['] LCD_HOME IS CR
1103     ['] LCD_WRC  IS EMIT
1104     CR ." I love you"
1105     ['] CR >BODY IS CR
1106     ['] EMIT >BODY IS EMIT
1107     ." RC5toLCD is running. Type STOP to quit"
1108     ABORT
1109 ;
1110
1111 CODE START
1112 MOV #SLEEP,R9
1113 MOV #BACKGROUND,2(R9)
1114 MOV #WARM,R9
1115 MOV #APP_INIT,2(R9)
1116 MOV R9,R0
1117 ENDCODE 
1118
1119 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1120
1121 MARKER {RC5TOLCD}
1122
1123 CODE 20_US
1124 BEGIN
1125     BEGIN
1126         BIT #1,&$3C0
1127     0<> UNTIL
1128     BIC #1,&$3C0
1129     SUB #1,R14
1130 U< UNTIL
1131 MOV @R15+,R14
1132 MOV @R13+,R0
1133 ENDCODE
1134
1135 CODE TOP_LCD
1136     BIS.B #4,&$243
1137     BIT.B #1,&$241
1138 0= IF
1139     AND.B #$0F,R14
1140     MOV.B R14,&$222
1141     BIC.B #4,&$243
1142     MOV @R15+,R14
1143     MOV @R13+,R0
1144 THEN
1145     SUB #2,R15
1146     MOV R14,0(R15)
1147     BIC.B #4,&$243
1148     MOV.B &$220,R14
1149     AND.B #$0F,R14
1150     MOV @R13+,R0
1151 ENDCODE
1152
1153 CODE LCD_WRC
1154     BIS.B #2,&$243
1155 BW1 SUB #2,R15
1156     MOV R14,0(R15)
1157     RRUM #4,R14
1158     BIC.B #1,&$243
1159     BIS.B #$0F,&$224
1160 COLON
1161     TOP_LCD 2 20_US
1162     TOP_LCD 2 20_US 
1163 ;
1164
1165 CODE LCD_WRF
1166     BIC.B #2,&$243
1167     GOTO BW1
1168 ENDCODE
1169
1170 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
1171 : LCD_HOME $02 LCD_WRF 100 20_us ;
1172
1173
1174
1175 ASM WDT_INT
1176 ADD #2,R1
1177 BIT.B #$20,&$240
1178 0= IF
1179     CMP #19,&$3D6
1180     U< IF
1181         ADD #1,&$3D6
1182     THEN
1183 ELSE
1184     BIT.B #$40,&$240
1185     0= IF
1186         CMP #3,&$3D6
1187         U>= IF
1188            SUB #1,&$3D6
1189         THEN
1190     THEN
1191 THEN
1192 BW1
1193 MOV @R1+,R0
1194 ENDASM
1195
1196 ASM RC5_INT
1197 ADD #2,R1
1198 $1806 @ 16000 = [IF]
1199     MOV #1,&$3A0
1200 [THEN]
1201 $1806 @ 24000 = [IF]
1202     MOV #2,&$3A0
1203 [THEN]
1204 MOV #1778,R9
1205 MOV #14,R10
1206 BEGIN
1207 MOV #%1011100100,&$380
1208     RRUM    #1,R9
1209     MOV     R9,R8
1210     RRUM    #1,R8
1211     ADD     R9,R8
1212     BEGIN   CMP R8,&$390
1213     U>= UNTIL
1214     BIT.B   #4,&$200
1215     ADDC    R11,R11
1216     MOV.B   &$200,&$208
1217     BIC.B   #4,&$20C
1218     SUB     #1,R10
1219 0<> WHILE
1220     ADD R9,R8
1221     BEGIN
1222         MOV &$390,R9
1223         CMP R8,R9
1224         U>= IF
1225         BIC #$30,&$380
1226         GOTO BW1
1227         THEN
1228         BIT.B #4,&$20C
1229     0<> UNTIL
1230 REPEAT
1231 BIC #$30,&$380
1232 RLAM    #1,R11
1233 MOV.B   R11,R9
1234 RRUM    #2,R9
1235 BIT     #$4000,R11
1236 0= IF   BIS #$40,R9
1237 THEN
1238 RRUM    #3,R11
1239 XOR     @R1,R11
1240 BIT     #$400,R11
1241 0= ?GOTO BW1
1242 XOR #$400,0(R1)
1243 SUB #8,R15
1244 MOV R14,6(R15)
1245 MOV &$1DDC,4(R15)
1246 MOV #$10,&$1DDC
1247 MOV R9,0(R15)
1248 MOV #0,R14
1249 LO2HI
1250     LCD_CLEAR
1251     <# # #S #36 HOLD #>
1252     ['] LCD_WRC IS EMIT
1253     TYPE
1254     ['] EMIT >BODY IS EMIT
1255 HI2LO
1256 MOV @R15+,&$1DDC
1257 MOV @R15+,R14
1258 MOV @R1+,R0
1259 ENDASM
1260
1261 ASM BACKGROUND
1262 BEGIN
1263     CALL &$1814
1264     BIS &$180A,R2
1265 AGAIN
1266 ENDASM
1267
1268 CODE STOP
1269 BW1 MOV #SLEEP,R9
1270     ADD #4,R9
1271     MOV R9,-2(R9)
1272 COLON
1273 ['] WARM >BODY IS WARM
1274 ECHO
1275 ." RC5toLCD is removed. type START to restart"
1276 COLD
1277 ;
1278
1279 CODE APP_INIT
1280 MOV #%1011010100,&$3C0
1281 $1806 @ 16000 = [IF]
1282     MOV #1,&$3E0
1283 [THEN]
1284 $1806 @ 24000 = [IF]
1285     MOV #2,&$3E0
1286 [THEN]
1287     MOV #19,&$3D2
1288     MOV #%01100000,&$3C6
1289     MOV #10,&$3D6
1290     BIS.B #$20,&$204
1291     BIS.B #$20,&$20A
1292     BIS.B #7,&$245
1293     BIC.B #7,&$247
1294     BIS.B #$0F,&$224
1295     BIC.B #$0F,&$226
1296     BIS.B #4,&$20A
1297     BIC.B #4,&$20C
1298     MOV #RC5_INT,&$FFDE
1299     MOV #%0100010100,&$340
1300     MOV ##3276,&$352
1301     MOV #%10000,&$342
1302     MOV #WDT_INT,&$FFEA
1303 BIC #1,&$130
1304 BIS.B #3,&$20D
1305 MOV &$1808,R8
1306 CMP #4,R8
1307 0= ?GOTO BW1
1308 COLON
1309     #1000 20_US
1310     %011 TOP_LCD
1311     #205 20_US
1312     %011 TOP_LCD
1313     #5 20_US
1314     %011 TOP_LCD
1315     #2 20_US
1316     %010 TOP_LCD
1317     #2 20_US
1318     %00101000 LCD_WRF
1319     %1000 LCD_WRF
1320     LCD_CLEAR
1321     %0110 LCD_WRF
1322     %1100 LCD_WRF
1323     LCD_CLEAR
1324     ['] LCD_HOME IS CR
1325     ['] LCD_WRC  IS EMIT
1326     CR ." I love you"
1327     ['] CR >BODY IS CR
1328     ['] EMIT >BODY IS EMIT
1329     ." RC5toLCD is running. Type STOP to quit"
1330     ABORT
1331 ;
1332
1333 CODE START
1334 MOV #SLEEP,R9
1335 MOV #BACKGROUND,2(R9)
1336 MOV #WARM,R9
1337 MOV #APP_INIT,2(R9)
1338 MOV R9,R0
1339 ENDCODE 
1340
1341 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1342
1343 MARKER {RC5TOLCD}
1344
1345 CODE 20_US
1346 BEGIN
1347     BEGIN
1348         BIT #1,&$3C0
1349     0<> UNTIL
1350     BIC #1,&$3C0
1351     SUB #1,R14
1352 U< UNTIL
1353 MOV @R15+,R14
1354 MOV @R13+,R0
1355 ENDCODE
1356
1357 CODE TOP_LCD
1358     BIS.B #4,&$243
1359     BIT.B #1,&$241
1360 0= IF
1361     AND.B #$0F,R14
1362     MOV.B R14,&$222
1363     BIC.B #4,&$243
1364     MOV @R15+,R14
1365     MOV @R13+,R0
1366 THEN
1367     SUB #2,R15
1368     MOV R14,0(R15)
1369     BIC.B #4,&$243
1370     MOV.B &$220,R14
1371     AND.B #$0F,R14
1372     MOV @R13+,R0
1373 ENDCODE
1374
1375 CODE LCD_WRC
1376     BIS.B #2,&$243
1377 BW1 SUB #2,R15
1378     MOV R14,0(R15)
1379     RRUM #4,R14
1380     BIC.B #1,&$243
1381     BIS.B #$0F,&$224
1382 COLON
1383     TOP_LCD 2 20_US
1384     TOP_LCD 2 20_US 
1385 ;
1386
1387 CODE LCD_WRF
1388     BIC.B #2,&$243
1389     GOTO BW1
1390 ENDCODE
1391
1392 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
1393 : LCD_HOME $02 LCD_WRF 100 20_us ;
1394
1395
1396
1397 ASM WDT_INT
1398 ADD #2,R1
1399 BIT.B #$20,&$240
1400 0= IF
1401     CMP #19,&$3D6
1402     U< IF
1403         ADD #1,&$3D6
1404     THEN
1405 ELSE
1406     BIT.B #$40,&$240
1407     0= IF
1408         CMP #3,&$3D6
1409         U>= IF
1410            SUB #1,&$3D6
1411         THEN
1412     THEN
1413 THEN
1414 BW1
1415 MOV @R1+,R0
1416 ENDASM
1417
1418 ASM RC5_INT
1419 ADD #2,R1
1420 $1806 @ 16000 = [IF]
1421     MOV #1,&$3A0
1422 [THEN]
1423 $1806 @ 24000 = [IF]
1424     MOV #2,&$3A0
1425 [THEN]
1426 MOV #1778,R9
1427 MOV #14,R10
1428 BEGIN
1429 MOV #%1011100100,&$380
1430     RRUM    #1,R9
1431     MOV     R9,R8
1432     RRUM    #1,R8
1433     ADD     R9,R8
1434     BEGIN   CMP R8,&$390
1435     U>= UNTIL
1436     BIT.B   #4,&$200
1437     ADDC    R11,R11
1438     MOV.B   &$200,&$208
1439     BIC.B   #4,&$20C
1440     SUB     #1,R10
1441 0<> WHILE
1442     ADD R9,R8
1443     BEGIN
1444         MOV &$390,R9
1445         CMP R8,R9
1446         U>= IF
1447         BIC #$30,&$380
1448         GOTO BW1
1449         THEN
1450         BIT.B #4,&$20C
1451     0<> UNTIL
1452 REPEAT
1453 BIC #$30,&$380
1454 RLAM    #1,R11
1455 MOV.B   R11,R9
1456 RRUM    #2,R9
1457 BIT     #$4000,R11
1458 0= IF   BIS #$40,R9
1459 THEN
1460 RRUM    #3,R11
1461 XOR     @R1,R11
1462 BIT     #$400,R11
1463 0= ?GOTO BW1
1464 XOR #$400,0(R1)
1465 SUB #8,R15
1466 MOV R14,6(R15)
1467 MOV &$1DDC,4(R15)
1468 MOV #$10,&$1DDC
1469 MOV R9,0(R15)
1470 MOV #0,R14
1471 LO2HI
1472     LCD_CLEAR
1473     <# # #S #36 HOLD #>
1474     ['] LCD_WRC IS EMIT
1475     TYPE
1476     ['] EMIT >BODY IS EMIT
1477 HI2LO
1478 MOV @R15+,&$1DDC
1479 MOV @R15+,R14
1480 MOV @R1+,R0
1481 ENDASM
1482
1483 ASM BACKGROUND
1484 BEGIN
1485     CALL &$1814
1486     BIS &$180A,R2
1487 AGAIN
1488 ENDASM
1489
1490 CODE STOP
1491 BW1 MOV #SLEEP,R9
1492     ADD #4,R9
1493     MOV R9,-2(R9)
1494 COLON
1495 ['] WARM >BODY IS WARM
1496 ECHO
1497 ." RC5toLCD is removed. type START to restart"
1498 COLD
1499 ;
1500
1501 CODE APP_INIT
1502 MOV #%1011010100,&$3C0
1503 $1806 @ 16000 = [IF]
1504     MOV #1,&$3E0
1505 [THEN]
1506 $1806 @ 24000 = [IF]
1507     MOV #2,&$3E0
1508 [THEN]
1509     MOV #19,&$3D2
1510     MOV #%01100000,&$3C6
1511     MOV #10,&$3D6
1512     BIS.B #$20,&$204
1513     BIS.B #$20,&$20A
1514     BIS.B #7,&$245
1515     BIC.B #7,&$247
1516     BIS.B #$0F,&$224
1517     BIC.B #$0F,&$226
1518     BIS.B #4,&$20A
1519     BIC.B #4,&$20C
1520     MOV #RC5_INT,&$FFDE
1521     MOV #%0100010100,&$340
1522     MOV ##3276,&$352
1523     MOV #%10000,&$342
1524     MOV #WDT_INT,&$FFEA
1525 BIC #1,&$130
1526 BIS.B #3,&$20D
1527 MOV &$1808,R8
1528 CMP #4,R8
1529 0= ?GOTO BW1
1530 COLON
1531     #1000 20_US
1532     %011 TOP_LCD
1533     #205 20_US
1534     %011 TOP_LCD
1535     #5 20_US
1536     %011 TOP_LCD
1537     #2 20_US
1538     %010 TOP_LCD
1539     #2 20_US
1540     %00101000 LCD_WRF
1541     %1000 LCD_WRF
1542     LCD_CLEAR
1543     %0110 LCD_WRF
1544     %1100 LCD_WRF
1545     LCD_CLEAR
1546     ['] LCD_HOME IS CR
1547     ['] LCD_WRC  IS EMIT
1548     CR ." I love you"
1549     ['] CR >BODY IS CR
1550     ['] EMIT >BODY IS EMIT
1551     ." RC5toLCD is running. Type STOP to quit"
1552     ABORT
1553 ;
1554
1555 CODE START
1556 MOV #SLEEP,R9
1557 MOV #BACKGROUND,2(R9)
1558 MOV #WARM,R9
1559 MOV #APP_INIT,2(R9)
1560 MOV R9,R0
1561 ENDCODE 
1562
1563 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1564
1565 MARKER {RC5TOLCD}
1566
1567 CODE 20_US
1568 BEGIN
1569     BEGIN
1570         BIT #1,&$3C0
1571     0<> UNTIL
1572     BIC #1,&$3C0
1573     SUB #1,R14
1574 U< UNTIL
1575 MOV @R15+,R14
1576 MOV @R13+,R0
1577 ENDCODE
1578
1579 CODE TOP_LCD
1580     BIS.B #4,&$243
1581     BIT.B #1,&$241
1582 0= IF
1583     AND.B #$0F,R14
1584     MOV.B R14,&$222
1585     BIC.B #4,&$243
1586     MOV @R15+,R14
1587     MOV @R13+,R0
1588 THEN
1589     SUB #2,R15
1590     MOV R14,0(R15)
1591     BIC.B #4,&$243
1592     MOV.B &$220,R14
1593     AND.B #$0F,R14
1594     MOV @R13+,R0
1595 ENDCODE
1596
1597 CODE LCD_WRC
1598     BIS.B #2,&$243
1599 BW1 SUB #2,R15
1600     MOV R14,0(R15)
1601     RRUM #4,R14
1602     BIC.B #1,&$243
1603     BIS.B #$0F,&$224
1604 COLON
1605     TOP_LCD 2 20_US
1606     TOP_LCD 2 20_US 
1607 ;
1608
1609 CODE LCD_WRF
1610     BIC.B #2,&$243
1611     GOTO BW1
1612 ENDCODE
1613
1614 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
1615 : LCD_HOME $02 LCD_WRF 100 20_us ;
1616
1617
1618
1619 ASM WDT_INT
1620 ADD #2,R1
1621 BIT.B #$20,&$240
1622 0= IF
1623     CMP #19,&$3D6
1624     U< IF
1625         ADD #1,&$3D6
1626     THEN
1627 ELSE
1628     BIT.B #$40,&$240
1629     0= IF
1630         CMP #3,&$3D6
1631         U>= IF
1632            SUB #1,&$3D6
1633         THEN
1634     THEN
1635 THEN
1636 BW1
1637 MOV @R1+,R0
1638 ENDASM
1639
1640 ASM RC5_INT
1641 ADD #2,R1
1642 $1806 @ 16000 = [IF]
1643     MOV #1,&$3A0
1644 [THEN]
1645 $1806 @ 24000 = [IF]
1646     MOV #2,&$3A0
1647 [THEN]
1648 MOV #1778,R9
1649 MOV #14,R10
1650 BEGIN
1651 MOV #%1011100100,&$380
1652     RRUM    #1,R9
1653     MOV     R9,R8
1654     RRUM    #1,R8
1655     ADD     R9,R8
1656     BEGIN   CMP R8,&$390
1657     U>= UNTIL
1658     BIT.B   #4,&$200
1659     ADDC    R11,R11
1660     MOV.B   &$200,&$208
1661     BIC.B   #4,&$20C
1662     SUB     #1,R10
1663 0<> WHILE
1664     ADD R9,R8
1665     BEGIN
1666         MOV &$390,R9
1667         CMP R8,R9
1668         U>= IF
1669         BIC #$30,&$380
1670         GOTO BW1
1671         THEN
1672         BIT.B #4,&$20C
1673     0<> UNTIL
1674 REPEAT
1675 BIC #$30,&$380
1676 RLAM    #1,R11
1677 MOV.B   R11,R9
1678 RRUM    #2,R9
1679 BIT     #$4000,R11
1680 0= IF   BIS #$40,R9
1681 THEN
1682 RRUM    #3,R11
1683 XOR     @R1,R11
1684 BIT     #$400,R11
1685 0= ?GOTO BW1
1686 XOR #$400,0(R1)
1687 SUB #8,R15
1688 MOV R14,6(R15)
1689 MOV &$1DDC,4(R15)
1690 MOV #$10,&$1DDC
1691 MOV R9,0(R15)
1692 MOV #0,R14
1693 LO2HI
1694     LCD_CLEAR
1695     <# # #S #36 HOLD #>
1696     ['] LCD_WRC IS EMIT
1697     TYPE
1698     ['] EMIT >BODY IS EMIT
1699 HI2LO
1700 MOV @R15+,&$1DDC
1701 MOV @R15+,R14
1702 MOV @R1+,R0
1703 ENDASM
1704
1705 ASM BACKGROUND
1706 BEGIN
1707     CALL &$1814
1708     BIS &$180A,R2
1709 AGAIN
1710 ENDASM
1711
1712 CODE STOP
1713 BW1 MOV #SLEEP,R9
1714     ADD #4,R9
1715     MOV R9,-2(R9)
1716 COLON
1717 ['] WARM >BODY IS WARM
1718 ECHO
1719 ." RC5toLCD is removed. type START to restart"
1720 COLD
1721 ;
1722
1723 CODE APP_INIT
1724 MOV #%1011010100,&$3C0
1725 $1806 @ 16000 = [IF]
1726     MOV #1,&$3E0
1727 [THEN]
1728 $1806 @ 24000 = [IF]
1729     MOV #2,&$3E0
1730 [THEN]
1731     MOV #19,&$3D2
1732     MOV #%01100000,&$3C6
1733     MOV #10,&$3D6
1734     BIS.B #$20,&$204
1735     BIS.B #$20,&$20A
1736     BIS.B #7,&$245
1737     BIC.B #7,&$247
1738     BIS.B #$0F,&$224
1739     BIC.B #$0F,&$226
1740     BIS.B #4,&$20A
1741     BIC.B #4,&$20C
1742     MOV #RC5_INT,&$FFDE
1743     MOV #%0100010100,&$340
1744     MOV ##3276,&$352
1745     MOV #%10000,&$342
1746     MOV #WDT_INT,&$FFEA
1747 BIC #1,&$130
1748 BIS.B #3,&$20D
1749 MOV &$1808,R8
1750 CMP #4,R8
1751 0= ?GOTO BW1
1752 COLON
1753     #1000 20_US
1754     %011 TOP_LCD
1755     #205 20_US
1756     %011 TOP_LCD
1757     #5 20_US
1758     %011 TOP_LCD
1759     #2 20_US
1760     %010 TOP_LCD
1761     #2 20_US
1762     %00101000 LCD_WRF
1763     %1000 LCD_WRF
1764     LCD_CLEAR
1765     %0110 LCD_WRF
1766     %1100 LCD_WRF
1767     LCD_CLEAR
1768     ['] LCD_HOME IS CR
1769     ['] LCD_WRC  IS EMIT
1770     CR ." I love you"
1771     ['] CR >BODY IS CR
1772     ['] EMIT >BODY IS EMIT
1773     ." RC5toLCD is running. Type STOP to quit"
1774     ABORT
1775 ;
1776
1777 CODE START
1778 MOV #SLEEP,R9
1779 MOV #BACKGROUND,2(R9)
1780 MOV #WARM,R9
1781 MOV #APP_INIT,2(R9)
1782 MOV R9,R0
1783 ENDCODE 
1784
1785 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
1786
1787 MARKER {RC5TOLCD}
1788
1789 CODE 20_US
1790 BEGIN
1791     BEGIN
1792         BIT #1,&$3C0
1793     0<> UNTIL
1794     BIC #1,&$3C0
1795     SUB #1,R14
1796 U< UNTIL
1797 MOV @R15+,R14
1798 MOV @R13+,R0
1799 ENDCODE
1800
1801 CODE TOP_LCD
1802     BIS.B #4,&$243
1803     BIT.B #1,&$241
1804 0= IF
1805     AND.B #$0F,R14
1806     MOV.B R14,&$222
1807     BIC.B #4,&$243
1808     MOV @R15+,R14
1809     MOV @R13+,R0
1810 THEN
1811     SUB #2,R15
1812     MOV R14,0(R15)
1813     BIC.B #4,&$243
1814     MOV.B &$220,R14
1815     AND.B #$0F,R14
1816     MOV @R13+,R0
1817 ENDCODE
1818
1819 CODE LCD_WRC
1820     BIS.B #2,&$243
1821 BW1 SUB #2,R15
1822     MOV R14,0(R15)
1823     RRUM #4,R14
1824     BIC.B #1,&$243
1825     BIS.B #$0F,&$224
1826 COLON
1827     TOP_LCD 2 20_US
1828     TOP_LCD 2 20_US 
1829 ;
1830
1831 CODE LCD_WRF
1832     BIC.B #2,&$243
1833     GOTO BW1
1834 ENDCODE
1835
1836 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
1837 : LCD_HOME $02 LCD_WRF 100 20_us ;
1838
1839
1840
1841 ASM WDT_INT
1842 ADD #2,R1
1843 BIT.B #$20,&$240
1844 0= IF
1845     CMP #19,&$3D6
1846     U< IF
1847         ADD #1,&$3D6
1848     THEN
1849 ELSE
1850     BIT.B #$40,&$240
1851     0= IF
1852         CMP #3,&$3D6
1853         U>= IF
1854            SUB #1,&$3D6
1855         THEN
1856     THEN
1857 THEN
1858 BW1
1859 MOV @R1+,R0
1860 ENDASM
1861
1862 ASM RC5_INT
1863 ADD #2,R1
1864 $1806 @ 16000 = [IF]
1865     MOV #1,&$3A0
1866 [THEN]
1867 $1806 @ 24000 = [IF]
1868     MOV #2,&$3A0
1869 [THEN]
1870 MOV #1778,R9
1871 MOV #14,R10
1872 BEGIN
1873 MOV #%1011100100,&$380
1874     RRUM    #1,R9
1875     MOV     R9,R8
1876     RRUM    #1,R8
1877     ADD     R9,R8
1878     BEGIN   CMP R8,&$390
1879     U>= UNTIL
1880     BIT.B   #4,&$200
1881     ADDC    R11,R11
1882     MOV.B   &$200,&$208
1883     BIC.B   #4,&$20C
1884     SUB     #1,R10
1885 0<> WHILE
1886     ADD R9,R8
1887     BEGIN
1888         MOV &$390,R9
1889         CMP R8,R9
1890         U>= IF
1891         BIC #$30,&$380
1892         GOTO BW1
1893         THEN
1894         BIT.B #4,&$20C
1895     0<> UNTIL
1896 REPEAT
1897 BIC #$30,&$380
1898 RLAM    #1,R11
1899 MOV.B   R11,R9
1900 RRUM    #2,R9
1901 BIT     #$4000,R11
1902 0= IF   BIS #$40,R9
1903 THEN
1904 RRUM    #3,R11
1905 XOR     @R1,R11
1906 BIT     #$400,R11
1907 0= ?GOTO BW1
1908 XOR #$400,0(R1)
1909 SUB #8,R15
1910 MOV R14,6(R15)
1911 MOV &$1DDC,4(R15)
1912 MOV #$10,&$1DDC
1913 MOV R9,0(R15)
1914 MOV #0,R14
1915 LO2HI
1916     LCD_CLEAR
1917     <# # #S #36 HOLD #>
1918     ['] LCD_WRC IS EMIT
1919     TYPE
1920     ['] EMIT >BODY IS EMIT
1921 HI2LO
1922 MOV @R15+,&$1DDC
1923 MOV @R15+,R14
1924 MOV @R1+,R0
1925 ENDASM
1926
1927 ASM BACKGROUND
1928 BEGIN
1929     CALL &$1814
1930     BIS &$180A,R2
1931 AGAIN
1932 ENDASM
1933
1934 CODE STOP
1935 BW1 MOV #SLEEP,R9
1936     ADD #4,R9
1937     MOV R9,-2(R9)
1938 COLON
1939 ['] WARM >BODY IS WARM
1940 ECHO
1941 ." RC5toLCD is removed. type START to restart"
1942 COLD
1943 ;
1944
1945 CODE APP_INIT
1946 MOV #%1011010100,&$3C0
1947 $1806 @ 16000 = [IF]
1948     MOV #1,&$3E0
1949 [THEN]
1950 $1806 @ 24000 = [IF]
1951     MOV #2,&$3E0
1952 [THEN]
1953     MOV #19,&$3D2
1954     MOV #%01100000,&$3C6
1955     MOV #10,&$3D6
1956     BIS.B #$20,&$204
1957     BIS.B #$20,&$20A
1958     BIS.B #7,&$245
1959     BIC.B #7,&$247
1960     BIS.B #$0F,&$224
1961     BIC.B #$0F,&$226
1962     BIS.B #4,&$20A
1963     BIC.B #4,&$20C
1964     MOV #RC5_INT,&$FFDE
1965     MOV #%0100010100,&$340
1966     MOV ##3276,&$352
1967     MOV #%10000,&$342
1968     MOV #WDT_INT,&$FFEA
1969 BIC #1,&$130
1970 BIS.B #3,&$20D
1971 MOV &$1808,R8
1972 CMP #4,R8
1973 0= ?GOTO BW1
1974 COLON
1975     #1000 20_US
1976     %011 TOP_LCD
1977     #205 20_US
1978     %011 TOP_LCD
1979     #5 20_US
1980     %011 TOP_LCD
1981     #2 20_US
1982     %010 TOP_LCD
1983     #2 20_US
1984     %00101000 LCD_WRF
1985     %1000 LCD_WRF
1986     LCD_CLEAR
1987     %0110 LCD_WRF
1988     %1100 LCD_WRF
1989     LCD_CLEAR
1990     ['] LCD_HOME IS CR
1991     ['] LCD_WRC  IS EMIT
1992     CR ." I love you"
1993     ['] CR >BODY IS CR
1994     ['] EMIT >BODY IS EMIT
1995     ." RC5toLCD is running. Type STOP to quit"
1996     ABORT
1997 ;
1998
1999 CODE START
2000 MOV #SLEEP,R9
2001 MOV #BACKGROUND,2(R9)
2002 MOV #WARM,R9
2003 MOV #APP_INIT,2(R9)
2004 MOV R9,R0
2005 ENDCODE 
2006
2007 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2008
2009 MARKER {RC5TOLCD}
2010
2011 CODE 20_US
2012 BEGIN
2013     BEGIN
2014         BIT #1,&$3C0
2015     0<> UNTIL
2016     BIC #1,&$3C0
2017     SUB #1,R14
2018 U< UNTIL
2019 MOV @R15+,R14
2020 MOV @R13+,R0
2021 ENDCODE
2022
2023 CODE TOP_LCD
2024     BIS.B #4,&$243
2025     BIT.B #1,&$241
2026 0= IF
2027     AND.B #$0F,R14
2028     MOV.B R14,&$222
2029     BIC.B #4,&$243
2030     MOV @R15+,R14
2031     MOV @R13+,R0
2032 THEN
2033     SUB #2,R15
2034     MOV R14,0(R15)
2035     BIC.B #4,&$243
2036     MOV.B &$220,R14
2037     AND.B #$0F,R14
2038     MOV @R13+,R0
2039 ENDCODE
2040
2041 CODE LCD_WRC
2042     BIS.B #2,&$243
2043 BW1 SUB #2,R15
2044     MOV R14,0(R15)
2045     RRUM #4,R14
2046     BIC.B #1,&$243
2047     BIS.B #$0F,&$224
2048 COLON
2049     TOP_LCD 2 20_US
2050     TOP_LCD 2 20_US 
2051 ;
2052
2053 CODE LCD_WRF
2054     BIC.B #2,&$243
2055     GOTO BW1
2056 ENDCODE
2057
2058 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2059 : LCD_HOME $02 LCD_WRF 100 20_us ;
2060
2061
2062
2063 ASM WDT_INT
2064 ADD #2,R1
2065 BIT.B #$20,&$240
2066 0= IF
2067     CMP #19,&$3D6
2068     U< IF
2069         ADD #1,&$3D6
2070     THEN
2071 ELSE
2072     BIT.B #$40,&$240
2073     0= IF
2074         CMP #3,&$3D6
2075         U>= IF
2076            SUB #1,&$3D6
2077         THEN
2078     THEN
2079 THEN
2080 BW1
2081 MOV @R1+,R0
2082 ENDASM
2083
2084 ASM RC5_INT
2085 ADD #2,R1
2086 $1806 @ 16000 = [IF]
2087     MOV #1,&$3A0
2088 [THEN]
2089 $1806 @ 24000 = [IF]
2090     MOV #2,&$3A0
2091 [THEN]
2092 MOV #1778,R9
2093 MOV #14,R10
2094 BEGIN
2095 MOV #%1011100100,&$380
2096     RRUM    #1,R9
2097     MOV     R9,R8
2098     RRUM    #1,R8
2099     ADD     R9,R8
2100     BEGIN   CMP R8,&$390
2101     U>= UNTIL
2102     BIT.B   #4,&$200
2103     ADDC    R11,R11
2104     MOV.B   &$200,&$208
2105     BIC.B   #4,&$20C
2106     SUB     #1,R10
2107 0<> WHILE
2108     ADD R9,R8
2109     BEGIN
2110         MOV &$390,R9
2111         CMP R8,R9
2112         U>= IF
2113         BIC #$30,&$380
2114         GOTO BW1
2115         THEN
2116         BIT.B #4,&$20C
2117     0<> UNTIL
2118 REPEAT
2119 BIC #$30,&$380
2120 RLAM    #1,R11
2121 MOV.B   R11,R9
2122 RRUM    #2,R9
2123 BIT     #$4000,R11
2124 0= IF   BIS #$40,R9
2125 THEN
2126 RRUM    #3,R11
2127 XOR     @R1,R11
2128 BIT     #$400,R11
2129 0= ?GOTO BW1
2130 XOR #$400,0(R1)
2131 SUB #8,R15
2132 MOV R14,6(R15)
2133 MOV &$1DDC,4(R15)
2134 MOV #$10,&$1DDC
2135 MOV R9,0(R15)
2136 MOV #0,R14
2137 LO2HI
2138     LCD_CLEAR
2139     <# # #S #36 HOLD #>
2140     ['] LCD_WRC IS EMIT
2141     TYPE
2142     ['] EMIT >BODY IS EMIT
2143 HI2LO
2144 MOV @R15+,&$1DDC
2145 MOV @R15+,R14
2146 MOV @R1+,R0
2147 ENDASM
2148
2149 ASM BACKGROUND
2150 BEGIN
2151     CALL &$1814
2152     BIS &$180A,R2
2153 AGAIN
2154 ENDASM
2155
2156 CODE STOP
2157 BW1 MOV #SLEEP,R9
2158     ADD #4,R9
2159     MOV R9,-2(R9)
2160 COLON
2161 ['] WARM >BODY IS WARM
2162 ECHO
2163 ." RC5toLCD is removed. type START to restart"
2164 COLD
2165 ;
2166
2167 CODE APP_INIT
2168 MOV #%1011010100,&$3C0
2169 $1806 @ 16000 = [IF]
2170     MOV #1,&$3E0
2171 [THEN]
2172 $1806 @ 24000 = [IF]
2173     MOV #2,&$3E0
2174 [THEN]
2175     MOV #19,&$3D2
2176     MOV #%01100000,&$3C6
2177     MOV #10,&$3D6
2178     BIS.B #$20,&$204
2179     BIS.B #$20,&$20A
2180     BIS.B #7,&$245
2181     BIC.B #7,&$247
2182     BIS.B #$0F,&$224
2183     BIC.B #$0F,&$226
2184     BIS.B #4,&$20A
2185     BIC.B #4,&$20C
2186     MOV #RC5_INT,&$FFDE
2187     MOV #%0100010100,&$340
2188     MOV ##3276,&$352
2189     MOV #%10000,&$342
2190     MOV #WDT_INT,&$FFEA
2191 BIC #1,&$130
2192 BIS.B #3,&$20D
2193 MOV &$1808,R8
2194 CMP #4,R8
2195 0= ?GOTO BW1
2196 COLON
2197     #1000 20_US
2198     %011 TOP_LCD
2199     #205 20_US
2200     %011 TOP_LCD
2201     #5 20_US
2202     %011 TOP_LCD
2203     #2 20_US
2204     %010 TOP_LCD
2205     #2 20_US
2206     %00101000 LCD_WRF
2207     %1000 LCD_WRF
2208     LCD_CLEAR
2209     %0110 LCD_WRF
2210     %1100 LCD_WRF
2211     LCD_CLEAR
2212     ['] LCD_HOME IS CR
2213     ['] LCD_WRC  IS EMIT
2214     CR ." I love you"
2215     ['] CR >BODY IS CR
2216     ['] EMIT >BODY IS EMIT
2217     ." RC5toLCD is running. Type STOP to quit"
2218     ABORT
2219 ;
2220
2221 CODE START
2222 MOV #SLEEP,R9
2223 MOV #BACKGROUND,2(R9)
2224 MOV #WARM,R9
2225 MOV #APP_INIT,2(R9)
2226 MOV R9,R0
2227 ENDCODE 
2228
2229 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2230
2231 MARKER {RC5TOLCD}
2232
2233 CODE 20_US
2234 BEGIN
2235     BEGIN
2236         BIT #1,&$3C0
2237     0<> UNTIL
2238     BIC #1,&$3C0
2239     SUB #1,R14
2240 U< UNTIL
2241 MOV @R15+,R14
2242 MOV @R13+,R0
2243 ENDCODE
2244
2245 CODE TOP_LCD
2246     BIS.B #4,&$243
2247     BIT.B #1,&$241
2248 0= IF
2249     AND.B #$0F,R14
2250     MOV.B R14,&$222
2251     BIC.B #4,&$243
2252     MOV @R15+,R14
2253     MOV @R13+,R0
2254 THEN
2255     SUB #2,R15
2256     MOV R14,0(R15)
2257     BIC.B #4,&$243
2258     MOV.B &$220,R14
2259     AND.B #$0F,R14
2260     MOV @R13+,R0
2261 ENDCODE
2262
2263 CODE LCD_WRC
2264     BIS.B #2,&$243
2265 BW1 SUB #2,R15
2266     MOV R14,0(R15)
2267     RRUM #4,R14
2268     BIC.B #1,&$243
2269     BIS.B #$0F,&$224
2270 COLON
2271     TOP_LCD 2 20_US
2272     TOP_LCD 2 20_US 
2273 ;
2274
2275 CODE LCD_WRF
2276     BIC.B #2,&$243
2277     GOTO BW1
2278 ENDCODE
2279
2280 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2281 : LCD_HOME $02 LCD_WRF 100 20_us ;
2282
2283
2284
2285 ASM WDT_INT
2286 ADD #2,R1
2287 BIT.B #$20,&$240
2288 0= IF
2289     CMP #19,&$3D6
2290     U< IF
2291         ADD #1,&$3D6
2292     THEN
2293 ELSE
2294     BIT.B #$40,&$240
2295     0= IF
2296         CMP #3,&$3D6
2297         U>= IF
2298            SUB #1,&$3D6
2299         THEN
2300     THEN
2301 THEN
2302 BW1
2303 MOV @R1+,R0
2304 ENDASM
2305
2306 ASM RC5_INT
2307 ADD #2,R1
2308 $1806 @ 16000 = [IF]
2309     MOV #1,&$3A0
2310 [THEN]
2311 $1806 @ 24000 = [IF]
2312     MOV #2,&$3A0
2313 [THEN]
2314 MOV #1778,R9
2315 MOV #14,R10
2316 BEGIN
2317 MOV #%1011100100,&$380
2318     RRUM    #1,R9
2319     MOV     R9,R8
2320     RRUM    #1,R8
2321     ADD     R9,R8
2322     BEGIN   CMP R8,&$390
2323     U>= UNTIL
2324     BIT.B   #4,&$200
2325     ADDC    R11,R11
2326     MOV.B   &$200,&$208
2327     BIC.B   #4,&$20C
2328     SUB     #1,R10
2329 0<> WHILE
2330     ADD R9,R8
2331     BEGIN
2332         MOV &$390,R9
2333         CMP R8,R9
2334         U>= IF
2335         BIC #$30,&$380
2336         GOTO BW1
2337         THEN
2338         BIT.B #4,&$20C
2339     0<> UNTIL
2340 REPEAT
2341 BIC #$30,&$380
2342 RLAM    #1,R11
2343 MOV.B   R11,R9
2344 RRUM    #2,R9
2345 BIT     #$4000,R11
2346 0= IF   BIS #$40,R9
2347 THEN
2348 RRUM    #3,R11
2349 XOR     @R1,R11
2350 BIT     #$400,R11
2351 0= ?GOTO BW1
2352 XOR #$400,0(R1)
2353 SUB #8,R15
2354 MOV R14,6(R15)
2355 MOV &$1DDC,4(R15)
2356 MOV #$10,&$1DDC
2357 MOV R9,0(R15)
2358 MOV #0,R14
2359 LO2HI
2360     LCD_CLEAR
2361     <# # #S #36 HOLD #>
2362     ['] LCD_WRC IS EMIT
2363     TYPE
2364     ['] EMIT >BODY IS EMIT
2365 HI2LO
2366 MOV @R15+,&$1DDC
2367 MOV @R15+,R14
2368 MOV @R1+,R0
2369 ENDASM
2370
2371 ASM BACKGROUND
2372 BEGIN
2373     CALL &$1814
2374     BIS &$180A,R2
2375 AGAIN
2376 ENDASM
2377
2378 CODE STOP
2379 BW1 MOV #SLEEP,R9
2380     ADD #4,R9
2381     MOV R9,-2(R9)
2382 COLON
2383 ['] WARM >BODY IS WARM
2384 ECHO
2385 ." RC5toLCD is removed. type START to restart"
2386 COLD
2387 ;
2388
2389 CODE APP_INIT
2390 MOV #%1011010100,&$3C0
2391 $1806 @ 16000 = [IF]
2392     MOV #1,&$3E0
2393 [THEN]
2394 $1806 @ 24000 = [IF]
2395     MOV #2,&$3E0
2396 [THEN]
2397     MOV #19,&$3D2
2398     MOV #%01100000,&$3C6
2399     MOV #10,&$3D6
2400     BIS.B #$20,&$204
2401     BIS.B #$20,&$20A
2402     BIS.B #7,&$245
2403     BIC.B #7,&$247
2404     BIS.B #$0F,&$224
2405     BIC.B #$0F,&$226
2406     BIS.B #4,&$20A
2407     BIC.B #4,&$20C
2408     MOV #RC5_INT,&$FFDE
2409     MOV #%0100010100,&$340
2410     MOV ##3276,&$352
2411     MOV #%10000,&$342
2412     MOV #WDT_INT,&$FFEA
2413 BIC #1,&$130
2414 BIS.B #3,&$20D
2415 MOV &$1808,R8
2416 CMP #4,R8
2417 0= ?GOTO BW1
2418 COLON
2419     #1000 20_US
2420     %011 TOP_LCD
2421     #205 20_US
2422     %011 TOP_LCD
2423     #5 20_US
2424     %011 TOP_LCD
2425     #2 20_US
2426     %010 TOP_LCD
2427     #2 20_US
2428     %00101000 LCD_WRF
2429     %1000 LCD_WRF
2430     LCD_CLEAR
2431     %0110 LCD_WRF
2432     %1100 LCD_WRF
2433     LCD_CLEAR
2434     ['] LCD_HOME IS CR
2435     ['] LCD_WRC  IS EMIT
2436     CR ." I love you"
2437     ['] CR >BODY IS CR
2438     ['] EMIT >BODY IS EMIT
2439     ." RC5toLCD is running. Type STOP to quit"
2440     ABORT
2441 ;
2442
2443 CODE START
2444 MOV #SLEEP,R9
2445 MOV #BACKGROUND,2(R9)
2446 MOV #WARM,R9
2447 MOV #APP_INIT,2(R9)
2448 MOV R9,R0
2449 ENDCODE 
2450
2451 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2452
2453 MARKER {RC5TOLCD}
2454
2455 CODE 20_US
2456 BEGIN
2457     BEGIN
2458         BIT #1,&$3C0
2459     0<> UNTIL
2460     BIC #1,&$3C0
2461     SUB #1,R14
2462 U< UNTIL
2463 MOV @R15+,R14
2464 MOV @R13+,R0
2465 ENDCODE
2466
2467 CODE TOP_LCD
2468     BIS.B #4,&$243
2469     BIT.B #1,&$241
2470 0= IF
2471     AND.B #$0F,R14
2472     MOV.B R14,&$222
2473     BIC.B #4,&$243
2474     MOV @R15+,R14
2475     MOV @R13+,R0
2476 THEN
2477     SUB #2,R15
2478     MOV R14,0(R15)
2479     BIC.B #4,&$243
2480     MOV.B &$220,R14
2481     AND.B #$0F,R14
2482     MOV @R13+,R0
2483 ENDCODE
2484
2485 CODE LCD_WRC
2486     BIS.B #2,&$243
2487 BW1 SUB #2,R15
2488     MOV R14,0(R15)
2489     RRUM #4,R14
2490     BIC.B #1,&$243
2491     BIS.B #$0F,&$224
2492 COLON
2493     TOP_LCD 2 20_US
2494     TOP_LCD 2 20_US 
2495 ;
2496
2497 CODE LCD_WRF
2498     BIC.B #2,&$243
2499     GOTO BW1
2500 ENDCODE
2501
2502 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2503 : LCD_HOME $02 LCD_WRF 100 20_us ;
2504
2505
2506
2507 ASM WDT_INT
2508 ADD #2,R1
2509 BIT.B #$20,&$240
2510 0= IF
2511     CMP #19,&$3D6
2512     U< IF
2513         ADD #1,&$3D6
2514     THEN
2515 ELSE
2516     BIT.B #$40,&$240
2517     0= IF
2518         CMP #3,&$3D6
2519         U>= IF
2520            SUB #1,&$3D6
2521         THEN
2522     THEN
2523 THEN
2524 BW1
2525 MOV @R1+,R0
2526 ENDASM
2527
2528 ASM RC5_INT
2529 ADD #2,R1
2530 $1806 @ 16000 = [IF]
2531     MOV #1,&$3A0
2532 [THEN]
2533 $1806 @ 24000 = [IF]
2534     MOV #2,&$3A0
2535 [THEN]
2536 MOV #1778,R9
2537 MOV #14,R10
2538 BEGIN
2539 MOV #%1011100100,&$380
2540     RRUM    #1,R9
2541     MOV     R9,R8
2542     RRUM    #1,R8
2543     ADD     R9,R8
2544     BEGIN   CMP R8,&$390
2545     U>= UNTIL
2546     BIT.B   #4,&$200
2547     ADDC    R11,R11
2548     MOV.B   &$200,&$208
2549     BIC.B   #4,&$20C
2550     SUB     #1,R10
2551 0<> WHILE
2552     ADD R9,R8
2553     BEGIN
2554         MOV &$390,R9
2555         CMP R8,R9
2556         U>= IF
2557         BIC #$30,&$380
2558         GOTO BW1
2559         THEN
2560         BIT.B #4,&$20C
2561     0<> UNTIL
2562 REPEAT
2563 BIC #$30,&$380
2564 RLAM    #1,R11
2565 MOV.B   R11,R9
2566 RRUM    #2,R9
2567 BIT     #$4000,R11
2568 0= IF   BIS #$40,R9
2569 THEN
2570 RRUM    #3,R11
2571 XOR     @R1,R11
2572 BIT     #$400,R11
2573 0= ?GOTO BW1
2574 XOR #$400,0(R1)
2575 SUB #8,R15
2576 MOV R14,6(R15)
2577 MOV &$1DDC,4(R15)
2578 MOV #$10,&$1DDC
2579 MOV R9,0(R15)
2580 MOV #0,R14
2581 LO2HI
2582     LCD_CLEAR
2583     <# # #S #36 HOLD #>
2584     ['] LCD_WRC IS EMIT
2585     TYPE
2586     ['] EMIT >BODY IS EMIT
2587 HI2LO
2588 MOV @R15+,&$1DDC
2589 MOV @R15+,R14
2590 MOV @R1+,R0
2591 ENDASM
2592
2593 ASM BACKGROUND
2594 BEGIN
2595     CALL &$1814
2596     BIS &$180A,R2
2597 AGAIN
2598 ENDASM
2599
2600 CODE STOP
2601 BW1 MOV #SLEEP,R9
2602     ADD #4,R9
2603     MOV R9,-2(R9)
2604 COLON
2605 ['] WARM >BODY IS WARM
2606 ECHO
2607 ." RC5toLCD is removed. type START to restart"
2608 COLD
2609 ;
2610
2611 CODE APP_INIT
2612 MOV #%1011010100,&$3C0
2613 $1806 @ 16000 = [IF]
2614     MOV #1,&$3E0
2615 [THEN]
2616 $1806 @ 24000 = [IF]
2617     MOV #2,&$3E0
2618 [THEN]
2619     MOV #19,&$3D2
2620     MOV #%01100000,&$3C6
2621     MOV #10,&$3D6
2622     BIS.B #$20,&$204
2623     BIS.B #$20,&$20A
2624     BIS.B #7,&$245
2625     BIC.B #7,&$247
2626     BIS.B #$0F,&$224
2627     BIC.B #$0F,&$226
2628     BIS.B #4,&$20A
2629     BIC.B #4,&$20C
2630     MOV #RC5_INT,&$FFDE
2631     MOV #%0100010100,&$340
2632     MOV ##3276,&$352
2633     MOV #%10000,&$342
2634     MOV #WDT_INT,&$FFEA
2635 BIC #1,&$130
2636 BIS.B #3,&$20D
2637 MOV &$1808,R8
2638 CMP #4,R8
2639 0= ?GOTO BW1
2640 COLON
2641     #1000 20_US
2642     %011 TOP_LCD
2643     #205 20_US
2644     %011 TOP_LCD
2645     #5 20_US
2646     %011 TOP_LCD
2647     #2 20_US
2648     %010 TOP_LCD
2649     #2 20_US
2650     %00101000 LCD_WRF
2651     %1000 LCD_WRF
2652     LCD_CLEAR
2653     %0110 LCD_WRF
2654     %1100 LCD_WRF
2655     LCD_CLEAR
2656     ['] LCD_HOME IS CR
2657     ['] LCD_WRC  IS EMIT
2658     CR ." I love you"
2659     ['] CR >BODY IS CR
2660     ['] EMIT >BODY IS EMIT
2661     ." RC5toLCD is running. Type STOP to quit"
2662     ABORT
2663 ;
2664
2665 CODE START
2666 MOV #SLEEP,R9
2667 MOV #BACKGROUND,2(R9)
2668 MOV #WARM,R9
2669 MOV #APP_INIT,2(R9)
2670 MOV R9,R0
2671 ENDCODE 
2672
2673 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2674
2675 MARKER {RC5TOLCD}
2676
2677 CODE 20_US
2678 BEGIN
2679     BEGIN
2680         BIT #1,&$3C0
2681     0<> UNTIL
2682     BIC #1,&$3C0
2683     SUB #1,R14
2684 U< UNTIL
2685 MOV @R15+,R14
2686 MOV @R13+,R0
2687 ENDCODE
2688
2689 CODE TOP_LCD
2690     BIS.B #4,&$243
2691     BIT.B #1,&$241
2692 0= IF
2693     AND.B #$0F,R14
2694     MOV.B R14,&$222
2695     BIC.B #4,&$243
2696     MOV @R15+,R14
2697     MOV @R13+,R0
2698 THEN
2699     SUB #2,R15
2700     MOV R14,0(R15)
2701     BIC.B #4,&$243
2702     MOV.B &$220,R14
2703     AND.B #$0F,R14
2704     MOV @R13+,R0
2705 ENDCODE
2706
2707 CODE LCD_WRC
2708     BIS.B #2,&$243
2709 BW1 SUB #2,R15
2710     MOV R14,0(R15)
2711     RRUM #4,R14
2712     BIC.B #1,&$243
2713     BIS.B #$0F,&$224
2714 COLON
2715     TOP_LCD 2 20_US
2716     TOP_LCD 2 20_US 
2717 ;
2718
2719 CODE LCD_WRF
2720     BIC.B #2,&$243
2721     GOTO BW1
2722 ENDCODE
2723
2724 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2725 : LCD_HOME $02 LCD_WRF 100 20_us ;
2726
2727
2728
2729 ASM WDT_INT
2730 ADD #2,R1
2731 BIT.B #$20,&$240
2732 0= IF
2733     CMP #19,&$3D6
2734     U< IF
2735         ADD #1,&$3D6
2736     THEN
2737 ELSE
2738     BIT.B #$40,&$240
2739     0= IF
2740         CMP #3,&$3D6
2741         U>= IF
2742            SUB #1,&$3D6
2743         THEN
2744     THEN
2745 THEN
2746 BW1
2747 MOV @R1+,R0
2748 ENDASM
2749
2750 ASM RC5_INT
2751 ADD #2,R1
2752 $1806 @ 16000 = [IF]
2753     MOV #1,&$3A0
2754 [THEN]
2755 $1806 @ 24000 = [IF]
2756     MOV #2,&$3A0
2757 [THEN]
2758 MOV #1778,R9
2759 MOV #14,R10
2760 BEGIN
2761 MOV #%1011100100,&$380
2762     RRUM    #1,R9
2763     MOV     R9,R8
2764     RRUM    #1,R8
2765     ADD     R9,R8
2766     BEGIN   CMP R8,&$390
2767     U>= UNTIL
2768     BIT.B   #4,&$200
2769     ADDC    R11,R11
2770     MOV.B   &$200,&$208
2771     BIC.B   #4,&$20C
2772     SUB     #1,R10
2773 0<> WHILE
2774     ADD R9,R8
2775     BEGIN
2776         MOV &$390,R9
2777         CMP R8,R9
2778         U>= IF
2779         BIC #$30,&$380
2780         GOTO BW1
2781         THEN
2782         BIT.B #4,&$20C
2783     0<> UNTIL
2784 REPEAT
2785 BIC #$30,&$380
2786 RLAM    #1,R11
2787 MOV.B   R11,R9
2788 RRUM    #2,R9
2789 BIT     #$4000,R11
2790 0= IF   BIS #$40,R9
2791 THEN
2792 RRUM    #3,R11
2793 XOR     @R1,R11
2794 BIT     #$400,R11
2795 0= ?GOTO BW1
2796 XOR #$400,0(R1)
2797 SUB #8,R15
2798 MOV R14,6(R15)
2799 MOV &$1DDC,4(R15)
2800 MOV #$10,&$1DDC
2801 MOV R9,0(R15)
2802 MOV #0,R14
2803 LO2HI
2804     LCD_CLEAR
2805     <# # #S #36 HOLD #>
2806     ['] LCD_WRC IS EMIT
2807     TYPE
2808     ['] EMIT >BODY IS EMIT
2809 HI2LO
2810 MOV @R15+,&$1DDC
2811 MOV @R15+,R14
2812 MOV @R1+,R0
2813 ENDASM
2814
2815 ASM BACKGROUND
2816 BEGIN
2817     CALL &$1814
2818     BIS &$180A,R2
2819 AGAIN
2820 ENDASM
2821
2822 CODE STOP
2823 BW1 MOV #SLEEP,R9
2824     ADD #4,R9
2825     MOV R9,-2(R9)
2826 COLON
2827 ['] WARM >BODY IS WARM
2828 ECHO
2829 ." RC5toLCD is removed. type START to restart"
2830 COLD
2831 ;
2832
2833 CODE APP_INIT
2834 MOV #%1011010100,&$3C0
2835 $1806 @ 16000 = [IF]
2836     MOV #1,&$3E0
2837 [THEN]
2838 $1806 @ 24000 = [IF]
2839     MOV #2,&$3E0
2840 [THEN]
2841     MOV #19,&$3D2
2842     MOV #%01100000,&$3C6
2843     MOV #10,&$3D6
2844     BIS.B #$20,&$204
2845     BIS.B #$20,&$20A
2846     BIS.B #7,&$245
2847     BIC.B #7,&$247
2848     BIS.B #$0F,&$224
2849     BIC.B #$0F,&$226
2850     BIS.B #4,&$20A
2851     BIC.B #4,&$20C
2852     MOV #RC5_INT,&$FFDE
2853     MOV #%0100010100,&$340
2854     MOV ##3276,&$352
2855     MOV #%10000,&$342
2856     MOV #WDT_INT,&$FFEA
2857 BIC #1,&$130
2858 BIS.B #3,&$20D
2859 MOV &$1808,R8
2860 CMP #4,R8
2861 0= ?GOTO BW1
2862 COLON
2863     #1000 20_US
2864     %011 TOP_LCD
2865     #205 20_US
2866     %011 TOP_LCD
2867     #5 20_US
2868     %011 TOP_LCD
2869     #2 20_US
2870     %010 TOP_LCD
2871     #2 20_US
2872     %00101000 LCD_WRF
2873     %1000 LCD_WRF
2874     LCD_CLEAR
2875     %0110 LCD_WRF
2876     %1100 LCD_WRF
2877     LCD_CLEAR
2878     ['] LCD_HOME IS CR
2879     ['] LCD_WRC  IS EMIT
2880     CR ." I love you"
2881     ['] CR >BODY IS CR
2882     ['] EMIT >BODY IS EMIT
2883     ." RC5toLCD is running. Type STOP to quit"
2884     ABORT
2885 ;
2886
2887 CODE START
2888 MOV #SLEEP,R9
2889 MOV #BACKGROUND,2(R9)
2890 MOV #WARM,R9
2891 MOV #APP_INIT,2(R9)
2892 MOV R9,R0
2893 ENDCODE 
2894
2895 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
2896
2897 MARKER {RC5TOLCD}
2898
2899 CODE 20_US
2900 BEGIN
2901     BEGIN
2902         BIT #1,&$3C0
2903     0<> UNTIL
2904     BIC #1,&$3C0
2905     SUB #1,R14
2906 U< UNTIL
2907 MOV @R15+,R14
2908 MOV @R13+,R0
2909 ENDCODE
2910
2911 CODE TOP_LCD
2912     BIS.B #4,&$243
2913     BIT.B #1,&$241
2914 0= IF
2915     AND.B #$0F,R14
2916     MOV.B R14,&$222
2917     BIC.B #4,&$243
2918     MOV @R15+,R14
2919     MOV @R13+,R0
2920 THEN
2921     SUB #2,R15
2922     MOV R14,0(R15)
2923     BIC.B #4,&$243
2924     MOV.B &$220,R14
2925     AND.B #$0F,R14
2926     MOV @R13+,R0
2927 ENDCODE
2928
2929 CODE LCD_WRC
2930     BIS.B #2,&$243
2931 BW1 SUB #2,R15
2932     MOV R14,0(R15)
2933     RRUM #4,R14
2934     BIC.B #1,&$243
2935     BIS.B #$0F,&$224
2936 COLON
2937     TOP_LCD 2 20_US
2938     TOP_LCD 2 20_US 
2939 ;
2940
2941 CODE LCD_WRF
2942     BIC.B #2,&$243
2943     GOTO BW1
2944 ENDCODE
2945
2946 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
2947 : LCD_HOME $02 LCD_WRF 100 20_us ;
2948
2949
2950
2951 ASM WDT_INT
2952 ADD #2,R1
2953 BIT.B #$20,&$240
2954 0= IF
2955     CMP #19,&$3D6
2956     U< IF
2957         ADD #1,&$3D6
2958     THEN
2959 ELSE
2960     BIT.B #$40,&$240
2961     0= IF
2962         CMP #3,&$3D6
2963         U>= IF
2964            SUB #1,&$3D6
2965         THEN
2966     THEN
2967 THEN
2968 BW1
2969 MOV @R1+,R0
2970 ENDASM
2971
2972 ASM RC5_INT
2973 ADD #2,R1
2974 $1806 @ 16000 = [IF]
2975     MOV #1,&$3A0
2976 [THEN]
2977 $1806 @ 24000 = [IF]
2978     MOV #2,&$3A0
2979 [THEN]
2980 MOV #1778,R9
2981 MOV #14,R10
2982 BEGIN
2983 MOV #%1011100100,&$380
2984     RRUM    #1,R9
2985     MOV     R9,R8
2986     RRUM    #1,R8
2987     ADD     R9,R8
2988     BEGIN   CMP R8,&$390
2989     U>= UNTIL
2990     BIT.B   #4,&$200
2991     ADDC    R11,R11
2992     MOV.B   &$200,&$208
2993     BIC.B   #4,&$20C
2994     SUB     #1,R10
2995 0<> WHILE
2996     ADD R9,R8
2997     BEGIN
2998         MOV &$390,R9
2999         CMP R8,R9
3000         U>= IF
3001         BIC #$30,&$380
3002         GOTO BW1
3003         THEN
3004         BIT.B #4,&$20C
3005     0<> UNTIL
3006 REPEAT
3007 BIC #$30,&$380
3008 RLAM    #1,R11
3009 MOV.B   R11,R9
3010 RRUM    #2,R9
3011 BIT     #$4000,R11
3012 0= IF   BIS #$40,R9
3013 THEN
3014 RRUM    #3,R11
3015 XOR     @R1,R11
3016 BIT     #$400,R11
3017 0= ?GOTO BW1
3018 XOR #$400,0(R1)
3019 SUB #8,R15
3020 MOV R14,6(R15)
3021 MOV &$1DDC,4(R15)
3022 MOV #$10,&$1DDC
3023 MOV R9,0(R15)
3024 MOV #0,R14
3025 LO2HI
3026     LCD_CLEAR
3027     <# # #S #36 HOLD #>
3028     ['] LCD_WRC IS EMIT
3029     TYPE
3030     ['] EMIT >BODY IS EMIT
3031 HI2LO
3032 MOV @R15+,&$1DDC
3033 MOV @R15+,R14
3034 MOV @R1+,R0
3035 ENDASM
3036
3037 ASM BACKGROUND
3038 BEGIN
3039     CALL &$1814
3040     BIS &$180A,R2
3041 AGAIN
3042 ENDASM
3043
3044 CODE STOP
3045 BW1 MOV #SLEEP,R9
3046     ADD #4,R9
3047     MOV R9,-2(R9)
3048 COLON
3049 ['] WARM >BODY IS WARM
3050 ECHO
3051 ." RC5toLCD is removed. type START to restart"
3052 COLD
3053 ;
3054
3055 CODE APP_INIT
3056 MOV #%1011010100,&$3C0
3057 $1806 @ 16000 = [IF]
3058     MOV #1,&$3E0
3059 [THEN]
3060 $1806 @ 24000 = [IF]
3061     MOV #2,&$3E0
3062 [THEN]
3063     MOV #19,&$3D2
3064     MOV #%01100000,&$3C6
3065     MOV #10,&$3D6
3066     BIS.B #$20,&$204
3067     BIS.B #$20,&$20A
3068     BIS.B #7,&$245
3069     BIC.B #7,&$247
3070     BIS.B #$0F,&$224
3071     BIC.B #$0F,&$226
3072     BIS.B #4,&$20A
3073     BIC.B #4,&$20C
3074     MOV #RC5_INT,&$FFDE
3075     MOV #%0100010100,&$340
3076     MOV ##3276,&$352
3077     MOV #%10000,&$342
3078     MOV #WDT_INT,&$FFEA
3079 BIC #1,&$130
3080 BIS.B #3,&$20D
3081 MOV &$1808,R8
3082 CMP #4,R8
3083 0= ?GOTO BW1
3084 COLON
3085     #1000 20_US
3086     %011 TOP_LCD
3087     #205 20_US
3088     %011 TOP_LCD
3089     #5 20_US
3090     %011 TOP_LCD
3091     #2 20_US
3092     %010 TOP_LCD
3093     #2 20_US
3094     %00101000 LCD_WRF
3095     %1000 LCD_WRF
3096     LCD_CLEAR
3097     %0110 LCD_WRF
3098     %1100 LCD_WRF
3099     LCD_CLEAR
3100     ['] LCD_HOME IS CR
3101     ['] LCD_WRC  IS EMIT
3102     CR ." I love you"
3103     ['] CR >BODY IS CR
3104     ['] EMIT >BODY IS EMIT
3105     ." RC5toLCD is running. Type STOP to quit"
3106     ABORT
3107 ;
3108
3109 CODE START
3110 MOV #SLEEP,R9
3111 MOV #BACKGROUND,2(R9)
3112 MOV #WARM,R9
3113 MOV #APP_INIT,2(R9)
3114 MOV R9,R0
3115 ENDCODE 
3116
3117 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
3118
3119 MARKER {RC5TOLCD}
3120
3121 CODE 20_US
3122 BEGIN
3123     BEGIN
3124         BIT #1,&$3C0
3125     0<> UNTIL
3126     BIC #1,&$3C0
3127     SUB #1,R14
3128 U< UNTIL
3129 MOV @R15+,R14
3130 MOV @R13+,R0
3131 ENDCODE
3132
3133 CODE TOP_LCD
3134     BIS.B #4,&$243
3135     BIT.B #1,&$241
3136 0= IF
3137     AND.B #$0F,R14
3138     MOV.B R14,&$222
3139     BIC.B #4,&$243
3140     MOV @R15+,R14
3141     MOV @R13+,R0
3142 THEN
3143     SUB #2,R15
3144     MOV R14,0(R15)
3145     BIC.B #4,&$243
3146     MOV.B &$220,R14
3147     AND.B #$0F,R14
3148     MOV @R13+,R0
3149 ENDCODE
3150
3151 CODE LCD_WRC
3152     BIS.B #2,&$243
3153 BW1 SUB #2,R15
3154     MOV R14,0(R15)
3155     RRUM #4,R14
3156     BIC.B #1,&$243
3157     BIS.B #$0F,&$224
3158 COLON
3159     TOP_LCD 2 20_US
3160     TOP_LCD 2 20_US 
3161 ;
3162
3163 CODE LCD_WRF
3164     BIC.B #2,&$243
3165     GOTO BW1
3166 ENDCODE
3167
3168 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3169 : LCD_HOME $02 LCD_WRF 100 20_us ;
3170
3171
3172
3173 ASM WDT_INT
3174 ADD #2,R1
3175 BIT.B #$20,&$240
3176 0= IF
3177     CMP #19,&$3D6
3178     U< IF
3179         ADD #1,&$3D6
3180     THEN
3181 ELSE
3182     BIT.B #$40,&$240
3183     0= IF
3184         CMP #3,&$3D6
3185         U>= IF
3186            SUB #1,&$3D6
3187         THEN
3188     THEN
3189 THEN
3190 BW1
3191 MOV @R1+,R0
3192 ENDASM
3193
3194 ASM RC5_INT
3195 ADD #2,R1
3196 $1806 @ 16000 = [IF]
3197     MOV #1,&$3A0
3198 [THEN]
3199 $1806 @ 24000 = [IF]
3200     MOV #2,&$3A0
3201 [THEN]
3202 MOV #1778,R9
3203 MOV #14,R10
3204 BEGIN
3205 MOV #%1011100100,&$380
3206     RRUM    #1,R9
3207     MOV     R9,R8
3208     RRUM    #1,R8
3209     ADD     R9,R8
3210     BEGIN   CMP R8,&$390
3211     U>= UNTIL
3212     BIT.B   #4,&$200
3213     ADDC    R11,R11
3214     MOV.B   &$200,&$208
3215     BIC.B   #4,&$20C
3216     SUB     #1,R10
3217 0<> WHILE
3218     ADD R9,R8
3219     BEGIN
3220         MOV &$390,R9
3221         CMP R8,R9
3222         U>= IF
3223         BIC #$30,&$380
3224         GOTO BW1
3225         THEN
3226         BIT.B #4,&$20C
3227     0<> UNTIL
3228 REPEAT
3229 BIC #$30,&$380
3230 RLAM    #1,R11
3231 MOV.B   R11,R9
3232 RRUM    #2,R9
3233 BIT     #$4000,R11
3234 0= IF   BIS #$40,R9
3235 THEN
3236 RRUM    #3,R11
3237 XOR     @R1,R11
3238 BIT     #$400,R11
3239 0= ?GOTO BW1
3240 XOR #$400,0(R1)
3241 SUB #8,R15
3242 MOV R14,6(R15)
3243 MOV &$1DDC,4(R15)
3244 MOV #$10,&$1DDC
3245 MOV R9,0(R15)
3246 MOV #0,R14
3247 LO2HI
3248     LCD_CLEAR
3249     <# # #S #36 HOLD #>
3250     ['] LCD_WRC IS EMIT
3251     TYPE
3252     ['] EMIT >BODY IS EMIT
3253 HI2LO
3254 MOV @R15+,&$1DDC
3255 MOV @R15+,R14
3256 MOV @R1+,R0
3257 ENDASM
3258
3259 ASM BACKGROUND
3260 BEGIN
3261     CALL &$1814
3262     BIS &$180A,R2
3263 AGAIN
3264 ENDASM
3265
3266 CODE STOP
3267 BW1 MOV #SLEEP,R9
3268     ADD #4,R9
3269     MOV R9,-2(R9)
3270 COLON
3271 ['] WARM >BODY IS WARM
3272 ECHO
3273 ." RC5toLCD is removed. type START to restart"
3274 COLD
3275 ;
3276
3277 CODE APP_INIT
3278 MOV #%1011010100,&$3C0
3279 $1806 @ 16000 = [IF]
3280     MOV #1,&$3E0
3281 [THEN]
3282 $1806 @ 24000 = [IF]
3283     MOV #2,&$3E0
3284 [THEN]
3285     MOV #19,&$3D2
3286     MOV #%01100000,&$3C6
3287     MOV #10,&$3D6
3288     BIS.B #$20,&$204
3289     BIS.B #$20,&$20A
3290     BIS.B #7,&$245
3291     BIC.B #7,&$247
3292     BIS.B #$0F,&$224
3293     BIC.B #$0F,&$226
3294     BIS.B #4,&$20A
3295     BIC.B #4,&$20C
3296     MOV #RC5_INT,&$FFDE
3297     MOV #%0100010100,&$340
3298     MOV ##3276,&$352
3299     MOV #%10000,&$342
3300     MOV #WDT_INT,&$FFEA
3301 BIC #1,&$130
3302 BIS.B #3,&$20D
3303 MOV &$1808,R8
3304 CMP #4,R8
3305 0= ?GOTO BW1
3306 COLON
3307     #1000 20_US
3308     %011 TOP_LCD
3309     #205 20_US
3310     %011 TOP_LCD
3311     #5 20_US
3312     %011 TOP_LCD
3313     #2 20_US
3314     %010 TOP_LCD
3315     #2 20_US
3316     %00101000 LCD_WRF
3317     %1000 LCD_WRF
3318     LCD_CLEAR
3319     %0110 LCD_WRF
3320     %1100 LCD_WRF
3321     LCD_CLEAR
3322     ['] LCD_HOME IS CR
3323     ['] LCD_WRC  IS EMIT
3324     CR ." I love you"
3325     ['] CR >BODY IS CR
3326     ['] EMIT >BODY IS EMIT
3327     ." RC5toLCD is running. Type STOP to quit"
3328     ABORT
3329 ;
3330
3331 CODE START
3332 MOV #SLEEP,R9
3333 MOV #BACKGROUND,2(R9)
3334 MOV #WARM,R9
3335 MOV #APP_INIT,2(R9)
3336 MOV R9,R0
3337 ENDCODE 
3338
3339 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
3340
3341 MARKER {RC5TOLCD}
3342
3343 CODE 20_US
3344 BEGIN
3345     BEGIN
3346         BIT #1,&$3C0
3347     0<> UNTIL
3348     BIC #1,&$3C0
3349     SUB #1,R14
3350 U< UNTIL
3351 MOV @R15+,R14
3352 MOV @R13+,R0
3353 ENDCODE
3354
3355 CODE TOP_LCD
3356     BIS.B #4,&$243
3357     BIT.B #1,&$241
3358 0= IF
3359     AND.B #$0F,R14
3360     MOV.B R14,&$222
3361     BIC.B #4,&$243
3362     MOV @R15+,R14
3363     MOV @R13+,R0
3364 THEN
3365     SUB #2,R15
3366     MOV R14,0(R15)
3367     BIC.B #4,&$243
3368     MOV.B &$220,R14
3369     AND.B #$0F,R14
3370     MOV @R13+,R0
3371 ENDCODE
3372
3373 CODE LCD_WRC
3374     BIS.B #2,&$243
3375 BW1 SUB #2,R15
3376     MOV R14,0(R15)
3377     RRUM #4,R14
3378     BIC.B #1,&$243
3379     BIS.B #$0F,&$224
3380 COLON
3381     TOP_LCD 2 20_US
3382     TOP_LCD 2 20_US 
3383 ;
3384
3385 CODE LCD_WRF
3386     BIC.B #2,&$243
3387     GOTO BW1
3388 ENDCODE
3389
3390 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3391 : LCD_HOME $02 LCD_WRF 100 20_us ;
3392
3393
3394
3395 ASM WDT_INT
3396 ADD #2,R1
3397 BIT.B #$20,&$240
3398 0= IF
3399     CMP #19,&$3D6
3400     U< IF
3401         ADD #1,&$3D6
3402     THEN
3403 ELSE
3404     BIT.B #$40,&$240
3405     0= IF
3406         CMP #3,&$3D6
3407         U>= IF
3408            SUB #1,&$3D6
3409         THEN
3410     THEN
3411 THEN
3412 BW1
3413 MOV @R1+,R0
3414 ENDASM
3415
3416 ASM RC5_INT
3417 ADD #2,R1
3418 $1806 @ 16000 = [IF]
3419     MOV #1,&$3A0
3420 [THEN]
3421 $1806 @ 24000 = [IF]
3422     MOV #2,&$3A0
3423 [THEN]
3424 MOV #1778,R9
3425 MOV #14,R10
3426 BEGIN
3427 MOV #%1011100100,&$380
3428     RRUM    #1,R9
3429     MOV     R9,R8
3430     RRUM    #1,R8
3431     ADD     R9,R8
3432     BEGIN   CMP R8,&$390
3433     U>= UNTIL
3434     BIT.B   #4,&$200
3435     ADDC    R11,R11
3436     MOV.B   &$200,&$208
3437     BIC.B   #4,&$20C
3438     SUB     #1,R10
3439 0<> WHILE
3440     ADD R9,R8
3441     BEGIN
3442         MOV &$390,R9
3443         CMP R8,R9
3444         U>= IF
3445         BIC #$30,&$380
3446         GOTO BW1
3447         THEN
3448         BIT.B #4,&$20C
3449     0<> UNTIL
3450 REPEAT
3451 BIC #$30,&$380
3452 RLAM    #1,R11
3453 MOV.B   R11,R9
3454 RRUM    #2,R9
3455 BIT     #$4000,R11
3456 0= IF   BIS #$40,R9
3457 THEN
3458 RRUM    #3,R11
3459 XOR     @R1,R11
3460 BIT     #$400,R11
3461 0= ?GOTO BW1
3462 XOR #$400,0(R1)
3463 SUB #8,R15
3464 MOV R14,6(R15)
3465 MOV &$1DDC,4(R15)
3466 MOV #$10,&$1DDC
3467 MOV R9,0(R15)
3468 MOV #0,R14
3469 LO2HI
3470     LCD_CLEAR
3471     <# # #S #36 HOLD #>
3472     ['] LCD_WRC IS EMIT
3473     TYPE
3474     ['] EMIT >BODY IS EMIT
3475 HI2LO
3476 MOV @R15+,&$1DDC
3477 MOV @R15+,R14
3478 MOV @R1+,R0
3479 ENDASM
3480
3481 ASM BACKGROUND
3482 BEGIN
3483     CALL &$1814
3484     BIS &$180A,R2
3485 AGAIN
3486 ENDASM
3487
3488 CODE STOP
3489 BW1 MOV #SLEEP,R9
3490     ADD #4,R9
3491     MOV R9,-2(R9)
3492 COLON
3493 ['] WARM >BODY IS WARM
3494 ECHO
3495 ." RC5toLCD is removed. type START to restart"
3496 COLD
3497 ;
3498
3499 CODE APP_INIT
3500 MOV #%1011010100,&$3C0
3501 $1806 @ 16000 = [IF]
3502     MOV #1,&$3E0
3503 [THEN]
3504 $1806 @ 24000 = [IF]
3505     MOV #2,&$3E0
3506 [THEN]
3507     MOV #19,&$3D2
3508     MOV #%01100000,&$3C6
3509     MOV #10,&$3D6
3510     BIS.B #$20,&$204
3511     BIS.B #$20,&$20A
3512     BIS.B #7,&$245
3513     BIC.B #7,&$247
3514     BIS.B #$0F,&$224
3515     BIC.B #$0F,&$226
3516     BIS.B #4,&$20A
3517     BIC.B #4,&$20C
3518     MOV #RC5_INT,&$FFDE
3519     MOV #%0100010100,&$340
3520     MOV ##3276,&$352
3521     MOV #%10000,&$342
3522     MOV #WDT_INT,&$FFEA
3523 BIC #1,&$130
3524 BIS.B #3,&$20D
3525 MOV &$1808,R8
3526 CMP #4,R8
3527 0= ?GOTO BW1
3528 COLON
3529     #1000 20_US
3530     %011 TOP_LCD
3531     #205 20_US
3532     %011 TOP_LCD
3533     #5 20_US
3534     %011 TOP_LCD
3535     #2 20_US
3536     %010 TOP_LCD
3537     #2 20_US
3538     %00101000 LCD_WRF
3539     %1000 LCD_WRF
3540     LCD_CLEAR
3541     %0110 LCD_WRF
3542     %1100 LCD_WRF
3543     LCD_CLEAR
3544     ['] LCD_HOME IS CR
3545     ['] LCD_WRC  IS EMIT
3546     CR ." I love you"
3547     ['] CR >BODY IS CR
3548     ['] EMIT >BODY IS EMIT
3549     ." RC5toLCD is running. Type STOP to quit"
3550     ABORT
3551 ;
3552
3553 CODE START
3554 MOV #SLEEP,R9
3555 MOV #BACKGROUND,2(R9)
3556 MOV #WARM,R9
3557 MOV #APP_INIT,2(R9)
3558 MOV R9,R0
3559 ENDCODE 
3560
3561 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
3562
3563 MARKER {RC5TOLCD}
3564
3565 CODE 20_US
3566 BEGIN
3567     BEGIN
3568         BIT #1,&$3C0
3569     0<> UNTIL
3570     BIC #1,&$3C0
3571     SUB #1,R14
3572 U< UNTIL
3573 MOV @R15+,R14
3574 MOV @R13+,R0
3575 ENDCODE
3576
3577 CODE TOP_LCD
3578     BIS.B #4,&$243
3579     BIT.B #1,&$241
3580 0= IF
3581     AND.B #$0F,R14
3582     MOV.B R14,&$222
3583     BIC.B #4,&$243
3584     MOV @R15+,R14
3585     MOV @R13+,R0
3586 THEN
3587     SUB #2,R15
3588     MOV R14,0(R15)
3589     BIC.B #4,&$243
3590     MOV.B &$220,R14
3591     AND.B #$0F,R14
3592     MOV @R13+,R0
3593 ENDCODE
3594
3595 CODE LCD_WRC
3596     BIS.B #2,&$243
3597 BW1 SUB #2,R15
3598     MOV R14,0(R15)
3599     RRUM #4,R14
3600     BIC.B #1,&$243
3601     BIS.B #$0F,&$224
3602 COLON
3603     TOP_LCD 2 20_US
3604     TOP_LCD 2 20_US 
3605 ;
3606
3607 CODE LCD_WRF
3608     BIC.B #2,&$243
3609     GOTO BW1
3610 ENDCODE
3611
3612 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3613 : LCD_HOME $02 LCD_WRF 100 20_us ;
3614
3615
3616
3617 ASM WDT_INT
3618 ADD #2,R1
3619 BIT.B #$20,&$240
3620 0= IF
3621     CMP #19,&$3D6
3622     U< IF
3623         ADD #1,&$3D6
3624     THEN
3625 ELSE
3626     BIT.B #$40,&$240
3627     0= IF
3628         CMP #3,&$3D6
3629         U>= IF
3630            SUB #1,&$3D6
3631         THEN
3632     THEN
3633 THEN
3634 BW1
3635 MOV @R1+,R0
3636 ENDASM
3637
3638 ASM RC5_INT
3639 ADD #2,R1
3640 $1806 @ 16000 = [IF]
3641     MOV #1,&$3A0
3642 [THEN]
3643 $1806 @ 24000 = [IF]
3644     MOV #2,&$3A0
3645 [THEN]
3646 MOV #1778,R9
3647 MOV #14,R10
3648 BEGIN
3649 MOV #%1011100100,&$380
3650     RRUM    #1,R9
3651     MOV     R9,R8
3652     RRUM    #1,R8
3653     ADD     R9,R8
3654     BEGIN   CMP R8,&$390
3655     U>= UNTIL
3656     BIT.B   #4,&$200
3657     ADDC    R11,R11
3658     MOV.B   &$200,&$208
3659     BIC.B   #4,&$20C
3660     SUB     #1,R10
3661 0<> WHILE
3662     ADD R9,R8
3663     BEGIN
3664         MOV &$390,R9
3665         CMP R8,R9
3666         U>= IF
3667         BIC #$30,&$380
3668         GOTO BW1
3669         THEN
3670         BIT.B #4,&$20C
3671     0<> UNTIL
3672 REPEAT
3673 BIC #$30,&$380
3674 RLAM    #1,R11
3675 MOV.B   R11,R9
3676 RRUM    #2,R9
3677 BIT     #$4000,R11
3678 0= IF   BIS #$40,R9
3679 THEN
3680 RRUM    #3,R11
3681 XOR     @R1,R11
3682 BIT     #$400,R11
3683 0= ?GOTO BW1
3684 XOR #$400,0(R1)
3685 SUB #8,R15
3686 MOV R14,6(R15)
3687 MOV &$1DDC,4(R15)
3688 MOV #$10,&$1DDC
3689 MOV R9,0(R15)
3690 MOV #0,R14
3691 LO2HI
3692     LCD_CLEAR
3693     <# # #S #36 HOLD #>
3694     ['] LCD_WRC IS EMIT
3695     TYPE
3696     ['] EMIT >BODY IS EMIT
3697 HI2LO
3698 MOV @R15+,&$1DDC
3699 MOV @R15+,R14
3700 MOV @R1+,R0
3701 ENDASM
3702
3703 ASM BACKGROUND
3704 BEGIN
3705     CALL &$1814
3706     BIS &$180A,R2
3707 AGAIN
3708 ENDASM
3709
3710 CODE STOP
3711 BW1 MOV #SLEEP,R9
3712     ADD #4,R9
3713     MOV R9,-2(R9)
3714 COLON
3715 ['] WARM >BODY IS WARM
3716 ECHO
3717 ." RC5toLCD is removed. type START to restart"
3718 COLD
3719 ;
3720
3721 CODE APP_INIT
3722 MOV #%1011010100,&$3C0
3723 $1806 @ 16000 = [IF]
3724     MOV #1,&$3E0
3725 [THEN]
3726 $1806 @ 24000 = [IF]
3727     MOV #2,&$3E0
3728 [THEN]
3729     MOV #19,&$3D2
3730     MOV #%01100000,&$3C6
3731     MOV #10,&$3D6
3732     BIS.B #$20,&$204
3733     BIS.B #$20,&$20A
3734     BIS.B #7,&$245
3735     BIC.B #7,&$247
3736     BIS.B #$0F,&$224
3737     BIC.B #$0F,&$226
3738     BIS.B #4,&$20A
3739     BIC.B #4,&$20C
3740     MOV #RC5_INT,&$FFDE
3741     MOV #%0100010100,&$340
3742     MOV ##3276,&$352
3743     MOV #%10000,&$342
3744     MOV #WDT_INT,&$FFEA
3745 BIC #1,&$130
3746 BIS.B #3,&$20D
3747 MOV &$1808,R8
3748 CMP #4,R8
3749 0= ?GOTO BW1
3750 COLON
3751     #1000 20_US
3752     %011 TOP_LCD
3753     #205 20_US
3754     %011 TOP_LCD
3755     #5 20_US
3756     %011 TOP_LCD
3757     #2 20_US
3758     %010 TOP_LCD
3759     #2 20_US
3760     %00101000 LCD_WRF
3761     %1000 LCD_WRF
3762     LCD_CLEAR
3763     %0110 LCD_WRF
3764     %1100 LCD_WRF
3765     LCD_CLEAR
3766     ['] LCD_HOME IS CR
3767     ['] LCD_WRC  IS EMIT
3768     CR ." I love you"
3769     ['] CR >BODY IS CR
3770     ['] EMIT >BODY IS EMIT
3771     ." RC5toLCD is running. Type STOP to quit"
3772     ABORT
3773 ;
3774
3775 CODE START
3776 MOV #SLEEP,R9
3777 MOV #BACKGROUND,2(R9)
3778 MOV #WARM,R9
3779 MOV #APP_INIT,2(R9)
3780 MOV R9,R0
3781 ENDCODE 
3782
3783 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
3784
3785 MARKER {RC5TOLCD}
3786
3787 CODE 20_US
3788 BEGIN
3789     BEGIN
3790         BIT #1,&$3C0
3791     0<> UNTIL
3792     BIC #1,&$3C0
3793     SUB #1,R14
3794 U< UNTIL
3795 MOV @R15+,R14
3796 MOV @R13+,R0
3797 ENDCODE
3798
3799 CODE TOP_LCD
3800     BIS.B #4,&$243
3801     BIT.B #1,&$241
3802 0= IF
3803     AND.B #$0F,R14
3804     MOV.B R14,&$222
3805     BIC.B #4,&$243
3806     MOV @R15+,R14
3807     MOV @R13+,R0
3808 THEN
3809     SUB #2,R15
3810     MOV R14,0(R15)
3811     BIC.B #4,&$243
3812     MOV.B &$220,R14
3813     AND.B #$0F,R14
3814     MOV @R13+,R0
3815 ENDCODE
3816
3817 CODE LCD_WRC
3818     BIS.B #2,&$243
3819 BW1 SUB #2,R15
3820     MOV R14,0(R15)
3821     RRUM #4,R14
3822     BIC.B #1,&$243
3823     BIS.B #$0F,&$224
3824 COLON
3825     TOP_LCD 2 20_US
3826     TOP_LCD 2 20_US 
3827 ;
3828
3829 CODE LCD_WRF
3830     BIC.B #2,&$243
3831     GOTO BW1
3832 ENDCODE
3833
3834 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
3835 : LCD_HOME $02 LCD_WRF 100 20_us ;
3836
3837
3838
3839 ASM WDT_INT
3840 ADD #2,R1
3841 BIT.B #$20,&$240
3842 0= IF
3843     CMP #19,&$3D6
3844     U< IF
3845         ADD #1,&$3D6
3846     THEN
3847 ELSE
3848     BIT.B #$40,&$240
3849     0= IF
3850         CMP #3,&$3D6
3851         U>= IF
3852            SUB #1,&$3D6
3853         THEN
3854     THEN
3855 THEN
3856 BW1
3857 MOV @R1+,R0
3858 ENDASM
3859
3860 ASM RC5_INT
3861 ADD #2,R1
3862 $1806 @ 16000 = [IF]
3863     MOV #1,&$3A0
3864 [THEN]
3865 $1806 @ 24000 = [IF]
3866     MOV #2,&$3A0
3867 [THEN]
3868 MOV #1778,R9
3869 MOV #14,R10
3870 BEGIN
3871 MOV #%1011100100,&$380
3872     RRUM    #1,R9
3873     MOV     R9,R8
3874     RRUM    #1,R8
3875     ADD     R9,R8
3876     BEGIN   CMP R8,&$390
3877     U>= UNTIL
3878     BIT.B   #4,&$200
3879     ADDC    R11,R11
3880     MOV.B   &$200,&$208
3881     BIC.B   #4,&$20C
3882     SUB     #1,R10
3883 0<> WHILE
3884     ADD R9,R8
3885     BEGIN
3886         MOV &$390,R9
3887         CMP R8,R9
3888         U>= IF
3889         BIC #$30,&$380
3890         GOTO BW1
3891         THEN
3892         BIT.B #4,&$20C
3893     0<> UNTIL
3894 REPEAT
3895 BIC #$30,&$380
3896 RLAM    #1,R11
3897 MOV.B   R11,R9
3898 RRUM    #2,R9
3899 BIT     #$4000,R11
3900 0= IF   BIS #$40,R9
3901 THEN
3902 RRUM    #3,R11
3903 XOR     @R1,R11
3904 BIT     #$400,R11
3905 0= ?GOTO BW1
3906 XOR #$400,0(R1)
3907 SUB #8,R15
3908 MOV R14,6(R15)
3909 MOV &$1DDC,4(R15)
3910 MOV #$10,&$1DDC
3911 MOV R9,0(R15)
3912 MOV #0,R14
3913 LO2HI
3914     LCD_CLEAR
3915     <# # #S #36 HOLD #>
3916     ['] LCD_WRC IS EMIT
3917     TYPE
3918     ['] EMIT >BODY IS EMIT
3919 HI2LO
3920 MOV @R15+,&$1DDC
3921 MOV @R15+,R14
3922 MOV @R1+,R0
3923 ENDASM
3924
3925 ASM BACKGROUND
3926 BEGIN
3927     CALL &$1814
3928     BIS &$180A,R2
3929 AGAIN
3930 ENDASM
3931
3932 CODE STOP
3933 BW1 MOV #SLEEP,R9
3934     ADD #4,R9
3935     MOV R9,-2(R9)
3936 COLON
3937 ['] WARM >BODY IS WARM
3938 ECHO
3939 ." RC5toLCD is removed. type START to restart"
3940 COLD
3941 ;
3942
3943 CODE APP_INIT
3944 MOV #%1011010100,&$3C0
3945 $1806 @ 16000 = [IF]
3946     MOV #1,&$3E0
3947 [THEN]
3948 $1806 @ 24000 = [IF]
3949     MOV #2,&$3E0
3950 [THEN]
3951     MOV #19,&$3D2
3952     MOV #%01100000,&$3C6
3953     MOV #10,&$3D6
3954     BIS.B #$20,&$204
3955     BIS.B #$20,&$20A
3956     BIS.B #7,&$245
3957     BIC.B #7,&$247
3958     BIS.B #$0F,&$224
3959     BIC.B #$0F,&$226
3960     BIS.B #4,&$20A
3961     BIC.B #4,&$20C
3962     MOV #RC5_INT,&$FFDE
3963     MOV #%0100010100,&$340
3964     MOV ##3276,&$352
3965     MOV #%10000,&$342
3966     MOV #WDT_INT,&$FFEA
3967 BIC #1,&$130
3968 BIS.B #3,&$20D
3969 MOV &$1808,R8
3970 CMP #4,R8
3971 0= ?GOTO BW1
3972 COLON
3973     #1000 20_US
3974     %011 TOP_LCD
3975     #205 20_US
3976     %011 TOP_LCD
3977     #5 20_US
3978     %011 TOP_LCD
3979     #2 20_US
3980     %010 TOP_LCD
3981     #2 20_US
3982     %00101000 LCD_WRF
3983     %1000 LCD_WRF
3984     LCD_CLEAR
3985     %0110 LCD_WRF
3986     %1100 LCD_WRF
3987     LCD_CLEAR
3988     ['] LCD_HOME IS CR
3989     ['] LCD_WRC  IS EMIT
3990     CR ." I love you"
3991     ['] CR >BODY IS CR
3992     ['] EMIT >BODY IS EMIT
3993     ." RC5toLCD is running. Type STOP to quit"
3994     ABORT
3995 ;
3996
3997 CODE START
3998 MOV #SLEEP,R9
3999 MOV #BACKGROUND,2(R9)
4000 MOV #WARM,R9
4001 MOV #APP_INIT,2(R9)
4002 MOV R9,R0
4003 ENDCODE 
4004
4005 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4006
4007 MARKER {RC5TOLCD}
4008
4009 CODE 20_US
4010 BEGIN
4011     BEGIN
4012         BIT #1,&$3C0
4013     0<> UNTIL
4014     BIC #1,&$3C0
4015     SUB #1,R14
4016 U< UNTIL
4017 MOV @R15+,R14
4018 MOV @R13+,R0
4019 ENDCODE
4020
4021 CODE TOP_LCD
4022     BIS.B #4,&$243
4023     BIT.B #1,&$241
4024 0= IF
4025     AND.B #$0F,R14
4026     MOV.B R14,&$222
4027     BIC.B #4,&$243
4028     MOV @R15+,R14
4029     MOV @R13+,R0
4030 THEN
4031     SUB #2,R15
4032     MOV R14,0(R15)
4033     BIC.B #4,&$243
4034     MOV.B &$220,R14
4035     AND.B #$0F,R14
4036     MOV @R13+,R0
4037 ENDCODE
4038
4039 CODE LCD_WRC
4040     BIS.B #2,&$243
4041 BW1 SUB #2,R15
4042     MOV R14,0(R15)
4043     RRUM #4,R14
4044     BIC.B #1,&$243
4045     BIS.B #$0F,&$224
4046 COLON
4047     TOP_LCD 2 20_US
4048     TOP_LCD 2 20_US 
4049 ;
4050
4051 CODE LCD_WRF
4052     BIC.B #2,&$243
4053     GOTO BW1
4054 ENDCODE
4055
4056 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4057 : LCD_HOME $02 LCD_WRF 100 20_us ;
4058
4059
4060
4061 ASM WDT_INT
4062 ADD #2,R1
4063 BIT.B #$20,&$240
4064 0= IF
4065     CMP #19,&$3D6
4066     U< IF
4067         ADD #1,&$3D6
4068     THEN
4069 ELSE
4070     BIT.B #$40,&$240
4071     0= IF
4072         CMP #3,&$3D6
4073         U>= IF
4074            SUB #1,&$3D6
4075         THEN
4076     THEN
4077 THEN
4078 BW1
4079 MOV @R1+,R0
4080 ENDASM
4081
4082 ASM RC5_INT
4083 ADD #2,R1
4084 $1806 @ 16000 = [IF]
4085     MOV #1,&$3A0
4086 [THEN]
4087 $1806 @ 24000 = [IF]
4088     MOV #2,&$3A0
4089 [THEN]
4090 MOV #1778,R9
4091 MOV #14,R10
4092 BEGIN
4093 MOV #%1011100100,&$380
4094     RRUM    #1,R9
4095     MOV     R9,R8
4096     RRUM    #1,R8
4097     ADD     R9,R8
4098     BEGIN   CMP R8,&$390
4099     U>= UNTIL
4100     BIT.B   #4,&$200
4101     ADDC    R11,R11
4102     MOV.B   &$200,&$208
4103     BIC.B   #4,&$20C
4104     SUB     #1,R10
4105 0<> WHILE
4106     ADD R9,R8
4107     BEGIN
4108         MOV &$390,R9
4109         CMP R8,R9
4110         U>= IF
4111         BIC #$30,&$380
4112         GOTO BW1
4113         THEN
4114         BIT.B #4,&$20C
4115     0<> UNTIL
4116 REPEAT
4117 BIC #$30,&$380
4118 RLAM    #1,R11
4119 MOV.B   R11,R9
4120 RRUM    #2,R9
4121 BIT     #$4000,R11
4122 0= IF   BIS #$40,R9
4123 THEN
4124 RRUM    #3,R11
4125 XOR     @R1,R11
4126 BIT     #$400,R11
4127 0= ?GOTO BW1
4128 XOR #$400,0(R1)
4129 SUB #8,R15
4130 MOV R14,6(R15)
4131 MOV &$1DDC,4(R15)
4132 MOV #$10,&$1DDC
4133 MOV R9,0(R15)
4134 MOV #0,R14
4135 LO2HI
4136     LCD_CLEAR
4137     <# # #S #36 HOLD #>
4138     ['] LCD_WRC IS EMIT
4139     TYPE
4140     ['] EMIT >BODY IS EMIT
4141 HI2LO
4142 MOV @R15+,&$1DDC
4143 MOV @R15+,R14
4144 MOV @R1+,R0
4145 ENDASM
4146
4147 ASM BACKGROUND
4148 BEGIN
4149     CALL &$1814
4150     BIS &$180A,R2
4151 AGAIN
4152 ENDASM
4153
4154 CODE STOP
4155 BW1 MOV #SLEEP,R9
4156     ADD #4,R9
4157     MOV R9,-2(R9)
4158 COLON
4159 ['] WARM >BODY IS WARM
4160 ECHO
4161 ." RC5toLCD is removed. type START to restart"
4162 COLD
4163 ;
4164
4165 CODE APP_INIT
4166 MOV #%1011010100,&$3C0
4167 $1806 @ 16000 = [IF]
4168     MOV #1,&$3E0
4169 [THEN]
4170 $1806 @ 24000 = [IF]
4171     MOV #2,&$3E0
4172 [THEN]
4173     MOV #19,&$3D2
4174     MOV #%01100000,&$3C6
4175     MOV #10,&$3D6
4176     BIS.B #$20,&$204
4177     BIS.B #$20,&$20A
4178     BIS.B #7,&$245
4179     BIC.B #7,&$247
4180     BIS.B #$0F,&$224
4181     BIC.B #$0F,&$226
4182     BIS.B #4,&$20A
4183     BIC.B #4,&$20C
4184     MOV #RC5_INT,&$FFDE
4185     MOV #%0100010100,&$340
4186     MOV ##3276,&$352
4187     MOV #%10000,&$342
4188     MOV #WDT_INT,&$FFEA
4189 BIC #1,&$130
4190 BIS.B #3,&$20D
4191 MOV &$1808,R8
4192 CMP #4,R8
4193 0= ?GOTO BW1
4194 COLON
4195     #1000 20_US
4196     %011 TOP_LCD
4197     #205 20_US
4198     %011 TOP_LCD
4199     #5 20_US
4200     %011 TOP_LCD
4201     #2 20_US
4202     %010 TOP_LCD
4203     #2 20_US
4204     %00101000 LCD_WRF
4205     %1000 LCD_WRF
4206     LCD_CLEAR
4207     %0110 LCD_WRF
4208     %1100 LCD_WRF
4209     LCD_CLEAR
4210     ['] LCD_HOME IS CR
4211     ['] LCD_WRC  IS EMIT
4212     CR ." I love you"
4213     ['] CR >BODY IS CR
4214     ['] EMIT >BODY IS EMIT
4215     ." RC5toLCD is running. Type STOP to quit"
4216     ABORT
4217 ;
4218
4219 CODE START
4220 MOV #SLEEP,R9
4221 MOV #BACKGROUND,2(R9)
4222 MOV #WARM,R9
4223 MOV #APP_INIT,2(R9)
4224 MOV R9,R0
4225 ENDCODE 
4226
4227 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4228
4229 MARKER {RC5TOLCD}
4230
4231 CODE 20_US
4232 BEGIN
4233     BEGIN
4234         BIT #1,&$3C0
4235     0<> UNTIL
4236     BIC #1,&$3C0
4237     SUB #1,R14
4238 U< UNTIL
4239 MOV @R15+,R14
4240 MOV @R13+,R0
4241 ENDCODE
4242
4243 CODE TOP_LCD
4244     BIS.B #4,&$243
4245     BIT.B #1,&$241
4246 0= IF
4247     AND.B #$0F,R14
4248     MOV.B R14,&$222
4249     BIC.B #4,&$243
4250     MOV @R15+,R14
4251     MOV @R13+,R0
4252 THEN
4253     SUB #2,R15
4254     MOV R14,0(R15)
4255     BIC.B #4,&$243
4256     MOV.B &$220,R14
4257     AND.B #$0F,R14
4258     MOV @R13+,R0
4259 ENDCODE
4260
4261 CODE LCD_WRC
4262     BIS.B #2,&$243
4263 BW1 SUB #2,R15
4264     MOV R14,0(R15)
4265     RRUM #4,R14
4266     BIC.B #1,&$243
4267     BIS.B #$0F,&$224
4268 COLON
4269     TOP_LCD 2 20_US
4270     TOP_LCD 2 20_US 
4271 ;
4272
4273 CODE LCD_WRF
4274     BIC.B #2,&$243
4275     GOTO BW1
4276 ENDCODE
4277
4278 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4279 : LCD_HOME $02 LCD_WRF 100 20_us ;
4280
4281
4282
4283 ASM WDT_INT
4284 ADD #2,R1
4285 BIT.B #$20,&$240
4286 0= IF
4287     CMP #19,&$3D6
4288     U< IF
4289         ADD #1,&$3D6
4290     THEN
4291 ELSE
4292     BIT.B #$40,&$240
4293     0= IF
4294         CMP #3,&$3D6
4295         U>= IF
4296            SUB #1,&$3D6
4297         THEN
4298     THEN
4299 THEN
4300 BW1
4301 MOV @R1+,R0
4302 ENDASM
4303
4304 ASM RC5_INT
4305 ADD #2,R1
4306 $1806 @ 16000 = [IF]
4307     MOV #1,&$3A0
4308 [THEN]
4309 $1806 @ 24000 = [IF]
4310     MOV #2,&$3A0
4311 [THEN]
4312 MOV #1778,R9
4313 MOV #14,R10
4314 BEGIN
4315 MOV #%1011100100,&$380
4316     RRUM    #1,R9
4317     MOV     R9,R8
4318     RRUM    #1,R8
4319     ADD     R9,R8
4320     BEGIN   CMP R8,&$390
4321     U>= UNTIL
4322     BIT.B   #4,&$200
4323     ADDC    R11,R11
4324     MOV.B   &$200,&$208
4325     BIC.B   #4,&$20C
4326     SUB     #1,R10
4327 0<> WHILE
4328     ADD R9,R8
4329     BEGIN
4330         MOV &$390,R9
4331         CMP R8,R9
4332         U>= IF
4333         BIC #$30,&$380
4334         GOTO BW1
4335         THEN
4336         BIT.B #4,&$20C
4337     0<> UNTIL
4338 REPEAT
4339 BIC #$30,&$380
4340 RLAM    #1,R11
4341 MOV.B   R11,R9
4342 RRUM    #2,R9
4343 BIT     #$4000,R11
4344 0= IF   BIS #$40,R9
4345 THEN
4346 RRUM    #3,R11
4347 XOR     @R1,R11
4348 BIT     #$400,R11
4349 0= ?GOTO BW1
4350 XOR #$400,0(R1)
4351 SUB #8,R15
4352 MOV R14,6(R15)
4353 MOV &$1DDC,4(R15)
4354 MOV #$10,&$1DDC
4355 MOV R9,0(R15)
4356 MOV #0,R14
4357 LO2HI
4358     LCD_CLEAR
4359     <# # #S #36 HOLD #>
4360     ['] LCD_WRC IS EMIT
4361     TYPE
4362     ['] EMIT >BODY IS EMIT
4363 HI2LO
4364 MOV @R15+,&$1DDC
4365 MOV @R15+,R14
4366 MOV @R1+,R0
4367 ENDASM
4368
4369 ASM BACKGROUND
4370 BEGIN
4371     CALL &$1814
4372     BIS &$180A,R2
4373 AGAIN
4374 ENDASM
4375
4376 CODE STOP
4377 BW1 MOV #SLEEP,R9
4378     ADD #4,R9
4379     MOV R9,-2(R9)
4380 COLON
4381 ['] WARM >BODY IS WARM
4382 ECHO
4383 ." RC5toLCD is removed. type START to restart"
4384 COLD
4385 ;
4386
4387 CODE APP_INIT
4388 MOV #%1011010100,&$3C0
4389 $1806 @ 16000 = [IF]
4390     MOV #1,&$3E0
4391 [THEN]
4392 $1806 @ 24000 = [IF]
4393     MOV #2,&$3E0
4394 [THEN]
4395     MOV #19,&$3D2
4396     MOV #%01100000,&$3C6
4397     MOV #10,&$3D6
4398     BIS.B #$20,&$204
4399     BIS.B #$20,&$20A
4400     BIS.B #7,&$245
4401     BIC.B #7,&$247
4402     BIS.B #$0F,&$224
4403     BIC.B #$0F,&$226
4404     BIS.B #4,&$20A
4405     BIC.B #4,&$20C
4406     MOV #RC5_INT,&$FFDE
4407     MOV #%0100010100,&$340
4408     MOV ##3276,&$352
4409     MOV #%10000,&$342
4410     MOV #WDT_INT,&$FFEA
4411 BIC #1,&$130
4412 BIS.B #3,&$20D
4413 MOV &$1808,R8
4414 CMP #4,R8
4415 0= ?GOTO BW1
4416 COLON
4417     #1000 20_US
4418     %011 TOP_LCD
4419     #205 20_US
4420     %011 TOP_LCD
4421     #5 20_US
4422     %011 TOP_LCD
4423     #2 20_US
4424     %010 TOP_LCD
4425     #2 20_US
4426     %00101000 LCD_WRF
4427     %1000 LCD_WRF
4428     LCD_CLEAR
4429     %0110 LCD_WRF
4430     %1100 LCD_WRF
4431     LCD_CLEAR
4432     ['] LCD_HOME IS CR
4433     ['] LCD_WRC  IS EMIT
4434     CR ." I love you"
4435     ['] CR >BODY IS CR
4436     ['] EMIT >BODY IS EMIT
4437     ." RC5toLCD is running. Type STOP to quit"
4438     ABORT
4439 ;
4440
4441 CODE START
4442 MOV #SLEEP,R9
4443 MOV #BACKGROUND,2(R9)
4444 MOV #WARM,R9
4445 MOV #APP_INIT,2(R9)
4446 MOV R9,R0
4447 ENDCODE 
4448
4449 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4450
4451 MARKER {RC5TOLCD}
4452
4453 CODE 20_US
4454 BEGIN
4455     BEGIN
4456         BIT #1,&$3C0
4457     0<> UNTIL
4458     BIC #1,&$3C0
4459     SUB #1,R14
4460 U< UNTIL
4461 MOV @R15+,R14
4462 MOV @R13+,R0
4463 ENDCODE
4464
4465 CODE TOP_LCD
4466     BIS.B #4,&$243
4467     BIT.B #1,&$241
4468 0= IF
4469     AND.B #$0F,R14
4470     MOV.B R14,&$222
4471     BIC.B #4,&$243
4472     MOV @R15+,R14
4473     MOV @R13+,R0
4474 THEN
4475     SUB #2,R15
4476     MOV R14,0(R15)
4477     BIC.B #4,&$243
4478     MOV.B &$220,R14
4479     AND.B #$0F,R14
4480     MOV @R13+,R0
4481 ENDCODE
4482
4483 CODE LCD_WRC
4484     BIS.B #2,&$243
4485 BW1 SUB #2,R15
4486     MOV R14,0(R15)
4487     RRUM #4,R14
4488     BIC.B #1,&$243
4489     BIS.B #$0F,&$224
4490 COLON
4491     TOP_LCD 2 20_US
4492     TOP_LCD 2 20_US 
4493 ;
4494
4495 CODE LCD_WRF
4496     BIC.B #2,&$243
4497     GOTO BW1
4498 ENDCODE
4499
4500 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4501 : LCD_HOME $02 LCD_WRF 100 20_us ;
4502
4503
4504
4505 ASM WDT_INT
4506 ADD #2,R1
4507 BIT.B #$20,&$240
4508 0= IF
4509     CMP #19,&$3D6
4510     U< IF
4511         ADD #1,&$3D6
4512     THEN
4513 ELSE
4514     BIT.B #$40,&$240
4515     0= IF
4516         CMP #3,&$3D6
4517         U>= IF
4518            SUB #1,&$3D6
4519         THEN
4520     THEN
4521 THEN
4522 BW1
4523 MOV @R1+,R0
4524 ENDASM
4525
4526 ASM RC5_INT
4527 ADD #2,R1
4528 $1806 @ 16000 = [IF]
4529     MOV #1,&$3A0
4530 [THEN]
4531 $1806 @ 24000 = [IF]
4532     MOV #2,&$3A0
4533 [THEN]
4534 MOV #1778,R9
4535 MOV #14,R10
4536 BEGIN
4537 MOV #%1011100100,&$380
4538     RRUM    #1,R9
4539     MOV     R9,R8
4540     RRUM    #1,R8
4541     ADD     R9,R8
4542     BEGIN   CMP R8,&$390
4543     U>= UNTIL
4544     BIT.B   #4,&$200
4545     ADDC    R11,R11
4546     MOV.B   &$200,&$208
4547     BIC.B   #4,&$20C
4548     SUB     #1,R10
4549 0<> WHILE
4550     ADD R9,R8
4551     BEGIN
4552         MOV &$390,R9
4553         CMP R8,R9
4554         U>= IF
4555         BIC #$30,&$380
4556         GOTO BW1
4557         THEN
4558         BIT.B #4,&$20C
4559     0<> UNTIL
4560 REPEAT
4561 BIC #$30,&$380
4562 RLAM    #1,R11
4563 MOV.B   R11,R9
4564 RRUM    #2,R9
4565 BIT     #$4000,R11
4566 0= IF   BIS #$40,R9
4567 THEN
4568 RRUM    #3,R11
4569 XOR     @R1,R11
4570 BIT     #$400,R11
4571 0= ?GOTO BW1
4572 XOR #$400,0(R1)
4573 SUB #8,R15
4574 MOV R14,6(R15)
4575 MOV &$1DDC,4(R15)
4576 MOV #$10,&$1DDC
4577 MOV R9,0(R15)
4578 MOV #0,R14
4579 LO2HI
4580     LCD_CLEAR
4581     <# # #S #36 HOLD #>
4582     ['] LCD_WRC IS EMIT
4583     TYPE
4584     ['] EMIT >BODY IS EMIT
4585 HI2LO
4586 MOV @R15+,&$1DDC
4587 MOV @R15+,R14
4588 MOV @R1+,R0
4589 ENDASM
4590
4591 ASM BACKGROUND
4592 BEGIN
4593     CALL &$1814
4594     BIS &$180A,R2
4595 AGAIN
4596 ENDASM
4597
4598 CODE STOP
4599 BW1 MOV #SLEEP,R9
4600     ADD #4,R9
4601     MOV R9,-2(R9)
4602 COLON
4603 ['] WARM >BODY IS WARM
4604 ECHO
4605 ." RC5toLCD is removed. type START to restart"
4606 COLD
4607 ;
4608
4609 CODE APP_INIT
4610 MOV #%1011010100,&$3C0
4611 $1806 @ 16000 = [IF]
4612     MOV #1,&$3E0
4613 [THEN]
4614 $1806 @ 24000 = [IF]
4615     MOV #2,&$3E0
4616 [THEN]
4617     MOV #19,&$3D2
4618     MOV #%01100000,&$3C6
4619     MOV #10,&$3D6
4620     BIS.B #$20,&$204
4621     BIS.B #$20,&$20A
4622     BIS.B #7,&$245
4623     BIC.B #7,&$247
4624     BIS.B #$0F,&$224
4625     BIC.B #$0F,&$226
4626     BIS.B #4,&$20A
4627     BIC.B #4,&$20C
4628     MOV #RC5_INT,&$FFDE
4629     MOV #%0100010100,&$340
4630     MOV ##3276,&$352
4631     MOV #%10000,&$342
4632     MOV #WDT_INT,&$FFEA
4633 BIC #1,&$130
4634 BIS.B #3,&$20D
4635 MOV &$1808,R8
4636 CMP #4,R8
4637 0= ?GOTO BW1
4638 COLON
4639     #1000 20_US
4640     %011 TOP_LCD
4641     #205 20_US
4642     %011 TOP_LCD
4643     #5 20_US
4644     %011 TOP_LCD
4645     #2 20_US
4646     %010 TOP_LCD
4647     #2 20_US
4648     %00101000 LCD_WRF
4649     %1000 LCD_WRF
4650     LCD_CLEAR
4651     %0110 LCD_WRF
4652     %1100 LCD_WRF
4653     LCD_CLEAR
4654     ['] LCD_HOME IS CR
4655     ['] LCD_WRC  IS EMIT
4656     CR ." I love you"
4657     ['] CR >BODY IS CR
4658     ['] EMIT >BODY IS EMIT
4659     ." RC5toLCD is running. Type STOP to quit"
4660     ABORT
4661 ;
4662
4663 CODE START
4664 MOV #SLEEP,R9
4665 MOV #BACKGROUND,2(R9)
4666 MOV #WARM,R9
4667 MOV #APP_INIT,2(R9)
4668 MOV R9,R0
4669 ENDCODE 
4670
4671 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4672
4673 MARKER {RC5TOLCD}
4674
4675 CODE 20_US
4676 BEGIN
4677     BEGIN
4678         BIT #1,&$3C0
4679     0<> UNTIL
4680     BIC #1,&$3C0
4681     SUB #1,R14
4682 U< UNTIL
4683 MOV @R15+,R14
4684 MOV @R13+,R0
4685 ENDCODE
4686
4687 CODE TOP_LCD
4688     BIS.B #4,&$243
4689     BIT.B #1,&$241
4690 0= IF
4691     AND.B #$0F,R14
4692     MOV.B R14,&$222
4693     BIC.B #4,&$243
4694     MOV @R15+,R14
4695     MOV @R13+,R0
4696 THEN
4697     SUB #2,R15
4698     MOV R14,0(R15)
4699     BIC.B #4,&$243
4700     MOV.B &$220,R14
4701     AND.B #$0F,R14
4702     MOV @R13+,R0
4703 ENDCODE
4704
4705 CODE LCD_WRC
4706     BIS.B #2,&$243
4707 BW1 SUB #2,R15
4708     MOV R14,0(R15)
4709     RRUM #4,R14
4710     BIC.B #1,&$243
4711     BIS.B #$0F,&$224
4712 COLON
4713     TOP_LCD 2 20_US
4714     TOP_LCD 2 20_US 
4715 ;
4716
4717 CODE LCD_WRF
4718     BIC.B #2,&$243
4719     GOTO BW1
4720 ENDCODE
4721
4722 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4723 : LCD_HOME $02 LCD_WRF 100 20_us ;
4724
4725
4726
4727 ASM WDT_INT
4728 ADD #2,R1
4729 BIT.B #$20,&$240
4730 0= IF
4731     CMP #19,&$3D6
4732     U< IF
4733         ADD #1,&$3D6
4734     THEN
4735 ELSE
4736     BIT.B #$40,&$240
4737     0= IF
4738         CMP #3,&$3D6
4739         U>= IF
4740            SUB #1,&$3D6
4741         THEN
4742     THEN
4743 THEN
4744 BW1
4745 MOV @R1+,R0
4746 ENDASM
4747
4748 ASM RC5_INT
4749 ADD #2,R1
4750 $1806 @ 16000 = [IF]
4751     MOV #1,&$3A0
4752 [THEN]
4753 $1806 @ 24000 = [IF]
4754     MOV #2,&$3A0
4755 [THEN]
4756 MOV #1778,R9
4757 MOV #14,R10
4758 BEGIN
4759 MOV #%1011100100,&$380
4760     RRUM    #1,R9
4761     MOV     R9,R8
4762     RRUM    #1,R8
4763     ADD     R9,R8
4764     BEGIN   CMP R8,&$390
4765     U>= UNTIL
4766     BIT.B   #4,&$200
4767     ADDC    R11,R11
4768     MOV.B   &$200,&$208
4769     BIC.B   #4,&$20C
4770     SUB     #1,R10
4771 0<> WHILE
4772     ADD R9,R8
4773     BEGIN
4774         MOV &$390,R9
4775         CMP R8,R9
4776         U>= IF
4777         BIC #$30,&$380
4778         GOTO BW1
4779         THEN
4780         BIT.B #4,&$20C
4781     0<> UNTIL
4782 REPEAT
4783 BIC #$30,&$380
4784 RLAM    #1,R11
4785 MOV.B   R11,R9
4786 RRUM    #2,R9
4787 BIT     #$4000,R11
4788 0= IF   BIS #$40,R9
4789 THEN
4790 RRUM    #3,R11
4791 XOR     @R1,R11
4792 BIT     #$400,R11
4793 0= ?GOTO BW1
4794 XOR #$400,0(R1)
4795 SUB #8,R15
4796 MOV R14,6(R15)
4797 MOV &$1DDC,4(R15)
4798 MOV #$10,&$1DDC
4799 MOV R9,0(R15)
4800 MOV #0,R14
4801 LO2HI
4802     LCD_CLEAR
4803     <# # #S #36 HOLD #>
4804     ['] LCD_WRC IS EMIT
4805     TYPE
4806     ['] EMIT >BODY IS EMIT
4807 HI2LO
4808 MOV @R15+,&$1DDC
4809 MOV @R15+,R14
4810 MOV @R1+,R0
4811 ENDASM
4812
4813 ASM BACKGROUND
4814 BEGIN
4815     CALL &$1814
4816     BIS &$180A,R2
4817 AGAIN
4818 ENDASM
4819
4820 CODE STOP
4821 BW1 MOV #SLEEP,R9
4822     ADD #4,R9
4823     MOV R9,-2(R9)
4824 COLON
4825 ['] WARM >BODY IS WARM
4826 ECHO
4827 ." RC5toLCD is removed. type START to restart"
4828 COLD
4829 ;
4830
4831 CODE APP_INIT
4832 MOV #%1011010100,&$3C0
4833 $1806 @ 16000 = [IF]
4834     MOV #1,&$3E0
4835 [THEN]
4836 $1806 @ 24000 = [IF]
4837     MOV #2,&$3E0
4838 [THEN]
4839     MOV #19,&$3D2
4840     MOV #%01100000,&$3C6
4841     MOV #10,&$3D6
4842     BIS.B #$20,&$204
4843     BIS.B #$20,&$20A
4844     BIS.B #7,&$245
4845     BIC.B #7,&$247
4846     BIS.B #$0F,&$224
4847     BIC.B #$0F,&$226
4848     BIS.B #4,&$20A
4849     BIC.B #4,&$20C
4850     MOV #RC5_INT,&$FFDE
4851     MOV #%0100010100,&$340
4852     MOV ##3276,&$352
4853     MOV #%10000,&$342
4854     MOV #WDT_INT,&$FFEA
4855 BIC #1,&$130
4856 BIS.B #3,&$20D
4857 MOV &$1808,R8
4858 CMP #4,R8
4859 0= ?GOTO BW1
4860 COLON
4861     #1000 20_US
4862     %011 TOP_LCD
4863     #205 20_US
4864     %011 TOP_LCD
4865     #5 20_US
4866     %011 TOP_LCD
4867     #2 20_US
4868     %010 TOP_LCD
4869     #2 20_US
4870     %00101000 LCD_WRF
4871     %1000 LCD_WRF
4872     LCD_CLEAR
4873     %0110 LCD_WRF
4874     %1100 LCD_WRF
4875     LCD_CLEAR
4876     ['] LCD_HOME IS CR
4877     ['] LCD_WRC  IS EMIT
4878     CR ." I love you"
4879     ['] CR >BODY IS CR
4880     ['] EMIT >BODY IS EMIT
4881     ." RC5toLCD is running. Type STOP to quit"
4882     ABORT
4883 ;
4884
4885 CODE START
4886 MOV #SLEEP,R9
4887 MOV #BACKGROUND,2(R9)
4888 MOV #WARM,R9
4889 MOV #APP_INIT,2(R9)
4890 MOV R9,R0
4891 ENDCODE 
4892
4893 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
4894
4895 MARKER {RC5TOLCD}
4896
4897 CODE 20_US
4898 BEGIN
4899     BEGIN
4900         BIT #1,&$3C0
4901     0<> UNTIL
4902     BIC #1,&$3C0
4903     SUB #1,R14
4904 U< UNTIL
4905 MOV @R15+,R14
4906 MOV @R13+,R0
4907 ENDCODE
4908
4909 CODE TOP_LCD
4910     BIS.B #4,&$243
4911     BIT.B #1,&$241
4912 0= IF
4913     AND.B #$0F,R14
4914     MOV.B R14,&$222
4915     BIC.B #4,&$243
4916     MOV @R15+,R14
4917     MOV @R13+,R0
4918 THEN
4919     SUB #2,R15
4920     MOV R14,0(R15)
4921     BIC.B #4,&$243
4922     MOV.B &$220,R14
4923     AND.B #$0F,R14
4924     MOV @R13+,R0
4925 ENDCODE
4926
4927 CODE LCD_WRC
4928     BIS.B #2,&$243
4929 BW1 SUB #2,R15
4930     MOV R14,0(R15)
4931     RRUM #4,R14
4932     BIC.B #1,&$243
4933     BIS.B #$0F,&$224
4934 COLON
4935     TOP_LCD 2 20_US
4936     TOP_LCD 2 20_US 
4937 ;
4938
4939 CODE LCD_WRF
4940     BIC.B #2,&$243
4941     GOTO BW1
4942 ENDCODE
4943
4944 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
4945 : LCD_HOME $02 LCD_WRF 100 20_us ;
4946
4947
4948
4949 ASM WDT_INT
4950 ADD #2,R1
4951 BIT.B #$20,&$240
4952 0= IF
4953     CMP #19,&$3D6
4954     U< IF
4955         ADD #1,&$3D6
4956     THEN
4957 ELSE
4958     BIT.B #$40,&$240
4959     0= IF
4960         CMP #3,&$3D6
4961         U>= IF
4962            SUB #1,&$3D6
4963         THEN
4964     THEN
4965 THEN
4966 BW1
4967 MOV @R1+,R0
4968 ENDASM
4969
4970 ASM RC5_INT
4971 ADD #2,R1
4972 $1806 @ 16000 = [IF]
4973     MOV #1,&$3A0
4974 [THEN]
4975 $1806 @ 24000 = [IF]
4976     MOV #2,&$3A0
4977 [THEN]
4978 MOV #1778,R9
4979 MOV #14,R10
4980 BEGIN
4981 MOV #%1011100100,&$380
4982     RRUM    #1,R9
4983     MOV     R9,R8
4984     RRUM    #1,R8
4985     ADD     R9,R8
4986     BEGIN   CMP R8,&$390
4987     U>= UNTIL
4988     BIT.B   #4,&$200
4989     ADDC    R11,R11
4990     MOV.B   &$200,&$208
4991     BIC.B   #4,&$20C
4992     SUB     #1,R10
4993 0<> WHILE
4994     ADD R9,R8
4995     BEGIN
4996         MOV &$390,R9
4997         CMP R8,R9
4998         U>= IF
4999         BIC #$30,&$380
5000         GOTO BW1
5001         THEN
5002         BIT.B #4,&$20C
5003     0<> UNTIL
5004 REPEAT
5005 BIC #$30,&$380
5006 RLAM    #1,R11
5007 MOV.B   R11,R9
5008 RRUM    #2,R9
5009 BIT     #$4000,R11
5010 0= IF   BIS #$40,R9
5011 THEN
5012 RRUM    #3,R11
5013 XOR     @R1,R11
5014 BIT     #$400,R11
5015 0= ?GOTO BW1
5016 XOR #$400,0(R1)
5017 SUB #8,R15
5018 MOV R14,6(R15)
5019 MOV &$1DDC,4(R15)
5020 MOV #$10,&$1DDC
5021 MOV R9,0(R15)
5022 MOV #0,R14
5023 LO2HI
5024     LCD_CLEAR
5025     <# # #S #36 HOLD #>
5026     ['] LCD_WRC IS EMIT
5027     TYPE
5028     ['] EMIT >BODY IS EMIT
5029 HI2LO
5030 MOV @R15+,&$1DDC
5031 MOV @R15+,R14
5032 MOV @R1+,R0
5033 ENDASM
5034
5035 ASM BACKGROUND
5036 BEGIN
5037     CALL &$1814
5038     BIS &$180A,R2
5039 AGAIN
5040 ENDASM
5041
5042 CODE STOP
5043 BW1 MOV #SLEEP,R9
5044     ADD #4,R9
5045     MOV R9,-2(R9)
5046 COLON
5047 ['] WARM >BODY IS WARM
5048 ECHO
5049 ." RC5toLCD is removed. type START to restart"
5050 COLD
5051 ;
5052
5053 CODE APP_INIT
5054 MOV #%1011010100,&$3C0
5055 $1806 @ 16000 = [IF]
5056     MOV #1,&$3E0
5057 [THEN]
5058 $1806 @ 24000 = [IF]
5059     MOV #2,&$3E0
5060 [THEN]
5061     MOV #19,&$3D2
5062     MOV #%01100000,&$3C6
5063     MOV #10,&$3D6
5064     BIS.B #$20,&$204
5065     BIS.B #$20,&$20A
5066     BIS.B #7,&$245
5067     BIC.B #7,&$247
5068     BIS.B #$0F,&$224
5069     BIC.B #$0F,&$226
5070     BIS.B #4,&$20A
5071     BIC.B #4,&$20C
5072     MOV #RC5_INT,&$FFDE
5073     MOV #%0100010100,&$340
5074     MOV ##3276,&$352
5075     MOV #%10000,&$342
5076     MOV #WDT_INT,&$FFEA
5077 BIC #1,&$130
5078 BIS.B #3,&$20D
5079 MOV &$1808,R8
5080 CMP #4,R8
5081 0= ?GOTO BW1
5082 COLON
5083     #1000 20_US
5084     %011 TOP_LCD
5085     #205 20_US
5086     %011 TOP_LCD
5087     #5 20_US
5088     %011 TOP_LCD
5089     #2 20_US
5090     %010 TOP_LCD
5091     #2 20_US
5092     %00101000 LCD_WRF
5093     %1000 LCD_WRF
5094     LCD_CLEAR
5095     %0110 LCD_WRF
5096     %1100 LCD_WRF
5097     LCD_CLEAR
5098     ['] LCD_HOME IS CR
5099     ['] LCD_WRC  IS EMIT
5100     CR ." I love you"
5101     ['] CR >BODY IS CR
5102     ['] EMIT >BODY IS EMIT
5103     ." RC5toLCD is running. Type STOP to quit"
5104     ABORT
5105 ;
5106
5107 CODE START
5108 MOV #SLEEP,R9
5109 MOV #BACKGROUND,2(R9)
5110 MOV #WARM,R9
5111 MOV #APP_INIT,2(R9)
5112 MOV R9,R0
5113 ENDCODE 
5114
5115 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5116
5117 MARKER {RC5TOLCD}
5118
5119 CODE 20_US
5120 BEGIN
5121     BEGIN
5122         BIT #1,&$3C0
5123     0<> UNTIL
5124     BIC #1,&$3C0
5125     SUB #1,R14
5126 U< UNTIL
5127 MOV @R15+,R14
5128 MOV @R13+,R0
5129 ENDCODE
5130
5131 CODE TOP_LCD
5132     BIS.B #4,&$243
5133     BIT.B #1,&$241
5134 0= IF
5135     AND.B #$0F,R14
5136     MOV.B R14,&$222
5137     BIC.B #4,&$243
5138     MOV @R15+,R14
5139     MOV @R13+,R0
5140 THEN
5141     SUB #2,R15
5142     MOV R14,0(R15)
5143     BIC.B #4,&$243
5144     MOV.B &$220,R14
5145     AND.B #$0F,R14
5146     MOV @R13+,R0
5147 ENDCODE
5148
5149 CODE LCD_WRC
5150     BIS.B #2,&$243
5151 BW1 SUB #2,R15
5152     MOV R14,0(R15)
5153     RRUM #4,R14
5154     BIC.B #1,&$243
5155     BIS.B #$0F,&$224
5156 COLON
5157     TOP_LCD 2 20_US
5158     TOP_LCD 2 20_US 
5159 ;
5160
5161 CODE LCD_WRF
5162     BIC.B #2,&$243
5163     GOTO BW1
5164 ENDCODE
5165
5166 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
5167 : LCD_HOME $02 LCD_WRF 100 20_us ;
5168
5169
5170
5171 ASM WDT_INT
5172 ADD #2,R1
5173 BIT.B #$20,&$240
5174 0= IF
5175     CMP #19,&$3D6
5176     U< IF
5177         ADD #1,&$3D6
5178     THEN
5179 ELSE
5180     BIT.B #$40,&$240
5181     0= IF
5182         CMP #3,&$3D6
5183         U>= IF
5184            SUB #1,&$3D6
5185         THEN
5186     THEN
5187 THEN
5188 BW1
5189 MOV @R1+,R0
5190 ENDASM
5191
5192 ASM RC5_INT
5193 ADD #2,R1
5194 $1806 @ 16000 = [IF]
5195     MOV #1,&$3A0
5196 [THEN]
5197 $1806 @ 24000 = [IF]
5198     MOV #2,&$3A0
5199 [THEN]
5200 MOV #1778,R9
5201 MOV #14,R10
5202 BEGIN
5203 MOV #%1011100100,&$380
5204     RRUM    #1,R9
5205     MOV     R9,R8
5206     RRUM    #1,R8
5207     ADD     R9,R8
5208     BEGIN   CMP R8,&$390
5209     U>= UNTIL
5210     BIT.B   #4,&$200
5211     ADDC    R11,R11
5212     MOV.B   &$200,&$208
5213     BIC.B   #4,&$20C
5214     SUB     #1,R10
5215 0<> WHILE
5216     ADD R9,R8
5217     BEGIN
5218         MOV &$390,R9
5219         CMP R8,R9
5220         U>= IF
5221         BIC #$30,&$380
5222         GOTO BW1
5223         THEN
5224         BIT.B #4,&$20C
5225     0<> UNTIL
5226 REPEAT
5227 BIC #$30,&$380
5228 RLAM    #1,R11
5229 MOV.B   R11,R9
5230 RRUM    #2,R9
5231 BIT     #$4000,R11
5232 0= IF   BIS #$40,R9
5233 THEN
5234 RRUM    #3,R11
5235 XOR     @R1,R11
5236 BIT     #$400,R11
5237 0= ?GOTO BW1
5238 XOR #$400,0(R1)
5239 SUB #8,R15
5240 MOV R14,6(R15)
5241 MOV &$1DDC,4(R15)
5242 MOV #$10,&$1DDC
5243 MOV R9,0(R15)
5244 MOV #0,R14
5245 LO2HI
5246     LCD_CLEAR
5247     <# # #S #36 HOLD #>
5248     ['] LCD_WRC IS EMIT
5249     TYPE
5250     ['] EMIT >BODY IS EMIT
5251 HI2LO
5252 MOV @R15+,&$1DDC
5253 MOV @R15+,R14
5254 MOV @R1+,R0
5255 ENDASM
5256
5257 ASM BACKGROUND
5258 BEGIN
5259     CALL &$1814
5260     BIS &$180A,R2
5261 AGAIN
5262 ENDASM
5263
5264 CODE STOP
5265 BW1 MOV #SLEEP,R9
5266     ADD #4,R9
5267     MOV R9,-2(R9)
5268 COLON
5269 ['] WARM >BODY IS WARM
5270 ECHO
5271 ." RC5toLCD is removed. type START to restart"
5272 COLD
5273 ;
5274
5275 CODE APP_INIT
5276 MOV #%1011010100,&$3C0
5277 $1806 @ 16000 = [IF]
5278     MOV #1,&$3E0
5279 [THEN]
5280 $1806 @ 24000 = [IF]
5281     MOV #2,&$3E0
5282 [THEN]
5283     MOV #19,&$3D2
5284     MOV #%01100000,&$3C6
5285     MOV #10,&$3D6
5286     BIS.B #$20,&$204
5287     BIS.B #$20,&$20A
5288     BIS.B #7,&$245
5289     BIC.B #7,&$247
5290     BIS.B #$0F,&$224
5291     BIC.B #$0F,&$226
5292     BIS.B #4,&$20A
5293     BIC.B #4,&$20C
5294     MOV #RC5_INT,&$FFDE
5295     MOV #%0100010100,&$340
5296     MOV ##3276,&$352
5297     MOV #%10000,&$342
5298     MOV #WDT_INT,&$FFEA
5299 BIC #1,&$130
5300 BIS.B #3,&$20D
5301 MOV &$1808,R8
5302 CMP #4,R8
5303 0= ?GOTO BW1
5304 COLON
5305     #1000 20_US
5306     %011 TOP_LCD
5307     #205 20_US
5308     %011 TOP_LCD
5309     #5 20_US
5310     %011 TOP_LCD
5311     #2 20_US
5312     %010 TOP_LCD
5313     #2 20_US
5314     %00101000 LCD_WRF
5315     %1000 LCD_WRF
5316     LCD_CLEAR
5317     %0110 LCD_WRF
5318     %1100 LCD_WRF
5319     LCD_CLEAR
5320     ['] LCD_HOME IS CR
5321     ['] LCD_WRC  IS EMIT
5322     CR ." I love you"
5323     ['] CR >BODY IS CR
5324     ['] EMIT >BODY IS EMIT
5325     ." RC5toLCD is running. Type STOP to quit"
5326     ABORT
5327 ;
5328
5329 CODE START
5330 MOV #SLEEP,R9
5331 MOV #BACKGROUND,2(R9)
5332 MOV #WARM,R9
5333 MOV #APP_INIT,2(R9)
5334 MOV R9,R0
5335 ENDCODE 
5336
5337 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5338
5339 MARKER {RC5TOLCD}
5340
5341 CODE 20_US
5342 BEGIN
5343     BEGIN
5344         BIT #1,&$3C0
5345     0<> UNTIL
5346     BIC #1,&$3C0
5347     SUB #1,R14
5348 U< UNTIL
5349 MOV @R15+,R14
5350 MOV @R13+,R0
5351 ENDCODE
5352
5353 CODE TOP_LCD
5354     BIS.B #4,&$243
5355     BIT.B #1,&$241
5356 0= IF
5357     AND.B #$0F,R14
5358     MOV.B R14,&$222
5359     BIC.B #4,&$243
5360     MOV @R15+,R14
5361     MOV @R13+,R0
5362 THEN
5363     SUB #2,R15
5364     MOV R14,0(R15)
5365     BIC.B #4,&$243
5366     MOV.B &$220,R14
5367     AND.B #$0F,R14
5368     MOV @R13+,R0
5369 ENDCODE
5370
5371 CODE LCD_WRC
5372     BIS.B #2,&$243
5373 BW1 SUB #2,R15
5374     MOV R14,0(R15)
5375     RRUM #4,R14
5376     BIC.B #1,&$243
5377     BIS.B #$0F,&$224
5378 COLON
5379     TOP_LCD 2 20_US
5380     TOP_LCD 2 20_US 
5381 ;
5382
5383 CODE LCD_WRF
5384     BIC.B #2,&$243
5385     GOTO BW1
5386 ENDCODE
5387
5388 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
5389 : LCD_HOME $02 LCD_WRF 100 20_us ;
5390
5391
5392
5393 ASM WDT_INT
5394 ADD #2,R1
5395 BIT.B #$20,&$240
5396 0= IF
5397     CMP #19,&$3D6
5398     U< IF
5399         ADD #1,&$3D6
5400     THEN
5401 ELSE
5402     BIT.B #$40,&$240
5403     0= IF
5404         CMP #3,&$3D6
5405         U>= IF
5406            SUB #1,&$3D6
5407         THEN
5408     THEN
5409 THEN
5410 BW1
5411 MOV @R1+,R0
5412 ENDASM
5413
5414 ASM RC5_INT
5415 ADD #2,R1
5416 $1806 @ 16000 = [IF]
5417     MOV #1,&$3A0
5418 [THEN]
5419 $1806 @ 24000 = [IF]
5420     MOV #2,&$3A0
5421 [THEN]
5422 MOV #1778,R9
5423 MOV #14,R10
5424 BEGIN
5425 MOV #%1011100100,&$380
5426     RRUM    #1,R9
5427     MOV     R9,R8
5428     RRUM    #1,R8
5429     ADD     R9,R8
5430     BEGIN   CMP R8,&$390
5431     U>= UNTIL
5432     BIT.B   #4,&$200
5433     ADDC    R11,R11
5434     MOV.B   &$200,&$208
5435     BIC.B   #4,&$20C
5436     SUB     #1,R10
5437 0<> WHILE
5438     ADD R9,R8
5439     BEGIN
5440         MOV &$390,R9
5441         CMP R8,R9
5442         U>= IF
5443         BIC #$30,&$380
5444         GOTO BW1
5445         THEN
5446         BIT.B #4,&$20C
5447     0<> UNTIL
5448 REPEAT
5449 BIC #$30,&$380
5450 RLAM    #1,R11
5451 MOV.B   R11,R9
5452 RRUM    #2,R9
5453 BIT     #$4000,R11
5454 0= IF   BIS #$40,R9
5455 THEN
5456 RRUM    #3,R11
5457 XOR     @R1,R11
5458 BIT     #$400,R11
5459 0= ?GOTO BW1
5460 XOR #$400,0(R1)
5461 SUB #8,R15
5462 MOV R14,6(R15)
5463 MOV &$1DDC,4(R15)
5464 MOV #$10,&$1DDC
5465 MOV R9,0(R15)
5466 MOV #0,R14
5467 LO2HI
5468     LCD_CLEAR
5469     <# # #S #36 HOLD #>
5470     ['] LCD_WRC IS EMIT
5471     TYPE
5472     ['] EMIT >BODY IS EMIT
5473 HI2LO
5474 MOV @R15+,&$1DDC
5475 MOV @R15+,R14
5476 MOV @R1+,R0
5477 ENDASM
5478
5479 ASM BACKGROUND
5480 BEGIN
5481     CALL &$1814
5482     BIS &$180A,R2
5483 AGAIN
5484 ENDASM
5485
5486 CODE STOP
5487 BW1 MOV #SLEEP,R9
5488     ADD #4,R9
5489     MOV R9,-2(R9)
5490 COLON
5491 ['] WARM >BODY IS WARM
5492 ECHO
5493 ." RC5toLCD is removed. type START to restart"
5494 COLD
5495 ;
5496
5497 CODE APP_INIT
5498 MOV #%1011010100,&$3C0
5499 $1806 @ 16000 = [IF]
5500     MOV #1,&$3E0
5501 [THEN]
5502 $1806 @ 24000 = [IF]
5503     MOV #2,&$3E0
5504 [THEN]
5505     MOV #19,&$3D2
5506     MOV #%01100000,&$3C6
5507     MOV #10,&$3D6
5508     BIS.B #$20,&$204
5509     BIS.B #$20,&$20A
5510     BIS.B #7,&$245
5511     BIC.B #7,&$247
5512     BIS.B #$0F,&$224
5513     BIC.B #$0F,&$226
5514     BIS.B #4,&$20A
5515     BIC.B #4,&$20C
5516     MOV #RC5_INT,&$FFDE
5517     MOV #%0100010100,&$340
5518     MOV ##3276,&$352
5519     MOV #%10000,&$342
5520     MOV #WDT_INT,&$FFEA
5521 BIC #1,&$130
5522 BIS.B #3,&$20D
5523 MOV &$1808,R8
5524 CMP #4,R8
5525 0= ?GOTO BW1
5526 COLON
5527     #1000 20_US
5528     %011 TOP_LCD
5529     #205 20_US
5530     %011 TOP_LCD
5531     #5 20_US
5532     %011 TOP_LCD
5533     #2 20_US
5534     %010 TOP_LCD
5535     #2 20_US
5536     %00101000 LCD_WRF
5537     %1000 LCD_WRF
5538     LCD_CLEAR
5539     %0110 LCD_WRF
5540     %1100 LCD_WRF
5541     LCD_CLEAR
5542     ['] LCD_HOME IS CR
5543     ['] LCD_WRC  IS EMIT
5544     CR ." I love you"
5545     ['] CR >BODY IS CR
5546     ['] EMIT >BODY IS EMIT
5547     ." RC5toLCD is running. Type STOP to quit"
5548     ABORT
5549 ;
5550
5551 CODE START
5552 MOV #SLEEP,R9
5553 MOV #BACKGROUND,2(R9)
5554 MOV #WARM,R9
5555 MOV #APP_INIT,2(R9)
5556 MOV R9,R0
5557 ENDCODE 
5558
5559 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5560
5561 MARKER {RC5TOLCD}
5562
5563 CODE 20_US
5564 BEGIN
5565     BEGIN
5566         BIT #1,&$3C0
5567     0<> UNTIL
5568     BIC #1,&$3C0
5569     SUB #1,R14
5570 U< UNTIL
5571 MOV @R15+,R14
5572 MOV @R13+,R0
5573 ENDCODE
5574
5575 CODE TOP_LCD
5576     BIS.B #4,&$243
5577     BIT.B #1,&$241
5578 0= IF
5579     AND.B #$0F,R14
5580     MOV.B R14,&$222
5581     BIC.B #4,&$243
5582     MOV @R15+,R14
5583     MOV @R13+,R0
5584 THEN
5585     SUB #2,R15
5586     MOV R14,0(R15)
5587     BIC.B #4,&$243
5588     MOV.B &$220,R14
5589     AND.B #$0F,R14
5590     MOV @R13+,R0
5591 ENDCODE
5592
5593 CODE LCD_WRC
5594     BIS.B #2,&$243
5595 BW1 SUB #2,R15
5596     MOV R14,0(R15)
5597     RRUM #4,R14
5598     BIC.B #1,&$243
5599     BIS.B #$0F,&$224
5600 COLON
5601     TOP_LCD 2 20_US
5602     TOP_LCD 2 20_US 
5603 ;
5604
5605 CODE LCD_WRF
5606     BIC.B #2,&$243
5607     GOTO BW1
5608 ENDCODE
5609
5610 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
5611 : LCD_HOME $02 LCD_WRF 100 20_us ;
5612
5613
5614
5615 ASM WDT_INT
5616 ADD #2,R1
5617 BIT.B #$20,&$240
5618 0= IF
5619     CMP #19,&$3D6
5620     U< IF
5621         ADD #1,&$3D6
5622     THEN
5623 ELSE
5624     BIT.B #$40,&$240
5625     0= IF
5626         CMP #3,&$3D6
5627         U>= IF
5628            SUB #1,&$3D6
5629         THEN
5630     THEN
5631 THEN
5632 BW1
5633 MOV @R1+,R0
5634 ENDASM
5635
5636 ASM RC5_INT
5637 ADD #2,R1
5638 $1806 @ 16000 = [IF]
5639     MOV #1,&$3A0
5640 [THEN]
5641 $1806 @ 24000 = [IF]
5642     MOV #2,&$3A0
5643 [THEN]
5644 MOV #1778,R9
5645 MOV #14,R10
5646 BEGIN
5647 MOV #%1011100100,&$380
5648     RRUM    #1,R9
5649     MOV     R9,R8
5650     RRUM    #1,R8
5651     ADD     R9,R8
5652     BEGIN   CMP R8,&$390
5653     U>= UNTIL
5654     BIT.B   #4,&$200
5655     ADDC    R11,R11
5656     MOV.B   &$200,&$208
5657     BIC.B   #4,&$20C
5658     SUB     #1,R10
5659 0<> WHILE
5660     ADD R9,R8
5661     BEGIN
5662         MOV &$390,R9
5663         CMP R8,R9
5664         U>= IF
5665         BIC #$30,&$380
5666         GOTO BW1
5667         THEN
5668         BIT.B #4,&$20C
5669     0<> UNTIL
5670 REPEAT
5671 BIC #$30,&$380
5672 RLAM    #1,R11
5673 MOV.B   R11,R9
5674 RRUM    #2,R9
5675 BIT     #$4000,R11
5676 0= IF   BIS #$40,R9
5677 THEN
5678 RRUM    #3,R11
5679 XOR     @R1,R11
5680 BIT     #$400,R11
5681 0= ?GOTO BW1
5682 XOR #$400,0(R1)
5683 SUB #8,R15
5684 MOV R14,6(R15)
5685 MOV &$1DDC,4(R15)
5686 MOV #$10,&$1DDC
5687 MOV R9,0(R15)
5688 MOV #0,R14
5689 LO2HI
5690     LCD_CLEAR
5691     <# # #S #36 HOLD #>
5692     ['] LCD_WRC IS EMIT
5693     TYPE
5694     ['] EMIT >BODY IS EMIT
5695 HI2LO
5696 MOV @R15+,&$1DDC
5697 MOV @R15+,R14
5698 MOV @R1+,R0
5699 ENDASM
5700
5701 ASM BACKGROUND
5702 BEGIN
5703     CALL &$1814
5704     BIS &$180A,R2
5705 AGAIN
5706 ENDASM
5707
5708 CODE STOP
5709 BW1 MOV #SLEEP,R9
5710     ADD #4,R9
5711     MOV R9,-2(R9)
5712 COLON
5713 ['] WARM >BODY IS WARM
5714 ECHO
5715 ." RC5toLCD is removed. type START to restart"
5716 COLD
5717 ;
5718
5719 CODE APP_INIT
5720 MOV #%1011010100,&$3C0
5721 $1806 @ 16000 = [IF]
5722     MOV #1,&$3E0
5723 [THEN]
5724 $1806 @ 24000 = [IF]
5725     MOV #2,&$3E0
5726 [THEN]
5727     MOV #19,&$3D2
5728     MOV #%01100000,&$3C6
5729     MOV #10,&$3D6
5730     BIS.B #$20,&$204
5731     BIS.B #$20,&$20A
5732     BIS.B #7,&$245
5733     BIC.B #7,&$247
5734     BIS.B #$0F,&$224
5735     BIC.B #$0F,&$226
5736     BIS.B #4,&$20A
5737     BIC.B #4,&$20C
5738     MOV #RC5_INT,&$FFDE
5739     MOV #%0100010100,&$340
5740     MOV ##3276,&$352
5741     MOV #%10000,&$342
5742     MOV #WDT_INT,&$FFEA
5743 BIC #1,&$130
5744 BIS.B #3,&$20D
5745 MOV &$1808,R8
5746 CMP #4,R8
5747 0= ?GOTO BW1
5748 COLON
5749     #1000 20_US
5750     %011 TOP_LCD
5751     #205 20_US
5752     %011 TOP_LCD
5753     #5 20_US
5754     %011 TOP_LCD
5755     #2 20_US
5756     %010 TOP_LCD
5757     #2 20_US
5758     %00101000 LCD_WRF
5759     %1000 LCD_WRF
5760     LCD_CLEAR
5761     %0110 LCD_WRF
5762     %1100 LCD_WRF
5763     LCD_CLEAR
5764     ['] LCD_HOME IS CR
5765     ['] LCD_WRC  IS EMIT
5766     CR ." I love you"
5767     ['] CR >BODY IS CR
5768     ['] EMIT >BODY IS EMIT
5769     ." RC5toLCD is running. Type STOP to quit"
5770     ABORT
5771 ;
5772
5773 CODE START
5774 MOV #SLEEP,R9
5775 MOV #BACKGROUND,2(R9)
5776 MOV #WARM,R9
5777 MOV #APP_INIT,2(R9)
5778 MOV R9,R0
5779 ENDCODE 
5780
5781 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
5782
5783 MARKER {RC5TOLCD}
5784
5785 CODE 20_US
5786 BEGIN
5787     BEGIN
5788         BIT #1,&$3C0
5789     0<> UNTIL
5790     BIC #1,&$3C0
5791     SUB #1,R14
5792 U< UNTIL
5793 MOV @R15+,R14
5794 MOV @R13+,R0
5795 ENDCODE
5796
5797 CODE TOP_LCD
5798     BIS.B #4,&$243
5799     BIT.B #1,&$241
5800 0= IF
5801     AND.B #$0F,R14
5802     MOV.B R14,&$222
5803     BIC.B #4,&$243
5804     MOV @R15+,R14
5805     MOV @R13+,R0
5806 THEN
5807     SUB #2,R15
5808     MOV R14,0(R15)
5809     BIC.B #4,&$243
5810     MOV.B &$220,R14
5811     AND.B #$0F,R14
5812     MOV @R13+,R0
5813 ENDCODE
5814
5815 CODE LCD_WRC
5816     BIS.B #2,&$243
5817 BW1 SUB #2,R15
5818     MOV R14,0(R15)
5819     RRUM #4,R14
5820     BIC.B #1,&$243
5821     BIS.B #$0F,&$224
5822 COLON
5823     TOP_LCD 2 20_US
5824     TOP_LCD 2 20_US 
5825 ;
5826
5827 CODE LCD_WRF
5828     BIC.B #2,&$243
5829     GOTO BW1
5830 ENDCODE
5831
5832 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
5833 : LCD_HOME $02 LCD_WRF 100 20_us ;
5834
5835
5836
5837 ASM WDT_INT
5838 ADD #2,R1
5839 BIT.B #$20,&$240
5840 0= IF
5841     CMP #19,&$3D6
5842     U< IF
5843         ADD #1,&$3D6
5844     THEN
5845 ELSE
5846     BIT.B #$40,&$240
5847     0= IF
5848         CMP #3,&$3D6
5849         U>= IF
5850            SUB #1,&$3D6
5851         THEN
5852     THEN
5853 THEN
5854 BW1
5855 MOV @R1+,R0
5856 ENDASM
5857
5858 ASM RC5_INT
5859 ADD #2,R1
5860 $1806 @ 16000 = [IF]
5861     MOV #1,&$3A0
5862 [THEN]
5863 $1806 @ 24000 = [IF]
5864     MOV #2,&$3A0
5865 [THEN]
5866 MOV #1778,R9
5867 MOV #14,R10
5868 BEGIN
5869 MOV #%1011100100,&$380
5870     RRUM    #1,R9
5871     MOV     R9,R8
5872     RRUM    #1,R8
5873     ADD     R9,R8
5874     BEGIN   CMP R8,&$390
5875     U>= UNTIL
5876     BIT.B   #4,&$200
5877     ADDC    R11,R11
5878     MOV.B   &$200,&$208
5879     BIC.B   #4,&$20C
5880     SUB     #1,R10
5881 0<> WHILE
5882     ADD R9,R8
5883     BEGIN
5884         MOV &$390,R9
5885         CMP R8,R9
5886         U>= IF
5887         BIC #$30,&$380
5888         GOTO BW1
5889         THEN
5890         BIT.B #4,&$20C
5891     0<> UNTIL
5892 REPEAT
5893 BIC #$30,&$380
5894 RLAM    #1,R11
5895 MOV.B   R11,R9
5896 RRUM    #2,R9
5897 BIT     #$4000,R11
5898 0= IF   BIS #$40,R9
5899 THEN
5900 RRUM    #3,R11
5901 XOR     @R1,R11
5902 BIT     #$400,R11
5903 0= ?GOTO BW1
5904 XOR #$400,0(R1)
5905 SUB #8,R15
5906 MOV R14,6(R15)
5907 MOV &$1DDC,4(R15)
5908 MOV #$10,&$1DDC
5909 MOV R9,0(R15)
5910 MOV #0,R14
5911 LO2HI
5912     LCD_CLEAR
5913     <# # #S #36 HOLD #>
5914     ['] LCD_WRC IS EMIT
5915     TYPE
5916     ['] EMIT >BODY IS EMIT
5917 HI2LO
5918 MOV @R15+,&$1DDC
5919 MOV @R15+,R14
5920 MOV @R1+,R0
5921 ENDASM
5922
5923 ASM BACKGROUND
5924 BEGIN
5925     CALL &$1814
5926     BIS &$180A,R2
5927 AGAIN
5928 ENDASM
5929
5930 CODE STOP
5931 BW1 MOV #SLEEP,R9
5932     ADD #4,R9
5933     MOV R9,-2(R9)
5934 COLON
5935 ['] WARM >BODY IS WARM
5936 ECHO
5937 ." RC5toLCD is removed. type START to restart"
5938 COLD
5939 ;
5940
5941 CODE APP_INIT
5942 MOV #%1011010100,&$3C0
5943 $1806 @ 16000 = [IF]
5944     MOV #1,&$3E0
5945 [THEN]
5946 $1806 @ 24000 = [IF]
5947     MOV #2,&$3E0
5948 [THEN]
5949     MOV #19,&$3D2
5950     MOV #%01100000,&$3C6
5951     MOV #10,&$3D6
5952     BIS.B #$20,&$204
5953     BIS.B #$20,&$20A
5954     BIS.B #7,&$245
5955     BIC.B #7,&$247
5956     BIS.B #$0F,&$224
5957     BIC.B #$0F,&$226
5958     BIS.B #4,&$20A
5959     BIC.B #4,&$20C
5960     MOV #RC5_INT,&$FFDE
5961     MOV #%0100010100,&$340
5962     MOV ##3276,&$352
5963     MOV #%10000,&$342
5964     MOV #WDT_INT,&$FFEA
5965 BIC #1,&$130
5966 BIS.B #3,&$20D
5967 MOV &$1808,R8
5968 CMP #4,R8
5969 0= ?GOTO BW1
5970 COLON
5971     #1000 20_US
5972     %011 TOP_LCD
5973     #205 20_US
5974     %011 TOP_LCD
5975     #5 20_US
5976     %011 TOP_LCD
5977     #2 20_US
5978     %010 TOP_LCD
5979     #2 20_US
5980     %00101000 LCD_WRF
5981     %1000 LCD_WRF
5982     LCD_CLEAR
5983     %0110 LCD_WRF
5984     %1100 LCD_WRF
5985     LCD_CLEAR
5986     ['] LCD_HOME IS CR
5987     ['] LCD_WRC  IS EMIT
5988     CR ." I love you"
5989     ['] CR >BODY IS CR
5990     ['] EMIT >BODY IS EMIT
5991     ." RC5toLCD is running. Type STOP to quit"
5992     ABORT
5993 ;
5994
5995 CODE START
5996 MOV #SLEEP,R9
5997 MOV #BACKGROUND,2(R9)
5998 MOV #WARM,R9
5999 MOV #APP_INIT,2(R9)
6000 MOV R9,R0
6001 ENDCODE 
6002
6003 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6004
6005 MARKER {RC5TOLCD}
6006
6007 CODE 20_US
6008 BEGIN
6009     BEGIN
6010         BIT #1,&$3C0
6011     0<> UNTIL
6012     BIC #1,&$3C0
6013     SUB #1,R14
6014 U< UNTIL
6015 MOV @R15+,R14
6016 MOV @R13+,R0
6017 ENDCODE
6018
6019 CODE TOP_LCD
6020     BIS.B #4,&$243
6021     BIT.B #1,&$241
6022 0= IF
6023     AND.B #$0F,R14
6024     MOV.B R14,&$222
6025     BIC.B #4,&$243
6026     MOV @R15+,R14
6027     MOV @R13+,R0
6028 THEN
6029     SUB #2,R15
6030     MOV R14,0(R15)
6031     BIC.B #4,&$243
6032     MOV.B &$220,R14
6033     AND.B #$0F,R14
6034     MOV @R13+,R0
6035 ENDCODE
6036
6037 CODE LCD_WRC
6038     BIS.B #2,&$243
6039 BW1 SUB #2,R15
6040     MOV R14,0(R15)
6041     RRUM #4,R14
6042     BIC.B #1,&$243
6043     BIS.B #$0F,&$224
6044 COLON
6045     TOP_LCD 2 20_US
6046     TOP_LCD 2 20_US 
6047 ;
6048
6049 CODE LCD_WRF
6050     BIC.B #2,&$243
6051     GOTO BW1
6052 ENDCODE
6053
6054 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6055 : LCD_HOME $02 LCD_WRF 100 20_us ;
6056
6057
6058
6059 ASM WDT_INT
6060 ADD #2,R1
6061 BIT.B #$20,&$240
6062 0= IF
6063     CMP #19,&$3D6
6064     U< IF
6065         ADD #1,&$3D6
6066     THEN
6067 ELSE
6068     BIT.B #$40,&$240
6069     0= IF
6070         CMP #3,&$3D6
6071         U>= IF
6072            SUB #1,&$3D6
6073         THEN
6074     THEN
6075 THEN
6076 BW1
6077 MOV @R1+,R0
6078 ENDASM
6079
6080 ASM RC5_INT
6081 ADD #2,R1
6082 $1806 @ 16000 = [IF]
6083     MOV #1,&$3A0
6084 [THEN]
6085 $1806 @ 24000 = [IF]
6086     MOV #2,&$3A0
6087 [THEN]
6088 MOV #1778,R9
6089 MOV #14,R10
6090 BEGIN
6091 MOV #%1011100100,&$380
6092     RRUM    #1,R9
6093     MOV     R9,R8
6094     RRUM    #1,R8
6095     ADD     R9,R8
6096     BEGIN   CMP R8,&$390
6097     U>= UNTIL
6098     BIT.B   #4,&$200
6099     ADDC    R11,R11
6100     MOV.B   &$200,&$208
6101     BIC.B   #4,&$20C
6102     SUB     #1,R10
6103 0<> WHILE
6104     ADD R9,R8
6105     BEGIN
6106         MOV &$390,R9
6107         CMP R8,R9
6108         U>= IF
6109         BIC #$30,&$380
6110         GOTO BW1
6111         THEN
6112         BIT.B #4,&$20C
6113     0<> UNTIL
6114 REPEAT
6115 BIC #$30,&$380
6116 RLAM    #1,R11
6117 MOV.B   R11,R9
6118 RRUM    #2,R9
6119 BIT     #$4000,R11
6120 0= IF   BIS #$40,R9
6121 THEN
6122 RRUM    #3,R11
6123 XOR     @R1,R11
6124 BIT     #$400,R11
6125 0= ?GOTO BW1
6126 XOR #$400,0(R1)
6127 SUB #8,R15
6128 MOV R14,6(R15)
6129 MOV &$1DDC,4(R15)
6130 MOV #$10,&$1DDC
6131 MOV R9,0(R15)
6132 MOV #0,R14
6133 LO2HI
6134     LCD_CLEAR
6135     <# # #S #36 HOLD #>
6136     ['] LCD_WRC IS EMIT
6137     TYPE
6138     ['] EMIT >BODY IS EMIT
6139 HI2LO
6140 MOV @R15+,&$1DDC
6141 MOV @R15+,R14
6142 MOV @R1+,R0
6143 ENDASM
6144
6145 ASM BACKGROUND
6146 BEGIN
6147     CALL &$1814
6148     BIS &$180A,R2
6149 AGAIN
6150 ENDASM
6151
6152 CODE STOP
6153 BW1 MOV #SLEEP,R9
6154     ADD #4,R9
6155     MOV R9,-2(R9)
6156 COLON
6157 ['] WARM >BODY IS WARM
6158 ECHO
6159 ." RC5toLCD is removed. type START to restart"
6160 COLD
6161 ;
6162
6163 CODE APP_INIT
6164 MOV #%1011010100,&$3C0
6165 $1806 @ 16000 = [IF]
6166     MOV #1,&$3E0
6167 [THEN]
6168 $1806 @ 24000 = [IF]
6169     MOV #2,&$3E0
6170 [THEN]
6171     MOV #19,&$3D2
6172     MOV #%01100000,&$3C6
6173     MOV #10,&$3D6
6174     BIS.B #$20,&$204
6175     BIS.B #$20,&$20A
6176     BIS.B #7,&$245
6177     BIC.B #7,&$247
6178     BIS.B #$0F,&$224
6179     BIC.B #$0F,&$226
6180     BIS.B #4,&$20A
6181     BIC.B #4,&$20C
6182     MOV #RC5_INT,&$FFDE
6183     MOV #%0100010100,&$340
6184     MOV ##3276,&$352
6185     MOV #%10000,&$342
6186     MOV #WDT_INT,&$FFEA
6187 BIC #1,&$130
6188 BIS.B #3,&$20D
6189 MOV &$1808,R8
6190 CMP #4,R8
6191 0= ?GOTO BW1
6192 COLON
6193     #1000 20_US
6194     %011 TOP_LCD
6195     #205 20_US
6196     %011 TOP_LCD
6197     #5 20_US
6198     %011 TOP_LCD
6199     #2 20_US
6200     %010 TOP_LCD
6201     #2 20_US
6202     %00101000 LCD_WRF
6203     %1000 LCD_WRF
6204     LCD_CLEAR
6205     %0110 LCD_WRF
6206     %1100 LCD_WRF
6207     LCD_CLEAR
6208     ['] LCD_HOME IS CR
6209     ['] LCD_WRC  IS EMIT
6210     CR ." I love you"
6211     ['] CR >BODY IS CR
6212     ['] EMIT >BODY IS EMIT
6213     ." RC5toLCD is running. Type STOP to quit"
6214     ABORT
6215 ;
6216
6217 CODE START
6218 MOV #SLEEP,R9
6219 MOV #BACKGROUND,2(R9)
6220 MOV #WARM,R9
6221 MOV #APP_INIT,2(R9)
6222 MOV R9,R0
6223 ENDCODE 
6224
6225 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6226
6227 MARKER {RC5TOLCD}
6228
6229 CODE 20_US
6230 BEGIN
6231     BEGIN
6232         BIT #1,&$3C0
6233     0<> UNTIL
6234     BIC #1,&$3C0
6235     SUB #1,R14
6236 U< UNTIL
6237 MOV @R15+,R14
6238 MOV @R13+,R0
6239 ENDCODE
6240
6241 CODE TOP_LCD
6242     BIS.B #4,&$243
6243     BIT.B #1,&$241
6244 0= IF
6245     AND.B #$0F,R14
6246     MOV.B R14,&$222
6247     BIC.B #4,&$243
6248     MOV @R15+,R14
6249     MOV @R13+,R0
6250 THEN
6251     SUB #2,R15
6252     MOV R14,0(R15)
6253     BIC.B #4,&$243
6254     MOV.B &$220,R14
6255     AND.B #$0F,R14
6256     MOV @R13+,R0
6257 ENDCODE
6258
6259 CODE LCD_WRC
6260     BIS.B #2,&$243
6261 BW1 SUB #2,R15
6262     MOV R14,0(R15)
6263     RRUM #4,R14
6264     BIC.B #1,&$243
6265     BIS.B #$0F,&$224
6266 COLON
6267     TOP_LCD 2 20_US
6268     TOP_LCD 2 20_US 
6269 ;
6270
6271 CODE LCD_WRF
6272     BIC.B #2,&$243
6273     GOTO BW1
6274 ENDCODE
6275
6276 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6277 : LCD_HOME $02 LCD_WRF 100 20_us ;
6278
6279
6280
6281 ASM WDT_INT
6282 ADD #2,R1
6283 BIT.B #$20,&$240
6284 0= IF
6285     CMP #19,&$3D6
6286     U< IF
6287         ADD #1,&$3D6
6288     THEN
6289 ELSE
6290     BIT.B #$40,&$240
6291     0= IF
6292         CMP #3,&$3D6
6293         U>= IF
6294            SUB #1,&$3D6
6295         THEN
6296     THEN
6297 THEN
6298 BW1
6299 MOV @R1+,R0
6300 ENDASM
6301
6302 ASM RC5_INT
6303 ADD #2,R1
6304 $1806 @ 16000 = [IF]
6305     MOV #1,&$3A0
6306 [THEN]
6307 $1806 @ 24000 = [IF]
6308     MOV #2,&$3A0
6309 [THEN]
6310 MOV #1778,R9
6311 MOV #14,R10
6312 BEGIN
6313 MOV #%1011100100,&$380
6314     RRUM    #1,R9
6315     MOV     R9,R8
6316     RRUM    #1,R8
6317     ADD     R9,R8
6318     BEGIN   CMP R8,&$390
6319     U>= UNTIL
6320     BIT.B   #4,&$200
6321     ADDC    R11,R11
6322     MOV.B   &$200,&$208
6323     BIC.B   #4,&$20C
6324     SUB     #1,R10
6325 0<> WHILE
6326     ADD R9,R8
6327     BEGIN
6328         MOV &$390,R9
6329         CMP R8,R9
6330         U>= IF
6331         BIC #$30,&$380
6332         GOTO BW1
6333         THEN
6334         BIT.B #4,&$20C
6335     0<> UNTIL
6336 REPEAT
6337 BIC #$30,&$380
6338 RLAM    #1,R11
6339 MOV.B   R11,R9
6340 RRUM    #2,R9
6341 BIT     #$4000,R11
6342 0= IF   BIS #$40,R9
6343 THEN
6344 RRUM    #3,R11
6345 XOR     @R1,R11
6346 BIT     #$400,R11
6347 0= ?GOTO BW1
6348 XOR #$400,0(R1)
6349 SUB #8,R15
6350 MOV R14,6(R15)
6351 MOV &$1DDC,4(R15)
6352 MOV #$10,&$1DDC
6353 MOV R9,0(R15)
6354 MOV #0,R14
6355 LO2HI
6356     LCD_CLEAR
6357     <# # #S #36 HOLD #>
6358     ['] LCD_WRC IS EMIT
6359     TYPE
6360     ['] EMIT >BODY IS EMIT
6361 HI2LO
6362 MOV @R15+,&$1DDC
6363 MOV @R15+,R14
6364 MOV @R1+,R0
6365 ENDASM
6366
6367 ASM BACKGROUND
6368 BEGIN
6369     CALL &$1814
6370     BIS &$180A,R2
6371 AGAIN
6372 ENDASM
6373
6374 CODE STOP
6375 BW1 MOV #SLEEP,R9
6376     ADD #4,R9
6377     MOV R9,-2(R9)
6378 COLON
6379 ['] WARM >BODY IS WARM
6380 ECHO
6381 ." RC5toLCD is removed. type START to restart"
6382 COLD
6383 ;
6384
6385 CODE APP_INIT
6386 MOV #%1011010100,&$3C0
6387 $1806 @ 16000 = [IF]
6388     MOV #1,&$3E0
6389 [THEN]
6390 $1806 @ 24000 = [IF]
6391     MOV #2,&$3E0
6392 [THEN]
6393     MOV #19,&$3D2
6394     MOV #%01100000,&$3C6
6395     MOV #10,&$3D6
6396     BIS.B #$20,&$204
6397     BIS.B #$20,&$20A
6398     BIS.B #7,&$245
6399     BIC.B #7,&$247
6400     BIS.B #$0F,&$224
6401     BIC.B #$0F,&$226
6402     BIS.B #4,&$20A
6403     BIC.B #4,&$20C
6404     MOV #RC5_INT,&$FFDE
6405     MOV #%0100010100,&$340
6406     MOV ##3276,&$352
6407     MOV #%10000,&$342
6408     MOV #WDT_INT,&$FFEA
6409 BIC #1,&$130
6410 BIS.B #3,&$20D
6411 MOV &$1808,R8
6412 CMP #4,R8
6413 0= ?GOTO BW1
6414 COLON
6415     #1000 20_US
6416     %011 TOP_LCD
6417     #205 20_US
6418     %011 TOP_LCD
6419     #5 20_US
6420     %011 TOP_LCD
6421     #2 20_US
6422     %010 TOP_LCD
6423     #2 20_US
6424     %00101000 LCD_WRF
6425     %1000 LCD_WRF
6426     LCD_CLEAR
6427     %0110 LCD_WRF
6428     %1100 LCD_WRF
6429     LCD_CLEAR
6430     ['] LCD_HOME IS CR
6431     ['] LCD_WRC  IS EMIT
6432     CR ." I love you"
6433     ['] CR >BODY IS CR
6434     ['] EMIT >BODY IS EMIT
6435     ." RC5toLCD is running. Type STOP to quit"
6436     ABORT
6437 ;
6438
6439 CODE START
6440 MOV #SLEEP,R9
6441 MOV #BACKGROUND,2(R9)
6442 MOV #WARM,R9
6443 MOV #APP_INIT,2(R9)
6444 MOV R9,R0
6445 ENDCODE 
6446
6447 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6448
6449 MARKER {RC5TOLCD}
6450
6451 CODE 20_US
6452 BEGIN
6453     BEGIN
6454         BIT #1,&$3C0
6455     0<> UNTIL
6456     BIC #1,&$3C0
6457     SUB #1,R14
6458 U< UNTIL
6459 MOV @R15+,R14
6460 MOV @R13+,R0
6461 ENDCODE
6462
6463 CODE TOP_LCD
6464     BIS.B #4,&$243
6465     BIT.B #1,&$241
6466 0= IF
6467     AND.B #$0F,R14
6468     MOV.B R14,&$222
6469     BIC.B #4,&$243
6470     MOV @R15+,R14
6471     MOV @R13+,R0
6472 THEN
6473     SUB #2,R15
6474     MOV R14,0(R15)
6475     BIC.B #4,&$243
6476     MOV.B &$220,R14
6477     AND.B #$0F,R14
6478     MOV @R13+,R0
6479 ENDCODE
6480
6481 CODE LCD_WRC
6482     BIS.B #2,&$243
6483 BW1 SUB #2,R15
6484     MOV R14,0(R15)
6485     RRUM #4,R14
6486     BIC.B #1,&$243
6487     BIS.B #$0F,&$224
6488 COLON
6489     TOP_LCD 2 20_US
6490     TOP_LCD 2 20_US 
6491 ;
6492
6493 CODE LCD_WRF
6494     BIC.B #2,&$243
6495     GOTO BW1
6496 ENDCODE
6497
6498 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6499 : LCD_HOME $02 LCD_WRF 100 20_us ;
6500
6501
6502
6503 ASM WDT_INT
6504 ADD #2,R1
6505 BIT.B #$20,&$240
6506 0= IF
6507     CMP #19,&$3D6
6508     U< IF
6509         ADD #1,&$3D6
6510     THEN
6511 ELSE
6512     BIT.B #$40,&$240
6513     0= IF
6514         CMP #3,&$3D6
6515         U>= IF
6516            SUB #1,&$3D6
6517         THEN
6518     THEN
6519 THEN
6520 BW1
6521 MOV @R1+,R0
6522 ENDASM
6523
6524 ASM RC5_INT
6525 ADD #2,R1
6526 $1806 @ 16000 = [IF]
6527     MOV #1,&$3A0
6528 [THEN]
6529 $1806 @ 24000 = [IF]
6530     MOV #2,&$3A0
6531 [THEN]
6532 MOV #1778,R9
6533 MOV #14,R10
6534 BEGIN
6535 MOV #%1011100100,&$380
6536     RRUM    #1,R9
6537     MOV     R9,R8
6538     RRUM    #1,R8
6539     ADD     R9,R8
6540     BEGIN   CMP R8,&$390
6541     U>= UNTIL
6542     BIT.B   #4,&$200
6543     ADDC    R11,R11
6544     MOV.B   &$200,&$208
6545     BIC.B   #4,&$20C
6546     SUB     #1,R10
6547 0<> WHILE
6548     ADD R9,R8
6549     BEGIN
6550         MOV &$390,R9
6551         CMP R8,R9
6552         U>= IF
6553         BIC #$30,&$380
6554         GOTO BW1
6555         THEN
6556         BIT.B #4,&$20C
6557     0<> UNTIL
6558 REPEAT
6559 BIC #$30,&$380
6560 RLAM    #1,R11
6561 MOV.B   R11,R9
6562 RRUM    #2,R9
6563 BIT     #$4000,R11
6564 0= IF   BIS #$40,R9
6565 THEN
6566 RRUM    #3,R11
6567 XOR     @R1,R11
6568 BIT     #$400,R11
6569 0= ?GOTO BW1
6570 XOR #$400,0(R1)
6571 SUB #8,R15
6572 MOV R14,6(R15)
6573 MOV &$1DDC,4(R15)
6574 MOV #$10,&$1DDC
6575 MOV R9,0(R15)
6576 MOV #0,R14
6577 LO2HI
6578     LCD_CLEAR
6579     <# # #S #36 HOLD #>
6580     ['] LCD_WRC IS EMIT
6581     TYPE
6582     ['] EMIT >BODY IS EMIT
6583 HI2LO
6584 MOV @R15+,&$1DDC
6585 MOV @R15+,R14
6586 MOV @R1+,R0
6587 ENDASM
6588
6589 ASM BACKGROUND
6590 BEGIN
6591     CALL &$1814
6592     BIS &$180A,R2
6593 AGAIN
6594 ENDASM
6595
6596 CODE STOP
6597 BW1 MOV #SLEEP,R9
6598     ADD #4,R9
6599     MOV R9,-2(R9)
6600 COLON
6601 ['] WARM >BODY IS WARM
6602 ECHO
6603 ." RC5toLCD is removed. type START to restart"
6604 COLD
6605 ;
6606
6607 CODE APP_INIT
6608 MOV #%1011010100,&$3C0
6609 $1806 @ 16000 = [IF]
6610     MOV #1,&$3E0
6611 [THEN]
6612 $1806 @ 24000 = [IF]
6613     MOV #2,&$3E0
6614 [THEN]
6615     MOV #19,&$3D2
6616     MOV #%01100000,&$3C6
6617     MOV #10,&$3D6
6618     BIS.B #$20,&$204
6619     BIS.B #$20,&$20A
6620     BIS.B #7,&$245
6621     BIC.B #7,&$247
6622     BIS.B #$0F,&$224
6623     BIC.B #$0F,&$226
6624     BIS.B #4,&$20A
6625     BIC.B #4,&$20C
6626     MOV #RC5_INT,&$FFDE
6627     MOV #%0100010100,&$340
6628     MOV ##3276,&$352
6629     MOV #%10000,&$342
6630     MOV #WDT_INT,&$FFEA
6631 BIC #1,&$130
6632 BIS.B #3,&$20D
6633 MOV &$1808,R8
6634 CMP #4,R8
6635 0= ?GOTO BW1
6636 COLON
6637     #1000 20_US
6638     %011 TOP_LCD
6639     #205 20_US
6640     %011 TOP_LCD
6641     #5 20_US
6642     %011 TOP_LCD
6643     #2 20_US
6644     %010 TOP_LCD
6645     #2 20_US
6646     %00101000 LCD_WRF
6647     %1000 LCD_WRF
6648     LCD_CLEAR
6649     %0110 LCD_WRF
6650     %1100 LCD_WRF
6651     LCD_CLEAR
6652     ['] LCD_HOME IS CR
6653     ['] LCD_WRC  IS EMIT
6654     CR ." I love you"
6655     ['] CR >BODY IS CR
6656     ['] EMIT >BODY IS EMIT
6657     ." RC5toLCD is running. Type STOP to quit"
6658     ABORT
6659 ;
6660
6661 CODE START
6662 MOV #SLEEP,R9
6663 MOV #BACKGROUND,2(R9)
6664 MOV #WARM,R9
6665 MOV #APP_INIT,2(R9)
6666 MOV R9,R0
6667 ENDCODE 
6668
6669 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6670
6671 MARKER {RC5TOLCD}
6672
6673 CODE 20_US
6674 BEGIN
6675     BEGIN
6676         BIT #1,&$3C0
6677     0<> UNTIL
6678     BIC #1,&$3C0
6679     SUB #1,R14
6680 U< UNTIL
6681 MOV @R15+,R14
6682 MOV @R13+,R0
6683 ENDCODE
6684
6685 CODE TOP_LCD
6686     BIS.B #4,&$243
6687     BIT.B #1,&$241
6688 0= IF
6689     AND.B #$0F,R14
6690     MOV.B R14,&$222
6691     BIC.B #4,&$243
6692     MOV @R15+,R14
6693     MOV @R13+,R0
6694 THEN
6695     SUB #2,R15
6696     MOV R14,0(R15)
6697     BIC.B #4,&$243
6698     MOV.B &$220,R14
6699     AND.B #$0F,R14
6700     MOV @R13+,R0
6701 ENDCODE
6702
6703 CODE LCD_WRC
6704     BIS.B #2,&$243
6705 BW1 SUB #2,R15
6706     MOV R14,0(R15)
6707     RRUM #4,R14
6708     BIC.B #1,&$243
6709     BIS.B #$0F,&$224
6710 COLON
6711     TOP_LCD 2 20_US
6712     TOP_LCD 2 20_US 
6713 ;
6714
6715 CODE LCD_WRF
6716     BIC.B #2,&$243
6717     GOTO BW1
6718 ENDCODE
6719
6720 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6721 : LCD_HOME $02 LCD_WRF 100 20_us ;
6722
6723
6724
6725 ASM WDT_INT
6726 ADD #2,R1
6727 BIT.B #$20,&$240
6728 0= IF
6729     CMP #19,&$3D6
6730     U< IF
6731         ADD #1,&$3D6
6732     THEN
6733 ELSE
6734     BIT.B #$40,&$240
6735     0= IF
6736         CMP #3,&$3D6
6737         U>= IF
6738            SUB #1,&$3D6
6739         THEN
6740     THEN
6741 THEN
6742 BW1
6743 MOV @R1+,R0
6744 ENDASM
6745
6746 ASM RC5_INT
6747 ADD #2,R1
6748 $1806 @ 16000 = [IF]
6749     MOV #1,&$3A0
6750 [THEN]
6751 $1806 @ 24000 = [IF]
6752     MOV #2,&$3A0
6753 [THEN]
6754 MOV #1778,R9
6755 MOV #14,R10
6756 BEGIN
6757 MOV #%1011100100,&$380
6758     RRUM    #1,R9
6759     MOV     R9,R8
6760     RRUM    #1,R8
6761     ADD     R9,R8
6762     BEGIN   CMP R8,&$390
6763     U>= UNTIL
6764     BIT.B   #4,&$200
6765     ADDC    R11,R11
6766     MOV.B   &$200,&$208
6767     BIC.B   #4,&$20C
6768     SUB     #1,R10
6769 0<> WHILE
6770     ADD R9,R8
6771     BEGIN
6772         MOV &$390,R9
6773         CMP R8,R9
6774         U>= IF
6775         BIC #$30,&$380
6776         GOTO BW1
6777         THEN
6778         BIT.B #4,&$20C
6779     0<> UNTIL
6780 REPEAT
6781 BIC #$30,&$380
6782 RLAM    #1,R11
6783 MOV.B   R11,R9
6784 RRUM    #2,R9
6785 BIT     #$4000,R11
6786 0= IF   BIS #$40,R9
6787 THEN
6788 RRUM    #3,R11
6789 XOR     @R1,R11
6790 BIT     #$400,R11
6791 0= ?GOTO BW1
6792 XOR #$400,0(R1)
6793 SUB #8,R15
6794 MOV R14,6(R15)
6795 MOV &$1DDC,4(R15)
6796 MOV #$10,&$1DDC
6797 MOV R9,0(R15)
6798 MOV #0,R14
6799 LO2HI
6800     LCD_CLEAR
6801     <# # #S #36 HOLD #>
6802     ['] LCD_WRC IS EMIT
6803     TYPE
6804     ['] EMIT >BODY IS EMIT
6805 HI2LO
6806 MOV @R15+,&$1DDC
6807 MOV @R15+,R14
6808 MOV @R1+,R0
6809 ENDASM
6810
6811 ASM BACKGROUND
6812 BEGIN
6813     CALL &$1814
6814     BIS &$180A,R2
6815 AGAIN
6816 ENDASM
6817
6818 CODE STOP
6819 BW1 MOV #SLEEP,R9
6820     ADD #4,R9
6821     MOV R9,-2(R9)
6822 COLON
6823 ['] WARM >BODY IS WARM
6824 ECHO
6825 ." RC5toLCD is removed. type START to restart"
6826 COLD
6827 ;
6828
6829 CODE APP_INIT
6830 MOV #%1011010100,&$3C0
6831 $1806 @ 16000 = [IF]
6832     MOV #1,&$3E0
6833 [THEN]
6834 $1806 @ 24000 = [IF]
6835     MOV #2,&$3E0
6836 [THEN]
6837     MOV #19,&$3D2
6838     MOV #%01100000,&$3C6
6839     MOV #10,&$3D6
6840     BIS.B #$20,&$204
6841     BIS.B #$20,&$20A
6842     BIS.B #7,&$245
6843     BIC.B #7,&$247
6844     BIS.B #$0F,&$224
6845     BIC.B #$0F,&$226
6846     BIS.B #4,&$20A
6847     BIC.B #4,&$20C
6848     MOV #RC5_INT,&$FFDE
6849     MOV #%0100010100,&$340
6850     MOV ##3276,&$352
6851     MOV #%10000,&$342
6852     MOV #WDT_INT,&$FFEA
6853 BIC #1,&$130
6854 BIS.B #3,&$20D
6855 MOV &$1808,R8
6856 CMP #4,R8
6857 0= ?GOTO BW1
6858 COLON
6859     #1000 20_US
6860     %011 TOP_LCD
6861     #205 20_US
6862     %011 TOP_LCD
6863     #5 20_US
6864     %011 TOP_LCD
6865     #2 20_US
6866     %010 TOP_LCD
6867     #2 20_US
6868     %00101000 LCD_WRF
6869     %1000 LCD_WRF
6870     LCD_CLEAR
6871     %0110 LCD_WRF
6872     %1100 LCD_WRF
6873     LCD_CLEAR
6874     ['] LCD_HOME IS CR
6875     ['] LCD_WRC  IS EMIT
6876     CR ." I love you"
6877     ['] CR >BODY IS CR
6878     ['] EMIT >BODY IS EMIT
6879     ." RC5toLCD is running. Type STOP to quit"
6880     ABORT
6881 ;
6882
6883 CODE START
6884 MOV #SLEEP,R9
6885 MOV #BACKGROUND,2(R9)
6886 MOV #WARM,R9
6887 MOV #APP_INIT,2(R9)
6888 MOV R9,R0
6889 ENDCODE 
6890
6891 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
6892
6893 MARKER {RC5TOLCD}
6894
6895 CODE 20_US
6896 BEGIN
6897     BEGIN
6898         BIT #1,&$3C0
6899     0<> UNTIL
6900     BIC #1,&$3C0
6901     SUB #1,R14
6902 U< UNTIL
6903 MOV @R15+,R14
6904 MOV @R13+,R0
6905 ENDCODE
6906
6907 CODE TOP_LCD
6908     BIS.B #4,&$243
6909     BIT.B #1,&$241
6910 0= IF
6911     AND.B #$0F,R14
6912     MOV.B R14,&$222
6913     BIC.B #4,&$243
6914     MOV @R15+,R14
6915     MOV @R13+,R0
6916 THEN
6917     SUB #2,R15
6918     MOV R14,0(R15)
6919     BIC.B #4,&$243
6920     MOV.B &$220,R14
6921     AND.B #$0F,R14
6922     MOV @R13+,R0
6923 ENDCODE
6924
6925 CODE LCD_WRC
6926     BIS.B #2,&$243
6927 BW1 SUB #2,R15
6928     MOV R14,0(R15)
6929     RRUM #4,R14
6930     BIC.B #1,&$243
6931     BIS.B #$0F,&$224
6932 COLON
6933     TOP_LCD 2 20_US
6934     TOP_LCD 2 20_US 
6935 ;
6936
6937 CODE LCD_WRF
6938     BIC.B #2,&$243
6939     GOTO BW1
6940 ENDCODE
6941
6942 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
6943 : LCD_HOME $02 LCD_WRF 100 20_us ;
6944
6945
6946
6947 ASM WDT_INT
6948 ADD #2,R1
6949 BIT.B #$20,&$240
6950 0= IF
6951     CMP #19,&$3D6
6952     U< IF
6953         ADD #1,&$3D6
6954     THEN
6955 ELSE
6956     BIT.B #$40,&$240
6957     0= IF
6958         CMP #3,&$3D6
6959         U>= IF
6960            SUB #1,&$3D6
6961         THEN
6962     THEN
6963 THEN
6964 BW1
6965 MOV @R1+,R0
6966 ENDASM
6967
6968 ASM RC5_INT
6969 ADD #2,R1
6970 $1806 @ 16000 = [IF]
6971     MOV #1,&$3A0
6972 [THEN]
6973 $1806 @ 24000 = [IF]
6974     MOV #2,&$3A0
6975 [THEN]
6976 MOV #1778,R9
6977 MOV #14,R10
6978 BEGIN
6979 MOV #%1011100100,&$380
6980     RRUM    #1,R9
6981     MOV     R9,R8
6982     RRUM    #1,R8
6983     ADD     R9,R8
6984     BEGIN   CMP R8,&$390
6985     U>= UNTIL
6986     BIT.B   #4,&$200
6987     ADDC    R11,R11
6988     MOV.B   &$200,&$208
6989     BIC.B   #4,&$20C
6990     SUB     #1,R10
6991 0<> WHILE
6992     ADD R9,R8
6993     BEGIN
6994         MOV &$390,R9
6995         CMP R8,R9
6996         U>= IF
6997         BIC #$30,&$380
6998         GOTO BW1
6999         THEN
7000         BIT.B #4,&$20C
7001     0<> UNTIL
7002 REPEAT
7003 BIC #$30,&$380
7004 RLAM    #1,R11
7005 MOV.B   R11,R9
7006 RRUM    #2,R9
7007 BIT     #$4000,R11
7008 0= IF   BIS #$40,R9
7009 THEN
7010 RRUM    #3,R11
7011 XOR     @R1,R11
7012 BIT     #$400,R11
7013 0= ?GOTO BW1
7014 XOR #$400,0(R1)
7015 SUB #8,R15
7016 MOV R14,6(R15)
7017 MOV &$1DDC,4(R15)
7018 MOV #$10,&$1DDC
7019 MOV R9,0(R15)
7020 MOV #0,R14
7021 LO2HI
7022     LCD_CLEAR
7023     <# # #S #36 HOLD #>
7024     ['] LCD_WRC IS EMIT
7025     TYPE
7026     ['] EMIT >BODY IS EMIT
7027 HI2LO
7028 MOV @R15+,&$1DDC
7029 MOV @R15+,R14
7030 MOV @R1+,R0
7031 ENDASM
7032
7033 ASM BACKGROUND
7034 BEGIN
7035     CALL &$1814
7036     BIS &$180A,R2
7037 AGAIN
7038 ENDASM
7039
7040 CODE STOP
7041 BW1 MOV #SLEEP,R9
7042     ADD #4,R9
7043     MOV R9,-2(R9)
7044 COLON
7045 ['] WARM >BODY IS WARM
7046 ECHO
7047 ." RC5toLCD is removed. type START to restart"
7048 COLD
7049 ;
7050
7051 CODE APP_INIT
7052 MOV #%1011010100,&$3C0
7053 $1806 @ 16000 = [IF]
7054     MOV #1,&$3E0
7055 [THEN]
7056 $1806 @ 24000 = [IF]
7057     MOV #2,&$3E0
7058 [THEN]
7059     MOV #19,&$3D2
7060     MOV #%01100000,&$3C6
7061     MOV #10,&$3D6
7062     BIS.B #$20,&$204
7063     BIS.B #$20,&$20A
7064     BIS.B #7,&$245
7065     BIC.B #7,&$247
7066     BIS.B #$0F,&$224
7067     BIC.B #$0F,&$226
7068     BIS.B #4,&$20A
7069     BIC.B #4,&$20C
7070     MOV #RC5_INT,&$FFDE
7071     MOV #%0100010100,&$340
7072     MOV ##3276,&$352
7073     MOV #%10000,&$342
7074     MOV #WDT_INT,&$FFEA
7075 BIC #1,&$130
7076 BIS.B #3,&$20D
7077 MOV &$1808,R8
7078 CMP #4,R8
7079 0= ?GOTO BW1
7080 COLON
7081     #1000 20_US
7082     %011 TOP_LCD
7083     #205 20_US
7084     %011 TOP_LCD
7085     #5 20_US
7086     %011 TOP_LCD
7087     #2 20_US
7088     %010 TOP_LCD
7089     #2 20_US
7090     %00101000 LCD_WRF
7091     %1000 LCD_WRF
7092     LCD_CLEAR
7093     %0110 LCD_WRF
7094     %1100 LCD_WRF
7095     LCD_CLEAR
7096     ['] LCD_HOME IS CR
7097     ['] LCD_WRC  IS EMIT
7098     CR ." I love you"
7099     ['] CR >BODY IS CR
7100     ['] EMIT >BODY IS EMIT
7101     ." RC5toLCD is running. Type STOP to quit"
7102     ABORT
7103 ;
7104
7105 CODE START
7106 MOV #SLEEP,R9
7107 MOV #BACKGROUND,2(R9)
7108 MOV #WARM,R9
7109 MOV #APP_INIT,2(R9)
7110 MOV R9,R0
7111 ENDCODE 
7112
7113 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
7114
7115 MARKER {RC5TOLCD}
7116
7117 CODE 20_US
7118 BEGIN
7119     BEGIN
7120         BIT #1,&$3C0
7121     0<> UNTIL
7122     BIC #1,&$3C0
7123     SUB #1,R14
7124 U< UNTIL
7125 MOV @R15+,R14
7126 MOV @R13+,R0
7127 ENDCODE
7128
7129 CODE TOP_LCD
7130     BIS.B #4,&$243
7131     BIT.B #1,&$241
7132 0= IF
7133     AND.B #$0F,R14
7134     MOV.B R14,&$222
7135     BIC.B #4,&$243
7136     MOV @R15+,R14
7137     MOV @R13+,R0
7138 THEN
7139     SUB #2,R15
7140     MOV R14,0(R15)
7141     BIC.B #4,&$243
7142     MOV.B &$220,R14
7143     AND.B #$0F,R14
7144     MOV @R13+,R0
7145 ENDCODE
7146
7147 CODE LCD_WRC
7148     BIS.B #2,&$243
7149 BW1 SUB #2,R15
7150     MOV R14,0(R15)
7151     RRUM #4,R14
7152     BIC.B #1,&$243
7153     BIS.B #$0F,&$224
7154 COLON
7155     TOP_LCD 2 20_US
7156     TOP_LCD 2 20_US 
7157 ;
7158
7159 CODE LCD_WRF
7160     BIC.B #2,&$243
7161     GOTO BW1
7162 ENDCODE
7163
7164 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7165 : LCD_HOME $02 LCD_WRF 100 20_us ;
7166
7167
7168
7169 ASM WDT_INT
7170 ADD #2,R1
7171 BIT.B #$20,&$240
7172 0= IF
7173     CMP #19,&$3D6
7174     U< IF
7175         ADD #1,&$3D6
7176     THEN
7177 ELSE
7178     BIT.B #$40,&$240
7179     0= IF
7180         CMP #3,&$3D6
7181         U>= IF
7182            SUB #1,&$3D6
7183         THEN
7184     THEN
7185 THEN
7186 BW1
7187 MOV @R1+,R0
7188 ENDASM
7189
7190 ASM RC5_INT
7191 ADD #2,R1
7192 $1806 @ 16000 = [IF]
7193     MOV #1,&$3A0
7194 [THEN]
7195 $1806 @ 24000 = [IF]
7196     MOV #2,&$3A0
7197 [THEN]
7198 MOV #1778,R9
7199 MOV #14,R10
7200 BEGIN
7201 MOV #%1011100100,&$380
7202     RRUM    #1,R9
7203     MOV     R9,R8
7204     RRUM    #1,R8
7205     ADD     R9,R8
7206     BEGIN   CMP R8,&$390
7207     U>= UNTIL
7208     BIT.B   #4,&$200
7209     ADDC    R11,R11
7210     MOV.B   &$200,&$208
7211     BIC.B   #4,&$20C
7212     SUB     #1,R10
7213 0<> WHILE
7214     ADD R9,R8
7215     BEGIN
7216         MOV &$390,R9
7217         CMP R8,R9
7218         U>= IF
7219         BIC #$30,&$380
7220         GOTO BW1
7221         THEN
7222         BIT.B #4,&$20C
7223     0<> UNTIL
7224 REPEAT
7225 BIC #$30,&$380
7226 RLAM    #1,R11
7227 MOV.B   R11,R9
7228 RRUM    #2,R9
7229 BIT     #$4000,R11
7230 0= IF   BIS #$40,R9
7231 THEN
7232 RRUM    #3,R11
7233 XOR     @R1,R11
7234 BIT     #$400,R11
7235 0= ?GOTO BW1
7236 XOR #$400,0(R1)
7237 SUB #8,R15
7238 MOV R14,6(R15)
7239 MOV &$1DDC,4(R15)
7240 MOV #$10,&$1DDC
7241 MOV R9,0(R15)
7242 MOV #0,R14
7243 LO2HI
7244     LCD_CLEAR
7245     <# # #S #36 HOLD #>
7246     ['] LCD_WRC IS EMIT
7247     TYPE
7248     ['] EMIT >BODY IS EMIT
7249 HI2LO
7250 MOV @R15+,&$1DDC
7251 MOV @R15+,R14
7252 MOV @R1+,R0
7253 ENDASM
7254
7255 ASM BACKGROUND
7256 BEGIN
7257     CALL &$1814
7258     BIS &$180A,R2
7259 AGAIN
7260 ENDASM
7261
7262 CODE STOP
7263 BW1 MOV #SLEEP,R9
7264     ADD #4,R9
7265     MOV R9,-2(R9)
7266 COLON
7267 ['] WARM >BODY IS WARM
7268 ECHO
7269 ." RC5toLCD is removed. type START to restart"
7270 COLD
7271 ;
7272
7273 CODE APP_INIT
7274 MOV #%1011010100,&$3C0
7275 $1806 @ 16000 = [IF]
7276     MOV #1,&$3E0
7277 [THEN]
7278 $1806 @ 24000 = [IF]
7279     MOV #2,&$3E0
7280 [THEN]
7281     MOV #19,&$3D2
7282     MOV #%01100000,&$3C6
7283     MOV #10,&$3D6
7284     BIS.B #$20,&$204
7285     BIS.B #$20,&$20A
7286     BIS.B #7,&$245
7287     BIC.B #7,&$247
7288     BIS.B #$0F,&$224
7289     BIC.B #$0F,&$226
7290     BIS.B #4,&$20A
7291     BIC.B #4,&$20C
7292     MOV #RC5_INT,&$FFDE
7293     MOV #%0100010100,&$340
7294     MOV ##3276,&$352
7295     MOV #%10000,&$342
7296     MOV #WDT_INT,&$FFEA
7297 BIC #1,&$130
7298 BIS.B #3,&$20D
7299 MOV &$1808,R8
7300 CMP #4,R8
7301 0= ?GOTO BW1
7302 COLON
7303     #1000 20_US
7304     %011 TOP_LCD
7305     #205 20_US
7306     %011 TOP_LCD
7307     #5 20_US
7308     %011 TOP_LCD
7309     #2 20_US
7310     %010 TOP_LCD
7311     #2 20_US
7312     %00101000 LCD_WRF
7313     %1000 LCD_WRF
7314     LCD_CLEAR
7315     %0110 LCD_WRF
7316     %1100 LCD_WRF
7317     LCD_CLEAR
7318     ['] LCD_HOME IS CR
7319     ['] LCD_WRC  IS EMIT
7320     CR ." I love you"
7321     ['] CR >BODY IS CR
7322     ['] EMIT >BODY IS EMIT
7323     ." RC5toLCD is running. Type STOP to quit"
7324     ABORT
7325 ;
7326
7327 CODE START
7328 MOV #SLEEP,R9
7329 MOV #BACKGROUND,2(R9)
7330 MOV #WARM,R9
7331 MOV #APP_INIT,2(R9)
7332 MOV R9,R0
7333 ENDCODE 
7334
7335 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
7336
7337 MARKER {RC5TOLCD}
7338
7339 CODE 20_US
7340 BEGIN
7341     BEGIN
7342         BIT #1,&$3C0
7343     0<> UNTIL
7344     BIC #1,&$3C0
7345     SUB #1,R14
7346 U< UNTIL
7347 MOV @R15+,R14
7348 MOV @R13+,R0
7349 ENDCODE
7350
7351 CODE TOP_LCD
7352     BIS.B #4,&$243
7353     BIT.B #1,&$241
7354 0= IF
7355     AND.B #$0F,R14
7356     MOV.B R14,&$222
7357     BIC.B #4,&$243
7358     MOV @R15+,R14
7359     MOV @R13+,R0
7360 THEN
7361     SUB #2,R15
7362     MOV R14,0(R15)
7363     BIC.B #4,&$243
7364     MOV.B &$220,R14
7365     AND.B #$0F,R14
7366     MOV @R13+,R0
7367 ENDCODE
7368
7369 CODE LCD_WRC
7370     BIS.B #2,&$243
7371 BW1 SUB #2,R15
7372     MOV R14,0(R15)
7373     RRUM #4,R14
7374     BIC.B #1,&$243
7375     BIS.B #$0F,&$224
7376 COLON
7377     TOP_LCD 2 20_US
7378     TOP_LCD 2 20_US 
7379 ;
7380
7381 CODE LCD_WRF
7382     BIC.B #2,&$243
7383     GOTO BW1
7384 ENDCODE
7385
7386 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7387 : LCD_HOME $02 LCD_WRF 100 20_us ;
7388
7389
7390
7391 ASM WDT_INT
7392 ADD #2,R1
7393 BIT.B #$20,&$240
7394 0= IF
7395     CMP #19,&$3D6
7396     U< IF
7397         ADD #1,&$3D6
7398     THEN
7399 ELSE
7400     BIT.B #$40,&$240
7401     0= IF
7402         CMP #3,&$3D6
7403         U>= IF
7404            SUB #1,&$3D6
7405         THEN
7406     THEN
7407 THEN
7408 BW1
7409 MOV @R1+,R0
7410 ENDASM
7411
7412 ASM RC5_INT
7413 ADD #2,R1
7414 $1806 @ 16000 = [IF]
7415     MOV #1,&$3A0
7416 [THEN]
7417 $1806 @ 24000 = [IF]
7418     MOV #2,&$3A0
7419 [THEN]
7420 MOV #1778,R9
7421 MOV #14,R10
7422 BEGIN
7423 MOV #%1011100100,&$380
7424     RRUM    #1,R9
7425     MOV     R9,R8
7426     RRUM    #1,R8
7427     ADD     R9,R8
7428     BEGIN   CMP R8,&$390
7429     U>= UNTIL
7430     BIT.B   #4,&$200
7431     ADDC    R11,R11
7432     MOV.B   &$200,&$208
7433     BIC.B   #4,&$20C
7434     SUB     #1,R10
7435 0<> WHILE
7436     ADD R9,R8
7437     BEGIN
7438         MOV &$390,R9
7439         CMP R8,R9
7440         U>= IF
7441         BIC #$30,&$380
7442         GOTO BW1
7443         THEN
7444         BIT.B #4,&$20C
7445     0<> UNTIL
7446 REPEAT
7447 BIC #$30,&$380
7448 RLAM    #1,R11
7449 MOV.B   R11,R9
7450 RRUM    #2,R9
7451 BIT     #$4000,R11
7452 0= IF   BIS #$40,R9
7453 THEN
7454 RRUM    #3,R11
7455 XOR     @R1,R11
7456 BIT     #$400,R11
7457 0= ?GOTO BW1
7458 XOR #$400,0(R1)
7459 SUB #8,R15
7460 MOV R14,6(R15)
7461 MOV &$1DDC,4(R15)
7462 MOV #$10,&$1DDC
7463 MOV R9,0(R15)
7464 MOV #0,R14
7465 LO2HI
7466     LCD_CLEAR
7467     <# # #S #36 HOLD #>
7468     ['] LCD_WRC IS EMIT
7469     TYPE
7470     ['] EMIT >BODY IS EMIT
7471 HI2LO
7472 MOV @R15+,&$1DDC
7473 MOV @R15+,R14
7474 MOV @R1+,R0
7475 ENDASM
7476
7477 ASM BACKGROUND
7478 BEGIN
7479     CALL &$1814
7480     BIS &$180A,R2
7481 AGAIN
7482 ENDASM
7483
7484 CODE STOP
7485 BW1 MOV #SLEEP,R9
7486     ADD #4,R9
7487     MOV R9,-2(R9)
7488 COLON
7489 ['] WARM >BODY IS WARM
7490 ECHO
7491 ." RC5toLCD is removed. type START to restart"
7492 COLD
7493 ;
7494
7495 CODE APP_INIT
7496 MOV #%1011010100,&$3C0
7497 $1806 @ 16000 = [IF]
7498     MOV #1,&$3E0
7499 [THEN]
7500 $1806 @ 24000 = [IF]
7501     MOV #2,&$3E0
7502 [THEN]
7503     MOV #19,&$3D2
7504     MOV #%01100000,&$3C6
7505     MOV #10,&$3D6
7506     BIS.B #$20,&$204
7507     BIS.B #$20,&$20A
7508     BIS.B #7,&$245
7509     BIC.B #7,&$247
7510     BIS.B #$0F,&$224
7511     BIC.B #$0F,&$226
7512     BIS.B #4,&$20A
7513     BIC.B #4,&$20C
7514     MOV #RC5_INT,&$FFDE
7515     MOV #%0100010100,&$340
7516     MOV ##3276,&$352
7517     MOV #%10000,&$342
7518     MOV #WDT_INT,&$FFEA
7519 BIC #1,&$130
7520 BIS.B #3,&$20D
7521 MOV &$1808,R8
7522 CMP #4,R8
7523 0= ?GOTO BW1
7524 COLON
7525     #1000 20_US
7526     %011 TOP_LCD
7527     #205 20_US
7528     %011 TOP_LCD
7529     #5 20_US
7530     %011 TOP_LCD
7531     #2 20_US
7532     %010 TOP_LCD
7533     #2 20_US
7534     %00101000 LCD_WRF
7535     %1000 LCD_WRF
7536     LCD_CLEAR
7537     %0110 LCD_WRF
7538     %1100 LCD_WRF
7539     LCD_CLEAR
7540     ['] LCD_HOME IS CR
7541     ['] LCD_WRC  IS EMIT
7542     CR ." I love you"
7543     ['] CR >BODY IS CR
7544     ['] EMIT >BODY IS EMIT
7545     ." RC5toLCD is running. Type STOP to quit"
7546     ABORT
7547 ;
7548
7549 CODE START
7550 MOV #SLEEP,R9
7551 MOV #BACKGROUND,2(R9)
7552 MOV #WARM,R9
7553 MOV #APP_INIT,2(R9)
7554 MOV R9,R0
7555 ENDCODE 
7556
7557 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
7558
7559 MARKER {RC5TOLCD}
7560
7561 CODE 20_US
7562 BEGIN
7563     BEGIN
7564         BIT #1,&$3C0
7565     0<> UNTIL
7566     BIC #1,&$3C0
7567     SUB #1,R14
7568 U< UNTIL
7569 MOV @R15+,R14
7570 MOV @R13+,R0
7571 ENDCODE
7572
7573 CODE TOP_LCD
7574     BIS.B #4,&$243
7575     BIT.B #1,&$241
7576 0= IF
7577     AND.B #$0F,R14
7578     MOV.B R14,&$222
7579     BIC.B #4,&$243
7580     MOV @R15+,R14
7581     MOV @R13+,R0
7582 THEN
7583     SUB #2,R15
7584     MOV R14,0(R15)
7585     BIC.B #4,&$243
7586     MOV.B &$220,R14
7587     AND.B #$0F,R14
7588     MOV @R13+,R0
7589 ENDCODE
7590
7591 CODE LCD_WRC
7592     BIS.B #2,&$243
7593 BW1 SUB #2,R15
7594     MOV R14,0(R15)
7595     RRUM #4,R14
7596     BIC.B #1,&$243
7597     BIS.B #$0F,&$224
7598 COLON
7599     TOP_LCD 2 20_US
7600     TOP_LCD 2 20_US 
7601 ;
7602
7603 CODE LCD_WRF
7604     BIC.B #2,&$243
7605     GOTO BW1
7606 ENDCODE
7607
7608 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7609 : LCD_HOME $02 LCD_WRF 100 20_us ;
7610
7611
7612
7613 ASM WDT_INT
7614 ADD #2,R1
7615 BIT.B #$20,&$240
7616 0= IF
7617     CMP #19,&$3D6
7618     U< IF
7619         ADD #1,&$3D6
7620     THEN
7621 ELSE
7622     BIT.B #$40,&$240
7623     0= IF
7624         CMP #3,&$3D6
7625         U>= IF
7626            SUB #1,&$3D6
7627         THEN
7628     THEN
7629 THEN
7630 BW1
7631 MOV @R1+,R0
7632 ENDASM
7633
7634 ASM RC5_INT
7635 ADD #2,R1
7636 $1806 @ 16000 = [IF]
7637     MOV #1,&$3A0
7638 [THEN]
7639 $1806 @ 24000 = [IF]
7640     MOV #2,&$3A0
7641 [THEN]
7642 MOV #1778,R9
7643 MOV #14,R10
7644 BEGIN
7645 MOV #%1011100100,&$380
7646     RRUM    #1,R9
7647     MOV     R9,R8
7648     RRUM    #1,R8
7649     ADD     R9,R8
7650     BEGIN   CMP R8,&$390
7651     U>= UNTIL
7652     BIT.B   #4,&$200
7653     ADDC    R11,R11
7654     MOV.B   &$200,&$208
7655     BIC.B   #4,&$20C
7656     SUB     #1,R10
7657 0<> WHILE
7658     ADD R9,R8
7659     BEGIN
7660         MOV &$390,R9
7661         CMP R8,R9
7662         U>= IF
7663         BIC #$30,&$380
7664         GOTO BW1
7665         THEN
7666         BIT.B #4,&$20C
7667     0<> UNTIL
7668 REPEAT
7669 BIC #$30,&$380
7670 RLAM    #1,R11
7671 MOV.B   R11,R9
7672 RRUM    #2,R9
7673 BIT     #$4000,R11
7674 0= IF   BIS #$40,R9
7675 THEN
7676 RRUM    #3,R11
7677 XOR     @R1,R11
7678 BIT     #$400,R11
7679 0= ?GOTO BW1
7680 XOR #$400,0(R1)
7681 SUB #8,R15
7682 MOV R14,6(R15)
7683 MOV &$1DDC,4(R15)
7684 MOV #$10,&$1DDC
7685 MOV R9,0(R15)
7686 MOV #0,R14
7687 LO2HI
7688     LCD_CLEAR
7689     <# # #S #36 HOLD #>
7690     ['] LCD_WRC IS EMIT
7691     TYPE
7692     ['] EMIT >BODY IS EMIT
7693 HI2LO
7694 MOV @R15+,&$1DDC
7695 MOV @R15+,R14
7696 MOV @R1+,R0
7697 ENDASM
7698
7699 ASM BACKGROUND
7700 BEGIN
7701     CALL &$1814
7702     BIS &$180A,R2
7703 AGAIN
7704 ENDASM
7705
7706 CODE STOP
7707 BW1 MOV #SLEEP,R9
7708     ADD #4,R9
7709     MOV R9,-2(R9)
7710 COLON
7711 ['] WARM >BODY IS WARM
7712 ECHO
7713 ." RC5toLCD is removed. type START to restart"
7714 COLD
7715 ;
7716
7717 CODE APP_INIT
7718 MOV #%1011010100,&$3C0
7719 $1806 @ 16000 = [IF]
7720     MOV #1,&$3E0
7721 [THEN]
7722 $1806 @ 24000 = [IF]
7723     MOV #2,&$3E0
7724 [THEN]
7725     MOV #19,&$3D2
7726     MOV #%01100000,&$3C6
7727     MOV #10,&$3D6
7728     BIS.B #$20,&$204
7729     BIS.B #$20,&$20A
7730     BIS.B #7,&$245
7731     BIC.B #7,&$247
7732     BIS.B #$0F,&$224
7733     BIC.B #$0F,&$226
7734     BIS.B #4,&$20A
7735     BIC.B #4,&$20C
7736     MOV #RC5_INT,&$FFDE
7737     MOV #%0100010100,&$340
7738     MOV ##3276,&$352
7739     MOV #%10000,&$342
7740     MOV #WDT_INT,&$FFEA
7741 BIC #1,&$130
7742 BIS.B #3,&$20D
7743 MOV &$1808,R8
7744 CMP #4,R8
7745 0= ?GOTO BW1
7746 COLON
7747     #1000 20_US
7748     %011 TOP_LCD
7749     #205 20_US
7750     %011 TOP_LCD
7751     #5 20_US
7752     %011 TOP_LCD
7753     #2 20_US
7754     %010 TOP_LCD
7755     #2 20_US
7756     %00101000 LCD_WRF
7757     %1000 LCD_WRF
7758     LCD_CLEAR
7759     %0110 LCD_WRF
7760     %1100 LCD_WRF
7761     LCD_CLEAR
7762     ['] LCD_HOME IS CR
7763     ['] LCD_WRC  IS EMIT
7764     CR ." I love you"
7765     ['] CR >BODY IS CR
7766     ['] EMIT >BODY IS EMIT
7767     ." RC5toLCD is running. Type STOP to quit"
7768     ABORT
7769 ;
7770
7771 CODE START
7772 MOV #SLEEP,R9
7773 MOV #BACKGROUND,2(R9)
7774 MOV #WARM,R9
7775 MOV #APP_INIT,2(R9)
7776 MOV R9,R0
7777 ENDCODE 
7778
7779 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
7780
7781 MARKER {RC5TOLCD}
7782
7783 CODE 20_US
7784 BEGIN
7785     BEGIN
7786         BIT #1,&$3C0
7787     0<> UNTIL
7788     BIC #1,&$3C0
7789     SUB #1,R14
7790 U< UNTIL
7791 MOV @R15+,R14
7792 MOV @R13+,R0
7793 ENDCODE
7794
7795 CODE TOP_LCD
7796     BIS.B #4,&$243
7797     BIT.B #1,&$241
7798 0= IF
7799     AND.B #$0F,R14
7800     MOV.B R14,&$222
7801     BIC.B #4,&$243
7802     MOV @R15+,R14
7803     MOV @R13+,R0
7804 THEN
7805     SUB #2,R15
7806     MOV R14,0(R15)
7807     BIC.B #4,&$243
7808     MOV.B &$220,R14
7809     AND.B #$0F,R14
7810     MOV @R13+,R0
7811 ENDCODE
7812
7813 CODE LCD_WRC
7814     BIS.B #2,&$243
7815 BW1 SUB #2,R15
7816     MOV R14,0(R15)
7817     RRUM #4,R14
7818     BIC.B #1,&$243
7819     BIS.B #$0F,&$224
7820 COLON
7821     TOP_LCD 2 20_US
7822     TOP_LCD 2 20_US 
7823 ;
7824
7825 CODE LCD_WRF
7826     BIC.B #2,&$243
7827     GOTO BW1
7828 ENDCODE
7829
7830 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
7831 : LCD_HOME $02 LCD_WRF 100 20_us ;
7832
7833
7834
7835 ASM WDT_INT
7836 ADD #2,R1
7837 BIT.B #$20,&$240
7838 0= IF
7839     CMP #19,&$3D6
7840     U< IF
7841         ADD #1,&$3D6
7842     THEN
7843 ELSE
7844     BIT.B #$40,&$240
7845     0= IF
7846         CMP #3,&$3D6
7847         U>= IF
7848            SUB #1,&$3D6
7849         THEN
7850     THEN
7851 THEN
7852 BW1
7853 MOV @R1+,R0
7854 ENDASM
7855
7856 ASM RC5_INT
7857 ADD #2,R1
7858 $1806 @ 16000 = [IF]
7859     MOV #1,&$3A0
7860 [THEN]
7861 $1806 @ 24000 = [IF]
7862     MOV #2,&$3A0
7863 [THEN]
7864 MOV #1778,R9
7865 MOV #14,R10
7866 BEGIN
7867 MOV #%1011100100,&$380
7868     RRUM    #1,R9
7869     MOV     R9,R8
7870     RRUM    #1,R8
7871     ADD     R9,R8
7872     BEGIN   CMP R8,&$390
7873     U>= UNTIL
7874     BIT.B   #4,&$200
7875     ADDC    R11,R11
7876     MOV.B   &$200,&$208
7877     BIC.B   #4,&$20C
7878     SUB     #1,R10
7879 0<> WHILE
7880     ADD R9,R8
7881     BEGIN
7882         MOV &$390,R9
7883         CMP R8,R9
7884         U>= IF
7885         BIC #$30,&$380
7886         GOTO BW1
7887         THEN
7888         BIT.B #4,&$20C
7889     0<> UNTIL
7890 REPEAT
7891 BIC #$30,&$380
7892 RLAM    #1,R11
7893 MOV.B   R11,R9
7894 RRUM    #2,R9
7895 BIT     #$4000,R11
7896 0= IF   BIS #$40,R9
7897 THEN
7898 RRUM    #3,R11
7899 XOR     @R1,R11
7900 BIT     #$400,R11
7901 0= ?GOTO BW1
7902 XOR #$400,0(R1)
7903 SUB #8,R15
7904 MOV R14,6(R15)
7905 MOV &$1DDC,4(R15)
7906 MOV #$10,&$1DDC
7907 MOV R9,0(R15)
7908 MOV #0,R14
7909 LO2HI
7910     LCD_CLEAR
7911     <# # #S #36 HOLD #>
7912     ['] LCD_WRC IS EMIT
7913     TYPE
7914     ['] EMIT >BODY IS EMIT
7915 HI2LO
7916 MOV @R15+,&$1DDC
7917 MOV @R15+,R14
7918 MOV @R1+,R0
7919 ENDASM
7920
7921 ASM BACKGROUND
7922 BEGIN
7923     CALL &$1814
7924     BIS &$180A,R2
7925 AGAIN
7926 ENDASM
7927
7928 CODE STOP
7929 BW1 MOV #SLEEP,R9
7930     ADD #4,R9
7931     MOV R9,-2(R9)
7932 COLON
7933 ['] WARM >BODY IS WARM
7934 ECHO
7935 ." RC5toLCD is removed. type START to restart"
7936 COLD
7937 ;
7938
7939 CODE APP_INIT
7940 MOV #%1011010100,&$3C0
7941 $1806 @ 16000 = [IF]
7942     MOV #1,&$3E0
7943 [THEN]
7944 $1806 @ 24000 = [IF]
7945     MOV #2,&$3E0
7946 [THEN]
7947     MOV #19,&$3D2
7948     MOV #%01100000,&$3C6
7949     MOV #10,&$3D6
7950     BIS.B #$20,&$204
7951     BIS.B #$20,&$20A
7952     BIS.B #7,&$245
7953     BIC.B #7,&$247
7954     BIS.B #$0F,&$224
7955     BIC.B #$0F,&$226
7956     BIS.B #4,&$20A
7957     BIC.B #4,&$20C
7958     MOV #RC5_INT,&$FFDE
7959     MOV #%0100010100,&$340
7960     MOV ##3276,&$352
7961     MOV #%10000,&$342
7962     MOV #WDT_INT,&$FFEA
7963 BIC #1,&$130
7964 BIS.B #3,&$20D
7965 MOV &$1808,R8
7966 CMP #4,R8
7967 0= ?GOTO BW1
7968 COLON
7969     #1000 20_US
7970     %011 TOP_LCD
7971     #205 20_US
7972     %011 TOP_LCD
7973     #5 20_US
7974     %011 TOP_LCD
7975     #2 20_US
7976     %010 TOP_LCD
7977     #2 20_US
7978     %00101000 LCD_WRF
7979     %1000 LCD_WRF
7980     LCD_CLEAR
7981     %0110 LCD_WRF
7982     %1100 LCD_WRF
7983     LCD_CLEAR
7984     ['] LCD_HOME IS CR
7985     ['] LCD_WRC  IS EMIT
7986     CR ." I love you"
7987     ['] CR >BODY IS CR
7988     ['] EMIT >BODY IS EMIT
7989     ." RC5toLCD is running. Type STOP to quit"
7990     ABORT
7991 ;
7992
7993 CODE START
7994 MOV #SLEEP,R9
7995 MOV #BACKGROUND,2(R9)
7996 MOV #WARM,R9
7997 MOV #APP_INIT,2(R9)
7998 MOV R9,R0
7999 ENDCODE 
8000
8001 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8002
8003 MARKER {RC5TOLCD}
8004
8005 CODE 20_US
8006 BEGIN
8007     BEGIN
8008         BIT #1,&$3C0
8009     0<> UNTIL
8010     BIC #1,&$3C0
8011     SUB #1,R14
8012 U< UNTIL
8013 MOV @R15+,R14
8014 MOV @R13+,R0
8015 ENDCODE
8016
8017 CODE TOP_LCD
8018     BIS.B #4,&$243
8019     BIT.B #1,&$241
8020 0= IF
8021     AND.B #$0F,R14
8022     MOV.B R14,&$222
8023     BIC.B #4,&$243
8024     MOV @R15+,R14
8025     MOV @R13+,R0
8026 THEN
8027     SUB #2,R15
8028     MOV R14,0(R15)
8029     BIC.B #4,&$243
8030     MOV.B &$220,R14
8031     AND.B #$0F,R14
8032     MOV @R13+,R0
8033 ENDCODE
8034
8035 CODE LCD_WRC
8036     BIS.B #2,&$243
8037 BW1 SUB #2,R15
8038     MOV R14,0(R15)
8039     RRUM #4,R14
8040     BIC.B #1,&$243
8041     BIS.B #$0F,&$224
8042 COLON
8043     TOP_LCD 2 20_US
8044     TOP_LCD 2 20_US 
8045 ;
8046
8047 CODE LCD_WRF
8048     BIC.B #2,&$243
8049     GOTO BW1
8050 ENDCODE
8051
8052 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8053 : LCD_HOME $02 LCD_WRF 100 20_us ;
8054
8055
8056
8057 ASM WDT_INT
8058 ADD #2,R1
8059 BIT.B #$20,&$240
8060 0= IF
8061     CMP #19,&$3D6
8062     U< IF
8063         ADD #1,&$3D6
8064     THEN
8065 ELSE
8066     BIT.B #$40,&$240
8067     0= IF
8068         CMP #3,&$3D6
8069         U>= IF
8070            SUB #1,&$3D6
8071         THEN
8072     THEN
8073 THEN
8074 BW1
8075 MOV @R1+,R0
8076 ENDASM
8077
8078 ASM RC5_INT
8079 ADD #2,R1
8080 $1806 @ 16000 = [IF]
8081     MOV #1,&$3A0
8082 [THEN]
8083 $1806 @ 24000 = [IF]
8084     MOV #2,&$3A0
8085 [THEN]
8086 MOV #1778,R9
8087 MOV #14,R10
8088 BEGIN
8089 MOV #%1011100100,&$380
8090     RRUM    #1,R9
8091     MOV     R9,R8
8092     RRUM    #1,R8
8093     ADD     R9,R8
8094     BEGIN   CMP R8,&$390
8095     U>= UNTIL
8096     BIT.B   #4,&$200
8097     ADDC    R11,R11
8098     MOV.B   &$200,&$208
8099     BIC.B   #4,&$20C
8100     SUB     #1,R10
8101 0<> WHILE
8102     ADD R9,R8
8103     BEGIN
8104         MOV &$390,R9
8105         CMP R8,R9
8106         U>= IF
8107         BIC #$30,&$380
8108         GOTO BW1
8109         THEN
8110         BIT.B #4,&$20C
8111     0<> UNTIL
8112 REPEAT
8113 BIC #$30,&$380
8114 RLAM    #1,R11
8115 MOV.B   R11,R9
8116 RRUM    #2,R9
8117 BIT     #$4000,R11
8118 0= IF   BIS #$40,R9
8119 THEN
8120 RRUM    #3,R11
8121 XOR     @R1,R11
8122 BIT     #$400,R11
8123 0= ?GOTO BW1
8124 XOR #$400,0(R1)
8125 SUB #8,R15
8126 MOV R14,6(R15)
8127 MOV &$1DDC,4(R15)
8128 MOV #$10,&$1DDC
8129 MOV R9,0(R15)
8130 MOV #0,R14
8131 LO2HI
8132     LCD_CLEAR
8133     <# # #S #36 HOLD #>
8134     ['] LCD_WRC IS EMIT
8135     TYPE
8136     ['] EMIT >BODY IS EMIT
8137 HI2LO
8138 MOV @R15+,&$1DDC
8139 MOV @R15+,R14
8140 MOV @R1+,R0
8141 ENDASM
8142
8143 ASM BACKGROUND
8144 BEGIN
8145     CALL &$1814
8146     BIS &$180A,R2
8147 AGAIN
8148 ENDASM
8149
8150 CODE STOP
8151 BW1 MOV #SLEEP,R9
8152     ADD #4,R9
8153     MOV R9,-2(R9)
8154 COLON
8155 ['] WARM >BODY IS WARM
8156 ECHO
8157 ." RC5toLCD is removed. type START to restart"
8158 COLD
8159 ;
8160
8161 CODE APP_INIT
8162 MOV #%1011010100,&$3C0
8163 $1806 @ 16000 = [IF]
8164     MOV #1,&$3E0
8165 [THEN]
8166 $1806 @ 24000 = [IF]
8167     MOV #2,&$3E0
8168 [THEN]
8169     MOV #19,&$3D2
8170     MOV #%01100000,&$3C6
8171     MOV #10,&$3D6
8172     BIS.B #$20,&$204
8173     BIS.B #$20,&$20A
8174     BIS.B #7,&$245
8175     BIC.B #7,&$247
8176     BIS.B #$0F,&$224
8177     BIC.B #$0F,&$226
8178     BIS.B #4,&$20A
8179     BIC.B #4,&$20C
8180     MOV #RC5_INT,&$FFDE
8181     MOV #%0100010100,&$340
8182     MOV ##3276,&$352
8183     MOV #%10000,&$342
8184     MOV #WDT_INT,&$FFEA
8185 BIC #1,&$130
8186 BIS.B #3,&$20D
8187 MOV &$1808,R8
8188 CMP #4,R8
8189 0= ?GOTO BW1
8190 COLON
8191     #1000 20_US
8192     %011 TOP_LCD
8193     #205 20_US
8194     %011 TOP_LCD
8195     #5 20_US
8196     %011 TOP_LCD
8197     #2 20_US
8198     %010 TOP_LCD
8199     #2 20_US
8200     %00101000 LCD_WRF
8201     %1000 LCD_WRF
8202     LCD_CLEAR
8203     %0110 LCD_WRF
8204     %1100 LCD_WRF
8205     LCD_CLEAR
8206     ['] LCD_HOME IS CR
8207     ['] LCD_WRC  IS EMIT
8208     CR ." I love you"
8209     ['] CR >BODY IS CR
8210     ['] EMIT >BODY IS EMIT
8211     ." RC5toLCD is running. Type STOP to quit"
8212     ABORT
8213 ;
8214
8215 CODE START
8216 MOV #SLEEP,R9
8217 MOV #BACKGROUND,2(R9)
8218 MOV #WARM,R9
8219 MOV #APP_INIT,2(R9)
8220 MOV R9,R0
8221 ENDCODE 
8222
8223 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8224
8225 MARKER {RC5TOLCD}
8226
8227 CODE 20_US
8228 BEGIN
8229     BEGIN
8230         BIT #1,&$3C0
8231     0<> UNTIL
8232     BIC #1,&$3C0
8233     SUB #1,R14
8234 U< UNTIL
8235 MOV @R15+,R14
8236 MOV @R13+,R0
8237 ENDCODE
8238
8239 CODE TOP_LCD
8240     BIS.B #4,&$243
8241     BIT.B #1,&$241
8242 0= IF
8243     AND.B #$0F,R14
8244     MOV.B R14,&$222
8245     BIC.B #4,&$243
8246     MOV @R15+,R14
8247     MOV @R13+,R0
8248 THEN
8249     SUB #2,R15
8250     MOV R14,0(R15)
8251     BIC.B #4,&$243
8252     MOV.B &$220,R14
8253     AND.B #$0F,R14
8254     MOV @R13+,R0
8255 ENDCODE
8256
8257 CODE LCD_WRC
8258     BIS.B #2,&$243
8259 BW1 SUB #2,R15
8260     MOV R14,0(R15)
8261     RRUM #4,R14
8262     BIC.B #1,&$243
8263     BIS.B #$0F,&$224
8264 COLON
8265     TOP_LCD 2 20_US
8266     TOP_LCD 2 20_US 
8267 ;
8268
8269 CODE LCD_WRF
8270     BIC.B #2,&$243
8271     GOTO BW1
8272 ENDCODE
8273
8274 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8275 : LCD_HOME $02 LCD_WRF 100 20_us ;
8276
8277
8278
8279 ASM WDT_INT
8280 ADD #2,R1
8281 BIT.B #$20,&$240
8282 0= IF
8283     CMP #19,&$3D6
8284     U< IF
8285         ADD #1,&$3D6
8286     THEN
8287 ELSE
8288     BIT.B #$40,&$240
8289     0= IF
8290         CMP #3,&$3D6
8291         U>= IF
8292            SUB #1,&$3D6
8293         THEN
8294     THEN
8295 THEN
8296 BW1
8297 MOV @R1+,R0
8298 ENDASM
8299
8300 ASM RC5_INT
8301 ADD #2,R1
8302 $1806 @ 16000 = [IF]
8303     MOV #1,&$3A0
8304 [THEN]
8305 $1806 @ 24000 = [IF]
8306     MOV #2,&$3A0
8307 [THEN]
8308 MOV #1778,R9
8309 MOV #14,R10
8310 BEGIN
8311 MOV #%1011100100,&$380
8312     RRUM    #1,R9
8313     MOV     R9,R8
8314     RRUM    #1,R8
8315     ADD     R9,R8
8316     BEGIN   CMP R8,&$390
8317     U>= UNTIL
8318     BIT.B   #4,&$200
8319     ADDC    R11,R11
8320     MOV.B   &$200,&$208
8321     BIC.B   #4,&$20C
8322     SUB     #1,R10
8323 0<> WHILE
8324     ADD R9,R8
8325     BEGIN
8326         MOV &$390,R9
8327         CMP R8,R9
8328         U>= IF
8329         BIC #$30,&$380
8330         GOTO BW1
8331         THEN
8332         BIT.B #4,&$20C
8333     0<> UNTIL
8334 REPEAT
8335 BIC #$30,&$380
8336 RLAM    #1,R11
8337 MOV.B   R11,R9
8338 RRUM    #2,R9
8339 BIT     #$4000,R11
8340 0= IF   BIS #$40,R9
8341 THEN
8342 RRUM    #3,R11
8343 XOR     @R1,R11
8344 BIT     #$400,R11
8345 0= ?GOTO BW1
8346 XOR #$400,0(R1)
8347 SUB #8,R15
8348 MOV R14,6(R15)
8349 MOV &$1DDC,4(R15)
8350 MOV #$10,&$1DDC
8351 MOV R9,0(R15)
8352 MOV #0,R14
8353 LO2HI
8354     LCD_CLEAR
8355     <# # #S #36 HOLD #>
8356     ['] LCD_WRC IS EMIT
8357     TYPE
8358     ['] EMIT >BODY IS EMIT
8359 HI2LO
8360 MOV @R15+,&$1DDC
8361 MOV @R15+,R14
8362 MOV @R1+,R0
8363 ENDASM
8364
8365 ASM BACKGROUND
8366 BEGIN
8367     CALL &$1814
8368     BIS &$180A,R2
8369 AGAIN
8370 ENDASM
8371
8372 CODE STOP
8373 BW1 MOV #SLEEP,R9
8374     ADD #4,R9
8375     MOV R9,-2(R9)
8376 COLON
8377 ['] WARM >BODY IS WARM
8378 ECHO
8379 ." RC5toLCD is removed. type START to restart"
8380 COLD
8381 ;
8382
8383 CODE APP_INIT
8384 MOV #%1011010100,&$3C0
8385 $1806 @ 16000 = [IF]
8386     MOV #1,&$3E0
8387 [THEN]
8388 $1806 @ 24000 = [IF]
8389     MOV #2,&$3E0
8390 [THEN]
8391     MOV #19,&$3D2
8392     MOV #%01100000,&$3C6
8393     MOV #10,&$3D6
8394     BIS.B #$20,&$204
8395     BIS.B #$20,&$20A
8396     BIS.B #7,&$245
8397     BIC.B #7,&$247
8398     BIS.B #$0F,&$224
8399     BIC.B #$0F,&$226
8400     BIS.B #4,&$20A
8401     BIC.B #4,&$20C
8402     MOV #RC5_INT,&$FFDE
8403     MOV #%0100010100,&$340
8404     MOV ##3276,&$352
8405     MOV #%10000,&$342
8406     MOV #WDT_INT,&$FFEA
8407 BIC #1,&$130
8408 BIS.B #3,&$20D
8409 MOV &$1808,R8
8410 CMP #4,R8
8411 0= ?GOTO BW1
8412 COLON
8413     #1000 20_US
8414     %011 TOP_LCD
8415     #205 20_US
8416     %011 TOP_LCD
8417     #5 20_US
8418     %011 TOP_LCD
8419     #2 20_US
8420     %010 TOP_LCD
8421     #2 20_US
8422     %00101000 LCD_WRF
8423     %1000 LCD_WRF
8424     LCD_CLEAR
8425     %0110 LCD_WRF
8426     %1100 LCD_WRF
8427     LCD_CLEAR
8428     ['] LCD_HOME IS CR
8429     ['] LCD_WRC  IS EMIT
8430     CR ." I love you"
8431     ['] CR >BODY IS CR
8432     ['] EMIT >BODY IS EMIT
8433     ." RC5toLCD is running. Type STOP to quit"
8434     ABORT
8435 ;
8436
8437 CODE START
8438 MOV #SLEEP,R9
8439 MOV #BACKGROUND,2(R9)
8440 MOV #WARM,R9
8441 MOV #APP_INIT,2(R9)
8442 MOV R9,R0
8443 ENDCODE 
8444
8445 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8446
8447 MARKER {RC5TOLCD}
8448
8449 CODE 20_US
8450 BEGIN
8451     BEGIN
8452         BIT #1,&$3C0
8453     0<> UNTIL
8454     BIC #1,&$3C0
8455     SUB #1,R14
8456 U< UNTIL
8457 MOV @R15+,R14
8458 MOV @R13+,R0
8459 ENDCODE
8460
8461 CODE TOP_LCD
8462     BIS.B #4,&$243
8463     BIT.B #1,&$241
8464 0= IF
8465     AND.B #$0F,R14
8466     MOV.B R14,&$222
8467     BIC.B #4,&$243
8468     MOV @R15+,R14
8469     MOV @R13+,R0
8470 THEN
8471     SUB #2,R15
8472     MOV R14,0(R15)
8473     BIC.B #4,&$243
8474     MOV.B &$220,R14
8475     AND.B #$0F,R14
8476     MOV @R13+,R0
8477 ENDCODE
8478
8479 CODE LCD_WRC
8480     BIS.B #2,&$243
8481 BW1 SUB #2,R15
8482     MOV R14,0(R15)
8483     RRUM #4,R14
8484     BIC.B #1,&$243
8485     BIS.B #$0F,&$224
8486 COLON
8487     TOP_LCD 2 20_US
8488     TOP_LCD 2 20_US 
8489 ;
8490
8491 CODE LCD_WRF
8492     BIC.B #2,&$243
8493     GOTO BW1
8494 ENDCODE
8495
8496 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8497 : LCD_HOME $02 LCD_WRF 100 20_us ;
8498
8499
8500
8501 ASM WDT_INT
8502 ADD #2,R1
8503 BIT.B #$20,&$240
8504 0= IF
8505     CMP #19,&$3D6
8506     U< IF
8507         ADD #1,&$3D6
8508     THEN
8509 ELSE
8510     BIT.B #$40,&$240
8511     0= IF
8512         CMP #3,&$3D6
8513         U>= IF
8514            SUB #1,&$3D6
8515         THEN
8516     THEN
8517 THEN
8518 BW1
8519 MOV @R1+,R0
8520 ENDASM
8521
8522 ASM RC5_INT
8523 ADD #2,R1
8524 $1806 @ 16000 = [IF]
8525     MOV #1,&$3A0
8526 [THEN]
8527 $1806 @ 24000 = [IF]
8528     MOV #2,&$3A0
8529 [THEN]
8530 MOV #1778,R9
8531 MOV #14,R10
8532 BEGIN
8533 MOV #%1011100100,&$380
8534     RRUM    #1,R9
8535     MOV     R9,R8
8536     RRUM    #1,R8
8537     ADD     R9,R8
8538     BEGIN   CMP R8,&$390
8539     U>= UNTIL
8540     BIT.B   #4,&$200
8541     ADDC    R11,R11
8542     MOV.B   &$200,&$208
8543     BIC.B   #4,&$20C
8544     SUB     #1,R10
8545 0<> WHILE
8546     ADD R9,R8
8547     BEGIN
8548         MOV &$390,R9
8549         CMP R8,R9
8550         U>= IF
8551         BIC #$30,&$380
8552         GOTO BW1
8553         THEN
8554         BIT.B #4,&$20C
8555     0<> UNTIL
8556 REPEAT
8557 BIC #$30,&$380
8558 RLAM    #1,R11
8559 MOV.B   R11,R9
8560 RRUM    #2,R9
8561 BIT     #$4000,R11
8562 0= IF   BIS #$40,R9
8563 THEN
8564 RRUM    #3,R11
8565 XOR     @R1,R11
8566 BIT     #$400,R11
8567 0= ?GOTO BW1
8568 XOR #$400,0(R1)
8569 SUB #8,R15
8570 MOV R14,6(R15)
8571 MOV &$1DDC,4(R15)
8572 MOV #$10,&$1DDC
8573 MOV R9,0(R15)
8574 MOV #0,R14
8575 LO2HI
8576     LCD_CLEAR
8577     <# # #S #36 HOLD #>
8578     ['] LCD_WRC IS EMIT
8579     TYPE
8580     ['] EMIT >BODY IS EMIT
8581 HI2LO
8582 MOV @R15+,&$1DDC
8583 MOV @R15+,R14
8584 MOV @R1+,R0
8585 ENDASM
8586
8587 ASM BACKGROUND
8588 BEGIN
8589     CALL &$1814
8590     BIS &$180A,R2
8591 AGAIN
8592 ENDASM
8593
8594 CODE STOP
8595 BW1 MOV #SLEEP,R9
8596     ADD #4,R9
8597     MOV R9,-2(R9)
8598 COLON
8599 ['] WARM >BODY IS WARM
8600 ECHO
8601 ." RC5toLCD is removed. type START to restart"
8602 COLD
8603 ;
8604
8605 CODE APP_INIT
8606 MOV #%1011010100,&$3C0
8607 $1806 @ 16000 = [IF]
8608     MOV #1,&$3E0
8609 [THEN]
8610 $1806 @ 24000 = [IF]
8611     MOV #2,&$3E0
8612 [THEN]
8613     MOV #19,&$3D2
8614     MOV #%01100000,&$3C6
8615     MOV #10,&$3D6
8616     BIS.B #$20,&$204
8617     BIS.B #$20,&$20A
8618     BIS.B #7,&$245
8619     BIC.B #7,&$247
8620     BIS.B #$0F,&$224
8621     BIC.B #$0F,&$226
8622     BIS.B #4,&$20A
8623     BIC.B #4,&$20C
8624     MOV #RC5_INT,&$FFDE
8625     MOV #%0100010100,&$340
8626     MOV ##3276,&$352
8627     MOV #%10000,&$342
8628     MOV #WDT_INT,&$FFEA
8629 BIC #1,&$130
8630 BIS.B #3,&$20D
8631 MOV &$1808,R8
8632 CMP #4,R8
8633 0= ?GOTO BW1
8634 COLON
8635     #1000 20_US
8636     %011 TOP_LCD
8637     #205 20_US
8638     %011 TOP_LCD
8639     #5 20_US
8640     %011 TOP_LCD
8641     #2 20_US
8642     %010 TOP_LCD
8643     #2 20_US
8644     %00101000 LCD_WRF
8645     %1000 LCD_WRF
8646     LCD_CLEAR
8647     %0110 LCD_WRF
8648     %1100 LCD_WRF
8649     LCD_CLEAR
8650     ['] LCD_HOME IS CR
8651     ['] LCD_WRC  IS EMIT
8652     CR ." I love you"
8653     ['] CR >BODY IS CR
8654     ['] EMIT >BODY IS EMIT
8655     ." RC5toLCD is running. Type STOP to quit"
8656     ABORT
8657 ;
8658
8659 CODE START
8660 MOV #SLEEP,R9
8661 MOV #BACKGROUND,2(R9)
8662 MOV #WARM,R9
8663 MOV #APP_INIT,2(R9)
8664 MOV R9,R0
8665 ENDCODE 
8666
8667 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8668
8669 MARKER {RC5TOLCD}
8670
8671 CODE 20_US
8672 BEGIN
8673     BEGIN
8674         BIT #1,&$3C0
8675     0<> UNTIL
8676     BIC #1,&$3C0
8677     SUB #1,R14
8678 U< UNTIL
8679 MOV @R15+,R14
8680 MOV @R13+,R0
8681 ENDCODE
8682
8683 CODE TOP_LCD
8684     BIS.B #4,&$243
8685     BIT.B #1,&$241
8686 0= IF
8687     AND.B #$0F,R14
8688     MOV.B R14,&$222
8689     BIC.B #4,&$243
8690     MOV @R15+,R14
8691     MOV @R13+,R0
8692 THEN
8693     SUB #2,R15
8694     MOV R14,0(R15)
8695     BIC.B #4,&$243
8696     MOV.B &$220,R14
8697     AND.B #$0F,R14
8698     MOV @R13+,R0
8699 ENDCODE
8700
8701 CODE LCD_WRC
8702     BIS.B #2,&$243
8703 BW1 SUB #2,R15
8704     MOV R14,0(R15)
8705     RRUM #4,R14
8706     BIC.B #1,&$243
8707     BIS.B #$0F,&$224
8708 COLON
8709     TOP_LCD 2 20_US
8710     TOP_LCD 2 20_US 
8711 ;
8712
8713 CODE LCD_WRF
8714     BIC.B #2,&$243
8715     GOTO BW1
8716 ENDCODE
8717
8718 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8719 : LCD_HOME $02 LCD_WRF 100 20_us ;
8720
8721
8722
8723 ASM WDT_INT
8724 ADD #2,R1
8725 BIT.B #$20,&$240
8726 0= IF
8727     CMP #19,&$3D6
8728     U< IF
8729         ADD #1,&$3D6
8730     THEN
8731 ELSE
8732     BIT.B #$40,&$240
8733     0= IF
8734         CMP #3,&$3D6
8735         U>= IF
8736            SUB #1,&$3D6
8737         THEN
8738     THEN
8739 THEN
8740 BW1
8741 MOV @R1+,R0
8742 ENDASM
8743
8744 ASM RC5_INT
8745 ADD #2,R1
8746 $1806 @ 16000 = [IF]
8747     MOV #1,&$3A0
8748 [THEN]
8749 $1806 @ 24000 = [IF]
8750     MOV #2,&$3A0
8751 [THEN]
8752 MOV #1778,R9
8753 MOV #14,R10
8754 BEGIN
8755 MOV #%1011100100,&$380
8756     RRUM    #1,R9
8757     MOV     R9,R8
8758     RRUM    #1,R8
8759     ADD     R9,R8
8760     BEGIN   CMP R8,&$390
8761     U>= UNTIL
8762     BIT.B   #4,&$200
8763     ADDC    R11,R11
8764     MOV.B   &$200,&$208
8765     BIC.B   #4,&$20C
8766     SUB     #1,R10
8767 0<> WHILE
8768     ADD R9,R8
8769     BEGIN
8770         MOV &$390,R9
8771         CMP R8,R9
8772         U>= IF
8773         BIC #$30,&$380
8774         GOTO BW1
8775         THEN
8776         BIT.B #4,&$20C
8777     0<> UNTIL
8778 REPEAT
8779 BIC #$30,&$380
8780 RLAM    #1,R11
8781 MOV.B   R11,R9
8782 RRUM    #2,R9
8783 BIT     #$4000,R11
8784 0= IF   BIS #$40,R9
8785 THEN
8786 RRUM    #3,R11
8787 XOR     @R1,R11
8788 BIT     #$400,R11
8789 0= ?GOTO BW1
8790 XOR #$400,0(R1)
8791 SUB #8,R15
8792 MOV R14,6(R15)
8793 MOV &$1DDC,4(R15)
8794 MOV #$10,&$1DDC
8795 MOV R9,0(R15)
8796 MOV #0,R14
8797 LO2HI
8798     LCD_CLEAR
8799     <# # #S #36 HOLD #>
8800     ['] LCD_WRC IS EMIT
8801     TYPE
8802     ['] EMIT >BODY IS EMIT
8803 HI2LO
8804 MOV @R15+,&$1DDC
8805 MOV @R15+,R14
8806 MOV @R1+,R0
8807 ENDASM
8808
8809 ASM BACKGROUND
8810 BEGIN
8811     CALL &$1814
8812     BIS &$180A,R2
8813 AGAIN
8814 ENDASM
8815
8816 CODE STOP
8817 BW1 MOV #SLEEP,R9
8818     ADD #4,R9
8819     MOV R9,-2(R9)
8820 COLON
8821 ['] WARM >BODY IS WARM
8822 ECHO
8823 ." RC5toLCD is removed. type START to restart"
8824 COLD
8825 ;
8826
8827 CODE APP_INIT
8828 MOV #%1011010100,&$3C0
8829 $1806 @ 16000 = [IF]
8830     MOV #1,&$3E0
8831 [THEN]
8832 $1806 @ 24000 = [IF]
8833     MOV #2,&$3E0
8834 [THEN]
8835     MOV #19,&$3D2
8836     MOV #%01100000,&$3C6
8837     MOV #10,&$3D6
8838     BIS.B #$20,&$204
8839     BIS.B #$20,&$20A
8840     BIS.B #7,&$245
8841     BIC.B #7,&$247
8842     BIS.B #$0F,&$224
8843     BIC.B #$0F,&$226
8844     BIS.B #4,&$20A
8845     BIC.B #4,&$20C
8846     MOV #RC5_INT,&$FFDE
8847     MOV #%0100010100,&$340
8848     MOV ##3276,&$352
8849     MOV #%10000,&$342
8850     MOV #WDT_INT,&$FFEA
8851 BIC #1,&$130
8852 BIS.B #3,&$20D
8853 MOV &$1808,R8
8854 CMP #4,R8
8855 0= ?GOTO BW1
8856 COLON
8857     #1000 20_US
8858     %011 TOP_LCD
8859     #205 20_US
8860     %011 TOP_LCD
8861     #5 20_US
8862     %011 TOP_LCD
8863     #2 20_US
8864     %010 TOP_LCD
8865     #2 20_US
8866     %00101000 LCD_WRF
8867     %1000 LCD_WRF
8868     LCD_CLEAR
8869     %0110 LCD_WRF
8870     %1100 LCD_WRF
8871     LCD_CLEAR
8872     ['] LCD_HOME IS CR
8873     ['] LCD_WRC  IS EMIT
8874     CR ." I love you"
8875     ['] CR >BODY IS CR
8876     ['] EMIT >BODY IS EMIT
8877     ." RC5toLCD is running. Type STOP to quit"
8878     ABORT
8879 ;
8880
8881 CODE START
8882 MOV #SLEEP,R9
8883 MOV #BACKGROUND,2(R9)
8884 MOV #WARM,R9
8885 MOV #APP_INIT,2(R9)
8886 MOV R9,R0
8887 ENDCODE 
8888
8889 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
8890
8891 MARKER {RC5TOLCD}
8892
8893 CODE 20_US
8894 BEGIN
8895     BEGIN
8896         BIT #1,&$3C0
8897     0<> UNTIL
8898     BIC #1,&$3C0
8899     SUB #1,R14
8900 U< UNTIL
8901 MOV @R15+,R14
8902 MOV @R13+,R0
8903 ENDCODE
8904
8905 CODE TOP_LCD
8906     BIS.B #4,&$243
8907     BIT.B #1,&$241
8908 0= IF
8909     AND.B #$0F,R14
8910     MOV.B R14,&$222
8911     BIC.B #4,&$243
8912     MOV @R15+,R14
8913     MOV @R13+,R0
8914 THEN
8915     SUB #2,R15
8916     MOV R14,0(R15)
8917     BIC.B #4,&$243
8918     MOV.B &$220,R14
8919     AND.B #$0F,R14
8920     MOV @R13+,R0
8921 ENDCODE
8922
8923 CODE LCD_WRC
8924     BIS.B #2,&$243
8925 BW1 SUB #2,R15
8926     MOV R14,0(R15)
8927     RRUM #4,R14
8928     BIC.B #1,&$243
8929     BIS.B #$0F,&$224
8930 COLON
8931     TOP_LCD 2 20_US
8932     TOP_LCD 2 20_US 
8933 ;
8934
8935 CODE LCD_WRF
8936     BIC.B #2,&$243
8937     GOTO BW1
8938 ENDCODE
8939
8940 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
8941 : LCD_HOME $02 LCD_WRF 100 20_us ;
8942
8943
8944
8945 ASM WDT_INT
8946 ADD #2,R1
8947 BIT.B #$20,&$240
8948 0= IF
8949     CMP #19,&$3D6
8950     U< IF
8951         ADD #1,&$3D6
8952     THEN
8953 ELSE
8954     BIT.B #$40,&$240
8955     0= IF
8956         CMP #3,&$3D6
8957         U>= IF
8958            SUB #1,&$3D6
8959         THEN
8960     THEN
8961 THEN
8962 BW1
8963 MOV @R1+,R0
8964 ENDASM
8965
8966 ASM RC5_INT
8967 ADD #2,R1
8968 $1806 @ 16000 = [IF]
8969     MOV #1,&$3A0
8970 [THEN]
8971 $1806 @ 24000 = [IF]
8972     MOV #2,&$3A0
8973 [THEN]
8974 MOV #1778,R9
8975 MOV #14,R10
8976 BEGIN
8977 MOV #%1011100100,&$380
8978     RRUM    #1,R9
8979     MOV     R9,R8
8980     RRUM    #1,R8
8981     ADD     R9,R8
8982     BEGIN   CMP R8,&$390
8983     U>= UNTIL
8984     BIT.B   #4,&$200
8985     ADDC    R11,R11
8986     MOV.B   &$200,&$208
8987     BIC.B   #4,&$20C
8988     SUB     #1,R10
8989 0<> WHILE
8990     ADD R9,R8
8991     BEGIN
8992         MOV &$390,R9
8993         CMP R8,R9
8994         U>= IF
8995         BIC #$30,&$380
8996         GOTO BW1
8997         THEN
8998         BIT.B #4,&$20C
8999     0<> UNTIL
9000 REPEAT
9001 BIC #$30,&$380
9002 RLAM    #1,R11
9003 MOV.B   R11,R9
9004 RRUM    #2,R9
9005 BIT     #$4000,R11
9006 0= IF   BIS #$40,R9
9007 THEN
9008 RRUM    #3,R11
9009 XOR     @R1,R11
9010 BIT     #$400,R11
9011 0= ?GOTO BW1
9012 XOR #$400,0(R1)
9013 SUB #8,R15
9014 MOV R14,6(R15)
9015 MOV &$1DDC,4(R15)
9016 MOV #$10,&$1DDC
9017 MOV R9,0(R15)
9018 MOV #0,R14
9019 LO2HI
9020     LCD_CLEAR
9021     <# # #S #36 HOLD #>
9022     ['] LCD_WRC IS EMIT
9023     TYPE
9024     ['] EMIT >BODY IS EMIT
9025 HI2LO
9026 MOV @R15+,&$1DDC
9027 MOV @R15+,R14
9028 MOV @R1+,R0
9029 ENDASM
9030
9031 ASM BACKGROUND
9032 BEGIN
9033     CALL &$1814
9034     BIS &$180A,R2
9035 AGAIN
9036 ENDASM
9037
9038 CODE STOP
9039 BW1 MOV #SLEEP,R9
9040     ADD #4,R9
9041     MOV R9,-2(R9)
9042 COLON
9043 ['] WARM >BODY IS WARM
9044 ECHO
9045 ." RC5toLCD is removed. type START to restart"
9046 COLD
9047 ;
9048
9049 CODE APP_INIT
9050 MOV #%1011010100,&$3C0
9051 $1806 @ 16000 = [IF]
9052     MOV #1,&$3E0
9053 [THEN]
9054 $1806 @ 24000 = [IF]
9055     MOV #2,&$3E0
9056 [THEN]
9057     MOV #19,&$3D2
9058     MOV #%01100000,&$3C6
9059     MOV #10,&$3D6
9060     BIS.B #$20,&$204
9061     BIS.B #$20,&$20A
9062     BIS.B #7,&$245
9063     BIC.B #7,&$247
9064     BIS.B #$0F,&$224
9065     BIC.B #$0F,&$226
9066     BIS.B #4,&$20A
9067     BIC.B #4,&$20C
9068     MOV #RC5_INT,&$FFDE
9069     MOV #%0100010100,&$340
9070     MOV ##3276,&$352
9071     MOV #%10000,&$342
9072     MOV #WDT_INT,&$FFEA
9073 BIC #1,&$130
9074 BIS.B #3,&$20D
9075 MOV &$1808,R8
9076 CMP #4,R8
9077 0= ?GOTO BW1
9078 COLON
9079     #1000 20_US
9080     %011 TOP_LCD
9081     #205 20_US
9082     %011 TOP_LCD
9083     #5 20_US
9084     %011 TOP_LCD
9085     #2 20_US
9086     %010 TOP_LCD
9087     #2 20_US
9088     %00101000 LCD_WRF
9089     %1000 LCD_WRF
9090     LCD_CLEAR
9091     %0110 LCD_WRF
9092     %1100 LCD_WRF
9093     LCD_CLEAR
9094     ['] LCD_HOME IS CR
9095     ['] LCD_WRC  IS EMIT
9096     CR ." I love you"
9097     ['] CR >BODY IS CR
9098     ['] EMIT >BODY IS EMIT
9099     ." RC5toLCD is running. Type STOP to quit"
9100     ABORT
9101 ;
9102
9103 CODE START
9104 MOV #SLEEP,R9
9105 MOV #BACKGROUND,2(R9)
9106 MOV #WARM,R9
9107 MOV #APP_INIT,2(R9)
9108 MOV R9,R0
9109 ENDCODE 
9110
9111 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9112
9113 MARKER {RC5TOLCD}
9114
9115 CODE 20_US
9116 BEGIN
9117     BEGIN
9118         BIT #1,&$3C0
9119     0<> UNTIL
9120     BIC #1,&$3C0
9121     SUB #1,R14
9122 U< UNTIL
9123 MOV @R15+,R14
9124 MOV @R13+,R0
9125 ENDCODE
9126
9127 CODE TOP_LCD
9128     BIS.B #4,&$243
9129     BIT.B #1,&$241
9130 0= IF
9131     AND.B #$0F,R14
9132     MOV.B R14,&$222
9133     BIC.B #4,&$243
9134     MOV @R15+,R14
9135     MOV @R13+,R0
9136 THEN
9137     SUB #2,R15
9138     MOV R14,0(R15)
9139     BIC.B #4,&$243
9140     MOV.B &$220,R14
9141     AND.B #$0F,R14
9142     MOV @R13+,R0
9143 ENDCODE
9144
9145 CODE LCD_WRC
9146     BIS.B #2,&$243
9147 BW1 SUB #2,R15
9148     MOV R14,0(R15)
9149     RRUM #4,R14
9150     BIC.B #1,&$243
9151     BIS.B #$0F,&$224
9152 COLON
9153     TOP_LCD 2 20_US
9154     TOP_LCD 2 20_US 
9155 ;
9156
9157 CODE LCD_WRF
9158     BIC.B #2,&$243
9159     GOTO BW1
9160 ENDCODE
9161
9162 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
9163 : LCD_HOME $02 LCD_WRF 100 20_us ;
9164
9165
9166
9167 ASM WDT_INT
9168 ADD #2,R1
9169 BIT.B #$20,&$240
9170 0= IF
9171     CMP #19,&$3D6
9172     U< IF
9173         ADD #1,&$3D6
9174     THEN
9175 ELSE
9176     BIT.B #$40,&$240
9177     0= IF
9178         CMP #3,&$3D6
9179         U>= IF
9180            SUB #1,&$3D6
9181         THEN
9182     THEN
9183 THEN
9184 BW1
9185 MOV @R1+,R0
9186 ENDASM
9187
9188 ASM RC5_INT
9189 ADD #2,R1
9190 $1806 @ 16000 = [IF]
9191     MOV #1,&$3A0
9192 [THEN]
9193 $1806 @ 24000 = [IF]
9194     MOV #2,&$3A0
9195 [THEN]
9196 MOV #1778,R9
9197 MOV #14,R10
9198 BEGIN
9199 MOV #%1011100100,&$380
9200     RRUM    #1,R9
9201     MOV     R9,R8
9202     RRUM    #1,R8
9203     ADD     R9,R8
9204     BEGIN   CMP R8,&$390
9205     U>= UNTIL
9206     BIT.B   #4,&$200
9207     ADDC    R11,R11
9208     MOV.B   &$200,&$208
9209     BIC.B   #4,&$20C
9210     SUB     #1,R10
9211 0<> WHILE
9212     ADD R9,R8
9213     BEGIN
9214         MOV &$390,R9
9215         CMP R8,R9
9216         U>= IF
9217         BIC #$30,&$380
9218         GOTO BW1
9219         THEN
9220         BIT.B #4,&$20C
9221     0<> UNTIL
9222 REPEAT
9223 BIC #$30,&$380
9224 RLAM    #1,R11
9225 MOV.B   R11,R9
9226 RRUM    #2,R9
9227 BIT     #$4000,R11
9228 0= IF   BIS #$40,R9
9229 THEN
9230 RRUM    #3,R11
9231 XOR     @R1,R11
9232 BIT     #$400,R11
9233 0= ?GOTO BW1
9234 XOR #$400,0(R1)
9235 SUB #8,R15
9236 MOV R14,6(R15)
9237 MOV &$1DDC,4(R15)
9238 MOV #$10,&$1DDC
9239 MOV R9,0(R15)
9240 MOV #0,R14
9241 LO2HI
9242     LCD_CLEAR
9243     <# # #S #36 HOLD #>
9244     ['] LCD_WRC IS EMIT
9245     TYPE
9246     ['] EMIT >BODY IS EMIT
9247 HI2LO
9248 MOV @R15+,&$1DDC
9249 MOV @R15+,R14
9250 MOV @R1+,R0
9251 ENDASM
9252
9253 ASM BACKGROUND
9254 BEGIN
9255     CALL &$1814
9256     BIS &$180A,R2
9257 AGAIN
9258 ENDASM
9259
9260 CODE STOP
9261 BW1 MOV #SLEEP,R9
9262     ADD #4,R9
9263     MOV R9,-2(R9)
9264 COLON
9265 ['] WARM >BODY IS WARM
9266 ECHO
9267 ." RC5toLCD is removed. type START to restart"
9268 COLD
9269 ;
9270
9271 CODE APP_INIT
9272 MOV #%1011010100,&$3C0
9273 $1806 @ 16000 = [IF]
9274     MOV #1,&$3E0
9275 [THEN]
9276 $1806 @ 24000 = [IF]
9277     MOV #2,&$3E0
9278 [THEN]
9279     MOV #19,&$3D2
9280     MOV #%01100000,&$3C6
9281     MOV #10,&$3D6
9282     BIS.B #$20,&$204
9283     BIS.B #$20,&$20A
9284     BIS.B #7,&$245
9285     BIC.B #7,&$247
9286     BIS.B #$0F,&$224
9287     BIC.B #$0F,&$226
9288     BIS.B #4,&$20A
9289     BIC.B #4,&$20C
9290     MOV #RC5_INT,&$FFDE
9291     MOV #%0100010100,&$340
9292     MOV ##3276,&$352
9293     MOV #%10000,&$342
9294     MOV #WDT_INT,&$FFEA
9295 BIC #1,&$130
9296 BIS.B #3,&$20D
9297 MOV &$1808,R8
9298 CMP #4,R8
9299 0= ?GOTO BW1
9300 COLON
9301     #1000 20_US
9302     %011 TOP_LCD
9303     #205 20_US
9304     %011 TOP_LCD
9305     #5 20_US
9306     %011 TOP_LCD
9307     #2 20_US
9308     %010 TOP_LCD
9309     #2 20_US
9310     %00101000 LCD_WRF
9311     %1000 LCD_WRF
9312     LCD_CLEAR
9313     %0110 LCD_WRF
9314     %1100 LCD_WRF
9315     LCD_CLEAR
9316     ['] LCD_HOME IS CR
9317     ['] LCD_WRC  IS EMIT
9318     CR ." I love you"
9319     ['] CR >BODY IS CR
9320     ['] EMIT >BODY IS EMIT
9321     ." RC5toLCD is running. Type STOP to quit"
9322     ABORT
9323 ;
9324
9325 CODE START
9326 MOV #SLEEP,R9
9327 MOV #BACKGROUND,2(R9)
9328 MOV #WARM,R9
9329 MOV #APP_INIT,2(R9)
9330 MOV R9,R0
9331 ENDCODE 
9332
9333 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9334
9335 MARKER {RC5TOLCD}
9336
9337 CODE 20_US
9338 BEGIN
9339     BEGIN
9340         BIT #1,&$3C0
9341     0<> UNTIL
9342     BIC #1,&$3C0
9343     SUB #1,R14
9344 U< UNTIL
9345 MOV @R15+,R14
9346 MOV @R13+,R0
9347 ENDCODE
9348
9349 CODE TOP_LCD
9350     BIS.B #4,&$243
9351     BIT.B #1,&$241
9352 0= IF
9353     AND.B #$0F,R14
9354     MOV.B R14,&$222
9355     BIC.B #4,&$243
9356     MOV @R15+,R14
9357     MOV @R13+,R0
9358 THEN
9359     SUB #2,R15
9360     MOV R14,0(R15)
9361     BIC.B #4,&$243
9362     MOV.B &$220,R14
9363     AND.B #$0F,R14
9364     MOV @R13+,R0
9365 ENDCODE
9366
9367 CODE LCD_WRC
9368     BIS.B #2,&$243
9369 BW1 SUB #2,R15
9370     MOV R14,0(R15)
9371     RRUM #4,R14
9372     BIC.B #1,&$243
9373     BIS.B #$0F,&$224
9374 COLON
9375     TOP_LCD 2 20_US
9376     TOP_LCD 2 20_US 
9377 ;
9378
9379 CODE LCD_WRF
9380     BIC.B #2,&$243
9381     GOTO BW1
9382 ENDCODE
9383
9384 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
9385 : LCD_HOME $02 LCD_WRF 100 20_us ;
9386
9387
9388
9389 ASM WDT_INT
9390 ADD #2,R1
9391 BIT.B #$20,&$240
9392 0= IF
9393     CMP #19,&$3D6
9394     U< IF
9395         ADD #1,&$3D6
9396     THEN
9397 ELSE
9398     BIT.B #$40,&$240
9399     0= IF
9400         CMP #3,&$3D6
9401         U>= IF
9402            SUB #1,&$3D6
9403         THEN
9404     THEN
9405 THEN
9406 BW1
9407 MOV @R1+,R0
9408 ENDASM
9409
9410 ASM RC5_INT
9411 ADD #2,R1
9412 $1806 @ 16000 = [IF]
9413     MOV #1,&$3A0
9414 [THEN]
9415 $1806 @ 24000 = [IF]
9416     MOV #2,&$3A0
9417 [THEN]
9418 MOV #1778,R9
9419 MOV #14,R10
9420 BEGIN
9421 MOV #%1011100100,&$380
9422     RRUM    #1,R9
9423     MOV     R9,R8
9424     RRUM    #1,R8
9425     ADD     R9,R8
9426     BEGIN   CMP R8,&$390
9427     U>= UNTIL
9428     BIT.B   #4,&$200
9429     ADDC    R11,R11
9430     MOV.B   &$200,&$208
9431     BIC.B   #4,&$20C
9432     SUB     #1,R10
9433 0<> WHILE
9434     ADD R9,R8
9435     BEGIN
9436         MOV &$390,R9
9437         CMP R8,R9
9438         U>= IF
9439         BIC #$30,&$380
9440         GOTO BW1
9441         THEN
9442         BIT.B #4,&$20C
9443     0<> UNTIL
9444 REPEAT
9445 BIC #$30,&$380
9446 RLAM    #1,R11
9447 MOV.B   R11,R9
9448 RRUM    #2,R9
9449 BIT     #$4000,R11
9450 0= IF   BIS #$40,R9
9451 THEN
9452 RRUM    #3,R11
9453 XOR     @R1,R11
9454 BIT     #$400,R11
9455 0= ?GOTO BW1
9456 XOR #$400,0(R1)
9457 SUB #8,R15
9458 MOV R14,6(R15)
9459 MOV &$1DDC,4(R15)
9460 MOV #$10,&$1DDC
9461 MOV R9,0(R15)
9462 MOV #0,R14
9463 LO2HI
9464     LCD_CLEAR
9465     <# # #S #36 HOLD #>
9466     ['] LCD_WRC IS EMIT
9467     TYPE
9468     ['] EMIT >BODY IS EMIT
9469 HI2LO
9470 MOV @R15+,&$1DDC
9471 MOV @R15+,R14
9472 MOV @R1+,R0
9473 ENDASM
9474
9475 ASM BACKGROUND
9476 BEGIN
9477     CALL &$1814
9478     BIS &$180A,R2
9479 AGAIN
9480 ENDASM
9481
9482 CODE STOP
9483 BW1 MOV #SLEEP,R9
9484     ADD #4,R9
9485     MOV R9,-2(R9)
9486 COLON
9487 ['] WARM >BODY IS WARM
9488 ECHO
9489 ." RC5toLCD is removed. type START to restart"
9490 COLD
9491 ;
9492
9493 CODE APP_INIT
9494 MOV #%1011010100,&$3C0
9495 $1806 @ 16000 = [IF]
9496     MOV #1,&$3E0
9497 [THEN]
9498 $1806 @ 24000 = [IF]
9499     MOV #2,&$3E0
9500 [THEN]
9501     MOV #19,&$3D2
9502     MOV #%01100000,&$3C6
9503     MOV #10,&$3D6
9504     BIS.B #$20,&$204
9505     BIS.B #$20,&$20A
9506     BIS.B #7,&$245
9507     BIC.B #7,&$247
9508     BIS.B #$0F,&$224
9509     BIC.B #$0F,&$226
9510     BIS.B #4,&$20A
9511     BIC.B #4,&$20C
9512     MOV #RC5_INT,&$FFDE
9513     MOV #%0100010100,&$340
9514     MOV ##3276,&$352
9515     MOV #%10000,&$342
9516     MOV #WDT_INT,&$FFEA
9517 BIC #1,&$130
9518 BIS.B #3,&$20D
9519 MOV &$1808,R8
9520 CMP #4,R8
9521 0= ?GOTO BW1
9522 COLON
9523     #1000 20_US
9524     %011 TOP_LCD
9525     #205 20_US
9526     %011 TOP_LCD
9527     #5 20_US
9528     %011 TOP_LCD
9529     #2 20_US
9530     %010 TOP_LCD
9531     #2 20_US
9532     %00101000 LCD_WRF
9533     %1000 LCD_WRF
9534     LCD_CLEAR
9535     %0110 LCD_WRF
9536     %1100 LCD_WRF
9537     LCD_CLEAR
9538     ['] LCD_HOME IS CR
9539     ['] LCD_WRC  IS EMIT
9540     CR ." I love you"
9541     ['] CR >BODY IS CR
9542     ['] EMIT >BODY IS EMIT
9543     ." RC5toLCD is running. Type STOP to quit"
9544     ABORT
9545 ;
9546
9547 CODE START
9548 MOV #SLEEP,R9
9549 MOV #BACKGROUND,2(R9)
9550 MOV #WARM,R9
9551 MOV #APP_INIT,2(R9)
9552 MOV R9,R0
9553 ENDCODE 
9554
9555 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9556
9557 MARKER {RC5TOLCD}
9558
9559 CODE 20_US
9560 BEGIN
9561     BEGIN
9562         BIT #1,&$3C0
9563     0<> UNTIL
9564     BIC #1,&$3C0
9565     SUB #1,R14
9566 U< UNTIL
9567 MOV @R15+,R14
9568 MOV @R13+,R0
9569 ENDCODE
9570
9571 CODE TOP_LCD
9572     BIS.B #4,&$243
9573     BIT.B #1,&$241
9574 0= IF
9575     AND.B #$0F,R14
9576     MOV.B R14,&$222
9577     BIC.B #4,&$243
9578     MOV @R15+,R14
9579     MOV @R13+,R0
9580 THEN
9581     SUB #2,R15
9582     MOV R14,0(R15)
9583     BIC.B #4,&$243
9584     MOV.B &$220,R14
9585     AND.B #$0F,R14
9586     MOV @R13+,R0
9587 ENDCODE
9588
9589 CODE LCD_WRC
9590     BIS.B #2,&$243
9591 BW1 SUB #2,R15
9592     MOV R14,0(R15)
9593     RRUM #4,R14
9594     BIC.B #1,&$243
9595     BIS.B #$0F,&$224
9596 COLON
9597     TOP_LCD 2 20_US
9598     TOP_LCD 2 20_US 
9599 ;
9600
9601 CODE LCD_WRF
9602     BIC.B #2,&$243
9603     GOTO BW1
9604 ENDCODE
9605
9606 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
9607 : LCD_HOME $02 LCD_WRF 100 20_us ;
9608
9609
9610
9611 ASM WDT_INT
9612 ADD #2,R1
9613 BIT.B #$20,&$240
9614 0= IF
9615     CMP #19,&$3D6
9616     U< IF
9617         ADD #1,&$3D6
9618     THEN
9619 ELSE
9620     BIT.B #$40,&$240
9621     0= IF
9622         CMP #3,&$3D6
9623         U>= IF
9624            SUB #1,&$3D6
9625         THEN
9626     THEN
9627 THEN
9628 BW1
9629 MOV @R1+,R0
9630 ENDASM
9631
9632 ASM RC5_INT
9633 ADD #2,R1
9634 $1806 @ 16000 = [IF]
9635     MOV #1,&$3A0
9636 [THEN]
9637 $1806 @ 24000 = [IF]
9638     MOV #2,&$3A0
9639 [THEN]
9640 MOV #1778,R9
9641 MOV #14,R10
9642 BEGIN
9643 MOV #%1011100100,&$380
9644     RRUM    #1,R9
9645     MOV     R9,R8
9646     RRUM    #1,R8
9647     ADD     R9,R8
9648     BEGIN   CMP R8,&$390
9649     U>= UNTIL
9650     BIT.B   #4,&$200
9651     ADDC    R11,R11
9652     MOV.B   &$200,&$208
9653     BIC.B   #4,&$20C
9654     SUB     #1,R10
9655 0<> WHILE
9656     ADD R9,R8
9657     BEGIN
9658         MOV &$390,R9
9659         CMP R8,R9
9660         U>= IF
9661         BIC #$30,&$380
9662         GOTO BW1
9663         THEN
9664         BIT.B #4,&$20C
9665     0<> UNTIL
9666 REPEAT
9667 BIC #$30,&$380
9668 RLAM    #1,R11
9669 MOV.B   R11,R9
9670 RRUM    #2,R9
9671 BIT     #$4000,R11
9672 0= IF   BIS #$40,R9
9673 THEN
9674 RRUM    #3,R11
9675 XOR     @R1,R11
9676 BIT     #$400,R11
9677 0= ?GOTO BW1
9678 XOR #$400,0(R1)
9679 SUB #8,R15
9680 MOV R14,6(R15)
9681 MOV &$1DDC,4(R15)
9682 MOV #$10,&$1DDC
9683 MOV R9,0(R15)
9684 MOV #0,R14
9685 LO2HI
9686     LCD_CLEAR
9687     <# # #S #36 HOLD #>
9688     ['] LCD_WRC IS EMIT
9689     TYPE
9690     ['] EMIT >BODY IS EMIT
9691 HI2LO
9692 MOV @R15+,&$1DDC
9693 MOV @R15+,R14
9694 MOV @R1+,R0
9695 ENDASM
9696
9697 ASM BACKGROUND
9698 BEGIN
9699     CALL &$1814
9700     BIS &$180A,R2
9701 AGAIN
9702 ENDASM
9703
9704 CODE STOP
9705 BW1 MOV #SLEEP,R9
9706     ADD #4,R9
9707     MOV R9,-2(R9)
9708 COLON
9709 ['] WARM >BODY IS WARM
9710 ECHO
9711 ." RC5toLCD is removed. type START to restart"
9712 COLD
9713 ;
9714
9715 CODE APP_INIT
9716 MOV #%1011010100,&$3C0
9717 $1806 @ 16000 = [IF]
9718     MOV #1,&$3E0
9719 [THEN]
9720 $1806 @ 24000 = [IF]
9721     MOV #2,&$3E0
9722 [THEN]
9723     MOV #19,&$3D2
9724     MOV #%01100000,&$3C6
9725     MOV #10,&$3D6
9726     BIS.B #$20,&$204
9727     BIS.B #$20,&$20A
9728     BIS.B #7,&$245
9729     BIC.B #7,&$247
9730     BIS.B #$0F,&$224
9731     BIC.B #$0F,&$226
9732     BIS.B #4,&$20A
9733     BIC.B #4,&$20C
9734     MOV #RC5_INT,&$FFDE
9735     MOV #%0100010100,&$340
9736     MOV ##3276,&$352
9737     MOV #%10000,&$342
9738     MOV #WDT_INT,&$FFEA
9739 BIC #1,&$130
9740 BIS.B #3,&$20D
9741 MOV &$1808,R8
9742 CMP #4,R8
9743 0= ?GOTO BW1
9744 COLON
9745     #1000 20_US
9746     %011 TOP_LCD
9747     #205 20_US
9748     %011 TOP_LCD
9749     #5 20_US
9750     %011 TOP_LCD
9751     #2 20_US
9752     %010 TOP_LCD
9753     #2 20_US
9754     %00101000 LCD_WRF
9755     %1000 LCD_WRF
9756     LCD_CLEAR
9757     %0110 LCD_WRF
9758     %1100 LCD_WRF
9759     LCD_CLEAR
9760     ['] LCD_HOME IS CR
9761     ['] LCD_WRC  IS EMIT
9762     CR ." I love you"
9763     ['] CR >BODY IS CR
9764     ['] EMIT >BODY IS EMIT
9765     ." RC5toLCD is running. Type STOP to quit"
9766     ABORT
9767 ;
9768
9769 CODE START
9770 MOV #SLEEP,R9
9771 MOV #BACKGROUND,2(R9)
9772 MOV #WARM,R9
9773 MOV #APP_INIT,2(R9)
9774 MOV R9,R0
9775 ENDCODE 
9776
9777 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
9778
9779 MARKER {RC5TOLCD}
9780
9781 CODE 20_US
9782 BEGIN
9783     BEGIN
9784         BIT #1,&$3C0
9785     0<> UNTIL
9786     BIC #1,&$3C0
9787     SUB #1,R14
9788 U< UNTIL
9789 MOV @R15+,R14
9790 MOV @R13+,R0
9791 ENDCODE
9792
9793 CODE TOP_LCD
9794     BIS.B #4,&$243
9795     BIT.B #1,&$241
9796 0= IF
9797     AND.B #$0F,R14
9798     MOV.B R14,&$222
9799     BIC.B #4,&$243
9800     MOV @R15+,R14
9801     MOV @R13+,R0
9802 THEN
9803     SUB #2,R15
9804     MOV R14,0(R15)
9805     BIC.B #4,&$243
9806     MOV.B &$220,R14
9807     AND.B #$0F,R14
9808     MOV @R13+,R0
9809 ENDCODE
9810
9811 CODE LCD_WRC
9812     BIS.B #2,&$243
9813 BW1 SUB #2,R15
9814     MOV R14,0(R15)
9815     RRUM #4,R14
9816     BIC.B #1,&$243
9817     BIS.B #$0F,&$224
9818 COLON
9819     TOP_LCD 2 20_US
9820     TOP_LCD 2 20_US 
9821 ;
9822
9823 CODE LCD_WRF
9824     BIC.B #2,&$243
9825     GOTO BW1
9826 ENDCODE
9827
9828 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
9829 : LCD_HOME $02 LCD_WRF 100 20_us ;
9830
9831
9832
9833 ASM WDT_INT
9834 ADD #2,R1
9835 BIT.B #$20,&$240
9836 0= IF
9837     CMP #19,&$3D6
9838     U< IF
9839         ADD #1,&$3D6
9840     THEN
9841 ELSE
9842     BIT.B #$40,&$240
9843     0= IF
9844         CMP #3,&$3D6
9845         U>= IF
9846            SUB #1,&$3D6
9847         THEN
9848     THEN
9849 THEN
9850 BW1
9851 MOV @R1+,R0
9852 ENDASM
9853
9854 ASM RC5_INT
9855 ADD #2,R1
9856 $1806 @ 16000 = [IF]
9857     MOV #1,&$3A0
9858 [THEN]
9859 $1806 @ 24000 = [IF]
9860     MOV #2,&$3A0
9861 [THEN]
9862 MOV #1778,R9
9863 MOV #14,R10
9864 BEGIN
9865 MOV #%1011100100,&$380
9866     RRUM    #1,R9
9867     MOV     R9,R8
9868     RRUM    #1,R8
9869     ADD     R9,R8
9870     BEGIN   CMP R8,&$390
9871     U>= UNTIL
9872     BIT.B   #4,&$200
9873     ADDC    R11,R11
9874     MOV.B   &$200,&$208
9875     BIC.B   #4,&$20C
9876     SUB     #1,R10
9877 0<> WHILE
9878     ADD R9,R8
9879     BEGIN
9880         MOV &$390,R9
9881         CMP R8,R9
9882         U>= IF
9883         BIC #$30,&$380
9884         GOTO BW1
9885         THEN
9886         BIT.B #4,&$20C
9887     0<> UNTIL
9888 REPEAT
9889 BIC #$30,&$380
9890 RLAM    #1,R11
9891 MOV.B   R11,R9
9892 RRUM    #2,R9
9893 BIT     #$4000,R11
9894 0= IF   BIS #$40,R9
9895 THEN
9896 RRUM    #3,R11
9897 XOR     @R1,R11
9898 BIT     #$400,R11
9899 0= ?GOTO BW1
9900 XOR #$400,0(R1)
9901 SUB #8,R15
9902 MOV R14,6(R15)
9903 MOV &$1DDC,4(R15)
9904 MOV #$10,&$1DDC
9905 MOV R9,0(R15)
9906 MOV #0,R14
9907 LO2HI
9908     LCD_CLEAR
9909     <# # #S #36 HOLD #>
9910     ['] LCD_WRC IS EMIT
9911     TYPE
9912     ['] EMIT >BODY IS EMIT
9913 HI2LO
9914 MOV @R15+,&$1DDC
9915 MOV @R15+,R14
9916 MOV @R1+,R0
9917 ENDASM
9918
9919 ASM BACKGROUND
9920 BEGIN
9921     CALL &$1814
9922     BIS &$180A,R2
9923 AGAIN
9924 ENDASM
9925
9926 CODE STOP
9927 BW1 MOV #SLEEP,R9
9928     ADD #4,R9
9929     MOV R9,-2(R9)
9930 COLON
9931 ['] WARM >BODY IS WARM
9932 ECHO
9933 ." RC5toLCD is removed. type START to restart"
9934 COLD
9935 ;
9936
9937 CODE APP_INIT
9938 MOV #%1011010100,&$3C0
9939 $1806 @ 16000 = [IF]
9940     MOV #1,&$3E0
9941 [THEN]
9942 $1806 @ 24000 = [IF]
9943     MOV #2,&$3E0
9944 [THEN]
9945     MOV #19,&$3D2
9946     MOV #%01100000,&$3C6
9947     MOV #10,&$3D6
9948     BIS.B #$20,&$204
9949     BIS.B #$20,&$20A
9950     BIS.B #7,&$245
9951     BIC.B #7,&$247
9952     BIS.B #$0F,&$224
9953     BIC.B #$0F,&$226
9954     BIS.B #4,&$20A
9955     BIC.B #4,&$20C
9956     MOV #RC5_INT,&$FFDE
9957     MOV #%0100010100,&$340
9958     MOV ##3276,&$352
9959     MOV #%10000,&$342
9960     MOV #WDT_INT,&$FFEA
9961 BIC #1,&$130
9962 BIS.B #3,&$20D
9963 MOV &$1808,R8
9964 CMP #4,R8
9965 0= ?GOTO BW1
9966 COLON
9967     #1000 20_US
9968     %011 TOP_LCD
9969     #205 20_US
9970     %011 TOP_LCD
9971     #5 20_US
9972     %011 TOP_LCD
9973     #2 20_US
9974     %010 TOP_LCD
9975     #2 20_US
9976     %00101000 LCD_WRF
9977     %1000 LCD_WRF
9978     LCD_CLEAR
9979     %0110 LCD_WRF
9980     %1100 LCD_WRF
9981     LCD_CLEAR
9982     ['] LCD_HOME IS CR
9983     ['] LCD_WRC  IS EMIT
9984     CR ." I love you"
9985     ['] CR >BODY IS CR
9986     ['] EMIT >BODY IS EMIT
9987     ." RC5toLCD is running. Type STOP to quit"
9988     ABORT
9989 ;
9990
9991 CODE START
9992 MOV #SLEEP,R9
9993 MOV #BACKGROUND,2(R9)
9994 MOV #WARM,R9
9995 MOV #APP_INIT,2(R9)
9996 MOV R9,R0
9997 ENDCODE 
9998
9999 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10000
10001 MARKER {RC5TOLCD}
10002
10003 CODE 20_US
10004 BEGIN
10005     BEGIN
10006         BIT #1,&$3C0
10007     0<> UNTIL
10008     BIC #1,&$3C0
10009     SUB #1,R14
10010 U< UNTIL
10011 MOV @R15+,R14
10012 MOV @R13+,R0
10013 ENDCODE
10014
10015 CODE TOP_LCD
10016     BIS.B #4,&$243
10017     BIT.B #1,&$241
10018 0= IF
10019     AND.B #$0F,R14
10020     MOV.B R14,&$222
10021     BIC.B #4,&$243
10022     MOV @R15+,R14
10023     MOV @R13+,R0
10024 THEN
10025     SUB #2,R15
10026     MOV R14,0(R15)
10027     BIC.B #4,&$243
10028     MOV.B &$220,R14
10029     AND.B #$0F,R14
10030     MOV @R13+,R0
10031 ENDCODE
10032
10033 CODE LCD_WRC
10034     BIS.B #2,&$243
10035 BW1 SUB #2,R15
10036     MOV R14,0(R15)
10037     RRUM #4,R14
10038     BIC.B #1,&$243
10039     BIS.B #$0F,&$224
10040 COLON
10041     TOP_LCD 2 20_US
10042     TOP_LCD 2 20_US 
10043 ;
10044
10045 CODE LCD_WRF
10046     BIC.B #2,&$243
10047     GOTO BW1
10048 ENDCODE
10049
10050 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10051 : LCD_HOME $02 LCD_WRF 100 20_us ;
10052
10053
10054
10055 ASM WDT_INT
10056 ADD #2,R1
10057 BIT.B #$20,&$240
10058 0= IF
10059     CMP #19,&$3D6
10060     U< IF
10061         ADD #1,&$3D6
10062     THEN
10063 ELSE
10064     BIT.B #$40,&$240
10065     0= IF
10066         CMP #3,&$3D6
10067         U>= IF
10068            SUB #1,&$3D6
10069         THEN
10070     THEN
10071 THEN
10072 BW1
10073 MOV @R1+,R0
10074 ENDASM
10075
10076 ASM RC5_INT
10077 ADD #2,R1
10078 $1806 @ 16000 = [IF]
10079     MOV #1,&$3A0
10080 [THEN]
10081 $1806 @ 24000 = [IF]
10082     MOV #2,&$3A0
10083 [THEN]
10084 MOV #1778,R9
10085 MOV #14,R10
10086 BEGIN
10087 MOV #%1011100100,&$380
10088     RRUM    #1,R9
10089     MOV     R9,R8
10090     RRUM    #1,R8
10091     ADD     R9,R8
10092     BEGIN   CMP R8,&$390
10093     U>= UNTIL
10094     BIT.B   #4,&$200
10095     ADDC    R11,R11
10096     MOV.B   &$200,&$208
10097     BIC.B   #4,&$20C
10098     SUB     #1,R10
10099 0<> WHILE
10100     ADD R9,R8
10101     BEGIN
10102         MOV &$390,R9
10103         CMP R8,R9
10104         U>= IF
10105         BIC #$30,&$380
10106         GOTO BW1
10107         THEN
10108         BIT.B #4,&$20C
10109     0<> UNTIL
10110 REPEAT
10111 BIC #$30,&$380
10112 RLAM    #1,R11
10113 MOV.B   R11,R9
10114 RRUM    #2,R9
10115 BIT     #$4000,R11
10116 0= IF   BIS #$40,R9
10117 THEN
10118 RRUM    #3,R11
10119 XOR     @R1,R11
10120 BIT     #$400,R11
10121 0= ?GOTO BW1
10122 XOR #$400,0(R1)
10123 SUB #8,R15
10124 MOV R14,6(R15)
10125 MOV &$1DDC,4(R15)
10126 MOV #$10,&$1DDC
10127 MOV R9,0(R15)
10128 MOV #0,R14
10129 LO2HI
10130     LCD_CLEAR
10131     <# # #S #36 HOLD #>
10132     ['] LCD_WRC IS EMIT
10133     TYPE
10134     ['] EMIT >BODY IS EMIT
10135 HI2LO
10136 MOV @R15+,&$1DDC
10137 MOV @R15+,R14
10138 MOV @R1+,R0
10139 ENDASM
10140
10141 ASM BACKGROUND
10142 BEGIN
10143     CALL &$1814
10144     BIS &$180A,R2
10145 AGAIN
10146 ENDASM
10147
10148 CODE STOP
10149 BW1 MOV #SLEEP,R9
10150     ADD #4,R9
10151     MOV R9,-2(R9)
10152 COLON
10153 ['] WARM >BODY IS WARM
10154 ECHO
10155 ." RC5toLCD is removed. type START to restart"
10156 COLD
10157 ;
10158
10159 CODE APP_INIT
10160 MOV #%1011010100,&$3C0
10161 $1806 @ 16000 = [IF]
10162     MOV #1,&$3E0
10163 [THEN]
10164 $1806 @ 24000 = [IF]
10165     MOV #2,&$3E0
10166 [THEN]
10167     MOV #19,&$3D2
10168     MOV #%01100000,&$3C6
10169     MOV #10,&$3D6
10170     BIS.B #$20,&$204
10171     BIS.B #$20,&$20A
10172     BIS.B #7,&$245
10173     BIC.B #7,&$247
10174     BIS.B #$0F,&$224
10175     BIC.B #$0F,&$226
10176     BIS.B #4,&$20A
10177     BIC.B #4,&$20C
10178     MOV #RC5_INT,&$FFDE
10179     MOV #%0100010100,&$340
10180     MOV ##3276,&$352
10181     MOV #%10000,&$342
10182     MOV #WDT_INT,&$FFEA
10183 BIC #1,&$130
10184 BIS.B #3,&$20D
10185 MOV &$1808,R8
10186 CMP #4,R8
10187 0= ?GOTO BW1
10188 COLON
10189     #1000 20_US
10190     %011 TOP_LCD
10191     #205 20_US
10192     %011 TOP_LCD
10193     #5 20_US
10194     %011 TOP_LCD
10195     #2 20_US
10196     %010 TOP_LCD
10197     #2 20_US
10198     %00101000 LCD_WRF
10199     %1000 LCD_WRF
10200     LCD_CLEAR
10201     %0110 LCD_WRF
10202     %1100 LCD_WRF
10203     LCD_CLEAR
10204     ['] LCD_HOME IS CR
10205     ['] LCD_WRC  IS EMIT
10206     CR ." I love you"
10207     ['] CR >BODY IS CR
10208     ['] EMIT >BODY IS EMIT
10209     ." RC5toLCD is running. Type STOP to quit"
10210     ABORT
10211 ;
10212
10213 CODE START
10214 MOV #SLEEP,R9
10215 MOV #BACKGROUND,2(R9)
10216 MOV #WARM,R9
10217 MOV #APP_INIT,2(R9)
10218 MOV R9,R0
10219 ENDCODE 
10220
10221 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10222
10223 MARKER {RC5TOLCD}
10224
10225 CODE 20_US
10226 BEGIN
10227     BEGIN
10228         BIT #1,&$3C0
10229     0<> UNTIL
10230     BIC #1,&$3C0
10231     SUB #1,R14
10232 U< UNTIL
10233 MOV @R15+,R14
10234 MOV @R13+,R0
10235 ENDCODE
10236
10237 CODE TOP_LCD
10238     BIS.B #4,&$243
10239     BIT.B #1,&$241
10240 0= IF
10241     AND.B #$0F,R14
10242     MOV.B R14,&$222
10243     BIC.B #4,&$243
10244     MOV @R15+,R14
10245     MOV @R13+,R0
10246 THEN
10247     SUB #2,R15
10248     MOV R14,0(R15)
10249     BIC.B #4,&$243
10250     MOV.B &$220,R14
10251     AND.B #$0F,R14
10252     MOV @R13+,R0
10253 ENDCODE
10254
10255 CODE LCD_WRC
10256     BIS.B #2,&$243
10257 BW1 SUB #2,R15
10258     MOV R14,0(R15)
10259     RRUM #4,R14
10260     BIC.B #1,&$243
10261     BIS.B #$0F,&$224
10262 COLON
10263     TOP_LCD 2 20_US
10264     TOP_LCD 2 20_US 
10265 ;
10266
10267 CODE LCD_WRF
10268     BIC.B #2,&$243
10269     GOTO BW1
10270 ENDCODE
10271
10272 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10273 : LCD_HOME $02 LCD_WRF 100 20_us ;
10274
10275
10276
10277 ASM WDT_INT
10278 ADD #2,R1
10279 BIT.B #$20,&$240
10280 0= IF
10281     CMP #19,&$3D6
10282     U< IF
10283         ADD #1,&$3D6
10284     THEN
10285 ELSE
10286     BIT.B #$40,&$240
10287     0= IF
10288         CMP #3,&$3D6
10289         U>= IF
10290            SUB #1,&$3D6
10291         THEN
10292     THEN
10293 THEN
10294 BW1
10295 MOV @R1+,R0
10296 ENDASM
10297
10298 ASM RC5_INT
10299 ADD #2,R1
10300 $1806 @ 16000 = [IF]
10301     MOV #1,&$3A0
10302 [THEN]
10303 $1806 @ 24000 = [IF]
10304     MOV #2,&$3A0
10305 [THEN]
10306 MOV #1778,R9
10307 MOV #14,R10
10308 BEGIN
10309 MOV #%1011100100,&$380
10310     RRUM    #1,R9
10311     MOV     R9,R8
10312     RRUM    #1,R8
10313     ADD     R9,R8
10314     BEGIN   CMP R8,&$390
10315     U>= UNTIL
10316     BIT.B   #4,&$200
10317     ADDC    R11,R11
10318     MOV.B   &$200,&$208
10319     BIC.B   #4,&$20C
10320     SUB     #1,R10
10321 0<> WHILE
10322     ADD R9,R8
10323     BEGIN
10324         MOV &$390,R9
10325         CMP R8,R9
10326         U>= IF
10327         BIC #$30,&$380
10328         GOTO BW1
10329         THEN
10330         BIT.B #4,&$20C
10331     0<> UNTIL
10332 REPEAT
10333 BIC #$30,&$380
10334 RLAM    #1,R11
10335 MOV.B   R11,R9
10336 RRUM    #2,R9
10337 BIT     #$4000,R11
10338 0= IF   BIS #$40,R9
10339 THEN
10340 RRUM    #3,R11
10341 XOR     @R1,R11
10342 BIT     #$400,R11
10343 0= ?GOTO BW1
10344 XOR #$400,0(R1)
10345 SUB #8,R15
10346 MOV R14,6(R15)
10347 MOV &$1DDC,4(R15)
10348 MOV #$10,&$1DDC
10349 MOV R9,0(R15)
10350 MOV #0,R14
10351 LO2HI
10352     LCD_CLEAR
10353     <# # #S #36 HOLD #>
10354     ['] LCD_WRC IS EMIT
10355     TYPE
10356     ['] EMIT >BODY IS EMIT
10357 HI2LO
10358 MOV @R15+,&$1DDC
10359 MOV @R15+,R14
10360 MOV @R1+,R0
10361 ENDASM
10362
10363 ASM BACKGROUND
10364 BEGIN
10365     CALL &$1814
10366     BIS &$180A,R2
10367 AGAIN
10368 ENDASM
10369
10370 CODE STOP
10371 BW1 MOV #SLEEP,R9
10372     ADD #4,R9
10373     MOV R9,-2(R9)
10374 COLON
10375 ['] WARM >BODY IS WARM
10376 ECHO
10377 ." RC5toLCD is removed. type START to restart"
10378 COLD
10379 ;
10380
10381 CODE APP_INIT
10382 MOV #%1011010100,&$3C0
10383 $1806 @ 16000 = [IF]
10384     MOV #1,&$3E0
10385 [THEN]
10386 $1806 @ 24000 = [IF]
10387     MOV #2,&$3E0
10388 [THEN]
10389     MOV #19,&$3D2
10390     MOV #%01100000,&$3C6
10391     MOV #10,&$3D6
10392     BIS.B #$20,&$204
10393     BIS.B #$20,&$20A
10394     BIS.B #7,&$245
10395     BIC.B #7,&$247
10396     BIS.B #$0F,&$224
10397     BIC.B #$0F,&$226
10398     BIS.B #4,&$20A
10399     BIC.B #4,&$20C
10400     MOV #RC5_INT,&$FFDE
10401     MOV #%0100010100,&$340
10402     MOV ##3276,&$352
10403     MOV #%10000,&$342
10404     MOV #WDT_INT,&$FFEA
10405 BIC #1,&$130
10406 BIS.B #3,&$20D
10407 MOV &$1808,R8
10408 CMP #4,R8
10409 0= ?GOTO BW1
10410 COLON
10411     #1000 20_US
10412     %011 TOP_LCD
10413     #205 20_US
10414     %011 TOP_LCD
10415     #5 20_US
10416     %011 TOP_LCD
10417     #2 20_US
10418     %010 TOP_LCD
10419     #2 20_US
10420     %00101000 LCD_WRF
10421     %1000 LCD_WRF
10422     LCD_CLEAR
10423     %0110 LCD_WRF
10424     %1100 LCD_WRF
10425     LCD_CLEAR
10426     ['] LCD_HOME IS CR
10427     ['] LCD_WRC  IS EMIT
10428     CR ." I love you"
10429     ['] CR >BODY IS CR
10430     ['] EMIT >BODY IS EMIT
10431     ." RC5toLCD is running. Type STOP to quit"
10432     ABORT
10433 ;
10434
10435 CODE START
10436 MOV #SLEEP,R9
10437 MOV #BACKGROUND,2(R9)
10438 MOV #WARM,R9
10439 MOV #APP_INIT,2(R9)
10440 MOV R9,R0
10441 ENDCODE 
10442
10443 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10444
10445 MARKER {RC5TOLCD}
10446
10447 CODE 20_US
10448 BEGIN
10449     BEGIN
10450         BIT #1,&$3C0
10451     0<> UNTIL
10452     BIC #1,&$3C0
10453     SUB #1,R14
10454 U< UNTIL
10455 MOV @R15+,R14
10456 MOV @R13+,R0
10457 ENDCODE
10458
10459 CODE TOP_LCD
10460     BIS.B #4,&$243
10461     BIT.B #1,&$241
10462 0= IF
10463     AND.B #$0F,R14
10464     MOV.B R14,&$222
10465     BIC.B #4,&$243
10466     MOV @R15+,R14
10467     MOV @R13+,R0
10468 THEN
10469     SUB #2,R15
10470     MOV R14,0(R15)
10471     BIC.B #4,&$243
10472     MOV.B &$220,R14
10473     AND.B #$0F,R14
10474     MOV @R13+,R0
10475 ENDCODE
10476
10477 CODE LCD_WRC
10478     BIS.B #2,&$243
10479 BW1 SUB #2,R15
10480     MOV R14,0(R15)
10481     RRUM #4,R14
10482     BIC.B #1,&$243
10483     BIS.B #$0F,&$224
10484 COLON
10485     TOP_LCD 2 20_US
10486     TOP_LCD 2 20_US 
10487 ;
10488
10489 CODE LCD_WRF
10490     BIC.B #2,&$243
10491     GOTO BW1
10492 ENDCODE
10493
10494 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10495 : LCD_HOME $02 LCD_WRF 100 20_us ;
10496
10497
10498
10499 ASM WDT_INT
10500 ADD #2,R1
10501 BIT.B #$20,&$240
10502 0= IF
10503     CMP #19,&$3D6
10504     U< IF
10505         ADD #1,&$3D6
10506     THEN
10507 ELSE
10508     BIT.B #$40,&$240
10509     0= IF
10510         CMP #3,&$3D6
10511         U>= IF
10512            SUB #1,&$3D6
10513         THEN
10514     THEN
10515 THEN
10516 BW1
10517 MOV @R1+,R0
10518 ENDASM
10519
10520 ASM RC5_INT
10521 ADD #2,R1
10522 $1806 @ 16000 = [IF]
10523     MOV #1,&$3A0
10524 [THEN]
10525 $1806 @ 24000 = [IF]
10526     MOV #2,&$3A0
10527 [THEN]
10528 MOV #1778,R9
10529 MOV #14,R10
10530 BEGIN
10531 MOV #%1011100100,&$380
10532     RRUM    #1,R9
10533     MOV     R9,R8
10534     RRUM    #1,R8
10535     ADD     R9,R8
10536     BEGIN   CMP R8,&$390
10537     U>= UNTIL
10538     BIT.B   #4,&$200
10539     ADDC    R11,R11
10540     MOV.B   &$200,&$208
10541     BIC.B   #4,&$20C
10542     SUB     #1,R10
10543 0<> WHILE
10544     ADD R9,R8
10545     BEGIN
10546         MOV &$390,R9
10547         CMP R8,R9
10548         U>= IF
10549         BIC #$30,&$380
10550         GOTO BW1
10551         THEN
10552         BIT.B #4,&$20C
10553     0<> UNTIL
10554 REPEAT
10555 BIC #$30,&$380
10556 RLAM    #1,R11
10557 MOV.B   R11,R9
10558 RRUM    #2,R9
10559 BIT     #$4000,R11
10560 0= IF   BIS #$40,R9
10561 THEN
10562 RRUM    #3,R11
10563 XOR     @R1,R11
10564 BIT     #$400,R11
10565 0= ?GOTO BW1
10566 XOR #$400,0(R1)
10567 SUB #8,R15
10568 MOV R14,6(R15)
10569 MOV &$1DDC,4(R15)
10570 MOV #$10,&$1DDC
10571 MOV R9,0(R15)
10572 MOV #0,R14
10573 LO2HI
10574     LCD_CLEAR
10575     <# # #S #36 HOLD #>
10576     ['] LCD_WRC IS EMIT
10577     TYPE
10578     ['] EMIT >BODY IS EMIT
10579 HI2LO
10580 MOV @R15+,&$1DDC
10581 MOV @R15+,R14
10582 MOV @R1+,R0
10583 ENDASM
10584
10585 ASM BACKGROUND
10586 BEGIN
10587     CALL &$1814
10588     BIS &$180A,R2
10589 AGAIN
10590 ENDASM
10591
10592 CODE STOP
10593 BW1 MOV #SLEEP,R9
10594     ADD #4,R9
10595     MOV R9,-2(R9)
10596 COLON
10597 ['] WARM >BODY IS WARM
10598 ECHO
10599 ." RC5toLCD is removed. type START to restart"
10600 COLD
10601 ;
10602
10603 CODE APP_INIT
10604 MOV #%1011010100,&$3C0
10605 $1806 @ 16000 = [IF]
10606     MOV #1,&$3E0
10607 [THEN]
10608 $1806 @ 24000 = [IF]
10609     MOV #2,&$3E0
10610 [THEN]
10611     MOV #19,&$3D2
10612     MOV #%01100000,&$3C6
10613     MOV #10,&$3D6
10614     BIS.B #$20,&$204
10615     BIS.B #$20,&$20A
10616     BIS.B #7,&$245
10617     BIC.B #7,&$247
10618     BIS.B #$0F,&$224
10619     BIC.B #$0F,&$226
10620     BIS.B #4,&$20A
10621     BIC.B #4,&$20C
10622     MOV #RC5_INT,&$FFDE
10623     MOV #%0100010100,&$340
10624     MOV ##3276,&$352
10625     MOV #%10000,&$342
10626     MOV #WDT_INT,&$FFEA
10627 BIC #1,&$130
10628 BIS.B #3,&$20D
10629 MOV &$1808,R8
10630 CMP #4,R8
10631 0= ?GOTO BW1
10632 COLON
10633     #1000 20_US
10634     %011 TOP_LCD
10635     #205 20_US
10636     %011 TOP_LCD
10637     #5 20_US
10638     %011 TOP_LCD
10639     #2 20_US
10640     %010 TOP_LCD
10641     #2 20_US
10642     %00101000 LCD_WRF
10643     %1000 LCD_WRF
10644     LCD_CLEAR
10645     %0110 LCD_WRF
10646     %1100 LCD_WRF
10647     LCD_CLEAR
10648     ['] LCD_HOME IS CR
10649     ['] LCD_WRC  IS EMIT
10650     CR ." I love you"
10651     ['] CR >BODY IS CR
10652     ['] EMIT >BODY IS EMIT
10653     ." RC5toLCD is running. Type STOP to quit"
10654     ABORT
10655 ;
10656
10657 CODE START
10658 MOV #SLEEP,R9
10659 MOV #BACKGROUND,2(R9)
10660 MOV #WARM,R9
10661 MOV #APP_INIT,2(R9)
10662 MOV R9,R0
10663 ENDCODE 
10664
10665 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10666
10667 MARKER {RC5TOLCD}
10668
10669 CODE 20_US
10670 BEGIN
10671     BEGIN
10672         BIT #1,&$3C0
10673     0<> UNTIL
10674     BIC #1,&$3C0
10675     SUB #1,R14
10676 U< UNTIL
10677 MOV @R15+,R14
10678 MOV @R13+,R0
10679 ENDCODE
10680
10681 CODE TOP_LCD
10682     BIS.B #4,&$243
10683     BIT.B #1,&$241
10684 0= IF
10685     AND.B #$0F,R14
10686     MOV.B R14,&$222
10687     BIC.B #4,&$243
10688     MOV @R15+,R14
10689     MOV @R13+,R0
10690 THEN
10691     SUB #2,R15
10692     MOV R14,0(R15)
10693     BIC.B #4,&$243
10694     MOV.B &$220,R14
10695     AND.B #$0F,R14
10696     MOV @R13+,R0
10697 ENDCODE
10698
10699 CODE LCD_WRC
10700     BIS.B #2,&$243
10701 BW1 SUB #2,R15
10702     MOV R14,0(R15)
10703     RRUM #4,R14
10704     BIC.B #1,&$243
10705     BIS.B #$0F,&$224
10706 COLON
10707     TOP_LCD 2 20_US
10708     TOP_LCD 2 20_US 
10709 ;
10710
10711 CODE LCD_WRF
10712     BIC.B #2,&$243
10713     GOTO BW1
10714 ENDCODE
10715
10716 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10717 : LCD_HOME $02 LCD_WRF 100 20_us ;
10718
10719
10720
10721 ASM WDT_INT
10722 ADD #2,R1
10723 BIT.B #$20,&$240
10724 0= IF
10725     CMP #19,&$3D6
10726     U< IF
10727         ADD #1,&$3D6
10728     THEN
10729 ELSE
10730     BIT.B #$40,&$240
10731     0= IF
10732         CMP #3,&$3D6
10733         U>= IF
10734            SUB #1,&$3D6
10735         THEN
10736     THEN
10737 THEN
10738 BW1
10739 MOV @R1+,R0
10740 ENDASM
10741
10742 ASM RC5_INT
10743 ADD #2,R1
10744 $1806 @ 16000 = [IF]
10745     MOV #1,&$3A0
10746 [THEN]
10747 $1806 @ 24000 = [IF]
10748     MOV #2,&$3A0
10749 [THEN]
10750 MOV #1778,R9
10751 MOV #14,R10
10752 BEGIN
10753 MOV #%1011100100,&$380
10754     RRUM    #1,R9
10755     MOV     R9,R8
10756     RRUM    #1,R8
10757     ADD     R9,R8
10758     BEGIN   CMP R8,&$390
10759     U>= UNTIL
10760     BIT.B   #4,&$200
10761     ADDC    R11,R11
10762     MOV.B   &$200,&$208
10763     BIC.B   #4,&$20C
10764     SUB     #1,R10
10765 0<> WHILE
10766     ADD R9,R8
10767     BEGIN
10768         MOV &$390,R9
10769         CMP R8,R9
10770         U>= IF
10771         BIC #$30,&$380
10772         GOTO BW1
10773         THEN
10774         BIT.B #4,&$20C
10775     0<> UNTIL
10776 REPEAT
10777 BIC #$30,&$380
10778 RLAM    #1,R11
10779 MOV.B   R11,R9
10780 RRUM    #2,R9
10781 BIT     #$4000,R11
10782 0= IF   BIS #$40,R9
10783 THEN
10784 RRUM    #3,R11
10785 XOR     @R1,R11
10786 BIT     #$400,R11
10787 0= ?GOTO BW1
10788 XOR #$400,0(R1)
10789 SUB #8,R15
10790 MOV R14,6(R15)
10791 MOV &$1DDC,4(R15)
10792 MOV #$10,&$1DDC
10793 MOV R9,0(R15)
10794 MOV #0,R14
10795 LO2HI
10796     LCD_CLEAR
10797     <# # #S #36 HOLD #>
10798     ['] LCD_WRC IS EMIT
10799     TYPE
10800     ['] EMIT >BODY IS EMIT
10801 HI2LO
10802 MOV @R15+,&$1DDC
10803 MOV @R15+,R14
10804 MOV @R1+,R0
10805 ENDASM
10806
10807 ASM BACKGROUND
10808 BEGIN
10809     CALL &$1814
10810     BIS &$180A,R2
10811 AGAIN
10812 ENDASM
10813
10814 CODE STOP
10815 BW1 MOV #SLEEP,R9
10816     ADD #4,R9
10817     MOV R9,-2(R9)
10818 COLON
10819 ['] WARM >BODY IS WARM
10820 ECHO
10821 ." RC5toLCD is removed. type START to restart"
10822 COLD
10823 ;
10824
10825 CODE APP_INIT
10826 MOV #%1011010100,&$3C0
10827 $1806 @ 16000 = [IF]
10828     MOV #1,&$3E0
10829 [THEN]
10830 $1806 @ 24000 = [IF]
10831     MOV #2,&$3E0
10832 [THEN]
10833     MOV #19,&$3D2
10834     MOV #%01100000,&$3C6
10835     MOV #10,&$3D6
10836     BIS.B #$20,&$204
10837     BIS.B #$20,&$20A
10838     BIS.B #7,&$245
10839     BIC.B #7,&$247
10840     BIS.B #$0F,&$224
10841     BIC.B #$0F,&$226
10842     BIS.B #4,&$20A
10843     BIC.B #4,&$20C
10844     MOV #RC5_INT,&$FFDE
10845     MOV #%0100010100,&$340
10846     MOV ##3276,&$352
10847     MOV #%10000,&$342
10848     MOV #WDT_INT,&$FFEA
10849 BIC #1,&$130
10850 BIS.B #3,&$20D
10851 MOV &$1808,R8
10852 CMP #4,R8
10853 0= ?GOTO BW1
10854 COLON
10855     #1000 20_US
10856     %011 TOP_LCD
10857     #205 20_US
10858     %011 TOP_LCD
10859     #5 20_US
10860     %011 TOP_LCD
10861     #2 20_US
10862     %010 TOP_LCD
10863     #2 20_US
10864     %00101000 LCD_WRF
10865     %1000 LCD_WRF
10866     LCD_CLEAR
10867     %0110 LCD_WRF
10868     %1100 LCD_WRF
10869     LCD_CLEAR
10870     ['] LCD_HOME IS CR
10871     ['] LCD_WRC  IS EMIT
10872     CR ." I love you"
10873     ['] CR >BODY IS CR
10874     ['] EMIT >BODY IS EMIT
10875     ." RC5toLCD is running. Type STOP to quit"
10876     ABORT
10877 ;
10878
10879 CODE START
10880 MOV #SLEEP,R9
10881 MOV #BACKGROUND,2(R9)
10882 MOV #WARM,R9
10883 MOV #APP_INIT,2(R9)
10884 MOV R9,R0
10885 ENDCODE 
10886
10887 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
10888
10889 MARKER {RC5TOLCD}
10890
10891 CODE 20_US
10892 BEGIN
10893     BEGIN
10894         BIT #1,&$3C0
10895     0<> UNTIL
10896     BIC #1,&$3C0
10897     SUB #1,R14
10898 U< UNTIL
10899 MOV @R15+,R14
10900 MOV @R13+,R0
10901 ENDCODE
10902
10903 CODE TOP_LCD
10904     BIS.B #4,&$243
10905     BIT.B #1,&$241
10906 0= IF
10907     AND.B #$0F,R14
10908     MOV.B R14,&$222
10909     BIC.B #4,&$243
10910     MOV @R15+,R14
10911     MOV @R13+,R0
10912 THEN
10913     SUB #2,R15
10914     MOV R14,0(R15)
10915     BIC.B #4,&$243
10916     MOV.B &$220,R14
10917     AND.B #$0F,R14
10918     MOV @R13+,R0
10919 ENDCODE
10920
10921 CODE LCD_WRC
10922     BIS.B #2,&$243
10923 BW1 SUB #2,R15
10924     MOV R14,0(R15)
10925     RRUM #4,R14
10926     BIC.B #1,&$243
10927     BIS.B #$0F,&$224
10928 COLON
10929     TOP_LCD 2 20_US
10930     TOP_LCD 2 20_US 
10931 ;
10932
10933 CODE LCD_WRF
10934     BIC.B #2,&$243
10935     GOTO BW1
10936 ENDCODE
10937
10938 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
10939 : LCD_HOME $02 LCD_WRF 100 20_us ;
10940
10941
10942
10943 ASM WDT_INT
10944 ADD #2,R1
10945 BIT.B #$20,&$240
10946 0= IF
10947     CMP #19,&$3D6
10948     U< IF
10949         ADD #1,&$3D6
10950     THEN
10951 ELSE
10952     BIT.B #$40,&$240
10953     0= IF
10954         CMP #3,&$3D6
10955         U>= IF
10956            SUB #1,&$3D6
10957         THEN
10958     THEN
10959 THEN
10960 BW1
10961 MOV @R1+,R0
10962 ENDASM
10963
10964 ASM RC5_INT
10965 ADD #2,R1
10966 $1806 @ 16000 = [IF]
10967     MOV #1,&$3A0
10968 [THEN]
10969 $1806 @ 24000 = [IF]
10970     MOV #2,&$3A0
10971 [THEN]
10972 MOV #1778,R9
10973 MOV #14,R10
10974 BEGIN
10975 MOV #%1011100100,&$380
10976     RRUM    #1,R9
10977     MOV     R9,R8
10978     RRUM    #1,R8
10979     ADD     R9,R8
10980     BEGIN   CMP R8,&$390
10981     U>= UNTIL
10982     BIT.B   #4,&$200
10983     ADDC    R11,R11
10984     MOV.B   &$200,&$208
10985     BIC.B   #4,&$20C
10986     SUB     #1,R10
10987 0<> WHILE
10988     ADD R9,R8
10989     BEGIN
10990         MOV &$390,R9
10991         CMP R8,R9
10992         U>= IF
10993         BIC #$30,&$380
10994         GOTO BW1
10995         THEN
10996         BIT.B #4,&$20C
10997     0<> UNTIL
10998 REPEAT
10999 BIC #$30,&$380
11000 RLAM    #1,R11
11001 MOV.B   R11,R9
11002 RRUM    #2,R9
11003 BIT     #$4000,R11
11004 0= IF   BIS #$40,R9
11005 THEN
11006 RRUM    #3,R11
11007 XOR     @R1,R11
11008 BIT     #$400,R11
11009 0= ?GOTO BW1
11010 XOR #$400,0(R1)
11011 SUB #8,R15
11012 MOV R14,6(R15)
11013 MOV &$1DDC,4(R15)
11014 MOV #$10,&$1DDC
11015 MOV R9,0(R15)
11016 MOV #0,R14
11017 LO2HI
11018     LCD_CLEAR
11019     <# # #S #36 HOLD #>
11020     ['] LCD_WRC IS EMIT
11021     TYPE
11022     ['] EMIT >BODY IS EMIT
11023 HI2LO
11024 MOV @R15+,&$1DDC
11025 MOV @R15+,R14
11026 MOV @R1+,R0
11027 ENDASM
11028
11029 ASM BACKGROUND
11030 BEGIN
11031     CALL &$1814
11032     BIS &$180A,R2
11033 AGAIN
11034 ENDASM
11035
11036 CODE STOP
11037 BW1 MOV #SLEEP,R9
11038     ADD #4,R9
11039     MOV R9,-2(R9)
11040 COLON
11041 ['] WARM >BODY IS WARM
11042 ECHO
11043 ." RC5toLCD is removed. type START to restart"
11044 COLD
11045 ;
11046
11047 CODE APP_INIT
11048 MOV #%1011010100,&$3C0
11049 $1806 @ 16000 = [IF]
11050     MOV #1,&$3E0
11051 [THEN]
11052 $1806 @ 24000 = [IF]
11053     MOV #2,&$3E0
11054 [THEN]
11055     MOV #19,&$3D2
11056     MOV #%01100000,&$3C6
11057     MOV #10,&$3D6
11058     BIS.B #$20,&$204
11059     BIS.B #$20,&$20A
11060     BIS.B #7,&$245
11061     BIC.B #7,&$247
11062     BIS.B #$0F,&$224
11063     BIC.B #$0F,&$226
11064     BIS.B #4,&$20A
11065     BIC.B #4,&$20C
11066     MOV #RC5_INT,&$FFDE
11067     MOV #%0100010100,&$340
11068     MOV ##3276,&$352
11069     MOV #%10000,&$342
11070     MOV #WDT_INT,&$FFEA
11071 BIC #1,&$130
11072 BIS.B #3,&$20D
11073 MOV &$1808,R8
11074 CMP #4,R8
11075 0= ?GOTO BW1
11076 COLON
11077     #1000 20_US
11078     %011 TOP_LCD
11079     #205 20_US
11080     %011 TOP_LCD
11081     #5 20_US
11082     %011 TOP_LCD
11083     #2 20_US
11084     %010 TOP_LCD
11085     #2 20_US
11086     %00101000 LCD_WRF
11087     %1000 LCD_WRF
11088     LCD_CLEAR
11089     %0110 LCD_WRF
11090     %1100 LCD_WRF
11091     LCD_CLEAR
11092     ['] LCD_HOME IS CR
11093     ['] LCD_WRC  IS EMIT
11094     CR ." I love you"
11095     ['] CR >BODY IS CR
11096     ['] EMIT >BODY IS EMIT
11097     ." RC5toLCD is running. Type STOP to quit"
11098     ABORT
11099 ;
11100
11101 CODE START
11102 MOV #SLEEP,R9
11103 MOV #BACKGROUND,2(R9)
11104 MOV #WARM,R9
11105 MOV #APP_INIT,2(R9)
11106 MOV R9,R0
11107 ENDCODE 
11108
11109 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11110
11111 MARKER {RC5TOLCD}
11112
11113 CODE 20_US
11114 BEGIN
11115     BEGIN
11116         BIT #1,&$3C0
11117     0<> UNTIL
11118     BIC #1,&$3C0
11119     SUB #1,R14
11120 U< UNTIL
11121 MOV @R15+,R14
11122 MOV @R13+,R0
11123 ENDCODE
11124
11125 CODE TOP_LCD
11126     BIS.B #4,&$243
11127     BIT.B #1,&$241
11128 0= IF
11129     AND.B #$0F,R14
11130     MOV.B R14,&$222
11131     BIC.B #4,&$243
11132     MOV @R15+,R14
11133     MOV @R13+,R0
11134 THEN
11135     SUB #2,R15
11136     MOV R14,0(R15)
11137     BIC.B #4,&$243
11138     MOV.B &$220,R14
11139     AND.B #$0F,R14
11140     MOV @R13+,R0
11141 ENDCODE
11142
11143 CODE LCD_WRC
11144     BIS.B #2,&$243
11145 BW1 SUB #2,R15
11146     MOV R14,0(R15)
11147     RRUM #4,R14
11148     BIC.B #1,&$243
11149     BIS.B #$0F,&$224
11150 COLON
11151     TOP_LCD 2 20_US
11152     TOP_LCD 2 20_US 
11153 ;
11154
11155 CODE LCD_WRF
11156     BIC.B #2,&$243
11157     GOTO BW1
11158 ENDCODE
11159
11160 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11161 : LCD_HOME $02 LCD_WRF 100 20_us ;
11162
11163
11164
11165 ASM WDT_INT
11166 ADD #2,R1
11167 BIT.B #$20,&$240
11168 0= IF
11169     CMP #19,&$3D6
11170     U< IF
11171         ADD #1,&$3D6
11172     THEN
11173 ELSE
11174     BIT.B #$40,&$240
11175     0= IF
11176         CMP #3,&$3D6
11177         U>= IF
11178            SUB #1,&$3D6
11179         THEN
11180     THEN
11181 THEN
11182 BW1
11183 MOV @R1+,R0
11184 ENDASM
11185
11186 ASM RC5_INT
11187 ADD #2,R1
11188 $1806 @ 16000 = [IF]
11189     MOV #1,&$3A0
11190 [THEN]
11191 $1806 @ 24000 = [IF]
11192     MOV #2,&$3A0
11193 [THEN]
11194 MOV #1778,R9
11195 MOV #14,R10
11196 BEGIN
11197 MOV #%1011100100,&$380
11198     RRUM    #1,R9
11199     MOV     R9,R8
11200     RRUM    #1,R8
11201     ADD     R9,R8
11202     BEGIN   CMP R8,&$390
11203     U>= UNTIL
11204     BIT.B   #4,&$200
11205     ADDC    R11,R11
11206     MOV.B   &$200,&$208
11207     BIC.B   #4,&$20C
11208     SUB     #1,R10
11209 0<> WHILE
11210     ADD R9,R8
11211     BEGIN
11212         MOV &$390,R9
11213         CMP R8,R9
11214         U>= IF
11215         BIC #$30,&$380
11216         GOTO BW1
11217         THEN
11218         BIT.B #4,&$20C
11219     0<> UNTIL
11220 REPEAT
11221 BIC #$30,&$380
11222 RLAM    #1,R11
11223 MOV.B   R11,R9
11224 RRUM    #2,R9
11225 BIT     #$4000,R11
11226 0= IF   BIS #$40,R9
11227 THEN
11228 RRUM    #3,R11
11229 XOR     @R1,R11
11230 BIT     #$400,R11
11231 0= ?GOTO BW1
11232 XOR #$400,0(R1)
11233 SUB #8,R15
11234 MOV R14,6(R15)
11235 MOV &$1DDC,4(R15)
11236 MOV #$10,&$1DDC
11237 MOV R9,0(R15)
11238 MOV #0,R14
11239 LO2HI
11240     LCD_CLEAR
11241     <# # #S #36 HOLD #>
11242     ['] LCD_WRC IS EMIT
11243     TYPE
11244     ['] EMIT >BODY IS EMIT
11245 HI2LO
11246 MOV @R15+,&$1DDC
11247 MOV @R15+,R14
11248 MOV @R1+,R0
11249 ENDASM
11250
11251 ASM BACKGROUND
11252 BEGIN
11253     CALL &$1814
11254     BIS &$180A,R2
11255 AGAIN
11256 ENDASM
11257
11258 CODE STOP
11259 BW1 MOV #SLEEP,R9
11260     ADD #4,R9
11261     MOV R9,-2(R9)
11262 COLON
11263 ['] WARM >BODY IS WARM
11264 ECHO
11265 ." RC5toLCD is removed. type START to restart"
11266 COLD
11267 ;
11268
11269 CODE APP_INIT
11270 MOV #%1011010100,&$3C0
11271 $1806 @ 16000 = [IF]
11272     MOV #1,&$3E0
11273 [THEN]
11274 $1806 @ 24000 = [IF]
11275     MOV #2,&$3E0
11276 [THEN]
11277     MOV #19,&$3D2
11278     MOV #%01100000,&$3C6
11279     MOV #10,&$3D6
11280     BIS.B #$20,&$204
11281     BIS.B #$20,&$20A
11282     BIS.B #7,&$245
11283     BIC.B #7,&$247
11284     BIS.B #$0F,&$224
11285     BIC.B #$0F,&$226
11286     BIS.B #4,&$20A
11287     BIC.B #4,&$20C
11288     MOV #RC5_INT,&$FFDE
11289     MOV #%0100010100,&$340
11290     MOV ##3276,&$352
11291     MOV #%10000,&$342
11292     MOV #WDT_INT,&$FFEA
11293 BIC #1,&$130
11294 BIS.B #3,&$20D
11295 MOV &$1808,R8
11296 CMP #4,R8
11297 0= ?GOTO BW1
11298 COLON
11299     #1000 20_US
11300     %011 TOP_LCD
11301     #205 20_US
11302     %011 TOP_LCD
11303     #5 20_US
11304     %011 TOP_LCD
11305     #2 20_US
11306     %010 TOP_LCD
11307     #2 20_US
11308     %00101000 LCD_WRF
11309     %1000 LCD_WRF
11310     LCD_CLEAR
11311     %0110 LCD_WRF
11312     %1100 LCD_WRF
11313     LCD_CLEAR
11314     ['] LCD_HOME IS CR
11315     ['] LCD_WRC  IS EMIT
11316     CR ." I love you"
11317     ['] CR >BODY IS CR
11318     ['] EMIT >BODY IS EMIT
11319     ." RC5toLCD is running. Type STOP to quit"
11320     ABORT
11321 ;
11322
11323 CODE START
11324 MOV #SLEEP,R9
11325 MOV #BACKGROUND,2(R9)
11326 MOV #WARM,R9
11327 MOV #APP_INIT,2(R9)
11328 MOV R9,R0
11329 ENDCODE 
11330
11331 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11332
11333 MARKER {RC5TOLCD}
11334
11335 CODE 20_US
11336 BEGIN
11337     BEGIN
11338         BIT #1,&$3C0
11339     0<> UNTIL
11340     BIC #1,&$3C0
11341     SUB #1,R14
11342 U< UNTIL
11343 MOV @R15+,R14
11344 MOV @R13+,R0
11345 ENDCODE
11346
11347 CODE TOP_LCD
11348     BIS.B #4,&$243
11349     BIT.B #1,&$241
11350 0= IF
11351     AND.B #$0F,R14
11352     MOV.B R14,&$222
11353     BIC.B #4,&$243
11354     MOV @R15+,R14
11355     MOV @R13+,R0
11356 THEN
11357     SUB #2,R15
11358     MOV R14,0(R15)
11359     BIC.B #4,&$243
11360     MOV.B &$220,R14
11361     AND.B #$0F,R14
11362     MOV @R13+,R0
11363 ENDCODE
11364
11365 CODE LCD_WRC
11366     BIS.B #2,&$243
11367 BW1 SUB #2,R15
11368     MOV R14,0(R15)
11369     RRUM #4,R14
11370     BIC.B #1,&$243
11371     BIS.B #$0F,&$224
11372 COLON
11373     TOP_LCD 2 20_US
11374     TOP_LCD 2 20_US 
11375 ;
11376
11377 CODE LCD_WRF
11378     BIC.B #2,&$243
11379     GOTO BW1
11380 ENDCODE
11381
11382 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11383 : LCD_HOME $02 LCD_WRF 100 20_us ;
11384
11385
11386
11387 ASM WDT_INT
11388 ADD #2,R1
11389 BIT.B #$20,&$240
11390 0= IF
11391     CMP #19,&$3D6
11392     U< IF
11393         ADD #1,&$3D6
11394     THEN
11395 ELSE
11396     BIT.B #$40,&$240
11397     0= IF
11398         CMP #3,&$3D6
11399         U>= IF
11400            SUB #1,&$3D6
11401         THEN
11402     THEN
11403 THEN
11404 BW1
11405 MOV @R1+,R0
11406 ENDASM
11407
11408 ASM RC5_INT
11409 ADD #2,R1
11410 $1806 @ 16000 = [IF]
11411     MOV #1,&$3A0
11412 [THEN]
11413 $1806 @ 24000 = [IF]
11414     MOV #2,&$3A0
11415 [THEN]
11416 MOV #1778,R9
11417 MOV #14,R10
11418 BEGIN
11419 MOV #%1011100100,&$380
11420     RRUM    #1,R9
11421     MOV     R9,R8
11422     RRUM    #1,R8
11423     ADD     R9,R8
11424     BEGIN   CMP R8,&$390
11425     U>= UNTIL
11426     BIT.B   #4,&$200
11427     ADDC    R11,R11
11428     MOV.B   &$200,&$208
11429     BIC.B   #4,&$20C
11430     SUB     #1,R10
11431 0<> WHILE
11432     ADD R9,R8
11433     BEGIN
11434         MOV &$390,R9
11435         CMP R8,R9
11436         U>= IF
11437         BIC #$30,&$380
11438         GOTO BW1
11439         THEN
11440         BIT.B #4,&$20C
11441     0<> UNTIL
11442 REPEAT
11443 BIC #$30,&$380
11444 RLAM    #1,R11
11445 MOV.B   R11,R9
11446 RRUM    #2,R9
11447 BIT     #$4000,R11
11448 0= IF   BIS #$40,R9
11449 THEN
11450 RRUM    #3,R11
11451 XOR     @R1,R11
11452 BIT     #$400,R11
11453 0= ?GOTO BW1
11454 XOR #$400,0(R1)
11455 SUB #8,R15
11456 MOV R14,6(R15)
11457 MOV &$1DDC,4(R15)
11458 MOV #$10,&$1DDC
11459 MOV R9,0(R15)
11460 MOV #0,R14
11461 LO2HI
11462     LCD_CLEAR
11463     <# # #S #36 HOLD #>
11464     ['] LCD_WRC IS EMIT
11465     TYPE
11466     ['] EMIT >BODY IS EMIT
11467 HI2LO
11468 MOV @R15+,&$1DDC
11469 MOV @R15+,R14
11470 MOV @R1+,R0
11471 ENDASM
11472
11473 ASM BACKGROUND
11474 BEGIN
11475     CALL &$1814
11476     BIS &$180A,R2
11477 AGAIN
11478 ENDASM
11479
11480 CODE STOP
11481 BW1 MOV #SLEEP,R9
11482     ADD #4,R9
11483     MOV R9,-2(R9)
11484 COLON
11485 ['] WARM >BODY IS WARM
11486 ECHO
11487 ." RC5toLCD is removed. type START to restart"
11488 COLD
11489 ;
11490
11491 CODE APP_INIT
11492 MOV #%1011010100,&$3C0
11493 $1806 @ 16000 = [IF]
11494     MOV #1,&$3E0
11495 [THEN]
11496 $1806 @ 24000 = [IF]
11497     MOV #2,&$3E0
11498 [THEN]
11499     MOV #19,&$3D2
11500     MOV #%01100000,&$3C6
11501     MOV #10,&$3D6
11502     BIS.B #$20,&$204
11503     BIS.B #$20,&$20A
11504     BIS.B #7,&$245
11505     BIC.B #7,&$247
11506     BIS.B #$0F,&$224
11507     BIC.B #$0F,&$226
11508     BIS.B #4,&$20A
11509     BIC.B #4,&$20C
11510     MOV #RC5_INT,&$FFDE
11511     MOV #%0100010100,&$340
11512     MOV ##3276,&$352
11513     MOV #%10000,&$342
11514     MOV #WDT_INT,&$FFEA
11515 BIC #1,&$130
11516 BIS.B #3,&$20D
11517 MOV &$1808,R8
11518 CMP #4,R8
11519 0= ?GOTO BW1
11520 COLON
11521     #1000 20_US
11522     %011 TOP_LCD
11523     #205 20_US
11524     %011 TOP_LCD
11525     #5 20_US
11526     %011 TOP_LCD
11527     #2 20_US
11528     %010 TOP_LCD
11529     #2 20_US
11530     %00101000 LCD_WRF
11531     %1000 LCD_WRF
11532     LCD_CLEAR
11533     %0110 LCD_WRF
11534     %1100 LCD_WRF
11535     LCD_CLEAR
11536     ['] LCD_HOME IS CR
11537     ['] LCD_WRC  IS EMIT
11538     CR ." I love you"
11539     ['] CR >BODY IS CR
11540     ['] EMIT >BODY IS EMIT
11541     ." RC5toLCD is running. Type STOP to quit"
11542     ABORT
11543 ;
11544
11545 CODE START
11546 MOV #SLEEP,R9
11547 MOV #BACKGROUND,2(R9)
11548 MOV #WARM,R9
11549 MOV #APP_INIT,2(R9)
11550 MOV R9,R0
11551 ENDCODE 
11552
11553 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11554
11555 MARKER {RC5TOLCD}
11556
11557 CODE 20_US
11558 BEGIN
11559     BEGIN
11560         BIT #1,&$3C0
11561     0<> UNTIL
11562     BIC #1,&$3C0
11563     SUB #1,R14
11564 U< UNTIL
11565 MOV @R15+,R14
11566 MOV @R13+,R0
11567 ENDCODE
11568
11569 CODE TOP_LCD
11570     BIS.B #4,&$243
11571     BIT.B #1,&$241
11572 0= IF
11573     AND.B #$0F,R14
11574     MOV.B R14,&$222
11575     BIC.B #4,&$243
11576     MOV @R15+,R14
11577     MOV @R13+,R0
11578 THEN
11579     SUB #2,R15
11580     MOV R14,0(R15)
11581     BIC.B #4,&$243
11582     MOV.B &$220,R14
11583     AND.B #$0F,R14
11584     MOV @R13+,R0
11585 ENDCODE
11586
11587 CODE LCD_WRC
11588     BIS.B #2,&$243
11589 BW1 SUB #2,R15
11590     MOV R14,0(R15)
11591     RRUM #4,R14
11592     BIC.B #1,&$243
11593     BIS.B #$0F,&$224
11594 COLON
11595     TOP_LCD 2 20_US
11596     TOP_LCD 2 20_US 
11597 ;
11598
11599 CODE LCD_WRF
11600     BIC.B #2,&$243
11601     GOTO BW1
11602 ENDCODE
11603
11604 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11605 : LCD_HOME $02 LCD_WRF 100 20_us ;
11606
11607
11608
11609 ASM WDT_INT
11610 ADD #2,R1
11611 BIT.B #$20,&$240
11612 0= IF
11613     CMP #19,&$3D6
11614     U< IF
11615         ADD #1,&$3D6
11616     THEN
11617 ELSE
11618     BIT.B #$40,&$240
11619     0= IF
11620         CMP #3,&$3D6
11621         U>= IF
11622            SUB #1,&$3D6
11623         THEN
11624     THEN
11625 THEN
11626 BW1
11627 MOV @R1+,R0
11628 ENDASM
11629
11630 ASM RC5_INT
11631 ADD #2,R1
11632 $1806 @ 16000 = [IF]
11633     MOV #1,&$3A0
11634 [THEN]
11635 $1806 @ 24000 = [IF]
11636     MOV #2,&$3A0
11637 [THEN]
11638 MOV #1778,R9
11639 MOV #14,R10
11640 BEGIN
11641 MOV #%1011100100,&$380
11642     RRUM    #1,R9
11643     MOV     R9,R8
11644     RRUM    #1,R8
11645     ADD     R9,R8
11646     BEGIN   CMP R8,&$390
11647     U>= UNTIL
11648     BIT.B   #4,&$200
11649     ADDC    R11,R11
11650     MOV.B   &$200,&$208
11651     BIC.B   #4,&$20C
11652     SUB     #1,R10
11653 0<> WHILE
11654     ADD R9,R8
11655     BEGIN
11656         MOV &$390,R9
11657         CMP R8,R9
11658         U>= IF
11659         BIC #$30,&$380
11660         GOTO BW1
11661         THEN
11662         BIT.B #4,&$20C
11663     0<> UNTIL
11664 REPEAT
11665 BIC #$30,&$380
11666 RLAM    #1,R11
11667 MOV.B   R11,R9
11668 RRUM    #2,R9
11669 BIT     #$4000,R11
11670 0= IF   BIS #$40,R9
11671 THEN
11672 RRUM    #3,R11
11673 XOR     @R1,R11
11674 BIT     #$400,R11
11675 0= ?GOTO BW1
11676 XOR #$400,0(R1)
11677 SUB #8,R15
11678 MOV R14,6(R15)
11679 MOV &$1DDC,4(R15)
11680 MOV #$10,&$1DDC
11681 MOV R9,0(R15)
11682 MOV #0,R14
11683 LO2HI
11684     LCD_CLEAR
11685     <# # #S #36 HOLD #>
11686     ['] LCD_WRC IS EMIT
11687     TYPE
11688     ['] EMIT >BODY IS EMIT
11689 HI2LO
11690 MOV @R15+,&$1DDC
11691 MOV @R15+,R14
11692 MOV @R1+,R0
11693 ENDASM
11694
11695 ASM BACKGROUND
11696 BEGIN
11697     CALL &$1814
11698     BIS &$180A,R2
11699 AGAIN
11700 ENDASM
11701
11702 CODE STOP
11703 BW1 MOV #SLEEP,R9
11704     ADD #4,R9
11705     MOV R9,-2(R9)
11706 COLON
11707 ['] WARM >BODY IS WARM
11708 ECHO
11709 ." RC5toLCD is removed. type START to restart"
11710 COLD
11711 ;
11712
11713 CODE APP_INIT
11714 MOV #%1011010100,&$3C0
11715 $1806 @ 16000 = [IF]
11716     MOV #1,&$3E0
11717 [THEN]
11718 $1806 @ 24000 = [IF]
11719     MOV #2,&$3E0
11720 [THEN]
11721     MOV #19,&$3D2
11722     MOV #%01100000,&$3C6
11723     MOV #10,&$3D6
11724     BIS.B #$20,&$204
11725     BIS.B #$20,&$20A
11726     BIS.B #7,&$245
11727     BIC.B #7,&$247
11728     BIS.B #$0F,&$224
11729     BIC.B #$0F,&$226
11730     BIS.B #4,&$20A
11731     BIC.B #4,&$20C
11732     MOV #RC5_INT,&$FFDE
11733     MOV #%0100010100,&$340
11734     MOV ##3276,&$352
11735     MOV #%10000,&$342
11736     MOV #WDT_INT,&$FFEA
11737 BIC #1,&$130
11738 BIS.B #3,&$20D
11739 MOV &$1808,R8
11740 CMP #4,R8
11741 0= ?GOTO BW1
11742 COLON
11743     #1000 20_US
11744     %011 TOP_LCD
11745     #205 20_US
11746     %011 TOP_LCD
11747     #5 20_US
11748     %011 TOP_LCD
11749     #2 20_US
11750     %010 TOP_LCD
11751     #2 20_US
11752     %00101000 LCD_WRF
11753     %1000 LCD_WRF
11754     LCD_CLEAR
11755     %0110 LCD_WRF
11756     %1100 LCD_WRF
11757     LCD_CLEAR
11758     ['] LCD_HOME IS CR
11759     ['] LCD_WRC  IS EMIT
11760     CR ." I love you"
11761     ['] CR >BODY IS CR
11762     ['] EMIT >BODY IS EMIT
11763     ." RC5toLCD is running. Type STOP to quit"
11764     ABORT
11765 ;
11766
11767 CODE START
11768 MOV #SLEEP,R9
11769 MOV #BACKGROUND,2(R9)
11770 MOV #WARM,R9
11771 MOV #APP_INIT,2(R9)
11772 MOV R9,R0
11773 ENDCODE 
11774
11775 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11776
11777 MARKER {RC5TOLCD}
11778
11779 CODE 20_US
11780 BEGIN
11781     BEGIN
11782         BIT #1,&$3C0
11783     0<> UNTIL
11784     BIC #1,&$3C0
11785     SUB #1,R14
11786 U< UNTIL
11787 MOV @R15+,R14
11788 MOV @R13+,R0
11789 ENDCODE
11790
11791 CODE TOP_LCD
11792     BIS.B #4,&$243
11793     BIT.B #1,&$241
11794 0= IF
11795     AND.B #$0F,R14
11796     MOV.B R14,&$222
11797     BIC.B #4,&$243
11798     MOV @R15+,R14
11799     MOV @R13+,R0
11800 THEN
11801     SUB #2,R15
11802     MOV R14,0(R15)
11803     BIC.B #4,&$243
11804     MOV.B &$220,R14
11805     AND.B #$0F,R14
11806     MOV @R13+,R0
11807 ENDCODE
11808
11809 CODE LCD_WRC
11810     BIS.B #2,&$243
11811 BW1 SUB #2,R15
11812     MOV R14,0(R15)
11813     RRUM #4,R14
11814     BIC.B #1,&$243
11815     BIS.B #$0F,&$224
11816 COLON
11817     TOP_LCD 2 20_US
11818     TOP_LCD 2 20_US 
11819 ;
11820
11821 CODE LCD_WRF
11822     BIC.B #2,&$243
11823     GOTO BW1
11824 ENDCODE
11825
11826 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
11827 : LCD_HOME $02 LCD_WRF 100 20_us ;
11828
11829
11830
11831 ASM WDT_INT
11832 ADD #2,R1
11833 BIT.B #$20,&$240
11834 0= IF
11835     CMP #19,&$3D6
11836     U< IF
11837         ADD #1,&$3D6
11838     THEN
11839 ELSE
11840     BIT.B #$40,&$240
11841     0= IF
11842         CMP #3,&$3D6
11843         U>= IF
11844            SUB #1,&$3D6
11845         THEN
11846     THEN
11847 THEN
11848 BW1
11849 MOV @R1+,R0
11850 ENDASM
11851
11852 ASM RC5_INT
11853 ADD #2,R1
11854 $1806 @ 16000 = [IF]
11855     MOV #1,&$3A0
11856 [THEN]
11857 $1806 @ 24000 = [IF]
11858     MOV #2,&$3A0
11859 [THEN]
11860 MOV #1778,R9
11861 MOV #14,R10
11862 BEGIN
11863 MOV #%1011100100,&$380
11864     RRUM    #1,R9
11865     MOV     R9,R8
11866     RRUM    #1,R8
11867     ADD     R9,R8
11868     BEGIN   CMP R8,&$390
11869     U>= UNTIL
11870     BIT.B   #4,&$200
11871     ADDC    R11,R11
11872     MOV.B   &$200,&$208
11873     BIC.B   #4,&$20C
11874     SUB     #1,R10
11875 0<> WHILE
11876     ADD R9,R8
11877     BEGIN
11878         MOV &$390,R9
11879         CMP R8,R9
11880         U>= IF
11881         BIC #$30,&$380
11882         GOTO BW1
11883         THEN
11884         BIT.B #4,&$20C
11885     0<> UNTIL
11886 REPEAT
11887 BIC #$30,&$380
11888 RLAM    #1,R11
11889 MOV.B   R11,R9
11890 RRUM    #2,R9
11891 BIT     #$4000,R11
11892 0= IF   BIS #$40,R9
11893 THEN
11894 RRUM    #3,R11
11895 XOR     @R1,R11
11896 BIT     #$400,R11
11897 0= ?GOTO BW1
11898 XOR #$400,0(R1)
11899 SUB #8,R15
11900 MOV R14,6(R15)
11901 MOV &$1DDC,4(R15)
11902 MOV #$10,&$1DDC
11903 MOV R9,0(R15)
11904 MOV #0,R14
11905 LO2HI
11906     LCD_CLEAR
11907     <# # #S #36 HOLD #>
11908     ['] LCD_WRC IS EMIT
11909     TYPE
11910     ['] EMIT >BODY IS EMIT
11911 HI2LO
11912 MOV @R15+,&$1DDC
11913 MOV @R15+,R14
11914 MOV @R1+,R0
11915 ENDASM
11916
11917 ASM BACKGROUND
11918 BEGIN
11919     CALL &$1814
11920     BIS &$180A,R2
11921 AGAIN
11922 ENDASM
11923
11924 CODE STOP
11925 BW1 MOV #SLEEP,R9
11926     ADD #4,R9
11927     MOV R9,-2(R9)
11928 COLON
11929 ['] WARM >BODY IS WARM
11930 ECHO
11931 ." RC5toLCD is removed. type START to restart"
11932 COLD
11933 ;
11934
11935 CODE APP_INIT
11936 MOV #%1011010100,&$3C0
11937 $1806 @ 16000 = [IF]
11938     MOV #1,&$3E0
11939 [THEN]
11940 $1806 @ 24000 = [IF]
11941     MOV #2,&$3E0
11942 [THEN]
11943     MOV #19,&$3D2
11944     MOV #%01100000,&$3C6
11945     MOV #10,&$3D6
11946     BIS.B #$20,&$204
11947     BIS.B #$20,&$20A
11948     BIS.B #7,&$245
11949     BIC.B #7,&$247
11950     BIS.B #$0F,&$224
11951     BIC.B #$0F,&$226
11952     BIS.B #4,&$20A
11953     BIC.B #4,&$20C
11954     MOV #RC5_INT,&$FFDE
11955     MOV #%0100010100,&$340
11956     MOV ##3276,&$352
11957     MOV #%10000,&$342
11958     MOV #WDT_INT,&$FFEA
11959 BIC #1,&$130
11960 BIS.B #3,&$20D
11961 MOV &$1808,R8
11962 CMP #4,R8
11963 0= ?GOTO BW1
11964 COLON
11965     #1000 20_US
11966     %011 TOP_LCD
11967     #205 20_US
11968     %011 TOP_LCD
11969     #5 20_US
11970     %011 TOP_LCD
11971     #2 20_US
11972     %010 TOP_LCD
11973     #2 20_US
11974     %00101000 LCD_WRF
11975     %1000 LCD_WRF
11976     LCD_CLEAR
11977     %0110 LCD_WRF
11978     %1100 LCD_WRF
11979     LCD_CLEAR
11980     ['] LCD_HOME IS CR
11981     ['] LCD_WRC  IS EMIT
11982     CR ." I love you"
11983     ['] CR >BODY IS CR
11984     ['] EMIT >BODY IS EMIT
11985     ." RC5toLCD is running. Type STOP to quit"
11986     ABORT
11987 ;
11988
11989 CODE START
11990 MOV #SLEEP,R9
11991 MOV #BACKGROUND,2(R9)
11992 MOV #WARM,R9
11993 MOV #APP_INIT,2(R9)
11994 MOV R9,R0
11995 ENDCODE 
11996
11997 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
11998
11999 MARKER {RC5TOLCD}
12000
12001 CODE 20_US
12002 BEGIN
12003     BEGIN
12004         BIT #1,&$3C0
12005     0<> UNTIL
12006     BIC #1,&$3C0
12007     SUB #1,R14
12008 U< UNTIL
12009 MOV @R15+,R14
12010 MOV @R13+,R0
12011 ENDCODE
12012
12013 CODE TOP_LCD
12014     BIS.B #4,&$243
12015     BIT.B #1,&$241
12016 0= IF
12017     AND.B #$0F,R14
12018     MOV.B R14,&$222
12019     BIC.B #4,&$243
12020     MOV @R15+,R14
12021     MOV @R13+,R0
12022 THEN
12023     SUB #2,R15
12024     MOV R14,0(R15)
12025     BIC.B #4,&$243
12026     MOV.B &$220,R14
12027     AND.B #$0F,R14
12028     MOV @R13+,R0
12029 ENDCODE
12030
12031 CODE LCD_WRC
12032     BIS.B #2,&$243
12033 BW1 SUB #2,R15
12034     MOV R14,0(R15)
12035     RRUM #4,R14
12036     BIC.B #1,&$243
12037     BIS.B #$0F,&$224
12038 COLON
12039     TOP_LCD 2 20_US
12040     TOP_LCD 2 20_US 
12041 ;
12042
12043 CODE LCD_WRF
12044     BIC.B #2,&$243
12045     GOTO BW1
12046 ENDCODE
12047
12048 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12049 : LCD_HOME $02 LCD_WRF 100 20_us ;
12050
12051
12052
12053 ASM WDT_INT
12054 ADD #2,R1
12055 BIT.B #$20,&$240
12056 0= IF
12057     CMP #19,&$3D6
12058     U< IF
12059         ADD #1,&$3D6
12060     THEN
12061 ELSE
12062     BIT.B #$40,&$240
12063     0= IF
12064         CMP #3,&$3D6
12065         U>= IF
12066            SUB #1,&$3D6
12067         THEN
12068     THEN
12069 THEN
12070 BW1
12071 MOV @R1+,R0
12072 ENDASM
12073
12074 ASM RC5_INT
12075 ADD #2,R1
12076 $1806 @ 16000 = [IF]
12077     MOV #1,&$3A0
12078 [THEN]
12079 $1806 @ 24000 = [IF]
12080     MOV #2,&$3A0
12081 [THEN]
12082 MOV #1778,R9
12083 MOV #14,R10
12084 BEGIN
12085 MOV #%1011100100,&$380
12086     RRUM    #1,R9
12087     MOV     R9,R8
12088     RRUM    #1,R8
12089     ADD     R9,R8
12090     BEGIN   CMP R8,&$390
12091     U>= UNTIL
12092     BIT.B   #4,&$200
12093     ADDC    R11,R11
12094     MOV.B   &$200,&$208
12095     BIC.B   #4,&$20C
12096     SUB     #1,R10
12097 0<> WHILE
12098     ADD R9,R8
12099     BEGIN
12100         MOV &$390,R9
12101         CMP R8,R9
12102         U>= IF
12103         BIC #$30,&$380
12104         GOTO BW1
12105         THEN
12106         BIT.B #4,&$20C
12107     0<> UNTIL
12108 REPEAT
12109 BIC #$30,&$380
12110 RLAM    #1,R11
12111 MOV.B   R11,R9
12112 RRUM    #2,R9
12113 BIT     #$4000,R11
12114 0= IF   BIS #$40,R9
12115 THEN
12116 RRUM    #3,R11
12117 XOR     @R1,R11
12118 BIT     #$400,R11
12119 0= ?GOTO BW1
12120 XOR #$400,0(R1)
12121 SUB #8,R15
12122 MOV R14,6(R15)
12123 MOV &$1DDC,4(R15)
12124 MOV #$10,&$1DDC
12125 MOV R9,0(R15)
12126 MOV #0,R14
12127 LO2HI
12128     LCD_CLEAR
12129     <# # #S #36 HOLD #>
12130     ['] LCD_WRC IS EMIT
12131     TYPE
12132     ['] EMIT >BODY IS EMIT
12133 HI2LO
12134 MOV @R15+,&$1DDC
12135 MOV @R15+,R14
12136 MOV @R1+,R0
12137 ENDASM
12138
12139 ASM BACKGROUND
12140 BEGIN
12141     CALL &$1814
12142     BIS &$180A,R2
12143 AGAIN
12144 ENDASM
12145
12146 CODE STOP
12147 BW1 MOV #SLEEP,R9
12148     ADD #4,R9
12149     MOV R9,-2(R9)
12150 COLON
12151 ['] WARM >BODY IS WARM
12152 ECHO
12153 ." RC5toLCD is removed. type START to restart"
12154 COLD
12155 ;
12156
12157 CODE APP_INIT
12158 MOV #%1011010100,&$3C0
12159 $1806 @ 16000 = [IF]
12160     MOV #1,&$3E0
12161 [THEN]
12162 $1806 @ 24000 = [IF]
12163     MOV #2,&$3E0
12164 [THEN]
12165     MOV #19,&$3D2
12166     MOV #%01100000,&$3C6
12167     MOV #10,&$3D6
12168     BIS.B #$20,&$204
12169     BIS.B #$20,&$20A
12170     BIS.B #7,&$245
12171     BIC.B #7,&$247
12172     BIS.B #$0F,&$224
12173     BIC.B #$0F,&$226
12174     BIS.B #4,&$20A
12175     BIC.B #4,&$20C
12176     MOV #RC5_INT,&$FFDE
12177     MOV #%0100010100,&$340
12178     MOV ##3276,&$352
12179     MOV #%10000,&$342
12180     MOV #WDT_INT,&$FFEA
12181 BIC #1,&$130
12182 BIS.B #3,&$20D
12183 MOV &$1808,R8
12184 CMP #4,R8
12185 0= ?GOTO BW1
12186 COLON
12187     #1000 20_US
12188     %011 TOP_LCD
12189     #205 20_US
12190     %011 TOP_LCD
12191     #5 20_US
12192     %011 TOP_LCD
12193     #2 20_US
12194     %010 TOP_LCD
12195     #2 20_US
12196     %00101000 LCD_WRF
12197     %1000 LCD_WRF
12198     LCD_CLEAR
12199     %0110 LCD_WRF
12200     %1100 LCD_WRF
12201     LCD_CLEAR
12202     ['] LCD_HOME IS CR
12203     ['] LCD_WRC  IS EMIT
12204     CR ." I love you"
12205     ['] CR >BODY IS CR
12206     ['] EMIT >BODY IS EMIT
12207     ." RC5toLCD is running. Type STOP to quit"
12208     ABORT
12209 ;
12210
12211 CODE START
12212 MOV #SLEEP,R9
12213 MOV #BACKGROUND,2(R9)
12214 MOV #WARM,R9
12215 MOV #APP_INIT,2(R9)
12216 MOV R9,R0
12217 ENDCODE 
12218
12219 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12220
12221 MARKER {RC5TOLCD}
12222
12223 CODE 20_US
12224 BEGIN
12225     BEGIN
12226         BIT #1,&$3C0
12227     0<> UNTIL
12228     BIC #1,&$3C0
12229     SUB #1,R14
12230 U< UNTIL
12231 MOV @R15+,R14
12232 MOV @R13+,R0
12233 ENDCODE
12234
12235 CODE TOP_LCD
12236     BIS.B #4,&$243
12237     BIT.B #1,&$241
12238 0= IF
12239     AND.B #$0F,R14
12240     MOV.B R14,&$222
12241     BIC.B #4,&$243
12242     MOV @R15+,R14
12243     MOV @R13+,R0
12244 THEN
12245     SUB #2,R15
12246     MOV R14,0(R15)
12247     BIC.B #4,&$243
12248     MOV.B &$220,R14
12249     AND.B #$0F,R14
12250     MOV @R13+,R0
12251 ENDCODE
12252
12253 CODE LCD_WRC
12254     BIS.B #2,&$243
12255 BW1 SUB #2,R15
12256     MOV R14,0(R15)
12257     RRUM #4,R14
12258     BIC.B #1,&$243
12259     BIS.B #$0F,&$224
12260 COLON
12261     TOP_LCD 2 20_US
12262     TOP_LCD 2 20_US 
12263 ;
12264
12265 CODE LCD_WRF
12266     BIC.B #2,&$243
12267     GOTO BW1
12268 ENDCODE
12269
12270 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12271 : LCD_HOME $02 LCD_WRF 100 20_us ;
12272
12273
12274
12275 ASM WDT_INT
12276 ADD #2,R1
12277 BIT.B #$20,&$240
12278 0= IF
12279     CMP #19,&$3D6
12280     U< IF
12281         ADD #1,&$3D6
12282     THEN
12283 ELSE
12284     BIT.B #$40,&$240
12285     0= IF
12286         CMP #3,&$3D6
12287         U>= IF
12288            SUB #1,&$3D6
12289         THEN
12290     THEN
12291 THEN
12292 BW1
12293 MOV @R1+,R0
12294 ENDASM
12295
12296 ASM RC5_INT
12297 ADD #2,R1
12298 $1806 @ 16000 = [IF]
12299     MOV #1,&$3A0
12300 [THEN]
12301 $1806 @ 24000 = [IF]
12302     MOV #2,&$3A0
12303 [THEN]
12304 MOV #1778,R9
12305 MOV #14,R10
12306 BEGIN
12307 MOV #%1011100100,&$380
12308     RRUM    #1,R9
12309     MOV     R9,R8
12310     RRUM    #1,R8
12311     ADD     R9,R8
12312     BEGIN   CMP R8,&$390
12313     U>= UNTIL
12314     BIT.B   #4,&$200
12315     ADDC    R11,R11
12316     MOV.B   &$200,&$208
12317     BIC.B   #4,&$20C
12318     SUB     #1,R10
12319 0<> WHILE
12320     ADD R9,R8
12321     BEGIN
12322         MOV &$390,R9
12323         CMP R8,R9
12324         U>= IF
12325         BIC #$30,&$380
12326         GOTO BW1
12327         THEN
12328         BIT.B #4,&$20C
12329     0<> UNTIL
12330 REPEAT
12331 BIC #$30,&$380
12332 RLAM    #1,R11
12333 MOV.B   R11,R9
12334 RRUM    #2,R9
12335 BIT     #$4000,R11
12336 0= IF   BIS #$40,R9
12337 THEN
12338 RRUM    #3,R11
12339 XOR     @R1,R11
12340 BIT     #$400,R11
12341 0= ?GOTO BW1
12342 XOR #$400,0(R1)
12343 SUB #8,R15
12344 MOV R14,6(R15)
12345 MOV &$1DDC,4(R15)
12346 MOV #$10,&$1DDC
12347 MOV R9,0(R15)
12348 MOV #0,R14
12349 LO2HI
12350     LCD_CLEAR
12351     <# # #S #36 HOLD #>
12352     ['] LCD_WRC IS EMIT
12353     TYPE
12354     ['] EMIT >BODY IS EMIT
12355 HI2LO
12356 MOV @R15+,&$1DDC
12357 MOV @R15+,R14
12358 MOV @R1+,R0
12359 ENDASM
12360
12361 ASM BACKGROUND
12362 BEGIN
12363     CALL &$1814
12364     BIS &$180A,R2
12365 AGAIN
12366 ENDASM
12367
12368 CODE STOP
12369 BW1 MOV #SLEEP,R9
12370     ADD #4,R9
12371     MOV R9,-2(R9)
12372 COLON
12373 ['] WARM >BODY IS WARM
12374 ECHO
12375 ." RC5toLCD is removed. type START to restart"
12376 COLD
12377 ;
12378
12379 CODE APP_INIT
12380 MOV #%1011010100,&$3C0
12381 $1806 @ 16000 = [IF]
12382     MOV #1,&$3E0
12383 [THEN]
12384 $1806 @ 24000 = [IF]
12385     MOV #2,&$3E0
12386 [THEN]
12387     MOV #19,&$3D2
12388     MOV #%01100000,&$3C6
12389     MOV #10,&$3D6
12390     BIS.B #$20,&$204
12391     BIS.B #$20,&$20A
12392     BIS.B #7,&$245
12393     BIC.B #7,&$247
12394     BIS.B #$0F,&$224
12395     BIC.B #$0F,&$226
12396     BIS.B #4,&$20A
12397     BIC.B #4,&$20C
12398     MOV #RC5_INT,&$FFDE
12399     MOV #%0100010100,&$340
12400     MOV ##3276,&$352
12401     MOV #%10000,&$342
12402     MOV #WDT_INT,&$FFEA
12403 BIC #1,&$130
12404 BIS.B #3,&$20D
12405 MOV &$1808,R8
12406 CMP #4,R8
12407 0= ?GOTO BW1
12408 COLON
12409     #1000 20_US
12410     %011 TOP_LCD
12411     #205 20_US
12412     %011 TOP_LCD
12413     #5 20_US
12414     %011 TOP_LCD
12415     #2 20_US
12416     %010 TOP_LCD
12417     #2 20_US
12418     %00101000 LCD_WRF
12419     %1000 LCD_WRF
12420     LCD_CLEAR
12421     %0110 LCD_WRF
12422     %1100 LCD_WRF
12423     LCD_CLEAR
12424     ['] LCD_HOME IS CR
12425     ['] LCD_WRC  IS EMIT
12426     CR ." I love you"
12427     ['] CR >BODY IS CR
12428     ['] EMIT >BODY IS EMIT
12429     ." RC5toLCD is running. Type STOP to quit"
12430     ABORT
12431 ;
12432
12433 CODE START
12434 MOV #SLEEP,R9
12435 MOV #BACKGROUND,2(R9)
12436 MOV #WARM,R9
12437 MOV #APP_INIT,2(R9)
12438 MOV R9,R0
12439 ENDCODE 
12440
12441 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12442
12443 MARKER {RC5TOLCD}
12444
12445 CODE 20_US
12446 BEGIN
12447     BEGIN
12448         BIT #1,&$3C0
12449     0<> UNTIL
12450     BIC #1,&$3C0
12451     SUB #1,R14
12452 U< UNTIL
12453 MOV @R15+,R14
12454 MOV @R13+,R0
12455 ENDCODE
12456
12457 CODE TOP_LCD
12458     BIS.B #4,&$243
12459     BIT.B #1,&$241
12460 0= IF
12461     AND.B #$0F,R14
12462     MOV.B R14,&$222
12463     BIC.B #4,&$243
12464     MOV @R15+,R14
12465     MOV @R13+,R0
12466 THEN
12467     SUB #2,R15
12468     MOV R14,0(R15)
12469     BIC.B #4,&$243
12470     MOV.B &$220,R14
12471     AND.B #$0F,R14
12472     MOV @R13+,R0
12473 ENDCODE
12474
12475 CODE LCD_WRC
12476     BIS.B #2,&$243
12477 BW1 SUB #2,R15
12478     MOV R14,0(R15)
12479     RRUM #4,R14
12480     BIC.B #1,&$243
12481     BIS.B #$0F,&$224
12482 COLON
12483     TOP_LCD 2 20_US
12484     TOP_LCD 2 20_US 
12485 ;
12486
12487 CODE LCD_WRF
12488     BIC.B #2,&$243
12489     GOTO BW1
12490 ENDCODE
12491
12492 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12493 : LCD_HOME $02 LCD_WRF 100 20_us ;
12494
12495
12496
12497 ASM WDT_INT
12498 ADD #2,R1
12499 BIT.B #$20,&$240
12500 0= IF
12501     CMP #19,&$3D6
12502     U< IF
12503         ADD #1,&$3D6
12504     THEN
12505 ELSE
12506     BIT.B #$40,&$240
12507     0= IF
12508         CMP #3,&$3D6
12509         U>= IF
12510            SUB #1,&$3D6
12511         THEN
12512     THEN
12513 THEN
12514 BW1
12515 MOV @R1+,R0
12516 ENDASM
12517
12518 ASM RC5_INT
12519 ADD #2,R1
12520 $1806 @ 16000 = [IF]
12521     MOV #1,&$3A0
12522 [THEN]
12523 $1806 @ 24000 = [IF]
12524     MOV #2,&$3A0
12525 [THEN]
12526 MOV #1778,R9
12527 MOV #14,R10
12528 BEGIN
12529 MOV #%1011100100,&$380
12530     RRUM    #1,R9
12531     MOV     R9,R8
12532     RRUM    #1,R8
12533     ADD     R9,R8
12534     BEGIN   CMP R8,&$390
12535     U>= UNTIL
12536     BIT.B   #4,&$200
12537     ADDC    R11,R11
12538     MOV.B   &$200,&$208
12539     BIC.B   #4,&$20C
12540     SUB     #1,R10
12541 0<> WHILE
12542     ADD R9,R8
12543     BEGIN
12544         MOV &$390,R9
12545         CMP R8,R9
12546         U>= IF
12547         BIC #$30,&$380
12548         GOTO BW1
12549         THEN
12550         BIT.B #4,&$20C
12551     0<> UNTIL
12552 REPEAT
12553 BIC #$30,&$380
12554 RLAM    #1,R11
12555 MOV.B   R11,R9
12556 RRUM    #2,R9
12557 BIT     #$4000,R11
12558 0= IF   BIS #$40,R9
12559 THEN
12560 RRUM    #3,R11
12561 XOR     @R1,R11
12562 BIT     #$400,R11
12563 0= ?GOTO BW1
12564 XOR #$400,0(R1)
12565 SUB #8,R15
12566 MOV R14,6(R15)
12567 MOV &$1DDC,4(R15)
12568 MOV #$10,&$1DDC
12569 MOV R9,0(R15)
12570 MOV #0,R14
12571 LO2HI
12572     LCD_CLEAR
12573     <# # #S #36 HOLD #>
12574     ['] LCD_WRC IS EMIT
12575     TYPE
12576     ['] EMIT >BODY IS EMIT
12577 HI2LO
12578 MOV @R15+,&$1DDC
12579 MOV @R15+,R14
12580 MOV @R1+,R0
12581 ENDASM
12582
12583 ASM BACKGROUND
12584 BEGIN
12585     CALL &$1814
12586     BIS &$180A,R2
12587 AGAIN
12588 ENDASM
12589
12590 CODE STOP
12591 BW1 MOV #SLEEP,R9
12592     ADD #4,R9
12593     MOV R9,-2(R9)
12594 COLON
12595 ['] WARM >BODY IS WARM
12596 ECHO
12597 ." RC5toLCD is removed. type START to restart"
12598 COLD
12599 ;
12600
12601 CODE APP_INIT
12602 MOV #%1011010100,&$3C0
12603 $1806 @ 16000 = [IF]
12604     MOV #1,&$3E0
12605 [THEN]
12606 $1806 @ 24000 = [IF]
12607     MOV #2,&$3E0
12608 [THEN]
12609     MOV #19,&$3D2
12610     MOV #%01100000,&$3C6
12611     MOV #10,&$3D6
12612     BIS.B #$20,&$204
12613     BIS.B #$20,&$20A
12614     BIS.B #7,&$245
12615     BIC.B #7,&$247
12616     BIS.B #$0F,&$224
12617     BIC.B #$0F,&$226
12618     BIS.B #4,&$20A
12619     BIC.B #4,&$20C
12620     MOV #RC5_INT,&$FFDE
12621     MOV #%0100010100,&$340
12622     MOV ##3276,&$352
12623     MOV #%10000,&$342
12624     MOV #WDT_INT,&$FFEA
12625 BIC #1,&$130
12626 BIS.B #3,&$20D
12627 MOV &$1808,R8
12628 CMP #4,R8
12629 0= ?GOTO BW1
12630 COLON
12631     #1000 20_US
12632     %011 TOP_LCD
12633     #205 20_US
12634     %011 TOP_LCD
12635     #5 20_US
12636     %011 TOP_LCD
12637     #2 20_US
12638     %010 TOP_LCD
12639     #2 20_US
12640     %00101000 LCD_WRF
12641     %1000 LCD_WRF
12642     LCD_CLEAR
12643     %0110 LCD_WRF
12644     %1100 LCD_WRF
12645     LCD_CLEAR
12646     ['] LCD_HOME IS CR
12647     ['] LCD_WRC  IS EMIT
12648     CR ." I love you"
12649     ['] CR >BODY IS CR
12650     ['] EMIT >BODY IS EMIT
12651     ." RC5toLCD is running. Type STOP to quit"
12652     ABORT
12653 ;
12654
12655 CODE START
12656 MOV #SLEEP,R9
12657 MOV #BACKGROUND,2(R9)
12658 MOV #WARM,R9
12659 MOV #APP_INIT,2(R9)
12660 MOV R9,R0
12661 ENDCODE 
12662
12663 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12664
12665 MARKER {RC5TOLCD}
12666
12667 CODE 20_US
12668 BEGIN
12669     BEGIN
12670         BIT #1,&$3C0
12671     0<> UNTIL
12672     BIC #1,&$3C0
12673     SUB #1,R14
12674 U< UNTIL
12675 MOV @R15+,R14
12676 MOV @R13+,R0
12677 ENDCODE
12678
12679 CODE TOP_LCD
12680     BIS.B #4,&$243
12681     BIT.B #1,&$241
12682 0= IF
12683     AND.B #$0F,R14
12684     MOV.B R14,&$222
12685     BIC.B #4,&$243
12686     MOV @R15+,R14
12687     MOV @R13+,R0
12688 THEN
12689     SUB #2,R15
12690     MOV R14,0(R15)
12691     BIC.B #4,&$243
12692     MOV.B &$220,R14
12693     AND.B #$0F,R14
12694     MOV @R13+,R0
12695 ENDCODE
12696
12697 CODE LCD_WRC
12698     BIS.B #2,&$243
12699 BW1 SUB #2,R15
12700     MOV R14,0(R15)
12701     RRUM #4,R14
12702     BIC.B #1,&$243
12703     BIS.B #$0F,&$224
12704 COLON
12705     TOP_LCD 2 20_US
12706     TOP_LCD 2 20_US 
12707 ;
12708
12709 CODE LCD_WRF
12710     BIC.B #2,&$243
12711     GOTO BW1
12712 ENDCODE
12713
12714 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12715 : LCD_HOME $02 LCD_WRF 100 20_us ;
12716
12717
12718
12719 ASM WDT_INT
12720 ADD #2,R1
12721 BIT.B #$20,&$240
12722 0= IF
12723     CMP #19,&$3D6
12724     U< IF
12725         ADD #1,&$3D6
12726     THEN
12727 ELSE
12728     BIT.B #$40,&$240
12729     0= IF
12730         CMP #3,&$3D6
12731         U>= IF
12732            SUB #1,&$3D6
12733         THEN
12734     THEN
12735 THEN
12736 BW1
12737 MOV @R1+,R0
12738 ENDASM
12739
12740 ASM RC5_INT
12741 ADD #2,R1
12742 $1806 @ 16000 = [IF]
12743     MOV #1,&$3A0
12744 [THEN]
12745 $1806 @ 24000 = [IF]
12746     MOV #2,&$3A0
12747 [THEN]
12748 MOV #1778,R9
12749 MOV #14,R10
12750 BEGIN
12751 MOV #%1011100100,&$380
12752     RRUM    #1,R9
12753     MOV     R9,R8
12754     RRUM    #1,R8
12755     ADD     R9,R8
12756     BEGIN   CMP R8,&$390
12757     U>= UNTIL
12758     BIT.B   #4,&$200
12759     ADDC    R11,R11
12760     MOV.B   &$200,&$208
12761     BIC.B   #4,&$20C
12762     SUB     #1,R10
12763 0<> WHILE
12764     ADD R9,R8
12765     BEGIN
12766         MOV &$390,R9
12767         CMP R8,R9
12768         U>= IF
12769         BIC #$30,&$380
12770         GOTO BW1
12771         THEN
12772         BIT.B #4,&$20C
12773     0<> UNTIL
12774 REPEAT
12775 BIC #$30,&$380
12776 RLAM    #1,R11
12777 MOV.B   R11,R9
12778 RRUM    #2,R9
12779 BIT     #$4000,R11
12780 0= IF   BIS #$40,R9
12781 THEN
12782 RRUM    #3,R11
12783 XOR     @R1,R11
12784 BIT     #$400,R11
12785 0= ?GOTO BW1
12786 XOR #$400,0(R1)
12787 SUB #8,R15
12788 MOV R14,6(R15)
12789 MOV &$1DDC,4(R15)
12790 MOV #$10,&$1DDC
12791 MOV R9,0(R15)
12792 MOV #0,R14
12793 LO2HI
12794     LCD_CLEAR
12795     <# # #S #36 HOLD #>
12796     ['] LCD_WRC IS EMIT
12797     TYPE
12798     ['] EMIT >BODY IS EMIT
12799 HI2LO
12800 MOV @R15+,&$1DDC
12801 MOV @R15+,R14
12802 MOV @R1+,R0
12803 ENDASM
12804
12805 ASM BACKGROUND
12806 BEGIN
12807     CALL &$1814
12808     BIS &$180A,R2
12809 AGAIN
12810 ENDASM
12811
12812 CODE STOP
12813 BW1 MOV #SLEEP,R9
12814     ADD #4,R9
12815     MOV R9,-2(R9)
12816 COLON
12817 ['] WARM >BODY IS WARM
12818 ECHO
12819 ." RC5toLCD is removed. type START to restart"
12820 COLD
12821 ;
12822
12823 CODE APP_INIT
12824 MOV #%1011010100,&$3C0
12825 $1806 @ 16000 = [IF]
12826     MOV #1,&$3E0
12827 [THEN]
12828 $1806 @ 24000 = [IF]
12829     MOV #2,&$3E0
12830 [THEN]
12831     MOV #19,&$3D2
12832     MOV #%01100000,&$3C6
12833     MOV #10,&$3D6
12834     BIS.B #$20,&$204
12835     BIS.B #$20,&$20A
12836     BIS.B #7,&$245
12837     BIC.B #7,&$247
12838     BIS.B #$0F,&$224
12839     BIC.B #$0F,&$226
12840     BIS.B #4,&$20A
12841     BIC.B #4,&$20C
12842     MOV #RC5_INT,&$FFDE
12843     MOV #%0100010100,&$340
12844     MOV ##3276,&$352
12845     MOV #%10000,&$342
12846     MOV #WDT_INT,&$FFEA
12847 BIC #1,&$130
12848 BIS.B #3,&$20D
12849 MOV &$1808,R8
12850 CMP #4,R8
12851 0= ?GOTO BW1
12852 COLON
12853     #1000 20_US
12854     %011 TOP_LCD
12855     #205 20_US
12856     %011 TOP_LCD
12857     #5 20_US
12858     %011 TOP_LCD
12859     #2 20_US
12860     %010 TOP_LCD
12861     #2 20_US
12862     %00101000 LCD_WRF
12863     %1000 LCD_WRF
12864     LCD_CLEAR
12865     %0110 LCD_WRF
12866     %1100 LCD_WRF
12867     LCD_CLEAR
12868     ['] LCD_HOME IS CR
12869     ['] LCD_WRC  IS EMIT
12870     CR ." I love you"
12871     ['] CR >BODY IS CR
12872     ['] EMIT >BODY IS EMIT
12873     ." RC5toLCD is running. Type STOP to quit"
12874     ABORT
12875 ;
12876
12877 CODE START
12878 MOV #SLEEP,R9
12879 MOV #BACKGROUND,2(R9)
12880 MOV #WARM,R9
12881 MOV #APP_INIT,2(R9)
12882 MOV R9,R0
12883 ENDCODE 
12884
12885 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
12886
12887 MARKER {RC5TOLCD}
12888
12889 CODE 20_US
12890 BEGIN
12891     BEGIN
12892         BIT #1,&$3C0
12893     0<> UNTIL
12894     BIC #1,&$3C0
12895     SUB #1,R14
12896 U< UNTIL
12897 MOV @R15+,R14
12898 MOV @R13+,R0
12899 ENDCODE
12900
12901 CODE TOP_LCD
12902     BIS.B #4,&$243
12903     BIT.B #1,&$241
12904 0= IF
12905     AND.B #$0F,R14
12906     MOV.B R14,&$222
12907     BIC.B #4,&$243
12908     MOV @R15+,R14
12909     MOV @R13+,R0
12910 THEN
12911     SUB #2,R15
12912     MOV R14,0(R15)
12913     BIC.B #4,&$243
12914     MOV.B &$220,R14
12915     AND.B #$0F,R14
12916     MOV @R13+,R0
12917 ENDCODE
12918
12919 CODE LCD_WRC
12920     BIS.B #2,&$243
12921 BW1 SUB #2,R15
12922     MOV R14,0(R15)
12923     RRUM #4,R14
12924     BIC.B #1,&$243
12925     BIS.B #$0F,&$224
12926 COLON
12927     TOP_LCD 2 20_US
12928     TOP_LCD 2 20_US 
12929 ;
12930
12931 CODE LCD_WRF
12932     BIC.B #2,&$243
12933     GOTO BW1
12934 ENDCODE
12935
12936 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
12937 : LCD_HOME $02 LCD_WRF 100 20_us ;
12938
12939
12940
12941 ASM WDT_INT
12942 ADD #2,R1
12943 BIT.B #$20,&$240
12944 0= IF
12945     CMP #19,&$3D6
12946     U< IF
12947         ADD #1,&$3D6
12948     THEN
12949 ELSE
12950     BIT.B #$40,&$240
12951     0= IF
12952         CMP #3,&$3D6
12953         U>= IF
12954            SUB #1,&$3D6
12955         THEN
12956     THEN
12957 THEN
12958 BW1
12959 MOV @R1+,R0
12960 ENDASM
12961
12962 ASM RC5_INT
12963 ADD #2,R1
12964 $1806 @ 16000 = [IF]
12965     MOV #1,&$3A0
12966 [THEN]
12967 $1806 @ 24000 = [IF]
12968     MOV #2,&$3A0
12969 [THEN]
12970 MOV #1778,R9
12971 MOV #14,R10
12972 BEGIN
12973 MOV #%1011100100,&$380
12974     RRUM    #1,R9
12975     MOV     R9,R8
12976     RRUM    #1,R8
12977     ADD     R9,R8
12978     BEGIN   CMP R8,&$390
12979     U>= UNTIL
12980     BIT.B   #4,&$200
12981     ADDC    R11,R11
12982     MOV.B   &$200,&$208
12983     BIC.B   #4,&$20C
12984     SUB     #1,R10
12985 0<> WHILE
12986     ADD R9,R8
12987     BEGIN
12988         MOV &$390,R9
12989         CMP R8,R9
12990         U>= IF
12991         BIC #$30,&$380
12992         GOTO BW1
12993         THEN
12994         BIT.B #4,&$20C
12995     0<> UNTIL
12996 REPEAT
12997 BIC #$30,&$380
12998 RLAM    #1,R11
12999 MOV.B   R11,R9
13000 RRUM    #2,R9
13001 BIT     #$4000,R11
13002 0= IF   BIS #$40,R9
13003 THEN
13004 RRUM    #3,R11
13005 XOR     @R1,R11
13006 BIT     #$400,R11
13007 0= ?GOTO BW1
13008 XOR #$400,0(R1)
13009 SUB #8,R15
13010 MOV R14,6(R15)
13011 MOV &$1DDC,4(R15)
13012 MOV #$10,&$1DDC
13013 MOV R9,0(R15)
13014 MOV #0,R14
13015 LO2HI
13016     LCD_CLEAR
13017     <# # #S #36 HOLD #>
13018     ['] LCD_WRC IS EMIT
13019     TYPE
13020     ['] EMIT >BODY IS EMIT
13021 HI2LO
13022 MOV @R15+,&$1DDC
13023 MOV @R15+,R14
13024 MOV @R1+,R0
13025 ENDASM
13026
13027 ASM BACKGROUND
13028 BEGIN
13029     CALL &$1814
13030     BIS &$180A,R2
13031 AGAIN
13032 ENDASM
13033
13034 CODE STOP
13035 BW1 MOV #SLEEP,R9
13036     ADD #4,R9
13037     MOV R9,-2(R9)
13038 COLON
13039 ['] WARM >BODY IS WARM
13040 ECHO
13041 ." RC5toLCD is removed. type START to restart"
13042 COLD
13043 ;
13044
13045 CODE APP_INIT
13046 MOV #%1011010100,&$3C0
13047 $1806 @ 16000 = [IF]
13048     MOV #1,&$3E0
13049 [THEN]
13050 $1806 @ 24000 = [IF]
13051     MOV #2,&$3E0
13052 [THEN]
13053     MOV #19,&$3D2
13054     MOV #%01100000,&$3C6
13055     MOV #10,&$3D6
13056     BIS.B #$20,&$204
13057     BIS.B #$20,&$20A
13058     BIS.B #7,&$245
13059     BIC.B #7,&$247
13060     BIS.B #$0F,&$224
13061     BIC.B #$0F,&$226
13062     BIS.B #4,&$20A
13063     BIC.B #4,&$20C
13064     MOV #RC5_INT,&$FFDE
13065     MOV #%0100010100,&$340
13066     MOV ##3276,&$352
13067     MOV #%10000,&$342
13068     MOV #WDT_INT,&$FFEA
13069 BIC #1,&$130
13070 BIS.B #3,&$20D
13071 MOV &$1808,R8
13072 CMP #4,R8
13073 0= ?GOTO BW1
13074 COLON
13075     #1000 20_US
13076     %011 TOP_LCD
13077     #205 20_US
13078     %011 TOP_LCD
13079     #5 20_US
13080     %011 TOP_LCD
13081     #2 20_US
13082     %010 TOP_LCD
13083     #2 20_US
13084     %00101000 LCD_WRF
13085     %1000 LCD_WRF
13086     LCD_CLEAR
13087     %0110 LCD_WRF
13088     %1100 LCD_WRF
13089     LCD_CLEAR
13090     ['] LCD_HOME IS CR
13091     ['] LCD_WRC  IS EMIT
13092     CR ." I love you"
13093     ['] CR >BODY IS CR
13094     ['] EMIT >BODY IS EMIT
13095     ." RC5toLCD is running. Type STOP to quit"
13096     ABORT
13097 ;
13098
13099 CODE START
13100 MOV #SLEEP,R9
13101 MOV #BACKGROUND,2(R9)
13102 MOV #WARM,R9
13103 MOV #APP_INIT,2(R9)
13104 MOV R9,R0
13105 ENDCODE 
13106
13107 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13108
13109 MARKER {RC5TOLCD}
13110
13111 CODE 20_US
13112 BEGIN
13113     BEGIN
13114         BIT #1,&$3C0
13115     0<> UNTIL
13116     BIC #1,&$3C0
13117     SUB #1,R14
13118 U< UNTIL
13119 MOV @R15+,R14
13120 MOV @R13+,R0
13121 ENDCODE
13122
13123 CODE TOP_LCD
13124     BIS.B #4,&$243
13125     BIT.B #1,&$241
13126 0= IF
13127     AND.B #$0F,R14
13128     MOV.B R14,&$222
13129     BIC.B #4,&$243
13130     MOV @R15+,R14
13131     MOV @R13+,R0
13132 THEN
13133     SUB #2,R15
13134     MOV R14,0(R15)
13135     BIC.B #4,&$243
13136     MOV.B &$220,R14
13137     AND.B #$0F,R14
13138     MOV @R13+,R0
13139 ENDCODE
13140
13141 CODE LCD_WRC
13142     BIS.B #2,&$243
13143 BW1 SUB #2,R15
13144     MOV R14,0(R15)
13145     RRUM #4,R14
13146     BIC.B #1,&$243
13147     BIS.B #$0F,&$224
13148 COLON
13149     TOP_LCD 2 20_US
13150     TOP_LCD 2 20_US 
13151 ;
13152
13153 CODE LCD_WRF
13154     BIC.B #2,&$243
13155     GOTO BW1
13156 ENDCODE
13157
13158 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
13159 : LCD_HOME $02 LCD_WRF 100 20_us ;
13160
13161
13162
13163 ASM WDT_INT
13164 ADD #2,R1
13165 BIT.B #$20,&$240
13166 0= IF
13167     CMP #19,&$3D6
13168     U< IF
13169         ADD #1,&$3D6
13170     THEN
13171 ELSE
13172     BIT.B #$40,&$240
13173     0= IF
13174         CMP #3,&$3D6
13175         U>= IF
13176            SUB #1,&$3D6
13177         THEN
13178     THEN
13179 THEN
13180 BW1
13181 MOV @R1+,R0
13182 ENDASM
13183
13184 ASM RC5_INT
13185 ADD #2,R1
13186 $1806 @ 16000 = [IF]
13187     MOV #1,&$3A0
13188 [THEN]
13189 $1806 @ 24000 = [IF]
13190     MOV #2,&$3A0
13191 [THEN]
13192 MOV #1778,R9
13193 MOV #14,R10
13194 BEGIN
13195 MOV #%1011100100,&$380
13196     RRUM    #1,R9
13197     MOV     R9,R8
13198     RRUM    #1,R8
13199     ADD     R9,R8
13200     BEGIN   CMP R8,&$390
13201     U>= UNTIL
13202     BIT.B   #4,&$200
13203     ADDC    R11,R11
13204     MOV.B   &$200,&$208
13205     BIC.B   #4,&$20C
13206     SUB     #1,R10
13207 0<> WHILE
13208     ADD R9,R8
13209     BEGIN
13210         MOV &$390,R9
13211         CMP R8,R9
13212         U>= IF
13213         BIC #$30,&$380
13214         GOTO BW1
13215         THEN
13216         BIT.B #4,&$20C
13217     0<> UNTIL
13218 REPEAT
13219 BIC #$30,&$380
13220 RLAM    #1,R11
13221 MOV.B   R11,R9
13222 RRUM    #2,R9
13223 BIT     #$4000,R11
13224 0= IF   BIS #$40,R9
13225 THEN
13226 RRUM    #3,R11
13227 XOR     @R1,R11
13228 BIT     #$400,R11
13229 0= ?GOTO BW1
13230 XOR #$400,0(R1)
13231 SUB #8,R15
13232 MOV R14,6(R15)
13233 MOV &$1DDC,4(R15)
13234 MOV #$10,&$1DDC
13235 MOV R9,0(R15)
13236 MOV #0,R14
13237 LO2HI
13238     LCD_CLEAR
13239     <# # #S #36 HOLD #>
13240     ['] LCD_WRC IS EMIT
13241     TYPE
13242     ['] EMIT >BODY IS EMIT
13243 HI2LO
13244 MOV @R15+,&$1DDC
13245 MOV @R15+,R14
13246 MOV @R1+,R0
13247 ENDASM
13248
13249 ASM BACKGROUND
13250 BEGIN
13251     CALL &$1814
13252     BIS &$180A,R2
13253 AGAIN
13254 ENDASM
13255
13256 CODE STOP
13257 BW1 MOV #SLEEP,R9
13258     ADD #4,R9
13259     MOV R9,-2(R9)
13260 COLON
13261 ['] WARM >BODY IS WARM
13262 ECHO
13263 ." RC5toLCD is removed. type START to restart"
13264 COLD
13265 ;
13266
13267 CODE APP_INIT
13268 MOV #%1011010100,&$3C0
13269 $1806 @ 16000 = [IF]
13270     MOV #1,&$3E0
13271 [THEN]
13272 $1806 @ 24000 = [IF]
13273     MOV #2,&$3E0
13274 [THEN]
13275     MOV #19,&$3D2
13276     MOV #%01100000,&$3C6
13277     MOV #10,&$3D6
13278     BIS.B #$20,&$204
13279     BIS.B #$20,&$20A
13280     BIS.B #7,&$245
13281     BIC.B #7,&$247
13282     BIS.B #$0F,&$224
13283     BIC.B #$0F,&$226
13284     BIS.B #4,&$20A
13285     BIC.B #4,&$20C
13286     MOV #RC5_INT,&$FFDE
13287     MOV #%0100010100,&$340
13288     MOV ##3276,&$352
13289     MOV #%10000,&$342
13290     MOV #WDT_INT,&$FFEA
13291 BIC #1,&$130
13292 BIS.B #3,&$20D
13293 MOV &$1808,R8
13294 CMP #4,R8
13295 0= ?GOTO BW1
13296 COLON
13297     #1000 20_US
13298     %011 TOP_LCD
13299     #205 20_US
13300     %011 TOP_LCD
13301     #5 20_US
13302     %011 TOP_LCD
13303     #2 20_US
13304     %010 TOP_LCD
13305     #2 20_US
13306     %00101000 LCD_WRF
13307     %1000 LCD_WRF
13308     LCD_CLEAR
13309     %0110 LCD_WRF
13310     %1100 LCD_WRF
13311     LCD_CLEAR
13312     ['] LCD_HOME IS CR
13313     ['] LCD_WRC  IS EMIT
13314     CR ." I love you"
13315     ['] CR >BODY IS CR
13316     ['] EMIT >BODY IS EMIT
13317     ." RC5toLCD is running. Type STOP to quit"
13318     ABORT
13319 ;
13320
13321 CODE START
13322 MOV #SLEEP,R9
13323 MOV #BACKGROUND,2(R9)
13324 MOV #WARM,R9
13325 MOV #APP_INIT,2(R9)
13326 MOV R9,R0
13327 ENDCODE 
13328
13329 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13330
13331 MARKER {RC5TOLCD}
13332
13333 CODE 20_US
13334 BEGIN
13335     BEGIN
13336         BIT #1,&$3C0
13337     0<> UNTIL
13338     BIC #1,&$3C0
13339     SUB #1,R14
13340 U< UNTIL
13341 MOV @R15+,R14
13342 MOV @R13+,R0
13343 ENDCODE
13344
13345 CODE TOP_LCD
13346     BIS.B #4,&$243
13347     BIT.B #1,&$241
13348 0= IF
13349     AND.B #$0F,R14
13350     MOV.B R14,&$222
13351     BIC.B #4,&$243
13352     MOV @R15+,R14
13353     MOV @R13+,R0
13354 THEN
13355     SUB #2,R15
13356     MOV R14,0(R15)
13357     BIC.B #4,&$243
13358     MOV.B &$220,R14
13359     AND.B #$0F,R14
13360     MOV @R13+,R0
13361 ENDCODE
13362
13363 CODE LCD_WRC
13364     BIS.B #2,&$243
13365 BW1 SUB #2,R15
13366     MOV R14,0(R15)
13367     RRUM #4,R14
13368     BIC.B #1,&$243
13369     BIS.B #$0F,&$224
13370 COLON
13371     TOP_LCD 2 20_US
13372     TOP_LCD 2 20_US 
13373 ;
13374
13375 CODE LCD_WRF
13376     BIC.B #2,&$243
13377     GOTO BW1
13378 ENDCODE
13379
13380 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
13381 : LCD_HOME $02 LCD_WRF 100 20_us ;
13382
13383
13384
13385 ASM WDT_INT
13386 ADD #2,R1
13387 BIT.B #$20,&$240
13388 0= IF
13389     CMP #19,&$3D6
13390     U< IF
13391         ADD #1,&$3D6
13392     THEN
13393 ELSE
13394     BIT.B #$40,&$240
13395     0= IF
13396         CMP #3,&$3D6
13397         U>= IF
13398            SUB #1,&$3D6
13399         THEN
13400     THEN
13401 THEN
13402 BW1
13403 MOV @R1+,R0
13404 ENDASM
13405
13406 ASM RC5_INT
13407 ADD #2,R1
13408 $1806 @ 16000 = [IF]
13409     MOV #1,&$3A0
13410 [THEN]
13411 $1806 @ 24000 = [IF]
13412     MOV #2,&$3A0
13413 [THEN]
13414 MOV #1778,R9
13415 MOV #14,R10
13416 BEGIN
13417 MOV #%1011100100,&$380
13418     RRUM    #1,R9
13419     MOV     R9,R8
13420     RRUM    #1,R8
13421     ADD     R9,R8
13422     BEGIN   CMP R8,&$390
13423     U>= UNTIL
13424     BIT.B   #4,&$200
13425     ADDC    R11,R11
13426     MOV.B   &$200,&$208
13427     BIC.B   #4,&$20C
13428     SUB     #1,R10
13429 0<> WHILE
13430     ADD R9,R8
13431     BEGIN
13432         MOV &$390,R9
13433         CMP R8,R9
13434         U>= IF
13435         BIC #$30,&$380
13436         GOTO BW1
13437         THEN
13438         BIT.B #4,&$20C
13439     0<> UNTIL
13440 REPEAT
13441 BIC #$30,&$380
13442 RLAM    #1,R11
13443 MOV.B   R11,R9
13444 RRUM    #2,R9
13445 BIT     #$4000,R11
13446 0= IF   BIS #$40,R9
13447 THEN
13448 RRUM    #3,R11
13449 XOR     @R1,R11
13450 BIT     #$400,R11
13451 0= ?GOTO BW1
13452 XOR #$400,0(R1)
13453 SUB #8,R15
13454 MOV R14,6(R15)
13455 MOV &$1DDC,4(R15)
13456 MOV #$10,&$1DDC
13457 MOV R9,0(R15)
13458 MOV #0,R14
13459 LO2HI
13460     LCD_CLEAR
13461     <# # #S #36 HOLD #>
13462     ['] LCD_WRC IS EMIT
13463     TYPE
13464     ['] EMIT >BODY IS EMIT
13465 HI2LO
13466 MOV @R15+,&$1DDC
13467 MOV @R15+,R14
13468 MOV @R1+,R0
13469 ENDASM
13470
13471 ASM BACKGROUND
13472 BEGIN
13473     CALL &$1814
13474     BIS &$180A,R2
13475 AGAIN
13476 ENDASM
13477
13478 CODE STOP
13479 BW1 MOV #SLEEP,R9
13480     ADD #4,R9
13481     MOV R9,-2(R9)
13482 COLON
13483 ['] WARM >BODY IS WARM
13484 ECHO
13485 ." RC5toLCD is removed. type START to restart"
13486 COLD
13487 ;
13488
13489 CODE APP_INIT
13490 MOV #%1011010100,&$3C0
13491 $1806 @ 16000 = [IF]
13492     MOV #1,&$3E0
13493 [THEN]
13494 $1806 @ 24000 = [IF]
13495     MOV #2,&$3E0
13496 [THEN]
13497     MOV #19,&$3D2
13498     MOV #%01100000,&$3C6
13499     MOV #10,&$3D6
13500     BIS.B #$20,&$204
13501     BIS.B #$20,&$20A
13502     BIS.B #7,&$245
13503     BIC.B #7,&$247
13504     BIS.B #$0F,&$224
13505     BIC.B #$0F,&$226
13506     BIS.B #4,&$20A
13507     BIC.B #4,&$20C
13508     MOV #RC5_INT,&$FFDE
13509     MOV #%0100010100,&$340
13510     MOV ##3276,&$352
13511     MOV #%10000,&$342
13512     MOV #WDT_INT,&$FFEA
13513 BIC #1,&$130
13514 BIS.B #3,&$20D
13515 MOV &$1808,R8
13516 CMP #4,R8
13517 0= ?GOTO BW1
13518 COLON
13519     #1000 20_US
13520     %011 TOP_LCD
13521     #205 20_US
13522     %011 TOP_LCD
13523     #5 20_US
13524     %011 TOP_LCD
13525     #2 20_US
13526     %010 TOP_LCD
13527     #2 20_US
13528     %00101000 LCD_WRF
13529     %1000 LCD_WRF
13530     LCD_CLEAR
13531     %0110 LCD_WRF
13532     %1100 LCD_WRF
13533     LCD_CLEAR
13534     ['] LCD_HOME IS CR
13535     ['] LCD_WRC  IS EMIT
13536     CR ." I love you"
13537     ['] CR >BODY IS CR
13538     ['] EMIT >BODY IS EMIT
13539     ." RC5toLCD is running. Type STOP to quit"
13540     ABORT
13541 ;
13542
13543 CODE START
13544 MOV #SLEEP,R9
13545 MOV #BACKGROUND,2(R9)
13546 MOV #WARM,R9
13547 MOV #APP_INIT,2(R9)
13548 MOV R9,R0
13549 ENDCODE 
13550
13551 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13552
13553 MARKER {RC5TOLCD}
13554
13555 CODE 20_US
13556 BEGIN
13557     BEGIN
13558         BIT #1,&$3C0
13559     0<> UNTIL
13560     BIC #1,&$3C0
13561     SUB #1,R14
13562 U< UNTIL
13563 MOV @R15+,R14
13564 MOV @R13+,R0
13565 ENDCODE
13566
13567 CODE TOP_LCD
13568     BIS.B #4,&$243
13569     BIT.B #1,&$241
13570 0= IF
13571     AND.B #$0F,R14
13572     MOV.B R14,&$222
13573     BIC.B #4,&$243
13574     MOV @R15+,R14
13575     MOV @R13+,R0
13576 THEN
13577     SUB #2,R15
13578     MOV R14,0(R15)
13579     BIC.B #4,&$243
13580     MOV.B &$220,R14
13581     AND.B #$0F,R14
13582     MOV @R13+,R0
13583 ENDCODE
13584
13585 CODE LCD_WRC
13586     BIS.B #2,&$243
13587 BW1 SUB #2,R15
13588     MOV R14,0(R15)
13589     RRUM #4,R14
13590     BIC.B #1,&$243
13591     BIS.B #$0F,&$224
13592 COLON
13593     TOP_LCD 2 20_US
13594     TOP_LCD 2 20_US 
13595 ;
13596
13597 CODE LCD_WRF
13598     BIC.B #2,&$243
13599     GOTO BW1
13600 ENDCODE
13601
13602 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
13603 : LCD_HOME $02 LCD_WRF 100 20_us ;
13604
13605
13606
13607 ASM WDT_INT
13608 ADD #2,R1
13609 BIT.B #$20,&$240
13610 0= IF
13611     CMP #19,&$3D6
13612     U< IF
13613         ADD #1,&$3D6
13614     THEN
13615 ELSE
13616     BIT.B #$40,&$240
13617     0= IF
13618         CMP #3,&$3D6
13619         U>= IF
13620            SUB #1,&$3D6
13621         THEN
13622     THEN
13623 THEN
13624 BW1
13625 MOV @R1+,R0
13626 ENDASM
13627
13628 ASM RC5_INT
13629 ADD #2,R1
13630 $1806 @ 16000 = [IF]
13631     MOV #1,&$3A0
13632 [THEN]
13633 $1806 @ 24000 = [IF]
13634     MOV #2,&$3A0
13635 [THEN]
13636 MOV #1778,R9
13637 MOV #14,R10
13638 BEGIN
13639 MOV #%1011100100,&$380
13640     RRUM    #1,R9
13641     MOV     R9,R8
13642     RRUM    #1,R8
13643     ADD     R9,R8
13644     BEGIN   CMP R8,&$390
13645     U>= UNTIL
13646     BIT.B   #4,&$200
13647     ADDC    R11,R11
13648     MOV.B   &$200,&$208
13649     BIC.B   #4,&$20C
13650     SUB     #1,R10
13651 0<> WHILE
13652     ADD R9,R8
13653     BEGIN
13654         MOV &$390,R9
13655         CMP R8,R9
13656         U>= IF
13657         BIC #$30,&$380
13658         GOTO BW1
13659         THEN
13660         BIT.B #4,&$20C
13661     0<> UNTIL
13662 REPEAT
13663 BIC #$30,&$380
13664 RLAM    #1,R11
13665 MOV.B   R11,R9
13666 RRUM    #2,R9
13667 BIT     #$4000,R11
13668 0= IF   BIS #$40,R9
13669 THEN
13670 RRUM    #3,R11
13671 XOR     @R1,R11
13672 BIT     #$400,R11
13673 0= ?GOTO BW1
13674 XOR #$400,0(R1)
13675 SUB #8,R15
13676 MOV R14,6(R15)
13677 MOV &$1DDC,4(R15)
13678 MOV #$10,&$1DDC
13679 MOV R9,0(R15)
13680 MOV #0,R14
13681 LO2HI
13682     LCD_CLEAR
13683     <# # #S #36 HOLD #>
13684     ['] LCD_WRC IS EMIT
13685     TYPE
13686     ['] EMIT >BODY IS EMIT
13687 HI2LO
13688 MOV @R15+,&$1DDC
13689 MOV @R15+,R14
13690 MOV @R1+,R0
13691 ENDASM
13692
13693 ASM BACKGROUND
13694 BEGIN
13695     CALL &$1814
13696     BIS &$180A,R2
13697 AGAIN
13698 ENDASM
13699
13700 CODE STOP
13701 BW1 MOV #SLEEP,R9
13702     ADD #4,R9
13703     MOV R9,-2(R9)
13704 COLON
13705 ['] WARM >BODY IS WARM
13706 ECHO
13707 ." RC5toLCD is removed. type START to restart"
13708 COLD
13709 ;
13710
13711 CODE APP_INIT
13712 MOV #%1011010100,&$3C0
13713 $1806 @ 16000 = [IF]
13714     MOV #1,&$3E0
13715 [THEN]
13716 $1806 @ 24000 = [IF]
13717     MOV #2,&$3E0
13718 [THEN]
13719     MOV #19,&$3D2
13720     MOV #%01100000,&$3C6
13721     MOV #10,&$3D6
13722     BIS.B #$20,&$204
13723     BIS.B #$20,&$20A
13724     BIS.B #7,&$245
13725     BIC.B #7,&$247
13726     BIS.B #$0F,&$224
13727     BIC.B #$0F,&$226
13728     BIS.B #4,&$20A
13729     BIC.B #4,&$20C
13730     MOV #RC5_INT,&$FFDE
13731     MOV #%0100010100,&$340
13732     MOV ##3276,&$352
13733     MOV #%10000,&$342
13734     MOV #WDT_INT,&$FFEA
13735 BIC #1,&$130
13736 BIS.B #3,&$20D
13737 MOV &$1808,R8
13738 CMP #4,R8
13739 0= ?GOTO BW1
13740 COLON
13741     #1000 20_US
13742     %011 TOP_LCD
13743     #205 20_US
13744     %011 TOP_LCD
13745     #5 20_US
13746     %011 TOP_LCD
13747     #2 20_US
13748     %010 TOP_LCD
13749     #2 20_US
13750     %00101000 LCD_WRF
13751     %1000 LCD_WRF
13752     LCD_CLEAR
13753     %0110 LCD_WRF
13754     %1100 LCD_WRF
13755     LCD_CLEAR
13756     ['] LCD_HOME IS CR
13757     ['] LCD_WRC  IS EMIT
13758     CR ." I love you"
13759     ['] CR >BODY IS CR
13760     ['] EMIT >BODY IS EMIT
13761     ." RC5toLCD is running. Type STOP to quit"
13762     ABORT
13763 ;
13764
13765 CODE START
13766 MOV #SLEEP,R9
13767 MOV #BACKGROUND,2(R9)
13768 MOV #WARM,R9
13769 MOV #APP_INIT,2(R9)
13770 MOV R9,R0
13771 ENDCODE 
13772
13773 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13774
13775 MARKER {RC5TOLCD}
13776
13777 CODE 20_US
13778 BEGIN
13779     BEGIN
13780         BIT #1,&$3C0
13781     0<> UNTIL
13782     BIC #1,&$3C0
13783     SUB #1,R14
13784 U< UNTIL
13785 MOV @R15+,R14
13786 MOV @R13+,R0
13787 ENDCODE
13788
13789 CODE TOP_LCD
13790     BIS.B #4,&$243
13791     BIT.B #1,&$241
13792 0= IF
13793     AND.B #$0F,R14
13794     MOV.B R14,&$222
13795     BIC.B #4,&$243
13796     MOV @R15+,R14
13797     MOV @R13+,R0
13798 THEN
13799     SUB #2,R15
13800     MOV R14,0(R15)
13801     BIC.B #4,&$243
13802     MOV.B &$220,R14
13803     AND.B #$0F,R14
13804     MOV @R13+,R0
13805 ENDCODE
13806
13807 CODE LCD_WRC
13808     BIS.B #2,&$243
13809 BW1 SUB #2,R15
13810     MOV R14,0(R15)
13811     RRUM #4,R14
13812     BIC.B #1,&$243
13813     BIS.B #$0F,&$224
13814 COLON
13815     TOP_LCD 2 20_US
13816     TOP_LCD 2 20_US 
13817 ;
13818
13819 CODE LCD_WRF
13820     BIC.B #2,&$243
13821     GOTO BW1
13822 ENDCODE
13823
13824 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
13825 : LCD_HOME $02 LCD_WRF 100 20_us ;
13826
13827
13828
13829 ASM WDT_INT
13830 ADD #2,R1
13831 BIT.B #$20,&$240
13832 0= IF
13833     CMP #19,&$3D6
13834     U< IF
13835         ADD #1,&$3D6
13836     THEN
13837 ELSE
13838     BIT.B #$40,&$240
13839     0= IF
13840         CMP #3,&$3D6
13841         U>= IF
13842            SUB #1,&$3D6
13843         THEN
13844     THEN
13845 THEN
13846 BW1
13847 MOV @R1+,R0
13848 ENDASM
13849
13850 ASM RC5_INT
13851 ADD #2,R1
13852 $1806 @ 16000 = [IF]
13853     MOV #1,&$3A0
13854 [THEN]
13855 $1806 @ 24000 = [IF]
13856     MOV #2,&$3A0
13857 [THEN]
13858 MOV #1778,R9
13859 MOV #14,R10
13860 BEGIN
13861 MOV #%1011100100,&$380
13862     RRUM    #1,R9
13863     MOV     R9,R8
13864     RRUM    #1,R8
13865     ADD     R9,R8
13866     BEGIN   CMP R8,&$390
13867     U>= UNTIL
13868     BIT.B   #4,&$200
13869     ADDC    R11,R11
13870     MOV.B   &$200,&$208
13871     BIC.B   #4,&$20C
13872     SUB     #1,R10
13873 0<> WHILE
13874     ADD R9,R8
13875     BEGIN
13876         MOV &$390,R9
13877         CMP R8,R9
13878         U>= IF
13879         BIC #$30,&$380
13880         GOTO BW1
13881         THEN
13882         BIT.B #4,&$20C
13883     0<> UNTIL
13884 REPEAT
13885 BIC #$30,&$380
13886 RLAM    #1,R11
13887 MOV.B   R11,R9
13888 RRUM    #2,R9
13889 BIT     #$4000,R11
13890 0= IF   BIS #$40,R9
13891 THEN
13892 RRUM    #3,R11
13893 XOR     @R1,R11
13894 BIT     #$400,R11
13895 0= ?GOTO BW1
13896 XOR #$400,0(R1)
13897 SUB #8,R15
13898 MOV R14,6(R15)
13899 MOV &$1DDC,4(R15)
13900 MOV #$10,&$1DDC
13901 MOV R9,0(R15)
13902 MOV #0,R14
13903 LO2HI
13904     LCD_CLEAR
13905     <# # #S #36 HOLD #>
13906     ['] LCD_WRC IS EMIT
13907     TYPE
13908     ['] EMIT >BODY IS EMIT
13909 HI2LO
13910 MOV @R15+,&$1DDC
13911 MOV @R15+,R14
13912 MOV @R1+,R0
13913 ENDASM
13914
13915 ASM BACKGROUND
13916 BEGIN
13917     CALL &$1814
13918     BIS &$180A,R2
13919 AGAIN
13920 ENDASM
13921
13922 CODE STOP
13923 BW1 MOV #SLEEP,R9
13924     ADD #4,R9
13925     MOV R9,-2(R9)
13926 COLON
13927 ['] WARM >BODY IS WARM
13928 ECHO
13929 ." RC5toLCD is removed. type START to restart"
13930 COLD
13931 ;
13932
13933 CODE APP_INIT
13934 MOV #%1011010100,&$3C0
13935 $1806 @ 16000 = [IF]
13936     MOV #1,&$3E0
13937 [THEN]
13938 $1806 @ 24000 = [IF]
13939     MOV #2,&$3E0
13940 [THEN]
13941     MOV #19,&$3D2
13942     MOV #%01100000,&$3C6
13943     MOV #10,&$3D6
13944     BIS.B #$20,&$204
13945     BIS.B #$20,&$20A
13946     BIS.B #7,&$245
13947     BIC.B #7,&$247
13948     BIS.B #$0F,&$224
13949     BIC.B #$0F,&$226
13950     BIS.B #4,&$20A
13951     BIC.B #4,&$20C
13952     MOV #RC5_INT,&$FFDE
13953     MOV #%0100010100,&$340
13954     MOV ##3276,&$352
13955     MOV #%10000,&$342
13956     MOV #WDT_INT,&$FFEA
13957 BIC #1,&$130
13958 BIS.B #3,&$20D
13959 MOV &$1808,R8
13960 CMP #4,R8
13961 0= ?GOTO BW1
13962 COLON
13963     #1000 20_US
13964     %011 TOP_LCD
13965     #205 20_US
13966     %011 TOP_LCD
13967     #5 20_US
13968     %011 TOP_LCD
13969     #2 20_US
13970     %010 TOP_LCD
13971     #2 20_US
13972     %00101000 LCD_WRF
13973     %1000 LCD_WRF
13974     LCD_CLEAR
13975     %0110 LCD_WRF
13976     %1100 LCD_WRF
13977     LCD_CLEAR
13978     ['] LCD_HOME IS CR
13979     ['] LCD_WRC  IS EMIT
13980     CR ." I love you"
13981     ['] CR >BODY IS CR
13982     ['] EMIT >BODY IS EMIT
13983     ." RC5toLCD is running. Type STOP to quit"
13984     ABORT
13985 ;
13986
13987 CODE START
13988 MOV #SLEEP,R9
13989 MOV #BACKGROUND,2(R9)
13990 MOV #WARM,R9
13991 MOV #APP_INIT,2(R9)
13992 MOV R9,R0
13993 ENDCODE 
13994
13995 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
13996
13997 MARKER {RC5TOLCD}
13998
13999 CODE 20_US
14000 BEGIN
14001     BEGIN
14002         BIT #1,&$3C0
14003     0<> UNTIL
14004     BIC #1,&$3C0
14005     SUB #1,R14
14006 U< UNTIL
14007 MOV @R15+,R14
14008 MOV @R13+,R0
14009 ENDCODE
14010
14011 CODE TOP_LCD
14012     BIS.B #4,&$243
14013     BIT.B #1,&$241
14014 0= IF
14015     AND.B #$0F,R14
14016     MOV.B R14,&$222
14017     BIC.B #4,&$243
14018     MOV @R15+,R14
14019     MOV @R13+,R0
14020 THEN
14021     SUB #2,R15
14022     MOV R14,0(R15)
14023     BIC.B #4,&$243
14024     MOV.B &$220,R14
14025     AND.B #$0F,R14
14026     MOV @R13+,R0
14027 ENDCODE
14028
14029 CODE LCD_WRC
14030     BIS.B #2,&$243
14031 BW1 SUB #2,R15
14032     MOV R14,0(R15)
14033     RRUM #4,R14
14034     BIC.B #1,&$243
14035     BIS.B #$0F,&$224
14036 COLON
14037     TOP_LCD 2 20_US
14038     TOP_LCD 2 20_US 
14039 ;
14040
14041 CODE LCD_WRF
14042     BIC.B #2,&$243
14043     GOTO BW1
14044 ENDCODE
14045
14046 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14047 : LCD_HOME $02 LCD_WRF 100 20_us ;
14048
14049
14050
14051 ASM WDT_INT
14052 ADD #2,R1
14053 BIT.B #$20,&$240
14054 0= IF
14055     CMP #19,&$3D6
14056     U< IF
14057         ADD #1,&$3D6
14058     THEN
14059 ELSE
14060     BIT.B #$40,&$240
14061     0= IF
14062         CMP #3,&$3D6
14063         U>= IF
14064            SUB #1,&$3D6
14065         THEN
14066     THEN
14067 THEN
14068 BW1
14069 MOV @R1+,R0
14070 ENDASM
14071
14072 ASM RC5_INT
14073 ADD #2,R1
14074 $1806 @ 16000 = [IF]
14075     MOV #1,&$3A0
14076 [THEN]
14077 $1806 @ 24000 = [IF]
14078     MOV #2,&$3A0
14079 [THEN]
14080 MOV #1778,R9
14081 MOV #14,R10
14082 BEGIN
14083 MOV #%1011100100,&$380
14084     RRUM    #1,R9
14085     MOV     R9,R8
14086     RRUM    #1,R8
14087     ADD     R9,R8
14088     BEGIN   CMP R8,&$390
14089     U>= UNTIL
14090     BIT.B   #4,&$200
14091     ADDC    R11,R11
14092     MOV.B   &$200,&$208
14093     BIC.B   #4,&$20C
14094     SUB     #1,R10
14095 0<> WHILE
14096     ADD R9,R8
14097     BEGIN
14098         MOV &$390,R9
14099         CMP R8,R9
14100         U>= IF
14101         BIC #$30,&$380
14102         GOTO BW1
14103         THEN
14104         BIT.B #4,&$20C
14105     0<> UNTIL
14106 REPEAT
14107 BIC #$30,&$380
14108 RLAM    #1,R11
14109 MOV.B   R11,R9
14110 RRUM    #2,R9
14111 BIT     #$4000,R11
14112 0= IF   BIS #$40,R9
14113 THEN
14114 RRUM    #3,R11
14115 XOR     @R1,R11
14116 BIT     #$400,R11
14117 0= ?GOTO BW1
14118 XOR #$400,0(R1)
14119 SUB #8,R15
14120 MOV R14,6(R15)
14121 MOV &$1DDC,4(R15)
14122 MOV #$10,&$1DDC
14123 MOV R9,0(R15)
14124 MOV #0,R14
14125 LO2HI
14126     LCD_CLEAR
14127     <# # #S #36 HOLD #>
14128     ['] LCD_WRC IS EMIT
14129     TYPE
14130     ['] EMIT >BODY IS EMIT
14131 HI2LO
14132 MOV @R15+,&$1DDC
14133 MOV @R15+,R14
14134 MOV @R1+,R0
14135 ENDASM
14136
14137 ASM BACKGROUND
14138 BEGIN
14139     CALL &$1814
14140     BIS &$180A,R2
14141 AGAIN
14142 ENDASM
14143
14144 CODE STOP
14145 BW1 MOV #SLEEP,R9
14146     ADD #4,R9
14147     MOV R9,-2(R9)
14148 COLON
14149 ['] WARM >BODY IS WARM
14150 ECHO
14151 ." RC5toLCD is removed. type START to restart"
14152 COLD
14153 ;
14154
14155 CODE APP_INIT
14156 MOV #%1011010100,&$3C0
14157 $1806 @ 16000 = [IF]
14158     MOV #1,&$3E0
14159 [THEN]
14160 $1806 @ 24000 = [IF]
14161     MOV #2,&$3E0
14162 [THEN]
14163     MOV #19,&$3D2
14164     MOV #%01100000,&$3C6
14165     MOV #10,&$3D6
14166     BIS.B #$20,&$204
14167     BIS.B #$20,&$20A
14168     BIS.B #7,&$245
14169     BIC.B #7,&$247
14170     BIS.B #$0F,&$224
14171     BIC.B #$0F,&$226
14172     BIS.B #4,&$20A
14173     BIC.B #4,&$20C
14174     MOV #RC5_INT,&$FFDE
14175     MOV #%0100010100,&$340
14176     MOV ##3276,&$352
14177     MOV #%10000,&$342
14178     MOV #WDT_INT,&$FFEA
14179 BIC #1,&$130
14180 BIS.B #3,&$20D
14181 MOV &$1808,R8
14182 CMP #4,R8
14183 0= ?GOTO BW1
14184 COLON
14185     #1000 20_US
14186     %011 TOP_LCD
14187     #205 20_US
14188     %011 TOP_LCD
14189     #5 20_US
14190     %011 TOP_LCD
14191     #2 20_US
14192     %010 TOP_LCD
14193     #2 20_US
14194     %00101000 LCD_WRF
14195     %1000 LCD_WRF
14196     LCD_CLEAR
14197     %0110 LCD_WRF
14198     %1100 LCD_WRF
14199     LCD_CLEAR
14200     ['] LCD_HOME IS CR
14201     ['] LCD_WRC  IS EMIT
14202     CR ." I love you"
14203     ['] CR >BODY IS CR
14204     ['] EMIT >BODY IS EMIT
14205     ." RC5toLCD is running. Type STOP to quit"
14206     ABORT
14207 ;
14208
14209 CODE START
14210 MOV #SLEEP,R9
14211 MOV #BACKGROUND,2(R9)
14212 MOV #WARM,R9
14213 MOV #APP_INIT,2(R9)
14214 MOV R9,R0
14215 ENDCODE 
14216
14217 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14218
14219 MARKER {RC5TOLCD}
14220
14221 CODE 20_US
14222 BEGIN
14223     BEGIN
14224         BIT #1,&$3C0
14225     0<> UNTIL
14226     BIC #1,&$3C0
14227     SUB #1,R14
14228 U< UNTIL
14229 MOV @R15+,R14
14230 MOV @R13+,R0
14231 ENDCODE
14232
14233 CODE TOP_LCD
14234     BIS.B #4,&$243
14235     BIT.B #1,&$241
14236 0= IF
14237     AND.B #$0F,R14
14238     MOV.B R14,&$222
14239     BIC.B #4,&$243
14240     MOV @R15+,R14
14241     MOV @R13+,R0
14242 THEN
14243     SUB #2,R15
14244     MOV R14,0(R15)
14245     BIC.B #4,&$243
14246     MOV.B &$220,R14
14247     AND.B #$0F,R14
14248     MOV @R13+,R0
14249 ENDCODE
14250
14251 CODE LCD_WRC
14252     BIS.B #2,&$243
14253 BW1 SUB #2,R15
14254     MOV R14,0(R15)
14255     RRUM #4,R14
14256     BIC.B #1,&$243
14257     BIS.B #$0F,&$224
14258 COLON
14259     TOP_LCD 2 20_US
14260     TOP_LCD 2 20_US 
14261 ;
14262
14263 CODE LCD_WRF
14264     BIC.B #2,&$243
14265     GOTO BW1
14266 ENDCODE
14267
14268 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14269 : LCD_HOME $02 LCD_WRF 100 20_us ;
14270
14271
14272
14273 ASM WDT_INT
14274 ADD #2,R1
14275 BIT.B #$20,&$240
14276 0= IF
14277     CMP #19,&$3D6
14278     U< IF
14279         ADD #1,&$3D6
14280     THEN
14281 ELSE
14282     BIT.B #$40,&$240
14283     0= IF
14284         CMP #3,&$3D6
14285         U>= IF
14286            SUB #1,&$3D6
14287         THEN
14288     THEN
14289 THEN
14290 BW1
14291 MOV @R1+,R0
14292 ENDASM
14293
14294 ASM RC5_INT
14295 ADD #2,R1
14296 $1806 @ 16000 = [IF]
14297     MOV #1,&$3A0
14298 [THEN]
14299 $1806 @ 24000 = [IF]
14300     MOV #2,&$3A0
14301 [THEN]
14302 MOV #1778,R9
14303 MOV #14,R10
14304 BEGIN
14305 MOV #%1011100100,&$380
14306     RRUM    #1,R9
14307     MOV     R9,R8
14308     RRUM    #1,R8
14309     ADD     R9,R8
14310     BEGIN   CMP R8,&$390
14311     U>= UNTIL
14312     BIT.B   #4,&$200
14313     ADDC    R11,R11
14314     MOV.B   &$200,&$208
14315     BIC.B   #4,&$20C
14316     SUB     #1,R10
14317 0<> WHILE
14318     ADD R9,R8
14319     BEGIN
14320         MOV &$390,R9
14321         CMP R8,R9
14322         U>= IF
14323         BIC #$30,&$380
14324         GOTO BW1
14325         THEN
14326         BIT.B #4,&$20C
14327     0<> UNTIL
14328 REPEAT
14329 BIC #$30,&$380
14330 RLAM    #1,R11
14331 MOV.B   R11,R9
14332 RRUM    #2,R9
14333 BIT     #$4000,R11
14334 0= IF   BIS #$40,R9
14335 THEN
14336 RRUM    #3,R11
14337 XOR     @R1,R11
14338 BIT     #$400,R11
14339 0= ?GOTO BW1
14340 XOR #$400,0(R1)
14341 SUB #8,R15
14342 MOV R14,6(R15)
14343 MOV &$1DDC,4(R15)
14344 MOV #$10,&$1DDC
14345 MOV R9,0(R15)
14346 MOV #0,R14
14347 LO2HI
14348     LCD_CLEAR
14349     <# # #S #36 HOLD #>
14350     ['] LCD_WRC IS EMIT
14351     TYPE
14352     ['] EMIT >BODY IS EMIT
14353 HI2LO
14354 MOV @R15+,&$1DDC
14355 MOV @R15+,R14
14356 MOV @R1+,R0
14357 ENDASM
14358
14359 ASM BACKGROUND
14360 BEGIN
14361     CALL &$1814
14362     BIS &$180A,R2
14363 AGAIN
14364 ENDASM
14365
14366 CODE STOP
14367 BW1 MOV #SLEEP,R9
14368     ADD #4,R9
14369     MOV R9,-2(R9)
14370 COLON
14371 ['] WARM >BODY IS WARM
14372 ECHO
14373 ." RC5toLCD is removed. type START to restart"
14374 COLD
14375 ;
14376
14377 CODE APP_INIT
14378 MOV #%1011010100,&$3C0
14379 $1806 @ 16000 = [IF]
14380     MOV #1,&$3E0
14381 [THEN]
14382 $1806 @ 24000 = [IF]
14383     MOV #2,&$3E0
14384 [THEN]
14385     MOV #19,&$3D2
14386     MOV #%01100000,&$3C6
14387     MOV #10,&$3D6
14388     BIS.B #$20,&$204
14389     BIS.B #$20,&$20A
14390     BIS.B #7,&$245
14391     BIC.B #7,&$247
14392     BIS.B #$0F,&$224
14393     BIC.B #$0F,&$226
14394     BIS.B #4,&$20A
14395     BIC.B #4,&$20C
14396     MOV #RC5_INT,&$FFDE
14397     MOV #%0100010100,&$340
14398     MOV ##3276,&$352
14399     MOV #%10000,&$342
14400     MOV #WDT_INT,&$FFEA
14401 BIC #1,&$130
14402 BIS.B #3,&$20D
14403 MOV &$1808,R8
14404 CMP #4,R8
14405 0= ?GOTO BW1
14406 COLON
14407     #1000 20_US
14408     %011 TOP_LCD
14409     #205 20_US
14410     %011 TOP_LCD
14411     #5 20_US
14412     %011 TOP_LCD
14413     #2 20_US
14414     %010 TOP_LCD
14415     #2 20_US
14416     %00101000 LCD_WRF
14417     %1000 LCD_WRF
14418     LCD_CLEAR
14419     %0110 LCD_WRF
14420     %1100 LCD_WRF
14421     LCD_CLEAR
14422     ['] LCD_HOME IS CR
14423     ['] LCD_WRC  IS EMIT
14424     CR ." I love you"
14425     ['] CR >BODY IS CR
14426     ['] EMIT >BODY IS EMIT
14427     ." RC5toLCD is running. Type STOP to quit"
14428     ABORT
14429 ;
14430
14431 CODE START
14432 MOV #SLEEP,R9
14433 MOV #BACKGROUND,2(R9)
14434 MOV #WARM,R9
14435 MOV #APP_INIT,2(R9)
14436 MOV R9,R0
14437 ENDCODE 
14438
14439 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14440
14441 MARKER {RC5TOLCD}
14442
14443 CODE 20_US
14444 BEGIN
14445     BEGIN
14446         BIT #1,&$3C0
14447     0<> UNTIL
14448     BIC #1,&$3C0
14449     SUB #1,R14
14450 U< UNTIL
14451 MOV @R15+,R14
14452 MOV @R13+,R0
14453 ENDCODE
14454
14455 CODE TOP_LCD
14456     BIS.B #4,&$243
14457     BIT.B #1,&$241
14458 0= IF
14459     AND.B #$0F,R14
14460     MOV.B R14,&$222
14461     BIC.B #4,&$243
14462     MOV @R15+,R14
14463     MOV @R13+,R0
14464 THEN
14465     SUB #2,R15
14466     MOV R14,0(R15)
14467     BIC.B #4,&$243
14468     MOV.B &$220,R14
14469     AND.B #$0F,R14
14470     MOV @R13+,R0
14471 ENDCODE
14472
14473 CODE LCD_WRC
14474     BIS.B #2,&$243
14475 BW1 SUB #2,R15
14476     MOV R14,0(R15)
14477     RRUM #4,R14
14478     BIC.B #1,&$243
14479     BIS.B #$0F,&$224
14480 COLON
14481     TOP_LCD 2 20_US
14482     TOP_LCD 2 20_US 
14483 ;
14484
14485 CODE LCD_WRF
14486     BIC.B #2,&$243
14487     GOTO BW1
14488 ENDCODE
14489
14490 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14491 : LCD_HOME $02 LCD_WRF 100 20_us ;
14492
14493
14494
14495 ASM WDT_INT
14496 ADD #2,R1
14497 BIT.B #$20,&$240
14498 0= IF
14499     CMP #19,&$3D6
14500     U< IF
14501         ADD #1,&$3D6
14502     THEN
14503 ELSE
14504     BIT.B #$40,&$240
14505     0= IF
14506         CMP #3,&$3D6
14507         U>= IF
14508            SUB #1,&$3D6
14509         THEN
14510     THEN
14511 THEN
14512 BW1
14513 MOV @R1+,R0
14514 ENDASM
14515
14516 ASM RC5_INT
14517 ADD #2,R1
14518 $1806 @ 16000 = [IF]
14519     MOV #1,&$3A0
14520 [THEN]
14521 $1806 @ 24000 = [IF]
14522     MOV #2,&$3A0
14523 [THEN]
14524 MOV #1778,R9
14525 MOV #14,R10
14526 BEGIN
14527 MOV #%1011100100,&$380
14528     RRUM    #1,R9
14529     MOV     R9,R8
14530     RRUM    #1,R8
14531     ADD     R9,R8
14532     BEGIN   CMP R8,&$390
14533     U>= UNTIL
14534     BIT.B   #4,&$200
14535     ADDC    R11,R11
14536     MOV.B   &$200,&$208
14537     BIC.B   #4,&$20C
14538     SUB     #1,R10
14539 0<> WHILE
14540     ADD R9,R8
14541     BEGIN
14542         MOV &$390,R9
14543         CMP R8,R9
14544         U>= IF
14545         BIC #$30,&$380
14546         GOTO BW1
14547         THEN
14548         BIT.B #4,&$20C
14549     0<> UNTIL
14550 REPEAT
14551 BIC #$30,&$380
14552 RLAM    #1,R11
14553 MOV.B   R11,R9
14554 RRUM    #2,R9
14555 BIT     #$4000,R11
14556 0= IF   BIS #$40,R9
14557 THEN
14558 RRUM    #3,R11
14559 XOR     @R1,R11
14560 BIT     #$400,R11
14561 0= ?GOTO BW1
14562 XOR #$400,0(R1)
14563 SUB #8,R15
14564 MOV R14,6(R15)
14565 MOV &$1DDC,4(R15)
14566 MOV #$10,&$1DDC
14567 MOV R9,0(R15)
14568 MOV #0,R14
14569 LO2HI
14570     LCD_CLEAR
14571     <# # #S #36 HOLD #>
14572     ['] LCD_WRC IS EMIT
14573     TYPE
14574     ['] EMIT >BODY IS EMIT
14575 HI2LO
14576 MOV @R15+,&$1DDC
14577 MOV @R15+,R14
14578 MOV @R1+,R0
14579 ENDASM
14580
14581 ASM BACKGROUND
14582 BEGIN
14583     CALL &$1814
14584     BIS &$180A,R2
14585 AGAIN
14586 ENDASM
14587
14588 CODE STOP
14589 BW1 MOV #SLEEP,R9
14590     ADD #4,R9
14591     MOV R9,-2(R9)
14592 COLON
14593 ['] WARM >BODY IS WARM
14594 ECHO
14595 ." RC5toLCD is removed. type START to restart"
14596 COLD
14597 ;
14598
14599 CODE APP_INIT
14600 MOV #%1011010100,&$3C0
14601 $1806 @ 16000 = [IF]
14602     MOV #1,&$3E0
14603 [THEN]
14604 $1806 @ 24000 = [IF]
14605     MOV #2,&$3E0
14606 [THEN]
14607     MOV #19,&$3D2
14608     MOV #%01100000,&$3C6
14609     MOV #10,&$3D6
14610     BIS.B #$20,&$204
14611     BIS.B #$20,&$20A
14612     BIS.B #7,&$245
14613     BIC.B #7,&$247
14614     BIS.B #$0F,&$224
14615     BIC.B #$0F,&$226
14616     BIS.B #4,&$20A
14617     BIC.B #4,&$20C
14618     MOV #RC5_INT,&$FFDE
14619     MOV #%0100010100,&$340
14620     MOV ##3276,&$352
14621     MOV #%10000,&$342
14622     MOV #WDT_INT,&$FFEA
14623 BIC #1,&$130
14624 BIS.B #3,&$20D
14625 MOV &$1808,R8
14626 CMP #4,R8
14627 0= ?GOTO BW1
14628 COLON
14629     #1000 20_US
14630     %011 TOP_LCD
14631     #205 20_US
14632     %011 TOP_LCD
14633     #5 20_US
14634     %011 TOP_LCD
14635     #2 20_US
14636     %010 TOP_LCD
14637     #2 20_US
14638     %00101000 LCD_WRF
14639     %1000 LCD_WRF
14640     LCD_CLEAR
14641     %0110 LCD_WRF
14642     %1100 LCD_WRF
14643     LCD_CLEAR
14644     ['] LCD_HOME IS CR
14645     ['] LCD_WRC  IS EMIT
14646     CR ." I love you"
14647     ['] CR >BODY IS CR
14648     ['] EMIT >BODY IS EMIT
14649     ." RC5toLCD is running. Type STOP to quit"
14650     ABORT
14651 ;
14652
14653 CODE START
14654 MOV #SLEEP,R9
14655 MOV #BACKGROUND,2(R9)
14656 MOV #WARM,R9
14657 MOV #APP_INIT,2(R9)
14658 MOV R9,R0
14659 ENDCODE 
14660
14661 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14662
14663 MARKER {RC5TOLCD}
14664
14665 CODE 20_US
14666 BEGIN
14667     BEGIN
14668         BIT #1,&$3C0
14669     0<> UNTIL
14670     BIC #1,&$3C0
14671     SUB #1,R14
14672 U< UNTIL
14673 MOV @R15+,R14
14674 MOV @R13+,R0
14675 ENDCODE
14676
14677 CODE TOP_LCD
14678     BIS.B #4,&$243
14679     BIT.B #1,&$241
14680 0= IF
14681     AND.B #$0F,R14
14682     MOV.B R14,&$222
14683     BIC.B #4,&$243
14684     MOV @R15+,R14
14685     MOV @R13+,R0
14686 THEN
14687     SUB #2,R15
14688     MOV R14,0(R15)
14689     BIC.B #4,&$243
14690     MOV.B &$220,R14
14691     AND.B #$0F,R14
14692     MOV @R13+,R0
14693 ENDCODE
14694
14695 CODE LCD_WRC
14696     BIS.B #2,&$243
14697 BW1 SUB #2,R15
14698     MOV R14,0(R15)
14699     RRUM #4,R14
14700     BIC.B #1,&$243
14701     BIS.B #$0F,&$224
14702 COLON
14703     TOP_LCD 2 20_US
14704     TOP_LCD 2 20_US 
14705 ;
14706
14707 CODE LCD_WRF
14708     BIC.B #2,&$243
14709     GOTO BW1
14710 ENDCODE
14711
14712 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14713 : LCD_HOME $02 LCD_WRF 100 20_us ;
14714
14715
14716
14717 ASM WDT_INT
14718 ADD #2,R1
14719 BIT.B #$20,&$240
14720 0= IF
14721     CMP #19,&$3D6
14722     U< IF
14723         ADD #1,&$3D6
14724     THEN
14725 ELSE
14726     BIT.B #$40,&$240
14727     0= IF
14728         CMP #3,&$3D6
14729         U>= IF
14730            SUB #1,&$3D6
14731         THEN
14732     THEN
14733 THEN
14734 BW1
14735 MOV @R1+,R0
14736 ENDASM
14737
14738 ASM RC5_INT
14739 ADD #2,R1
14740 $1806 @ 16000 = [IF]
14741     MOV #1,&$3A0
14742 [THEN]
14743 $1806 @ 24000 = [IF]
14744     MOV #2,&$3A0
14745 [THEN]
14746 MOV #1778,R9
14747 MOV #14,R10
14748 BEGIN
14749 MOV #%1011100100,&$380
14750     RRUM    #1,R9
14751     MOV     R9,R8
14752     RRUM    #1,R8
14753     ADD     R9,R8
14754     BEGIN   CMP R8,&$390
14755     U>= UNTIL
14756     BIT.B   #4,&$200
14757     ADDC    R11,R11
14758     MOV.B   &$200,&$208
14759     BIC.B   #4,&$20C
14760     SUB     #1,R10
14761 0<> WHILE
14762     ADD R9,R8
14763     BEGIN
14764         MOV &$390,R9
14765         CMP R8,R9
14766         U>= IF
14767         BIC #$30,&$380
14768         GOTO BW1
14769         THEN
14770         BIT.B #4,&$20C
14771     0<> UNTIL
14772 REPEAT
14773 BIC #$30,&$380
14774 RLAM    #1,R11
14775 MOV.B   R11,R9
14776 RRUM    #2,R9
14777 BIT     #$4000,R11
14778 0= IF   BIS #$40,R9
14779 THEN
14780 RRUM    #3,R11
14781 XOR     @R1,R11
14782 BIT     #$400,R11
14783 0= ?GOTO BW1
14784 XOR #$400,0(R1)
14785 SUB #8,R15
14786 MOV R14,6(R15)
14787 MOV &$1DDC,4(R15)
14788 MOV #$10,&$1DDC
14789 MOV R9,0(R15)
14790 MOV #0,R14
14791 LO2HI
14792     LCD_CLEAR
14793     <# # #S #36 HOLD #>
14794     ['] LCD_WRC IS EMIT
14795     TYPE
14796     ['] EMIT >BODY IS EMIT
14797 HI2LO
14798 MOV @R15+,&$1DDC
14799 MOV @R15+,R14
14800 MOV @R1+,R0
14801 ENDASM
14802
14803 ASM BACKGROUND
14804 BEGIN
14805     CALL &$1814
14806     BIS &$180A,R2
14807 AGAIN
14808 ENDASM
14809
14810 CODE STOP
14811 BW1 MOV #SLEEP,R9
14812     ADD #4,R9
14813     MOV R9,-2(R9)
14814 COLON
14815 ['] WARM >BODY IS WARM
14816 ECHO
14817 ." RC5toLCD is removed. type START to restart"
14818 COLD
14819 ;
14820
14821 CODE APP_INIT
14822 MOV #%1011010100,&$3C0
14823 $1806 @ 16000 = [IF]
14824     MOV #1,&$3E0
14825 [THEN]
14826 $1806 @ 24000 = [IF]
14827     MOV #2,&$3E0
14828 [THEN]
14829     MOV #19,&$3D2
14830     MOV #%01100000,&$3C6
14831     MOV #10,&$3D6
14832     BIS.B #$20,&$204
14833     BIS.B #$20,&$20A
14834     BIS.B #7,&$245
14835     BIC.B #7,&$247
14836     BIS.B #$0F,&$224
14837     BIC.B #$0F,&$226
14838     BIS.B #4,&$20A
14839     BIC.B #4,&$20C
14840     MOV #RC5_INT,&$FFDE
14841     MOV #%0100010100,&$340
14842     MOV ##3276,&$352
14843     MOV #%10000,&$342
14844     MOV #WDT_INT,&$FFEA
14845 BIC #1,&$130
14846 BIS.B #3,&$20D
14847 MOV &$1808,R8
14848 CMP #4,R8
14849 0= ?GOTO BW1
14850 COLON
14851     #1000 20_US
14852     %011 TOP_LCD
14853     #205 20_US
14854     %011 TOP_LCD
14855     #5 20_US
14856     %011 TOP_LCD
14857     #2 20_US
14858     %010 TOP_LCD
14859     #2 20_US
14860     %00101000 LCD_WRF
14861     %1000 LCD_WRF
14862     LCD_CLEAR
14863     %0110 LCD_WRF
14864     %1100 LCD_WRF
14865     LCD_CLEAR
14866     ['] LCD_HOME IS CR
14867     ['] LCD_WRC  IS EMIT
14868     CR ." I love you"
14869     ['] CR >BODY IS CR
14870     ['] EMIT >BODY IS EMIT
14871     ." RC5toLCD is running. Type STOP to quit"
14872     ABORT
14873 ;
14874
14875 CODE START
14876 MOV #SLEEP,R9
14877 MOV #BACKGROUND,2(R9)
14878 MOV #WARM,R9
14879 MOV #APP_INIT,2(R9)
14880 MOV R9,R0
14881 ENDCODE 
14882
14883 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
14884
14885 MARKER {RC5TOLCD}
14886
14887 CODE 20_US
14888 BEGIN
14889     BEGIN
14890         BIT #1,&$3C0
14891     0<> UNTIL
14892     BIC #1,&$3C0
14893     SUB #1,R14
14894 U< UNTIL
14895 MOV @R15+,R14
14896 MOV @R13+,R0
14897 ENDCODE
14898
14899 CODE TOP_LCD
14900     BIS.B #4,&$243
14901     BIT.B #1,&$241
14902 0= IF
14903     AND.B #$0F,R14
14904     MOV.B R14,&$222
14905     BIC.B #4,&$243
14906     MOV @R15+,R14
14907     MOV @R13+,R0
14908 THEN
14909     SUB #2,R15
14910     MOV R14,0(R15)
14911     BIC.B #4,&$243
14912     MOV.B &$220,R14
14913     AND.B #$0F,R14
14914     MOV @R13+,R0
14915 ENDCODE
14916
14917 CODE LCD_WRC
14918     BIS.B #2,&$243
14919 BW1 SUB #2,R15
14920     MOV R14,0(R15)
14921     RRUM #4,R14
14922     BIC.B #1,&$243
14923     BIS.B #$0F,&$224
14924 COLON
14925     TOP_LCD 2 20_US
14926     TOP_LCD 2 20_US 
14927 ;
14928
14929 CODE LCD_WRF
14930     BIC.B #2,&$243
14931     GOTO BW1
14932 ENDCODE
14933
14934 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
14935 : LCD_HOME $02 LCD_WRF 100 20_us ;
14936
14937
14938
14939 ASM WDT_INT
14940 ADD #2,R1
14941 BIT.B #$20,&$240
14942 0= IF
14943     CMP #19,&$3D6
14944     U< IF
14945         ADD #1,&$3D6
14946     THEN
14947 ELSE
14948     BIT.B #$40,&$240
14949     0= IF
14950         CMP #3,&$3D6
14951         U>= IF
14952            SUB #1,&$3D6
14953         THEN
14954     THEN
14955 THEN
14956 BW1
14957 MOV @R1+,R0
14958 ENDASM
14959
14960 ASM RC5_INT
14961 ADD #2,R1
14962 $1806 @ 16000 = [IF]
14963     MOV #1,&$3A0
14964 [THEN]
14965 $1806 @ 24000 = [IF]
14966     MOV #2,&$3A0
14967 [THEN]
14968 MOV #1778,R9
14969 MOV #14,R10
14970 BEGIN
14971 MOV #%1011100100,&$380
14972     RRUM    #1,R9
14973     MOV     R9,R8
14974     RRUM    #1,R8
14975     ADD     R9,R8
14976     BEGIN   CMP R8,&$390
14977     U>= UNTIL
14978     BIT.B   #4,&$200
14979     ADDC    R11,R11
14980     MOV.B   &$200,&$208
14981     BIC.B   #4,&$20C
14982     SUB     #1,R10
14983 0<> WHILE
14984     ADD R9,R8
14985     BEGIN
14986         MOV &$390,R9
14987         CMP R8,R9
14988         U>= IF
14989         BIC #$30,&$380
14990         GOTO BW1
14991         THEN
14992         BIT.B #4,&$20C
14993     0<> UNTIL
14994 REPEAT
14995 BIC #$30,&$380
14996 RLAM    #1,R11
14997 MOV.B   R11,R9
14998 RRUM    #2,R9
14999 BIT     #$4000,R11
15000 0= IF   BIS #$40,R9
15001 THEN
15002 RRUM    #3,R11
15003 XOR     @R1,R11
15004 BIT     #$400,R11
15005 0= ?GOTO BW1
15006 XOR #$400,0(R1)
15007 SUB #8,R15
15008 MOV R14,6(R15)
15009 MOV &$1DDC,4(R15)
15010 MOV #$10,&$1DDC
15011 MOV R9,0(R15)
15012 MOV #0,R14
15013 LO2HI
15014     LCD_CLEAR
15015     <# # #S #36 HOLD #>
15016     ['] LCD_WRC IS EMIT
15017     TYPE
15018     ['] EMIT >BODY IS EMIT
15019 HI2LO
15020 MOV @R15+,&$1DDC
15021 MOV @R15+,R14
15022 MOV @R1+,R0
15023 ENDASM
15024
15025 ASM BACKGROUND
15026 BEGIN
15027     CALL &$1814
15028     BIS &$180A,R2
15029 AGAIN
15030 ENDASM
15031
15032 CODE STOP
15033 BW1 MOV #SLEEP,R9
15034     ADD #4,R9
15035     MOV R9,-2(R9)
15036 COLON
15037 ['] WARM >BODY IS WARM
15038 ECHO
15039 ." RC5toLCD is removed. type START to restart"
15040 COLD
15041 ;
15042
15043 CODE APP_INIT
15044 MOV #%1011010100,&$3C0
15045 $1806 @ 16000 = [IF]
15046     MOV #1,&$3E0
15047 [THEN]
15048 $1806 @ 24000 = [IF]
15049     MOV #2,&$3E0
15050 [THEN]
15051     MOV #19,&$3D2
15052     MOV #%01100000,&$3C6
15053     MOV #10,&$3D6
15054     BIS.B #$20,&$204
15055     BIS.B #$20,&$20A
15056     BIS.B #7,&$245
15057     BIC.B #7,&$247
15058     BIS.B #$0F,&$224
15059     BIC.B #$0F,&$226
15060     BIS.B #4,&$20A
15061     BIC.B #4,&$20C
15062     MOV #RC5_INT,&$FFDE
15063     MOV #%0100010100,&$340
15064     MOV ##3276,&$352
15065     MOV #%10000,&$342
15066     MOV #WDT_INT,&$FFEA
15067 BIC #1,&$130
15068 BIS.B #3,&$20D
15069 MOV &$1808,R8
15070 CMP #4,R8
15071 0= ?GOTO BW1
15072 COLON
15073     #1000 20_US
15074     %011 TOP_LCD
15075     #205 20_US
15076     %011 TOP_LCD
15077     #5 20_US
15078     %011 TOP_LCD
15079     #2 20_US
15080     %010 TOP_LCD
15081     #2 20_US
15082     %00101000 LCD_WRF
15083     %1000 LCD_WRF
15084     LCD_CLEAR
15085     %0110 LCD_WRF
15086     %1100 LCD_WRF
15087     LCD_CLEAR
15088     ['] LCD_HOME IS CR
15089     ['] LCD_WRC  IS EMIT
15090     CR ." I love you"
15091     ['] CR >BODY IS CR
15092     ['] EMIT >BODY IS EMIT
15093     ." RC5toLCD is running. Type STOP to quit"
15094     ABORT
15095 ;
15096
15097 CODE START
15098 MOV #SLEEP,R9
15099 MOV #BACKGROUND,2(R9)
15100 MOV #WARM,R9
15101 MOV #APP_INIT,2(R9)
15102 MOV R9,R0
15103 ENDCODE 
15104
15105 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15106
15107 MARKER {RC5TOLCD}
15108
15109 CODE 20_US
15110 BEGIN
15111     BEGIN
15112         BIT #1,&$3C0
15113     0<> UNTIL
15114     BIC #1,&$3C0
15115     SUB #1,R14
15116 U< UNTIL
15117 MOV @R15+,R14
15118 MOV @R13+,R0
15119 ENDCODE
15120
15121 CODE TOP_LCD
15122     BIS.B #4,&$243
15123     BIT.B #1,&$241
15124 0= IF
15125     AND.B #$0F,R14
15126     MOV.B R14,&$222
15127     BIC.B #4,&$243
15128     MOV @R15+,R14
15129     MOV @R13+,R0
15130 THEN
15131     SUB #2,R15
15132     MOV R14,0(R15)
15133     BIC.B #4,&$243
15134     MOV.B &$220,R14
15135     AND.B #$0F,R14
15136     MOV @R13+,R0
15137 ENDCODE
15138
15139 CODE LCD_WRC
15140     BIS.B #2,&$243
15141 BW1 SUB #2,R15
15142     MOV R14,0(R15)
15143     RRUM #4,R14
15144     BIC.B #1,&$243
15145     BIS.B #$0F,&$224
15146 COLON
15147     TOP_LCD 2 20_US
15148     TOP_LCD 2 20_US 
15149 ;
15150
15151 CODE LCD_WRF
15152     BIC.B #2,&$243
15153     GOTO BW1
15154 ENDCODE
15155
15156 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15157 : LCD_HOME $02 LCD_WRF 100 20_us ;
15158
15159
15160
15161 ASM WDT_INT
15162 ADD #2,R1
15163 BIT.B #$20,&$240
15164 0= IF
15165     CMP #19,&$3D6
15166     U< IF
15167         ADD #1,&$3D6
15168     THEN
15169 ELSE
15170     BIT.B #$40,&$240
15171     0= IF
15172         CMP #3,&$3D6
15173         U>= IF
15174            SUB #1,&$3D6
15175         THEN
15176     THEN
15177 THEN
15178 BW1
15179 MOV @R1+,R0
15180 ENDASM
15181
15182 ASM RC5_INT
15183 ADD #2,R1
15184 $1806 @ 16000 = [IF]
15185     MOV #1,&$3A0
15186 [THEN]
15187 $1806 @ 24000 = [IF]
15188     MOV #2,&$3A0
15189 [THEN]
15190 MOV #1778,R9
15191 MOV #14,R10
15192 BEGIN
15193 MOV #%1011100100,&$380
15194     RRUM    #1,R9
15195     MOV     R9,R8
15196     RRUM    #1,R8
15197     ADD     R9,R8
15198     BEGIN   CMP R8,&$390
15199     U>= UNTIL
15200     BIT.B   #4,&$200
15201     ADDC    R11,R11
15202     MOV.B   &$200,&$208
15203     BIC.B   #4,&$20C
15204     SUB     #1,R10
15205 0<> WHILE
15206     ADD R9,R8
15207     BEGIN
15208         MOV &$390,R9
15209         CMP R8,R9
15210         U>= IF
15211         BIC #$30,&$380
15212         GOTO BW1
15213         THEN
15214         BIT.B #4,&$20C
15215     0<> UNTIL
15216 REPEAT
15217 BIC #$30,&$380
15218 RLAM    #1,R11
15219 MOV.B   R11,R9
15220 RRUM    #2,R9
15221 BIT     #$4000,R11
15222 0= IF   BIS #$40,R9
15223 THEN
15224 RRUM    #3,R11
15225 XOR     @R1,R11
15226 BIT     #$400,R11
15227 0= ?GOTO BW1
15228 XOR #$400,0(R1)
15229 SUB #8,R15
15230 MOV R14,6(R15)
15231 MOV &$1DDC,4(R15)
15232 MOV #$10,&$1DDC
15233 MOV R9,0(R15)
15234 MOV #0,R14
15235 LO2HI
15236     LCD_CLEAR
15237     <# # #S #36 HOLD #>
15238     ['] LCD_WRC IS EMIT
15239     TYPE
15240     ['] EMIT >BODY IS EMIT
15241 HI2LO
15242 MOV @R15+,&$1DDC
15243 MOV @R15+,R14
15244 MOV @R1+,R0
15245 ENDASM
15246
15247 ASM BACKGROUND
15248 BEGIN
15249     CALL &$1814
15250     BIS &$180A,R2
15251 AGAIN
15252 ENDASM
15253
15254 CODE STOP
15255 BW1 MOV #SLEEP,R9
15256     ADD #4,R9
15257     MOV R9,-2(R9)
15258 COLON
15259 ['] WARM >BODY IS WARM
15260 ECHO
15261 ." RC5toLCD is removed. type START to restart"
15262 COLD
15263 ;
15264
15265 CODE APP_INIT
15266 MOV #%1011010100,&$3C0
15267 $1806 @ 16000 = [IF]
15268     MOV #1,&$3E0
15269 [THEN]
15270 $1806 @ 24000 = [IF]
15271     MOV #2,&$3E0
15272 [THEN]
15273     MOV #19,&$3D2
15274     MOV #%01100000,&$3C6
15275     MOV #10,&$3D6
15276     BIS.B #$20,&$204
15277     BIS.B #$20,&$20A
15278     BIS.B #7,&$245
15279     BIC.B #7,&$247
15280     BIS.B #$0F,&$224
15281     BIC.B #$0F,&$226
15282     BIS.B #4,&$20A
15283     BIC.B #4,&$20C
15284     MOV #RC5_INT,&$FFDE
15285     MOV #%0100010100,&$340
15286     MOV ##3276,&$352
15287     MOV #%10000,&$342
15288     MOV #WDT_INT,&$FFEA
15289 BIC #1,&$130
15290 BIS.B #3,&$20D
15291 MOV &$1808,R8
15292 CMP #4,R8
15293 0= ?GOTO BW1
15294 COLON
15295     #1000 20_US
15296     %011 TOP_LCD
15297     #205 20_US
15298     %011 TOP_LCD
15299     #5 20_US
15300     %011 TOP_LCD
15301     #2 20_US
15302     %010 TOP_LCD
15303     #2 20_US
15304     %00101000 LCD_WRF
15305     %1000 LCD_WRF
15306     LCD_CLEAR
15307     %0110 LCD_WRF
15308     %1100 LCD_WRF
15309     LCD_CLEAR
15310     ['] LCD_HOME IS CR
15311     ['] LCD_WRC  IS EMIT
15312     CR ." I love you"
15313     ['] CR >BODY IS CR
15314     ['] EMIT >BODY IS EMIT
15315     ." RC5toLCD is running. Type STOP to quit"
15316     ABORT
15317 ;
15318
15319 CODE START
15320 MOV #SLEEP,R9
15321 MOV #BACKGROUND,2(R9)
15322 MOV #WARM,R9
15323 MOV #APP_INIT,2(R9)
15324 MOV R9,R0
15325 ENDCODE 
15326
15327 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15328
15329 MARKER {RC5TOLCD}
15330
15331 CODE 20_US
15332 BEGIN
15333     BEGIN
15334         BIT #1,&$3C0
15335     0<> UNTIL
15336     BIC #1,&$3C0
15337     SUB #1,R14
15338 U< UNTIL
15339 MOV @R15+,R14
15340 MOV @R13+,R0
15341 ENDCODE
15342
15343 CODE TOP_LCD
15344     BIS.B #4,&$243
15345     BIT.B #1,&$241
15346 0= IF
15347     AND.B #$0F,R14
15348     MOV.B R14,&$222
15349     BIC.B #4,&$243
15350     MOV @R15+,R14
15351     MOV @R13+,R0
15352 THEN
15353     SUB #2,R15
15354     MOV R14,0(R15)
15355     BIC.B #4,&$243
15356     MOV.B &$220,R14
15357     AND.B #$0F,R14
15358     MOV @R13+,R0
15359 ENDCODE
15360
15361 CODE LCD_WRC
15362     BIS.B #2,&$243
15363 BW1 SUB #2,R15
15364     MOV R14,0(R15)
15365     RRUM #4,R14
15366     BIC.B #1,&$243
15367     BIS.B #$0F,&$224
15368 COLON
15369     TOP_LCD 2 20_US
15370     TOP_LCD 2 20_US 
15371 ;
15372
15373 CODE LCD_WRF
15374     BIC.B #2,&$243
15375     GOTO BW1
15376 ENDCODE
15377
15378 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15379 : LCD_HOME $02 LCD_WRF 100 20_us ;
15380
15381
15382
15383 ASM WDT_INT
15384 ADD #2,R1
15385 BIT.B #$20,&$240
15386 0= IF
15387     CMP #19,&$3D6
15388     U< IF
15389         ADD #1,&$3D6
15390     THEN
15391 ELSE
15392     BIT.B #$40,&$240
15393     0= IF
15394         CMP #3,&$3D6
15395         U>= IF
15396            SUB #1,&$3D6
15397         THEN
15398     THEN
15399 THEN
15400 BW1
15401 MOV @R1+,R0
15402 ENDASM
15403
15404 ASM RC5_INT
15405 ADD #2,R1
15406 $1806 @ 16000 = [IF]
15407     MOV #1,&$3A0
15408 [THEN]
15409 $1806 @ 24000 = [IF]
15410     MOV #2,&$3A0
15411 [THEN]
15412 MOV #1778,R9
15413 MOV #14,R10
15414 BEGIN
15415 MOV #%1011100100,&$380
15416     RRUM    #1,R9
15417     MOV     R9,R8
15418     RRUM    #1,R8
15419     ADD     R9,R8
15420     BEGIN   CMP R8,&$390
15421     U>= UNTIL
15422     BIT.B   #4,&$200
15423     ADDC    R11,R11
15424     MOV.B   &$200,&$208
15425     BIC.B   #4,&$20C
15426     SUB     #1,R10
15427 0<> WHILE
15428     ADD R9,R8
15429     BEGIN
15430         MOV &$390,R9
15431         CMP R8,R9
15432         U>= IF
15433         BIC #$30,&$380
15434         GOTO BW1
15435         THEN
15436         BIT.B #4,&$20C
15437     0<> UNTIL
15438 REPEAT
15439 BIC #$30,&$380
15440 RLAM    #1,R11
15441 MOV.B   R11,R9
15442 RRUM    #2,R9
15443 BIT     #$4000,R11
15444 0= IF   BIS #$40,R9
15445 THEN
15446 RRUM    #3,R11
15447 XOR     @R1,R11
15448 BIT     #$400,R11
15449 0= ?GOTO BW1
15450 XOR #$400,0(R1)
15451 SUB #8,R15
15452 MOV R14,6(R15)
15453 MOV &$1DDC,4(R15)
15454 MOV #$10,&$1DDC
15455 MOV R9,0(R15)
15456 MOV #0,R14
15457 LO2HI
15458     LCD_CLEAR
15459     <# # #S #36 HOLD #>
15460     ['] LCD_WRC IS EMIT
15461     TYPE
15462     ['] EMIT >BODY IS EMIT
15463 HI2LO
15464 MOV @R15+,&$1DDC
15465 MOV @R15+,R14
15466 MOV @R1+,R0
15467 ENDASM
15468
15469 ASM BACKGROUND
15470 BEGIN
15471     CALL &$1814
15472     BIS &$180A,R2
15473 AGAIN
15474 ENDASM
15475
15476 CODE STOP
15477 BW1 MOV #SLEEP,R9
15478     ADD #4,R9
15479     MOV R9,-2(R9)
15480 COLON
15481 ['] WARM >BODY IS WARM
15482 ECHO
15483 ." RC5toLCD is removed. type START to restart"
15484 COLD
15485 ;
15486
15487 CODE APP_INIT
15488 MOV #%1011010100,&$3C0
15489 $1806 @ 16000 = [IF]
15490     MOV #1,&$3E0
15491 [THEN]
15492 $1806 @ 24000 = [IF]
15493     MOV #2,&$3E0
15494 [THEN]
15495     MOV #19,&$3D2
15496     MOV #%01100000,&$3C6
15497     MOV #10,&$3D6
15498     BIS.B #$20,&$204
15499     BIS.B #$20,&$20A
15500     BIS.B #7,&$245
15501     BIC.B #7,&$247
15502     BIS.B #$0F,&$224
15503     BIC.B #$0F,&$226
15504     BIS.B #4,&$20A
15505     BIC.B #4,&$20C
15506     MOV #RC5_INT,&$FFDE
15507     MOV #%0100010100,&$340
15508     MOV ##3276,&$352
15509     MOV #%10000,&$342
15510     MOV #WDT_INT,&$FFEA
15511 BIC #1,&$130
15512 BIS.B #3,&$20D
15513 MOV &$1808,R8
15514 CMP #4,R8
15515 0= ?GOTO BW1
15516 COLON
15517     #1000 20_US
15518     %011 TOP_LCD
15519     #205 20_US
15520     %011 TOP_LCD
15521     #5 20_US
15522     %011 TOP_LCD
15523     #2 20_US
15524     %010 TOP_LCD
15525     #2 20_US
15526     %00101000 LCD_WRF
15527     %1000 LCD_WRF
15528     LCD_CLEAR
15529     %0110 LCD_WRF
15530     %1100 LCD_WRF
15531     LCD_CLEAR
15532     ['] LCD_HOME IS CR
15533     ['] LCD_WRC  IS EMIT
15534     CR ." I love you"
15535     ['] CR >BODY IS CR
15536     ['] EMIT >BODY IS EMIT
15537     ." RC5toLCD is running. Type STOP to quit"
15538     ABORT
15539 ;
15540
15541 CODE START
15542 MOV #SLEEP,R9
15543 MOV #BACKGROUND,2(R9)
15544 MOV #WARM,R9
15545 MOV #APP_INIT,2(R9)
15546 MOV R9,R0
15547 ENDCODE 
15548
15549 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15550
15551 MARKER {RC5TOLCD}
15552
15553 CODE 20_US
15554 BEGIN
15555     BEGIN
15556         BIT #1,&$3C0
15557     0<> UNTIL
15558     BIC #1,&$3C0
15559     SUB #1,R14
15560 U< UNTIL
15561 MOV @R15+,R14
15562 MOV @R13+,R0
15563 ENDCODE
15564
15565 CODE TOP_LCD
15566     BIS.B #4,&$243
15567     BIT.B #1,&$241
15568 0= IF
15569     AND.B #$0F,R14
15570     MOV.B R14,&$222
15571     BIC.B #4,&$243
15572     MOV @R15+,R14
15573     MOV @R13+,R0
15574 THEN
15575     SUB #2,R15
15576     MOV R14,0(R15)
15577     BIC.B #4,&$243
15578     MOV.B &$220,R14
15579     AND.B #$0F,R14
15580     MOV @R13+,R0
15581 ENDCODE
15582
15583 CODE LCD_WRC
15584     BIS.B #2,&$243
15585 BW1 SUB #2,R15
15586     MOV R14,0(R15)
15587     RRUM #4,R14
15588     BIC.B #1,&$243
15589     BIS.B #$0F,&$224
15590 COLON
15591     TOP_LCD 2 20_US
15592     TOP_LCD 2 20_US 
15593 ;
15594
15595 CODE LCD_WRF
15596     BIC.B #2,&$243
15597     GOTO BW1
15598 ENDCODE
15599
15600 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15601 : LCD_HOME $02 LCD_WRF 100 20_us ;
15602
15603
15604
15605 ASM WDT_INT
15606 ADD #2,R1
15607 BIT.B #$20,&$240
15608 0= IF
15609     CMP #19,&$3D6
15610     U< IF
15611         ADD #1,&$3D6
15612     THEN
15613 ELSE
15614     BIT.B #$40,&$240
15615     0= IF
15616         CMP #3,&$3D6
15617         U>= IF
15618            SUB #1,&$3D6
15619         THEN
15620     THEN
15621 THEN
15622 BW1
15623 MOV @R1+,R0
15624 ENDASM
15625
15626 ASM RC5_INT
15627 ADD #2,R1
15628 $1806 @ 16000 = [IF]
15629     MOV #1,&$3A0
15630 [THEN]
15631 $1806 @ 24000 = [IF]
15632     MOV #2,&$3A0
15633 [THEN]
15634 MOV #1778,R9
15635 MOV #14,R10
15636 BEGIN
15637 MOV #%1011100100,&$380
15638     RRUM    #1,R9
15639     MOV     R9,R8
15640     RRUM    #1,R8
15641     ADD     R9,R8
15642     BEGIN   CMP R8,&$390
15643     U>= UNTIL
15644     BIT.B   #4,&$200
15645     ADDC    R11,R11
15646     MOV.B   &$200,&$208
15647     BIC.B   #4,&$20C
15648     SUB     #1,R10
15649 0<> WHILE
15650     ADD R9,R8
15651     BEGIN
15652         MOV &$390,R9
15653         CMP R8,R9
15654         U>= IF
15655         BIC #$30,&$380
15656         GOTO BW1
15657         THEN
15658         BIT.B #4,&$20C
15659     0<> UNTIL
15660 REPEAT
15661 BIC #$30,&$380
15662 RLAM    #1,R11
15663 MOV.B   R11,R9
15664 RRUM    #2,R9
15665 BIT     #$4000,R11
15666 0= IF   BIS #$40,R9
15667 THEN
15668 RRUM    #3,R11
15669 XOR     @R1,R11
15670 BIT     #$400,R11
15671 0= ?GOTO BW1
15672 XOR #$400,0(R1)
15673 SUB #8,R15
15674 MOV R14,6(R15)
15675 MOV &$1DDC,4(R15)
15676 MOV #$10,&$1DDC
15677 MOV R9,0(R15)
15678 MOV #0,R14
15679 LO2HI
15680     LCD_CLEAR
15681     <# # #S #36 HOLD #>
15682     ['] LCD_WRC IS EMIT
15683     TYPE
15684     ['] EMIT >BODY IS EMIT
15685 HI2LO
15686 MOV @R15+,&$1DDC
15687 MOV @R15+,R14
15688 MOV @R1+,R0
15689 ENDASM
15690
15691 ASM BACKGROUND
15692 BEGIN
15693     CALL &$1814
15694     BIS &$180A,R2
15695 AGAIN
15696 ENDASM
15697
15698 CODE STOP
15699 BW1 MOV #SLEEP,R9
15700     ADD #4,R9
15701     MOV R9,-2(R9)
15702 COLON
15703 ['] WARM >BODY IS WARM
15704 ECHO
15705 ." RC5toLCD is removed. type START to restart"
15706 COLD
15707 ;
15708
15709 CODE APP_INIT
15710 MOV #%1011010100,&$3C0
15711 $1806 @ 16000 = [IF]
15712     MOV #1,&$3E0
15713 [THEN]
15714 $1806 @ 24000 = [IF]
15715     MOV #2,&$3E0
15716 [THEN]
15717     MOV #19,&$3D2
15718     MOV #%01100000,&$3C6
15719     MOV #10,&$3D6
15720     BIS.B #$20,&$204
15721     BIS.B #$20,&$20A
15722     BIS.B #7,&$245
15723     BIC.B #7,&$247
15724     BIS.B #$0F,&$224
15725     BIC.B #$0F,&$226
15726     BIS.B #4,&$20A
15727     BIC.B #4,&$20C
15728     MOV #RC5_INT,&$FFDE
15729     MOV #%0100010100,&$340
15730     MOV ##3276,&$352
15731     MOV #%10000,&$342
15732     MOV #WDT_INT,&$FFEA
15733 BIC #1,&$130
15734 BIS.B #3,&$20D
15735 MOV &$1808,R8
15736 CMP #4,R8
15737 0= ?GOTO BW1
15738 COLON
15739     #1000 20_US
15740     %011 TOP_LCD
15741     #205 20_US
15742     %011 TOP_LCD
15743     #5 20_US
15744     %011 TOP_LCD
15745     #2 20_US
15746     %010 TOP_LCD
15747     #2 20_US
15748     %00101000 LCD_WRF
15749     %1000 LCD_WRF
15750     LCD_CLEAR
15751     %0110 LCD_WRF
15752     %1100 LCD_WRF
15753     LCD_CLEAR
15754     ['] LCD_HOME IS CR
15755     ['] LCD_WRC  IS EMIT
15756     CR ." I love you"
15757     ['] CR >BODY IS CR
15758     ['] EMIT >BODY IS EMIT
15759     ." RC5toLCD is running. Type STOP to quit"
15760     ABORT
15761 ;
15762
15763 CODE START
15764 MOV #SLEEP,R9
15765 MOV #BACKGROUND,2(R9)
15766 MOV #WARM,R9
15767 MOV #APP_INIT,2(R9)
15768 MOV R9,R0
15769 ENDCODE 
15770
15771 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15772
15773 MARKER {RC5TOLCD}
15774
15775 CODE 20_US
15776 BEGIN
15777     BEGIN
15778         BIT #1,&$3C0
15779     0<> UNTIL
15780     BIC #1,&$3C0
15781     SUB #1,R14
15782 U< UNTIL
15783 MOV @R15+,R14
15784 MOV @R13+,R0
15785 ENDCODE
15786
15787 CODE TOP_LCD
15788     BIS.B #4,&$243
15789     BIT.B #1,&$241
15790 0= IF
15791     AND.B #$0F,R14
15792     MOV.B R14,&$222
15793     BIC.B #4,&$243
15794     MOV @R15+,R14
15795     MOV @R13+,R0
15796 THEN
15797     SUB #2,R15
15798     MOV R14,0(R15)
15799     BIC.B #4,&$243
15800     MOV.B &$220,R14
15801     AND.B #$0F,R14
15802     MOV @R13+,R0
15803 ENDCODE
15804
15805 CODE LCD_WRC
15806     BIS.B #2,&$243
15807 BW1 SUB #2,R15
15808     MOV R14,0(R15)
15809     RRUM #4,R14
15810     BIC.B #1,&$243
15811     BIS.B #$0F,&$224
15812 COLON
15813     TOP_LCD 2 20_US
15814     TOP_LCD 2 20_US 
15815 ;
15816
15817 CODE LCD_WRF
15818     BIC.B #2,&$243
15819     GOTO BW1
15820 ENDCODE
15821
15822 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
15823 : LCD_HOME $02 LCD_WRF 100 20_us ;
15824
15825
15826
15827 ASM WDT_INT
15828 ADD #2,R1
15829 BIT.B #$20,&$240
15830 0= IF
15831     CMP #19,&$3D6
15832     U< IF
15833         ADD #1,&$3D6
15834     THEN
15835 ELSE
15836     BIT.B #$40,&$240
15837     0= IF
15838         CMP #3,&$3D6
15839         U>= IF
15840            SUB #1,&$3D6
15841         THEN
15842     THEN
15843 THEN
15844 BW1
15845 MOV @R1+,R0
15846 ENDASM
15847
15848 ASM RC5_INT
15849 ADD #2,R1
15850 $1806 @ 16000 = [IF]
15851     MOV #1,&$3A0
15852 [THEN]
15853 $1806 @ 24000 = [IF]
15854     MOV #2,&$3A0
15855 [THEN]
15856 MOV #1778,R9
15857 MOV #14,R10
15858 BEGIN
15859 MOV #%1011100100,&$380
15860     RRUM    #1,R9
15861     MOV     R9,R8
15862     RRUM    #1,R8
15863     ADD     R9,R8
15864     BEGIN   CMP R8,&$390
15865     U>= UNTIL
15866     BIT.B   #4,&$200
15867     ADDC    R11,R11
15868     MOV.B   &$200,&$208
15869     BIC.B   #4,&$20C
15870     SUB     #1,R10
15871 0<> WHILE
15872     ADD R9,R8
15873     BEGIN
15874         MOV &$390,R9
15875         CMP R8,R9
15876         U>= IF
15877         BIC #$30,&$380
15878         GOTO BW1
15879         THEN
15880         BIT.B #4,&$20C
15881     0<> UNTIL
15882 REPEAT
15883 BIC #$30,&$380
15884 RLAM    #1,R11
15885 MOV.B   R11,R9
15886 RRUM    #2,R9
15887 BIT     #$4000,R11
15888 0= IF   BIS #$40,R9
15889 THEN
15890 RRUM    #3,R11
15891 XOR     @R1,R11
15892 BIT     #$400,R11
15893 0= ?GOTO BW1
15894 XOR #$400,0(R1)
15895 SUB #8,R15
15896 MOV R14,6(R15)
15897 MOV &$1DDC,4(R15)
15898 MOV #$10,&$1DDC
15899 MOV R9,0(R15)
15900 MOV #0,R14
15901 LO2HI
15902     LCD_CLEAR
15903     <# # #S #36 HOLD #>
15904     ['] LCD_WRC IS EMIT
15905     TYPE
15906     ['] EMIT >BODY IS EMIT
15907 HI2LO
15908 MOV @R15+,&$1DDC
15909 MOV @R15+,R14
15910 MOV @R1+,R0
15911 ENDASM
15912
15913 ASM BACKGROUND
15914 BEGIN
15915     CALL &$1814
15916     BIS &$180A,R2
15917 AGAIN
15918 ENDASM
15919
15920 CODE STOP
15921 BW1 MOV #SLEEP,R9
15922     ADD #4,R9
15923     MOV R9,-2(R9)
15924 COLON
15925 ['] WARM >BODY IS WARM
15926 ECHO
15927 ." RC5toLCD is removed. type START to restart"
15928 COLD
15929 ;
15930
15931 CODE APP_INIT
15932 MOV #%1011010100,&$3C0
15933 $1806 @ 16000 = [IF]
15934     MOV #1,&$3E0
15935 [THEN]
15936 $1806 @ 24000 = [IF]
15937     MOV #2,&$3E0
15938 [THEN]
15939     MOV #19,&$3D2
15940     MOV #%01100000,&$3C6
15941     MOV #10,&$3D6
15942     BIS.B #$20,&$204
15943     BIS.B #$20,&$20A
15944     BIS.B #7,&$245
15945     BIC.B #7,&$247
15946     BIS.B #$0F,&$224
15947     BIC.B #$0F,&$226
15948     BIS.B #4,&$20A
15949     BIC.B #4,&$20C
15950     MOV #RC5_INT,&$FFDE
15951     MOV #%0100010100,&$340
15952     MOV ##3276,&$352
15953     MOV #%10000,&$342
15954     MOV #WDT_INT,&$FFEA
15955 BIC #1,&$130
15956 BIS.B #3,&$20D
15957 MOV &$1808,R8
15958 CMP #4,R8
15959 0= ?GOTO BW1
15960 COLON
15961     #1000 20_US
15962     %011 TOP_LCD
15963     #205 20_US
15964     %011 TOP_LCD
15965     #5 20_US
15966     %011 TOP_LCD
15967     #2 20_US
15968     %010 TOP_LCD
15969     #2 20_US
15970     %00101000 LCD_WRF
15971     %1000 LCD_WRF
15972     LCD_CLEAR
15973     %0110 LCD_WRF
15974     %1100 LCD_WRF
15975     LCD_CLEAR
15976     ['] LCD_HOME IS CR
15977     ['] LCD_WRC  IS EMIT
15978     CR ." I love you"
15979     ['] CR >BODY IS CR
15980     ['] EMIT >BODY IS EMIT
15981     ." RC5toLCD is running. Type STOP to quit"
15982     ABORT
15983 ;
15984
15985 CODE START
15986 MOV #SLEEP,R9
15987 MOV #BACKGROUND,2(R9)
15988 MOV #WARM,R9
15989 MOV #APP_INIT,2(R9)
15990 MOV R9,R0
15991 ENDCODE 
15992
15993 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
15994
15995 MARKER {RC5TOLCD}
15996
15997 CODE 20_US
15998 BEGIN
15999     BEGIN
16000         BIT #1,&$3C0
16001     0<> UNTIL
16002     BIC #1,&$3C0
16003     SUB #1,R14
16004 U< UNTIL
16005 MOV @R15+,R14
16006 MOV @R13+,R0
16007 ENDCODE
16008
16009 CODE TOP_LCD
16010     BIS.B #4,&$243
16011     BIT.B #1,&$241
16012 0= IF
16013     AND.B #$0F,R14
16014     MOV.B R14,&$222
16015     BIC.B #4,&$243
16016     MOV @R15+,R14
16017     MOV @R13+,R0
16018 THEN
16019     SUB #2,R15
16020     MOV R14,0(R15)
16021     BIC.B #4,&$243
16022     MOV.B &$220,R14
16023     AND.B #$0F,R14
16024     MOV @R13+,R0
16025 ENDCODE
16026
16027 CODE LCD_WRC
16028     BIS.B #2,&$243
16029 BW1 SUB #2,R15
16030     MOV R14,0(R15)
16031     RRUM #4,R14
16032     BIC.B #1,&$243
16033     BIS.B #$0F,&$224
16034 COLON
16035     TOP_LCD 2 20_US
16036     TOP_LCD 2 20_US 
16037 ;
16038
16039 CODE LCD_WRF
16040     BIC.B #2,&$243
16041     GOTO BW1
16042 ENDCODE
16043
16044 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16045 : LCD_HOME $02 LCD_WRF 100 20_us ;
16046
16047
16048
16049 ASM WDT_INT
16050 ADD #2,R1
16051 BIT.B #$20,&$240
16052 0= IF
16053     CMP #19,&$3D6
16054     U< IF
16055         ADD #1,&$3D6
16056     THEN
16057 ELSE
16058     BIT.B #$40,&$240
16059     0= IF
16060         CMP #3,&$3D6
16061         U>= IF
16062            SUB #1,&$3D6
16063         THEN
16064     THEN
16065 THEN
16066 BW1
16067 MOV @R1+,R0
16068 ENDASM
16069
16070 ASM RC5_INT
16071 ADD #2,R1
16072 $1806 @ 16000 = [IF]
16073     MOV #1,&$3A0
16074 [THEN]
16075 $1806 @ 24000 = [IF]
16076     MOV #2,&$3A0
16077 [THEN]
16078 MOV #1778,R9
16079 MOV #14,R10
16080 BEGIN
16081 MOV #%1011100100,&$380
16082     RRUM    #1,R9
16083     MOV     R9,R8
16084     RRUM    #1,R8
16085     ADD     R9,R8
16086     BEGIN   CMP R8,&$390
16087     U>= UNTIL
16088     BIT.B   #4,&$200
16089     ADDC    R11,R11
16090     MOV.B   &$200,&$208
16091     BIC.B   #4,&$20C
16092     SUB     #1,R10
16093 0<> WHILE
16094     ADD R9,R8
16095     BEGIN
16096         MOV &$390,R9
16097         CMP R8,R9
16098         U>= IF
16099         BIC #$30,&$380
16100         GOTO BW1
16101         THEN
16102         BIT.B #4,&$20C
16103     0<> UNTIL
16104 REPEAT
16105 BIC #$30,&$380
16106 RLAM    #1,R11
16107 MOV.B   R11,R9
16108 RRUM    #2,R9
16109 BIT     #$4000,R11
16110 0= IF   BIS #$40,R9
16111 THEN
16112 RRUM    #3,R11
16113 XOR     @R1,R11
16114 BIT     #$400,R11
16115 0= ?GOTO BW1
16116 XOR #$400,0(R1)
16117 SUB #8,R15
16118 MOV R14,6(R15)
16119 MOV &$1DDC,4(R15)
16120 MOV #$10,&$1DDC
16121 MOV R9,0(R15)
16122 MOV #0,R14
16123 LO2HI
16124     LCD_CLEAR
16125     <# # #S #36 HOLD #>
16126     ['] LCD_WRC IS EMIT
16127     TYPE
16128     ['] EMIT >BODY IS EMIT
16129 HI2LO
16130 MOV @R15+,&$1DDC
16131 MOV @R15+,R14
16132 MOV @R1+,R0
16133 ENDASM
16134
16135 ASM BACKGROUND
16136 BEGIN
16137     CALL &$1814
16138     BIS &$180A,R2
16139 AGAIN
16140 ENDASM
16141
16142 CODE STOP
16143 BW1 MOV #SLEEP,R9
16144     ADD #4,R9
16145     MOV R9,-2(R9)
16146 COLON
16147 ['] WARM >BODY IS WARM
16148 ECHO
16149 ." RC5toLCD is removed. type START to restart"
16150 COLD
16151 ;
16152
16153 CODE APP_INIT
16154 MOV #%1011010100,&$3C0
16155 $1806 @ 16000 = [IF]
16156     MOV #1,&$3E0
16157 [THEN]
16158 $1806 @ 24000 = [IF]
16159     MOV #2,&$3E0
16160 [THEN]
16161     MOV #19,&$3D2
16162     MOV #%01100000,&$3C6
16163     MOV #10,&$3D6
16164     BIS.B #$20,&$204
16165     BIS.B #$20,&$20A
16166     BIS.B #7,&$245
16167     BIC.B #7,&$247
16168     BIS.B #$0F,&$224
16169     BIC.B #$0F,&$226
16170     BIS.B #4,&$20A
16171     BIC.B #4,&$20C
16172     MOV #RC5_INT,&$FFDE
16173     MOV #%0100010100,&$340
16174     MOV ##3276,&$352
16175     MOV #%10000,&$342
16176     MOV #WDT_INT,&$FFEA
16177 BIC #1,&$130
16178 BIS.B #3,&$20D
16179 MOV &$1808,R8
16180 CMP #4,R8
16181 0= ?GOTO BW1
16182 COLON
16183     #1000 20_US
16184     %011 TOP_LCD
16185     #205 20_US
16186     %011 TOP_LCD
16187     #5 20_US
16188     %011 TOP_LCD
16189     #2 20_US
16190     %010 TOP_LCD
16191     #2 20_US
16192     %00101000 LCD_WRF
16193     %1000 LCD_WRF
16194     LCD_CLEAR
16195     %0110 LCD_WRF
16196     %1100 LCD_WRF
16197     LCD_CLEAR
16198     ['] LCD_HOME IS CR
16199     ['] LCD_WRC  IS EMIT
16200     CR ." I love you"
16201     ['] CR >BODY IS CR
16202     ['] EMIT >BODY IS EMIT
16203     ." RC5toLCD is running. Type STOP to quit"
16204     ABORT
16205 ;
16206
16207 CODE START
16208 MOV #SLEEP,R9
16209 MOV #BACKGROUND,2(R9)
16210 MOV #WARM,R9
16211 MOV #APP_INIT,2(R9)
16212 MOV R9,R0
16213 ENDCODE 
16214
16215 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16216
16217 MARKER {RC5TOLCD}
16218
16219 CODE 20_US
16220 BEGIN
16221     BEGIN
16222         BIT #1,&$3C0
16223     0<> UNTIL
16224     BIC #1,&$3C0
16225     SUB #1,R14
16226 U< UNTIL
16227 MOV @R15+,R14
16228 MOV @R13+,R0
16229 ENDCODE
16230
16231 CODE TOP_LCD
16232     BIS.B #4,&$243
16233     BIT.B #1,&$241
16234 0= IF
16235     AND.B #$0F,R14
16236     MOV.B R14,&$222
16237     BIC.B #4,&$243
16238     MOV @R15+,R14
16239     MOV @R13+,R0
16240 THEN
16241     SUB #2,R15
16242     MOV R14,0(R15)
16243     BIC.B #4,&$243
16244     MOV.B &$220,R14
16245     AND.B #$0F,R14
16246     MOV @R13+,R0
16247 ENDCODE
16248
16249 CODE LCD_WRC
16250     BIS.B #2,&$243
16251 BW1 SUB #2,R15
16252     MOV R14,0(R15)
16253     RRUM #4,R14
16254     BIC.B #1,&$243
16255     BIS.B #$0F,&$224
16256 COLON
16257     TOP_LCD 2 20_US
16258     TOP_LCD 2 20_US 
16259 ;
16260
16261 CODE LCD_WRF
16262     BIC.B #2,&$243
16263     GOTO BW1
16264 ENDCODE
16265
16266 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16267 : LCD_HOME $02 LCD_WRF 100 20_us ;
16268
16269
16270
16271 ASM WDT_INT
16272 ADD #2,R1
16273 BIT.B #$20,&$240
16274 0= IF
16275     CMP #19,&$3D6
16276     U< IF
16277         ADD #1,&$3D6
16278     THEN
16279 ELSE
16280     BIT.B #$40,&$240
16281     0= IF
16282         CMP #3,&$3D6
16283         U>= IF
16284            SUB #1,&$3D6
16285         THEN
16286     THEN
16287 THEN
16288 BW1
16289 MOV @R1+,R0
16290 ENDASM
16291
16292 ASM RC5_INT
16293 ADD #2,R1
16294 $1806 @ 16000 = [IF]
16295     MOV #1,&$3A0
16296 [THEN]
16297 $1806 @ 24000 = [IF]
16298     MOV #2,&$3A0
16299 [THEN]
16300 MOV #1778,R9
16301 MOV #14,R10
16302 BEGIN
16303 MOV #%1011100100,&$380
16304     RRUM    #1,R9
16305     MOV     R9,R8
16306     RRUM    #1,R8
16307     ADD     R9,R8
16308     BEGIN   CMP R8,&$390
16309     U>= UNTIL
16310     BIT.B   #4,&$200
16311     ADDC    R11,R11
16312     MOV.B   &$200,&$208
16313     BIC.B   #4,&$20C
16314     SUB     #1,R10
16315 0<> WHILE
16316     ADD R9,R8
16317     BEGIN
16318         MOV &$390,R9
16319         CMP R8,R9
16320         U>= IF
16321         BIC #$30,&$380
16322         GOTO BW1
16323         THEN
16324         BIT.B #4,&$20C
16325     0<> UNTIL
16326 REPEAT
16327 BIC #$30,&$380
16328 RLAM    #1,R11
16329 MOV.B   R11,R9
16330 RRUM    #2,R9
16331 BIT     #$4000,R11
16332 0= IF   BIS #$40,R9
16333 THEN
16334 RRUM    #3,R11
16335 XOR     @R1,R11
16336 BIT     #$400,R11
16337 0= ?GOTO BW1
16338 XOR #$400,0(R1)
16339 SUB #8,R15
16340 MOV R14,6(R15)
16341 MOV &$1DDC,4(R15)
16342 MOV #$10,&$1DDC
16343 MOV R9,0(R15)
16344 MOV #0,R14
16345 LO2HI
16346     LCD_CLEAR
16347     <# # #S #36 HOLD #>
16348     ['] LCD_WRC IS EMIT
16349     TYPE
16350     ['] EMIT >BODY IS EMIT
16351 HI2LO
16352 MOV @R15+,&$1DDC
16353 MOV @R15+,R14
16354 MOV @R1+,R0
16355 ENDASM
16356
16357 ASM BACKGROUND
16358 BEGIN
16359     CALL &$1814
16360     BIS &$180A,R2
16361 AGAIN
16362 ENDASM
16363
16364 CODE STOP
16365 BW1 MOV #SLEEP,R9
16366     ADD #4,R9
16367     MOV R9,-2(R9)
16368 COLON
16369 ['] WARM >BODY IS WARM
16370 ECHO
16371 ." RC5toLCD is removed. type START to restart"
16372 COLD
16373 ;
16374
16375 CODE APP_INIT
16376 MOV #%1011010100,&$3C0
16377 $1806 @ 16000 = [IF]
16378     MOV #1,&$3E0
16379 [THEN]
16380 $1806 @ 24000 = [IF]
16381     MOV #2,&$3E0
16382 [THEN]
16383     MOV #19,&$3D2
16384     MOV #%01100000,&$3C6
16385     MOV #10,&$3D6
16386     BIS.B #$20,&$204
16387     BIS.B #$20,&$20A
16388     BIS.B #7,&$245
16389     BIC.B #7,&$247
16390     BIS.B #$0F,&$224
16391     BIC.B #$0F,&$226
16392     BIS.B #4,&$20A
16393     BIC.B #4,&$20C
16394     MOV #RC5_INT,&$FFDE
16395     MOV #%0100010100,&$340
16396     MOV ##3276,&$352
16397     MOV #%10000,&$342
16398     MOV #WDT_INT,&$FFEA
16399 BIC #1,&$130
16400 BIS.B #3,&$20D
16401 MOV &$1808,R8
16402 CMP #4,R8
16403 0= ?GOTO BW1
16404 COLON
16405     #1000 20_US
16406     %011 TOP_LCD
16407     #205 20_US
16408     %011 TOP_LCD
16409     #5 20_US
16410     %011 TOP_LCD
16411     #2 20_US
16412     %010 TOP_LCD
16413     #2 20_US
16414     %00101000 LCD_WRF
16415     %1000 LCD_WRF
16416     LCD_CLEAR
16417     %0110 LCD_WRF
16418     %1100 LCD_WRF
16419     LCD_CLEAR
16420     ['] LCD_HOME IS CR
16421     ['] LCD_WRC  IS EMIT
16422     CR ." I love you"
16423     ['] CR >BODY IS CR
16424     ['] EMIT >BODY IS EMIT
16425     ." RC5toLCD is running. Type STOP to quit"
16426     ABORT
16427 ;
16428
16429 CODE START
16430 MOV #SLEEP,R9
16431 MOV #BACKGROUND,2(R9)
16432 MOV #WARM,R9
16433 MOV #APP_INIT,2(R9)
16434 MOV R9,R0
16435 ENDCODE 
16436
16437 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16438
16439 MARKER {RC5TOLCD}
16440
16441 CODE 20_US
16442 BEGIN
16443     BEGIN
16444         BIT #1,&$3C0
16445     0<> UNTIL
16446     BIC #1,&$3C0
16447     SUB #1,R14
16448 U< UNTIL
16449 MOV @R15+,R14
16450 MOV @R13+,R0
16451 ENDCODE
16452
16453 CODE TOP_LCD
16454     BIS.B #4,&$243
16455     BIT.B #1,&$241
16456 0= IF
16457     AND.B #$0F,R14
16458     MOV.B R14,&$222
16459     BIC.B #4,&$243
16460     MOV @R15+,R14
16461     MOV @R13+,R0
16462 THEN
16463     SUB #2,R15
16464     MOV R14,0(R15)
16465     BIC.B #4,&$243
16466     MOV.B &$220,R14
16467     AND.B #$0F,R14
16468     MOV @R13+,R0
16469 ENDCODE
16470
16471 CODE LCD_WRC
16472     BIS.B #2,&$243
16473 BW1 SUB #2,R15
16474     MOV R14,0(R15)
16475     RRUM #4,R14
16476     BIC.B #1,&$243
16477     BIS.B #$0F,&$224
16478 COLON
16479     TOP_LCD 2 20_US
16480     TOP_LCD 2 20_US 
16481 ;
16482
16483 CODE LCD_WRF
16484     BIC.B #2,&$243
16485     GOTO BW1
16486 ENDCODE
16487
16488 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16489 : LCD_HOME $02 LCD_WRF 100 20_us ;
16490
16491
16492
16493 ASM WDT_INT
16494 ADD #2,R1
16495 BIT.B #$20,&$240
16496 0= IF
16497     CMP #19,&$3D6
16498     U< IF
16499         ADD #1,&$3D6
16500     THEN
16501 ELSE
16502     BIT.B #$40,&$240
16503     0= IF
16504         CMP #3,&$3D6
16505         U>= IF
16506            SUB #1,&$3D6
16507         THEN
16508     THEN
16509 THEN
16510 BW1
16511 MOV @R1+,R0
16512 ENDASM
16513
16514 ASM RC5_INT
16515 ADD #2,R1
16516 $1806 @ 16000 = [IF]
16517     MOV #1,&$3A0
16518 [THEN]
16519 $1806 @ 24000 = [IF]
16520     MOV #2,&$3A0
16521 [THEN]
16522 MOV #1778,R9
16523 MOV #14,R10
16524 BEGIN
16525 MOV #%1011100100,&$380
16526     RRUM    #1,R9
16527     MOV     R9,R8
16528     RRUM    #1,R8
16529     ADD     R9,R8
16530     BEGIN   CMP R8,&$390
16531     U>= UNTIL
16532     BIT.B   #4,&$200
16533     ADDC    R11,R11
16534     MOV.B   &$200,&$208
16535     BIC.B   #4,&$20C
16536     SUB     #1,R10
16537 0<> WHILE
16538     ADD R9,R8
16539     BEGIN
16540         MOV &$390,R9
16541         CMP R8,R9
16542         U>= IF
16543         BIC #$30,&$380
16544         GOTO BW1
16545         THEN
16546         BIT.B #4,&$20C
16547     0<> UNTIL
16548 REPEAT
16549 BIC #$30,&$380
16550 RLAM    #1,R11
16551 MOV.B   R11,R9
16552 RRUM    #2,R9
16553 BIT     #$4000,R11
16554 0= IF   BIS #$40,R9
16555 THEN
16556 RRUM    #3,R11
16557 XOR     @R1,R11
16558 BIT     #$400,R11
16559 0= ?GOTO BW1
16560 XOR #$400,0(R1)
16561 SUB #8,R15
16562 MOV R14,6(R15)
16563 MOV &$1DDC,4(R15)
16564 MOV #$10,&$1DDC
16565 MOV R9,0(R15)
16566 MOV #0,R14
16567 LO2HI
16568     LCD_CLEAR
16569     <# # #S #36 HOLD #>
16570     ['] LCD_WRC IS EMIT
16571     TYPE
16572     ['] EMIT >BODY IS EMIT
16573 HI2LO
16574 MOV @R15+,&$1DDC
16575 MOV @R15+,R14
16576 MOV @R1+,R0
16577 ENDASM
16578
16579 ASM BACKGROUND
16580 BEGIN
16581     CALL &$1814
16582     BIS &$180A,R2
16583 AGAIN
16584 ENDASM
16585
16586 CODE STOP
16587 BW1 MOV #SLEEP,R9
16588     ADD #4,R9
16589     MOV R9,-2(R9)
16590 COLON
16591 ['] WARM >BODY IS WARM
16592 ECHO
16593 ." RC5toLCD is removed. type START to restart"
16594 COLD
16595 ;
16596
16597 CODE APP_INIT
16598 MOV #%1011010100,&$3C0
16599 $1806 @ 16000 = [IF]
16600     MOV #1,&$3E0
16601 [THEN]
16602 $1806 @ 24000 = [IF]
16603     MOV #2,&$3E0
16604 [THEN]
16605     MOV #19,&$3D2
16606     MOV #%01100000,&$3C6
16607     MOV #10,&$3D6
16608     BIS.B #$20,&$204
16609     BIS.B #$20,&$20A
16610     BIS.B #7,&$245
16611     BIC.B #7,&$247
16612     BIS.B #$0F,&$224
16613     BIC.B #$0F,&$226
16614     BIS.B #4,&$20A
16615     BIC.B #4,&$20C
16616     MOV #RC5_INT,&$FFDE
16617     MOV #%0100010100,&$340
16618     MOV ##3276,&$352
16619     MOV #%10000,&$342
16620     MOV #WDT_INT,&$FFEA
16621 BIC #1,&$130
16622 BIS.B #3,&$20D
16623 MOV &$1808,R8
16624 CMP #4,R8
16625 0= ?GOTO BW1
16626 COLON
16627     #1000 20_US
16628     %011 TOP_LCD
16629     #205 20_US
16630     %011 TOP_LCD
16631     #5 20_US
16632     %011 TOP_LCD
16633     #2 20_US
16634     %010 TOP_LCD
16635     #2 20_US
16636     %00101000 LCD_WRF
16637     %1000 LCD_WRF
16638     LCD_CLEAR
16639     %0110 LCD_WRF
16640     %1100 LCD_WRF
16641     LCD_CLEAR
16642     ['] LCD_HOME IS CR
16643     ['] LCD_WRC  IS EMIT
16644     CR ." I love you"
16645     ['] CR >BODY IS CR
16646     ['] EMIT >BODY IS EMIT
16647     ." RC5toLCD is running. Type STOP to quit"
16648     ABORT
16649 ;
16650
16651 CODE START
16652 MOV #SLEEP,R9
16653 MOV #BACKGROUND,2(R9)
16654 MOV #WARM,R9
16655 MOV #APP_INIT,2(R9)
16656 MOV R9,R0
16657 ENDCODE 
16658
16659 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16660
16661 MARKER {RC5TOLCD}
16662
16663 CODE 20_US
16664 BEGIN
16665     BEGIN
16666         BIT #1,&$3C0
16667     0<> UNTIL
16668     BIC #1,&$3C0
16669     SUB #1,R14
16670 U< UNTIL
16671 MOV @R15+,R14
16672 MOV @R13+,R0
16673 ENDCODE
16674
16675 CODE TOP_LCD
16676     BIS.B #4,&$243
16677     BIT.B #1,&$241
16678 0= IF
16679     AND.B #$0F,R14
16680     MOV.B R14,&$222
16681     BIC.B #4,&$243
16682     MOV @R15+,R14
16683     MOV @R13+,R0
16684 THEN
16685     SUB #2,R15
16686     MOV R14,0(R15)
16687     BIC.B #4,&$243
16688     MOV.B &$220,R14
16689     AND.B #$0F,R14
16690     MOV @R13+,R0
16691 ENDCODE
16692
16693 CODE LCD_WRC
16694     BIS.B #2,&$243
16695 BW1 SUB #2,R15
16696     MOV R14,0(R15)
16697     RRUM #4,R14
16698     BIC.B #1,&$243
16699     BIS.B #$0F,&$224
16700 COLON
16701     TOP_LCD 2 20_US
16702     TOP_LCD 2 20_US 
16703 ;
16704
16705 CODE LCD_WRF
16706     BIC.B #2,&$243
16707     GOTO BW1
16708 ENDCODE
16709
16710 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16711 : LCD_HOME $02 LCD_WRF 100 20_us ;
16712
16713
16714
16715 ASM WDT_INT
16716 ADD #2,R1
16717 BIT.B #$20,&$240
16718 0= IF
16719     CMP #19,&$3D6
16720     U< IF
16721         ADD #1,&$3D6
16722     THEN
16723 ELSE
16724     BIT.B #$40,&$240
16725     0= IF
16726         CMP #3,&$3D6
16727         U>= IF
16728            SUB #1,&$3D6
16729         THEN
16730     THEN
16731 THEN
16732 BW1
16733 MOV @R1+,R0
16734 ENDASM
16735
16736 ASM RC5_INT
16737 ADD #2,R1
16738 $1806 @ 16000 = [IF]
16739     MOV #1,&$3A0
16740 [THEN]
16741 $1806 @ 24000 = [IF]
16742     MOV #2,&$3A0
16743 [THEN]
16744 MOV #1778,R9
16745 MOV #14,R10
16746 BEGIN
16747 MOV #%1011100100,&$380
16748     RRUM    #1,R9
16749     MOV     R9,R8
16750     RRUM    #1,R8
16751     ADD     R9,R8
16752     BEGIN   CMP R8,&$390
16753     U>= UNTIL
16754     BIT.B   #4,&$200
16755     ADDC    R11,R11
16756     MOV.B   &$200,&$208
16757     BIC.B   #4,&$20C
16758     SUB     #1,R10
16759 0<> WHILE
16760     ADD R9,R8
16761     BEGIN
16762         MOV &$390,R9
16763         CMP R8,R9
16764         U>= IF
16765         BIC #$30,&$380
16766         GOTO BW1
16767         THEN
16768         BIT.B #4,&$20C
16769     0<> UNTIL
16770 REPEAT
16771 BIC #$30,&$380
16772 RLAM    #1,R11
16773 MOV.B   R11,R9
16774 RRUM    #2,R9
16775 BIT     #$4000,R11
16776 0= IF   BIS #$40,R9
16777 THEN
16778 RRUM    #3,R11
16779 XOR     @R1,R11
16780 BIT     #$400,R11
16781 0= ?GOTO BW1
16782 XOR #$400,0(R1)
16783 SUB #8,R15
16784 MOV R14,6(R15)
16785 MOV &$1DDC,4(R15)
16786 MOV #$10,&$1DDC
16787 MOV R9,0(R15)
16788 MOV #0,R14
16789 LO2HI
16790     LCD_CLEAR
16791     <# # #S #36 HOLD #>
16792     ['] LCD_WRC IS EMIT
16793     TYPE
16794     ['] EMIT >BODY IS EMIT
16795 HI2LO
16796 MOV @R15+,&$1DDC
16797 MOV @R15+,R14
16798 MOV @R1+,R0
16799 ENDASM
16800
16801 ASM BACKGROUND
16802 BEGIN
16803     CALL &$1814
16804     BIS &$180A,R2
16805 AGAIN
16806 ENDASM
16807
16808 CODE STOP
16809 BW1 MOV #SLEEP,R9
16810     ADD #4,R9
16811     MOV R9,-2(R9)
16812 COLON
16813 ['] WARM >BODY IS WARM
16814 ECHO
16815 ." RC5toLCD is removed. type START to restart"
16816 COLD
16817 ;
16818
16819 CODE APP_INIT
16820 MOV #%1011010100,&$3C0
16821 $1806 @ 16000 = [IF]
16822     MOV #1,&$3E0
16823 [THEN]
16824 $1806 @ 24000 = [IF]
16825     MOV #2,&$3E0
16826 [THEN]
16827     MOV #19,&$3D2
16828     MOV #%01100000,&$3C6
16829     MOV #10,&$3D6
16830     BIS.B #$20,&$204
16831     BIS.B #$20,&$20A
16832     BIS.B #7,&$245
16833     BIC.B #7,&$247
16834     BIS.B #$0F,&$224
16835     BIC.B #$0F,&$226
16836     BIS.B #4,&$20A
16837     BIC.B #4,&$20C
16838     MOV #RC5_INT,&$FFDE
16839     MOV #%0100010100,&$340
16840     MOV ##3276,&$352
16841     MOV #%10000,&$342
16842     MOV #WDT_INT,&$FFEA
16843 BIC #1,&$130
16844 BIS.B #3,&$20D
16845 MOV &$1808,R8
16846 CMP #4,R8
16847 0= ?GOTO BW1
16848 COLON
16849     #1000 20_US
16850     %011 TOP_LCD
16851     #205 20_US
16852     %011 TOP_LCD
16853     #5 20_US
16854     %011 TOP_LCD
16855     #2 20_US
16856     %010 TOP_LCD
16857     #2 20_US
16858     %00101000 LCD_WRF
16859     %1000 LCD_WRF
16860     LCD_CLEAR
16861     %0110 LCD_WRF
16862     %1100 LCD_WRF
16863     LCD_CLEAR
16864     ['] LCD_HOME IS CR
16865     ['] LCD_WRC  IS EMIT
16866     CR ." I love you"
16867     ['] CR >BODY IS CR
16868     ['] EMIT >BODY IS EMIT
16869     ." RC5toLCD is running. Type STOP to quit"
16870     ABORT
16871 ;
16872
16873 CODE START
16874 MOV #SLEEP,R9
16875 MOV #BACKGROUND,2(R9)
16876 MOV #WARM,R9
16877 MOV #APP_INIT,2(R9)
16878 MOV R9,R0
16879 ENDCODE 
16880
16881 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
16882
16883 MARKER {RC5TOLCD}
16884
16885 CODE 20_US
16886 BEGIN
16887     BEGIN
16888         BIT #1,&$3C0
16889     0<> UNTIL
16890     BIC #1,&$3C0
16891     SUB #1,R14
16892 U< UNTIL
16893 MOV @R15+,R14
16894 MOV @R13+,R0
16895 ENDCODE
16896
16897 CODE TOP_LCD
16898     BIS.B #4,&$243
16899     BIT.B #1,&$241
16900 0= IF
16901     AND.B #$0F,R14
16902     MOV.B R14,&$222
16903     BIC.B #4,&$243
16904     MOV @R15+,R14
16905     MOV @R13+,R0
16906 THEN
16907     SUB #2,R15
16908     MOV R14,0(R15)
16909     BIC.B #4,&$243
16910     MOV.B &$220,R14
16911     AND.B #$0F,R14
16912     MOV @R13+,R0
16913 ENDCODE
16914
16915 CODE LCD_WRC
16916     BIS.B #2,&$243
16917 BW1 SUB #2,R15
16918     MOV R14,0(R15)
16919     RRUM #4,R14
16920     BIC.B #1,&$243
16921     BIS.B #$0F,&$224
16922 COLON
16923     TOP_LCD 2 20_US
16924     TOP_LCD 2 20_US 
16925 ;
16926
16927 CODE LCD_WRF
16928     BIC.B #2,&$243
16929     GOTO BW1
16930 ENDCODE
16931
16932 : LCD_CLEAR $01 LCD_WRF 100 20_us ;
16933 : LCD_HOME $02 LCD_WRF 100 20_us ;
16934
16935
16936
16937 ASM WDT_INT
16938 ADD #2,R1
16939 BIT.B #$20,&$240
16940 0= IF
16941     CMP #19,&$3D6
16942     U< IF
16943         ADD #1,&$3D6
16944     THEN
16945 ELSE
16946     BIT.B #$40,&$240
16947     0= IF
16948         CMP #3,&$3D6
16949         U>= IF
16950            SUB #1,&$3D6
16951         THEN
16952     THEN
16953 THEN
16954 BW1
16955 MOV @R1+,R0
16956 ENDASM
16957
16958 ASM RC5_INT
16959 ADD #2,R1
16960 $1806 @ 16000 = [IF]
16961     MOV #1,&$3A0
16962 [THEN]
16963 $1806 @ 24000 = [IF]
16964     MOV #2,&$3A0
16965 [THEN]
16966 MOV #1778,R9
16967 MOV #14,R10
16968 BEGIN
16969 MOV #%1011100100,&$380
16970     RRUM    #1,R9
16971     MOV     R9,R8
16972     RRUM    #1,R8
16973     ADD     R9,R8
16974     BEGIN   CMP R8,&$390
16975     U>= UNTIL
16976     BIT.B   #4,&$200
16977     ADDC    R11,R11
16978     MOV.B   &$200,&$208
16979     BIC.B   #4,&$20C
16980     SUB     #1,R10
16981 0<> WHILE
16982     ADD R9,R8
16983     BEGIN
16984         MOV &$390,R9
16985         CMP R8,R9
16986         U>= IF
16987         BIC #$30,&$380
16988         GOTO BW1
16989         THEN
16990         BIT.B #4,&$20C
16991     0<> UNTIL
16992 REPEAT
16993 BIC #$30,&$380
16994 RLAM    #1,R11
16995 MOV.B   R11,R9
16996 RRUM    #2,R9
16997 BIT     #$4000,R11
16998 0= IF   BIS #$40,R9
16999 THEN
17000 RRUM    #3,R11
17001 XOR     @R1,R11
17002 BIT     #$400,R11
17003 0= ?GOTO BW1
17004 XOR #$400,0(R1)
17005 SUB #8,R15
17006 MOV R14,6(R15)
17007 MOV &$1DDC,4(R15)
17008 MOV #$10,&$1DDC
17009 MOV R9,0(R15)
17010 MOV #0,R14
17011 LO2HI
17012     LCD_CLEAR
17013     <# # #S #36 HOLD #>
17014     ['] LCD_WRC IS EMIT
17015     TYPE
17016     ['] EMIT >BODY IS EMIT
17017 HI2LO
17018 MOV @R15+,&$1DDC
17019 MOV @R15+,R14
17020 MOV @R1+,R0
17021 ENDASM
17022
17023 ASM BACKGROUND
17024 BEGIN
17025     CALL &$1814
17026     BIS &$180A,R2
17027 AGAIN
17028 ENDASM
17029
17030 CODE STOP
17031 BW1 MOV #SLEEP,R9
17032     ADD #4,R9
17033     MOV R9,-2(R9)
17034 COLON
17035 ['] WARM >BODY IS WARM
17036 ECHO
17037 ." RC5toLCD is removed. type START to restart"
17038 COLD
17039 ;
17040
17041 CODE APP_INIT
17042 MOV #%1011010100,&$3C0
17043 $1806 @ 16000 = [IF]
17044     MOV #1,&$3E0
17045 [THEN]
17046 $1806 @ 24000 = [IF]
17047     MOV #2,&$3E0
17048 [THEN]
17049     MOV #19,&$3D2
17050     MOV #%01100000,&$3C6
17051     MOV #10,&$3D6
17052     BIS.B #$20,&$204
17053     BIS.B #$20,&$20A
17054     BIS.B #7,&$245
17055     BIC.B #7,&$247
17056     BIS.B #$0F,&$224
17057     BIC.B #$0F,&$226
17058     BIS.B #4,&$20A
17059     BIC.B #4,&$20C
17060     MOV #RC5_INT,&$FFDE
17061     MOV #%0100010100,&$340
17062     MOV ##3276,&$352
17063     MOV #%10000,&$342
17064     MOV #WDT_INT,&$FFEA
17065 BIC #1,&$130
17066 BIS.B #3,&$20D
17067 MOV &$1808,R8
17068 CMP #4,R8
17069 0= ?GOTO BW1
17070 COLON
17071     #1000 20_US
17072     %011 TOP_LCD
17073     #205 20_US
17074     %011 TOP_LCD
17075     #5 20_US
17076     %011 TOP_LCD
17077     #2 20_US
17078     %010 TOP_LCD
17079     #2 20_US
17080     %00101000 LCD_WRF
17081     %1000 LCD_WRF
17082     LCD_CLEAR
17083     %0110 LCD_WRF
17084     %1100 LCD_WRF
17085     LCD_CLEAR
17086     ['] LCD_HOME IS CR
17087     ['] LCD_WRC  IS EMIT
17088     CR ." I love you"
17089     ['] CR >BODY IS CR
17090     ['] EMIT >BODY IS EMIT
17091     ." RC5toLCD is running. Type STOP to quit"
17092     ABORT
17093 ;
17094
17095 CODE START
17096 MOV #SLEEP,R9
17097 MOV #BACKGROUND,2(R9)
17098 MOV #WARM,R9
17099 MOV #APP_INIT,2(R9)
17100 MOV R9,R0
17101 ENDCODE 
17102
17103
17104
17105 ECHO
17106             ; downloading RC5toLCD.4th is done
17107 RST_HERE    ; this app is protected against <reset>
17108