rl02/rk05 is now instantiated without any disks

This commit is contained in:
folkert van heusden 2024-04-27 23:55:44 +02:00
parent 183330d6c3
commit 12a2e88680
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
6 changed files with 11 additions and 18 deletions

View file

@ -73,9 +73,6 @@ std::atomic_bool *running { nullptr };
bool trace_output { false };
std::vector<disk_backend *> rk05_files;
std::vector<disk_backend *> rl02_files;
void console_thread_wrapper_panel(void *const c)
{
console *const cnsl = reinterpret_cast<console *>(c);
@ -312,9 +309,9 @@ void setup() {
running = cnsl->get_running_flag();
Serial.println(F("Connect RK05 and RL02 to BUS"));
b->add_rk05(new rk05(rk05_files, b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
b->add_rk05(new rk05(b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
b->add_rl02(new rl02(rl02_files, b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
b->add_rl02(new rl02(b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
Serial.println(F("Init TTY"));
tty_ = new tty(cnsl, b);

View file

@ -534,9 +534,9 @@ int main(int argc, char *argv[])
if (enable_bootloader)
set_boot_loader(b, bootloader);
b->add_rk05(new rk05(rk05_files, b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
b->add_rk05(new rk05(b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
b->add_rl02(new rl02(rl02_files, b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
b->add_rl02(new rl02(b, cnsl->get_disk_read_activity_flag(), cnsl->get_disk_write_activity_flag()));
}
else {
FILE *fh = fopen(deserialize.c_str(), "r");

View file

@ -23,13 +23,11 @@ static const char * const regnames[] = {
"RK05_DATABUF "
};
rk05::rk05(const std::vector<disk_backend *> & files, bus *const b, std::atomic_bool *const disk_read_acitivity, std::atomic_bool *const disk_write_acitivity) :
rk05::rk05(bus *const b, std::atomic_bool *const disk_read_acitivity, std::atomic_bool *const disk_write_acitivity) :
b(b),
disk_read_acitivity(disk_read_acitivity),
disk_write_acitivity(disk_write_acitivity)
{
fhs = files;
reset();
}

2
rk05.h
View file

@ -39,7 +39,7 @@ private:
void update_bus_address(const uint16_t v);
public:
rk05(const std::vector<disk_backend *> & files, bus *const b, std::atomic_bool *const disk_read_acitivity, std::atomic_bool *const disk_write_acitivity);
rk05(bus *const b, std::atomic_bool *const disk_read_acitivity, std::atomic_bool *const disk_write_acitivity);
virtual ~rk05();
void reset() override;

View file

@ -31,13 +31,11 @@ static const char * const commands[] = {
"read data w/o header check"
};
rl02::rl02(const std::vector<disk_backend *> & files, bus *const b, std::atomic_bool *const disk_read_activity, std::atomic_bool *const disk_write_activity) :
rl02::rl02(bus *const b, std::atomic_bool *const disk_read_activity, std::atomic_bool *const disk_write_activity) :
b(b),
disk_read_activity (disk_read_activity ),
disk_write_activity(disk_write_activity)
{
fhs = files;
reset();
}
@ -86,11 +84,11 @@ rl02 *rl02::deserialize(const json_t *const j, bus *const b)
{
std::vector<disk_backend *> backends;
rl02 *r = new rl02(b, nullptr, nullptr);
json_t *j_backends = json_object_get(j, "backends");
for(size_t i=0; i<json_array_size(j_backends); i++)
backends.push_back(disk_backend::deserialize(json_array_get(j_backends, i)));
rl02 *r = new rl02(backends, b, nullptr, nullptr);
r->access_disk_backends()->push_back(disk_backend::deserialize(json_array_get(j_backends, i)));
for(int regnr=0; regnr<4; regnr++)
r->registers[regnr] = json_integer_value(json_object_get(j, format("register-%d", regnr).c_str()));

2
rl02.h
View file

@ -47,7 +47,7 @@ private:
uint32_t calc_offset() const;
public:
rl02(const std::vector<disk_backend *> & files, bus *const b, std::atomic_bool *const disk_read_activity, std::atomic_bool *const disk_write_activity);
rl02(bus *const b, std::atomic_bool *const disk_read_activity, std::atomic_bool *const disk_write_activity);
virtual ~rl02();
void reset() override;