/// <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);
        }
Example #2
0
            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);
            }