diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2024-10-07 19:45:57 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2024-10-07 19:45:57 +1300 |
commit | f71aa759098369428e6610c8c35f51ac50a44d73 (patch) | |
tree | 43ec280d2ccd92077c7fd989d937c096e8a377b3 /src | |
parent | f4f129a75208ccf5d6a19b1cb81c56d4d95fd61f (diff) | |
download | bedrock-core-f71aa759098369428e6610c8c35f51ac50a44d73.zip |
Record total elapsed processor cycles
Diffstat (limited to 'src')
-rw-r--r-- | src/bedrock.rs | 2 | ||||
-rw-r--r-- | src/processor.rs | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/bedrock.rs b/src/bedrock.rs index 19ccae6..8d03e12 100644 --- a/src/bedrock.rs +++ b/src/bedrock.rs @@ -6,6 +6,7 @@ pub struct Bedrock<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> { pub wst: Stack, pub rst: Stack, pub dev: DeviceBus<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF>, + pub cyc: usize, } impl<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> Bedrock<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> { @@ -15,6 +16,7 @@ impl<D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF> Bedrock<D0,D1,D2,D3,D4,D5, wst: Stack::new(), rst: Stack::new(), dev: device_bus, + cyc: 0, } } } diff --git a/src/processor.rs b/src/processor.rs index 6c5362a..bc16f01 100644 --- a/src/processor.rs +++ b/src/processor.rs @@ -101,7 +101,10 @@ impl < }; } - for _ in 0..cycles { + let end = self.cyc + cycles; + while self.cyc < end { + self.cyc += 1; + match self.mem.read_u8_next() { /* HLT */ 0x00 => { return Some(Signal::Halt); } /* JMP */ 0x01 => { WPOPD!(a); self.mem.pc=a; } |