From 9b399811c07cc2ab881abacf6ca35107fc6bc658 Mon Sep 17 00:00:00 2001 From: Uri Shaked Date: Mon, 25 Nov 2019 22:03:40 +0200 Subject: feat: GPIO peripheral implementation Add new AVRIOPort class, implements GPIO output logic --- src/cpu.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/cpu.ts') diff --git a/src/cpu.ts b/src/cpu.ts index 7eff3b3..7fc3ba0 100644 --- a/src/cpu.ts +++ b/src/cpu.ts @@ -19,7 +19,7 @@ export interface ICPU { writeData(addr: u16, value: u8): void; } -export type ICPUMemoryHook = (value: u8, oldValue: u8, addr: u16) => void; +export type ICPUMemoryHook = (value: u8, oldValue: u8, addr: u16) => boolean | void; export interface ICPUMemoryHooks { [key: number]: ICPUMemoryHook; } @@ -43,7 +43,9 @@ export class CPU implements ICPU { writeData(addr: number, value: number) { const hook = this.writeHooks[addr]; if (hook) { - hook(value, this.data[addr], addr); + if (hook(value, this.data[addr], addr)) { + return; + } } this.data[addr] = value; } -- cgit v1.2.3