bootloader.asm 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. [BITS 16]
  2. [ORG 0x7C00]
  3. start:
  4. ; Set up segments
  5. xor ax, ax
  6. mov ds, ax
  7. mov es, ax
  8. mov ss, ax
  9. mov sp, 0x7C00
  10. ; Clear screen
  11. mov ah, 0x00
  12. mov al, 0x03
  13. int 0x10
  14. ; Print startup messages
  15. mov si, msg_start
  16. call print_string
  17. mov si, msg_key
  18. call print_string
  19. call delay
  20. mov si, msg_drm
  21. call print_string
  22. call delay
  23. mov si, msg_kernel
  24. call print_string
  25. call delay
  26. call delay
  27. halt:
  28. hlt
  29. jmp halt
  30. ; --- Functions ---
  31. print_string:
  32. mov ah, 0x0E ; Teletype output
  33. .loop:
  34. lodsb
  35. or al, al
  36. jz .done
  37. int 0x10
  38. jmp .loop
  39. .done:
  40. ret
  41. delay:
  42. ; Simple delay loop
  43. mov cx, 0x0F
  44. .outer:
  45. mov dx, 0xFFFF
  46. .inner:
  47. dec dx
  48. jnz .inner
  49. loop .outer
  50. ret
  51. ; --- Data ---
  52. msg_start: db "Welcome to ArkOS Bootloader", 13, 10, 0
  53. msg_key: db "Checking Hardware Secure Key... OK", 13, 10, 0
  54. msg_drm: db "Loading DRM Module... OK", 13, 10, 0
  55. msg_kernel: db "Loading Kernel & Launching OS...", 13, 10, 0
  56. times 510-($-$$) db 0
  57. dw 0xAA55