diff options
Diffstat (limited to 'src/boot.stage1.asm')
| -rw-r--r-- | src/boot.stage1.asm | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/src/boot.stage1.asm b/src/boot.stage1.asm deleted file mode 100644 index c5bab26..0000000 --- a/src/boot.stage1.asm +++ /dev/null @@ -1,56 +0,0 @@ - ;; boot.stage1.asm - - %include "boot.common.asm" - %include "boot.stage1.print.asm" - [org 0x7c00] - [bits 16] - - %define READ_SECTORS_NUM 64 - %define BOOT_LOAD_ADDR 0x7c00 - %define SECTOR_SIZE 512 - - entry _start - -_start: - ;; Disable interrupts - cli - - ;; Setup segment registers - xor ax, ax - mov ds, ax - mov es, ax - mov ss, ax - - ;; Adjust Stack - mov sp, _start - - mov si, [disk_addr_packet] - mov ah, 0x42 ; BIOS extended read function - mov dl, 0x80 ; Drive number - int 0x13 ; BIOS disk services - jc _disk_read_err - - jmp 0x0000:0x7e00 - -_disk_read_err: - hlt - jmp _disk_read_err - -_end: - hlt - jmp _end - -disk_read_err_msg: db "Failed to read disk", 13, 10, 0 -disk_read_success_msg: db "Read the disk successfully", 13, 10, 0 -disk_addr_packet: - db 0x10 - db 0x0 -DAP_sectors_num: - dw READ_SECTORS_NUM ; Number of read sectors - dd (BOOT_LOAD_ADDR + SECTOR_SIZE) ; Destination address - dq 1 ; First sector after the boot sector - - ;; Padding and magic number - times 510 - ($ - $$) db 0 - dw 0xaa55 - |
