Add couple of commands and tweak the input length

This commit is contained in:
CrazyEttin 2021-05-26 20:15:44 +03:00
parent 46691e9975
commit 0c0c882b21
1 changed files with 56 additions and 7 deletions

View File

@ -7,11 +7,27 @@ call print
loop:
mov si, prompt
call print
mov cx, 0x4d
mov di, input
mov al, 0
rep stosb
mov di, input
call read
cmp byte [input], 0
je loop
mov si, input
mov di, cmdhello
call compare
jc .hello
mov si, input
mov di, cmdecho
call compare
jc .echo
mov si, unknown
call print
jmp loop
.hello:
mov si, hello
call print
jmp loop
.echo:
call read
cmp byte [input], 0
je loop
@ -32,6 +48,11 @@ jmp print
ret
read:
mov di, input
mov cx, 0x80
mov al, 0
rep stosb
mov di, input
mov cl, 0
.loop:
mov ah, 0
@ -40,7 +61,7 @@ cmp al, 0xd
je .return
cmp al, 0x8
je .backspace
cmp cl, 0x4d
cmp cl, 0x80
je .loop
cmp al, 0x20
je .space
@ -94,6 +115,23 @@ mov si, newline
call print
ret
compare:
mov al, [si]
mov bl, [di]
cmp al, bl
jne .nequal
cmp al, 0
je .equal
inc si
inc di
jmp compare
.nequal:
clc
ret
.equal:
stc
ret
welcome:
db 0xd, 0xa, "Welcome to EttinOS!", 0xd, 0xa, 0xd, 0xa, 0
@ -104,6 +142,17 @@ newline:
db 0xd, 0xa, 0
input:
times 0x4d db 0
times 0x80 db 0
.end:
db 0
unknown:
db "Unknown command", 0xd, 0xa, 0
cmdhello:
db "hello", 0
hello:
db "Hello world!", 0xd, 0xa, 0
cmdecho:
db "echo", 0