| @@ -89,7 +89,6 @@ impl CPU { |
| 89 | 89 | | self.sp = self.sp.wrapping_sub(1); |
| 90 | 90 | | } |
| 91 | 91 | | |
| 92 | | − | |
| 93 | 92 | | pub fn halt(&mut self) { |
| 94 | 93 | | self.halted = true; |
| 95 | 94 | | } |
| @@ -114,7 +113,7 @@ impl CPU { |
| 114 | 113 | | pub fn mov_rr(&mut self, mem: &Memory) { |
| 115 | 114 | | let dest = mem.read(self.pc); |
| 116 | 115 | | self.inc_pc(); |
| 117 | | − | let src= mem.read(self.pc); |
| 116 | + | let src = mem.read(self.pc); |
| 118 | 117 | | self.inc_pc(); |
| 119 | 118 | | |
| 120 | 119 | | let val = self.get_reg(src); |
| @@ -123,7 +122,6 @@ impl CPU { |
| 123 | 122 | | self.zero = val == 0; |
| 124 | 123 | | } |
| 125 | 124 | | |
| 126 | | − | |
| 127 | 125 | | pub fn add_rr(&mut self, mem: &Memory) { |
| 128 | 126 | | let dest = mem.read(self.pc); |
| 129 | 127 | | self.pc += 1; |
| @@ -166,7 +164,6 @@ impl CPU { |
| 166 | 164 | | self.carry = carry; |
| 167 | 165 | | } |
| 168 | 166 | | pub fn add_ri(&mut self, mem: &Memory) { |
| 169 | | − | |
| 170 | 167 | | let dest = mem.read(self.pc); |
| 171 | 168 | | self.pc += 1; |
| 172 | 169 | | let imm = mem.read(self.pc); |
| @@ -192,7 +189,6 @@ impl CPU { |
| 192 | 189 | | self.carry = carry; |
| 193 | 190 | | } |
| 194 | 191 | | |
| 195 | | − | |
| 196 | 192 | | pub fn sub_rr(&mut self, mem: &Memory) { |
| 197 | 193 | | let dest = mem.read(self.pc); |
| 198 | 194 | | self.pc += 1; |
| @@ -235,7 +231,7 @@ impl CPU { |
| 235 | 231 | | self.carry = borrow; |
| 236 | 232 | | } |
| 237 | 233 | | |
| 238 | | − | pub fn sub_ri(&mut self, mem: &Memory) { |
| 234 | + | pub fn sub_ri(&mut self, mem: &Memory) { |
| 239 | 235 | | let dest = mem.read(self.pc); |
| 240 | 236 | | self.pc += 1; |
| 241 | 237 | | let imm = mem.read(self.pc); |
| @@ -261,7 +257,6 @@ impl CPU { |
| 261 | 257 | | self.carry = borrow; |
| 262 | 258 | | } |
| 263 | 259 | | |
| 264 | | − | |
| 265 | 260 | | pub fn jmp(&mut self, mem: &Memory) { |
| 266 | 261 | | let low = mem.read(self.pc) as u16; |
| 267 | 262 | | self.inc_pc(); |
| @@ -329,24 +324,28 @@ impl CPU { |
| 329 | 324 | | } |
| 330 | 325 | | |
| 331 | 326 | | pub fn mul(&mut self, mem: &Memory) { |
| 332 | | − | let dest = mem.read(self.pc); self.inc_pc(); |
| 333 | | − | let src = mem.read(self.pc); self.inc_pc(); |
| 327 | + | let dest = mem.read(self.pc); |
| 328 | + | self.inc_pc(); |
| 329 | + | let src = mem.read(self.pc); |
| 330 | + | self.inc_pc(); |
| 334 | 331 | | |
| 335 | 332 | | let lhs = self.get_reg(dest); |
| 336 | 333 | | let rhs = self.get_reg(src); |
| 337 | 334 | | |
| 338 | 335 | | let result16 = (lhs as u16) * (rhs as u16); |
| 339 | | − | let result8 = (result16 & 0xFF) as u8; |
| 336 | + | let result8 = (result16 & 0xFF) as u8; |
| 340 | 337 | | |
| 341 | 338 | | self.set_reg(dest, result8); |
| 342 | 339 | | |
| 343 | | − | self.zero = result8 == 0; |
| 340 | + | self.zero = result8 == 0; |
| 344 | 341 | | self.carry = result16 > 0xFF; |
| 345 | 342 | | } |
| 346 | 343 | | |
| 347 | 344 | | pub fn div(&mut self, mem: &Memory) { |
| 348 | | − | let dest = mem.read(self.pc); self.inc_pc(); |
| 349 | | − | let src = mem.read(self.pc); self.inc_pc(); |
| 345 | + | let dest = mem.read(self.pc); |
| 346 | + | self.inc_pc(); |
| 347 | + | let src = mem.read(self.pc); |
| 348 | + | self.inc_pc(); |
| 350 | 349 | | |
| 351 | 350 | | let lhs = self.get_reg(dest); |
| 352 | 351 | | let rhs = self.get_reg(src); |
| @@ -365,16 +364,17 @@ impl CPU { |
| 365 | 364 | | // carry unchanged |
| 366 | 365 | | } |
| 367 | 366 | | |
| 368 | | − | pub fn call(&mut self, mem: &mut Memory ) { |
| 369 | | − | let low = mem.read(self.pc) as u16; self.inc_pc(); |
| 370 | | − | let high = mem.read(self.pc) as u16; self.inc_pc(); |
| 367 | + | pub fn call(&mut self, mem: &mut Memory) { |
| 368 | + | let low = mem.read(self.pc) as u16; |
| 369 | + | self.inc_pc(); |
| 370 | + | let high = mem.read(self.pc) as u16; |
| 371 | + | self.inc_pc(); |
| 371 | 372 | | let addr = (high << 8) | low; |
| 372 | 373 | | |
| 373 | 374 | | let return_addr = self.pc; |
| 374 | 375 | | |
| 375 | 376 | | self.push16(mem, return_addr); |
| 376 | 377 | | self.pc = addr; |
| 377 | | − | |
| 378 | 378 | | } |
| 379 | 379 | | |
| 380 | 380 | | pub fn ret(&mut self, mem: &mut Memory) { |
| @@ -382,7 +382,6 @@ impl CPU { |
| 382 | 382 | | self.pc = addr; |
| 383 | 383 | | } |
| 384 | 384 | | |
| 385 | | − | |
| 386 | 385 | | pub fn syscall(&mut self, mem: &Memory) { |
| 387 | 386 | | let num = mem.read(self.pc); |
| 388 | 387 | | self.pc = self.pc.wrapping_add(1); |
| @@ -422,5 +421,4 @@ impl CPU { |
| 422 | 421 | | _ => panic!("Invalid register"), |
| 423 | 422 | | } |
| 424 | 423 | | } |
| 425 | | − | |
| 426 | 424 | | } |