/// <summary> /// Main constructor /// </summary> public CPC464(AmstradCPC cpc, Z80A cpu, List <byte[]> files, bool autoTape, AmstradCPC.BorderType borderType) { CPC = cpc; CPU = cpu; FrameLength = 79872; CRCT = new CRCT_6845(CRCT_6845.CRCTType.MC6845, this); //CRT = new CRTDevice(this); GateArray = new AmstradGateArray(this, AmstradGateArray.GateArrayType.Amstrad40007); PPI = new PPI_8255(this); TapeBuzzer = new Beeper(this); TapeBuzzer.Init(44100, FrameLength); //AYDevice = new PSG(this, PSG.ay38910_type_t.AY38910_TYPE_8912, GateArray.PSGClockSpeed, 882 * 50); AYDevice = new AY38912(this); AYDevice.Init(44100, FrameLength); KeyboardDevice = new StandardKeyboard(this); TapeDevice = new DatacorderDevice(autoTape); TapeDevice.Init(this); InitializeMedia(files); }
public static CPCMachineMetaData GetMetaObject(MachineType type) { CPCMachineMetaData m = new CPCMachineMetaData(); m.MachineType = type; switch (type) { case MachineType.CPC464: m.Name = "Amstrad CPC 464"; m.Description = "The CPC 464 was the first personal home computer built by Amstrad in 1984. "; m.Description += "The 464 was popular with consumers for various reasons. Aside from the joystick port, the computer, keyboard, and tape deck were all combined into one unit."; m.Released = "1984"; m.CPU = "Zilog Z80A @ 4MHz"; m.Memory = "64KB RAM / 32KB ROM"; m.Video = "Amstrad Gate Array @ 16Mhz & CRCT @ 1Mhz"; m.Audio = "General Instruments AY-3-8912 PSG (3ch)"; m.Media = "Cassette Tape (via built-in Datacorder)"; break; case MachineType.CPC6128: m.Name = "Amstrad CPC 6128"; m.Description = "The CPC6128 features 128 KB RAM and an internal 3-inch floppy disk drive. "; m.Description += "Aside from various hardware and firmware improvements, one of the CPC6128's most prominent features is the compatibility with the CP/M+ operating system that rendered it attractive for business uses."; m.Released = "1985"; m.CPU = "Zilog Z80A @ 4MHz"; m.Memory = "64KB RAM / 32KB ROM"; m.Video = "Amstrad Gate Array @ 16Mhz & CRCT @ 1Mhz"; m.Audio = "General Instruments AY-3-8912 PSG (3ch)"; m.Media = "3\" Floppy Disk (via built-in Floppy Drive) & Cassette Tape (via external cassette player)"; break; } m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Name), m.Name.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Description), m.Description.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Released), m.Released.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.CPU), m.CPU.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Memory), m.Memory.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Video), m.Video.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Audio), m.Audio.Trim()); m.Data.Add(AmstradCPC.GetMemberName((CPCMachineMetaData c) => c.Media), m.Media.Trim()); return(m); }