26 static const int DRIVE_A_MOTOR = 0x01;
27 static const int DRIVE_B_MOTOR = 0x02;
28 static const int DRIVE_SELECT = 0x04;
29 static const int SIDE_SELECT = 0x08;
30 static const int DRIVE_DISABLE = 0x10;
31 static const int DATA_REQUEST = 0x40;
32 static const int INTR_REQUEST = 0x80;
47 writeMem(0x7FFC, DRIVE_DISABLE, time);
67 value = driveControls;
68 if (
controller->getIRQ(time)) value |= INTR_REQUEST;
69 if (
controller->getDTRQ(time)) value |= DATA_REQUEST;
96 value = driveControls;
97 if (
controller->peekIRQ(time)) value |= INTR_REQUEST;
98 if (
controller->peekDTRQ(time)) value |= DATA_REQUEST;
102 if ((0x4000 <= address) && (address < 0x8000)) {
116 if ((start & CacheLine::HIGH) == (0x7FF8 & CacheLine::HIGH)) {
119 }
else if ((0x4000 <= start) && (start < 0x8000)) {
145 if ((value & DRIVE_DISABLE) != 0) {
154 driveControls = value & (DRIVE_A_MOTOR | DRIVE_B_MOTOR | DRIVE_SELECT | SIDE_SELECT | DRIVE_DISABLE);
161 if ((address & CacheLine::HIGH) == (0x7FF8 & CacheLine::HIGH)) {
170 template<
typename Archive>
173 ar.template serializeBase<WD2793BasedFDC>(*this);
174 ar.serialize(
"driveControls", driveControls);