rs6502/cpu/
cpu_error.rs

1#[derive(Debug, PartialEq)]
2pub enum CpuErrorKind {
3    SegFault,
4    InvalidOpCode,
5}
6
7#[derive(Debug, PartialEq)]
8pub struct CpuError {
9    message: String,
10    addr: u16,
11    kind: CpuErrorKind,
12}
13
14impl CpuError {
15    pub fn code_segment_out_of_range(addr: u16) -> CpuError {
16        CpuError {
17            message: format!("CODE segment out of bounds"),
18            addr: addr,
19            kind: CpuErrorKind::SegFault,
20        }
21    }
22
23    pub fn unknown_opcode(addr: u16, opcode: u8) -> CpuError {
24        CpuError {
25            message: format!("Unknown opcode {:02X} at {:04X}", opcode, addr),
26            addr: addr,
27            kind: CpuErrorKind::InvalidOpCode,
28        }
29    }
30}