]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blob - rpp/lib/rpp/include/sys/std_nhet.h
e81e5e769351eedf2a6e9807bc11687f2531e458
[pes-rpp/rpp-test-sw.git] / rpp / lib / rpp / include / sys / std_nhet.h
1 /** @file std_nhet.h
2 *   @brief - NHET Instruction Definition File
3 *   @date 04.March.2010
4 *   @version 1.00.000
5 *
6 *   (c) Texas Instruments 2009, All rights reserved.
7 */
8
9 #ifndef __STD_NHET_H__
10 #define __STD_NHET_H__
11
12 #if defined(_TMS470_BIG) || defined(__big_endian__)
13
14 #ifndef HET_v2
15 #   define HET_v2 0
16 #endif
17
18 #ifndef HETBYTE
19 #   define HETBYTE unsigned char
20 #endif
21
22 typedef struct memory_format
23 {
24   unsigned int program_word  ;
25   unsigned int control_word  ;
26   unsigned int data_word     ;
27   unsigned int reserved_word ;
28 } HET_MEMORY  ;
29
30
31 /*---------------------------------------------*/
32 /* ACMP INSTRUCTION                            */
33 /*---------------------------------------------*/
34 typedef struct acmp_format
35 {
36   unsigned int                      : 6 ;
37   unsigned int reqnum               : 3 ;
38   unsigned int brk                  : 1 ;
39   unsigned int next_program_address : 9 ;
40   unsigned int op_code              : 4 ;
41   unsigned int                      : 9 ;
42
43   unsigned int                      : 3 ;
44   unsigned int request              : 2 ;
45   unsigned int auto_read_clear      : 1 ;
46   unsigned int coutprv              : 1 ;
47   unsigned int                      : 2 ;
48   unsigned int en_pin_action        : 1 ;
49   unsigned int cond_addr            : 9 ;
50   unsigned int pin_select           : 5 ;
51   unsigned int ext_reg              : 1 ;
52   unsigned int                      : 2 ;
53   unsigned int pin_action           : 1 ;
54   unsigned int                      : 1 ;
55   unsigned int t_register_select    : 1 ;
56   unsigned int ab_register_select   : 1 ;
57   unsigned int interrupt_enable     : 1 ;
58
59   unsigned int data                 : 25 ;
60   unsigned int                      : 7  ;
61
62 } ACMP_FIELDS;
63
64 typedef union
65 {
66   ACMP_FIELDS  acmp   ;
67   HET_MEMORY   memory ;
68 } ACMP_INSTRUCTION;
69
70
71 /*---------------------------------------------*/
72 /* ECMP INSTRUCTION                            */
73 /*---------------------------------------------*/
74 typedef struct ecmp_format
75 {
76   unsigned int                      : 6 ;
77   unsigned int reqnum               : 3 ;
78   unsigned int brk                  : 1 ;
79   unsigned int next_program_address : 9 ;
80   unsigned int op_code              : 4 ;
81   unsigned int hr_lr                : 1 ;
82   unsigned int angle_compare        : 1 ;
83   unsigned int                      : 7 ;
84
85   unsigned int                      : 3 ;
86   unsigned int request              : 2 ;
87   unsigned int auto_read_clear      : 1 ;
88   unsigned int                      : 3 ;
89   unsigned int en_pin_action        : 1 ;
90   unsigned int cond_addr            : 9 ;
91   unsigned int pin_select           : 5 ;
92   unsigned int                      : 1 ;
93   unsigned int sub_opcode           : 2 ;
94   unsigned int pin_action           : 1 ;
95   unsigned int opposite_action      : 1 ;
96   unsigned int t_register_select    : 1 ;
97   unsigned int ab_register_select   : 1 ;
98   unsigned int interrupt_enable     : 1 ;
99
100
101   unsigned int data                 : 25 ;
102   unsigned int hr_data              : 7 ;
103
104 } ECMP_FIELDS;
105
106 typedef union
107 {
108   ECMP_FIELDS  ecmp   ;
109   HET_MEMORY   memory ;
110 } ECMP_INSTRUCTION;
111
112
113 /*---------------------------------------------*/
114 /* SCMP INSTRUCTION                            */
115 /*---------------------------------------------*/
116 typedef struct scmp_format
117 {
118   unsigned int                      : 6 ;
119   unsigned int reqnum               : 3 ;
120   unsigned int brk                  : 1 ;
121   unsigned int next_program_address : 9 ;
122   unsigned int op_code              : 4 ;
123   unsigned int                      : 2 ;
124   unsigned int                      : 2 ;
125   unsigned int                      : 5 ;
126
127   unsigned int                      : 3 ;
128   unsigned int request              : 2 ;
129   unsigned int auto_read_clear      : 1 ;
130   unsigned int coutprv              : 1 ;
131   unsigned int                      : 2 ;
132   unsigned int en_pin_action        : 1 ;
133   unsigned int cond_addr            : 9 ;
134   unsigned int pin_select           : 5 ;
135   unsigned int                      : 1 ;
136   unsigned int compare_mode         : 2 ;
137   unsigned int pin_action           : 1 ;
138   unsigned int                      : 2 ;
139   unsigned int restart_en           : 1 ;
140   unsigned int interrupt_enable     : 1 ;
141
142
143   unsigned int data                 : 25 ;
144   unsigned int                      : 7 ;
145
146 } SCMP_FIELDS ;
147
148 typedef union
149 {
150   SCMP_FIELDS  scmp   ;
151   HET_MEMORY   memory ;
152 } SCMP_INSTRUCTION;
153
154
155 /*---------------------------------------------*/
156 /* MCMP INSTRUCTION                            */
157 /*---------------------------------------------*/
158 typedef struct mcmp_format
159 {
160   unsigned int                      : 6 ;
161   unsigned int reqnum               : 3 ;
162   unsigned int brk                  : 1 ;
163   unsigned int next_program_address : 9 ;
164   unsigned int op_code              : 4 ;
165   unsigned int hr_lr                : 1 ;
166   unsigned int angle_compare        : 1 ;
167   unsigned int                      : 1 ;
168   unsigned int save_subtract        : 1 ;
169   unsigned int                      : 5 ;
170
171   unsigned int                      : 3 ;
172   unsigned int request              : 2 ;
173   unsigned int auto_read_clear      : 1 ;
174   unsigned int                      : 3 ;
175   unsigned int en_pin_action        : 1 ;
176   unsigned int cond_addr            : 9 ;
177   unsigned int pin_select           : 5 ;
178   unsigned int                      : 1 ;
179   unsigned int sub_opcode           : 1 ;
180   unsigned int order                : 1 ;
181   unsigned int pin_action           : 1 ;
182   unsigned int opposite_action      : 1 ;
183   unsigned int t_register_select    : 1 ;
184   unsigned int ab_register_select   : 1 ;
185   unsigned int interrupt_enable     : 1 ;
186
187
188   unsigned int data                 : 25 ;
189   unsigned int hr_data              : 7 ;
190
191 } MCMP_FIELDS ;
192
193 typedef union
194 {
195   MCMP_FIELDS  mcmp   ;
196   HET_MEMORY   memory ;
197 } MCMP_INSTRUCTION;
198
199
200 /*---------------------------------------------*/
201 /* MOV64 INSTRUCTION                           */
202 /*---------------------------------------------*/
203 typedef struct mov64_format
204 {
205   unsigned int                      : 9 ;
206   unsigned int brk                  : 1 ;
207   unsigned int next_program_address : 9 ;
208   unsigned int op_code              : 4 ;
209   unsigned int remote_address       : 9 ;
210
211   unsigned int                      : 3 ;
212   unsigned int request              : 2 ;
213   unsigned int auto_read_clear      : 1 ;
214   unsigned int                      : 3 ;
215   unsigned int en_pin_action        : 1 ;
216   unsigned int cond_addr            : 9 ;
217   unsigned int pin_select           : 5 ;
218   unsigned int                      : 1 ;
219   unsigned int compare_mode         : 2 ;
220   unsigned int pin_action           : 1 ;
221   unsigned int opposite_action      : 1 ;
222   unsigned int t_register_select    : 1 ;
223   unsigned int ab_register_select   : 1 ;
224   unsigned int interrupt_enable     : 1 ;
225
226
227   unsigned int data                 : 25 ;
228   unsigned int hr_data              : 7 ;
229
230 } MOV64_FIELDS ;
231
232 typedef union
233 {
234   MOV64_FIELDS  mov64  ;
235   HET_MEMORY    memory ;
236 } MOV64_INSTRUCTION;
237
238
239 /*---------------------------------------------*/
240 /* DADM64 INSTRUCTION                          */
241 /*---------------------------------------------*/
242 typedef struct dadm64_format
243 {
244   unsigned int                      : 9 ;
245   unsigned int brk                  : 1 ;
246   unsigned int next_program_address : 9 ;
247   unsigned int op_code              : 4 ;
248   unsigned int remote_address       : 9 ;
249
250   unsigned int                      : 3 ;
251   unsigned int request              : 2 ;
252   unsigned int auto_read_clear      : 1 ;
253   unsigned int                      : 3 ;
254   unsigned int en_pin_action        : 1 ;
255   unsigned int cond_addr            : 9 ;
256   unsigned int pin_select           : 5 ;
257   unsigned int                      : 1 ;
258   unsigned int compare_mode         : 2 ;
259   unsigned int pin_action           : 1 ;
260   unsigned int opposite_action      : 1 ;
261   unsigned int t_register_select    : 1 ;
262   unsigned int ab_register_select   : 1 ;
263   unsigned int interrupt_enable     : 1 ;
264
265
266   unsigned int data                 : 25 ;
267   unsigned int hr_data              : 7 ;
268
269 } DADM64_FIELDS ;
270
271 typedef union
272 {
273   DADM64_FIELDS  dadm64 ;
274   HET_MEMORY     memory ;
275 } DADM64_INSTRUCTION;
276
277
278 /*---------------------------------------------*/
279 /* RADM64 INSTRUCTION                          */
280 /*---------------------------------------------*/
281 typedef struct RADM64_format
282 {
283   unsigned int                      : 9 ;
284   unsigned int brk                  : 1 ;
285   unsigned int next_program_address : 9 ;
286   unsigned int op_code              : 4 ;
287   unsigned int remote_address       : 9 ;
288
289   unsigned int                      : 3 ;
290   unsigned int request              : 2 ;
291   unsigned int auto_read_clear      : 1 ;
292   unsigned int                      : 3 ;
293   unsigned int en_pin_action        : 1 ;
294   unsigned int cond_addr            : 9 ;
295   unsigned int pin_select           : 5 ;
296   unsigned int                      : 1 ;
297   unsigned int compare_mode         : 2 ;
298   unsigned int pin_action           : 1 ;
299   unsigned int opposite_action      : 1 ;
300   unsigned int t_register_select    : 1 ;
301   unsigned int ab_register_select   : 1 ;
302   unsigned int interrupt_enable     : 1 ;
303
304
305   unsigned int data                 : 25 ;
306   unsigned int hr_data              : 7 ;
307
308 } RADM64_FIELDS ;
309
310
311 typedef union
312 {
313   RADM64_FIELDS  radm64 ;
314   HET_MEMORY     memory ;
315 } RADM64_INSTRUCTION;
316
317
318 /*---------------------------------------------*/
319 /* MOV32 INSTRUCTION                           */
320 /*---------------------------------------------*/
321 typedef struct MOV32_format
322 {
323   unsigned int                      : 9 ;
324   unsigned int brk                  : 1 ;
325   unsigned int next_program_address : 9 ;
326   unsigned int op_code              : 4 ;
327   unsigned int remote_address       : 9 ;
328
329   unsigned int                      : 5 ;
330   unsigned int auto_read_clear      : 1 ;
331   unsigned int                      : 3 ;
332   unsigned int z_flag               : 1 ;
333   unsigned int                      : 15 ;
334   unsigned int init_flag            : 1 ;
335   unsigned int sub_opcode           : 1 ;
336   unsigned int move_type            : 2 ;
337   unsigned int t_register_select    : 1 ;
338   unsigned int ab_register_select   : 1 ;
339   unsigned int                      : 1 ;
340
341
342   unsigned int data                 : 25 ;
343   unsigned int hr_data              : 7 ;
344
345 } MOV32_FIELDS ;
346
347
348 typedef union
349 {
350   MOV32_FIELDS  mov32  ;
351   HET_MEMORY    memory ;
352 } MOV32_INSTRUCTION;
353
354
355 /*---------------------------------------------*/
356 /* ADM32 INSTRUCTION                           */
357 /*---------------------------------------------*/
358 typedef struct ADM32_format
359 {
360   unsigned int                      : 9 ;
361   unsigned int brk                  : 1 ;
362   unsigned int next_program_address : 9 ;
363   unsigned int op_code              : 4 ;
364   unsigned int remote_address       : 9 ;
365
366   unsigned int                      : 5 ;
367   unsigned int auto_read_clear      : 1 ;
368   unsigned int                      : 19 ;
369   unsigned int init_flag            : 1 ;
370   unsigned int sub_opcode           : 1 ;
371   unsigned int move_type            : 2 ;
372   unsigned int t_register_select    : 1 ;
373   unsigned int ab_register_select   : 1 ;
374   unsigned int                      : 1 ;
375
376
377   unsigned int data                 : 25 ;
378   unsigned int hr_data              : 7 ;
379
380 } ADM32_FIELDS ;
381
382
383 typedef union
384 {
385   ADM32_FIELDS  adm32  ;
386   HET_MEMORY    memory ;
387 } ADM32_INSTRUCTION;
388
389
390 /*---------------------------------------------*/
391 /* ADCNST INSTRUCTION                          */
392 /*---------------------------------------------*/
393 typedef struct ADCNST_format
394 {
395   unsigned int                      : 9 ;
396   unsigned int brk                  : 1 ;
397   unsigned int next_program_address : 9 ;
398   unsigned int op_code              : 4 ;
399   unsigned int remote_address       : 9 ;
400
401   unsigned int                      : 5 ;
402   unsigned int control              : 1 ;  /* pk */
403   unsigned int                      : 1 ;
404   unsigned int constant             : 25 ;
405
406
407   unsigned int data                 : 25 ;
408   unsigned int hr_data              : 7 ;
409
410 } ADCNST_FIELDS ;
411
412
413 typedef union
414 {
415   ADCNST_FIELDS  adcnst ;
416   HET_MEMORY     memory ;
417 } ADCNST_INSTRUCTION;
418
419
420 /*----------------------------------------------*/
421 /* ADD INSTRUCTION                  */
422 /*----------------------------------------------*/
423
424 typedef struct ADD_format
425 {
426   unsigned int                      : 9 ;
427   unsigned int brk                  : 1 ;
428   unsigned int next_program_address : 9 ;
429   unsigned int op_code              : 4 ;
430   unsigned int remote_address       : 9 ;
431
432   unsigned int                      : 5 ;
433   unsigned int control              : 1;
434   unsigned int sub_opcode3          : 3 ;
435   unsigned int src_1                : 4 ;
436   unsigned int src_2                : 3 ;
437   unsigned int shft_mode            : 3 ;
438   unsigned int shft_cnt             : 5 ;
439   unsigned int reg_ext              : 1 ;
440   unsigned int init_flag            : 1 ;
441   unsigned int sub_opcode1          : 1 ;
442   unsigned int rem_dest             : 2 ;
443   unsigned int reg                  : 2 ;
444   unsigned int                      : 1 ;
445
446
447   unsigned int data                 : 25 ;
448   unsigned int hr_data              : 7 ;
449
450 } ADD_FIELDS ;
451
452
453 typedef union
454 {
455   ADD_FIELDS  add ;
456   HET_MEMORY  memory ;
457 } ADD_INSTRUCTION;
458
459
460
461 /*----------------------------------------------*/
462 /* ADC INSTRUCTION                  */
463 /*----------------------------------------------*/
464
465 typedef struct ADC_format
466 {
467   unsigned int                      : 9 ;
468   unsigned int brk                  : 1 ;
469   unsigned int next_program_address : 9 ;
470   unsigned int op_code              : 4 ;
471   unsigned int remote_address       : 9 ;
472
473   unsigned int                      : 5 ;
474   unsigned int control              : 1;
475   unsigned int sub_opcode3          : 3 ;
476   unsigned int src_1                : 4 ;
477   unsigned int src_2                : 3 ;
478   unsigned int shft_mode            : 3 ;
479   unsigned int shft_cnt             : 5 ;
480   unsigned int reg_ext              : 1 ;
481   unsigned int init_flag            : 1 ;
482   unsigned int sub_opcode1          : 1 ;
483   unsigned int rem_dest             : 2 ;
484   unsigned int reg                  : 2 ;
485   unsigned int                      : 1 ;
486
487
488   unsigned int data                 : 25 ;
489   unsigned int hr_data              : 7 ;
490
491 } ADC_FIELDS ;
492
493
494 typedef union
495 {
496   ADC_FIELDS  adc ;
497   HET_MEMORY  memory ;
498 } ADC_INSTRUCTION;
499
500
501
502 /*----------------------------------------------*/
503 /* SUB INSTRUCTION                  */
504 /*----------------------------------------------*/
505
506 typedef struct SUB_format
507 {
508   unsigned int                      : 9 ;
509   unsigned int brk                  : 1 ;
510   unsigned int next_program_address : 9 ;
511   unsigned int op_code              : 4 ;
512   unsigned int remote_address       : 9 ;
513
514   unsigned int                      : 5 ;
515   unsigned int control              : 1;
516   unsigned int sub_opcode3          : 3 ;
517   unsigned int src_1                : 4 ;
518   unsigned int src_2                : 3 ;
519   unsigned int shft_mode            : 3 ;
520   unsigned int shft_cnt             : 5 ;
521   unsigned int reg_ext              : 1 ;
522   unsigned int init_flag            : 1 ;
523   unsigned int sub_opcode1          : 1 ;
524   unsigned int rem_dest             : 2 ;
525   unsigned int reg                  : 2 ;
526   unsigned int                      : 1 ;
527
528
529   unsigned int data                 : 25 ;
530   unsigned int hr_data              : 7 ;
531
532 } SUB_FIELDS ;
533
534
535 typedef union
536 {
537   SUB_FIELDS  sub ;
538   HET_MEMORY  memory ;
539 } SUB_INSTRUCTION;
540
541
542
543 /*----------------------------------------------*/
544 /* SBB INSTRUCTION                  */
545 /*----------------------------------------------*/
546
547 typedef struct SBB_format
548 {
549   unsigned int                      : 9 ;
550   unsigned int brk                  : 1 ;
551   unsigned int next_program_address : 9 ;
552   unsigned int op_code              : 4 ;
553   unsigned int remote_address       : 9 ;
554
555   unsigned int                      : 5 ;
556   unsigned int control              : 1;
557   unsigned int sub_opcode3          : 3 ;
558   unsigned int src_1                : 4 ;
559   unsigned int src_2                : 3 ;
560   unsigned int shft_mode            : 3 ;
561   unsigned int shft_cnt             : 5 ;
562   unsigned int reg_ext              : 1 ;
563   unsigned int init_flag            : 1 ;
564   unsigned int sub_opcode1          : 1 ;
565   unsigned int rem_dest             : 2 ;
566   unsigned int reg                  : 2 ;
567   unsigned int                      : 1 ;
568
569
570   unsigned int data                 : 25 ;
571   unsigned int hr_data              : 7 ;
572
573 } SBB_FIELDS ;
574
575
576 typedef union
577 {
578   SBB_FIELDS  sbb ;
579   HET_MEMORY  memory ;
580 } SBB_INSTRUCTION;
581
582
583
584 /*----------------------------------------------*/
585 /* AND INSTRUCTION                    */
586 /*----------------------------------------------*/
587
588 typedef struct AND_format
589 {
590   unsigned int                      : 9 ;
591   unsigned int brk                  : 1 ;
592   unsigned int next_program_address : 9 ;
593   unsigned int op_code              : 4 ;
594   unsigned int remote_address       : 9 ;
595
596   unsigned int                      : 5 ;
597   unsigned int control              : 1;
598   unsigned int sub_opcode3          : 3 ;
599   unsigned int src_1                : 4 ;
600   unsigned int src_2                : 3 ;
601   unsigned int shft_mode            : 3 ;
602   unsigned int shft_cnt             : 5 ;
603   unsigned int reg_ext              : 1 ;
604   unsigned int init_flag            : 1 ;
605   unsigned int sub_opcode1          : 1 ;
606   unsigned int rem_dest             : 2 ;
607   unsigned int reg                  : 2 ;
608   unsigned int                      : 1 ;
609
610
611   unsigned int data                 : 25 ;
612   unsigned int hr_data              : 7 ;
613
614 } AND_FIELDS ;
615
616
617 typedef union
618 {
619   AND_FIELDS  and ;
620   HET_MEMORY  memory ;
621 } AND_INSTRUCTION;
622
623
624
625 /*----------------------------------------------*/
626 /* OR INSTRUCTION                         */
627 /*----------------------------------------------*/
628
629
630 typedef struct OR_format
631 {
632   unsigned int                      : 9 ;
633   unsigned int brk                  : 1 ;
634   unsigned int next_program_address : 9 ;
635   unsigned int op_code              : 4 ;
636   unsigned int remote_address       : 9 ;
637
638   unsigned int                      : 5 ;
639   unsigned int control              : 1;
640   unsigned int sub_opcode3          : 3 ;
641   unsigned int src_1                : 4 ;
642   unsigned int src_2                : 3 ;
643   unsigned int shft_mode            : 3 ;
644   unsigned int shft_cnt             : 5 ;
645   unsigned int reg_ext              : 1 ;
646   unsigned int init_flag            : 1 ;
647   unsigned int sub_opcode1          : 1 ;
648   unsigned int rem_dest             : 2 ;
649   unsigned int reg                  : 2 ;
650   unsigned int                      : 1 ;
651
652
653   unsigned int data                 : 25 ;
654   unsigned int hr_data              : 7 ;
655
656 } OR_FIELDS ;
657
658
659 typedef union
660 {
661   OR_FIELDS  or ;
662   HET_MEMORY  memory ;
663 } OR_INSTRUCTION;
664
665
666
667 /*----------------------------------------------*/
668 /* XOR INSTRUCTION                  */
669 /*----------------------------------------------*/
670
671 typedef struct XOR_format
672 {
673   unsigned int                      : 9 ;
674   unsigned int brk                  : 1 ;
675   unsigned int next_program_address : 9 ;
676   unsigned int op_code              : 4 ;
677   unsigned int remote_address       : 9 ;
678
679   unsigned int                      : 5 ;
680   unsigned int control              : 1;
681   unsigned int sub_opcode3          : 3 ;
682   unsigned int src_1                : 4 ;
683   unsigned int src_2                : 3 ;
684   unsigned int shft_mode            : 3 ;
685   unsigned int shft_cnt             : 5 ;
686   unsigned int reg_ext              : 1 ;
687   unsigned int init_flag            : 1 ;
688   unsigned int sub_opcode1          : 1 ;
689   unsigned int rem_dest             : 2 ;
690   unsigned int reg                  : 2 ;
691   unsigned int                      : 1 ;
692
693
694   unsigned int data                 : 25 ;
695   unsigned int hr_data              : 7 ;
696
697 } XOR_FIELDS ;
698
699
700 typedef union
701 {
702   XOR_FIELDS  xor ;
703   HET_MEMORY  memory ;
704 } XOR_INSTRUCTION;
705
706
707
708 /*---------------------------------------------*/
709 /* CNT INSTRUCTION                             */
710 /*---------------------------------------------*/
711 typedef struct CNT_format
712 {
713   unsigned int                      : 9 ;
714   unsigned int brk                  : 1 ;
715   unsigned int next_program_address : 9 ;
716   unsigned int op_code              : 4 ;
717   unsigned int angle_cnt            : 1 ;
718   unsigned int t_register_select    : 1 ;
719   unsigned int ab_register_select   : 1 ;
720   unsigned int                      : 4 ;
721   unsigned int interrupt_enable     : 1 ;
722
723
724   unsigned int                      : 3 ;
725   unsigned int request              : 2 ;
726   unsigned int auto_read_clear      : 1 ;
727   unsigned int                      : 1 ;
728   unsigned int max                  : 25 ;
729
730
731   unsigned int data                 : 25 ;
732   unsigned int                      : 7 ;
733
734 } CNT_FIELDS ;
735
736 typedef union
737 {
738   CNT_FIELDS   cnt    ;
739   HET_MEMORY   memory ;
740 } CNT_INSTRUCTION;
741
742
743 /*---------------------------------------------*/
744 /* APCNT INSTRUCTION                           */
745 /*---------------------------------------------*/
746 typedef struct apcnt_format
747 {
748   unsigned int                      : 6 ;
749   unsigned int reqnum               : 3 ;
750   unsigned int brk                  : 1 ;
751   unsigned int next_program_address : 9 ;
752   unsigned int op_code              : 4 ;
753   unsigned int interrupt_enable     : 1 ;
754   unsigned int edge_select          : 2 ;
755   unsigned int                      : 6 ;
756
757   unsigned int                      : 3 ;
758   unsigned int request              : 2 ;
759   unsigned int auto_read_clear      : 1 ;
760   unsigned int previous_bit         : 1 ;
761   unsigned int count                : 25 ;
762
763
764   unsigned int data                 : 25 ;
765   unsigned int                      : 7 ;
766
767 } APCNT_FIELDS ;
768
769 typedef union
770 {
771   APCNT_FIELDS  apcnt   ;
772   HET_MEMORY   memory ;
773 } APCNT_INSTRUCTION;
774
775
776
777 /*---------------------------------------------*/
778 /* PCNT INSTRUCTION                            */
779 /*---------------------------------------------*/
780 typedef struct pcnt_format
781 {
782   unsigned int                      : 6 ;
783   unsigned int reqnum               : 3 ;
784   unsigned int brk                  : 1 ;
785   unsigned int next_program_address : 9 ;
786   unsigned int op_code              : 4 ;
787   unsigned int interrupt_enable     : 1 ;
788   unsigned int period_pulse_select  : 2 ;
789   unsigned int                      : 1 ;
790   unsigned int pin_select           : 5 ;
791
792   unsigned int                      : 3 ;
793   unsigned int request              : 2 ;
794   unsigned int auto_read_clear      : 1 ;
795   unsigned int previous_bit         : 1 ;
796   unsigned int count                : 25 ;
797
798
799   unsigned int data                 : 25 ;
800   unsigned int hr_data              : 7 ;
801
802 } PCNT_FIELDS ;
803
804 typedef union
805 {
806   PCNT_FIELDS  pcnt   ;
807   HET_MEMORY   memory ;
808 } PCNT_INSTRUCTION;
809
810
811 /*---------------------------------------------*/
812 /* SCNT INSTRUCTION                            */
813 /*---------------------------------------------*/
814 typedef struct scnt_format
815 {
816   unsigned int                      : 9 ;
817   unsigned int brk                  : 1 ;
818   unsigned int next_program_address : 9 ;
819   unsigned int op_code              : 4 ;
820   unsigned int                      : 1 ;
821   unsigned int count_mode           : 2 ;
822   unsigned int step_width           : 2 ;
823   unsigned int                      : 4 ;
824
825   unsigned int                      : 5 ;
826   unsigned int auto_read_clear      : 1 ;
827   unsigned int                      : 1 ;
828   unsigned int gap_start            : 25 ;
829
830
831   unsigned int data                 : 25 ;
832   unsigned int                      : 7 ;
833
834 } SCNT_FIELDS ;
835
836 typedef union
837 {
838   SCNT_FIELDS  scnt   ;
839   HET_MEMORY   memory ;
840 } SCNT_INSTRUCTION;
841
842
843 \f
844 /*---------------------------------------------*/
845 /* ACNT INSTRUCTION                            */
846 /*---------------------------------------------*/
847 typedef struct acnt_format
848 {
849   unsigned int                      : 6 ;
850   unsigned int reqnum               : 3 ;
851   unsigned int brk                  : 1 ;
852   unsigned int next_program_address : 9 ;
853   unsigned int op_code              : 4 ;
854   unsigned int edge_select          : 1 ;
855   unsigned int                      : 7 ;
856   unsigned int interrupt_enable     : 1 ;
857
858   unsigned int                      : 3 ;
859   unsigned int request              : 2 ;
860   unsigned int auto_read_clear      : 1 ;
861   unsigned int previous_bit         : 1 ;
862   unsigned int gap_end              : 25 ;
863
864
865   unsigned int data                 : 25 ;
866   unsigned int                      : 7 ;
867
868 } ACNT_FIELDS ;
869
870 typedef union
871 {
872   ACNT_FIELDS  acnt   ;
873   HET_MEMORY   memory ;
874 } ACNT_INSTRUCTION;
875
876
877 /*---------------------------------------------*/
878 /* ECNT INSTRUCTION                            */
879 /*---------------------------------------------*/
880 typedef struct ecnt_format
881 {
882   unsigned int                      : 6 ;
883   unsigned int reqnum               : 3 ;
884   unsigned int brk                  : 1 ;
885   unsigned int next_program_address : 9 ;
886   unsigned int op_code              : 4 ;
887   unsigned int                      : 1 ;
888   unsigned int count_mode           : 2 ;
889   unsigned int                      : 6 ;
890
891   unsigned int                      : 3 ;
892   unsigned int request              : 2 ;
893   unsigned int auto_read_clear      : 1 ;
894   unsigned int previous_bit         : 1 ;
895   unsigned int                      : 3 ;
896   unsigned int cond_addr            : 9 ;
897   unsigned int pin_select           : 5 ;
898   unsigned int                      : 1 ;
899   unsigned int count_cond           : 3 ;
900   unsigned int                      : 1 ;
901   unsigned int t_register_select    : 1 ;
902   unsigned int ab_register_select   : 1 ;
903   unsigned int interrupt_enable     : 1 ;
904
905
906   unsigned int data                 : 25 ;
907   unsigned int                      : 7 ;
908
909 } ECNT_FIELDS ;
910
911 typedef union
912 {
913   ECNT_FIELDS  ecnt   ;
914   HET_MEMORY   memory ;
915 } ECNT_INSTRUCTION;
916
917
918
919 /*---------------------------------------------*/
920 /* RCNT INSTRUCTION                            */
921 /*---------------------------------------------*/
922 typedef struct rcnt_format
923 {
924   unsigned int                      : 6 ;
925   unsigned int reqnum               : 3 ;
926   unsigned int brk                  : 1 ;
927   unsigned int next_program_address : 9 ;
928   unsigned int op_code              : 4 ;
929   unsigned int                      : 1 ;
930   unsigned int count_mode           : 2 ;
931   unsigned int                      : 5 ;
932   unsigned int count_mode1          : 1 ;
933
934   unsigned int                      : 3 ;
935   unsigned int                      : 2 ;
936   unsigned int control              : 1 ;
937   unsigned int                      : 1 ;
938   unsigned int divisor              : 25 ;
939
940
941   unsigned int data                 : 25 ;
942   unsigned int                      : 7 ;
943
944 } RCNT_FIELDS ;
945
946 typedef union
947 {
948   RCNT_FIELDS  rcnt   ;
949   HET_MEMORY   memory ;
950 } RCNT_INSTRUCTION;
951
952
953 /*---------------------------------------------*/
954 /* DJNZ INSTRUCTION                            */
955 /*---------------------------------------------*/
956 typedef struct djnz_format
957 {
958   unsigned int                      : 6 ;
959   unsigned int reqnum               : 3 ;
960   unsigned int brk                  : 1 ;
961   unsigned int next_program_address : 9 ;
962   unsigned int op_code              : 4 ;
963   unsigned int                      : 1 ;
964   unsigned int sub_opcode           : 2 ;
965   unsigned int                      : 6 ;
966
967   unsigned int                      : 3 ;
968   unsigned int request              : 2 ;
969   unsigned int auto_read_clear      : 1 ;
970   unsigned int                      : 4 ;
971   unsigned int cond_addr            : 9 ;
972   unsigned int                      : 10 ;
973   unsigned int t_register_select    : 1 ;
974   unsigned int ab_register_select   : 1 ;
975   unsigned int interrupt_enable     : 1 ;
976
977
978   unsigned int data                 : 25 ;
979   unsigned int                      : 7 ;
980
981 } DJNZ_FIELDS ;
982
983 typedef union
984 {
985   DJNZ_FIELDS  djnz   ;
986   HET_MEMORY   memory ;
987 } DJNZ_INSTRUCTION;
988
989
990 /*---------------------------------------------*/
991 /* DJZ INSTRUCTION                            */
992 /*---------------------------------------------*/
993 typedef struct djz_format
994 {
995   unsigned int                      : 6 ;
996   unsigned int reqnum               : 3 ;
997   unsigned int brk                  : 1 ;
998   unsigned int next_program_address : 9 ;
999   unsigned int op_code              : 4 ;
1000   unsigned int                      : 1 ;
1001   unsigned int sub_opcode           : 2 ;
1002   unsigned int                      : 6 ;
1003
1004   unsigned int                      : 3 ;
1005   unsigned int request              : 2 ;
1006   unsigned int auto_read_clear      : 1 ;
1007   unsigned int                      : 4 ;
1008   unsigned int cond_addr            : 9 ;
1009   unsigned int                      : 10 ;
1010   unsigned int t_register_select    : 1 ;
1011   unsigned int ab_register_select   : 1 ;
1012   unsigned int interrupt_enable     : 1 ;
1013
1014
1015   unsigned int data                 : 25 ;
1016   unsigned int                      : 7 ;
1017
1018 } DJZ_FIELDS ;
1019
1020 typedef union
1021 {
1022   DJZ_FIELDS  djz   ;
1023   HET_MEMORY   memory ;
1024 } DJZ_INSTRUCTION;
1025
1026 /*---------------------------------------------*/
1027 /* PWCNT INSTRUCTION                           */
1028 /*---------------------------------------------*/
1029 typedef struct pwcnt_format
1030 {
1031   unsigned int                      : 6 ;
1032   unsigned int reqnum               : 3 ;
1033   unsigned int brk                  : 1 ;
1034   unsigned int next_program_address : 9 ;
1035   unsigned int op_code              : 4 ;
1036   unsigned int hr_lr                : 1 ;
1037   unsigned int count_mode           : 2 ;
1038   unsigned int                      : 6 ;
1039
1040   unsigned int                      : 3 ;
1041   unsigned int request              : 2 ;
1042   unsigned int auto_read_clear      : 1 ;
1043   unsigned int                      : 3 ;
1044   unsigned int en_pin_action        : 1 ;
1045   unsigned int cond_addr            : 9 ;
1046   unsigned int pin_select           : 5 ;
1047   unsigned int                      : 3 ;
1048   unsigned int pin_action           : 1 ;
1049   unsigned int opposite_action      : 1 ;
1050   unsigned int t_register_select    : 1 ;
1051   unsigned int ab_register_select   : 1 ;
1052   unsigned int interrupt_enable     : 1 ;
1053
1054
1055   unsigned int data                 : 25 ;
1056   unsigned int hr_data              : 7 ;
1057
1058 } PWCNT_FIELDS ;
1059
1060 typedef union
1061 {
1062   PWCNT_FIELDS  pwcnt ;
1063   HET_MEMORY   memory ;
1064 } PWCNT_INSTRUCTION;
1065
1066
1067 /*---------------------------------------------*/
1068 /* WCAP INSTRUCTION                            */
1069 /*---------------------------------------------*/
1070 typedef struct wcap_format
1071 {
1072   unsigned int                      : 6 ;
1073   unsigned int reqnum               : 3 ;
1074   unsigned int brk                  : 1 ;
1075   unsigned int next_program_address : 9 ;
1076   unsigned int op_code              : 4 ;
1077   unsigned int hr_lr                : 1 ;
1078   unsigned int                      : 8 ;
1079
1080   unsigned int                      : 3 ;
1081   unsigned int request              : 2 ;
1082   unsigned int auto_read_clear      : 1 ;
1083   unsigned int previous_bit         : 1 ;
1084   unsigned int                      : 3 ;
1085   unsigned int cond_addr            : 9 ;
1086   unsigned int pin_select           : 5 ;
1087   unsigned int                      : 1 ;
1088   unsigned int capture_condition    : 2 ;
1089   unsigned int                      : 2 ;
1090   unsigned int t_register_select    : 1 ;
1091   unsigned int ab_register_select   : 1 ;
1092   unsigned int interrupt_enable     : 1 ;
1093
1094
1095   unsigned int data                 : 25 ;
1096   unsigned int hr_data              : 7 ;
1097
1098 } WCAP_FIELDS ;
1099
1100 typedef union
1101 {
1102   WCAP_FIELDS  wcap   ;
1103   HET_MEMORY   memory ;
1104 } WCAP_INSTRUCTION;
1105
1106 /*----------------------------------------------*/
1107 /* WCAPE INSTRUCTION                            */
1108 /*----------------------------------------------*/
1109 typedef struct wcape_format
1110 {
1111   unsigned int                      : 6 ;
1112   unsigned int reqnum               : 3 ;
1113   unsigned int brk                  : 1 ;
1114   unsigned int next_program_address : 9 ;
1115   unsigned int op_code              : 4 ;
1116   unsigned int                      : 9 ;
1117
1118   unsigned int                      : 3 ;
1119   unsigned int request              : 2 ;
1120   unsigned int auto_read_clear      : 1 ;
1121   unsigned int previous_bit         : 1 ;
1122   unsigned int                      : 3 ;
1123   unsigned int cond_addr            : 9 ;
1124   unsigned int pin_select           : 5 ;
1125   unsigned int                      : 1 ;
1126   unsigned int capture_condition    : 2 ;
1127   unsigned int                      : 2 ;
1128   unsigned int t_register_select    : 1 ;
1129   unsigned int ab_register_select   : 1 ;
1130   unsigned int interrupt_enable     : 1 ;
1131
1132
1133   unsigned int ts_data              : 25 ;
1134   unsigned int ec_data              : 7 ;
1135
1136 } WCAPE_FIELDS ;
1137
1138 typedef union
1139 {
1140   WCAPE_FIELDS  wcape   ;
1141   HET_MEMORY   memory ;
1142 } WCAPE_INSTRUCTION;
1143
1144
1145 /*---------------------------------------------*/
1146 /* BR   INSTRUCTION                            */
1147 /*---------------------------------------------*/
1148 typedef struct br_format
1149 {
1150   unsigned int                      : 6 ;
1151   unsigned int reqnum               : 3 ;
1152   unsigned int brk                  : 1 ;
1153   unsigned int next_program_address : 9 ;
1154   unsigned int op_code              : 4 ;
1155   unsigned int                      : 9 ;
1156
1157   unsigned int                      : 3 ;
1158   unsigned int request              : 2 ;
1159   unsigned int auto_read_clear      : 1 ;
1160   unsigned int previous_bit         : 1 ;
1161   unsigned int                      : 3 ;
1162   unsigned int cond_addr            : 9 ;
1163   unsigned int pin_select           : 5 ;
1164
1165 #if HET_v2
1166   unsigned int branch_condition     : 5 ;
1167 #else
1168   unsigned int branch_condition     : 3 ;
1169   unsigned int                      : 1 ;
1170   unsigned int                      : 1 ;
1171 #endif
1172
1173   unsigned int                      : 2 ;
1174   unsigned int interrupt_enable     : 1 ;
1175
1176
1177   unsigned int data                 : 25 ;
1178   unsigned int hr_data              : 7 ;
1179
1180 } BR_FIELDS ;
1181
1182 typedef union
1183 {
1184   BR_FIELDS  br     ;
1185   HET_MEMORY memory ;
1186 } BR_INSTRUCTION;
1187
1188
1189 /*---------------------------------------------*/
1190 /* SHFT INSTRUCTION                            */
1191 /*---------------------------------------------*/
1192 typedef struct shft_format
1193 {
1194   unsigned int                      : 6 ;
1195   unsigned int reqnum               : 3 ;
1196   unsigned int brk                  : 1 ;
1197   unsigned int next_program_address : 9 ;
1198   unsigned int op_code              : 4 ;
1199   unsigned int                      : 5 ;
1200   unsigned int shift_mode           : 4 ;
1201
1202   unsigned int                      : 3 ;
1203   unsigned int request              : 2 ;
1204   unsigned int auto_read_clear      : 1 ;
1205   unsigned int previous_bit         : 1 ;
1206   unsigned int                      : 3 ;
1207   unsigned int cond_addr            : 9 ;
1208   unsigned int pin_select           : 5 ;
1209   unsigned int                      : 1 ;
1210   unsigned int shift_condition      : 2 ;
1211   unsigned int                      : 2 ;
1212   unsigned int t_register_select    : 1 ;
1213   unsigned int ab_register_select   : 1 ;
1214   unsigned int interrupt_enable     : 1 ;
1215
1216
1217   unsigned int data                 : 25 ;
1218   unsigned int                      : 7 ;
1219
1220 } SHFT_FIELDS ;
1221
1222 typedef union
1223 {
1224   SHFT_FIELDS  shft   ;
1225   HET_MEMORY   memory ;
1226 } SHFT_INSTRUCTION;
1227
1228 /* ---------------------------------------------------------------------------------------------------- */
1229
1230 #elif defined(_TMS470_LITTLE) || defined(__little_endian__)
1231
1232 #ifndef HETBYTE
1233 #   define HETBYTE unsigned char
1234 #endif
1235
1236 typedef struct memory_format
1237 {
1238   unsigned int program_word  ;
1239   unsigned int control_word  ;
1240   unsigned int data_word     ;
1241   unsigned int reserved_word ;
1242 } HET_MEMORY  ;
1243
1244 /*---------------------------------------------*/
1245 /* ACMP INSTRUCTION                            */
1246 /*---------------------------------------------*/
1247 typedef struct acmp_format
1248 {
1249   unsigned int                      : 9 ;
1250   unsigned int op_code              : 4 ;
1251   unsigned int next_program_address : 9 ;
1252   unsigned int brk                  : 1 ;
1253   unsigned int reqnum               : 3 ;
1254   unsigned int                      : 6 ;
1255
1256   unsigned int interrupt_enable     : 1 ;
1257   unsigned int ab_register_select   : 1 ;
1258   unsigned int t_register_select    : 1 ;
1259   unsigned int                      : 1 ;
1260   unsigned int pin_action           : 1 ;
1261   unsigned int                      : 3 ;
1262   unsigned int pin_select           : 5 ;
1263   unsigned int cond_addr            : 9 ;
1264   unsigned int en_pin_action        : 1 ;
1265   unsigned int                      : 2 ;
1266   unsigned int coutprv              : 1 ;
1267   unsigned int auto_read_clear      : 1 ;
1268   unsigned int request              : 2 ;
1269   unsigned int                      : 3 ;
1270
1271   unsigned int                      : 7  ;
1272   unsigned int data                 : 25 ;
1273
1274 } ACMP_FIELDS;
1275
1276 typedef union
1277 {
1278   ACMP_FIELDS  acmp   ;
1279   HET_MEMORY   memory ;
1280 } ACMP_INSTRUCTION;
1281
1282
1283 /*---------------------------------------------*/
1284 /* ECMP INSTRUCTION                            */
1285 /*---------------------------------------------*/
1286 typedef struct ecmp_format
1287 {
1288   unsigned int                      : 7 ;
1289   unsigned int angle_compare        : 1 ;
1290   unsigned int hr_lr                : 1 ;
1291   unsigned int op_code              : 4 ;
1292   unsigned int next_program_address : 9 ;
1293   unsigned int brk                  : 1 ;
1294   unsigned int reqnum               : 3 ;
1295   unsigned int                      : 6 ;
1296
1297   unsigned int interrupt_enable     : 1 ;
1298   unsigned int ab_register_select   : 1 ;
1299   unsigned int t_register_select    : 1 ;
1300   unsigned int opposite_action      : 1 ;
1301   unsigned int pin_action           : 1 ;
1302   unsigned int sub_opcode           : 2 ;
1303   unsigned int                      : 1 ;
1304   unsigned int pin_select           : 5 ;
1305   unsigned int cond_addr            : 9 ;
1306   unsigned int en_pin_action        : 1 ;
1307   unsigned int                      : 3 ;
1308   unsigned int auto_read_clear      : 1 ;
1309   unsigned int request              : 2 ;
1310   unsigned int                      : 3 ;
1311
1312   unsigned int hr_data              : 7 ;
1313   unsigned int data                 : 25 ;
1314
1315 } ECMP_FIELDS;
1316
1317 typedef union
1318 {
1319   ECMP_FIELDS  ecmp   ;
1320   HET_MEMORY   memory ;
1321 } ECMP_INSTRUCTION;
1322
1323
1324 /*---------------------------------------------*/
1325 /* SCMP INSTRUCTION                            */
1326 /*---------------------------------------------*/
1327 typedef struct scmp_format
1328 {
1329   unsigned int                      : 5 ;
1330   unsigned int                      : 2 ;
1331   unsigned int                      : 2 ;
1332   unsigned int op_code              : 4 ;
1333   unsigned int next_program_address : 9 ;
1334   unsigned int brk                  : 1 ;
1335   unsigned int reqnum               : 3 ;
1336   unsigned int                      : 6 ;
1337
1338   unsigned int interrupt_enable     : 1 ;
1339   unsigned int restart_en           : 1 ;
1340   unsigned int                      : 2 ;
1341   unsigned int pin_action           : 1 ;
1342   unsigned int compare_mode         : 2 ;
1343   unsigned int                      : 1 ;
1344   unsigned int pin_select           : 5 ;
1345   unsigned int cond_addr            : 9 ;
1346   unsigned int en_pin_action        : 1 ;
1347   unsigned int                      : 2 ;
1348   unsigned int coutprv              : 1 ;
1349   unsigned int auto_read_clear      : 1 ;
1350   unsigned int request              : 2 ;
1351   unsigned int                      : 3 ;
1352
1353   unsigned int                      : 7 ;
1354   unsigned int data                 : 25 ;
1355
1356 } SCMP_FIELDS ;
1357
1358 typedef union
1359 {
1360   SCMP_FIELDS  scmp   ;
1361   HET_MEMORY   memory ;
1362 } SCMP_INSTRUCTION;
1363
1364
1365 /*---------------------------------------------*/
1366 /* MCMP INSTRUCTION                            */
1367 /*---------------------------------------------*/
1368 typedef struct mcmp_format
1369 {
1370   unsigned int                      : 5 ;
1371   unsigned int save_subtract        : 1 ;
1372   unsigned int                      : 1 ;
1373   unsigned int angle_compare        : 1 ;
1374   unsigned int hr_lr                : 1 ;
1375   unsigned int op_code              : 4 ;
1376   unsigned int next_program_address : 9 ;
1377   unsigned int brk                  : 1 ;
1378   unsigned int reqnum               : 3 ;
1379   unsigned int                      : 6 ;
1380
1381   unsigned int interrupt_enable     : 1 ;
1382   unsigned int ab_register_select   : 1 ;
1383   unsigned int t_register_select    : 1 ;
1384   unsigned int opposite_action      : 1 ;
1385   unsigned int pin_action           : 1 ;
1386   unsigned int order                : 1 ;
1387   unsigned int sub_opcode           : 1 ;
1388   unsigned int                      : 1 ;
1389   unsigned int pin_select           : 5 ;
1390   unsigned int cond_addr            : 9 ;
1391   unsigned int en_pin_action        : 1 ;
1392   unsigned int                      : 3 ;
1393   unsigned int auto_read_clear      : 1 ;
1394   unsigned int request              : 2 ;
1395   unsigned int                      : 3 ;
1396
1397
1398   unsigned int hr_data              : 7 ;
1399   unsigned int data                 : 25 ;
1400
1401 } MCMP_FIELDS ;
1402
1403 typedef union
1404 {
1405   MCMP_FIELDS  mcmp   ;
1406   HET_MEMORY   memory ;
1407 } MCMP_INSTRUCTION;
1408
1409 /*---------------------------------------------*/
1410 /* MOV64 INSTRUCTION                           */
1411 /*---------------------------------------------*/
1412 typedef struct mov64_format
1413 {
1414   unsigned int remote_address       : 9 ;
1415   unsigned int op_code              : 4 ;
1416   unsigned int next_program_address : 9 ;
1417   unsigned int brk                  : 1 ;
1418   unsigned int                      : 9 ;
1419
1420   unsigned int interrupt_enable     : 1 ;
1421   unsigned int ab_register_select   : 1 ;
1422   unsigned int t_register_select    : 1 ;
1423   unsigned int opposite_action      : 1 ;
1424   unsigned int pin_action           : 1 ;
1425   unsigned int compare_mode         : 2 ;
1426   unsigned int                      : 1 ;
1427   unsigned int pin_select           : 5 ;
1428   unsigned int cond_addr            : 9 ;
1429   unsigned int en_pin_action        : 1 ;
1430   unsigned int                      : 3 ;
1431   unsigned int auto_read_clear      : 1 ;
1432   unsigned int request              : 2 ;
1433   unsigned int                      : 3 ;
1434
1435   unsigned int hr_data              : 7 ;
1436   unsigned int data                 : 25 ;
1437
1438 } MOV64_FIELDS ;
1439
1440 typedef union
1441 {
1442   MOV64_FIELDS  mov64  ;
1443   HET_MEMORY    memory ;
1444 } MOV64_INSTRUCTION;
1445
1446
1447 /*---------------------------------------------*/
1448 /* DADM64 INSTRUCTION                          */
1449 /*---------------------------------------------*/
1450 typedef struct dadm64_format
1451 {
1452   unsigned int remote_address       : 9 ;
1453   unsigned int op_code              : 4 ;
1454   unsigned int next_program_address : 9 ;
1455   unsigned int brk                  : 1 ;
1456   unsigned int                      : 9 ;
1457
1458   unsigned int interrupt_enable     : 1 ;
1459   unsigned int ab_register_select   : 1 ;
1460   unsigned int t_register_select    : 1 ;
1461   unsigned int opposite_action      : 1 ;
1462   unsigned int pin_action           : 1 ;
1463   unsigned int compare_mode         : 2 ;
1464   unsigned int                      : 1 ;
1465   unsigned int pin_select           : 5 ;
1466   unsigned int cond_addr            : 9 ;
1467   unsigned int en_pin_action        : 1 ;
1468   unsigned int                      : 3 ;
1469   unsigned int auto_read_clear      : 1 ;
1470   unsigned int request              : 2 ;
1471   unsigned int                      : 3 ;
1472
1473   unsigned int hr_data              : 7 ;
1474   unsigned int data                 : 25 ;
1475
1476 } DADM64_FIELDS ;
1477
1478 typedef union
1479 {
1480   DADM64_FIELDS  dadm64 ;
1481   HET_MEMORY     memory ;
1482 } DADM64_INSTRUCTION;
1483
1484
1485 /*---------------------------------------------*/
1486 /* RADM64 INSTRUCTION                          */
1487 /*---------------------------------------------*/
1488 typedef struct RADM64_format
1489 {
1490   unsigned int remote_address       : 9 ;
1491   unsigned int op_code              : 4 ;
1492   unsigned int next_program_address : 9 ;
1493   unsigned int brk                  : 1 ;
1494   unsigned int                      : 9 ;
1495
1496   unsigned int interrupt_enable     : 1 ;
1497   unsigned int ab_register_select   : 1 ;
1498   unsigned int t_register_select    : 1 ;
1499   unsigned int opposite_action      : 1 ;
1500   unsigned int pin_action           : 1 ;
1501   unsigned int compare_mode         : 2 ;
1502   unsigned int                      : 1 ;
1503   unsigned int pin_select           : 5 ;
1504   unsigned int cond_addr            : 9 ;
1505   unsigned int en_pin_action        : 1 ;
1506   unsigned int                      : 3 ;
1507   unsigned int auto_read_clear      : 1 ;
1508   unsigned int request              : 2 ;
1509   unsigned int                      : 3 ;
1510
1511   unsigned int hr_data              : 7 ;
1512   unsigned int data                 : 25 ;
1513
1514 } RADM64_FIELDS ;
1515
1516
1517 typedef union
1518 {
1519   RADM64_FIELDS  radm64 ;
1520   HET_MEMORY     memory ;
1521 } RADM64_INSTRUCTION;
1522
1523
1524 /*---------------------------------------------*/
1525 /* MOV32 INSTRUCTION                           */
1526 /*---------------------------------------------*/
1527 typedef struct MOV32_format
1528 {
1529   unsigned int remote_address       : 9 ;
1530   unsigned int op_code              : 4 ;
1531   unsigned int next_program_address : 9 ;
1532   unsigned int brk                  : 1 ;
1533   unsigned int                      : 9 ;
1534
1535   unsigned int                      : 1 ;
1536   unsigned int ab_register_select   : 1 ;
1537   unsigned int t_register_select    : 1 ;
1538   unsigned int move_type            : 2 ;
1539   unsigned int sub_opcode           : 1 ;
1540   unsigned int init_flag            : 1 ;
1541   unsigned int                      : 15 ;
1542   unsigned int z_flag               : 1 ;
1543   unsigned int                      : 3 ;
1544   unsigned int auto_read_clear      : 1 ;
1545   unsigned int                      : 5 ;
1546
1547   unsigned int hr_data              : 7 ;
1548   unsigned int data                 : 25 ;
1549
1550 } MOV32_FIELDS ;
1551
1552
1553 typedef union
1554 {
1555   MOV32_FIELDS  mov32  ;
1556   HET_MEMORY    memory ;
1557 } MOV32_INSTRUCTION;
1558
1559
1560 /*---------------------------------------------*/
1561 /* ADM32 INSTRUCTION                           */
1562 /*---------------------------------------------*/
1563 typedef struct ADM32_format
1564 {
1565   unsigned int remote_address       : 9 ;
1566   unsigned int op_code              : 4 ;
1567   unsigned int next_program_address : 9 ;
1568   unsigned int brk                  : 1 ;
1569   unsigned int                      : 9 ;
1570
1571   unsigned int                      : 1 ;
1572   unsigned int ab_register_select   : 1 ;
1573   unsigned int t_register_select    : 1 ;
1574   unsigned int move_type            : 2 ;
1575   unsigned int sub_opcode           : 1 ;
1576   unsigned int init_flag            : 1 ;
1577   unsigned int                      : 19 ;
1578   unsigned int auto_read_clear      : 1 ;
1579   unsigned int                      : 5 ;
1580
1581   unsigned int hr_data              : 7 ;
1582   unsigned int data                 : 25 ;
1583
1584 } ADM32_FIELDS ;
1585
1586
1587 typedef union
1588 {
1589   ADM32_FIELDS  adm32  ;
1590   HET_MEMORY    memory ;
1591 } ADM32_INSTRUCTION;
1592
1593
1594 /*---------------------------------------------*/
1595 /* ADCNST INSTRUCTION                          */
1596 /*---------------------------------------------*/
1597 typedef struct ADCNST_format
1598 {
1599   unsigned int remote_address       : 9 ;
1600   unsigned int op_code              : 4 ;
1601   unsigned int next_program_address : 9 ;
1602   unsigned int brk                  : 1 ;
1603   unsigned int                      : 9 ;
1604
1605   unsigned int constant             : 25 ;
1606   unsigned int                      : 1 ;
1607   unsigned int                      : 5 ;
1608
1609   unsigned int hr_data              : 7 ;
1610   unsigned int data                 : 25 ;
1611
1612 } ADCNST_FIELDS ;
1613
1614
1615 typedef union
1616 {
1617   ADCNST_FIELDS  adcnst ;
1618   HET_MEMORY     memory ;
1619 } ADCNST_INSTRUCTION;
1620
1621
1622
1623 /*----------------------------------------------*/
1624 /* ADD INSTRUCTION                  */
1625 /*----------------------------------------------*/
1626 typedef struct ADD_format
1627 {
1628
1629   unsigned int remote_address       : 9 ;
1630   unsigned int op_code              : 4 ;
1631   unsigned int next_program_address : 9 ;
1632   unsigned int brk                  : 1 ;
1633   unsigned int                      : 9 ;
1634
1635   unsigned int                      : 1 ;
1636   unsigned int reg                  : 2 ;
1637   unsigned int rem_dest             : 2 ;
1638   unsigned int sub_opcode1          : 1 ;
1639   unsigned int init_flag            : 1 ;
1640   unsigned int reg_ext              : 1 ;
1641   unsigned int shft_cnt             : 5 ;
1642   unsigned int shft_mode            : 3 ;
1643   unsigned int src_2                : 3 ;
1644   unsigned int src_1                : 4 ;
1645   unsigned int sub_opcode3          : 3 ;
1646   unsigned int control              : 1 ;
1647   unsigned int                      : 5 ;
1648
1649   unsigned int hr_data              : 7 ;
1650   unsigned int data                 : 25 ;
1651
1652
1653 } ADD_FIELDS ;
1654
1655
1656 typedef union
1657 {
1658   ADD_FIELDS  add ;
1659   HET_MEMORY  memory ;
1660 } ADD_INSTRUCTION;
1661
1662
1663
1664
1665 /*----------------------------------------------*/
1666 /* ADC INSTRUCTION                  */
1667 /*----------------------------------------------*/
1668
1669
1670 typedef struct ADC_format
1671 {
1672
1673   unsigned int remote_address       : 9 ;
1674   unsigned int op_code              : 4 ;
1675   unsigned int next_program_address : 9 ;
1676   unsigned int brk                  : 1 ;
1677   unsigned int                      : 9 ;
1678
1679   unsigned int                      : 1 ;
1680   unsigned int reg                  : 2 ;
1681   unsigned int rem_dest             : 2 ;
1682   unsigned int sub_opcode1          : 1 ;
1683   unsigned int init_flag            : 1 ;
1684   unsigned int reg_ext              : 1 ;
1685   unsigned int shft_cnt             : 5 ;
1686   unsigned int shft_mode            : 3 ;
1687   unsigned int src_2                : 3 ;
1688   unsigned int src_1                : 4 ;
1689   unsigned int sub_opcode3          : 3 ;
1690   unsigned int control              : 1 ;
1691   unsigned int                      : 5 ;
1692
1693   unsigned int hr_data              : 7 ;
1694   unsigned int data                 : 25 ;
1695
1696
1697 } ADC_FIELDS ;
1698
1699
1700 typedef union
1701 {
1702   ADC_FIELDS  adc ;
1703   HET_MEMORY  memory ;
1704 } ADC_INSTRUCTION;
1705
1706
1707
1708
1709 /*----------------------------------------------*/
1710 /* SUB INSTRUCTION                  */
1711 /*----------------------------------------------*/
1712
1713 typedef struct SUB_format
1714 {
1715
1716   unsigned int remote_address       : 9 ;
1717   unsigned int op_code              : 4 ;
1718   unsigned int next_program_address : 9 ;
1719   unsigned int brk                  : 1 ;
1720   unsigned int                      : 9 ;
1721
1722   unsigned int                      : 1 ;
1723   unsigned int reg                  : 2 ;
1724   unsigned int rem_dest             : 2 ;
1725   unsigned int sub_opcode1          : 1 ;
1726   unsigned int init_flag            : 1 ;
1727   unsigned int reg_ext              : 1 ;
1728   unsigned int shft_cnt             : 5 ;
1729   unsigned int shft_mode            : 3 ;
1730   unsigned int src_2                : 3 ;
1731   unsigned int src_1                : 4 ;
1732   unsigned int sub_opcode3          : 3 ;
1733   unsigned int control              : 1 ;
1734   unsigned int                      : 5 ;
1735
1736   unsigned int hr_data              : 7 ;
1737   unsigned int data                 : 25 ;
1738
1739
1740 } SUB_FIELDS ;
1741
1742
1743 typedef union
1744 {
1745   SUB_FIELDS  sub ;
1746   HET_MEMORY  memory ;
1747 } SUB_INSTRUCTION;
1748
1749
1750
1751
1752
1753 /*----------------------------------------------*/
1754 /* SBB INSTRUCTION                  */
1755 /*----------------------------------------------*/
1756
1757 typedef struct SBB_format
1758 {
1759
1760   unsigned int remote_address       : 9 ;
1761   unsigned int op_code              : 4 ;
1762   unsigned int next_program_address : 9 ;
1763   unsigned int brk                  : 1 ;
1764   unsigned int                      : 9 ;
1765
1766   unsigned int                      : 1 ;
1767   unsigned int reg                  : 2 ;
1768   unsigned int rem_dest             : 2 ;
1769   unsigned int sub_opcode1          : 1 ;
1770   unsigned int init_flag            : 1 ;
1771   unsigned int reg_ext              : 1 ;
1772   unsigned int shft_cnt             : 5 ;
1773   unsigned int shft_mode            : 3 ;
1774   unsigned int src_2                : 3 ;
1775   unsigned int src_1                : 4 ;
1776   unsigned int sub_opcode3          : 3 ;
1777   unsigned int control              : 1 ;
1778   unsigned int                      : 5 ;
1779
1780   unsigned int hr_data              : 7 ;
1781   unsigned int data                 : 25 ;
1782
1783
1784 } SBB_FIELDS ;
1785
1786
1787 typedef union
1788 {
1789   SBB_FIELDS  sbb ;
1790   HET_MEMORY  memory ;
1791 } SBB_INSTRUCTION;
1792
1793
1794
1795
1796 /*----------------------------------------------*/
1797 /* AND INSTRUCTION                  */
1798 /*----------------------------------------------*/
1799
1800 typedef struct AND_format
1801 {
1802
1803   unsigned int remote_address       : 9 ;
1804   unsigned int op_code              : 4 ;
1805   unsigned int next_program_address : 9 ;
1806   unsigned int brk                  : 1 ;
1807   unsigned int                      : 9 ;
1808
1809   unsigned int                      : 1 ;
1810   unsigned int reg                  : 2 ;
1811   unsigned int rem_dest             : 2 ;
1812   unsigned int sub_opcode1          : 1 ;
1813   unsigned int init_flag            : 1 ;
1814   unsigned int reg_ext              : 1 ;
1815   unsigned int shft_cnt             : 5 ;
1816   unsigned int shft_mode            : 3 ;
1817   unsigned int src_2                : 3 ;
1818   unsigned int src_1                : 4 ;
1819   unsigned int sub_opcode3          : 3 ;
1820   unsigned int control              : 1 ;
1821   unsigned int                      : 5 ;
1822
1823   unsigned int hr_data              : 7 ;
1824   unsigned int data                 : 25 ;
1825
1826
1827 } AND_FIELDS ;
1828
1829
1830 typedef union
1831 {
1832   AND_FIELDS  and ;
1833   HET_MEMORY  memory ;
1834 } AND_INSTRUCTION;
1835
1836
1837
1838 /*----------------------------------------------*/
1839 /* OR INSTRUCTION                       */
1840 /*----------------------------------------------*/
1841
1842 typedef struct OR_format
1843 {
1844
1845   unsigned int remote_address       : 9 ;
1846   unsigned int op_code              : 4 ;
1847   unsigned int next_program_address : 9 ;
1848   unsigned int brk                  : 1 ;
1849   unsigned int                      : 9 ;
1850
1851   unsigned int                      : 1 ;
1852   unsigned int reg                  : 2 ;
1853   unsigned int rem_dest             : 2 ;
1854   unsigned int sub_opcode1          : 1 ;
1855   unsigned int init_flag            : 1 ;
1856   unsigned int reg_ext              : 1 ;
1857   unsigned int shft_cnt             : 5 ;
1858   unsigned int shft_mode            : 3 ;
1859   unsigned int src_2                : 3 ;
1860   unsigned int src_1                : 4 ;
1861   unsigned int sub_opcode3          : 3 ;
1862   unsigned int control              : 1 ;
1863   unsigned int                      : 5 ;
1864
1865   unsigned int hr_data              : 7 ;
1866   unsigned int data                 : 25 ;
1867
1868
1869 } OR_FIELDS ;
1870
1871
1872 typedef union
1873 {
1874   OR_FIELDS  or ;
1875   HET_MEMORY  memory ;
1876 } OR_INSTRUCTION;
1877
1878
1879
1880 /*----------------------------------------------*/
1881 /* XOR INSTRUCTION                  */
1882 /*----------------------------------------------*/
1883
1884 typedef struct XOR_format
1885 {
1886
1887   unsigned int remote_address       : 9 ;
1888   unsigned int op_code              : 4 ;
1889   unsigned int next_program_address : 9 ;
1890   unsigned int brk                  : 1 ;
1891   unsigned int                      : 9 ;
1892
1893   unsigned int                      : 1 ;
1894   unsigned int reg                  : 2 ;
1895   unsigned int rem_dest             : 2 ;
1896   unsigned int sub_opcode1          : 1 ;
1897   unsigned int init_flag            : 1 ;
1898   unsigned int reg_ext              : 1 ;
1899   unsigned int shft_cnt             : 5 ;
1900   unsigned int shft_mode            : 3 ;
1901   unsigned int src_2                : 3 ;
1902   unsigned int src_1                : 4 ;
1903   unsigned int sub_opcode3          : 3 ;
1904   unsigned int control              : 1 ;
1905   unsigned int                      : 5 ;
1906
1907   unsigned int hr_data              : 7 ;
1908   unsigned int data                 : 25 ;
1909
1910
1911 } XOR_FIELDS ;
1912
1913
1914 typedef union
1915 {
1916   XOR_FIELDS  xor ;
1917   HET_MEMORY  memory ;
1918 } XOR_INSTRUCTION;
1919
1920
1921
1922
1923 /*---------------------------------------------*/
1924 /* CNT INSTRUCTION                             */
1925 /*---------------------------------------------*/
1926 typedef struct CNT_format
1927 {
1928   unsigned int interrupt_enable     : 1 ;
1929   unsigned int                      : 4 ;
1930   unsigned int ab_register_select   : 1 ;
1931   unsigned int t_register_select    : 1 ;
1932   unsigned int angle_cnt            : 1 ;
1933   unsigned int op_code              : 4 ;
1934   unsigned int next_program_address : 9 ;
1935   unsigned int brk                  : 1 ;
1936   unsigned int                      : 9 ;
1937
1938   unsigned int max                  : 25 ;
1939   unsigned int                      : 1 ;
1940   unsigned int auto_read_clear      : 1 ;
1941   unsigned int request              : 2 ;
1942   unsigned int                      : 3 ;
1943
1944   unsigned int                      : 7 ;
1945   unsigned int data                 : 25 ;
1946
1947 } CNT_FIELDS ;
1948
1949 typedef union
1950 {
1951   CNT_FIELDS   cnt    ;
1952   HET_MEMORY   memory ;
1953 } CNT_INSTRUCTION;
1954
1955
1956 /*---------------------------------------------*/
1957 /* APCNT INSTRUCTION                           */
1958 /*---------------------------------------------*/
1959 typedef struct apcnt_format
1960 {
1961   unsigned int                      : 6 ;
1962   unsigned int edge_select          : 2 ;
1963   unsigned int interrupt_enable     : 1 ;
1964   unsigned int op_code              : 4 ;
1965   unsigned int next_program_address : 9 ;
1966   unsigned int brk                  : 1 ;
1967   unsigned int reqnum               : 3 ;
1968   unsigned int                      : 6 ;
1969
1970   unsigned int count                : 25 ;
1971   unsigned int previous_bit         : 1 ;
1972   unsigned int auto_read_clear      : 1 ;
1973   unsigned int request              : 2 ;
1974   unsigned int                      : 3 ;
1975
1976   unsigned int                      : 7 ;
1977   unsigned int data                 : 25 ;
1978
1979 } APCNT_FIELDS ;
1980
1981 typedef union
1982 {
1983   APCNT_FIELDS  apcnt   ;
1984   HET_MEMORY   memory ;
1985 } APCNT_INSTRUCTION;
1986
1987
1988
1989 /*---------------------------------------------*/
1990 /* PCNT INSTRUCTION                            */
1991 /*---------------------------------------------*/
1992 typedef struct pcnt_format
1993 {
1994   unsigned int pin_select           : 5 ;
1995   unsigned int                      : 1 ;
1996   unsigned int period_pulse_select  : 2 ;
1997   unsigned int interrupt_enable     : 1 ;
1998   unsigned int op_code              : 4 ;
1999   unsigned int next_program_address : 9 ;
2000   unsigned int brk                  : 1 ;
2001   unsigned int reqnum               : 3 ;
2002   unsigned int                      : 6 ;
2003
2004   unsigned int count                : 25 ;
2005   unsigned int previous_bit         : 1 ;
2006   unsigned int auto_read_clear      : 1 ;
2007   unsigned int request              : 2 ;
2008   unsigned int                      : 3 ;
2009
2010   unsigned int hr_data              : 7 ;
2011   unsigned int data                 : 25 ;
2012
2013 } PCNT_FIELDS ;
2014
2015 typedef union
2016 {
2017   PCNT_FIELDS  pcnt   ;
2018   HET_MEMORY   memory ;
2019 } PCNT_INSTRUCTION;
2020
2021
2022 /*---------------------------------------------*/
2023 /* SCNT INSTRUCTION                            */
2024 /*---------------------------------------------*/
2025 typedef struct scnt_format
2026 {
2027   unsigned int                      : 4 ;
2028   unsigned int step_width           : 2 ;
2029   unsigned int count_mode           : 2 ;
2030   unsigned int                      : 1 ;
2031   unsigned int op_code              : 4 ;
2032   unsigned int next_program_address : 9 ;
2033   unsigned int brk                  : 1 ;
2034   unsigned int                      : 9 ;
2035
2036   unsigned int gap_start            : 25 ;
2037   unsigned int                      : 1 ;
2038   unsigned int auto_read_clear      : 1 ;
2039   unsigned int                      : 5 ;
2040
2041   unsigned int                      : 7 ;
2042   unsigned int data                 : 25 ;
2043
2044 } SCNT_FIELDS ;
2045
2046 typedef union
2047 {
2048   SCNT_FIELDS  scnt   ;
2049   HET_MEMORY   memory ;
2050 } SCNT_INSTRUCTION;
2051
2052 /*---------------------------------------------*/
2053 /* ACNT INSTRUCTION                            */
2054 /*---------------------------------------------*/
2055 typedef struct acnt_format
2056 {
2057   unsigned int interrupt_enable     : 1 ;
2058   unsigned int                      : 7 ;
2059   unsigned int edge_select          : 1 ;
2060   unsigned int op_code              : 4 ;
2061   unsigned int next_program_address : 9 ;
2062   unsigned int brk                  : 1 ;
2063   unsigned int reqnum               : 3 ;
2064   unsigned int                      : 6 ;
2065
2066   unsigned int gap_end              : 25 ;
2067   unsigned int previous_bit         : 1 ;
2068   unsigned int auto_read_clear      : 1 ;
2069   unsigned int request              : 2 ;
2070   unsigned int                      : 3 ;
2071
2072   unsigned int                      : 7 ;
2073   unsigned int data                 : 25 ;
2074
2075 } ACNT_FIELDS ;
2076
2077 typedef union
2078 {
2079   ACNT_FIELDS  acnt   ;
2080   HET_MEMORY   memory ;
2081 } ACNT_INSTRUCTION;
2082
2083
2084 /*---------------------------------------------*/
2085 /* ECNT INSTRUCTION                            */
2086 /*---------------------------------------------*/
2087 typedef struct ecnt_format
2088 {
2089   unsigned int                      : 6 ;
2090   unsigned int count_mode           : 2 ;
2091   unsigned int                      : 1 ;
2092   unsigned int op_code              : 4 ;
2093   unsigned int next_program_address : 9 ;
2094   unsigned int brk                  : 1 ;
2095   unsigned int reqnum               : 3 ;
2096   unsigned int                      : 6 ;
2097
2098   unsigned int interrupt_enable     : 1 ;
2099   unsigned int ab_register_select   : 1 ;
2100   unsigned int t_register_select    : 1 ;
2101   unsigned int                      : 1 ;
2102   unsigned int count_cond           : 3 ;
2103   unsigned int                      : 1 ;
2104   unsigned int pin_select           : 5 ;
2105   unsigned int cond_addr            : 9 ;
2106   unsigned int                      : 3 ;
2107   unsigned int previous_bit         : 1 ;
2108   unsigned int auto_read_clear      : 1 ;
2109   unsigned int request              : 2 ;
2110   unsigned int                      : 3 ;
2111
2112   unsigned int                      : 7 ;
2113   unsigned int data                 : 25 ;
2114
2115
2116 } ECNT_FIELDS ;
2117
2118 typedef union
2119 {
2120   ECNT_FIELDS  ecnt   ;
2121   HET_MEMORY   memory ;
2122 } ECNT_INSTRUCTION;
2123
2124 /*---------------------------------------------*/
2125 /* RCNT INSTRUCTION                            */
2126 /*---------------------------------------------*/
2127 typedef struct rcnt_format
2128 {
2129
2130   unsigned int count_mode1          : 1 ;
2131   unsigned int                      : 5 ;
2132   unsigned int count_mode           : 2 ;
2133   unsigned int                      : 1 ;
2134   unsigned int op_code              : 4 ;
2135   unsigned int next_program_address : 9 ;
2136   unsigned int brk                  : 1 ;
2137   unsigned int reqnum               : 3 ;
2138   unsigned int                      : 6 ;
2139
2140
2141   unsigned int divisor              : 25 ;
2142   unsigned int                      : 1 ;
2143   unsigned int control              : 1 ;
2144   unsigned int                      : 2 ;
2145   unsigned int                      : 3 ;
2146
2147   unsigned int                      : 7 ;
2148   unsigned int data                 : 25 ;
2149
2150
2151 } RCNT_FIELDS ;
2152
2153 typedef union
2154 {
2155   RCNT_FIELDS  rcnt   ;
2156   HET_MEMORY   memory ;
2157 } RCNT_INSTRUCTION;
2158
2159
2160 /*---------------------------------------------*/
2161 /* DJNZ INSTRUCTION                            */
2162 /*---------------------------------------------*/
2163 typedef struct djnz_format
2164 {
2165   unsigned int                      : 6 ;
2166   unsigned int sub_opcode           : 2 ;
2167   unsigned int                      : 1 ;
2168   unsigned int op_code              : 4 ;
2169   unsigned int next_program_address : 9 ;
2170   unsigned int brk                  : 1 ;
2171   unsigned int reqnum               : 3 ;
2172   unsigned int                      : 6 ;
2173
2174   unsigned int interrupt_enable     : 1 ;
2175   unsigned int ab_register_select   : 1 ;
2176   unsigned int t_register_select    : 1 ;
2177   unsigned int                      : 10 ;
2178   unsigned int cond_addr            : 9 ;
2179   unsigned int                      : 4 ;
2180   unsigned int auto_read_clear      : 1 ;
2181   unsigned int request              : 2 ;
2182   unsigned int                      : 3 ;
2183
2184   unsigned int                      : 7 ;
2185   unsigned int data                 : 25 ;
2186
2187 } DJNZ_FIELDS ;
2188
2189 typedef union
2190 {
2191   DJNZ_FIELDS  djnz   ;
2192   HET_MEMORY   memory ;
2193 } DJNZ_INSTRUCTION;
2194
2195
2196 /*---------------------------------------------*/
2197 /* DJZ INSTRUCTION                            */
2198 /*---------------------------------------------*/
2199 typedef struct djz_format
2200 {
2201   unsigned int                      : 6 ;
2202   unsigned int sub_opcode           : 2 ;
2203   unsigned int                      : 1 ;
2204   unsigned int op_code              : 4 ;
2205   unsigned int next_program_address : 9 ;
2206   unsigned int brk                  : 1 ;
2207   unsigned int reqnum               : 3 ;
2208   unsigned int                      : 6 ;
2209
2210   unsigned int interrupt_enable     : 1 ;
2211   unsigned int ab_register_select   : 1 ;
2212   unsigned int t_register_select    : 1 ;
2213   unsigned int                      : 10 ;
2214   unsigned int cond_addr            : 9 ;
2215   unsigned int                      : 4 ;
2216   unsigned int auto_read_clear      : 1 ;
2217   unsigned int request              : 2 ;
2218   unsigned int                      : 3 ;
2219
2220   unsigned int                      : 7 ;
2221   unsigned int data                 : 25 ;
2222
2223 } DJZ_FIELDS ;
2224
2225 typedef union
2226 {
2227   DJZ_FIELDS  djz   ;
2228   HET_MEMORY   memory ;
2229 } DJZ_INSTRUCTION;
2230 \f
2231 /*---------------------------------------------*/
2232 /* PWCNT INSTRUCTION                           */
2233 /*---------------------------------------------*/
2234 typedef struct pwcnt_format
2235 {
2236   unsigned int                      : 6 ;
2237   unsigned int count_mode           : 2 ;
2238   unsigned int hr_lr                : 1 ;
2239   unsigned int op_code              : 4 ;
2240   unsigned int next_program_address : 9 ;
2241   unsigned int brk                  : 1 ;
2242   unsigned int reqnum               : 3 ;
2243   unsigned int                      : 6 ;
2244
2245   unsigned int interrupt_enable     : 1 ;
2246   unsigned int ab_register_select   : 1 ;
2247   unsigned int t_register_select    : 1 ;
2248   unsigned int opposite_action      : 1 ;
2249   unsigned int pin_action           : 1 ;
2250   unsigned int                      : 3 ;
2251   unsigned int pin_select           : 5 ;
2252   unsigned int cond_addr            : 9 ;
2253   unsigned int en_pin_action        : 1 ;
2254   unsigned int                      : 3 ;
2255   unsigned int auto_read_clear      : 1 ;
2256   unsigned int request              : 2 ;
2257   unsigned int                      : 3 ;
2258
2259
2260   unsigned int hr_data              : 7 ;
2261   unsigned int data                 : 25 ;
2262
2263 } PWCNT_FIELDS ;
2264
2265 typedef union
2266 {
2267   PWCNT_FIELDS  pwcnt ;
2268   HET_MEMORY   memory ;
2269 } PWCNT_INSTRUCTION;
2270
2271
2272 /*---------------------------------------------*/
2273 /* WCAP INSTRUCTION                            */
2274 /*---------------------------------------------*/
2275 typedef struct wcap_format
2276 {
2277   unsigned int                      : 8 ;
2278   unsigned int hr_lr                : 1 ;
2279   unsigned int op_code              : 4 ;
2280   unsigned int next_program_address : 9 ;
2281   unsigned int brk                  : 1 ;
2282   unsigned int reqnum               : 3 ;
2283   unsigned int                      : 6 ;
2284
2285   unsigned int interrupt_enable     : 1 ;
2286   unsigned int ab_register_select   : 1 ;
2287   unsigned int t_register_select    : 1 ;
2288   unsigned int                      : 2 ;
2289   unsigned int capture_condition    : 2 ;
2290   unsigned int                      : 1 ;
2291   unsigned int pin_select           : 5 ;
2292   unsigned int cond_addr            : 9 ;
2293   unsigned int                      : 3 ;
2294   unsigned int previous_bit         : 1 ;
2295   unsigned int auto_read_clear      : 1 ;
2296   unsigned int request              : 2 ;
2297   unsigned int                      : 3 ;
2298
2299   unsigned int hr_data              : 7 ;
2300   unsigned int data                 : 25 ;
2301
2302 } WCAP_FIELDS ;
2303
2304 typedef union
2305 {
2306   WCAP_FIELDS  wcap   ;
2307   HET_MEMORY   memory ;
2308 } WCAP_INSTRUCTION;
2309
2310 /*----------------------------------------------*/
2311 /* WCAPE INSTRUCTION                            */
2312 /*----------------------------------------------*/
2313 typedef struct wcape_format
2314 {
2315   unsigned int                      : 9 ;
2316   unsigned int op_code              : 4 ;
2317   unsigned int next_program_address : 9 ;
2318   unsigned int brk                  : 1 ;
2319   unsigned int reqnum               : 3 ;
2320   unsigned int                      : 6 ;
2321
2322   unsigned int interrupt_enable     : 1 ;
2323   unsigned int ab_register_select   : 1 ;
2324   unsigned int t_register_select    : 1 ;
2325   unsigned int                      : 2 ;
2326   unsigned int capture_condition    : 2 ;
2327   unsigned int                      : 1 ;
2328   unsigned int pin_select           : 5 ;
2329   unsigned int cond_addr            : 9 ;
2330   unsigned int previous_bit         : 1 ;
2331   unsigned int auto_read_clear      : 1 ;
2332   unsigned int request              : 2 ;
2333   unsigned int                      : 3 ;
2334
2335   unsigned int ec_data              : 7 ;
2336   unsigned int ts_data              : 25 ;
2337
2338 } WCAPE_FIELDS ;
2339
2340 typedef union
2341 {
2342   WCAPE_FIELDS  wcape   ;
2343   HET_MEMORY   memory ;
2344 } WCAPE_INSTRUCTION;
2345
2346
2347 /*---------------------------------------------*/
2348 /* BR   INSTRUCTION                            */
2349 /*---------------------------------------------*/
2350 typedef struct br_format
2351 {
2352   unsigned int                      : 9 ;
2353   unsigned int op_code              : 4 ;
2354   unsigned int next_program_address : 9 ;
2355   unsigned int brk                  : 1 ;
2356   unsigned int reqnum               : 3 ;
2357   unsigned int                      : 6 ;
2358
2359   unsigned int interrupt_enable     : 1 ;
2360   unsigned int                      : 2 ;
2361   unsigned int                      : 1 ;
2362   unsigned int                      : 1 ;
2363   unsigned int branch_condition     : 3 ;
2364   unsigned int pin_select           : 5 ;
2365   unsigned int cond_addr            : 9 ;
2366   unsigned int                      : 3 ;
2367   unsigned int previous_bit         : 1 ;
2368   unsigned int auto_read_clear      : 1 ;
2369   unsigned int request              : 2 ;
2370   unsigned int                      : 3 ;
2371
2372   unsigned int hr_data              : 7 ;
2373   unsigned int data                 : 25 ;
2374
2375 } BR_FIELDS ;
2376
2377 typedef union
2378 {
2379   BR_FIELDS  br     ;
2380   HET_MEMORY memory ;
2381 } BR_INSTRUCTION;
2382
2383
2384 /*---------------------------------------------*/
2385 /* SHFT INSTRUCTION                            */
2386 /*---------------------------------------------*/
2387 typedef struct shft_format
2388 {
2389   unsigned int shift_mode           : 4 ;
2390   unsigned int                      : 5 ;
2391   unsigned int op_code              : 4 ;
2392   unsigned int next_program_address : 9 ;
2393   unsigned int brk                  : 1 ;
2394   unsigned int reqnum               : 3 ;
2395   unsigned int                      : 6 ;
2396
2397   unsigned int interrupt_enable     : 1 ;
2398   unsigned int ab_register_select   : 1 ;
2399   unsigned int t_register_select    : 1 ;
2400   unsigned int                      : 2 ;
2401   unsigned int shift_condition      : 2 ;
2402   unsigned int                      : 1 ;
2403   unsigned int pin_select           : 5 ;
2404   unsigned int cond_addr            : 9 ;
2405   unsigned int                      : 3 ;
2406   unsigned int previous_bit         : 1 ;
2407   unsigned int auto_read_clear      : 1 ;
2408   unsigned int request              : 2 ;
2409   unsigned int                      : 3 ;
2410
2411   unsigned int                      : 7 ;
2412   unsigned int data                 : 25 ;
2413
2414 } SHFT_FIELDS ;
2415
2416 typedef union
2417 {
2418   SHFT_FIELDS  shft   ;
2419   HET_MEMORY   memory ;
2420 } SHFT_INSTRUCTION;
2421
2422 #endif
2423
2424 #endif
2425 /*--------------------------- End Of File ----------------------------------*/