Mon, 13 Dec 2010 03:00:43 +0000
disable floppy interrupts (to CPU), force HDD int flag on (i.e. command always complete)
src/main.c | file | annotate | diff | revisions | |
src/memory.c | file | annotate | diff | revisions |
1.1 --- a/src/main.c Sun Dec 12 23:47:35 2010 +0000 1.2 +++ b/src/main.c Mon Dec 13 03:00:43 2010 +0000 1.3 @@ -262,18 +262,19 @@ 1.4 // Turn off DMA engine if we finished this cycle 1.5 if (state.dma_count >= 0x4000) { 1.6 printf("\tDMATRAN: transfer complete! dmaa=%06X, dmac=%04X\n", state.dma_address, state.dma_count); 1.7 - state.dma_count = 0; 1.8 + // apparently this isn't required...? 1.9 +// state.dma_count = 0; 1.10 state.dmaen = false; 1.11 } 1.12 } 1.13 1.14 - // Any interrupts? 1.15 - if (wd2797_get_irq(&state.fdc_ctx)) { 1.16 + // Any interrupts? --> TODO: masking 1.17 +/* if (wd2797_get_irq(&state.fdc_ctx)) { 1.18 m68k_set_irq(2); 1.19 } else { 1.20 m68k_set_irq(0); 1.21 } 1.22 - 1.23 +*/ 1.24 // Is it time to run the 60Hz periodic interrupt yet? 1.25 if (clock_cycles > CLOCKS_PER_60HZ) { 1.26 // Refresh the screen
2.1 --- a/src/memory.c Sun Dec 12 23:47:35 2010 +0000 2.2 +++ b/src/memory.c Mon Dec 13 03:00:43 2010 +0000 2.3 @@ -596,6 +596,7 @@ 2.4 if (address & 1) { 2.5 data = 0x12; // no parity error, no line printer error, no irqs from FDD or HDD 2.6 data |= (state.fdc_ctx.irql) ? 0x08 : 0; // FIXME! HACKHACKHACK! shouldn't peek inside FDC structs like this 2.7 + data |= 0x04; // HDD interrupt, i.e. command complete -- HACKHACKHACK! 2.8 } else { 2.9 data = 0; 2.10 }