[BITS 16] [ORG 0x7C00] start: ; Set up segments xor ax, ax mov ds, ax mov es, ax mov ss, ax mov sp, 0x7C00 ; Clear screen mov ah, 0x00 mov al, 0x03 int 0x10 ; Print startup messages mov si, msg_start call print_string mov si, msg_key call print_string call delay mov si, msg_drm call print_string call delay mov si, msg_kernel call print_string call delay call delay halt: hlt jmp halt ; --- Functions --- print_string: mov ah, 0x0E ; Teletype output .loop: lodsb or al, al jz .done int 0x10 jmp .loop .done: ret delay: ; Simple delay loop mov cx, 0x0F .outer: mov dx, 0xFFFF .inner: dec dx jnz .inner loop .outer ret ; --- Data --- msg_start: db "Welcome to ArkOS Bootloader", 13, 10, 0 msg_key: db "Checking Hardware Secure Key... OK", 13, 10, 0 msg_drm: db "Loading DRM Module... OK", 13, 10, 0 msg_kernel: db "Loading Kernel & Launching OS...", 13, 10, 0 times 510-($-$$) db 0 dw 0xAA55