
i tested to change the jb to ja instead and the 'call scroll_up' to 'call _scroll_up' but all i got is a (general protection?) fault..
This sucks!
/ Christoffer
Could you mail/send me a copy of your disk image? I'd like to run it in a debugging-bochs.bubach wrote: as i don?t have any replies yet i will just continue to talk to myself..
i tested to change the jb to ja instead and the 'call scroll_up' to 'call _scroll_up' but all i got is a (general protection?) fault..
This sucks!
/ Christoffer
*kicks bubach* don't change without thinking!bubach wrote: as i don?t have any replies yet i will just continue to talk to myself..
i tested to change the jb to ja instead and the 'call scroll_up' to 'call _scroll_up' but all i got is a (general protection?) fault..
This sucks!
Code: Select all
push edi^M
push esi ; may be a good idea with a unchanged esi^M
^M
mov edi,0b8000h^M
mov esi,0b8000h+160^M
mov ecx,(160*49)/4^M
rep movsd^M
^M
pop ds^M
Code: Select all
0x9ffc0 <bogus+0>: 0x23 0x4d 0x53 0xae 0x81 0x00 0x00 0x00
0x9ffc8 <bogus+8>: 0x05 0x00 0x00 0x10 0x00 0x00 0x00 0x35
Code: Select all
esp:0x9ffc3
gdtr:base=0x88e4, limit=0x17
That's a common error. You'll learn either way.bubach wrote: i missed that pop ds...
that dosn?t sound that good.. ****!
now i am absolutly sure that i know too little to be programming a OS. i think that i will lay this on ice, and learn asm programming better first..
That's because you use Windows which adds a 0xd 0xa at the end of each line. Linux only reads the 0xa so the 0xd is printed as the thirteenth control character. Control characters are printed as ^ with the character corresponding to them. 0xd thus is ^M.but whats with those ^M?
it was the gdt and stack stuff i meant, i don?t understand as much of it that i think i should do to be able to program a OS.Candy wrote: The memory contains :and your stack pointer & gdt are:Code: Select all
0x9ffc0 <bogus+0>: 0x23 0x4d 0x53 0xae 0x81 0x00 0x00 0x00 0x9ffc8 <bogus+8>: 0x05 0x00 0x00 0x10 0x00 0x00 0x00 0x35
so that is WAY over the limit. It ends up at a 81ae which is a LOT more than 0x17.Code: Select all
esp:0x9ffc3 gdtr:base=0x88e4, limit=0x17
PS: your stack pointer is unaligned. Align it.
Thanks. I missed that toobubach wrote: I have found the biggest bug!
all those calculations with 49 that should have been 24 instead.... :-[
how could i be so stupid!
in the os i toke tho functions from he uses a 8x8 font witch make the screen have 80x50 chars instead of 80x25.
*goes on a quest to linux to fix your problem*bubach wrote: the sad thing is that it is still not working.. :'(
Code: Select all
mov dl,al^M
pop ebx^M
mov dh,bl^M
^M
popad^M
ret^M
Code: Select all
(0).[572064] [0x00100230] 0008:00100230 (unk. ctxt): mov ESI, 00000015 ; be15000000
(0).[572064] [0x00100235] 0008:00100235 (unk. ctxt): mov AL, 0e ; b00e
(0).[572064] [0x00100237] 0008:00100237 (unk. ctxt): call 001000cd ; e891feffff