mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
cleaner
This commit is contained in:
parent
5acb3cef9d
commit
f1eae1be22
1
ka/dos.k
1
ka/dos.k
@ -35,5 +35,6 @@ include "sys/memdev.k"
|
||||
;
|
||||
; Disk Operating System
|
||||
;
|
||||
include "tests.k"
|
||||
include "main.k"
|
||||
|
||||
|
192
ka/main.k
192
ka/main.k
@ -6,197 +6,5 @@
|
||||
;
|
||||
main:
|
||||
call cpudev_test
|
||||
iret
|
||||
|
||||
cpudev_test:
|
||||
call RFS.GetLeastAvail
|
||||
mov rbx, rax
|
||||
|
||||
call RFS.GetCurIdx
|
||||
mov rcx, rax
|
||||
|
||||
call RFS.GetMaxIdx
|
||||
mov rdx, rax
|
||||
|
||||
mov ax0, 1
|
||||
call RFS.ActivateFrame
|
||||
|
||||
mov ax0, 1
|
||||
mov ax1, $rip
|
||||
mov ax2, trap0_test
|
||||
call RFS.StoreReg
|
||||
|
||||
mov ax0, 256
|
||||
mov ax1, 1
|
||||
call IDT.AddHandler
|
||||
|
||||
trap 0
|
||||
trap 0
|
||||
|
||||
ret
|
||||
|
||||
trap0_test:
|
||||
mov rsp, 0x300000
|
||||
mov nx7, rax
|
||||
|
||||
mov ax0, .msg
|
||||
call print
|
||||
|
||||
mov ax0, nx7
|
||||
call IDT.DoneHandling
|
||||
|
||||
iret
|
||||
|
||||
.msg = "Handling TRAP #0 !\n"
|
||||
|
||||
showoff:
|
||||
call ramdev_test
|
||||
call bswap_test
|
||||
call itoa_test
|
||||
prn 10
|
||||
call str_test
|
||||
call movzx_test
|
||||
prn 10
|
||||
call printf_test
|
||||
ret
|
||||
|
||||
printf_test:
|
||||
mov ax0, .fmt
|
||||
sub rsp, 128
|
||||
mov q[rsp+40], 0x7FE
|
||||
mov q[rsp+32], -2
|
||||
mov q[rsp+24], 666
|
||||
mov q[rsp+16], 0x112233DDAA6677BB
|
||||
mov q[rsp+8], 'K'
|
||||
mov q[rsp], .str
|
||||
call printf
|
||||
add rsp, 128
|
||||
ret
|
||||
|
||||
.fmt = "%% Hello World %s - %c - %p - %d - %d - %b"
|
||||
.str = "(cc)"
|
||||
|
||||
strchr_test:
|
||||
mov rax, 0
|
||||
mov ax0, .str
|
||||
mov ax1, 33
|
||||
call strchr
|
||||
prn b[rax]
|
||||
ret
|
||||
|
||||
.str = "Hello World!"
|
||||
|
||||
bswap_test:
|
||||
mov rdx, 0x1122334455667788
|
||||
bswap rax, rdx
|
||||
|
||||
mov rdi, 0x1111222233334444
|
||||
wswap rsx, rdi
|
||||
|
||||
mov ax3, 0x1111111122222222
|
||||
dswap ax0, ax3
|
||||
|
||||
ret
|
||||
|
||||
ramdev_test:
|
||||
call MEM.GetMemOff
|
||||
mov rdx, rax
|
||||
|
||||
call MEM.GetMemSize
|
||||
ret
|
||||
|
||||
movzx_test:
|
||||
enter 1
|
||||
|
||||
mov q[rsp], 0xFABC1234CCCCDDDD
|
||||
|
||||
mov rax, b[rsp]
|
||||
mov rbx, w[rsp]
|
||||
mov rcx, l[rsp]
|
||||
mov rdx, q[rsp]
|
||||
|
||||
movzx rsx, b[rsp]
|
||||
movzx rbi, w[rsp]
|
||||
movzx rsi, l[rsp]
|
||||
movzx rdi, q[rsp]
|
||||
|
||||
leave
|
||||
ret
|
||||
|
||||
itoa_test:
|
||||
mov ax0, .buf
|
||||
mov ax1, LONG_MIN
|
||||
mov ax2, 10
|
||||
call itoa
|
||||
|
||||
mov ax0, rax
|
||||
call print
|
||||
|
||||
prn 10
|
||||
mov ax0, .buf
|
||||
mov ax1, 0xfff85ffffffffff4
|
||||
mov ax2, 16
|
||||
call itoa
|
||||
|
||||
mov ax0, rax
|
||||
call print
|
||||
|
||||
ret
|
||||
|
||||
.buf = [32]
|
||||
|
||||
devtest:
|
||||
mov ax0, .buf
|
||||
devctl 0, 1
|
||||
|
||||
mov ax0, .buf
|
||||
call print
|
||||
|
||||
iocall 0, 0
|
||||
|
||||
ret
|
||||
|
||||
.buf = [32]
|
||||
|
||||
str_test:
|
||||
mov ax0, .msg
|
||||
call print
|
||||
|
||||
mov ax0, .buf1
|
||||
mov ax1, .msg
|
||||
call strcpy
|
||||
|
||||
prn 10
|
||||
mov ax0, .buf1
|
||||
call print
|
||||
|
||||
mov ax0, .buf2
|
||||
mov ax1, .msg
|
||||
mov ax2, 8
|
||||
call strnzcpy
|
||||
|
||||
prn 10
|
||||
mov ax0, .buf2
|
||||
mov ax1, 12
|
||||
call print_n
|
||||
|
||||
mov ax0, .msg
|
||||
mov ax1, .buf1
|
||||
call strcmp
|
||||
mov rbx, rax
|
||||
|
||||
mov ax0, .buf2
|
||||
mov ax1, .msg
|
||||
call strcmp
|
||||
mov rsx, rax
|
||||
|
||||
mov ax0, .buf2
|
||||
call strlen
|
||||
|
||||
ret
|
||||
|
||||
.msg = "Hello World :)"
|
||||
|
||||
.buf1 = [32]
|
||||
.buf2 = "!!!!!!!!!!!!!"
|
||||
|
||||
|
195
ka/tests.k
Normal file
195
ka/tests.k
Normal file
@ -0,0 +1,195 @@
|
||||
; The OS/K Team licenses this file to you under the MIT license.
|
||||
; See the LICENSE file in the project root for more information.
|
||||
|
||||
cpudev_test:
|
||||
call RFS.GetLeastAvail
|
||||
mov rbx, rax
|
||||
|
||||
call RFS.GetCurIdx
|
||||
mov rcx, rax
|
||||
|
||||
call RFS.GetMaxIdx
|
||||
mov rdx, rax
|
||||
|
||||
mov ax0, 1
|
||||
call RFS.ActivateFrame
|
||||
|
||||
mov ax0, 1
|
||||
mov ax1, $rip
|
||||
mov ax2, trap0_test
|
||||
call RFS.StoreReg
|
||||
|
||||
mov ax0, 256
|
||||
mov ax1, 1
|
||||
call IDT.AddHandler
|
||||
|
||||
trap 0
|
||||
trap 0
|
||||
trap 1
|
||||
|
||||
ret
|
||||
|
||||
trap0_test:
|
||||
mov rsp, 0x300000
|
||||
mov nx7, rax
|
||||
|
||||
mov ax0, .msg
|
||||
call print
|
||||
|
||||
mov ax0, nx7
|
||||
call IDT.DoneHandling
|
||||
|
||||
iret
|
||||
|
||||
.msg = "Handling TRAP #0 !\n"
|
||||
|
||||
showoff:
|
||||
call ramdev_test
|
||||
call bswap_test
|
||||
call itoa_test
|
||||
prn 10
|
||||
call str_test
|
||||
call movzx_test
|
||||
prn 10
|
||||
call printf_test
|
||||
ret
|
||||
|
||||
printf_test:
|
||||
mov ax0, .fmt
|
||||
sub rsp, 128
|
||||
mov q[rsp+40], 0x7FE
|
||||
mov q[rsp+32], -2
|
||||
mov q[rsp+24], 666
|
||||
mov q[rsp+16], 0x112233DDAA6677BB
|
||||
mov q[rsp+8], 'K'
|
||||
mov q[rsp], .str
|
||||
call printf
|
||||
add rsp, 128
|
||||
ret
|
||||
|
||||
.fmt = "%% Hello World %s - %c - %p - %d - %d - %b"
|
||||
.str = "(cc)"
|
||||
|
||||
strchr_test:
|
||||
mov rax, 0
|
||||
mov ax0, .str
|
||||
mov ax1, 33
|
||||
call strchr
|
||||
prn b[rax]
|
||||
ret
|
||||
|
||||
.str = "Hello World!"
|
||||
|
||||
bswap_test:
|
||||
mov rdx, 0x1122334455667788
|
||||
bswap rax, rdx
|
||||
|
||||
mov rdi, 0x1111222233334444
|
||||
wswap rsx, rdi
|
||||
|
||||
mov ax3, 0x1111111122222222
|
||||
dswap ax0, ax3
|
||||
|
||||
ret
|
||||
|
||||
ramdev_test:
|
||||
call MEM.GetMemOff
|
||||
mov rdx, rax
|
||||
|
||||
call MEM.GetMemSize
|
||||
ret
|
||||
|
||||
movzx_test:
|
||||
enter 1
|
||||
|
||||
mov q[rsp], 0xFABC1234CCCCDDDD
|
||||
|
||||
mov rax, b[rsp]
|
||||
mov rbx, w[rsp]
|
||||
mov rcx, l[rsp]
|
||||
mov rdx, q[rsp]
|
||||
|
||||
movzx rsx, b[rsp]
|
||||
movzx rbi, w[rsp]
|
||||
movzx rsi, l[rsp]
|
||||
movzx rdi, q[rsp]
|
||||
|
||||
leave
|
||||
ret
|
||||
|
||||
itoa_test:
|
||||
mov ax0, .buf
|
||||
mov ax1, LONG_MIN
|
||||
mov ax2, 10
|
||||
call itoa
|
||||
|
||||
mov ax0, rax
|
||||
call print
|
||||
|
||||
prn 10
|
||||
mov ax0, .buf
|
||||
mov ax1, 0xfff85ffffffffff4
|
||||
mov ax2, 16
|
||||
call itoa
|
||||
|
||||
mov ax0, rax
|
||||
call print
|
||||
|
||||
ret
|
||||
|
||||
.buf = [32]
|
||||
|
||||
devtest:
|
||||
mov ax0, .buf
|
||||
devctl 0, 1
|
||||
|
||||
mov ax0, .buf
|
||||
call print
|
||||
|
||||
iocall 0, 0
|
||||
|
||||
ret
|
||||
|
||||
.buf = [32]
|
||||
|
||||
str_test:
|
||||
mov ax0, .msg
|
||||
call print
|
||||
|
||||
mov ax0, .buf1
|
||||
mov ax1, .msg
|
||||
call strcpy
|
||||
|
||||
prn 10
|
||||
mov ax0, .buf1
|
||||
call print
|
||||
|
||||
mov ax0, .buf2
|
||||
mov ax1, .msg
|
||||
mov ax2, 8
|
||||
call strnzcpy
|
||||
|
||||
prn 10
|
||||
mov ax0, .buf2
|
||||
mov ax1, 12
|
||||
call print_n
|
||||
|
||||
mov ax0, .msg
|
||||
mov ax1, .buf1
|
||||
call strcmp
|
||||
mov rbx, rax
|
||||
|
||||
mov ax0, .buf2
|
||||
mov ax1, .msg
|
||||
call strcmp
|
||||
mov rsx, rax
|
||||
|
||||
mov ax0, .buf2
|
||||
call strlen
|
||||
|
||||
ret
|
||||
|
||||
.msg = "Hello World :)"
|
||||
|
||||
.buf1 = [32]
|
||||
.buf2 = "!!!!!!!!!!!!!"
|
Loading…
Reference in New Issue
Block a user