FDC changes :

- Seperated disk and disk drive emulation
- Support more drive types - 5.25" dual RPM, 3.5" DD, 3.5" HD, 3.5" HD 3-Mode
- Support drive swapping (FDC37c665 only)
- Support FDC FIFO
- Support other FDC 'enhanced mode' behaviour
- Support IBM XDF format images
- Formatting now formats both tracks, and uses correct 'fill' byte
- Various other improvements

Many of these changes provided by Battler
This commit is contained in:
TomW 2015-12-12 16:31:08 +00:00
commit eebdc165b2
16 changed files with 1530 additions and 340 deletions

View file

@ -1,6 +1,7 @@
#include "ibm.h"
#include "fdc.h"
#include "fdd.h"
#include "io.h"
#include "lpt.h"
#include "serial.h"
@ -109,6 +110,11 @@ void fdc37c665_write(uint16_t port, uint8_t val, void *priv)
lpt1_init(0x278);
break;
}
fdc_update_enh_mode((fdc37c665_regs[3] & 2) ? 1 : 0);
fdc_update_densel_force((fdc37c665_regs[5] & 0x18) >> 3);
fdd_swap = ((fdc37c665_regs[5] & 0x20) >> 5);
}
}
else
@ -133,6 +139,8 @@ void fdc37c665_init()
{
io_sethandler(0x03f0, 0x0002, fdc37c665_read, NULL, NULL, fdc37c665_write, NULL, NULL, NULL);
fdc_update_is_nsc(0);
fdc37c665_lock[0] = fdc37c665_lock[1] = 0;
fdc37c665_regs[0x0] = 0x3b;
fdc37c665_regs[0x1] = 0x9f;
@ -150,4 +158,8 @@ void fdc37c665_init()
fdc37c665_regs[0xd] = 0x65;
fdc37c665_regs[0xe] = 0x01;
fdc37c665_regs[0xf] = 0x00;
fdc_update_densel_polarity(1);
fdc_update_densel_force(0);
fdd_swap = 0;
}