Initial Commit of files

This commit is contained in:
2023-07-10 03:05:34 -07:00
parent c726a44299
commit 0821823a68
18 changed files with 417 additions and 1 deletions

61
src/boot/boot.asm Normal file
View File

@@ -0,0 +1,61 @@
; Set up the segment registers
xor ax, ax
mov ds, ax
mov es, ax
; Set up stack and jump to main
mov ss, ax
mov sp, 0x7c00
jmp main
; Print 'Booting ClassicOS!' to the screen
print:
mov si, message
mov ah, 0x0e
.loop:
lodsb
test al, al
jz .done
int 0x10
jmp .loop
.done:
ret
; Set the video mode to a 40 column text mode
set_video_mode:
mov ax, 0x0003 ; Set up a 80x25 text mode
int 0x10
; Set the number of columns to 40
mov ax, 0x1112
mov bx, 0x0007
int 0x10
ret
; Bootloader entry point
main:
; Call the set_video_mode function
call set_video_mode
; Clear the screen
mov ah, 0x06
mov al, 0
xor bx, bx
xor cx, cx
mov dh, 24
mov dl, 39
int 0x10
; Call the print function
call print
; Infinite loop
.loop:
jmp .loop
; Message to print
message db 'Booting ClassicOS!', 0
times 510-($-$$) db 0
dw 0xaa55

8
src/boot/linker.ld Normal file
View File

@@ -0,0 +1,8 @@
ENTRY(boot)
SECTIONS {
. = 0x7c00;
.text : {
*(.text)
}
/* Add other sections as needed */
}