diff --git a/machines/machinegossamer.cpp b/machines/machinegossamer.cpp index 7c7cac5..569f679 100644 --- a/machines/machinegossamer.cpp +++ b/machines/machinegossamer.cpp @@ -39,9 +39,40 @@ along with this program. If not, see . #include #include +#include #include #include +// Bit definitions for the Gossamer system register at 0xFF000004 +enum : uint16_t { + FDC_TYPE_SWIM3 = (1 << 15), // Macintosh style floppy disk controller + FDC_TYPE_MFDC = (0 << 15), // PC style floppy disk controller + BURST_ROM_FALSE = (1 << 14), // burst ROM not present + BURST_ROM_TRUE = (0 << 14), // burst ROM present + PCI_C_PRSNT_POS = 12, // PRSNT bits for the PCI Slot C + PCI_B_PRSNT_POS = 10, // PRSNT bits for the PCI Slot B + PCI_A_PRSNT_POS = 8, // PRSNT bits for the PCI Slot A + PCM_PID_POS = 5, // Processor und Cache module ID + PCM_PID_MASK = 0xE0, + AIO_PRSNT_FALSE = (1 << 4), // Whisper/Wings style card in the PERCH slot + AIO_PRSNT_TRUE = (0 << 4), // All-in-one style card in the PERCH slot + BUS_SPEED_POS = 1, // bus speed code, see below + BUS_SPEED_MASK = 0x0E, + UNKNOWN_BIT_0 = 1 // Don't know what this bit is for +}; + +// Gossamer bus speed frequency codes +enum : uint8_t { + BUS_FREQ_75P00A = 0, // 75.00 MHz + BUS_FREQ_70P00 = 1, // 70.00 MHz + BUS_FREQ_78P75 = 2, // 78.75 MHz + BUS_FREQ_TRI = 3, // clock output tristated + BUS_FREQ_75P00B = 4, // 75.00 MHz + BUS_FREQ_60P00 = 5, // 60.00 MHz + BUS_FREQ_66P82 = 6, // 66.82 MHz + BUS_FREQ_83P00 = 7, // 83.00 MHz +}; + // EEPROM ID content for a Whisper personality card. const uint8_t WhisperID[16] = { 0x0F, 0xAA, 0x55, 0xAA, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x00,