public void renderChars(int dataPtr) { m_wb = new WriteableBitmap(8 * 40, 8 * 25, 96, 96, PixelFormats.Bgra32, BitmapPalettes.WebPalette); int charCol = 1; // spriteCol.SelectedIndex; for (int y = 0; y < 25; ++y) { for (int x = 0; x < 40; ++x) { VICIIRenderer.renderChar(dataPtr, x, y, false, charCol, m_backgroundColour, m_mulCol0, m_mulCol1, m_wb); dataPtr += 8; } //x } // y canvas.Source = m_wb; }
private void renderScreen() { C64RAM ram = C64RAM.getInstace(); byte[] RAM = ram.getRAM(); m_wb = new WriteableBitmap(320, 200, 96, 96, PixelFormats.Bgra32, BitmapPalettes.WebPalette); for (int y = 0; y < 25; ++y) { int rowPtr = m_screenAddress + (y * 40); for (int x = 0; x < 40; ++x) { byte c = RAM[rowPtr + x]; int charAddress = m_charAddress + ((int)c * 8); VICIIRenderer.renderChar(charAddress, x, y, m_hiresOrMulti[x, y], m_charColour, m_backgroundColour, m_mulCol0, m_mulCol1, m_wb); } //x } //y canvas.Source = m_wb; }
private void canvas_MouseDown(object sender, MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2) { Point clickPoint = e.GetPosition(canvas); double x = clickPoint.X / 8.0; double y = clickPoint.Y / 8.0; int CharX = (int)Math.Floor(x); int CharY = (int)Math.Floor(y); m_hiresOrMulti[CharX, CharY] = !m_hiresOrMulti[CharX, CharY]; int CharPtr = m_screenAddress + (CharY * 40) + CharX; C64RAM ram = C64RAM.getInstace(); byte[] RAM = ram.getRAM(); int dataPtr = m_charAddress + (8 * RAM[CharPtr]); VICIIRenderer.renderChar(dataPtr, CharX, CharY, m_hiresOrMulti[CharX, CharY], m_charColour, m_backgroundColour, m_mulCol0, m_mulCol1, m_wb); } }
private void canvas_MouseDown(object sender, MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2) { Point clickPoint = e.GetPosition(canvas); double x = clickPoint.X / 8.0; double y = clickPoint.Y / 8.0; int CharX = (int)Math.Floor(x); int CharY = (int)Math.Floor(y); m_hiresOrMulti[CharX, CharY] = !m_hiresOrMulti[CharX, CharY]; int dataPtr = m_startAddress; dataPtr += CharY * (16 * 8); dataPtr += CharX * 8; int sprCol = spriteCol.SelectedIndex; VICIIRenderer.renderChar(dataPtr, CharX, CharY, m_hiresOrMulti[CharX, CharY], sprCol, m_backgroundColour, m_mulCol0, m_mulCol1, m_wb); } }
public MainWindow() { InitializeComponent(); //install the error callback before we do anything in case something connects to VICE VICECOMManager vcom = VICECOMManager.getVICEComManager(); vcom.setErrorCallback(new VICECOMManager.OneArgDelegate(SetSourceView), this.Dispatcher); vcom.setVICEmsgCallback(new VICECOMManager.OneArgDelegate(GotMsgFromVice)); m_registerSet = new RegisterSet6510(); m_memDump = new C64MemDump(); m_memDump.SetRegisterSet(m_registerSet); //this must be BEFORE we parse the PDB Data mAssertList = new ObservableCollection <AssertDataSource>(); string[] commandLineArgs = Environment.GetCommandLineArgs(); if (commandLineArgs.Length == 1) { m_readerAndDispaly = new AcmePDBRandD(); //System.Environment.Exit(1); } else if (commandLineArgs[1].EndsWith(".json")) { m_readerAndDispaly = new FunctionJSONRAndD(); } else { m_readerAndDispaly = new AcmePDBRandD(); } m_readerAndDispaly.SetCodeWindowControl(mTextBox); m_readerAndDispaly.SetLabelsWindowControl(mLabelsBox); m_readerAndDispaly.SetRegisterSet(m_registerSet); m_readerAndDispaly.SetMemDump(m_memDump); mBreakPoints = new List <BreakPointDataSource>(); mBreakPointDisplay.ItemsSource = mBreakPoints; VICIIRenderer.initRenderer(); //load charsets m_readerAndDispaly.CreatePDBFromARGS(commandLineArgs, this); // mCommands.Add("r"); // mCommands.Add("m 0000 ffff"); // mCommands.Add("x"); // mCommands.Add("!s"); // mCommands.Add("!sm"); dispatchCommand("!breaklist"); HandleCodeView(); /*AssertDataSource AD = new AssertDataSource(); * AD.Enable = true; * AD.Address = 0x810; * AD.Label = "Test"; * AD.Condition = "@io:$d020 != $00"; * AD.Msg = "This is a test"; * AD.Number = 1; * mAssertList.Add(AD);*/ AssertDataGrid.ItemsSource = mAssertList; }