This commit is contained in:
folkert van heusden 2024-05-14 08:14:41 +02:00
parent 6a192436f4
commit cc99ce6e19
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
4 changed files with 11 additions and 14 deletions

10
bus.cpp
View file

@ -81,21 +81,21 @@ bus *bus::deserialize(const JsonDocument j, console *const cnsl, std::atomic_uin
memory *m = nullptr; memory *m = nullptr;
if (j.containsKey("memory")) { if (j.containsKey("memory")) {
m = memory::deserialize(j["memory"]); m = memory::deserialize(j["memory"].as<JsonDocument>());
b->add_ram(m); b->add_ram(m);
} }
if (j.containsKey("kw11-l")) 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<JsonDocument>(), b, cnsl));
if (j.containsKey("tty")) if (j.containsKey("tty"))
b->add_tty(tty::deserialize(j["tty"], b, cnsl)); b->add_tty(tty::deserialize(j["tty"].as<JsonDocument>(), b, cnsl));
if (j.containsKey("mmu")) if (j.containsKey("mmu"))
b->add_mmu(mmu::deserialize(j["mmu"], m)); b->add_mmu(mmu::deserialize(j["mmu"].as<JsonDocument>(), m));
if (j.containsKey("cpu")) if (j.containsKey("cpu"))
b->add_cpu(cpu::deserialize(j["cpu"], b, event)); b->add_cpu(cpu::deserialize(j["cpu"].as<JsonDocument>(), b, event));
if (j.containsKey("rl02")) if (j.containsKey("rl02"))
b->add_rl02(rl02::deserialize(j["rl02"], b)); b->add_rl02(rl02::deserialize(j["rl02"], b));

View file

@ -54,7 +54,7 @@ JsonDocument memory::serialize() const
return j; return j;
} }
memory *memory::deserialize(const json_t *const j) memory *memory::deserialize(const JsonDocument j)
{ {
size_t size = j["size"]; size_t size = j["size"];
memory *m = new memory(size); memory *m = new memory(size);

View file

@ -72,8 +72,7 @@ void rl02::show_state(console *const cnsl) const
cnsl->put_string_lf(format("sector: %d", sector)); cnsl->put_string_lf(format("sector: %d", sector));
} }
#if IS_POSIX JsonDocument rl02::serialize() const
json_t *rl02::serialize() const
{ {
json_t *j = json_object(); json_t *j = json_object();
@ -96,7 +95,7 @@ json_t *rl02::serialize() const
return j; return j;
} }
rl02 *rl02::deserialize(const json_t *const j, bus *const b) rl02 *rl02::deserialize(const JsonDocument j, bus *const b)
{ {
std::vector<disk_backend *> backends; std::vector<disk_backend *> backends;
@ -119,7 +118,6 @@ rl02 *rl02::deserialize(const json_t *const j, bus *const b)
return r; return r;
} }
#endif
uint8_t rl02::read_byte(const uint16_t addr) uint8_t rl02::read_byte(const uint16_t addr)
{ {

7
rl02.h
View file

@ -3,6 +3,7 @@
#pragma once #pragma once
#include <ArduinoJson.h>
#include <atomic> #include <atomic>
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
@ -55,10 +56,8 @@ public:
void show_state(console *const cnsl) const override; void show_state(console *const cnsl) const override;
#if IS_POSIX JsonDocument serialize() const;
json_t *serialize() const; static rl02 *deserialize(const JsonDocument j, bus *const b);
static rl02 *deserialize(const json_t *const j, bus *const b);
#endif
uint8_t read_byte(const uint16_t addr) override; uint8_t read_byte(const uint16_t addr) override;
uint16_t read_word(const uint16_t addr) override; uint16_t read_word(const uint16_t addr) override;