OSDN Git Service

dbf5c4cfa997e155bf371b83b88c52490fd36d46
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / TESTXASM.4TH
1
2 ; -----------------------------------------------------------------------
3 ; TESTXASM.4th
4 ; -----------------------------------------------------------------------
5
6 ECHO
7
8 PWR_STATE
9
10 [UNDEFINED] PLUS [IF]
11 CODE +
12 ADD @R15+,R14
13 MOV @R13+,R0
14 ENDCODE
15 [THEN]
16
17 [UNDEFINED] MAX [IF]
18
19 CODE MAX
20     CMP @R15,R14
21     S<  ?GOTO FW1
22 BW1 ADD #2,R15
23     MOV @R13+,R0
24 ENDCODE
25
26 CODE MIN
27     CMP @R15,R14
28     S<  ?GOTO BW1
29 FW1 MOV @R15+,R14
30     MOV @R13+,R0
31 ENDCODE
32
33 [THEN]
34
35 [UNDEFINED] C@ [IF]
36 CODE C@
37 MOV.B @R14,R14
38 MOV @R13+,R0
39 ENDCODE
40 [THEN]
41
42 [UNDEFINED] CONSTANT [IF]
43 : CONSTANT 
44 DEFER
45 HI2LO
46 MOV @R1+,R13
47 MOV #$1285,-4(R10)
48 MOV R14,-2(R10)
49 MOV @R15+,R14
50 MOV @R13+,R0
51 ENDCODE
52 [THEN]
53
54 [UNDEFINED] BL [IF]
55 #32 CONSTANT BL
56 [THEN]
57
58 [UNDEFINED] SPACE [IF]
59 : SPACE
60 BL EMIT ;
61 [THEN]
62
63 [UNDEFINED] SPACES [IF]
64 CODE SPACES
65 CMP #0,R14
66 0<> IF
67     PUSH R13
68     BEGIN
69         LO2HI
70         BL EMIT
71         HI2LO
72         SUB #2,R13 
73         SUB #1,R14
74     0= UNTIL
75     MOV @R1+,R13
76 THEN
77 MOV @R15+,R14
78 MOV @R13+,R0              
79 ENDCODE
80 [THEN]
81
82 [UNDEFINED] OVER [IF]
83 CODE OVER
84 MOV R14,-2(R15)
85 MOV @R15,R14
86 SUB #2,R15
87 MOV @R13+,R0
88 ENDCODE
89 [THEN]
90
91 [UNDEFINED] U.R [IF]
92 : U.R
93   >R  <# 0 # #S #>  
94   R> OVER - 0 MAX SPACES TYPE
95 ;
96 [THEN]
97
98 [UNDEFINED] DUMP [IF]
99 CODE DUMP
100 PUSH R13
101 PUSH &$1DDC
102 MOV #$10,&$1DDC
103 ADD @R15,R14
104 LO2HI
105   SWAP
106   DO  CR
107     I 4 U.R SPACE
108       I 8 + I
109       DO I C@ 3 U.R LOOP
110       SPACE
111       I $10 + I 8 +
112       DO I C@ 3 U.R LOOP  
113       SPACE SPACE
114       I $10 + I
115       DO I C@ $7E MIN BL MAX EMIT LOOP
116   $10 +LOOP
117   R> $1DDC !
118 ;
119 [THEN]
120
121 PWR_HERE
122
123 ; --------------------------------------------------------------------------------
124 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : Adda|Cmpa|Mova|Suba (without extended word)
125 ; --------------------------------------------------------------------------------
126 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
127 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
128 ; --------------------------------------------------------------------------------
129
130 HERE
131 CODE TEST
132 MOVA @R10,R11
133 ENDCODE
134 HERE OVER - DUMP
135 ; you should see: 45 53 54 52>0B 0A<04 44 55 4D 50 4F
136 PWR_STATE
137
138 HERE
139 CODE TEST
140 MOVA @R11+,R10
141 ENDCODE
142 HERE OVER - DUMP
143 ; you should see: 45 53 54 52>1A 0B<04 44 55 4D 50 4F
144 PWR_STATE
145
146 HERE
147 CODE TEST
148 MOVA &$1.2345,R11
149 ENDCODE
150 HERE OVER - DUMP
151 ; you should see: 45 53 54 52>2B 01 45 23<04 44 55 4D
152 PWR_STATE
153
154 HERE
155 CODE TEST
156 MOVA $.1234(R10),R12
157 ENDCODE
158 HERE OVER - DUMP
159 ; you should see: 45 53 54 52>3C 0A 34 12<04 44 55 4D
160 PWR_STATE
161
162 HERE
163 CODE TEST
164 MOVA R11,&$1.2345
165 ENDCODE
166 HERE OVER - DUMP
167 ; you should see: 45 53 54 52>61 0B 45 23<04 44 55 4D
168 PWR_STATE
169
170 HERE
171 CODE TEST
172 MOVA R12,$.1234(R10)
173 ENDCODE
174 HERE OVER - DUMP
175 ; you should see: 45 53 54 52>7A 0C 34 12<04 44 55 4D
176 PWR_STATE
177
178 HERE
179 CODE TEST
180 MOVA #$0.1,R12
181 ENDCODE
182 HERE OVER - DUMP
183 ; you should see: 45 53 54 52>8C 00 01 00<04 44 55 4D
184 PWR_STATE
185
186 HERE
187 CODE TEST
188 CMPA #$1.2345,R12
189 ENDCODE
190 HERE OVER - DUMP
191 ; you should see: 45 53 54 52>9C 01 45 23<04 44 55 4D
192 PWR_STATE
193
194 HERE
195 CODE TEST
196 ADDA #$2.3456,R12
197 ENDCODE
198 HERE OVER - DUMP
199 ; you should see: 45 53 54 52>AC 02 56 34<04 44 55 4D
200 PWR_STATE
201
202 HERE
203 CODE TEST
204 SUBA #$3.4567,R12
205 ENDCODE
206 HERE OVER - DUMP
207 ; you should see: 45 53 54 52>BC 03 67 45<04 44 55 4D
208 PWR_STATE
209
210
211
212 HERE
213 CODE TEST
214 MOVA R10,R11
215 ENDCODE
216 HERE OVER - DUMP
217 ; you should see: 45 53 54 52>CB 0A<04 44 55 4D 50 4F
218 PWR_STATE
219
220 HERE
221 CODE TEST
222 CMPA R10,R11
223 ENDCODE
224 HERE OVER - DUMP
225 ; you should see: 45 53 54 52>DB 0A<04 44 55 4D 50 4F
226 PWR_STATE
227
228 HERE
229 CODE TEST
230 ADDA R10,R11
231 ENDCODE
232 HERE OVER - DUMP
233 ; you should see: 45 53 54 52>EB 0A<04 44 55 4D 50 4F
234 PWR_STATE
235
236 HERE
237 CODE TEST
238 SUBA R10,R11
239 ENDCODE
240 HERE OVER - DUMP
241 ; you should see: 45 53 54 52>FB 0A<04 44 55 4D 50 4F
242 PWR_STATE
243
244 ; --------------------------------------------------------------------------------
245 ; DTCforthMSP430FR5xxx ASSEMBLER: CALLA (without extended word)
246 ; --------------------------------------------------------------------------------
247 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
248 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
249 ; --------------------------------------------------------------------------------
250
251 HERE
252 CODE TEST
253 CALLA R10
254 ENDCODE
255 HERE OVER - DUMP
256 ; you should see: 45 53 54 52>4A 13<04 44 55 4D 50 4F
257 PWR_STATE
258
259 HERE
260 CODE TEST
261 CALLA $.3456(R10)
262 ENDCODE
263 HERE OVER - DUMP
264 ; you should see: 45 53 54 52>5A 13 56 34<04 44 55 4D
265 PWR_STATE
266
267 HERE
268 CODE TEST
269 CALLA @R10
270 ENDCODE
271 HERE OVER - DUMP
272 ; you should see: 45 53 54 52>6A 13<04 44 55 4D 50 4F
273 PWR_STATE
274
275 HERE
276 CODE TEST
277 CALLA @R10+
278 ENDCODE
279 HERE OVER - DUMP
280 ; you should see: 45 53 54 52>7A 13<04 44 55 4D 50 4F
281 PWR_STATE
282
283 HERE
284 CODE TEST
285 CALLA &$2.3456
286 ENDCODE
287 HERE OVER - DUMP
288 ; you should see: 45 53 54 52>82 13 56 34<04 44 55 4D
289 PWR_STATE
290
291 HERE
292 CODE TEST
293 CALLA #$5.6789
294 ENDCODE
295 HERE OVER - DUMP
296 ; you should see: 45 53 54 52>B5 13 89 67<04 44 55 4D
297 PWR_STATE
298
299 ; --------------------------------------------------------------------------------
300 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES V extended double operand
301 ; --------------------------------------------------------------------------------
302 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
303 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
304 ; --------------------------------------------------------------------------------
305
306 HERE
307 CODE TEST
308 MOV R12,R11
309 MOVX R12,R11
310 ENDCODE
311 HERE OVER - DUMP
312 ; you should see: 45 53 54 52>0B 4C 40 18 0B 4C<04 44
313 PWR_STATE
314
315 HERE
316 CODE TEST
317 ADD R11,R11
318 ADDX.A R11,R11
319 ENDCODE
320 HERE OVER - DUMP
321 ; you should see: 45 53 54 52>0B 5B 00 18 4B 5B<04 44
322 PWR_STATE
323
324 HERE
325 CODE TEST
326 ADD R11,R11
327 RPT R9
328 ADDX.A R11,R11
329 ENDCODE
330 HERE OVER - DUMP
331 ; you should see: 45 53 54 52>0B 5B 89 18 4B 5B<04 44
332 PWR_STATE
333
334 HERE
335 CODE TEST
336 ADD R11,R11
337 RPT #8
338 ADDX.A R11,R11
339 ENDCODE
340 HERE OVER - DUMP
341 ; you should see: 45 53 54 52>0B 5B 07 18 4B 5B<04 44
342 PWR_STATE
343
344 HERE
345 CODE TEST
346 ADDC #$9876,R11
347 ADDCX.A #$5.9876,R11
348 ENDCODE
349 HERE OVER - DUMP
350 ; you should see: 45 53 54 52>3B 60 76 98 80 1A 7B 60
351 ;     76 98<04 44 55 4D
352 PWR_STATE
353
354 HERE
355 CODE TEST
356 ADDC &$9876,R11
357 ADDCX.A &$5.9876,R11
358 ENDCODE
359 HERE OVER - DUMP
360 ; you should see: 45 53 54 52>1B 62 76 98 80 1A 5B 62
361 ;     76 98<04 44 55 4D
362 PWR_STATE
363
364 HERE
365 CODE TEST
366 XOR.B $5432(R12),R11
367 XORX.B $6.5432(R12),R11
368 ENDCODE
369 HERE OVER - DUMP
370 ; you should see: 45 53 54 52>5B EC 32 54 46 18 5B EC
371 ;     32 54<04 44 55 4D
372 PWR_STATE
373
374 HERE
375 CODE TEST
376 SUBC R11,$5432(R12)
377 SUBCX.A R11,$6.5432(R12)
378 ENDCODE
379 HERE OVER - DUMP
380 ; you should see: 45 53 54 52>8C 7B 32 54 06 18 CC 7B
381 ;     32 54<04 44 55 4D
382 PWR_STATE
383
384 HERE
385 CODE TEST
386 XOR.B R11,$5432(R12)
387 XORX.B R11,$6.5432(R12)
388 ENDCODE
389 HERE OVER - DUMP
390 ; you should see: 45 53 54 52>CC EB 32 54 46 18 CC EB
391 ;     32 54<04 44 55 4D
392 PWR_STATE
393
394 ; --------------------------------------------------------------------------------
395 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES VI extended single operand (take count of RPT)
396 ; --------------------------------------------------------------------------------
397 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
398 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
399 ; --------------------------------------------------------------------------------
400
401 HERE
402 CODE TEST
403 RRA R9
404 RRAX R9
405 ENDCODE
406 HERE OVER - DUMP
407 ; you should see: 45 53 54 52>09 11 40 18 09 11<04 44
408 PWR_STATE
409
410 HERE
411 CODE TEST
412 RRC @R9
413 RRCX.A @R9
414 ENDCODE
415 HERE OVER - DUMP
416 ; you should see: 45 53 54 52>29 10 00 18 69 10<04 44
417 PWR_STATE
418
419 HERE
420 CODE TEST
421 RRC @R12
422 RRCX.A @R12
423 ENDCODE
424 HERE OVER - DUMP
425 ; you should see: 45 53 54 52>2C 10 00 18 6C 10<04 44
426 PWR_STATE
427
428 HERE
429 CODE TEST
430 RRC @R9+
431 RRUX.A @R9+
432 ENDCODE
433 HERE OVER - DUMP
434 ; you should see: 45 53 54 52>39 10 00 19 79 10<04 44
435 PWR_STATE
436
437 HERE
438 CODE TEST
439 RRC R11
440 RPT #9
441 RRUX.A R11
442 ENDCODE
443 HERE OVER - DUMP
444 ; you should see: 45 53 54 52>0B 10 08 19 4B 10<04 44
445 PWR_STATE
446
447 HERE
448 CODE TEST
449 RRC R11
450 RPT R9
451 RRUX.A R11
452 ENDCODE
453 HERE OVER - DUMP
454 ; you should see: 45 53 54 52>0B 10 89 19 4B 10<04 44
455 PWR_STATE
456
457 HERE
458 CODE TEST
459 PUSH #$2345
460 PUSHX #$0.2345
461 ENDCODE
462 HERE OVER - DUMP
463 ; you should see: 45 53 54 52>30 12 45 23 40 18 30 12
464 ;     45 23<04 44 55 4D
465 PWR_STATE
466
467 HERE
468 CODE TEST
469 PUSH &$5678
470 PUSHX.A &$4.5678
471 ENDCODE
472 HERE OVER - DUMP
473 ; you should see: 45 53 54 52>12 12 78 56 00 1A 52 12
474 ;     78 56<04 44 55 4D
475 PWR_STATE
476
477 HERE
478 CODE TEST
479 PUSH.B &$33
480 PUSHX.B &$.33
481 ENDCODE
482 HERE OVER - DUMP
483 ; you should see: 45 53 54 52>52 12 33 00 40 18 52 12
484 ;     33 00<04 44 55 4D
485 PWR_STATE
486
487 HERE
488 CODE TEST
489 PUSH.B $3344(R11)
490 PUSHX.B $.3344(R11)
491 ENDCODE
492 HERE OVER - DUMP
493 ; you should see: 45 53 54 52>5B 12 44 33 40 18 5B 12
494 ;     44 33<04 44 55 4D
495 PWR_STATE
496
497
498
499 : %.
500 $1DDC @ %10 $1DDC ! SWAP 8 EMIT . $1DDC !
501 ;
502
503 : %U.
504 $1DDC @ %10 $1DDC ! SWAP 8 EMIT U. $1DDC ! ;
505
506 PWR_HERE
507
508
509 ; ================
510 ; RRUX test
511 ; ================
512
513
514 CODE RRUX_T
515 MOVX #$.F0F0,R8
516 RRUX R8
517 SUB #2,R15
518 MOV R14,0(R15)
519 MOV R8,R14
520 MOV #%.,R0
521 ENDCODE
522
523 RRUX_T ; you should see %111100001111000 --> %
524
525 PWR_STATE
526
527 ; ================
528 ; RRUX repeat test
529 ; ================
530
531
532 CODE RRUX_T
533 MOV #$F0F0,R8
534 RPT #1
535 RRUX R8
536 SUB #2,R15
537 MOV R14,0(R15)
538 MOV R8,R14
539 MOV #%.,R0
540 ENDCODE
541
542 RRUX_T ; you should see %111100001111000 --> %
543
544 PWR_STATE
545
546 CODE RRUX_T
547 MOV #$F0F0,R8
548 RPT #4
549 RRUX R8
550 SUB #2,R15
551 MOV R14,0(R15)
552 MOV R8,R14
553 MOV #%.,R0
554 ENDCODE
555
556 RRUX_T ; you should see %111100001111 --> %
557
558 PWR_STATE
559
560 CODE RRUX_T
561 MOV #$F0F0,R8
562 RPT #8
563 RRUX R8
564 SUB #2,R15
565 MOV R14,0(R15)
566 MOV R8,R14
567 MOV #%.,R0
568 ENDCODE
569
570 RRUX_T ; you should see %11110000 --> %
571
572 PWR_STATE
573
574
575 ; ================
576 ; RRCX test
577 ; ================
578
579
580 CODE RRCX_T
581 MOV #$8000,R8
582 BIC #1,R2
583 RRCX R8
584 SUB #2,R15
585 MOV R14,0(R15)
586 MOV R8,R14
587 MOV #%U.,R0
588 ENDCODE
589
590 RRCX_T ; you should see %100000000000000 --> %
591
592 PWR_STATE
593
594 ; ================
595 ; RRCX repeat test
596 ; ================
597
598 CODE RRCX_T
599 MOV #$8000,R8
600 BIC #1,R2
601 RPT #1
602 RRCX R8
603 SUB #2,R15
604 MOV R14,0(R15)
605 MOV R8,R14
606 MOV #%U.,R0
607 ENDCODE
608
609 RRCX_T ; you should see %100000000000000 --> %
610
611 PWR_STATE
612
613 CODE RRCX_T
614 MOV #$8000,R8
615 BIC #1,R2
616 RPT #8
617 RRCX R8
618 SUB #2,R15
619 MOV R14,0(R15)
620 MOV R8,R14
621 MOV #%U.,R0
622 ENDCODE
623
624 RRCX_T ; you should see %10000000 --> %
625
626 PWR_STATE
627
628 ; ================
629 ; RRAX test
630 ; ================
631
632
633 CODE RRAX_T
634 MOV #$8000,R8
635 RRAX R8
636 SUB #2,R15
637 MOV R14,0(R15)
638 MOV R8,R14
639 MOV #%.,R0
640 ENDCODE
641
642 RRAX_T ; you should see %-100000000000000 --> %
643
644 PWR_STATE
645
646 ; ================
647 ; RRAX repeat test
648 ; ================
649
650
651 CODE RRAX_T
652 MOV #$8000,R8
653 RPT #1
654 RRAX R8
655 SUB #2,R15
656 MOV R14,0(R15)
657 MOV R8,R14
658 MOV #%.,R0
659 ENDCODE
660
661 RRAX_T ; you should see %-100000000000000 --> %
662
663 PWR_STATE
664
665 CODE RRAX_T
666 MOV #$8000,R8
667 RPT #2
668 RRAX R8
669 SUB #2,R15
670 MOV R14,0(R15)
671 MOV R8,R14
672 MOV #%.,R0
673 ENDCODE
674
675 RRAX_T ; you should see %-10000000000000 --> %
676
677 PWR_STATE
678
679 CODE RRAX_T
680 MOV #$8000,R8
681 RPT #3
682 RRAX R8
683 SUB #2,R15
684 MOV R14,0(R15)
685 MOV R8,R14
686 MOV #%.,R0
687 ENDCODE
688
689 RRAX_T ; you should see %-1000000000000 --> %
690
691 PWR_STATE
692
693 CODE RRAX_T
694 MOV #$8000,R8
695 RPT #7
696 RRAX R8
697 SUB #2,R15
698 MOV R14,0(R15)
699 MOV R8,R14
700 MOV #%.,R0
701 ENDCODE
702
703 RRAX_T ; you should see %-100000000 --> %
704
705 PWR_STATE
706
707 ; ================
708 ; RLAX test
709 ; ================
710
711
712 CODE RLAX_T
713 MOV #-1,R8
714 ADDX R8,R8
715 SUB #2,R15
716 MOV R14,0(R15)
717 MOV R8,R14
718 MOV #.,R0
719 ENDCODE
720
721 RLAX_T ; you should see -2 -->
722
723 PWR_STATE
724
725 ; ================
726 ; RLAX repeat test
727 ; ================
728
729
730 CODE RLAX_T
731 MOV #-1,R8
732 RPT #1
733 ADDX R8,R8
734 SUB #2,R15
735 MOV R14,0(R15)
736 MOV R8,R14
737 MOV #.,R0
738 ENDCODE
739
740 RLAX_T ; you should see -2 -->
741
742 PWR_STATE
743
744 CODE RLAX_T
745 MOV #-1,R8
746 RPT #2
747 ADDX R8,R8
748 SUB #2,R15
749 MOV R14,0(R15)
750 MOV R8,R14
751 MOV #.,R0
752 ENDCODE
753
754 RLAX_T ; you should see -4 -->
755
756 PWR_STATE
757
758 CODE RLAX_T
759 MOV #-1,R8
760 RPT #3
761 ADDX R8,R8
762 SUB #2,R15
763 MOV R14,0(R15)
764 MOV R8,R14
765 MOV #.,R0
766 ENDCODE
767
768 RLAX_T ; you should see -8 -->
769
770 PWR_STATE
771
772 CODE RLAX_T
773 MOV #-1,R8
774 RPT #8
775 ADDX R8,R8
776 SUB #2,R15
777 MOV R14,0(R15)
778 MOV R8,R14
779 MOV #.,R0
780 ENDCODE
781
782 RLAX_T ; you should see -256 -->
783
784 PWR_STATE
785
786 ; ================
787 ; ADDX test
788 ; ================
789
790
791 CODE ADDX_T
792 MOV #0,R8
793 MOV #-1,R9
794 ADDX R9,R8
795 SUB #2,R15
796 MOV R14,0(R15)
797 MOV R8,R14
798 MOV #.,R0
799 ENDCODE
800
801 ADDX_T ; you should see -1 -->
802
803 PWR_STATE
804
805 ; ================
806 ; ADDX repeat test
807 ; ================
808
809
810 CODE ADDX_T
811 MOV #0,R8
812 MOV #-1,R9
813 RPT #1
814 ADDX R9,R8
815 SUB #2,R15
816 MOV R14,0(R15)
817 MOV R8,R14
818 MOV #.,R0
819 ENDCODE
820
821 ADDX_T ; you should see -1 -->
822
823 PWR_STATE
824
825 CODE ADDX_T
826 MOV #0,R8
827 MOV #-1,R9
828 RPT #2
829 ADDX R9,R8
830 SUB #2,R15
831 MOV R14,0(R15)
832 MOV R8,R14
833 MOV #.,R0
834 ENDCODE
835
836 ADDX_T ; you should see -2 -->
837
838 PWR_STATE
839
840 CODE ADDX_T
841 MOV #0,R8
842 MOV #-1,R9
843 RPT #8
844 ADDX R9,R8
845 SUB #2,R15
846 MOV R14,0(R15)
847 MOV R8,R14
848 MOV #.,R0
849 ENDCODE
850
851 ADDX_T ; you should see -8 -->
852
853 PWR_STATE
854
855
856 ; ================
857 ; SUBX test
858 ; ================
859
860
861 CODE SUBX_T
862 MOV #0,R8
863 MOV #-1,R9
864 SUBX R9,R8
865 SUB #2,R15
866 MOV R14,0(R15)
867 MOV R8,R14
868 MOV #.,R0
869 ENDCODE
870
871 SUBX_T ; you should see 1 -->
872
873 PWR_STATE
874
875 ; ================
876 ; SUBX repeat test
877 ; ================
878
879
880 CODE SUBX_T
881 MOV #0,R8
882 MOV #-1,R9
883 RPT #1
884 SUBX R9,R8
885 SUB #2,R15
886 MOV R14,0(R15)
887 MOV R8,R14
888 MOV #.,R0
889 ENDCODE
890
891 SUBX_T ; you should see 1 -->
892
893 PWR_STATE
894
895 CODE SUBX_T
896 MOV #0,R8
897 MOV #-1,R9
898 RPT #2
899 SUBX R9,R8
900 SUB #2,R15
901 MOV R14,0(R15)
902 MOV R8,R14
903 MOV #.,R0
904 ENDCODE
905
906 SUBX_T ; you should see 2 -->
907
908 PWR_STATE
909
910 CODE SUBX_T
911 MOV #0,R8
912 MOV #-1,R9
913 RPT #8
914 SUBX R9,R8
915 SUB #2,R15
916 MOV R14,0(R15)
917 MOV R8,R14
918 MOV #.,R0
919 ENDCODE
920
921 SUBX_T ; you should see 8 -->
922
923 PWR_STATE
924
925 CODE SUBX_T
926 MOV #15,R10
927 MOV #0,R8
928 MOV #-1,R9
929 RPT R10
930 SUBX R9,R8
931 SUB #2,R15
932 MOV R14,0(R15)
933 MOV R8,R14
934 MOV #.,R0
935 ENDCODE
936
937 SUBX_T ; you should see 16 -->
938
939 PWR_STATE
940
941 CODE SUBX_T
942 MOV #32,R10
943 MOV #0,R8
944 MOV #-1,R9
945 RPT R10
946 SUBX R9,R8
947 SUB #2,R15
948 MOV R14,0(R15)
949 MOV R8,R14
950 MOV #.,R0
951 ENDCODE
952
953 SUBX_T ; you should see 1 -->
954
955 PWR_STATE
956
957 CODE SUBX_T
958 MOV #33,R10
959 MOV #0,R8
960 MOV #-1,R9
961 RPT R10
962 SUBX R9,R8
963 SUB #2,R15
964 MOV R14,0(R15)
965 MOV R8,R14
966 MOV #.,R0
967 ENDCODE
968
969 SUBX_T ; you should see 2 -->
970
971 RST_STATE