From 5bc85ec07ac00013de4681cb5d268e4567709be0 Mon Sep 17 00:00:00 2001 From: Uri Shaked Date: Tue, 7 Sep 2021 00:42:42 +0300 Subject: fix(gpio): CBI/SBI handling in writes to PIN register #103 fix #103 --- src/cpu/cpu.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/cpu/cpu.ts') diff --git a/src/cpu/cpu.ts b/src/cpu/cpu.ts index 096d9eb..de5b294 100644 --- a/src/cpu/cpu.ts +++ b/src/cpu/cpu.ts @@ -34,10 +34,10 @@ export interface ICPU { cycles: number; readData(addr: u16): u8; - writeData(addr: u16, value: u8): void; + writeData(addr: u16, value: u8, mask?: u8): void; } -export type CPUMemoryHook = (value: u8, oldValue: u8, addr: u16) => boolean | void; +export type CPUMemoryHook = (value: u8, oldValue: u8, addr: u16, mask: u8) => boolean | void; export interface CPUMemoryHooks { [key: number]: CPUMemoryHook; } @@ -102,10 +102,10 @@ export class CPU implements ICPU { return this.data[addr]; } - writeData(addr: number, value: number) { + writeData(addr: number, value: number, mask = 0xff) { const hook = this.writeHooks[addr]; if (hook) { - if (hook(value, this.data[addr], addr)) { + if (hook(value, this.data[addr], addr, mask)) { return; } } -- cgit v1.2.3