Page 2 of 2

Re:Need help remapping PICs

Posted: Sat Apr 02, 2005 1:18 pm
by Kim
I forgot the port ;)

const
   BOCHS_DEBUG_PORT = $e9;

Re:Need help remapping PICs

Posted: Sat Apr 02, 2005 5:03 pm
by Crazed123
Setting OutByteToPort() to stdcall didn't help at all. And I still don't get interrupt messages when CPU debugging is enabled.

[edit] I figured out how to get messages when interrupts fire. This is the last part:

Code: Select all

00012820490d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012820670d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012821084d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012821433d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012821613d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012822027d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012822376d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012822556d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012822970d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012823497d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012823677d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012824091d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012824435d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012824615d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012825029d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012825373d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012825553d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012825967d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012826311d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012826491d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012826905d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012827249d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012827429d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012827843d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012828187d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012828367d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012828781d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012829138d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012829318d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012829732d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012830087d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012830778d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012831393d[CPU  ] interrupt(): vector = 8, INT = 0, EXT = 1
00012831403d[CPU  ] interrupt(): vector = 28, INT = 1, EXT = 0
00012831950d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012832641d[CPU  ] interrupt(): vector = 16, INT = 1, EXT = 0
00012833425d[CPU  ] interrupt(): vector = 19, INT = 1, EXT = 0
00012870058d[CPU  ] interrupt(): vector = 8, INT = 0, EXT = 1
00012870058d[CPU  ] int_trap_gate286(): INTERRUPT TO SAME PRIVILEGE
Before that is just endless int 16's. Can anyone help me with this, cause it should call the legitimate ISRs in those spots, right?[/edit]

Re:Need help remapping PICs

Posted: Sun Apr 03, 2005 2:13 am
by Pype.Clicker
well, the question is now where do you have int 8 generated. Probably the best for you would be to have trace-on from your bootloader.

e.g., using a debugable bochs:
break 0x7c00
c
trace-on
c

Re:Need help remapping PICs

Posted: Sun Apr 03, 2005 2:19 am
by Candy
Just by the look of it, int16 is int 0x10, so a video bios call. The int8 is the timer interrupt, irq0. You somehow call int 0x1C and 0x13 too, but that's in software.

What part is not normal?

Re:Need help remapping PICs

Posted: Sun Apr 03, 2005 2:35 am
by Kim
Or place a halt instruction before you enable interrupts and then enable trace and then continue.
Then you can see what the cpu does after you enable interrupts.

Code: Select all

   bwritestr('KERNEL DEBUG MSG: HLT IS GOING TO BE EXECUTED!');
   asm
      hlt
   end;
   ksti();
Image

Re:Need help remapping PICs

Posted: Sun Apr 03, 2005 12:33 pm
by Crazed123
Thanks, I've got the interrupts thing pretty much figured out it would seem. Or at least, I'm getting another error that seems to have nothing to do with interrupts.