HyperAssembler
3f7297a2a7
Just renaming some functions.
2015-02-21 18:38:23 -08:00
HyperAssembler
efb2ea6a60
Added generic AVL tree implementation.
...
Changed calling convention to NATIVEXX(XX = 64/32)
Changed ignore file to not ignore stuff in x64.
2015-02-21 02:47:24 -08:00
HyperAssembler
4271c61388
Added kernel size and kernel heap management
2015-02-08 00:18:22 -08:00
HyperAssembler
3dd081316b
Nothing much seriously. Prepare for interrupt handling in long mode.
2015-02-07 16:26:20 -08:00
HyperAssembler
56375a5253
So kernel 64 can set up itself now. (Requires 1GB page size. But just for temporary setup, in the kernel we will still stick to 4KB page.)
2015-02-07 15:34:26 -08:00
HyperAssembler
57b0f4a8f1
Implemented hk_printf and made everything else implicit.
...
Ahmmm. Also made 64 bit kernel independent(you can call that thing to enter 64 bit kernel as long as you are in protected mode (no setup required.))(not working but will soon work).
2015-02-07 04:10:50 -08:00
HyperAssembler
8e8d089578
Finally, finished the most important hk_map_page function.
...
Note that this function assumes compact model: which means page tables are located continuously in memory and use at little memory as possible depending on the total memory size. I mean, why the hell would someone put page table all over the place?
This WILL be the memory model that HOS uses.
2015-02-06 00:21:11 -08:00
HyperAssembler
d0fe0da17d
Use C11 standard.
...
Use string literal(graceful) instead of casting(ugly) for integer constants defined in macros.
2015-02-04 00:43:01 -08:00
HyperAssembler
c886d569cd
Complete refactor of craps I wrote. Especially when constructing GDT / Page table.
...
Need:
1. Map page depending on current memory
2. ELF loader
2015-02-03 23:55:38 -08:00
HyperAssembler
7810a74741
That's it for today.... Need some rest.
2015-02-01 20:53:54 -08:00
HyperAssembler
ed9190db61
Wow.... We are indeed in long mode. Although the current implementation is ugly. Still historical!!
2015-02-01 14:14:44 -08:00
HyperAssembler
510fd9e116
Yay! Get compatibility mode working and everything setup except for just jumping to 64bit code segment. However elf32 cannot hold x64 code. Gonna go in x64 after implementing elf64 loader.
2015-02-01 02:31:36 -08:00
HyperAssembler
7568cb5890
Ahh... Added support for x86_64 PAE paging. But realized that I need to add support for loading elf64, which hopefully will be done by tomorrow.
2015-01-31 23:36:32 -08:00
HyperAssembler
250299c378
1. makefile: added --fno-stack-protector to prevent gcc from fancy behaviors.
...
2. bochs config: configured memory to be 256MB and added magic breakpoint.
3. wrote complete print library for x86 kernel(including scrolling).
4. x86 kernel now detects information passed by grub2.
5. removed redundant source file.
2015-01-31 01:05:53 -08:00
unknown
a40f0ffc0f
Added System V ABI calling convention.
2015-01-30 10:19:28 -08:00
HyperAssembler
82561feeea
Push missing grub.cfg and linker script for x86, x86_64
2015-01-30 00:34:05 -08:00
HyperAssembler
9b06af76b2
New readme. Entering x86_64~~
2015-01-30 00:30:35 -08:00
HyperAssembler
30460c80d9
Excited! Grub2 finally loads our kernel64.bin after this commit!!
2015-01-30 00:24:57 -08:00
HyperAssembler
7cc18fac3d
So I figured that grub2 can do some fancy stuff about loading modules.
...
There we go! We will keep x86 and load x64 as a module and then jump to x64 from x86!!
2015-01-29 22:42:30 -08:00
HyperAssembler
41c2d8ca2a
Clean up crap and get code ready for 64 bit.
2015-01-29 00:05:58 -08:00
HyperAssembler
e1b29f2966
Added enable/disable paging function.
2015-01-27 23:58:26 -08:00
HyperAssembler
7510138980
1. x64 support check
...
2. refactored redundant code for multiboot.asm
3. changed bochs cpu to intel i7
4. write to port and read from port io subroutine
2015-01-27 23:23:14 -08:00
HyperAssembler
cac107ce81
Setup interrupt functions in 32 bits
2015-01-27 00:59:50 -08:00
HyperAssembler
3102815304
Got the new gdt loading working and basic printing stuff.
...
Fixed script issue.
2015-01-26 01:30:10 -08:00
HyperAssembler
9f5fbdea4d
Added ignore list for clion
2015-01-25 17:02:54 -08:00
HyperAssembler
9fcf6b866f
Adjusted structure to use make command.
2015-01-25 16:59:08 -08:00
HyperAssembler
74de6123a9
Extra file to be deleted
2015-01-25 02:27:21 -08:00
HyperAssembler
b6c999753f
1. Refactored kernel calling convention.
...
2. Linker script for kernel.
2. Updated mkiso script to link C with nasm and build a runable multiboot1 iso.
2015-01-25 02:26:52 -08:00
HyperAssembler
e12cac16a3
No
2014-10-12 11:56:12 -04:00
HyperAssembler
cc60122630
Added
2014-10-03 23:58:40 -04:00
HyperAssembler
e3aa2e3d59
ORG!
2014-09-30 22:42:12 -04:00
hyperassembler
286803f026
Nop
2014-09-28 18:50:01 -04:00
hyperassembler
ca8ad1c70d
In progress
2014-09-24 12:23:46 -04:00
hyperassembler
355ca2e38e
Refactoring started!
2014-09-24 00:00:01 -04:00
hyperassembler
b157087658
Grub2 multiboot1
2014-09-23 18:00:39 -07:00
HyperAssembler
589f2bb02e
Commit
2014-09-16 01:50:52 -04:00
hyperassembler
42a6b8d756
Stage
2014-09-15 22:47:25 -07:00
hyperassembler
263f4ed92b
Added script
2014-09-15 07:02:37 -07:00
HyperAssembler
8361819802
Switching to FAT32 and GRUB2
2014-09-12 03:06:54 -04:00
HyperAssembler
84f641aae2
Fix2
2014-09-04 00:55:19 -04:00
HyperAssembler
147622ef9b
Fix
2014-09-04 00:44:02 -04:00
hyperassembler
3fc652747c
Add Xcode
2014-07-09 00:10:57 -07:00
hyperassembler
895ff63d1e
sublime support for NASM
2014-07-07 17:34:58 -07:00
hyperassembler
b9def81e95
Collect garbage + add bochs file
2014-06-30 12:14:10 -07:00
hyperassembler
fc0a77e481
Refactor code + _IN_ macro + null check + finish off MmMapVirtualAddress.
2014-06-30 11:53:13 -07:00
hyperassembler
4ce10f3777
Add features:
...
KeSetBit
KeGetBit
MmMapVirtualAddress
2014-06-29 18:53:16 -07:00
hyperassembler
202b3d2ebc
Changes - not done yet
2014-06-27 18:35:23 -07:00
hyperassembler
46a0143af3
Add color scheme for VS
2014-06-27 17:46:25 -07:00
hyperassembler
4e48f40633
lol
2014-06-12 22:56:33 -07:00
hyperassembler
e9dfc095fa
change name
2014-06-03 00:05:45 -07:00