Note: this currently has a rustc compiler panic trying to use the `#[no_core]` attribute, which seems poorly supported
42 lines
581 B
NASM
42 lines
581 B
NASM
%include "../common/x86_vram.asm"
|
|
|
|
extern rust_entry
|
|
|
|
section .bss
|
|
|
|
stack resb 0x1000
|
|
|
|
section .data
|
|
|
|
[bits 32]
|
|
section .text
|
|
global boot
|
|
|
|
%include "../common/multiboot_header.asm"
|
|
%include "../common/x86_vram_functions.asm"
|
|
|
|
boot:
|
|
mov esp, stack + 0x100
|
|
xor ebp, ebp
|
|
mov eax, 0x55
|
|
jmp main
|
|
|
|
main:
|
|
push word BG.CYAN | ' '
|
|
call clear
|
|
add esp, 2
|
|
call rust_entry
|
|
|
|
push dword BG.BLACK | FG.YELLOW | FG.BRIGHT | 'A'
|
|
push dword 0
|
|
push dword 0
|
|
call write_to_coord
|
|
add esp, 12
|
|
|
|
loop_label:
|
|
jmp loop_label
|
|
|
|
halt:
|
|
hlt
|
|
jmp halt
|