|
1 | | -; Fuzzy Bootloader |
| 1 | +; Fuzzy Bootloader Stage 1 |
| 2 | + |
| 3 | +; Assumptions: |
| 4 | +; - Stage 2 starts from Sector 1 to Sector 1 |
| 5 | +; - Stage 2 has ORG 0x8000 |
| 6 | + |
2 | 7 | %include "constants.asm" |
3 | 8 | %include "io.asm" |
| 9 | +%include "disk.asm" |
4 | 10 |
|
5 | 11 | [ORG 0x7C00] |
6 | 12 | [BITS 16] |
7 | 13 |
|
8 | 14 |
|
9 | 15 | [SECTION .text] |
10 | 16 |
|
11 | | - cli |
12 | | - mov ax, 0x0000 |
13 | | - mov es, ax ; es := 0 |
| 17 | + CLI |
| 18 | + MOV ax, 0x0000 |
| 19 | + MOV es, ax ; es := 0 |
14 | 20 |
|
15 | 21 | set_blinking 0 |
16 | | - print_string_ext bl_welcome, bl_welcome_len, 02, 02, C_BLACK, C_WHITE, 0 |
17 | | - print_string_ext bl_stage_2, bl_stage_2_len, 05, 04, C_WHITE, C_BLACK, 0 |
18 | | - hlt |
| 22 | + print_string_ext bl_welcome, bl_welcome_len, 02, 02, C_GREEN, C_WHITE, 0 |
| 23 | + print_string_ext bls1, bls1_len, 05, 04, C_WHITE, C_BLACK, 0 |
| 24 | + |
| 25 | + ; Attempt to load Bootloader Stage 2 in Memory |
| 26 | + disk_read 01, 80, 00, 00, 02, 8000 |
| 27 | + disk_success 80 |
| 28 | + JNC label_bts2_loaded |
| 29 | + print_string_ext bls2_load_fail, bls2_load_fail_len, 05, 06, C_RED, C_BLACK, 0 |
| 30 | + JMP label_exit |
| 31 | + |
| 32 | +label_bts2_loaded: |
| 33 | + print_string_ext bls2_loaded, bls2_loaded_len, 05, 06, C_WHITE, C_BLACK, 0 |
| 34 | + JMP 0x8000 |
| 35 | + JMP label_exit |
| 36 | + |
| 37 | +label_exit: |
| 38 | + HLT |
19 | 39 |
|
20 | 40 | [SECTION .data] |
21 | | - bl_welcome db "Fuzzy OS... (^_^)" |
| 41 | + bl_welcome db " Fuzzy OS... (^_^) " |
22 | 42 | bl_welcome_len equ ($-bl_welcome) |
23 | | - bl_stage_2 db "Loading Bootloader: Stage 2" |
24 | | - bl_stage_2_len equ ($-bl_stage_2) |
| 43 | + bls1 db "Bootloader: Stage 1" |
| 44 | + bls1_len equ ($-bls1) |
| 45 | + bls2_loaded db "Stage 2 Loaded." |
| 46 | + bls2_loaded_len equ ($-bls2_loaded) |
| 47 | + bls2_load_fail db "Stage 2 Load Failed!" |
| 48 | + bls2_load_fail_len equ ($-bls2_load_fail) |
0 commit comments