summaryrefslogtreecommitdiff
path: root/python/examples/kaitai/code_6502.py
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2021-07-01 12:34:30 +0800
committerXusheng Li <xushengli@protonmail.com>2021-07-05 10:11:47 +0800
commit13ff200ba134b8704f37eca99c42b70dab0d17dc (patch)
tree876b3db3c53f704b31152aeaede1f2edc9d27b24 /python/examples/kaitai/code_6502.py
parent4039a800349dcd587833d3e27d9137e4649818f4 (diff)
Remove snippet and kaitai plugin. Note their individual links.
Diffstat (limited to 'python/examples/kaitai/code_6502.py')
-rw-r--r--python/examples/kaitai/code_6502.py455
1 files changed, 0 insertions, 455 deletions
diff --git a/python/examples/kaitai/code_6502.py b/python/examples/kaitai/code_6502.py
deleted file mode 100644
index 80f29150..00000000
--- a/python/examples/kaitai/code_6502.py
+++ /dev/null
@@ -1,455 +0,0 @@
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-from enum import Enum
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class Code6502(KaitaiStruct):
- """This spec can be used to disassemble raw stream of 6502 CPU machine
- code into individual operations. Each operation includes an opcode
- and, optionally, an argument. Register arguments are part of the
- `opcode` enum.
- """
-
- class Opcode(Enum):
- brk_impl = 0
- ora_x_ind = 1
- ora_zpg = 5
- asl_zpg = 6
- php_impl = 8
- ora_imm = 9
- asl_a = 10
- ora_abs = 13
- asl_abs = 14
- bpl_rel = 16
- ora_ind_y = 17
- ora_zpg_x = 21
- asl_zpg_x = 22
- clc_impl = 24
- ora_abs_y = 25
- ora_abs_x = 29
- asl_abs_x = 30
- jsr_abs = 32
- and_x_ind = 33
- bit_zpg = 36
- and_zpg = 37
- rol_zpg = 38
- plp_impl = 40
- and_imm = 41
- rol_a = 42
- bit_abs = 44
- and_abs = 45
- rol_abs = 46
- bmi_rel = 48
- and_ind_y = 49
- and_zpg_x = 53
- rol_zpg_x = 54
- sec_impl = 56
- and_abs_y = 57
- and_abs_x = 61
- rol_abs_x = 62
- rti_impl = 64
- eor_x_ind = 65
- eor_zpg = 69
- lsr_zpg = 70
- pha_impl = 72
- eor_imm = 73
- lsr_a = 74
- jmp_abs = 76
- eor_abs = 77
- lsr_abs = 78
- bvc_rel = 80
- eor_ind_y = 81
- eor_zpg_x = 85
- lsr_zpg_x = 86
- cli_impl = 88
- eor_abs_y = 89
- eor_abs_x = 93
- lsr_abs_x = 94
- rts_impl = 96
- adc_x_ind = 97
- adc_zpg = 101
- ror_zpg = 102
- pla_impl = 104
- adc_imm = 105
- ror_a = 106
- jmp_ind = 108
- adc_abs = 109
- ror_abs = 110
- bvs_rel = 112
- adc_ind_y = 113
- adc_zpg_x = 117
- ror_zpg_x = 118
- sei_impl = 120
- adc_abs_y = 121
- adc_abs_x = 125
- ror_abs_x = 126
- sta_x_ind = 129
- sty_zpg = 132
- sta_zpg = 133
- stx_zpg = 134
- dey_impl = 136
- txa_impl = 138
- sty_abs = 140
- sta_abs = 141
- stx_abs = 142
- bcc_rel = 144
- sta_ind_y = 145
- sty_zpg_x = 148
- sta_zpg_x = 149
- stx_zpg_y = 150
- tya_impl = 152
- sta_abs_y = 153
- txs_impl = 154
- sta_abs_x = 157
- ldy_imm = 160
- lda_x_ind = 161
- ldx_imm = 162
- ldy_zpg = 164
- lda_zpg = 165
- ldx_zpg = 166
- tay_impl = 168
- lda_imm = 169
- tax_impl = 170
- ldy_abs = 172
- lda_abs = 173
- ldx_abs = 174
- bcs_rel = 176
- lda_ind_y = 177
- ldy_zpg_x = 180
- lda_zpg_x = 181
- ldx_zpg_y = 182
- clv_impl = 184
- lda_abs_y = 185
- tsx_impl = 186
- ldy_abs_x = 188
- lda_abs_x = 189
- ldx_abs_y = 190
- cpy_imm = 192
- cmp_x_ind = 193
- cpy_zpg = 196
- cmp_zpg = 197
- dec_zpg = 198
- iny_impl = 200
- cmp_imm = 201
- dex_impl = 202
- cpy_abs = 204
- cmp_abs = 205
- dec_abs = 206
- bne_rel = 208
- cmp_ind_y = 209
- cmp_zpg_x = 213
- dec_zpg_x = 214
- cld_impl = 216
- cmp_abs_y = 217
- cmp_abs_x = 221
- dec_abs_x = 222
- cpx_imm = 224
- sbc_x_ind = 225
- cpx_zpg = 228
- sbc_zpg = 229
- inc_zpg = 230
- inx_impl = 232
- sbc_imm = 233
- nop_impl = 234
- cpx_abs = 236
- sbc_abs = 237
- inc_abs = 238
- beq_rel = 240
- sbc_ind_y = 241
- sbc_zpg_x = 245
- inc_zpg_x = 246
- sed_impl = 248
- sbc_abs_y = 249
- sbc_abs_x = 253
- inc_abs_x = 254
- SEQ_FIELDS = ["operations"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['operations']['start'] = self._io.pos()
- self.operations = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['operations']:
- self._debug['operations']['arr'] = []
- self._debug['operations']['arr'].append({'start': self._io.pos()})
- _t_operations = self._root.Operation(self._io, self, self._root)
- _t_operations._read()
- self.operations.append(_t_operations)
- self._debug['operations']['arr'][len(self.operations) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['operations']['end'] = self._io.pos()
-
- class Operation(KaitaiStruct):
- SEQ_FIELDS = ["code", "args"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['code']['start'] = self._io.pos()
- self.code = KaitaiStream.resolve_enum(self._root.Opcode, self._io.read_u1())
- self._debug['code']['end'] = self._io.pos()
- self._debug['args']['start'] = self._io.pos()
- _on = self.code
- if _on == self._root.Opcode.bcc_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.ora_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.lda_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cpx_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sta_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sta_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.bcs_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.ldy_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.lsr_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.and_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.adc_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sta_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.bne_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.lda_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.adc_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.lsr_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.adc_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sta_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.cpx_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.jmp_ind:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.adc_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.eor_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.eor_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sta_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sbc_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cpy_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ldx_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.adc_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.bpl_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.ora_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ror_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.adc_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.eor_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.lda_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.bit_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.rol_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sty_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.jsr_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.eor_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.eor_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.lda_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.lda_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.bmi_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.sty_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.adc_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.rol_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.stx_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.asl_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.lsr_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ora_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.adc_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ldy_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.cmp_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.lda_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.bvs_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.lda_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cmp_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.inc_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.asl_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.and_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ldx_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.and_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cpx_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.dec_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ror_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ldx_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.dec_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sbc_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cmp_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ror_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.inc_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.and_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sbc_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.asl_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.eor_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ora_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ldy_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sbc_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.asl_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sbc_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.rol_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.lsr_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.stx_zpg_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ora_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.eor_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.bit_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ldx_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ldy_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.jmp_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.beq_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.dec_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.and_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.and_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cmp_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.eor_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sbc_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.cmp_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sbc_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cmp_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.stx_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sty_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.cpy_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.dec_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.ror_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sta_abs_y:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.inc_abs_x:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.lda_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cmp_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cpy_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ldx_zpg_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.sbc_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ora_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.rol_zpg_x:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ora_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.sta_ind_y:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.and_abs:
- self.args = self._io.read_u2le()
- elif _on == self._root.Opcode.and_imm:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.cmp_x_ind:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.ldy_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.inc_zpg:
- self.args = self._io.read_u1()
- elif _on == self._root.Opcode.bvc_rel:
- self.args = self._io.read_s1()
- elif _on == self._root.Opcode.ora_zpg:
- self.args = self._io.read_u1()
- self._debug['args']['end'] = self._io.pos()
-
-
-