From 4870d85d5e5d98a3b212416e74400a1939bc00bc Mon Sep 17 00:00:00 2001 From: husky Date: Sat, 2 Apr 2022 16:55:03 -0700 Subject: [PATCH] window --- .gitignore | 20 ++++++++++++++++++++ .idea/modules.xml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ .idea/windows.iml | 11 +++++++++++ README.md | 4 ++-- assembly/.gitignore | 2 ++ assembly/boot.asm | 32 ++++++++++++++++++++++++++++++++ presskit/real windows.png | Bin 0 -> 12231 bytes src/main.rs | 22 ++++++++++++++++++++++ 9 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/windows.iml create mode 100644 assembly/.gitignore create mode 100644 assembly/boot.asm create mode 100644 presskit/real windows.png create mode 100644 src/main.rs 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 0000000000000000000000000000000000000000..4276ad194b4037d4e2dc866d77497e652f14e82e GIT binary patch literal 12231 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

G3<{ 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 NE?QqGHNA2Fe*o7;2v-0A literal 0 HcmV?d00001 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