prep to do big tick method

This commit is contained in:
Trevor Merritt 2025-07-21 13:41:17 -04:00
parent 7498489b03
commit d5efabdd36
5 changed files with 31 additions and 11 deletions

View File

@ -1,19 +1,9 @@
use std::fs;
use clap::Parser;
use core::computers::rom_only::RomOnlyComputer;
use core::periph::backplane::Backplane;
#[derive(Parser)]
struct CliOptions {
offset: u16,
bytes: u16,
filename: String
}
fn main() {
println!("Taxation is theft");
// let opts = CliOptions::parse();
let path = "/home/tmerritt/Projects/mos6502/resources/test/periph/at28c256/checksum.bin";
let bytes = match fs::read(path) {
Ok(bytes) => {

View File

@ -0,0 +1,20 @@
use std::fs;
use core::computers::rom_only::RomOnlyComputer;
fn main() {
println!("Taxation is theft");
let path = "/home/tmerritt/Projects/mos6502/resources/test/periph/at28c256/checksum.bin";
let bytes = match fs::read(path) {
Ok(bytes) => {
println!("Loaded {} bytes", bytes.len());
bytes
},
Err(e) => vec![]
};
let mut rom_only = RomOnlyComputer::program((&bytes[..]).to_vec());
rom_only.tick2(0x05, 0b0000_0001, 0x05);
println!("COMPUTER: Read {:02x} from ROM", rom_only.data_bus()) ;
println!("COMPUTER: Read {:04x} from Address Bus", rom_only.address_bus());
}

View File

@ -47,6 +47,7 @@ impl Backplane for RamRomComputer {
}
}
}
fn set_read_mode(&mut self, new_mode: bool) {
self.read_mode = new_mode;
}

View File

@ -12,3 +12,12 @@ pub struct RomOnlyComputer {
pub(crate) address_bus: u16,
pub(crate) read_mode: bool,
}
impl RomOnlyComputer {
pub fn tick2(&mut self, address: u16, control: u8, data: u8) -> (u8) {
// tick the parts...
let (_, new_data) = self.rom.tick(address, data, control == 0x01);
new_data
}
}