Clan x86

Technical (Development, Security, etc.) => General Programming => Operating System Development => Topic started by: zorm on June 18, 2005, 04:35:04 am

Title: Zorm's OS
Post by: zorm on June 18, 2005, 04:35:04 am
So I reread lots of stuff about OS Development and started coding.

Code: [Select]
use16
org 0x7C00

beginning:
cli ;disable interrupts
xor ax, ax
mov ds, ax
mov es, ax
mov fs, ax
mov sp, 0x0fff0 ;Setup stack

;set 320x200 Color display mode
mov ax, 4
int 10h

push 21
push loadingString
call putString

hang:
jmp hang

putString:
mov bp, sp
mov dh, 1 ;row
mov dl, 0 ;column
mov al, 1 ;mode
mov bl, 0x07 ;display attribute
mov ah, 0x13 ;Write String
mov cx, [bp+4] ;String length
mov bp, [bp+2] ;String
int 0x10
retn

loadingString db 'Zorms OS Loading...', 13, 10

emptySpace = 510 - ($ - $$) ;Can be $$ or beginning
times emptySpace db 0
dw 0xAA55

Tested in Bochs it just prints a message right now and yes I realize putString clobbers stack and such but ill fix that later.

Edit:
I should point out this is for FASM as thats what im using.