From e7b041ee0783fbf6cb5787fc35941fdf37b77a90 Mon Sep 17 00:00:00 2001 From: MrBesen Date: Fri, 11 Jan 2019 11:37:06 +0100 Subject: [PATCH] Strg+D --- src/main.asm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main.asm b/src/main.asm index 984e144..5555257 100755 --- a/src/main.asm +++ b/src/main.asm @@ -105,6 +105,11 @@ loop: int 19h ;welches man nimmt ist egal ;jmp 0xffff:0x0000 + +.halt_d: + mov si, msg_strgdhalt + call print_string + .halt: mov si, msg_halt call print_string @@ -199,6 +204,7 @@ cmd_halt db 'stop', 0 cmd_banner db 'banner', 0 msg_halt db 'Stopping....', 0 +msg_strgdhalt db 'Strg+D pressed! - Stop', 0 msg_reboot db 'Rebooting....',0 msg_helloworld db 'Hey, Man!', 0x0D, 0x0A, 0 msg_help db 'ThiesyyyOS Commands:', 0x0D, 0x0A ,'hi', 0x0D,0x0A,'help', 0x0D, 0x0A,'credits', 0x0D,0x0A,'beep[WIP]',0x0D,0x0A,'reboot',0x0D,0x0A,'stop', 0x0D, 0x0A, 0 @@ -254,6 +260,9 @@ get_string: cmp al, 0x0D ; enter pressed? je .done ; yes, we're done + cmp al, 0x04 ; Strg+D pressed? + je .d + cmp cl, 0x3F ; 63 chars inputted? je .loop ; yes, only let in backspace and enter @@ -263,13 +272,16 @@ get_string: stosb ; put character in buffer inc cl jmp .loop + +.d: + call loop.halt_d .backspace: cmp cl, 0 ; beginning of string? je .loop ; yes, ignore the key dec di - mov byte [di], 0 ; delete character + mov byte [di], 0; delete character dec cl ; decrement counter as well mov ah, 0x0E