From 10f90638729eb223416e49e01acc1a4acda80571 Mon Sep 17 00:00:00 2001 From: Thiago Auler Date: Sun, 12 Nov 2017 22:27:51 -0200 Subject: [PATCH] cleaning decode source code --- doc/6502 opcodes tables.pdf | Bin 0 -> 89835 bytes src/6502.c | 88 ++------------ src/inc/opcodes.h | 2 - src/opcodes.c | 222 +++++++++--------------------------- 4 files changed, 64 insertions(+), 248 deletions(-) create mode 100644 doc/6502 opcodes tables.pdf diff --git a/doc/6502 opcodes tables.pdf b/doc/6502 opcodes tables.pdf new file mode 100644 index 0000000000000000000000000000000000000000..590af8e065dd40940c521f089c284412e60dbd94 GIT binary patch literal 89835 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Πu^$p{%o*a({jtqn~|WK2D9m) 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 #include "inc/opcodes.h" +#include "inc/memory.h" -int zz = 0; - -void decode_addressing_mode() +db fetch_operand(dw address) { - switch (opcode_decoded_2) + mem.mar = address; + mem_read(); + return mem.mdr; +} + +dw fetch_address() +{ + dw word; + db low_byte; + db high_byte; + + low_byte = fetch_operand(pc); + pc = pc + 1; + + high_byte = fetch_operand(pc); + pc = pc + 1; + + word = high_byte << 8; // shifts high byte to its place + word = word | low_byte; // appends low byte to form the complete word + + return word; +} + +db decode_operand() +{ + db operand; + db byte; + dw word; + + switch (addressing_mode) { - case XXX: - printf("/---] "); + case immediate: + operand = fetch_operand(pc); + pc = pc + 1; break; - case JSR: - printf("/abs] "); + case zero_page: + byte = fetch_operand(pc); + word = 0x0000 | byte; + operand = fetch_operand(word); + pc = pc + 1; break; - case BPL: case BMI: case BVC: case BVS: - case BCC: case BCS: case BNE: case BEQ: - printf("/rel] "); + case zero_page_x: + byte = fetch_operand(pc); + word = 0x0000 | byte; + word = word + x; + operand = fetch_operand(word); + pc = pc + 1; break; - case TXA: case TXS: case TAX: case TSX: case DEX: - case NOP: case CLC: case SEC: case CLI: case SEI: - case TYA: case CLV: case CLD: case SED: case PHP: - case PLP: case PHA: case PLA: case DEY: case TAY: - case INY: case INX: case BRK: case RTI: case RTS: - printf("/imp] "); + case zero_page_y: + byte = fetch_operand(pc); + word = 0x0000 | byte; + word = word + y; + operand = fetch_operand(word); + pc = pc + 1; break; - default: - switch (addressing_mode) - { - case immediate: - printf("/imm] "); - break; - case zero_page: - printf("/zpg] "); - break; - case accumulator: - printf("/acc] "); - break; - case absolute: - printf("/abs] "); - break; - case indirect_y: - printf("/iny] "); - break; - case zero_page_x: - printf("/zpx] "); - break; - case absolute_y: - printf("/aby] "); - break; - case absolute_x: - printf("/abx] "); - break; - case indirect_x: - printf("/inx] "); - break; - case zero_page_y: - printf("/zpy] "); - break; - } + case accumulator: + operand = ac; break; } - if (++zz % 8 == 0) { printf("\n"); } + return operand; } void xxx() { // invalid opcode - printf("%02X:[---", ir); - decode_addressing_mode(); + return nop(); } void adc() { // add memory to accumalator with carry - printf("%02X:[ADC", ir); - decode_addressing_mode(); } void and() { // and memory with accumulator - printf("%02X:[AND", ir); - decode_addressing_mode(); } void asl() { // shift left one bit (memory on accumulator) - printf("%02X:[ASL", ir); - decode_addressing_mode(); } void bcc() { // branch on carry clear - printf("%02X:[BCC", ir); - decode_addressing_mode(); } void bcs() { // branch on carry set - printf("%02X:[BSC", ir); - decode_addressing_mode(); } void beq() { // branch on result zero - printf("%02X:[BEQ", ir); - decode_addressing_mode(); } void bit() { // test bits in memory with accumulator - printf("%02X:[BIT", ir); - decode_addressing_mode(); } void bmi() { // branch on result minus - printf("%02X:[BMI", ir); - decode_addressing_mode(); } void bne() { // branch on result not zero - printf("%02X:[BNE", ir); - decode_addressing_mode(); } void bpl() { // branch on result plus - printf("%02X:[BPL", ir); - decode_addressing_mode(); } void brk() { // force break - printf("%02X:[BRK", ir); - decode_addressing_mode(); } void bvc() { // branch on overflow clear - printf("%02X:[BVC", ir); - decode_addressing_mode(); } void bvs() { // branch on overflow set - printf("%02X:[BVS", ir); - decode_addressing_mode(); } void clc() { // clear carry flag - printf("%02X:[CLC", ir); - decode_addressing_mode(); } void cld() { // clear decimal mode - printf("%02X:[CLD", ir); - decode_addressing_mode(); } void cli() { // clear interrupt disable bit - printf("%02X:[CLI", ir); - decode_addressing_mode(); } void clv() { // clear overflow flag - printf("%02X:[CLV", ir); - decode_addressing_mode(); } void cmp() { // compare memory with accumulator - printf("%02X:[CMP", ir); - decode_addressing_mode(); } void cpx() { // compare memory and index x - printf("%02X:[CPX", ir); - decode_addressing_mode(); } void cpy() { // compare memory and index y - printf("%02X:[CPY", ir); - decode_addressing_mode(); } void dec() { // decrement memory by one - printf("%02X:[DEC", ir); - decode_addressing_mode(); } void dex() { // decrement index x by one - printf("%02X:[DEX", ir); - decode_addressing_mode(); } void dey() { // decrement index y by one - printf("%02X:[DEY", ir); - decode_addressing_mode(); } void eor() { // exclusive-or memory with accumulator - printf("%02X:[EOR", ir); - decode_addressing_mode(); } void inc() { // increment memory by one - printf("%02X:[INC", ir); - decode_addressing_mode(); } void inx() { // increment index x by one - printf("%02X:[INX", ir); - decode_addressing_mode(); } void iny() { // increment index y by one - printf("%02X:[INY", ir); - decode_addressing_mode(); } void jmp() { // jump to new location - printf("%02X:[JMP", ir); - decode_addressing_mode(); } void jsr() { // jump to new location saving return address - printf("%02X:[JSR", ir); - decode_addressing_mode(); } void lda() { // load accumulator with memory - printf("%02X:[LDA", ir); - decode_addressing_mode(); } void ldx() { // load index x with memory - printf("%02X:[LDX", ir); - decode_addressing_mode(); } void ldy() { // load index y with memory - printf("%02X:[LDY", ir); - decode_addressing_mode(); } void lsr() { // shift one bit right (memory or accumulator) - printf("%02X:[LSR", ir); - decode_addressing_mode(); } void nop() { // no operation - printf("%02X:[NOP", ir); - decode_addressing_mode(); } void ora() { // or memory with accumulator - printf("%02X:[ORA", ir); - decode_addressing_mode(); } void pha() { // push accumulator on stack - printf("%02X:[PHA", ir); - decode_addressing_mode(); } void php() { // push processor status on stack - printf("%02X:[PHP", ir); - decode_addressing_mode(); } void pla() { // pull accumulator from stack - printf("%02X:[PLA", ir); - decode_addressing_mode(); } void plp() { // pull processor status from stack - printf("%02X:[PLP", ir); - decode_addressing_mode(); } void rol() { // rotate on bit left (memory or accumulator) - printf("%02X:[ROL", ir); - decode_addressing_mode(); } void ror() { // rotate on bit right (memory or accumulator) - printf("%02X:[ROR", ir); - decode_addressing_mode(); } void rti() { // return from interrupt - printf("%02X:[RTI", ir); - decode_addressing_mode(); } void rts() { // retrun from subroutine - printf("%02X:[RTS", ir); - decode_addressing_mode(); } void sbc() { // subtract memory from accumulator with borrow - printf("%02X:[SBC", ir); - decode_addressing_mode(); } void sec() { // set carry flag - printf("%02X:[SEC", ir); - decode_addressing_mode(); } void sed() { // set decimal flag - printf("%02X:[SED", ir); - decode_addressing_mode(); } void sei() { // set interrupt disable status - printf("%02X:[SEI", ir); - decode_addressing_mode(); } void sta() { // store accumulator in memory - printf("%02X:[STA", ir); - decode_addressing_mode(); } void stx() { // store index x in memory - printf("%02X:[STX", ir); - decode_addressing_mode(); } void sty() { // store index y in memory - printf("%02X:[STY", ir); - decode_addressing_mode(); } void tax() { // transfer accumulator to index x - printf("%02X:[TAX", ir); - decode_addressing_mode(); } void tay() { // transfer accumulator to index y - printf("%02X:[TAY", ir); - decode_addressing_mode(); } void tsx() { // transfer stack pointer to index x - printf("%02X:[TSX", ir); - decode_addressing_mode(); } void txa() { // transfer index x to accumulator - printf("%02X:[TXA", ir); - decode_addressing_mode(); } void txs() { // transfer index x to stack pointer - printf("%02X:[TXS", ir); - decode_addressing_mode(); } void tya() { // transfer index y to accumulator - printf("%02X:[TYA", ir); - decode_addressing_mode(); }