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