public SoundBoard(WpcCpuBoard.InitObject initObject) { bool isPreDcsSoundBoard = initObject.romObject?.preDcsSoundboard == true; soundSerialInterface = SoundSerialInterface.getInstance(isPreDcsSoundBoard); readDataBytes = 0; writeDataBytes = 0; readControlBytes = 0; writeControlBytes = 0; resetCount = 0; }
public CpuBoardAsic(WpcCpuBoard.InitObject initObject) { foreach (var fieldInfo in typeof(OP).GetFields()) { object value = fieldInfo.GetValue(null); if (value is ushort) { if (!REVERSEOP.ContainsKey((ushort)value)) { REVERSEOP.Add((ushort)value, fieldInfo.Name); } } } interruptCallback = initObject.interruptCallback; pageMask = PAGESIZE_MAP[initObject.romSizeMBit]; //if (pageMask == 0) //{ // throw new Exception("PAGEMASK_EMPTY"); //} Debug.Print("pageMask calculated pageMask: {0}, romSizeMBit: {1}", pageMask, initObject.romSizeMBit); ram = initObject.ram; hardwareHasSecurityPic = initObject.romObject != null && initObject.romObject?.hasSecurityPic == true; inputSwitchMatrix = InputSwitchMatrix.getInstance(); outputLampMatrix = OutputLampMatrix.getInstance(Timing.CALL_UPDATELAMP_AFTER_TICKS); outputSolenoidMatrix = OutputSolenoidMatrix.getInstance(Timing.CALL_UPDATESOLENOID_AFTER_TICKS); bool isWpc95 = initObject.romObject != null && initObject.romObject?.wpc95 == true; outputGeneralIllumination = OutputGeneralIllumination.getInstance(isWpc95); securityPic = SecurityPic.getInstance(); periodicIRQTimerEnabled = true; romBank = 0; diagnosticLedToggleCount = 0; oldDiagnostigLedState = 0; _firqSourceDmd = false; irqCountGI = 0; zeroCrossFlag = 0; ticksZeroCross = 0; memoryProtectionMask = null; midnightMadnessMode = new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds(); midnightModeEnabled = false; blankSignalHigh = true; watchdogTicks = 0; watchdogExpiredCounter = 0; dipSwitchSetting = DipSwitchCountry.USA; }
public DisplayBoard(WpcCpuBoard.InitObject initObject) { foreach (var fieldInfo in typeof(OP).GetFields()) { object value = fieldInfo.GetValue(null); if (value is ushort) { if (!REVERSEOP.ContainsKey((ushort)value)) { REVERSEOP.Add((ushort)value, fieldInfo.Name); } } } interruptCallback = initObject.interruptCallback; ram = initObject.ram; hasAlphanumericDisplay = initObject.hasAlphanumericDisplay; outputDmdDisplay = OutputDmdDisplay.getInstance(DMD_PAGE_SIZE); outputAlphaDisplay = OutputAlphaDisplay.getInstance(DMD_PAGE_SIZE); }
public static CpuBoardAsic getInstance(WpcCpuBoard.InitObject initObject) { return(new CpuBoardAsic(initObject)); }
public static DisplayBoard getInstance(WpcCpuBoard.InitObject initObject) { return(new DisplayBoard(initObject)); }
/** * Create a new instance of the sound board, compatible with preDCS, DCS and WPC-95 Sound Boards * @function * @param {Object} initObject JSON Configuration Object * @param {Array} initObject.romObject.preDcsSoundboard preDCS boards use 8bit to communicate with the CPU board, DCS and later use 16 bit * @return {SoundBoard} instance */ public static SoundBoard getInstance(WpcCpuBoard.InitObject initObject) { return(new SoundBoard(initObject)); }