forked from crazyettin/EttinOS
Streamline the commands and give the major parts of the code headings
This commit is contained in:
parent
0c0c882b21
commit
0daa68f804
1 changed files with 46 additions and 32 deletions
78
src/os.asm
78
src/os.asm
|
@ -1,3 +1,5 @@
|
||||||
|
;Main
|
||||||
|
|
||||||
mov ax, 0x1000
|
mov ax, 0x1000
|
||||||
mov ds, ax
|
mov ds, ax
|
||||||
|
|
||||||
|
@ -10,32 +12,28 @@ call print
|
||||||
call read
|
call read
|
||||||
cmp byte [input], 0
|
cmp byte [input], 0
|
||||||
je loop
|
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
|
|
||||||
|
|
||||||
|
execute:
|
||||||
.hello:
|
.hello:
|
||||||
mov si, hello
|
mov si, input
|
||||||
|
mov di, command.hello
|
||||||
|
call compare
|
||||||
|
jnc .echo
|
||||||
|
call hello
|
||||||
|
jmp loop
|
||||||
|
.echo:
|
||||||
|
mov si, input
|
||||||
|
mov di, command.echo
|
||||||
|
call compare
|
||||||
|
jnc .unknown
|
||||||
|
call echo
|
||||||
|
jmp loop
|
||||||
|
.unknown:
|
||||||
|
mov si, command.unknown
|
||||||
call print
|
call print
|
||||||
jmp loop
|
jmp loop
|
||||||
|
|
||||||
.echo:
|
;Calls
|
||||||
call read
|
|
||||||
cmp byte [input], 0
|
|
||||||
je loop
|
|
||||||
mov si, input
|
|
||||||
call print
|
|
||||||
mov si, newline
|
|
||||||
call print
|
|
||||||
jmp loop
|
|
||||||
|
|
||||||
print:
|
print:
|
||||||
lodsb
|
lodsb
|
||||||
|
@ -132,12 +130,39 @@ ret
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
hello:
|
||||||
|
mov si, .msg
|
||||||
|
call print
|
||||||
|
ret
|
||||||
|
.msg:
|
||||||
|
db "Hello world!", 0xd, 0xa, 0
|
||||||
|
|
||||||
|
echo:
|
||||||
|
call read
|
||||||
|
cmp byte [input], 0
|
||||||
|
je loop
|
||||||
|
mov si, input
|
||||||
|
call print
|
||||||
|
mov si, newline
|
||||||
|
call print
|
||||||
|
ret
|
||||||
|
|
||||||
|
;Data
|
||||||
|
|
||||||
welcome:
|
welcome:
|
||||||
db 0xd, 0xa, "Welcome to EttinOS!", 0xd, 0xa, 0xd, 0xa, 0
|
db 0xd, 0xa, "Welcome to EttinOS!", 0xd, 0xa, 0xd, 0xa, 0
|
||||||
|
|
||||||
prompt:
|
prompt:
|
||||||
db "> ", 0
|
db "> ", 0
|
||||||
|
|
||||||
|
command:
|
||||||
|
.hello:
|
||||||
|
db "hello", 0
|
||||||
|
.echo:
|
||||||
|
db "echo", 0
|
||||||
|
.unknown:
|
||||||
|
db "Unknown command", 0xd, 0xa, 0
|
||||||
|
|
||||||
newline:
|
newline:
|
||||||
db 0xd, 0xa, 0
|
db 0xd, 0xa, 0
|
||||||
|
|
||||||
|
@ -145,14 +170,3 @@ input:
|
||||||
times 0x80 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
|
|
||||||
|
|
Loading…
Reference in a new issue