1#[macro_use]
6extern crate log;
7
8mod charset;
9mod debugger;
10mod disassembler;
11mod rap_server;
12
13use std::sync::mpsc::Sender;
14
15pub use self::debugger::Debugger;
16pub use self::rap_server::RapServer;
17
18pub enum Command {
19 Attach(Sender<Output>),
20 Detach,
21 Continue,
22 Step,
23 BpClear,
24 BpCondition(u16, String, u32),
25 BpDisable(u16),
26 BpDisableAll,
27 BpEnable(u16),
28 BpEnableAll,
29 BpIgnore(u16, u16),
30 BpList,
31 BpRemove(u16),
32 BpSet(u16, bool),
33 MemRead(u16, u16),
34 MemWrite(u16, Vec<u8>),
35 RegRead,
36 RegWrite(Vec<RegOp>),
37 SysQuit,
38 SysReset(bool),
39 SysScreen,
40 SysStopwatch(bool),
41}
42
43pub enum Output {
44 Await,
45 Buffer(Vec<u8>),
46 Error(String),
47 Number(u16),
48 Registers(RegData),
49 Text(String),
50 Unit,
51}
52
53#[derive(Clone, Copy)]
54pub struct RegData {
55 pub a: u8,
56 pub x: u8,
57 pub y: u8,
58 pub p: u8,
59 pub sp: u8,
60 pub pc: u16,
61 pub port_00: u8,
62 pub port_01: u8,
63 pub clock: u64,
64}
65
66pub enum RegOp {
67 SetA(u8),
68 SetX(u8),
69 SetY(u8),
70 SetP(u8),
71 SetSP(u8),
72 SetPC(u16),
73}