You have the include paths wrong then.
Double check them - You definitly can include files.
~Andrew
Search found 387 matches
- Mon Aug 22, 2011 7:12 pm
- Forum: Beginning OS Development
- Topic: GDT
- Replies: 4
- Views: 36193
- Sat Aug 20, 2011 4:30 pm
- Forum: Beginning OS Development
- Topic: Enabling paging outside bootloader?
- Replies: 2
- Views: 31532
Re: Enabling paging outside bootloader?
Cant you edit a flag in your multiboot header to cause grub to initialise paging?
Otherwise, the alternative is to link your kernel to 0xC0000000 and have a short stub at the entry point which sets up identitiy paging, then jumps to main.
~Andrew
Otherwise, the alternative is to link your kernel to 0xC0000000 and have a short stub at the entry point which sets up identitiy paging, then jumps to main.
~Andrew
- Sun Aug 14, 2011 10:43 am
- Forum: Beginning OS Development
- Topic: MyOS Problem
- Replies: 6
- Views: 43177
Re: MyOS Problem
Yes it really will.
You make a loopback device, dd the bootsector to the beginning, remount it to get the correct filesystem driver, and cp the second stage on.
~Andrew
You make a loopback device, dd the bootsector to the beginning, remount it to get the correct filesystem driver, and cp the second stage on.
~Andrew
- Sat Aug 13, 2011 11:36 pm
- Forum: Beginning OS Development
- Topic: TSS/TAsk Switch
- Replies: 3
- Views: 35902
Re: TSS/TAsk Switch
The message from bochs means that you are attemping to use the LOCK prefix with an instruction where it is not valid. Unless you have explicitly put in some handcoded asm (at which point you should be less confused about the error), this means that you are trying to execute data in memory. I suggest...
- Sat Aug 13, 2011 11:33 pm
- Forum: Beginners
- Topic: My Questions About Tutorial 6
- Replies: 2
- Views: 33441
Re: My Questions About Tutorial 6
Why multiply cl by cx. Why not moveSectors Per Cluster into the cx and then multiply cx by ax? mul cx means "multiply ax by cx and store the result in ax:cx". In x86, multiplication is hardwired to use the [r][e]ax register, which is why you only specify the second operand. There is no multiplicati...
- Sat Aug 13, 2011 11:23 pm
- Forum: Beginning OS Development
- Topic: USB/HDD/CD/DVD Booting
- Replies: 3
- Views: 35102
Re: USB/HDD/CD/DVD Booting
If you have BIOS emulation then floppy disks and hard disks are very very similar.
However, in protected mode, you will need to send raw scsi commands to the disk (in either case). At that point, there are more intellegent things you can do with a hard drive.
~Andrew
However, in protected mode, you will need to send raw scsi commands to the disk (in either case). At that point, there are more intellegent things you can do with a hard drive.
~Andrew
- Sat Aug 13, 2011 11:21 pm
- Forum: Beginning OS Development
- Topic: MyOS Problem
- Replies: 6
- Views: 43177
Re: MyOS Problem
dd is your friend. It is much nicer than the windows alternatives.
See man dd for details.
See man dd for details.
- Sun Jun 05, 2011 10:52 pm
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
Which further supports the theory that you have one of your critical structures corrupted.
How big is your codebase?
How big is your codebase?
- Thu Jun 02, 2011 9:18 am
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
I dont know if it is related to your crash, but you really should sort out
00070321812e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0e)
00070321812e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
- Mon May 30, 2011 7:31 pm
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
Try asserting that bootsector->Bpb.BytesPerSector is not 0;
- Mon May 30, 2011 11:26 am
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
In which case, are you sure the crash is not because you have some dud code in your kernel?
- Sun May 29, 2011 11:35 pm
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
Close, but you have more memory that that.
See http://wiki.osdev.org/Memory_Map_%28x86%29
Also, your calculation is wrong:
0x3000 + 53760 Bytes long (0300:D200) = 0x10200
~Andrew
See http://wiki.osdev.org/Memory_Map_%28x86%29
Also, your calculation is wrong:
0x3000 + 53760 Bytes long (0300:D200) = 0x10200
~Andrew
- Thu May 26, 2011 8:31 pm
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
One useful debugging measure is to have your kernel loader write a known value into the sector after the final one it loads in memory, and have the start routine of your kernel search for this known value and verify it. That will tell for certain whether it is a bug in your kernel or a bug in your l...
- Thu May 26, 2011 7:22 pm
- Forum: Beginning OS Development
- Topic: Kernel size problem
- Replies: 23
- Views: 102774
Re: Kernel size problem
Can you guarentee you are loading all of your kernel into memory?
Look at the loop which loads it off disk.
Look at the loop which loads it off disk.
- Fri May 13, 2011 7:57 am
- Forum: Beginning OS Development
- Topic: PE chapter
- Replies: 2
- Views: 13868
Re: PE chapter
You want something like:
Life gets a whole lot easier if you have a typedef in there
~Andrew
Code: Select all
typedef void (*entryFunction)(void);
entryFunction myentry = ((entryFunction)(entryPoint + base));
myentry();
~Andrew