From b399556da18537e1b5faabce6c29d1c711db9d20 Mon Sep 17 00:00:00 2001 From: shockrahwow Date: Wed, 6 Nov 2019 19:17:20 -0800 Subject: [PATCH 1/2] gui debugger init file --- bx_enh_dbg.ini | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 bx_enh_dbg.ini diff --git a/bx_enh_dbg.ini b/bx_enh_dbg.ini new file mode 100644 index 0000000..456164d --- /dev/null +++ b/bx_enh_dbg.ini @@ -0,0 +1,26 @@ +# bx_enh_dbg_ini +SeeReg[0] = TRUE +SeeReg[1] = TRUE +SeeReg[2] = TRUE +SeeReg[3] = TRUE +SeeReg[4] = FALSE +SeeReg[5] = FALSE +SeeReg[6] = FALSE +SeeReg[7] = FALSE +SingleCPU = FALSE +ShowIOWindows = TRUE +ShowButtons = TRUE +SeeRegColors = TRUE +ignoreNxtT = TRUE +ignSSDisasm = TRUE +UprCase = 0 +DumpInAsciiMode = 3 +isLittleEndian = TRUE +DefaultAsmLines = 512 +DumpWSIndex = 0 +DockOrder = 0x123 +ListWidthPix[0] = 362 +ListWidthPix[1] = 466 +ListWidthPix[2] = 534 +MainWindow = 0, 0, 951, 500 +FontName = Normal From 511a6eb52aafa598a4b35d650d7095f206287c0f Mon Sep 17 00:00:00 2001 From: shockrahwow Date: Wed, 6 Nov 2019 19:31:23 -0800 Subject: [PATCH 2/2] renamed interrupts to line up with indexes in table --- bx_enh_dbg.ini | 26 ----------------- interrupt_entry.s | 6 ++-- interrupts.c | 71 +++++++++++++++++++++++------------------------ 3 files changed, 36 insertions(+), 67 deletions(-) delete mode 100644 bx_enh_dbg.ini diff --git a/bx_enh_dbg.ini b/bx_enh_dbg.ini deleted file mode 100644 index 456164d..0000000 --- a/bx_enh_dbg.ini +++ /dev/null @@ -1,26 +0,0 @@ -# bx_enh_dbg_ini -SeeReg[0] = TRUE -SeeReg[1] = TRUE -SeeReg[2] = TRUE -SeeReg[3] = TRUE -SeeReg[4] = FALSE -SeeReg[5] = FALSE -SeeReg[6] = FALSE -SeeReg[7] = FALSE -SingleCPU = FALSE -ShowIOWindows = TRUE -ShowButtons = TRUE -SeeRegColors = TRUE -ignoreNxtT = TRUE -ignSSDisasm = TRUE -UprCase = 0 -DumpInAsciiMode = 3 -isLittleEndian = TRUE -DefaultAsmLines = 512 -DumpWSIndex = 0 -DockOrder = 0x123 -ListWidthPix[0] = 362 -ListWidthPix[1] = 466 -ListWidthPix[2] = 534 -MainWindow = 0, 0, 951, 500 -FontName = Normal diff --git a/interrupt_entry.s b/interrupt_entry.s index 9626b2b..49428bc 100644 --- a/interrupt_entry.s +++ b/interrupt_entry.s @@ -73,6 +73,7 @@ common_int_handler: iret +no_err_handler 0 no_err_handler 1 no_err_handler 2 no_err_handler 3 @@ -93,9 +94,7 @@ err_code_handler 14 no_err_handler 15 no_err_handler 16 - -err_code_handler 17 - +no_err_handler 17 no_err_handler 18 no_err_handler 19 no_err_handler 20 @@ -110,4 +109,3 @@ no_err_handler 28 no_err_handler 29 no_err_handler 30 no_err_handler 31 -no_err_handler 32 diff --git a/interrupts.c b/interrupts.c index 7f8914f..8024bf0 100644 --- a/interrupts.c +++ b/interrupts.c @@ -28,6 +28,7 @@ const char* err_msg[] = { }; extern void load_idt(); // found in interrupts_entry.s +extern void no_err_handler_0(); extern void no_err_handler_1(); extern void no_err_handler_2(); extern void no_err_handler_3(); @@ -48,9 +49,7 @@ extern void err_code_handler_14(); extern void no_err_handler_15(); extern void no_err_handler_16(); - -extern void err_code_handler_17(); - +extern void no_err_handler_17(); extern void no_err_handler_18(); extern void no_err_handler_19(); extern void no_err_handler_20(); @@ -65,7 +64,6 @@ extern void no_err_handler_28(); extern void no_err_handler_29(); extern void no_err_handler_30(); extern void no_err_handler_31(); -extern void no_err_handler_32(); void setup_idt_entry(u32 t_idx, u32 base, u16 sel, u8 type_attrs) { @@ -106,44 +104,43 @@ void init_idt() { // clear table memset((u8*)IDT, 0x00, (sizeof(struct IDT_Entry) * IDT_SIZE)); // add interrupt service routines here - setup_idt_entry(0,(u32)no_err_handler_1,0x08, 0x8e); - setup_idt_entry(1,(u32)no_err_handler_2,0x08, 0x8e); - setup_idt_entry(2,(u32)no_err_handler_3,0x08, 0x8e); - setup_idt_entry(3,(u32)no_err_handler_4,0x08, 0x8e); - setup_idt_entry(4,(u32)no_err_handler_5,0x08, 0x8e); - setup_idt_entry(5,(u32)no_err_handler_6,0x08, 0x8e); - setup_idt_entry(6,(u32)no_err_handler_7,0x08, 0x8e); + setup_idt_entry(0,(u32)no_err_handler_0,0x08, 0x8e); + setup_idt_entry(1,(u32)no_err_handler_1,0x08, 0x8e); + setup_idt_entry(2,(u32)no_err_handler_2,0x08, 0x8e); + setup_idt_entry(3,(u32)no_err_handler_3,0x08, 0x8e); + setup_idt_entry(4,(u32)no_err_handler_4,0x08, 0x8e); + setup_idt_entry(5,(u32)no_err_handler_5,0x08, 0x8e); + setup_idt_entry(6,(u32)no_err_handler_6,0x08, 0x8e); + setup_idt_entry(7,(u32)no_err_handler_7,0x08, 0x8e); - setup_idt_entry(7,(u32)err_code_handler_8,0x08, 0x8e); + setup_idt_entry(8,(u32)err_code_handler_8,0x08, 0x8e); - setup_idt_entry(8,(u32)no_err_handler_9,0x08, 0x8e); + setup_idt_entry(9,(u32)no_err_handler_9,0x08, 0x8e); - setup_idt_entry(9,(u32)err_code_handler_10,0x08, 0x8e); - setup_idt_entry(10,(u32)err_code_handler_11,0x08, 0x8e); - setup_idt_entry(11,(u32)err_code_handler_12,0x08, 0x8e); - setup_idt_entry(12,(u32)err_code_handler_13,0x08, 0x8e); - setup_idt_entry(13,(u32)err_code_handler_14,0x08, 0x8e); - setup_idt_entry(14,(u32)no_err_handler_15,0x08, 0x8e); - setup_idt_entry(15,(u32)no_err_handler_16,0x08, 0x8e); + setup_idt_entry(10,(u32)err_code_handler_10,0x08, 0x8e); + setup_idt_entry(11,(u32)err_code_handler_11,0x08, 0x8e); + setup_idt_entry(12,(u32)err_code_handler_12,0x08, 0x8e); + setup_idt_entry(13,(u32)err_code_handler_13,0x08, 0x8e); + setup_idt_entry(14,(u32)err_code_handler_14,0x08, 0x8e); - setup_idt_entry(16,(u32)err_code_handler_17,0x08, 0x8e); - - setup_idt_entry(17,(u32)no_err_handler_18,0x08, 0x8e); - setup_idt_entry(18,(u32)no_err_handler_19,0x08, 0x8e); - setup_idt_entry(19,(u32)no_err_handler_20,0x08, 0x8e); - setup_idt_entry(20,(u32)no_err_handler_21,0x08, 0x8e); - setup_idt_entry(21,(u32)no_err_handler_22,0x08, 0x8e); - setup_idt_entry(22,(u32)no_err_handler_23,0x08, 0x8e); - setup_idt_entry(23,(u32)no_err_handler_24,0x08, 0x8e); - setup_idt_entry(24,(u32)no_err_handler_25,0x08, 0x8e); - setup_idt_entry(25,(u32)no_err_handler_26,0x08, 0x8e); - setup_idt_entry(26,(u32)no_err_handler_27,0x08, 0x8e); - setup_idt_entry(27,(u32)no_err_handler_28,0x08, 0x8e); - setup_idt_entry(28,(u32)no_err_handler_29,0x08, 0x8e); - setup_idt_entry(29,(u32)no_err_handler_30,0x08, 0x8e); - setup_idt_entry(30,(u32)no_err_handler_31,0x08, 0x8e); - setup_idt_entry(31,(u32)no_err_handler_32,0x08, 0x8e); + setup_idt_entry(15,(u32)no_err_handler_15,0x08, 0x8e); + setup_idt_entry(16,(u32)no_err_handler_16,0x08, 0x8e); + setup_idt_entry(17,(u32)no_err_handler_17,0x08, 0x8e); + setup_idt_entry(18,(u32)no_err_handler_18,0x08, 0x8e); + setup_idt_entry(19,(u32)no_err_handler_19,0x08, 0x8e); + setup_idt_entry(20,(u32)no_err_handler_20,0x08, 0x8e); + setup_idt_entry(21,(u32)no_err_handler_21,0x08, 0x8e); + setup_idt_entry(22,(u32)no_err_handler_22,0x08, 0x8e); + setup_idt_entry(23,(u32)no_err_handler_23,0x08, 0x8e); + setup_idt_entry(24,(u32)no_err_handler_24,0x08, 0x8e); + setup_idt_entry(25,(u32)no_err_handler_25,0x08, 0x8e); + setup_idt_entry(26,(u32)no_err_handler_26,0x08, 0x8e); + setup_idt_entry(27,(u32)no_err_handler_27,0x08, 0x8e); + setup_idt_entry(28,(u32)no_err_handler_28,0x08, 0x8e); + setup_idt_entry(29,(u32)no_err_handler_29,0x08, 0x8e); + setup_idt_entry(30,(u32)no_err_handler_30,0x08, 0x8e); + setup_idt_entry(31,(u32)no_err_handler_31,0x08, 0x8e); // Load IDT with all the new information in place, ready to use load_idt();