blob: 38a1a24d76590dc3a1465fed28b189842da64fdd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
use crate::*;
pub trait DeviceBus {
fn read_u8(&mut self, port: u8) -> u8;
fn write_u8(&mut self, value: u8, port: u8) -> Option<Signal>;
fn read_u16(&mut self, port: u8) -> u16 {
let high = self.read_u8(port);
let low = self.read_u8(port.wrapping_add(1));
u16::from_be_bytes([high, low])
}
fn write_u16(&mut self, value: u16, port: u8) -> Option<Signal> {
let [h, l] = value.to_be_bytes();
self.write_u8(h, port);
self.write_u8(l, port.wrapping_add(1))
}
}
|