示例#1
0
 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();
     }
 }
示例#2
0
 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)
     };
 }
示例#3
0
 public C64Platform(IServiceProvider services, Mos6502ProcessorArchitecture arch)
     : base(services, arch)
 {
     this.arch = arch;
 }
示例#4
0
 public C64Platform(IServiceProvider services, Mos6502ProcessorArchitecture arch)
     : base(services, arch, "c64")
 {
     this.arch = arch;
 }
示例#5
0
 public Mos6502ProcessorState(Mos6502ProcessorArchitecture arch)
 {
     this.arch = arch;
     this.regs = new byte[4];
     this.valid = new bool[4];
 }