| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- [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
|