From ced1681a4457c6068b9c73b0a9f5acdc27df5c07 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Tue, 17 Nov 2020 19:13:34 +0100 Subject: arduino monitor with pseudo-opcodes on SYNC --- sketches/6502_addr_read.ino | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sketches/6502_addr_read.ino b/sketches/6502_addr_read.ino index 415c4b7..445c5a5 100644 --- a/sketches/6502_addr_read.ino +++ b/sketches/6502_addr_read.ino @@ -2,7 +2,26 @@ char addr_pin[16]; char data_pin[8]; const int clock_pin = 2; const int rw_pin = 3; +const int sync_pin = 4; +const char opcode[256][5] = {\ + "BRK", "ORA", "" , "", "TSB", "ORA", "ASL", "RMB0", "PHP", "ORA", "ASL", "" , "TSB", "ORA", "ASL", "BBR0",\ + "BPL", "ORA", "ORA", "", "TRB", "ORA", "ASL", "RMB1", "CLC", "ORA", "INC", "" , "TRB", "ORA", "ASL", "BBR1",\ + "JSR", "AND", "" , "", "BIT", "AND", "ROL", "RMB2", "PLP", "AND", "ROL", "" , "BIT", "AND", "ROL", "BBR2",\ + "BMI", "AND", "AND", "", "BIT", "AND", "ROL", "RMB3", "SEC", "AND", "DEC", "" , "BIT", "AND", "ROL", "BBR3",\ + "RTI", "EOR", "" , "", "" , "EOR", "LSR", "RMB4", "PHA", "EOR", "LSR", "" , "JMP", "EOR", "LSR", "BBR4",\ + "BVC", "EOR", "EOR", "", "" , "EOR", "LSR", "RMB5", "CLI", "EOR", "PHY", "" , "" , "EOR", "LSR", "BBR5",\ + "RTS", "ADC", "" , "", "STZ", "ADC", "ROR", "RMB6", "PLA", "ADC", "ROR", "" , "JMP", "ADC", "ROR", "BBR6",\ + "BVS", "ADC", "ADC", "", "STZ", "ADC", "ROR", "RMB7", "SEI", "ADC", "PLY", "" , "JMP", "ADC", "ROR", "BBR7",\ + "BRA", "STA", "" , "", "STY", "STA", "STX", "SMB0", "DEY", "BIT", "TXA", "" , "STY", "STA", "STX", "BBS0",\ + "BCC", "STA", "STA", "", "STY", "STA", "STX", "SMB1", "TYA", "STA", "TXS", "" , "STZ", "STA", "STZ", "BBS1",\ + "LDY", "LDA", "LDX", "", "LDY", "LDA", "LDX", "SMB2", "TAY", "LDA", "TAX", "" , "LDY", "LDA", "LDX", "BBS2",\ + "BCS", "LDA", "LDA", "", "LDY", "LDA", "LDX", "SMB3", "CLV", "LDA", "TSX", "" , "LDY", "LDA", "LDX", "BBS3",\ + "CPY", "CMP", "" , "", "CPY", "CMP", "DEC", "SMB4", "INY", "CMP", "DEX", "WAI", "CPY", "CMP", "DEC", "BBS4",\ + "BNE", "CMP", "CMP", "", "" , "CMP", "DEC", "SMB5", "CLD", "CMP", "PHX", "STP", "" , "CMP", "DEC", "BBS5",\ + "CPX", "SBC", "" , "", "CPX", "SBC", "INC", "SMB6", "INX", "SBC", "NOP", "" , "CPX", "SBC", "INC", "BBS6",\ + "BEQ", "SBC", "SBC", "", "" , "SBC", "INC", "SMB7", "SED", "SBC", "PLX", "" , "" , "SBC", "INC", "BBS7"}; + void setup( ) { for( int i = 0; i < 16; i++ ) { @@ -15,6 +34,7 @@ void setup( ) } pinMode( clock_pin, INPUT ); pinMode( rw_pin, INPUT ); + pinMode( sync_pin, INPUT ); attachInterrupt( digitalPinToInterrupt( clock_pin ), onClk, RISING ); Serial.begin( 115200 ); } @@ -37,9 +57,11 @@ void onClk( ) Serial.print( " " ); char rw = ( digitalRead( rw_pin ) == HIGH ) ? 'r' : 'w'; + const char *op = ( digitalRead( sync_pin ) == HIGH ) ? opcode[data] : ""; char output[32]; - sprintf( output, "%04x %c %02x", addr, rw, data ); + sprintf( output, "%04x %c %02x : %4s", addr, rw, data, op ); + Serial.println( output ); } -- cgit v1.2.3-54-g00ecf