Sync push

This commit is contained in:
Sylar 2025-10-23 14:19:20 +02:00
parent 9a9de088c6
commit b18c12b451
7 changed files with 10 additions and 4 deletions

View file

@ -3,8 +3,7 @@
{ {
"name": "Linux", "name": "Linux",
"includePath": [ "includePath": [
"${default}", "${default}"
"${workspaceRoot}/../omnia-framework/src"
], ],
"defines": [], "defines": [],
"compilerPath": "/usr/bin/clang++", "compilerPath": "/usr/bin/clang++",

Binary file not shown.

View file

@ -28,7 +28,7 @@ _kernel0_main:
push $test_str push $test_str
push 1 push 1
call $_print_string call $_print_string
debug_break ## debug_break
mov [$cursor_x], 0 mov [$cursor_x], 0

View file

@ -24,6 +24,7 @@
SCREEN_WIDTH { MemoryAddresses.CMOS + 0x0007 } SCREEN_WIDTH { MemoryAddresses.CMOS + 0x0007 }
SCREEN_HEIGHT { MemoryAddresses.CMOS + 0x0009 } SCREEN_HEIGHT { MemoryAddresses.CMOS + 0x0009 }
BOOT_DISK { MemoryAddresses.CMOS + 0x0010 } BOOT_DISK { MemoryAddresses.CMOS + 0x0010 }
STACK_SIZE { MemoryAddresses.CMOS + 0x0011 }
DISK_LIST { MemoryAddresses.CMOS + 0x007E } DISK_LIST { MemoryAddresses.CMOS + 0x007E }
@end @end
## -- ## --

View file

@ -15,4 +15,4 @@ printf "\n"
cp dragon/disk1.dr ../extra/dragon/disk1.dr cp dragon/disk1.dr ../extra/dragon/disk1.dr
rm dragon/kernel0.bin # rm dragon/kernel0.bin

View file

@ -1605,6 +1605,11 @@ namespace dragon
int32_t Debugger::normal_runtime(bool& outUserQuit) int32_t Debugger::normal_runtime(bool& outUserQuit)
{ {
bool result = DragonRuntime::runStep(data().trackedAddresses); bool result = DragonRuntime::runStep(data().trackedAddresses);
if (Utils::isBreakPoint((uint16_t)DragonRuntime::cpu.readRegister(data::Registers::IP)))
{
data().args.step_exec = true;
return step_execution(outUserQuit, false);
}
bool hasError = DragonRuntime::hasError(); bool hasError = DragonRuntime::hasError();
bool enableStepExec = !result || hasError || Utils::isEscapeKeyPressed() || DragonRuntime::cpu.isInDebugBreakPoint(); bool enableStepExec = !result || hasError || Utils::isEscapeKeyPressed() || DragonRuntime::cpu.isInDebugBreakPoint();
data().args.step_exec = enableStepExec; data().args.step_exec = enableStepExec;

View file

@ -827,6 +827,7 @@ namespace dragon
int16_t arg_data = m_memory.read16(pp_val); int16_t arg_data = m_memory.read16(pp_val);
writeRegister16(data::Registers::PP, pp_val - 2); writeRegister16(data::Registers::PP, pp_val - 2);
writeRegister16(regAddr, arg_data); writeRegister16(regAddr, arg_data);
std::cout << ostd::Utils::getHexStr(readRegister(data::Registers::IP), true, 2) << "\n";
} }
break; break;
case data::OpCodes::RetInt: case data::OpCodes::RetInt: