diff --git a/.gitignore b/.gitignore index 3ca43ae..0b4c8d1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,23 @@ Cargo.lock # MSVC Windows builds of rustc generate these, which store debugging information *.pdb + + +# Added by cargo + +/target + + +# Added by cargo +# +# already existing elements were commented out + +#/target + + +# Added by cargo +# +# already existing elements were commented out + +#/target +#Cargo.lock diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..efa1d66 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/windows.iml b/.idea/windows.iml new file mode 100644 index 0000000..c254557 --- /dev/null +++ b/.idea/windows.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 07e7265..778363d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # windows - -windows nt kernel source tree \ No newline at end of file +![windows boot screen](presskit/real%20windows.png)
+this is the kernel for windows \ No newline at end of file diff --git a/assembly/.gitignore b/assembly/.gitignore new file mode 100644 index 0000000..6d18df9 --- /dev/null +++ b/assembly/.gitignore @@ -0,0 +1,2 @@ +# output file +boot \ No newline at end of file diff --git a/assembly/boot.asm b/assembly/boot.asm new file mode 100644 index 0000000..bf4ebc7 --- /dev/null +++ b/assembly/boot.asm @@ -0,0 +1,32 @@ +[bits 16] +[org 0x7c00] + + +xor ax, ax +mov ds, ax + +; set graphics mode +mov ax, 00h +mov ah, 0x00 +int 0x10 + +; write string to screen +mov bh, 0 +mov bl, 0b00001111 +mov al, 1 +mov ah, 13h +mov cx, WINDOWS_STR_END - WINDOWS_STR +mov dl, 0 +mov dh, 0 +push cs +pop es +mov bp, WINDOWS_STR +int 0x10 + + + +WINDOWS_STR: db 'microsoft windows', 0 +WINDOWS_STR_END: + +times 510-($-$$) db 0 +dw 0xAA55 \ No newline at end of file diff --git a/presskit/real windows.png b/presskit/real windows.png new file mode 100644 index 0000000..4276ad1 Binary files /dev/null and b/presskit/real windows.png differ diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..a1631bd --- /dev/null +++ b/src/main.rs @@ -0,0 +1,22 @@ +#!no_std + +fn print_vga_buffer(string : &str) { + // get address of VGA buffer + let mut vga_buffer = 0xb8000 as *mut u8; + + // get length of string + let len = string.len(); + + // write string to VGA buffer + for i in 0..len { + unsafe { + *vga_buffer = string.as_bytes()[i]; + vga_buffer = vga_buffer.offset(2); + } + } +} + + +fn main() { + print_vga_buffer("microsoft"); +} \ No newline at end of file