fix(loader): log time
This commit is contained in:
		
							parent
							
								
									6ff773de41
								
							
						
					
					
						commit
						974b0862bf
					
				
					 5 changed files with 121 additions and 13 deletions
				
			
		
							
								
								
									
										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…
	
	Add table
		
		Reference in a new issue