OSDN Git Service

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