diff options
Diffstat (limited to 'src/pico1541.c')
-rw-r--r-- | src/pico1541.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/pico1541.c b/src/pico1541.c index 3489fee..fec76a3 100644 --- a/src/pico1541.c +++ b/src/pico1541.c @@ -18,7 +18,7 @@ const uint8_t DEVICE = 8; static uint8_t ram[2048]; extern uint8_t _binary__Users_max_Documents_c64_roms_dos1541_start[16384]; // extern uint8_t _binary__Users_max_Downloads_blackbird_1_2_Blackbird_1_2_d64_start[174848]; -extern uint8_t _binary__Users_max_Downloads_Bloodsuckers_StillRising_BSK_StillRising_disk1_d64_start[174848]; +extern uint8_t _binary__Users_max_Downloads_MementoMori_GP_MementoMori_GP_Disk1_d64_start[174848]; uint32_t ts; cpu_t cpu; @@ -138,14 +138,11 @@ void atn_irq_callback(uint pin, uint32_t flags) { void drive_thread() { drive_init(&drive); - drive.image = _binary__Users_max_Downloads_Bloodsuckers_StillRising_BSK_StillRising_disk1_d64_start; + drive.image = _binary__Users_max_Downloads_MementoMori_GP_MementoMori_GP_Disk1_d64_start; multicore_fifo_push_blocking(1); - while (true) { - uint32_t cycles = multicore_fifo_pop_blocking_inline(); - if (drive_cycle(&drive, cycles, true) && (via2.pcr & 0b1110) == 0b1110) { - cpu.flags |= 1 << FLAG_V_BIT; - } + while (multicore_fifo_pop_blocking_inline()) { + drive_cycle(&drive); } } @@ -192,7 +189,10 @@ int main() { } uint8_t cycles = cpu_step(&cpu); - multicore_fifo_push_blocking_inline((uint32_t)cycles); + if (drive_advance(&drive, cycles) && (via2.pcr & 0b1110) == 0b1110) { + cpu.flags |= 1 << FLAG_V_BIT; + } + multicore_fifo_push_blocking_inline(1); via_cycle(&via1, cycles); via_cycle(&via2, cycles); |