/// <summary> /// Sets up the annotations for the current machine. /// </summary> public void SetupMachineAnnotations() { // --- Read ROM annotations var spectrumVm = Parent.SpectrumVm; RomPageAnnotations = new Dictionary <int, DisassemblyAnnotation>(); RomAnnotationFiles = new Dictionary <int, string>(); var romConfig = spectrumVm.RomConfiguration; var roms = romConfig.NumberOfRoms; for (var i = 0; i < roms; i++) { var annFile = spectrumVm.RomProvider.GetAnnotationResourceName(romConfig.RomName, roms == 1 ? -1 : i); var annData = spectrumVm.RomProvider.LoadRomAnnotations(romConfig.RomName, roms == 1 ? -1 : i); DisassemblyAnnotation.Deserialize(annData, out var annotation); RomPageAnnotations.Add(i, annotation); RomAnnotationFiles.Add(i, annFile); } // --- Read the initial RAM annotations RamBankAnnotations = new Dictionary <int, DisassemblyAnnotation>(); SpectNetPackage.Default.CodeManager.AnnotationFileChanged += OnAnnotationFileChanged; OnAnnotationFileChanged(null, EventArgs.Empty); // --- Register Disassembly providers to use if (RomPageAnnotations.TryGetValue(romConfig.Spectrum48RomIndex, out var spectrumRomAnn)) { Z80Disassembler.SetProvider <ISpectrum48RomLabelProvider>( new Spectrum48RomLabelProvider(spectrumRomAnn)); } }