72 lines
No EOL
2.2 KiB
NASM
72 lines
No EOL
2.2 KiB
NASM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Module Name: boot-hdd.asm ;;
|
|
;; Project: AurixOS ;;
|
|
;; ;;
|
|
;; Copyright (c) 2024-2025 Jozef Nagy ;;
|
|
;; ;;
|
|
;; This source is subject to the MIT License. ;;
|
|
;; See License.txt in the root of this repository. ;;
|
|
;; All other rights reserved. ;;
|
|
;; ;;
|
|
;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ;;
|
|
;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ;;
|
|
;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ;;
|
|
;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ;;
|
|
;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ;;
|
|
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ;;
|
|
;; SOFTWARE. ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
[bits 16]
|
|
[org 0x7c00]
|
|
|
|
jmp 0x0000:AxBootEntry
|
|
|
|
;;
|
|
;; BIOS bootloader on i686 is just a placeholder
|
|
;; incase it ever becomes a thing... for now it just
|
|
;; notifies the user that you can't boot AurixOS
|
|
;; without UEFI on i686.
|
|
;;
|
|
|
|
%include "arch/strings.inc"
|
|
|
|
AxBootEntry:
|
|
;;
|
|
;; Set 80x50 text mode and clear the screen
|
|
;;
|
|
mov ax, 0x03
|
|
int 0x10
|
|
xor bx, bx
|
|
mov ax, 0x1112
|
|
int 0x10
|
|
mov ah, 0
|
|
int 0x10
|
|
|
|
;;
|
|
;; Display an error message and halt
|
|
;;
|
|
mov si, sErrorUnbootable
|
|
call PrintString
|
|
mov si, sPressToReboot
|
|
call PrintString
|
|
jmp AxBootHalt
|
|
|
|
PrintString:
|
|
lodsb
|
|
or al, al
|
|
jz .done
|
|
mov ah, 0x0e
|
|
mov bx, 0x0007
|
|
int 0x10
|
|
jmp PrintString
|
|
.done:
|
|
ret
|
|
|
|
AxBootHalt:
|
|
cli
|
|
hlt
|
|
jmp AxBootHalt
|
|
|
|
times 510-($-$$) db 0
|
|
dw 0xaa55 |