]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/library/freescale/table_HCS08.ma
bcc85252668af1e9ea2f493e8b95b7d2b83dfdca
[helm.git] / helm / software / matita / library / freescale / table_HCS08.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* ********************************************************************** *)
16 (*                           Progetto FreeScale                           *)
17 (*                                                                        *)
18 (* Sviluppato da:                                                         *)
19 (*   Cosimo Oliboni, oliboni@cs.unibo.it                                  *)
20 (*                                                                        *)
21 (* Questo materiale fa parte della tesi:                                  *)
22 (*   "Formalizzazione Interattiva dei Microcontroller a 8bit FreeScale"   *)
23 (*                                                                        *)
24 (*                    data ultima modifica 15/11/2007                     *)
25 (* ********************************************************************** *)
26
27 set "baseuri" "cic:/matita/freescale/table_HCS08/".
28
29 (*include "/media/VIRTUOSO/freescale/opcode.ma".*)
30 include "freescale/opcode.ma".
31
32 (* ****************** *)
33 (* TABELLA DELL'HCS08 *)
34 (* ****************** *)
35
36 (* definizione come concatenazione finale di liste per velocizzare il parsing *)
37 (* ogni riga e' (any_opcode m) (instr_mode) (opcode esadecimale) (#cicli esecuzione) *)
38 (* NB: l'uso di any_opcode m + concatenazione finale tutte liste
39        impedisce di introdurre opcode disomogenei (per mcu) *)
40
41 definition opcode_table_HCS08_1 ≝
42 [
43   quadrupleT ???? (anyOP HCS08 ADC) MODE_IMM1 (Byte 〈xA,x9〉) 〈x0,x2〉
44 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_DIR1 (Byte 〈xB,x9〉) 〈x0,x3〉
45 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_DIR2 (Byte 〈xC,x9〉) 〈x0,x4〉
46 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_IX2  (Byte 〈xD,x9〉) 〈x0,x4〉
47 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_IX1  (Byte 〈xE,x9〉) 〈x0,x3〉
48 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_IX0  (Byte 〈xF,x9〉) 〈x0,x3〉
49 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x9〉〉) 〈x0,x5〉
50 ; quadrupleT ???? (anyOP HCS08 ADC) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x9〉〉) 〈x0,x4〉
51 ].
52
53 definition opcode_table_HCS08_2 ≝
54 [
55   quadrupleT ???? (anyOP HCS08 ADD) MODE_IMM1 (Byte 〈xA,xB〉) 〈x0,x2〉
56 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_DIR1 (Byte 〈xB,xB〉) 〈x0,x3〉
57 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_DIR2 (Byte 〈xC,xB〉) 〈x0,x4〉
58 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_IX2  (Byte 〈xD,xB〉) 〈x0,x4〉
59 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_IX1  (Byte 〈xE,xB〉) 〈x0,x3〉
60 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_IX0  (Byte 〈xF,xB〉) 〈x0,x3〉
61 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,xB〉〉) 〈x0,x5〉
62 ; quadrupleT ???? (anyOP HCS08 ADD) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,xB〉〉) 〈x0,x4〉
63 ].
64
65 definition opcode_table_HCS08_3 ≝
66 [
67   quadrupleT ???? (anyOP HCS08 AND) MODE_IMM1 (Byte 〈xA,x4〉) 〈x0,x2〉
68 ; quadrupleT ???? (anyOP HCS08 AND) MODE_DIR1 (Byte 〈xB,x4〉) 〈x0,x3〉
69 ; quadrupleT ???? (anyOP HCS08 AND) MODE_DIR2 (Byte 〈xC,x4〉) 〈x0,x4〉
70 ; quadrupleT ???? (anyOP HCS08 AND) MODE_IX2  (Byte 〈xD,x4〉) 〈x0,x4〉
71 ; quadrupleT ???? (anyOP HCS08 AND) MODE_IX1  (Byte 〈xE,x4〉) 〈x0,x3〉
72 ; quadrupleT ???? (anyOP HCS08 AND) MODE_IX0  (Byte 〈xF,x4〉) 〈x0,x3〉
73 ; quadrupleT ???? (anyOP HCS08 AND) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x4〉〉) 〈x0,x5〉
74 ; quadrupleT ???? (anyOP HCS08 AND) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x4〉〉) 〈x0,x4〉
75 ].
76
77 definition opcode_table_HCS08_4 ≝
78 [
79   quadrupleT ???? (anyOP HCS08 ASL) MODE_DIR1 (Byte 〈x3,x8〉) 〈x0,x5〉
80 ; quadrupleT ???? (anyOP HCS08 ASL) MODE_INHA (Byte 〈x4,x8〉) 〈x0,x1〉
81 ; quadrupleT ???? (anyOP HCS08 ASL) MODE_INHX (Byte 〈x5,x8〉) 〈x0,x1〉
82 ; quadrupleT ???? (anyOP HCS08 ASL) MODE_IX1  (Byte 〈x6,x8〉) 〈x0,x5〉
83 ; quadrupleT ???? (anyOP HCS08 ASL) MODE_IX0  (Byte 〈x7,x8〉) 〈x0,x4〉
84 ; quadrupleT ???? (anyOP HCS08 ASL) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x8〉〉) 〈x0,x6〉
85 ].
86
87 definition opcode_table_HCS08_5 ≝
88 [
89   quadrupleT ???? (anyOP HCS08 ASR) MODE_DIR1 (Byte 〈x3,x7〉) 〈x0,x5〉
90 ; quadrupleT ???? (anyOP HCS08 ASR) MODE_INHA (Byte 〈x4,x7〉) 〈x0,x1〉
91 ; quadrupleT ???? (anyOP HCS08 ASR) MODE_INHX (Byte 〈x5,x7〉) 〈x0,x1〉
92 ; quadrupleT ???? (anyOP HCS08 ASR) MODE_IX1  (Byte 〈x6,x7〉) 〈x0,x5〉
93 ; quadrupleT ???? (anyOP HCS08 ASR) MODE_IX0  (Byte 〈x7,x7〉) 〈x0,x4〉
94 ; quadrupleT ???? (anyOP HCS08 ASR) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x7〉〉) 〈x0,x6〉
95 ].
96
97 definition opcode_table_HCS08_6 ≝
98 [
99   quadrupleT ???? (anyOP HCS08 BRA ) MODE_IMM1 (Byte 〈x2,x0〉) 〈x0,x3〉
100 ; quadrupleT ???? (anyOP HCS08 BRN ) MODE_IMM1 (Byte 〈x2,x1〉) 〈x0,x3〉
101 ; quadrupleT ???? (anyOP HCS08 BHI ) MODE_IMM1 (Byte 〈x2,x2〉) 〈x0,x3〉
102 ; quadrupleT ???? (anyOP HCS08 BLS ) MODE_IMM1 (Byte 〈x2,x3〉) 〈x0,x3〉
103 ; quadrupleT ???? (anyOP HCS08 BCC ) MODE_IMM1 (Byte 〈x2,x4〉) 〈x0,x3〉
104 ; quadrupleT ???? (anyOP HCS08 BCS ) MODE_IMM1 (Byte 〈x2,x5〉) 〈x0,x3〉
105 ; quadrupleT ???? (anyOP HCS08 BNE ) MODE_IMM1 (Byte 〈x2,x6〉) 〈x0,x3〉
106 ; quadrupleT ???? (anyOP HCS08 BEQ ) MODE_IMM1 (Byte 〈x2,x7〉) 〈x0,x3〉
107 ; quadrupleT ???? (anyOP HCS08 BHCC) MODE_IMM1 (Byte 〈x2,x8〉) 〈x0,x3〉
108 ; quadrupleT ???? (anyOP HCS08 BHCS) MODE_IMM1 (Byte 〈x2,x9〉) 〈x0,x3〉
109 ; quadrupleT ???? (anyOP HCS08 BPL ) MODE_IMM1 (Byte 〈x2,xA〉) 〈x0,x3〉
110 ; quadrupleT ???? (anyOP HCS08 BMI ) MODE_IMM1 (Byte 〈x2,xB〉) 〈x0,x3〉
111 ; quadrupleT ???? (anyOP HCS08 BMC ) MODE_IMM1 (Byte 〈x2,xC〉) 〈x0,x3〉
112 ; quadrupleT ???? (anyOP HCS08 BMS ) MODE_IMM1 (Byte 〈x2,xD〉) 〈x0,x3〉
113 ; quadrupleT ???? (anyOP HCS08 BIL ) MODE_IMM1 (Byte 〈x2,xE〉) 〈x0,x3〉
114 ; quadrupleT ???? (anyOP HCS08 BIH ) MODE_IMM1 (Byte 〈x2,xF〉) 〈x0,x3〉
115 ; quadrupleT ???? (anyOP HCS08 BGE ) MODE_IMM1 (Byte 〈x9,x0〉) 〈x0,x3〉
116 ; quadrupleT ???? (anyOP HCS08 BLT ) MODE_IMM1 (Byte 〈x9,x1〉) 〈x0,x3〉
117 ; quadrupleT ???? (anyOP HCS08 BGT ) MODE_IMM1 (Byte 〈x9,x2〉) 〈x0,x3〉
118 ; quadrupleT ???? (anyOP HCS08 BLE ) MODE_IMM1 (Byte 〈x9,x3〉) 〈x0,x3〉
119 ].
120
121 definition opcode_table_HCS08_7 ≝
122 [
123   quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o0) (Byte 〈x1,x0〉) 〈x0,x5〉
124 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o0) (Byte 〈x1,x1〉) 〈x0,x5〉
125 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o1) (Byte 〈x1,x2〉) 〈x0,x5〉
126 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o1) (Byte 〈x1,x3〉) 〈x0,x5〉
127 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o2) (Byte 〈x1,x4〉) 〈x0,x5〉
128 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o2) (Byte 〈x1,x5〉) 〈x0,x5〉
129 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o3) (Byte 〈x1,x6〉) 〈x0,x5〉
130 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o3) (Byte 〈x1,x7〉) 〈x0,x5〉
131 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o4) (Byte 〈x1,x8〉) 〈x0,x5〉
132 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o4) (Byte 〈x1,x9〉) 〈x0,x5〉
133 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o5) (Byte 〈x1,xA〉) 〈x0,x5〉
134 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o5) (Byte 〈x1,xB〉) 〈x0,x5〉
135 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o6) (Byte 〈x1,xC〉) 〈x0,x5〉
136 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o6) (Byte 〈x1,xD〉) 〈x0,x5〉
137 ; quadrupleT ???? (anyOP HCS08 BSETn) (MODE_DIRn o7) (Byte 〈x1,xE〉) 〈x0,x5〉
138 ; quadrupleT ???? (anyOP HCS08 BCLRn) (MODE_DIRn o7) (Byte 〈x1,xF〉) 〈x0,x5〉
139 ].
140
141 definition opcode_table_HCS08_8 ≝
142 [
143   quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o0) (Byte 〈x0,x0〉) 〈x0,x5〉
144 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o0) (Byte 〈x0,x1〉) 〈x0,x5〉
145 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o1) (Byte 〈x0,x2〉) 〈x0,x5〉
146 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o1) (Byte 〈x0,x3〉) 〈x0,x5〉
147 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o2) (Byte 〈x0,x4〉) 〈x0,x5〉
148 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o2) (Byte 〈x0,x5〉) 〈x0,x5〉
149 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o3) (Byte 〈x0,x6〉) 〈x0,x5〉
150 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o3) (Byte 〈x0,x7〉) 〈x0,x5〉
151 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o4) (Byte 〈x0,x8〉) 〈x0,x5〉
152 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o4) (Byte 〈x0,x9〉) 〈x0,x5〉
153 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o5) (Byte 〈x0,xA〉) 〈x0,x5〉
154 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o5) (Byte 〈x0,xB〉) 〈x0,x5〉
155 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o6) (Byte 〈x0,xC〉) 〈x0,x5〉
156 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o6) (Byte 〈x0,xD〉) 〈x0,x5〉
157 ; quadrupleT ???? (anyOP HCS08 BRSETn) (MODE_DIRn_and_IMM1 o7) (Byte 〈x0,xE〉) 〈x0,x5〉
158 ; quadrupleT ???? (anyOP HCS08 BRCLRn) (MODE_DIRn_and_IMM1 o7) (Byte 〈x0,xF〉) 〈x0,x5〉
159 ].
160
161 definition opcode_table_HCS08_9 ≝
162 [
163   quadrupleT ???? (anyOP HCS08 BIT) MODE_IMM1 (Byte 〈xA,x5〉) 〈x0,x2〉
164 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_DIR1 (Byte 〈xB,x5〉) 〈x0,x3〉
165 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_DIR2 (Byte 〈xC,x5〉) 〈x0,x4〉
166 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_IX2  (Byte 〈xD,x5〉) 〈x0,x4〉
167 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_IX1  (Byte 〈xE,x5〉) 〈x0,x3〉
168 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_IX0  (Byte 〈xF,x5〉) 〈x0,x3〉
169 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x5〉〉) 〈x0,x5〉
170 ; quadrupleT ???? (anyOP HCS08 BIT) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x5〉〉) 〈x0,x4〉
171 ].
172
173 definition opcode_table_HCS08_10 ≝
174 [
175   quadrupleT ???? (anyOP HCS08 MUL ) MODE_INH  (Byte 〈x4,x2〉) 〈x0,x5〉
176 ; quadrupleT ???? (anyOP HCS08 DIV ) MODE_INH  (Byte 〈x5,x2〉) 〈x0,x6〉
177 ; quadrupleT ???? (anyOP HCS08 NSA ) MODE_INH  (Byte 〈x6,x2〉) 〈x0,x1〉
178 ; quadrupleT ???? (anyOP HCS08 DAA ) MODE_INH  (Byte 〈x7,x2〉) 〈x0,x1〉
179 ; quadrupleT ???? (anyOP HCS08 RTI ) MODE_INH  (Byte 〈x8,x0〉) 〈x0,x9〉
180 ; quadrupleT ???? (anyOP HCS08 RTS ) MODE_INH  (Byte 〈x8,x1〉) 〈x0,x6〉
181 ; quadrupleT ???? (anyOP HCS08 SWI ) MODE_INH  (Byte 〈x8,x3〉) 〈x0,xB〉
182 ; quadrupleT ???? (anyOP HCS08 BGND) MODE_INH  (Byte 〈x8,x2〉) 〈x0,x5〉
183 ; quadrupleT ???? (anyOP HCS08 TAP ) MODE_INH  (Byte 〈x8,x4〉) 〈x0,x1〉
184 ; quadrupleT ???? (anyOP HCS08 TPA ) MODE_INH  (Byte 〈x8,x5〉) 〈x0,x1〉
185 ; quadrupleT ???? (anyOP HCS08 PULA) MODE_INH  (Byte 〈x8,x6〉) 〈x0,x3〉
186 ; quadrupleT ???? (anyOP HCS08 PSHA) MODE_INH  (Byte 〈x8,x7〉) 〈x0,x2〉
187 ; quadrupleT ???? (anyOP HCS08 PULX) MODE_INH  (Byte 〈x8,x8〉) 〈x0,x3〉
188 ; quadrupleT ???? (anyOP HCS08 PSHX) MODE_INH  (Byte 〈x8,x9〉) 〈x0,x2〉
189 ; quadrupleT ???? (anyOP HCS08 PULH) MODE_INH  (Byte 〈x8,xA〉) 〈x0,x3〉
190 ; quadrupleT ???? (anyOP HCS08 PSHH) MODE_INH  (Byte 〈x8,xB〉) 〈x0,x2〉
191 ; quadrupleT ???? (anyOP HCS08 STOP) MODE_INH  (Byte 〈x8,xE〉) 〈x0,x2〉
192 ; quadrupleT ???? (anyOP HCS08 WAIT) MODE_INH  (Byte 〈x8,xF〉) 〈x0,x2〉
193 ; quadrupleT ???? (anyOP HCS08 TXS ) MODE_INH  (Byte 〈x9,x4〉) 〈x0,x2〉
194 ; quadrupleT ???? (anyOP HCS08 TSX ) MODE_INH  (Byte 〈x9,x5〉) 〈x0,x2〉
195 ; quadrupleT ???? (anyOP HCS08 TAX ) MODE_INH  (Byte 〈x9,x7〉) 〈x0,x1〉
196 ; quadrupleT ???? (anyOP HCS08 CLC ) MODE_INH  (Byte 〈x9,x8〉) 〈x0,x1〉
197 ; quadrupleT ???? (anyOP HCS08 SEC ) MODE_INH  (Byte 〈x9,x9〉) 〈x0,x1〉
198 ; quadrupleT ???? (anyOP HCS08 CLI ) MODE_INH  (Byte 〈x9,xA〉) 〈x0,x1〉
199 ; quadrupleT ???? (anyOP HCS08 SEI ) MODE_INH  (Byte 〈x9,xB〉) 〈x0,x1〉
200 ; quadrupleT ???? (anyOP HCS08 RSP ) MODE_INH  (Byte 〈x9,xC〉) 〈x0,x1〉
201 ; quadrupleT ???? (anyOP HCS08 NOP ) MODE_INH  (Byte 〈x9,xD〉) 〈x0,x1〉
202 ; quadrupleT ???? (anyOP HCS08 TXA ) MODE_INH  (Byte 〈x9,xF〉) 〈x0,x1〉
203 ; quadrupleT ???? (anyOP HCS08 AIS ) MODE_IMM1 (Byte 〈xA,x7〉) 〈x0,x2〉
204 ; quadrupleT ???? (anyOP HCS08 AIX ) MODE_IMM1 (Byte 〈xA,xF〉) 〈x0,x2〉
205 ].
206
207 definition opcode_table_HCS08_11 ≝
208 [
209   quadrupleT ???? (anyOP HCS08 CBEQA) MODE_DIR1_and_IMM1 (Byte 〈x3,x1〉) 〈x0,x5〉
210 ; quadrupleT ???? (anyOP HCS08 CBEQA) MODE_IMM1_and_IMM1 (Byte 〈x4,x1〉) 〈x0,x4〉
211 ; quadrupleT ???? (anyOP HCS08 CBEQX) MODE_IMM1_and_IMM1 (Byte 〈x5,x1〉) 〈x0,x4〉
212 ; quadrupleT ???? (anyOP HCS08 CBEQA) MODE_IX1p_and_IMM1 (Byte 〈x6,x1〉) 〈x0,x5〉
213 ; quadrupleT ???? (anyOP HCS08 CBEQA) MODE_IX0p_and_IMM1 (Byte 〈x7,x1〉) 〈x0,x5〉
214 ; quadrupleT ???? (anyOP HCS08 CBEQA) MODE_SP1_and_IMM1  (Word 〈〈x9,xE〉:〈x6,x1〉〉) 〈x0,x6〉
215 ].
216
217 definition opcode_table_HCS08_12 ≝
218 [
219   quadrupleT ???? (anyOP HCS08 CLR) MODE_DIR1 (Byte 〈x3,xF〉) 〈x0,x5〉
220 ; quadrupleT ???? (anyOP HCS08 CLR) MODE_INHA (Byte 〈x4,xF〉) 〈x0,x1〉
221 ; quadrupleT ???? (anyOP HCS08 CLR) MODE_INHX (Byte 〈x5,xF〉) 〈x0,x1〉
222 ; quadrupleT ???? (anyOP HCS08 CLR) MODE_IX1  (Byte 〈x6,xF〉) 〈x0,x5〉
223 ; quadrupleT ???? (anyOP HCS08 CLR) MODE_IX0  (Byte 〈x7,xF〉) 〈x0,x4〉
224 ; quadrupleT ???? (anyOP HCS08 CLR) MODE_INHH (Byte 〈x8,xC〉) 〈x0,x1〉
225 ; quadrupleT ???? (anyOP HCS08 CLR) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,xF〉〉) 〈x0,x6〉
226 ].
227
228 definition opcode_table_HCS08_13 ≝
229 [
230   quadrupleT ???? (anyOP HCS08 CMP) MODE_IMM1 (Byte 〈xA,x1〉) 〈x0,x2〉
231 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_DIR1 (Byte 〈xB,x1〉) 〈x0,x3〉
232 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_DIR2 (Byte 〈xC,x1〉) 〈x0,x4〉
233 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_IX2  (Byte 〈xD,x1〉) 〈x0,x4〉
234 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_IX1  (Byte 〈xE,x1〉) 〈x0,x3〉
235 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_IX0  (Byte 〈xF,x1〉) 〈x0,x3〉
236 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x1〉〉) 〈x0,x5〉
237 ; quadrupleT ???? (anyOP HCS08 CMP) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x1〉〉) 〈x0,x4〉
238 ].
239
240 definition opcode_table_HCS08_14 ≝
241 [
242   quadrupleT ???? (anyOP HCS08 COM) MODE_DIR1 (Byte 〈x3,x3〉) 〈x0,x5〉
243 ; quadrupleT ???? (anyOP HCS08 COM) MODE_INHA (Byte 〈x4,x3〉) 〈x0,x1〉
244 ; quadrupleT ???? (anyOP HCS08 COM) MODE_INHX (Byte 〈x5,x3〉) 〈x0,x1〉
245 ; quadrupleT ???? (anyOP HCS08 COM) MODE_IX1  (Byte 〈x6,x3〉) 〈x0,x5〉
246 ; quadrupleT ???? (anyOP HCS08 COM) MODE_IX0  (Byte 〈x7,x3〉) 〈x0,x4〉
247 ; quadrupleT ???? (anyOP HCS08 COM) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x3〉〉) 〈x0,x6〉
248 ].
249
250 definition opcode_table_HCS08_15 ≝
251 [
252   quadrupleT ???? (anyOP HCS08 CPHX) MODE_DIR2 (Byte 〈x3,xE〉) 〈x0,x6〉
253 ; quadrupleT ???? (anyOP HCS08 CPHX) MODE_IMM2 (Byte 〈x6,x5〉) 〈x0,x3〉
254 ; quadrupleT ???? (anyOP HCS08 CPHX) MODE_DIR1 (Byte 〈x7,x5〉) 〈x0,x5〉
255 ; quadrupleT ???? (anyOP HCS08 CPHX) MODE_SP1  (Word 〈〈x9,xE〉:〈xF,x3〉〉) 〈x0,x6〉
256
257 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_DIR2 (Byte 〈x3,x2〉) 〈x0,x5〉
258 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_IMM2 (Byte 〈x4,x5〉) 〈x0,x3〉
259 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_DIR1 (Byte 〈x5,x5〉) 〈x0,x4〉
260 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_IX0  (Word 〈〈x9,xE〉:〈xA,xE〉〉) 〈x0,x5〉
261 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_IX2  (Word 〈〈x9,xE〉:〈xB,xE〉〉) 〈x0,x6〉
262 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_IX1  (Word 〈〈x9,xE〉:〈xC,xE〉〉) 〈x0,x5〉
263 ; quadrupleT ???? (anyOP HCS08 LDHX) MODE_SP1  (Word 〈〈x9,xE〉:〈xF,xE〉〉) 〈x0,x5〉
264
265 ; quadrupleT ???? (anyOP HCS08 STHX) MODE_DIR1 (Byte 〈x3,x5〉) 〈x0,x4〉
266 ; quadrupleT ???? (anyOP HCS08 STHX) MODE_DIR2 (Byte 〈x9,x6〉) 〈x0,x5〉
267 ; quadrupleT ???? (anyOP HCS08 STHX) MODE_SP1  (Word 〈〈x9,xE〉:〈xF,xF〉〉) 〈x0,x5〉
268 ].
269
270 definition opcode_table_HCS08_16 ≝
271 [
272   quadrupleT ???? (anyOP HCS08 CPX) MODE_IMM1 (Byte 〈xA,x3〉) 〈x0,x2〉
273 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_DIR1 (Byte 〈xB,x3〉) 〈x0,x3〉
274 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_DIR2 (Byte 〈xC,x3〉) 〈x0,x4〉
275 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_IX2  (Byte 〈xD,x3〉) 〈x0,x4〉
276 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_IX1  (Byte 〈xE,x3〉) 〈x0,x3〉
277 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_IX0  (Byte 〈xF,x3〉) 〈x0,x3〉
278 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x3〉〉) 〈x0,x5〉
279 ; quadrupleT ???? (anyOP HCS08 CPX) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x3〉〉) 〈x0,x4〉
280 ].
281
282 definition opcode_table_HCS08_17 ≝
283 [
284   quadrupleT ???? (anyOP HCS08 DBNZ) MODE_DIR1_and_IMM1 (Byte 〈x3,xB〉) 〈x0,x7〉
285 ; quadrupleT ???? (anyOP HCS08 DBNZ) MODE_INHA_and_IMM1 (Byte 〈x4,xB〉) 〈x0,x4〉
286 ; quadrupleT ???? (anyOP HCS08 DBNZ) MODE_INHX_and_IMM1 (Byte 〈x5,xB〉) 〈x0,x4〉
287 ; quadrupleT ???? (anyOP HCS08 DBNZ) MODE_IX1_and_IMM1  (Byte 〈x6,xB〉) 〈x0,x7〉
288 ; quadrupleT ???? (anyOP HCS08 DBNZ) MODE_IX0_and_IMM1  (Byte 〈x7,xB〉) 〈x0,x6〉
289 ; quadrupleT ???? (anyOP HCS08 DBNZ) MODE_SP1_and_IMM1  (Word 〈〈x9,xE〉:〈x6,xB〉〉) 〈x0,x8〉
290 ].
291
292 definition opcode_table_HCS08_18 ≝
293 [
294   quadrupleT ???? (anyOP HCS08 DEC) MODE_DIR1 (Byte 〈x3,xA〉) 〈x0,x5〉
295 ; quadrupleT ???? (anyOP HCS08 DEC) MODE_INHA (Byte 〈x4,xA〉) 〈x0,x1〉
296 ; quadrupleT ???? (anyOP HCS08 DEC) MODE_INHX (Byte 〈x5,xA〉) 〈x0,x1〉
297 ; quadrupleT ???? (anyOP HCS08 DEC) MODE_IX1  (Byte 〈x6,xA〉) 〈x0,x5〉
298 ; quadrupleT ???? (anyOP HCS08 DEC) MODE_IX0  (Byte 〈x7,xA〉) 〈x0,x4〉
299 ; quadrupleT ???? (anyOP HCS08 DEC) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,xA〉〉) 〈x0,x6〉
300 ].
301
302 definition opcode_table_HCS08_19 ≝
303 [
304   quadrupleT ???? (anyOP HCS08 EOR) MODE_IMM1 (Byte 〈xA,x8〉) 〈x0,x2〉
305 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_DIR1 (Byte 〈xB,x8〉) 〈x0,x3〉
306 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_DIR2 (Byte 〈xC,x8〉) 〈x0,x4〉
307 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_IX2  (Byte 〈xD,x8〉) 〈x0,x4〉
308 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_IX1  (Byte 〈xE,x8〉) 〈x0,x3〉
309 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_IX0  (Byte 〈xF,x8〉) 〈x0,x3〉
310 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x8〉〉) 〈x0,x5〉
311 ; quadrupleT ???? (anyOP HCS08 EOR) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x8〉〉) 〈x0,x4〉
312 ].
313
314 definition opcode_table_HCS08_20 ≝
315 [
316   quadrupleT ???? (anyOP HCS08 INC) MODE_DIR1 (Byte 〈x3,xC〉) 〈x0,x5〉
317 ; quadrupleT ???? (anyOP HCS08 INC) MODE_INHA (Byte 〈x4,xC〉) 〈x0,x1〉
318 ; quadrupleT ???? (anyOP HCS08 INC) MODE_INHX (Byte 〈x5,xC〉) 〈x0,x1〉
319 ; quadrupleT ???? (anyOP HCS08 INC) MODE_IX1  (Byte 〈x6,xC〉) 〈x0,x5〉
320 ; quadrupleT ???? (anyOP HCS08 INC) MODE_IX0  (Byte 〈x7,xC〉) 〈x0,x4〉
321 ; quadrupleT ???? (anyOP HCS08 INC) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,xC〉〉) 〈x0,x6〉
322 ].
323
324 definition opcode_table_HCS08_21 ≝
325 [
326   quadrupleT ???? (anyOP HCS08 JMP) MODE_DIR1 (Byte 〈xB,xC〉) 〈x0,x3〉
327 ; quadrupleT ???? (anyOP HCS08 JMP) MODE_DIR2 (Byte 〈xC,xC〉) 〈x0,x4〉
328 ; quadrupleT ???? (anyOP HCS08 JMP) MODE_IX2  (Byte 〈xD,xC〉) 〈x0,x4〉
329 ; quadrupleT ???? (anyOP HCS08 JMP) MODE_IX1  (Byte 〈xE,xC〉) 〈x0,x3〉
330 ; quadrupleT ???? (anyOP HCS08 JMP) MODE_IX0  (Byte 〈xF,xC〉) 〈x0,x3〉
331 ].
332
333 definition opcode_table_HCS08_22 ≝
334 [
335   quadrupleT ???? (anyOP HCS08 BSR) MODE_IMM1 (Byte 〈xA,xD〉) 〈x0,x5〉
336 ; quadrupleT ???? (anyOP HCS08 JSR) MODE_DIR1 (Byte 〈xB,xD〉) 〈x0,x5〉
337 ; quadrupleT ???? (anyOP HCS08 JSR) MODE_DIR2 (Byte 〈xC,xD〉) 〈x0,x6〉
338 ; quadrupleT ???? (anyOP HCS08 JSR) MODE_IX2  (Byte 〈xD,xD〉) 〈x0,x6〉
339 ; quadrupleT ???? (anyOP HCS08 JSR) MODE_IX1  (Byte 〈xE,xD〉) 〈x0,x5〉
340 ; quadrupleT ???? (anyOP HCS08 JSR) MODE_IX0  (Byte 〈xF,xD〉) 〈x0,x5〉
341 ].
342
343 definition opcode_table_HCS08_23 ≝
344 [
345   quadrupleT ???? (anyOP HCS08 LDA) MODE_IMM1 (Byte 〈xA,x6〉) 〈x0,x2〉
346 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_DIR1 (Byte 〈xB,x6〉) 〈x0,x3〉
347 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_DIR2 (Byte 〈xC,x6〉) 〈x0,x4〉
348 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_IX2  (Byte 〈xD,x6〉) 〈x0,x4〉
349 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_IX1  (Byte 〈xE,x6〉) 〈x0,x3〉
350 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_IX0  (Byte 〈xF,x6〉) 〈x0,x3〉
351 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x6〉〉) 〈x0,x5〉
352 ; quadrupleT ???? (anyOP HCS08 LDA) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x6〉〉) 〈x0,x4〉
353 ].
354
355 definition opcode_table_HCS08_24 ≝
356 [
357   quadrupleT ???? (anyOP HCS08 LDX) MODE_IMM1 (Byte 〈xA,xE〉) 〈x0,x2〉
358 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_DIR1 (Byte 〈xB,xE〉) 〈x0,x3〉
359 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_DIR2 (Byte 〈xC,xE〉) 〈x0,x4〉
360 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_IX2  (Byte 〈xD,xE〉) 〈x0,x4〉
361 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_IX1  (Byte 〈xE,xE〉) 〈x0,x3〉
362 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_IX0  (Byte 〈xF,xE〉) 〈x0,x3〉
363 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,xE〉〉) 〈x0,x5〉
364 ; quadrupleT ???? (anyOP HCS08 LDX) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,xE〉〉) 〈x0,x4〉
365 ].
366
367 definition opcode_table_HCS08_25 ≝
368 [
369   quadrupleT ???? (anyOP HCS08 LSR) MODE_DIR1 (Byte 〈x3,x4〉) 〈x0,x5〉
370 ; quadrupleT ???? (anyOP HCS08 LSR) MODE_INHA (Byte 〈x4,x4〉) 〈x0,x1〉
371 ; quadrupleT ???? (anyOP HCS08 LSR) MODE_INHX (Byte 〈x5,x4〉) 〈x0,x1〉
372 ; quadrupleT ???? (anyOP HCS08 LSR) MODE_IX1  (Byte 〈x6,x4〉) 〈x0,x5〉
373 ; quadrupleT ???? (anyOP HCS08 LSR) MODE_IX0  (Byte 〈x7,x4〉) 〈x0,x4〉
374 ; quadrupleT ???? (anyOP HCS08 LSR) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x4〉〉) 〈x0,x6〉
375 ].
376
377 definition opcode_table_HCS08_26 ≝
378 [
379   quadrupleT ???? (anyOP HCS08 MOV) MODE_DIR1_to_DIR1 (Byte 〈x4,xE〉) 〈x0,x5〉
380 ; quadrupleT ???? (anyOP HCS08 MOV) MODE_DIR1_to_IX0p (Byte 〈x5,xE〉) 〈x0,x5〉
381 ; quadrupleT ???? (anyOP HCS08 MOV) MODE_IMM1_to_DIR1 (Byte 〈x6,xE〉) 〈x0,x4〉
382 ; quadrupleT ???? (anyOP HCS08 MOV) MODE_IX0p_to_DIR1 (Byte 〈x7,xE〉) 〈x0,x5〉
383 ].
384
385 definition opcode_table_HCS08_27 ≝
386 [
387   quadrupleT ???? (anyOP HCS08 NEG) MODE_DIR1 (Byte 〈x3,x0〉) 〈x0,x5〉
388 ; quadrupleT ???? (anyOP HCS08 NEG) MODE_INHA (Byte 〈x4,x0〉) 〈x0,x1〉
389 ; quadrupleT ???? (anyOP HCS08 NEG) MODE_INHX (Byte 〈x5,x0〉) 〈x0,x1〉
390 ; quadrupleT ???? (anyOP HCS08 NEG) MODE_IX1  (Byte 〈x6,x0〉) 〈x0,x5〉
391 ; quadrupleT ???? (anyOP HCS08 NEG) MODE_IX0  (Byte 〈x7,x0〉) 〈x0,x4〉
392 ; quadrupleT ???? (anyOP HCS08 NEG) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x0〉〉) 〈x0,x6〉
393 ].
394
395 definition opcode_table_HCS08_28 ≝
396 [
397   quadrupleT ???? (anyOP HCS08 ORA) MODE_IMM1 (Byte 〈xA,xA〉) 〈x0,x2〉
398 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_DIR1 (Byte 〈xB,xA〉) 〈x0,x3〉
399 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_DIR2 (Byte 〈xC,xA〉) 〈x0,x4〉
400 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_IX2  (Byte 〈xD,xA〉) 〈x0,x4〉
401 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_IX1  (Byte 〈xE,xA〉) 〈x0,x3〉
402 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_IX0  (Byte 〈xF,xA〉) 〈x0,x3〉
403 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,xA〉〉) 〈x0,x5〉
404 ; quadrupleT ???? (anyOP HCS08 ORA) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,xA〉〉) 〈x0,x4〉
405 ].
406
407 definition opcode_table_HCS08_29 ≝
408 [
409   quadrupleT ???? (anyOP HCS08 ROL) MODE_DIR1 (Byte 〈x3,x9〉) 〈x0,x5〉
410 ; quadrupleT ???? (anyOP HCS08 ROL) MODE_INHA (Byte 〈x4,x9〉) 〈x0,x1〉
411 ; quadrupleT ???? (anyOP HCS08 ROL) MODE_INHX (Byte 〈x5,x9〉) 〈x0,x1〉
412 ; quadrupleT ???? (anyOP HCS08 ROL) MODE_IX1  (Byte 〈x6,x9〉) 〈x0,x5〉
413 ; quadrupleT ???? (anyOP HCS08 ROL) MODE_IX0  (Byte 〈x7,x9〉) 〈x0,x4〉
414 ; quadrupleT ???? (anyOP HCS08 ROL) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x9〉〉) 〈x0,x6〉
415 ].
416
417 definition opcode_table_HCS08_30 ≝
418 [
419   quadrupleT ???? (anyOP HCS08 ROR) MODE_DIR1 (Byte 〈x3,x6〉) 〈x0,x5〉
420 ; quadrupleT ???? (anyOP HCS08 ROR) MODE_INHA (Byte 〈x4,x6〉) 〈x0,x1〉
421 ; quadrupleT ???? (anyOP HCS08 ROR) MODE_INHX (Byte 〈x5,x6〉) 〈x0,x1〉
422 ; quadrupleT ???? (anyOP HCS08 ROR) MODE_IX1  (Byte 〈x6,x6〉) 〈x0,x5〉
423 ; quadrupleT ???? (anyOP HCS08 ROR) MODE_IX0  (Byte 〈x7,x6〉) 〈x0,x4〉
424 ; quadrupleT ???? (anyOP HCS08 ROR) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,x6〉〉) 〈x0,x6〉
425 ].
426
427 definition opcode_table_HCS08_31 ≝
428 [
429   quadrupleT ???? (anyOP HCS08 SBC) MODE_IMM1 (Byte 〈xA,x2〉) 〈x0,x2〉
430 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_DIR1 (Byte 〈xB,x2〉) 〈x0,x3〉
431 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_DIR2 (Byte 〈xC,x2〉) 〈x0,x4〉
432 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_IX2  (Byte 〈xD,x2〉) 〈x0,x4〉
433 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_IX1  (Byte 〈xE,x2〉) 〈x0,x3〉
434 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_IX0  (Byte 〈xF,x2〉) 〈x0,x3〉
435 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x2〉〉) 〈x0,x5〉
436 ; quadrupleT ???? (anyOP HCS08 SBC) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x2〉〉) 〈x0,x4〉
437 ].
438
439 definition opcode_table_HCS08_32 ≝
440 [
441   quadrupleT ???? (anyOP HCS08 STA) MODE_DIR1 (Byte 〈xB,x7〉) 〈x0,x3〉
442 ; quadrupleT ???? (anyOP HCS08 STA) MODE_DIR2 (Byte 〈xC,x7〉) 〈x0,x4〉
443 ; quadrupleT ???? (anyOP HCS08 STA) MODE_IX2  (Byte 〈xD,x7〉) 〈x0,x4〉
444 ; quadrupleT ???? (anyOP HCS08 STA) MODE_IX1  (Byte 〈xE,x7〉) 〈x0,x3〉
445 ; quadrupleT ???? (anyOP HCS08 STA) MODE_IX0  (Byte 〈xF,x7〉) 〈x0,x2〉
446 ; quadrupleT ???? (anyOP HCS08 STA) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x7〉〉) 〈x0,x5〉
447 ; quadrupleT ???? (anyOP HCS08 STA) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x7〉〉) 〈x0,x4〉
448 ].
449
450 definition opcode_table_HCS08_33 ≝
451 [
452   quadrupleT ???? (anyOP HCS08 STX) MODE_DIR1 (Byte 〈xB,xF〉) 〈x0,x3〉
453 ; quadrupleT ???? (anyOP HCS08 STX) MODE_DIR2 (Byte 〈xC,xF〉) 〈x0,x4〉
454 ; quadrupleT ???? (anyOP HCS08 STX) MODE_IX2  (Byte 〈xD,xF〉) 〈x0,x4〉
455 ; quadrupleT ???? (anyOP HCS08 STX) MODE_IX1  (Byte 〈xE,xF〉) 〈x0,x3〉
456 ; quadrupleT ???? (anyOP HCS08 STX) MODE_IX0  (Byte 〈xF,xF〉) 〈x0,x2〉
457 ; quadrupleT ???? (anyOP HCS08 STX) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,xF〉〉) 〈x0,x5〉
458 ; quadrupleT ???? (anyOP HCS08 STX) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,xF〉〉) 〈x0,x4〉
459 ].
460
461 definition opcode_table_HCS08_34 ≝
462 [
463   quadrupleT ???? (anyOP HCS08 SUB) MODE_IMM1 (Byte 〈xA,x0〉) 〈x0,x2〉
464 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_DIR1 (Byte 〈xB,x0〉) 〈x0,x3〉
465 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_DIR2 (Byte 〈xC,x0〉) 〈x0,x4〉
466 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_IX2  (Byte 〈xD,x0〉) 〈x0,x4〉
467 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_IX1  (Byte 〈xE,x0〉) 〈x0,x3〉
468 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_IX0  (Byte 〈xF,x0〉) 〈x0,x3〉
469 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_SP2  (Word 〈〈x9,xE〉:〈xD,x0〉〉) 〈x0,x5〉
470 ; quadrupleT ???? (anyOP HCS08 SUB) MODE_SP1  (Word 〈〈x9,xE〉:〈xE,x0〉〉) 〈x0,x4〉
471 ].
472
473 definition opcode_table_HCS08_35 ≝
474 [
475   quadrupleT ???? (anyOP HCS08 TST) MODE_DIR1 (Byte 〈x3,xD〉) 〈x0,x4〉
476 ; quadrupleT ???? (anyOP HCS08 TST) MODE_INHA (Byte 〈x4,xD〉) 〈x0,x1〉
477 ; quadrupleT ???? (anyOP HCS08 TST) MODE_INHX (Byte 〈x5,xD〉) 〈x0,x1〉
478 ; quadrupleT ???? (anyOP HCS08 TST) MODE_IX1  (Byte 〈x6,xD〉) 〈x0,x4〉
479 ; quadrupleT ???? (anyOP HCS08 TST) MODE_IX0  (Byte 〈x7,xD〉) 〈x0,x3〉
480 ; quadrupleT ???? (anyOP HCS08 TST) MODE_SP1  (Word 〈〈x9,xE〉:〈x6,xD〉〉) 〈x0,x5〉
481 ].
482
483 definition opcode_table_HCS08 ≝
484 opcode_table_HCS08_1  @ opcode_table_HCS08_2  @ opcode_table_HCS08_3  @ opcode_table_HCS08_4  @
485 opcode_table_HCS08_5  @ opcode_table_HCS08_6  @ opcode_table_HCS08_7  @ opcode_table_HCS08_8  @
486 opcode_table_HCS08_9  @ opcode_table_HCS08_10 @ opcode_table_HCS08_11 @ opcode_table_HCS08_12 @
487 opcode_table_HCS08_13 @ opcode_table_HCS08_14 @ opcode_table_HCS08_15 @ opcode_table_HCS08_16 @
488 opcode_table_HCS08_17 @ opcode_table_HCS08_18 @ opcode_table_HCS08_19 @ opcode_table_HCS08_20 @
489 opcode_table_HCS08_21 @ opcode_table_HCS08_22 @ opcode_table_HCS08_23 @ opcode_table_HCS08_24 @
490 opcode_table_HCS08_25 @ opcode_table_HCS08_26 @ opcode_table_HCS08_27 @ opcode_table_HCS08_28 @
491 opcode_table_HCS08_29 @ opcode_table_HCS08_30 @ opcode_table_HCS08_31 @ opcode_table_HCS08_32 @
492 opcode_table_HCS08_33 @ opcode_table_HCS08_34 @ opcode_table_HCS08_35.
493
494 (* CORRETTEZZA *)
495
496 (* HCS08: opcode non implementati come da manuale (byte) *)
497 definition HCS08_not_impl_1 ≝
498  [〈x8,xD〉
499  ;〈x9,xE〉
500  ;〈xA,xC〉
501  ].
502
503 lemma ok_byte_table_HCS08 : forall_byte8 (λb.
504  (test_not_impl b HCS08_not_impl_1     ⊕ eqb (get_byte_count HCS08 b 0 opcode_table_HCS08) 1) ⊗
505  (⊖ (test_not_impl b HCS08_not_impl_1) ⊕ eqb (get_byte_count HCS08 b 0 opcode_table_HCS08) 0))
506  = true.
507  reflexivity.
508 qed.
509
510 (* HCS08: opcode non implementati come da manuale (0x9E+byte) *)
511 definition HCS08_not_impl_2 ≝
512  [〈x0,x0〉;〈x0,x1〉;〈x0,x2〉;〈x0,x3〉;〈x0,x4〉;〈x0,x5〉;〈x0,x6〉;〈x0,x7〉
513  ;〈x0,x8〉;〈x0,x9〉;〈x0,xA〉;〈x0,xB〉;〈x0,xC〉;〈x0,xD〉;〈x0,xE〉;〈x0,xF〉
514  ;〈x1,x0〉;〈x1,x1〉;〈x1,x2〉;〈x1,x3〉;〈x1,x4〉;〈x1,x5〉;〈x1,x6〉;〈x1,x7〉
515  ;〈x1,x8〉;〈x1,x9〉;〈x1,xA〉;〈x1,xB〉;〈x1,xC〉;〈x1,xD〉;〈x1,xE〉;〈x1,xF〉
516  ;〈x2,x0〉;〈x2,x1〉;〈x2,x2〉;〈x2,x3〉;〈x2,x4〉;〈x2,x5〉;〈x2,x6〉;〈x2,x7〉
517  ;〈x2,x8〉;〈x2,x9〉;〈x2,xA〉;〈x2,xB〉;〈x2,xC〉;〈x2,xD〉;〈x2,xE〉;〈x2,xF〉
518  ;〈x3,x0〉;〈x3,x1〉;〈x3,x2〉;〈x3,x3〉;〈x3,x4〉;〈x3,x5〉;〈x3,x6〉;〈x3,x7〉
519  ;〈x3,x8〉;〈x3,x9〉;〈x3,xA〉;〈x3,xB〉;〈x3,xC〉;〈x3,xD〉;〈x3,xE〉;〈x3,xF〉
520  ;〈x4,x0〉;〈x4,x1〉;〈x4,x2〉;〈x4,x3〉;〈x4,x4〉;〈x4,x5〉;〈x4,x6〉;〈x4,x7〉
521  ;〈x4,x8〉;〈x4,x9〉;〈x4,xA〉;〈x4,xB〉;〈x4,xC〉;〈x4,xD〉;〈x4,xE〉;〈x4,xF〉
522  ;〈x5,x0〉;〈x5,x1〉;〈x5,x2〉;〈x5,x3〉;〈x5,x4〉;〈x5,x5〉;〈x5,x6〉;〈x5,x7〉
523  ;〈x5,x8〉;〈x5,x9〉;〈x5,xA〉;〈x5,xB〉;〈x5,xC〉;〈x5,xD〉;〈x5,xE〉;〈x5,xF〉
524  ;〈x6,x2〉;〈x6,x5〉;〈x6,xE〉
525  ;〈x7,x0〉;〈x7,x1〉;〈x7,x2〉;〈x7,x3〉;〈x7,x4〉;〈x7,x5〉;〈x7,x6〉;〈x7,x7〉
526  ;〈x7,x8〉;〈x7,x9〉;〈x7,xA〉;〈x7,xB〉;〈x7,xC〉;〈x7,xD〉;〈x7,xE〉;〈x7,xF〉
527  ;〈x8,x0〉;〈x8,x1〉;〈x8,x2〉;〈x8,x3〉;〈x8,x4〉;〈x8,x5〉;〈x8,x6〉;〈x8,x7〉
528  ;〈x8,x8〉;〈x8,x9〉;〈x8,xA〉;〈x8,xB〉;〈x8,xC〉;〈x8,xD〉;〈x8,xE〉;〈x8,xF〉
529  ;〈x9,x0〉;〈x9,x1〉;〈x9,x2〉;〈x9,x3〉;〈x9,x4〉;〈x9,x5〉;〈x9,x6〉;〈x9,x7〉
530  ;〈x9,x8〉;〈x9,x9〉;〈x9,xA〉;〈x9,xB〉;〈x9,xC〉;〈x9,xD〉;〈x9,xE〉;〈x9,xF〉
531  ;〈xA,x0〉;〈xA,x1〉;〈xA,x2〉;〈xA,x3〉;〈xA,x4〉;〈xA,x5〉;〈xA,x6〉;〈xA,x7〉;〈xA,x8〉;〈xA,x9〉;〈xA,xA〉;〈xA,xB〉;〈xA,xC〉;〈xA,xD〉;〈xA,xF〉
532  ;〈xB,x0〉;〈xB,x1〉;〈xB,x2〉;〈xB,x3〉;〈xB,x4〉;〈xB,x5〉;〈xB,x6〉;〈xB,x7〉;〈xB,x8〉;〈xB,x9〉;〈xB,xA〉;〈xB,xB〉;〈xB,xC〉;〈xB,xD〉;〈xB,xF〉
533  ;〈xC,x0〉;〈xC,x1〉;〈xC,x2〉;〈xC,x3〉;〈xC,x4〉;〈xC,x5〉;〈xC,x6〉;〈xC,x7〉;〈xC,x8〉;〈xC,x9〉;〈xC,xA〉;〈xC,xB〉;〈xC,xC〉;〈xC,xD〉;〈xC,xF〉
534  ;〈xD,xC〉;〈xD,xD〉
535  ;〈xE,xC〉;〈xE,xD〉
536  ;〈xF,x0〉;〈xF,x1〉;〈xF,x2〉;〈xF,x4〉;〈xF,x5〉;〈xF,x6〉;〈xF,x7〉;〈xF,x8〉;〈xF,x9〉;〈xF,xA〉;〈xF,xB〉;〈xF,xC〉;〈xF,xD〉
537  ].
538
539 lemma ok_byte_table_HCS08_2 : forall_byte8 (λb.
540  (test_not_impl b HCS08_not_impl_2     ⊕ eqb (get_word_count HCS08 b 0 opcode_table_HCS08) 1) ⊗
541  (⊖ (test_not_impl b HCS08_not_impl_2) ⊕ eqb (get_word_count HCS08 b 0 opcode_table_HCS08) 0))
542  = true.
543  reflexivity.
544 qed.
545
546 (*
547 lemma ok_OpIm_table_HCS08 :
548  forall_instr_mode (λi:instr_mode.
549  forall_opcode     (λop:opcode.
550   leb (get_OpIm_count HCS08 (anyOP HCS08 op) i 0 opcode_table_HCS08) 1)) = true.
551  reflexivity.
552 qed.
553 *)