summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-11-17 19:13:34 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2020-11-17 19:13:34 +0100
commitced1681a4457c6068b9c73b0a9f5acdc27df5c07 (patch)
treec248e8d165236a0f49d885739265751038b27e9f
parent63d0944063b6f240fe0c68ef9b61d4dd906d9fc1 (diff)
download6502-ced1681a4457c6068b9c73b0a9f5acdc27df5c07.tar.gz
6502-ced1681a4457c6068b9c73b0a9f5acdc27df5c07.tar.bz2
arduino monitor with pseudo-opcodes on SYNC
-rw-r--r--sketches/6502_addr_read.ino24
1 files changed, 23 insertions, 1 deletions
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 );
}