applies chatgpt suggestions.
... does not appear to decode everything
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
use log::debug;
|
||||
use crate::address_mode::AddressMode::*;
|
||||
use crate::constants::constants_isa_op::*;
|
||||
|
||||
fn join_word(low: u8, high: u8) -> u16 {
|
||||
((high as u16) << 8) | low as u16
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_join_word() {
|
||||
let low: u8 = 0xcd;
|
||||
let high: u8 = 0xab;
|
||||
|
||||
assert_eq!(
|
||||
join_word(low, high),
|
||||
0xabcd
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
use crate::address_mode::AddressMode;
|
||||
use crate::address_mode::AddressMode::*;
|
||||
use crate::mos6502flags::Mos6502Flag::*;
|
||||
|
||||
mod from_bytes;
|
||||
mod to_bytes;
|
||||
mod to_string;
|
||||
@@ -0,0 +1,38 @@
|
||||
use crate::address_mode::AddressMode;
|
||||
use crate::address_mode::AddressMode::{Absolute, AbsoluteX, AbsoluteY, Immediate, IndirectX, IndirectY, ZeroPage, ZeroPageX, ZeroPageY};
|
||||
use crate::constants::constants_isa_op::*;
|
||||
|
||||
fn split_word_hl(to_split: u16) -> (u8, u8) {
|
||||
let low = (to_split & 0xff) as u8;
|
||||
let high = ((to_split & 0xff00) >> 8) as u8;
|
||||
(high, low)
|
||||
}
|
||||
|
||||
fn split_word_lh(to_split: u16) -> (u8, u8) {
|
||||
let low = (to_split & 0xff) as u8;
|
||||
let high = ((to_split & 0xff00) >> 8) as u8;
|
||||
(low, high)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn split_le() {
|
||||
let value = 0xabcd;
|
||||
let (high, low) = split_word_hl(value);
|
||||
|
||||
assert_eq!(low, 0xcd);
|
||||
assert_eq!(high, 0xab);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn split_be() {
|
||||
let value = 0xabcd;
|
||||
let (low, high) = split_word_lh(value);
|
||||
|
||||
assert_eq!(low, 0xcd);
|
||||
assert_eq!(high, 0xab);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
fn format(mode: &AddressMode, prefix: &str) -> String {
|
||||
// let suffix = match mode {
|
||||
// AddressMode::Implied => "",
|
||||
// AddressMode::Accumulator => " A",
|
||||
// AddressMode::Immediate(value) => &*format!(" #${value:02x}"),
|
||||
// AddressMode::ZeroPage(value) => &*format!(" ${value:02x}"),
|
||||
// AddressMode::ZeroPageX(value) => &*format!(" ${value:02x},X"),
|
||||
// AddressMode::Absolute(offset) => &*format!(" ${offset:04x}"),
|
||||
// AddressMode::AbsoluteX(offset) => &*format!(" ${offset:04x},X"),
|
||||
// AddressMode::AbsoluteY(offset) => &*format!(" ${offset:04x},Y"),
|
||||
// AddressMode::IndirectX(value) => &*format!(" (${value:02x},X)"),
|
||||
// AddressMode::IndirectY(value) => &*format!(" (${value:02x}),Y"),
|
||||
// AddressMode::ZeroPageY(value) => &*format!(" ${value:02x},Y")
|
||||
// };
|
||||
// format!("{}{}", prefix, suffix)
|
||||
prefix.to_string()
|
||||
}
|
||||
Reference in New Issue
Block a user