Skip to content

Commit

Permalink
more concise, remove segment_override()
Browse files Browse the repository at this point in the history
  • Loading branch information
dbalsom committed Apr 29, 2024
1 parent a05a41f commit b36b18b
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 24 deletions.
21 changes: 4 additions & 17 deletions core/src/cpu_808x/addressing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,16 +95,6 @@ impl Cpu {
(((segment_val as u32) << 4) + offset as u32) & 0xFFFFFu32
}

pub fn segment_override(seg_override: Option<Segment>, seg_default: Segment) -> Segment {

if let Some(segment) = seg_override {
segment
}
else {
seg_default
}
}

/// Calculate the Effective Address for the given AddressingMode enum
pub fn calc_effective_address(
&mut self,
Expand Down Expand Up @@ -240,7 +230,7 @@ impl Cpu {
}
OperandType::Offset8(_offset8) => {
let offset = self.q_read_u16(QueueType::Subsequent, QueueReader::Eu);
let segment = Cpu::segment_override(seg_override, Segment::DS);
let segment = seg_override.unwrap_or(Segment::DS);
let byte = self.biu_read_u8(segment, offset);
Some(byte)
}
Expand Down Expand Up @@ -288,8 +278,7 @@ impl Cpu {
}
OperandType::Offset16(_offset16) => {
let offset = self.q_read_u16(QueueType::Subsequent, QueueReader::Eu);

let segment = Cpu::segment_override(seg_override, Segment::DS);
let segment = seg_override.unwrap_or(Segment::DS);
let word = self.biu_read_u16(segment, offset, ReadWriteFlag::Normal);

Some(word)
Expand Down Expand Up @@ -403,8 +392,7 @@ impl Cpu {
OperandType::Offset8(_offset8) => {
let offset = self.q_read_u16(QueueType::Subsequent, QueueReader::Eu);
self.cycle();

let segment = Cpu::segment_override(seg_override, Segment::DS);
let segment = seg_override.unwrap_or(Segment::DS);
self.biu_write_u8(segment, offset, value, flag);
}
OperandType::Register8(reg8) => match reg8 {
Expand Down Expand Up @@ -436,8 +424,7 @@ impl Cpu {
OperandType::Offset16(_offset16) => {
let offset = self.q_read_u16(QueueType::Subsequent, QueueReader::Eu);
self.cycle();

let segment = Cpu::segment_override(seg_override, Segment::DS);
let segment = seg_override.unwrap_or(Segment::DS);
self.biu_write_u16(segment, offset, value, flag);
}
OperandType::Register16(reg16) => {
Expand Down
2 changes: 1 addition & 1 deletion core/src/cpu_808x/execute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1159,7 +1159,7 @@ impl Cpu {
// XLAT

// Handle segment override, default DS
let segment = Cpu::segment_override(self.i.segment_override, Segment::DS);
let segment = self.i.segment_override.unwrap_or(Segment::DS);
let disp16: u16 = self.b.x().wrapping_add(self.a.l() as u16);

self.cycles_i(3, &[0x10c, 0x10d, 0x10e]);
Expand Down
7 changes: 1 addition & 6 deletions core/src/cpu_808x/string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,7 @@ use crate::cpu_808x::*;

impl Cpu {
pub fn string_op(&mut self, opcode: Mnemonic, segment_override: Option<Segment>) {
let segment_base_ds = if let Some(seg) = segment_override {
seg
}
else {
Segment::DS
};
let segment_base_ds = segment_override.unwrap_or(Segment::DS);

match opcode {
Mnemonic::STOSB => {
Expand Down

0 comments on commit b36b18b

Please sign in to comment.