}
}
}
- } else if (currprefs.cs_memorypatternfill) {
+ } else if (currprefs.cs_memorypatternfill && !currprefs.cs_dipagnus) {
// OCS Agnus has swapped row and column compared to ECS and AGA.
uae_u16 fillval = 0;
for (int fillbank = 0; fillbank < ab->allocated_size / 256; fillbank++) {
*((uae_u16 *)(ab->baseaddr + fillbank * 256 + fillrow)) = fillval;
}
}
+ } else if (currprefs.cs_memorypatternfill) {
+ // A1000
+ uae_u16 fillval = 0;
+ for (int fillbank = 0; fillbank < ab->allocated_size / 512; fillbank++) {
+ fillval = ~fillval;
+ for (int fillrow = 0; fillrow < 512; fillrow += 2) {
+ // Chip emulated: Generic 4256. 16 * 512x1.
+ *((uae_u16 *)(ab->baseaddr + fillbank * 512 + fillrow)) = fillval;
+ if (((fillrow >> 1) & 15) == 15) {
+ fillval = ~fillval;
+ }
+ }
+ }
} else {
memset(ab->baseaddr, 0, ab->allocated_size);
}