From 0e25847a69f6880a519330051dd0f44146ac7e15 Mon Sep 17 00:00:00 2001 From: Sylar Date: Mon, 7 Apr 2025 11:20:09 +0200 Subject: [PATCH] Sync push --- extra/dragon/disk1.dr | Bin 4194304 -> 4194304 bytes extra/dss/DragonOS/kernel0.dss | 20 ++++++++++++++++++-- extra/info/info | 1 + extra/scripts/build_dragonos | 2 +- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/extra/dragon/disk1.dr b/extra/dragon/disk1.dr index e805635611968b7970d071a242c62936b7dbbab3..a98f9864eb7f6c36e0ba9834fa978968a20a1b00 100644 GIT binary patch delta 455 zcmZo@Xkcmp;Vq0x4U#DgAmEXjlasIDQk0mUpXVQ}s9>eZFx{$w(W2gjfj=}%NI;l@ zK|qjU!9Ru200xEt2F74r@ckQ+Os50P3$M{>`7g{R)Fi;hz+0?ykPApB zmg}4c(N(2DI*?14TSq#O8>l*ffjNMIC0OT!1GkWlGYSU_SFL&IRRfW-OR02<+-umAu6 delta 416 zcmZo@Xkcmp;Vq0x4HC%=AmEXjlasIDQk0mUpXVQ}s9>cz-MWF%BGj0HKQv58K$w9+ zK#*a $test_str "Hello DragonOS! :)" + $cursor_x:1 ## ========================================================================================================================= @@ -28,6 +29,8 @@ _kernel0_main: push 1 call $_print_string + mov [$cursor_x], 0 + ## Init Keyboard driver push $_key_pressed ## KeyPressed handler address passed to the _init_keyboard subroutine push 1 @@ -47,16 +50,29 @@ _key_pressed: ## debug_break mov R1, [Keyboard_Registers.KEYCODE] + mov ACC, 13 ## Enter + jeq $_key_pressed_enter, R1 + mov ACC, ASCII.LOWERCASE_A jls $_key_pressed_end, R1 mov ACC, ASCII.LOWERCASE_Z jgr $_key_pressed_end, R1 push R1 - push 10 - push 10 + mov R2, [$cursor_x] + push R2 + push 1 push DefaultPalette.Red push 4 call $_print_char + inc R2 + mov [$cursor_x], R2 + jmp $_key_pressed_end + +_key_pressed_enter: + mov [$cursor_x], 0 + mov R10, 0x25 + int 0x30 + jmp $_key_pressed_end _key_pressed_end: ret diff --git a/extra/info/info b/extra/info/info index 8d475b8..7ceaf46 100644 --- a/extra/info/info +++ b/extra/info/info @@ -154,6 +154,7 @@ 0x22: Print String in Text16 Colors Mode (String address stored in R8, Cell address stored in R9) 0x23: Print Integer in Text16 Colors Mode (Integer stored in R8, Cell address stored in R9) 0x24: Clear Screen in Text16 Colors Mode (Cell address stored in R9) + 0x25: Scroll in Text16 Colors Mode 0xE0: Refresh Screen 0xE1: Clear Screen diff --git a/extra/scripts/build_dragonos b/extra/scripts/build_dragonos index 62114ac..12dad62 100644 --- a/extra/scripts/build_dragonos +++ b/extra/scripts/build_dragonos @@ -8,7 +8,7 @@ cd .. cp ../extra/dss/DragonOS/* ./dss/DragonOS/ printf "\n${green}1) kernel0.dss\n${clear}" -./dasm dss/DragonOS/kernel0.dss -o dragon/kernel0.bin -D +./dasm dss/DragonOS/kernel0.dss -o dragon/kernel0.bin -D --verbose ./dtools load-binary dragon/disk1.dr dragon/kernel0.bin 0x00018000 printf "\n"