From cc99ce6e19b3ce85446b0fc8bef93f1f33ae1c99 Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Tue, 14 May 2024 08:14:41 +0200 Subject: [PATCH] wip --- bus.cpp | 10 +++++----- memory.cpp | 2 +- rl02.cpp | 6 ++---- rl02.h | 7 +++---- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/bus.cpp b/bus.cpp index a8e3d53..57db5e5 100644 --- a/bus.cpp +++ b/bus.cpp @@ -81,21 +81,21 @@ bus *bus::deserialize(const JsonDocument j, console *const cnsl, std::atomic_uin memory *m = nullptr; if (j.containsKey("memory")) { - m = memory::deserialize(j["memory"]); + m = memory::deserialize(j["memory"].as()); b->add_ram(m); } if (j.containsKey("kw11-l")) - b->add_KW11_L(kw11_l::deserialize(j["kw11-l"], b, cnsl)); + b->add_KW11_L(kw11_l::deserialize(j["kw11-l"].as(), b, cnsl)); if (j.containsKey("tty")) - b->add_tty(tty::deserialize(j["tty"], b, cnsl)); + b->add_tty(tty::deserialize(j["tty"].as(), b, cnsl)); if (j.containsKey("mmu")) - b->add_mmu(mmu::deserialize(j["mmu"], m)); + b->add_mmu(mmu::deserialize(j["mmu"].as(), m)); if (j.containsKey("cpu")) - b->add_cpu(cpu::deserialize(j["cpu"], b, event)); + b->add_cpu(cpu::deserialize(j["cpu"].as(), b, event)); if (j.containsKey("rl02")) b->add_rl02(rl02::deserialize(j["rl02"], b)); diff --git a/memory.cpp b/memory.cpp index 8dfda75..77e1fc7 100644 --- a/memory.cpp +++ b/memory.cpp @@ -54,7 +54,7 @@ JsonDocument memory::serialize() const return j; } -memory *memory::deserialize(const json_t *const j) +memory *memory::deserialize(const JsonDocument j) { size_t size = j["size"]; memory *m = new memory(size); diff --git a/rl02.cpp b/rl02.cpp index 237e743..f13eb09 100644 --- a/rl02.cpp +++ b/rl02.cpp @@ -72,8 +72,7 @@ void rl02::show_state(console *const cnsl) const cnsl->put_string_lf(format("sector: %d", sector)); } -#if IS_POSIX -json_t *rl02::serialize() const +JsonDocument rl02::serialize() const { json_t *j = json_object(); @@ -96,7 +95,7 @@ json_t *rl02::serialize() const return j; } -rl02 *rl02::deserialize(const json_t *const j, bus *const b) +rl02 *rl02::deserialize(const JsonDocument j, bus *const b) { std::vector backends; @@ -119,7 +118,6 @@ rl02 *rl02::deserialize(const json_t *const j, bus *const b) return r; } -#endif uint8_t rl02::read_byte(const uint16_t addr) { diff --git a/rl02.h b/rl02.h index 78ee4e9..b9b27e0 100644 --- a/rl02.h +++ b/rl02.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include #include @@ -55,10 +56,8 @@ public: void show_state(console *const cnsl) const override; -#if IS_POSIX - json_t *serialize() const; - static rl02 *deserialize(const json_t *const j, bus *const b); -#endif + JsonDocument serialize() const; + static rl02 *deserialize(const JsonDocument j, bus *const b); uint8_t read_byte(const uint16_t addr) override; uint16_t read_word(const uint16_t addr) override;