1
0
mirror of https://github.com/danbee/8080 synced 2025-03-04 08:39:07 +00:00

Add yellow block from opcode table

This commit is contained in:
Daniel Barber 2015-12-11 11:19:09 +01:00
parent 3b7c42ceec
commit 771f0b8a8e
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8

View File

@ -7,27 +7,135 @@ fn opcode(input: &Vec<u8>, counter: usize) -> usize {
match opcode {
0x00 => { println!("NOP"); size = 1 },
0x0f => { println!("RRC"); size = 1 },
0x21 => {
println!("LXI ${:x}{:x}", input[counter + 2], input[counter + 1]);
println!("LXI ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0x27 => { println!("DAA"); size = 1 },
0x32 => {
println!("STA ${:x}{:x}", input[counter + 2], input[counter + 1]);
println!("STA ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0x35 => { println!("DCR M"); size = 1 },
0x3a => {
println!("LDA ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0x3e => {
println!("MVI A,#0x{:x}", input[counter + 1]);
println!("MVI A,#0x{:02x}", input[counter + 1]);
size = 2;
},
0x80 => { println!("ADD B"); size = 1 },
0x81 => { println!("ADD C"); size = 1 },
0x82 => { println!("ADD D"); size = 1 },
0x83 => { println!("ADD E"); size = 1 },
0x84 => { println!("ADD H"); size = 1 },
0x85 => { println!("ADD L"); size = 1 },
0x86 => { println!("ADD M"); size = 1 },
0x87 => { println!("ADD A"); size = 1 },
0x88 => { println!("ADC B"); size = 1 },
0x89 => { println!("ADC C"); size = 1 },
0x8a => { println!("ADC D"); size = 1 },
0x8b => { println!("ADC E"); size = 1 },
0x8c => { println!("ADC H"); size = 1 },
0x8d => { println!("ADC L"); size = 1 },
0x8e => { println!("ADC M"); size = 1 },
0x8f => { println!("ADC A"); size = 1 },
0x90 => { println!("SUB B"); size = 1 },
0x91 => { println!("SUB C"); size = 1 },
0x92 => { println!("SUB D"); size = 1 },
0x93 => { println!("SUB E"); size = 1 },
0x94 => { println!("SUB H"); size = 1 },
0x95 => { println!("SUB L"); size = 1 },
0x96 => { println!("SUB M"); size = 1 },
0x97 => { println!("SUB A"); size = 1 },
0x98 => { println!("SBB B"); size = 1 },
0x99 => { println!("SBB C"); size = 1 },
0x9a => { println!("SBB D"); size = 1 },
0x9b => { println!("SBB E"); size = 1 },
0x9c => { println!("SBB H"); size = 1 },
0x9d => { println!("SBB L"); size = 1 },
0x9e => { println!("SBB M"); size = 1 },
0x9f => { println!("SBB A"); size = 1 },
0xa0 => { println!("ANA B"); size = 1 },
0xa1 => { println!("ANA C"); size = 1 },
0xa2 => { println!("ANA D"); size = 1 },
0xa3 => { println!("ANA E"); size = 1 },
0xa4 => { println!("ANA H"); size = 1 },
0xa5 => { println!("ANA L"); size = 1 },
0xa6 => { println!("ANA M"); size = 1 },
0xa7 => { println!("ANA A"); size = 1 },
0xa8 => { println!("XRA B"); size = 1 },
0xa9 => { println!("XRA C"); size = 1 },
0xaa => { println!("XRA D"); size = 1 },
0xab => { println!("XRA E"); size = 1 },
0xac => { println!("XRA H"); size = 1 },
0xad => { println!("XRA L"); size = 1 },
0xae => { println!("XRA M"); size = 1 },
0xaf => { println!("XRA A"); size = 1 },
0xb0 => { println!("ORA B"); size = 1 },
0xb1 => { println!("ORA C"); size = 1 },
0xb2 => { println!("ORA D"); size = 1 },
0xb3 => { println!("ORA E"); size = 1 },
0xb4 => { println!("ORA H"); size = 1 },
0xb5 => { println!("ORA L"); size = 1 },
0xb6 => { println!("ORA M"); size = 1 },
0xb7 => { println!("ORA A"); size = 1 },
0xb8 => { println!("CMP B"); size = 1 },
0xb9 => { println!("CMP C"); size = 1 },
0xba => { println!("CMP D"); size = 1 },
0xbb => { println!("CMP E"); size = 1 },
0xbc => { println!("CMP H"); size = 1 },
0xbd => { println!("CMP L"); size = 1 },
0xbe => { println!("CMP M"); size = 1 },
0xbf => { println!("CMP A"); size = 1 },
0xc2 => {
println!("JNZ ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0xc3 => {
println!("JMP ${:x}{:x}", input[counter + 2], input[counter + 1]);
println!("JMP ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0xc5 => { println!("PUSH B"); size = 1 },
0xd5 => { println!("PUSH D"); size = 1},
0xe5 => { println!("PUSH H"); size = 1},
0xf5 => { println!("PUSH PSW"); size = 1},
_ => { println!("{:x}", opcode); size = 1},
0xc6 => {
println!("ADI #0x{:02x}", input[counter + 1]);
size = 2;
},
0xca => {
println!("JZ ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0xcd => {
println!("CALL ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0xd5 => { println!("PUSH D"); size = 1 },
0xda => {
println!("JC ${:02x}{:02x}", input[counter + 2], input[counter + 1]);
size = 3;
},
0xdb => {
println!("IN #0x{:02x}", input[counter + 1]);
size = 2;
}
0xe5 => { println!("PUSH H"); size = 1 },
0xf5 => { println!("PUSH PSW"); size = 1 },
0xfe => {
println!("CPI #0x{:02x}", input[counter + 1]);
size = 2;
},
_ => { println!("{:02x}", opcode); size = 1 },
}
size