private Program LoadImage(Address addrPreferred, D64FileEntry selectedFile) { byte[] imageBytes = selectedFile.GetBytes(); switch (selectedFile.FileType & FileType.FileTypeMask) { case FileType.PRG: return LoadPrg(imageBytes); case FileType.SEQ: var image = new LoadedImage(addrPreferred, imageBytes); var arch = new Mos6502ProcessorArchitecture(); return new Program( image, image.CreateImageMap(), arch, new DefaultPlatform(Services, arch)); default: throw new NotImplementedException(); } }
public override Program Load(Address addrLoad) { List<ArchiveDirectoryEntry> entries = LoadDiskDirectory(); IArchiveBrowserService abSvc = Services.GetService<IArchiveBrowserService>(); if (abSvc != null) { var selectedFile = abSvc.UserSelectFileFromArchive(entries) as D64FileEntry; if (selectedFile != null) { this.program = LoadImage(addrLoad, selectedFile); return program; } } var arch = new Mos6502ProcessorArchitecture(); var image = new LoadedImage(Address.Ptr16(0), RawImage); return new Program { Image = image, ImageMap = image.CreateImageMap(), Architecture = arch, Platform = new DefaultPlatform(Services, arch) }; }
public C64Platform(IServiceProvider services, Mos6502ProcessorArchitecture arch) : base(services, arch, "c64") { this.arch = arch; }
public Mos6502ProcessorState(Mos6502ProcessorArchitecture arch) { this.arch = arch; this.regs = new byte[4]; this.valid = new bool[4]; }