fix(loader): log time
This commit is contained in:
parent
6ff773de41
commit
974b0862bf
19
Makefile
19
Makefile
|
@ -24,6 +24,11 @@ CFLAGS = -DMK_COMMIT="$(MK_COMMIT)" -DMK_BUGREPORT="$(MK_BUGREPORT)" -I$(TOPDIR)
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
QEMU_COMMON = \
|
||||||
|
-rtc base=localtime \
|
||||||
|
-vga virtio \
|
||||||
|
-serial mon:stdio
|
||||||
|
|
||||||
SUBDIRS := external tools include boot kernel lib bin
|
SUBDIRS := external tools include boot kernel lib bin
|
||||||
|
|
||||||
TARGET = stupid.tar.gz floppy1440.img floppy2880.img
|
TARGET = stupid.tar.gz floppy1440.img floppy2880.img
|
||||||
|
@ -80,22 +85,26 @@ OVMF32.fd:
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: all
|
run: all
|
||||||
qemu-system-i386 \
|
qemu-system-i386 \
|
||||||
-rtc base=localtime \
|
$(QEMU_COMMON) \
|
||||||
-drive file=floppy1440.img,if=none,format=raw,id=boot \
|
-drive file=floppy1440.img,if=none,format=raw,id=boot \
|
||||||
-drive file=fat:rw:./sysroot,if=none,id=hdd \
|
-drive file=fat:rw:./sysroot,if=none,id=hdd \
|
||||||
-device floppy,drive=boot \
|
-device floppy,drive=boot \
|
||||||
-device ide-hd,drive=hdd \
|
-device ide-hd,drive=hdd \
|
||||||
-global isa-fdc.bootindexA=0 \
|
-global isa-fdc.bootindexA=0 \
|
||||||
-serial mon:stdio
|
|
||||||
|
.PHONY: run-iso
|
||||||
|
run-iso: all
|
||||||
|
qemu-system-i386 \
|
||||||
|
$(QEMU_COMMON) \
|
||||||
|
-cdrom stupid.iso
|
||||||
|
|
||||||
.PHONY: run-efi
|
.PHONY: run-efi
|
||||||
run-efi: all OVMF32.fd
|
run-efi: all OVMF32.fd
|
||||||
qemu-system-i386 \
|
qemu-system-i386 \
|
||||||
|
$(QEMU_COMMON) \
|
||||||
-bios OVMF32.fd \
|
-bios OVMF32.fd \
|
||||||
-rtc base=localtime \
|
|
||||||
-drive file=fat:rw:./sysroot,if=none,id=hdd \
|
-drive file=fat:rw:./sysroot,if=none,id=hdd \
|
||||||
-device ide-hd,drive=hdd \
|
-device ide-hd,drive=hdd
|
||||||
-serial stdio
|
|
||||||
|
|
||||||
.PHONY: docs
|
.PHONY: docs
|
||||||
docs:
|
docs:
|
||||||
|
|
|
@ -38,6 +38,14 @@ efimain:
|
||||||
call [ebx + EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString]
|
call [ebx + EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString]
|
||||||
add esp, 8
|
add esp, 8
|
||||||
|
|
||||||
|
; search and load kernel
|
||||||
|
|
||||||
|
; get memory map
|
||||||
|
|
||||||
|
; paging
|
||||||
|
|
||||||
|
; jump to kernel
|
||||||
|
|
||||||
jmp $
|
jmp $
|
||||||
|
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
|
@ -47,9 +55,12 @@ efimain:
|
||||||
|
|
||||||
section '.data' data readable writeable
|
section '.data' data readable writeable
|
||||||
|
|
||||||
hello_msg du 'StupidOS EFI Bootloader', 13, 10, 0
|
hello_msg du 'StupidOS EFI Bootloader', CR, LF, 0
|
||||||
|
|
||||||
; Search path: / /boot /boot/efi
|
; Search path: / /boot /boot/efi
|
||||||
|
search_paths du '\\', 0, \
|
||||||
|
'\\boot', 0, \
|
||||||
|
'\\boot\\efi', 0, 0
|
||||||
kernel_file du 'vmstupid.sys', 0
|
kernel_file du 'vmstupid.sys', 0
|
||||||
|
|
||||||
handle dd ?
|
handle dd ?
|
||||||
|
|
|
@ -127,10 +127,10 @@ multiboot:
|
||||||
|
|
||||||
; get kernel from module
|
; get kernel from module
|
||||||
|
|
||||||
common32:
|
|
||||||
xchg bx, bx
|
|
||||||
mov dword [0xB8000], 0x07690748
|
|
||||||
|
|
||||||
|
common32:
|
||||||
|
|
||||||
|
mov [0xB8000], dword 0x07690748
|
||||||
; paging
|
; paging
|
||||||
; identity map first 1MB
|
; identity map first 1MB
|
||||||
; map kernel to 0xC0000000
|
; map kernel to 0xC0000000
|
||||||
|
|
|
@ -4,21 +4,33 @@ bios_log_time:
|
||||||
int 0x1A
|
int 0x1A
|
||||||
|
|
||||||
mov al, ch
|
mov al, ch
|
||||||
aam
|
mov ah, al
|
||||||
|
shr ah, 4
|
||||||
|
and ah, 0xF
|
||||||
|
and al, 0xF
|
||||||
|
;aam
|
||||||
add ah, 0x30
|
add ah, 0x30
|
||||||
add al, 0x30
|
add al, 0x30
|
||||||
mov [time + 1], ah
|
mov [time + 1], ah
|
||||||
mov [time + 2], al
|
mov [time + 2], al
|
||||||
|
|
||||||
mov al, cl
|
mov al, cl
|
||||||
aam
|
mov ah, al
|
||||||
|
shr ah, 4
|
||||||
|
and ah, 0xF
|
||||||
|
and al, 0xF
|
||||||
|
;aam
|
||||||
add ah, 0x30
|
add ah, 0x30
|
||||||
add al, 0x30
|
add al, 0x30
|
||||||
mov [time + 4], ah
|
mov [time + 4], ah
|
||||||
mov [time + 5], al
|
mov [time + 5], al
|
||||||
|
|
||||||
mov al, dh
|
mov al, dh
|
||||||
aam
|
mov ah, al
|
||||||
|
shr ah, 4
|
||||||
|
and ah, 0xF
|
||||||
|
and al, 0xF
|
||||||
|
;aam
|
||||||
add ah, 0x30
|
add ah, 0x30
|
||||||
add al, 0x30
|
add al, 0x30
|
||||||
mov [time + 7], ah
|
mov [time + 7], ah
|
||||||
|
@ -130,7 +142,7 @@ bios_log:
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
time db '[00:00.00] ', 0
|
time db '[00:00:00] ', 0
|
||||||
hex_prefix db '0x', 0
|
hex_prefix db '0x', 0
|
||||||
hex_digits db '0123456789ABCDEF'
|
hex_digits db '0123456789ABCDEF'
|
||||||
endline db CR, LF, 0
|
endline db CR, LF, 0
|
||||||
|
|
76
lib/crypto/rc4/rc4.asm
Normal file
76
lib/crypto/rc4/rc4.asm
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
format COFF
|
||||||
|
use32
|
||||||
|
|
||||||
|
section '.text' code
|
||||||
|
|
||||||
|
;; Function: rc4_init
|
||||||
|
;;
|
||||||
|
;; Parameters:
|
||||||
|
;;
|
||||||
|
;; [esp+8] - state
|
||||||
|
;; [esp+12] - key
|
||||||
|
;; [esp+16] - key length
|
||||||
|
;;
|
||||||
|
rc4_init:
|
||||||
|
push ebp
|
||||||
|
mov ebp, esp
|
||||||
|
|
||||||
|
mov eax, [ebp+8]
|
||||||
|
xor ecx, ecx
|
||||||
|
|
||||||
|
.loop:
|
||||||
|
|
||||||
|
.end:
|
||||||
|
leave
|
||||||
|
ret
|
||||||
|
|
||||||
|
;; Function: rc4
|
||||||
|
;;
|
||||||
|
;; Parameters:
|
||||||
|
;;
|
||||||
|
;; [esp+8] - state
|
||||||
|
;; [esp+12] - out buffer
|
||||||
|
;; [esp+16] - input buffer
|
||||||
|
;; [esp+20] - intput buffer size
|
||||||
|
rc4:
|
||||||
|
push ebp
|
||||||
|
mov ebp, esp
|
||||||
|
|
||||||
|
push esi
|
||||||
|
push edi
|
||||||
|
push ebx
|
||||||
|
|
||||||
|
xor esi, esi
|
||||||
|
xor edi, edi
|
||||||
|
xor ecx, ecx
|
||||||
|
|
||||||
|
.loop:
|
||||||
|
cmp ecx, [esp+20]
|
||||||
|
je .end
|
||||||
|
|
||||||
|
inc esi
|
||||||
|
mov eax, esi
|
||||||
|
movzx esi, al
|
||||||
|
|
||||||
|
add edi, esi
|
||||||
|
mov eax, edi
|
||||||
|
movzx edi, al
|
||||||
|
|
||||||
|
mov edx, [esp+8]
|
||||||
|
|
||||||
|
mov al, byte [edx+esi]
|
||||||
|
mov bl, byte [edx+edi]
|
||||||
|
|
||||||
|
mov byte [edx+esi], bl
|
||||||
|
mov byte [edx+edi], al
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
jmp .loop
|
||||||
|
.end:
|
||||||
|
|
||||||
|
pop ebx
|
||||||
|
pop edi
|
||||||
|
pop esi
|
||||||
|
|
||||||
|
leave
|
||||||
|
ret
|
Loading…
Reference in a new issue