Remove circular dependencies between libs, use callback function pointers instead
[mercenary-reloaded.git] / src / libdisk / disk.c
index e9126d4..ba34192 100644 (file)
@@ -35,9 +35,17 @@ static uint16_t ciabprb = 0xffff;
 static int track = 0;
 static uint32_t dskptr = 0;
 static uint16_t dsklen = 0;
+static void (*disk_read)(int track, int side, uint32_t data, uint16_t length) = NULL;
+static void (*disk_write)(int track, int side, uint32_t data, uint16_t length) = NULL;
 
 /* NOTE: all CIA access is WORD access, so we use bits 8..15 for CIA-B */
 
+void disk_init(void (*_disk_read)(int track, int side, uint32_t data, uint16_t length), void (*_disk_write)(int track, int side, uint32_t data, uint16_t length))
+{
+       disk_read = _disk_read;
+       disk_write = _disk_write;
+}
+
 uint16_t emulate_disk_read(uint32_t address)
 {
        uint16_t value = 0xffff;