public Machine(byte[] appleIIe, byte[] diskIIRom) { Events = new MachineEvents(); Cpu = new Cpu(this); Memory = new Memory(this, appleIIe); Keyboard = new Keyboard(this); GamePort = new GamePort(this); Cassette = new Cassette(this); Speaker = new Speaker(this); Video = new Video(this); NoSlotClock = new NoSlotClock(this); var emptySlot = new PeripheralCard(this); Slot1 = emptySlot; Slot2 = emptySlot; Slot3 = emptySlot; Slot4 = emptySlot; Slot5 = emptySlot; Slot6 = new DiskIIController(this, diskIIRom); Slot7 = emptySlot; Slots = new List<PeripheralCard> { null, Slot1, Slot2, Slot3, Slot4, Slot5, Slot6, Slot7 }; Components = new List<MachineComponent> { Cpu, Memory, Keyboard, GamePort, Cassette, Speaker, Video, NoSlotClock, Slot1, Slot2, Slot3, Slot4, Slot5, Slot6, Slot7 }; BootDiskII = Slots.OfType<DiskIIController>().Last(); }