Sync push

This commit is contained in:
OmniaX-Dev 2026-06-16 07:21:47 +02:00
parent 6d9016cdae
commit fd38874932
4 changed files with 57 additions and 4 deletions

View file

@ -115,7 +115,6 @@
0x8A: Background (1 Byte) 0x8A: Background (1 Byte)
(VRAM Memory Cell: Character:1, Foreground:1, Background:1, Reserved:1) (VRAM Memory Cell: Character:1, Foreground:1, Background:1, Reserved:1)
0x16FF 0x16FF
------- -------
0x1700 GENERIC SERIAL INTERFACE (64 Bytes) 0x1700 GENERIC SERIAL INTERFACE (64 Bytes)

32
src/debugger/Data.hpp Normal file
View file

@ -0,0 +1,32 @@
#pragma once
#include "../tools/GlobalData.hpp"
namespace dragon
{
namespace debugger
{
struct Run
{
AddressType offset;
stdvec<i8> old_bytes;
stdvec<i8> new_bytes;
};
struct Keyframe
{
u64 cycle;
stdvec<i8> full_state; // entire memory image at this cycle
};
struct CycleDiff
{
u64 cycle;
stdvec<Run> runs; // empty if nothing changed
};
struct History
{
u32 keyframe_interval { 1000 };
stdvec<Keyframe> keyframes; // one every `interval` cycles
stdvec<CycleDiff> diffs; // one per cycle (including keyframe cycles, optional)
};
}
}

View file

@ -65,7 +65,7 @@ namespace dragon
InterruptVector::InterruptVector(void) InterruptVector::InterruptVector(void)
{ {
u32 dataSize = data::MemoryMapAddresses::IntVector_End - data::MemoryMapAddresses::IntVector_Start; u32 dataSize = data::MemoryMapAddresses::IntVector_End - data::MemoryMapAddresses::IntVector_Start + 1;
for (i32 i = 0; i < dataSize; i++) for (i32 i = 0; i < dataSize; i++)
m_data.push_back(0x00); m_data.push_back(0x00);
} }
@ -113,7 +113,7 @@ namespace dragon
void VirtualKeyboard::init(void) void VirtualKeyboard::init(void)
{ {
u32 dataSize = data::MemoryMapAddresses::Keyboard_End - data::MemoryMapAddresses::Keyboard_Start; u32 dataSize = data::MemoryMapAddresses::Keyboard_End - data::MemoryMapAddresses::Keyboard_Start + 1;
for (i32 i = 0; i < dataSize; i++) for (i32 i = 0; i < dataSize; i++)
m_data.push_back(0x00); m_data.push_back(0x00);
enableSignals(); enableSignals();
@ -660,7 +660,7 @@ namespace dragon
Graphics::Graphics(void) Graphics::Graphics(void)
{ {
m_videoMemory.init(0xFFFF); m_videoMemory.init(0xFFFF);
m_vramStart = data::MemoryMapAddresses::VideoCardInterface_End - data::MemoryMapAddresses::VideoCardInterface_Start; m_vramStart = data::MemoryMapAddresses::VideoCardInterface_End - data::MemoryMapAddresses::VideoCardInterface_Start + 1;
m_16Color_frameSize = ogfx::PixelRenderer::TextRenderer::CONSOLE_CHARS_H * ogfx::PixelRenderer::TextRenderer::CONSOLE_CHARS_V * m_16Color_cellSize; m_16Color_frameSize = ogfx::PixelRenderer::TextRenderer::CONSOLE_CHARS_H * ogfx::PixelRenderer::TextRenderer::CONSOLE_CHARS_V * m_16Color_cellSize;
m_16Color_currentFrameAddr = m_vramStart; m_16Color_currentFrameAddr = m_vramStart;
m_16Color_secondFrameAddr = m_vramStart + m_16Color_frameSize; m_16Color_secondFrameAddr = m_vramStart + m_16Color_frameSize;

View file

@ -292,6 +292,28 @@ namespace dragon
out.fg(ostd::ConsoleColors::BrightYellow).p(" Loading CMOS Machine info").nl(); out.fg(ostd::ConsoleColors::BrightYellow).p(" Loading CMOS Machine info").nl();
out.nl().nl(); out.nl().nl();
ostd::ByteStream test;
test.reserve(0xFFFF);
for (i32 i = 0; i < 0xFFFF; i++)
{
std::cout << (int)i << "\n";
test.push_back(memMap.read8(cast<AddressType>(i)));
}
exit(0);
return RETURN_VAL_EXIT_SUCCESS; return RETURN_VAL_EXIT_SUCCESS;
} }