createTable builds a function table for each instruction
()
| 181 | |
| 182 | // createTable builds a function table for each instruction |
| 183 | func (c *CPU) createTable() { |
| 184 | c.table = [256]func(*stepInfo){ |
| 185 | c.brk, c.ora, c.kil, c.slo, c.nop, c.ora, c.asl, c.slo, |
| 186 | c.php, c.ora, c.asl, c.anc, c.nop, c.ora, c.asl, c.slo, |
| 187 | c.bpl, c.ora, c.kil, c.slo, c.nop, c.ora, c.asl, c.slo, |
| 188 | c.clc, c.ora, c.nop, c.slo, c.nop, c.ora, c.asl, c.slo, |
| 189 | c.jsr, c.and, c.kil, c.rla, c.bit, c.and, c.rol, c.rla, |
| 190 | c.plp, c.and, c.rol, c.anc, c.bit, c.and, c.rol, c.rla, |
| 191 | c.bmi, c.and, c.kil, c.rla, c.nop, c.and, c.rol, c.rla, |
| 192 | c.sec, c.and, c.nop, c.rla, c.nop, c.and, c.rol, c.rla, |
| 193 | c.rti, c.eor, c.kil, c.sre, c.nop, c.eor, c.lsr, c.sre, |
| 194 | c.pha, c.eor, c.lsr, c.alr, c.jmp, c.eor, c.lsr, c.sre, |
| 195 | c.bvc, c.eor, c.kil, c.sre, c.nop, c.eor, c.lsr, c.sre, |
| 196 | c.cli, c.eor, c.nop, c.sre, c.nop, c.eor, c.lsr, c.sre, |
| 197 | c.rts, c.adc, c.kil, c.rra, c.nop, c.adc, c.ror, c.rra, |
| 198 | c.pla, c.adc, c.ror, c.arr, c.jmp, c.adc, c.ror, c.rra, |
| 199 | c.bvs, c.adc, c.kil, c.rra, c.nop, c.adc, c.ror, c.rra, |
| 200 | c.sei, c.adc, c.nop, c.rra, c.nop, c.adc, c.ror, c.rra, |
| 201 | c.nop, c.sta, c.nop, c.sax, c.sty, c.sta, c.stx, c.sax, |
| 202 | c.dey, c.nop, c.txa, c.xaa, c.sty, c.sta, c.stx, c.sax, |
| 203 | c.bcc, c.sta, c.kil, c.ahx, c.sty, c.sta, c.stx, c.sax, |
| 204 | c.tya, c.sta, c.txs, c.tas, c.shy, c.sta, c.shx, c.ahx, |
| 205 | c.ldy, c.lda, c.ldx, c.lax, c.ldy, c.lda, c.ldx, c.lax, |
| 206 | c.tay, c.lda, c.tax, c.lax, c.ldy, c.lda, c.ldx, c.lax, |
| 207 | c.bcs, c.lda, c.kil, c.lax, c.ldy, c.lda, c.ldx, c.lax, |
| 208 | c.clv, c.lda, c.tsx, c.las, c.ldy, c.lda, c.ldx, c.lax, |
| 209 | c.cpy, c.cmp, c.nop, c.dcp, c.cpy, c.cmp, c.dec, c.dcp, |
| 210 | c.iny, c.cmp, c.dex, c.axs, c.cpy, c.cmp, c.dec, c.dcp, |
| 211 | c.bne, c.cmp, c.kil, c.dcp, c.nop, c.cmp, c.dec, c.dcp, |
| 212 | c.cld, c.cmp, c.nop, c.dcp, c.nop, c.cmp, c.dec, c.dcp, |
| 213 | c.cpx, c.sbc, c.nop, c.isc, c.cpx, c.sbc, c.inc, c.isc, |
| 214 | c.inx, c.sbc, c.nop, c.sbc, c.cpx, c.sbc, c.inc, c.isc, |
| 215 | c.beq, c.sbc, c.kil, c.isc, c.nop, c.sbc, c.inc, c.isc, |
| 216 | c.sed, c.sbc, c.nop, c.isc, c.nop, c.sbc, c.inc, c.isc, |
| 217 | } |
| 218 | } |
| 219 | |
| 220 | func (cpu *CPU) Save(encoder *gob.Encoder) error { |
| 221 | encoder.Encode(cpu.Cycles) |