Sync push
This commit is contained in:
parent
9a9de088c6
commit
b18c12b451
7 changed files with 10 additions and 4 deletions
3
.vscode/c_cpp_properties.json
vendored
3
.vscode/c_cpp_properties.json
vendored
|
|
@ -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.
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
## --
|
## --
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue