Skip to content

Commit 3e1a3a0

Browse files
committed
Add support for custom peripherals bus (UserBus)
1 parent 2b0d56b commit 3e1a3a0

2 files changed

Lines changed: 15 additions & 3 deletions

File tree

src/bus.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "sio2.h"
1111
#include "speaker.h"
1212
#include "timer.h"
13+
#include "ubus.h"
1314
#include "upd8255.h"
1415
#include "video.h"
1516

@@ -120,7 +121,7 @@ uint8_t bus_io_in(ceda_ioaddr_t address) {
120121
}
121122
}
122123

123-
return 0;
124+
return ubus_io_in(address);
124125
}
125126

126127
void bus_io_out(ceda_ioaddr_t _address, uint8_t value) {
@@ -136,6 +137,8 @@ void bus_io_out(ceda_ioaddr_t _address, uint8_t value) {
136137
}
137138
}
138139
}
140+
141+
ubus_io_out(address, value);
139142
}
140143

141144
void bus_init(CEDAModule *mod) {

src/ceda.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "ceda.h"
22

3+
// computer core
34
#include "bios.h"
45
#include "bus.h"
56
#include "cli.h"
@@ -14,9 +15,13 @@
1415
#include "serial.h"
1516
#include "sio2.h"
1617
#include "speaker.h"
18+
#include "ubus.h"
1719
#include "upd8255.h"
1820
#include "video.h"
1921

22+
// user peripherals
23+
#include "charmon.h"
24+
2025
#include <assert.h>
2126
#include <unistd.h>
2227

@@ -32,10 +37,12 @@ static CEDAModule mod_speaker;
3237
static CEDAModule mod_sio2;
3338
static CEDAModule mod_int;
3439
static CEDAModule mod_serial;
40+
static CEDAModule mod_ubus;
41+
static CEDAModule mod_charmon;
3542

3643
static CEDAModule *modules[] = {
37-
&mod_bios, &mod_cli, &mod_gui, &mod_bus, &mod_cpu,
38-
&mod_video, &mod_speaker, &mod_int, &mod_serial, &mod_sio2,
44+
&mod_bios, &mod_cli, &mod_gui, &mod_bus, &mod_cpu, &mod_video,
45+
&mod_speaker, &mod_int, &mod_serial, &mod_sio2, &mod_ubus, &mod_charmon,
3946
};
4047

4148
void ceda_init(void) {
@@ -48,6 +55,8 @@ void ceda_init(void) {
4855
rom_bios_init(&mod_bios);
4956
video_init(&mod_video);
5057
speaker_init(&mod_speaker);
58+
ubus_init(&mod_ubus);
59+
charmon_init(&mod_charmon);
5160
bus_init(&mod_bus);
5261
cpu_init(&mod_cpu);
5362
int_init(&mod_int);

0 commit comments

Comments
 (0)