Reduce code duplication

This commit is contained in:
Werner
2021-11-19 19:59:05 -03:00
parent ae70b9db3d
commit 03e43f39ce
4 changed files with 193 additions and 216 deletions

33
Source/Payload.rs Normal file
View File

@ -0,0 +1,33 @@
use crate::Machine;
use crate::Types::{Byte, Word};
pub type RegisterAddress = (Byte, Word);
pub type AddressRegister = (Word, Byte);
pub type Register = Byte;
pub type TwoRegisters = (Byte, Byte);
pub type ThreeRegisters = (Byte, Byte, Byte);
#[inline]
pub fn GetRegisterAddress(vm: &mut Machine) -> RegisterAddress {
(vm.ReadByte(None), vm.ReadWord(None))
}
#[inline]
pub fn GetAddressRegister(vm: &mut Machine) -> AddressRegister {
(vm.ReadWord(None), vm.ReadByte(None))
}
#[inline]
pub fn GetRegister(vm: &mut Machine) -> Register {
vm.ReadByte(None)
}
#[inline]
pub fn GetTwoRegisters(vm: &mut Machine) -> TwoRegisters {
(vm.ReadByte(None), vm.ReadByte(None))
}
#[inline]
pub fn GetThreeRegisters(vm: &mut Machine) -> ThreeRegisters {
(vm.ReadByte(None), vm.ReadByte(None), vm.ReadByte(None))
}