From b29a823d91ac4d8abd87e58172e32d7b0b43be8d Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Fri, 21 Aug 2009 02:51:09 +0000 Subject: Detab in DuetPkg git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9170 6f19259b-4bc3-4df7-8a09-765794883524 --- DuetPkg/BootSector/bootsect.S | 2 +- DuetPkg/BootSector/bs16.S | 2 +- DuetPkg/BootSector/efi32.S | 2 +- DuetPkg/BootSector/efi64.S | 88 ++++++------ DuetPkg/BootSector/st16_64.S | 304 +++++++++++++++++++-------------------- DuetPkg/BootSector/st32_64.S | 304 +++++++++++++++++++-------------------- DuetPkg/BootSector/start.S | 4 +- DuetPkg/BootSector/start64.S | 324 +++++++++++++++++++++--------------------- 8 files changed, 515 insertions(+), 515 deletions(-) (limited to 'DuetPkg/BootSector') diff --git a/DuetPkg/BootSector/bootsect.S b/DuetPkg/BootSector/bootsect.S index eff9cd0c9f..178f94c5dc 100644 --- a/DuetPkg/BootSector/bootsect.S +++ b/DuetPkg/BootSector/bootsect.S @@ -129,7 +129,7 @@ BootSectorEntryPoint: xorw %bx, %bx FindEFILDR: - cmpl $LOADER_FILENAME_PART1, (%di) # Compare to "EFIL" + cmpl $LOADER_FILENAME_PART1, (%di) # Compare to "EFIL" jne FindVARSTORE cmpl $LOADER_FILENAME_PART2, 4(%di) jne FindVARSTORE diff --git a/DuetPkg/BootSector/bs16.S b/DuetPkg/BootSector/bs16.S index 217bef3b08..cbb3649a46 100644 --- a/DuetPkg/BootSector/bs16.S +++ b/DuetPkg/BootSector/bs16.S @@ -119,7 +119,7 @@ BootSectorEntryPoint: FindEFILDR: cmpl $LOADER_FILENAME_PART1, (%di) # Compare to "EFIL" jne FindVARSTORE - cmpl $LOADER_FILENAME_PART2, 4(%di) + cmpl $LOADER_FILENAME_PART2, 4(%di) jne FindVARSTORE cmpl $LOADER_FILENAME_PART3, 7(%di) jne FindVARSTORE diff --git a/DuetPkg/BootSector/efi32.S b/DuetPkg/BootSector/efi32.S index f21ff84384..1da2d5e6f3 100644 --- a/DuetPkg/BootSector/efi32.S +++ b/DuetPkg/BootSector/efi32.S @@ -59,7 +59,7 @@ Start: LOOP_1: # loop through all IDT entries exception handlers and initialize to default handler movw %bx, (%edi) # write bits 15..0 of offset movw $0x20, 2(%edi) # SYS_CODE_SEL from GDT - movw $(0x0e00 | 0x8000), 4(%edi) # type = 386 interrupt gate, present + movw $(0x0e00 | 0x8000), 4(%edi) # type = 386 interrupt gate, present movw %ax, 6(%edi) # write bits 31..16 of offset addl $8, %edi # move up to next descriptor addw DEFAULT_HANDLER_SIZE, %bx # move to next entry point diff --git a/DuetPkg/BootSector/efi64.S b/DuetPkg/BootSector/efi64.S index 57efe587e4..d95fc73bbe 100644 --- a/DuetPkg/BootSector/efi64.S +++ b/DuetPkg/BootSector/efi64.S @@ -32,8 +32,8 @@ # within 255 bytes of the common entry. This must # be done to maintain the consistency of the size # of entry points... - .byte 0xe9 # jmp 16 bit relative - .long commonIdtEntry - . - 4 # offset to jump to + .byte 0xe9 # jmp 16 bit relative + .long commonIdtEntry - . - 4 # offset to jump to .endm @@ -56,21 +56,21 @@ Start: call ClearScreen # Populate IDT with meaningful offsets for exception handlers... - sidt Idtr - + sidt Idtr + - movl Halt, %eax + movl Halt, %eax movl %eax,%ebx # use bx to copy 15..0 to descriptors shrl $16,%eax # use ax to copy 31..16 to descriptors # 63..32 of descriptors is 0 movl $0x78,%ecx # 78h IDT entries to initialize with unique entry points (exceptions) - movl (Idtr + 2), %esi + movl (Idtr + 2), %esi movl (%esi),%edi LOOP_1: # loop through all IDT entries exception handlers and initialize to default handler movw %bx, (%edi) # write bits 15..0 of offset movw $0x38, 2(%edi) # SYS_CODE_SEL64 from GDT - movw $(0x0e00 | 0x8000), 4(%edi) # type = 386 interrupt gate, present + movw $(0x0e00 | 0x8000), 4(%edi) # type = 386 interrupt gate, present movw %ax, 6(%edi) # write bits 31..16 of offset movl $0, 8(%edi) # write bits 31..16 of offset addl $16, %edi # move up to next descriptor @@ -123,12 +123,12 @@ LOOP_1: # loop through all IDT entries e movl 0x30(%ebp),%edi # edi = [[22000 + [22014] + 3c] + 2c] = ImageBase (63..32 is zero, ignore) movl 0x28(%ebp),%eax # eax = [[22000 + [22014] + 3c] + 24] = EntryPoint addl %edi,%eax # eax = ImageBase + EntryPoint - movl %ebx, EfiLdrOffset + movl %ebx, EfiLdrOffset movl %eax, (%ebx) # Modify far jump instruction for correct entry point - movw 6(%ebp), %bx # bx = Number of sections + movw 6(%ebp), %bx # bx = Number of sections xorl %eax,%eax - movw 0x14(%ebp), %ax # ax = Optional Header Size + movw 0x14(%ebp), %ax # ax = Optional Header Size addl %eax,%ebp addl $0x18,%ebp # ebp = Start of 1st Section @@ -155,12 +155,12 @@ SectionLoop: cmpw $0,%bx jne SectionLoop - movl (Idtr), %eax # get size of IDT - movzx (%edx), %eax + movl (Idtr), %eax # get size of IDT + movzx (%edx), %eax .byte 0xff .byte 0xc0 # inc eax - addl 2(%edx), %eax # add to base of IDT to get location of memory map... + addl 2(%edx), %eax # add to base of IDT to get location of memory map... xorl %ecx,%ecx movl %eax,%ecx # put argument to RCX @@ -379,11 +379,11 @@ commonIdtEntry: ja PrintDefaultString PrintExceptionString: shll $3,%eax ## multiply by 8 to get offset from StringTable to actual string address - addl StringTable, %eax + addl StringTable, %eax movl (%eax),%esi jmp PrintTheString PrintDefaultString: - movl IntUnknownString, %esi + movl IntUnknownString, %esi # patch Int number movl %eax,%edx call A2C @@ -394,35 +394,35 @@ PrintDefaultString: movb %al,(%esi) PrintTheString: call PrintString - movl String2, %esi + movl String2, %esi call PrintString .byte 0x48 movl 19*8(%ebp),%eax # CS call PrintQword movb $':', %al - movb %al, (%edi) + movb %al, (%edi) addl $2,%edi .byte 0x48 movl 18*8(%ebp),%eax # RIP call PrintQword - movl String3, %esi + movl String3, %esi call PrintString movl $0xb8140,%edi - movl StringRax, %esi + movl StringRax, %esi call PrintString .byte 0x48 movl 15*8(%ebp),%eax call PrintQword - movl StringRcx, %esi + movl StringRcx, %esi call PrintString .byte 0x48 movl 14*8(%ebp),%eax call PrintQword - movl StringRdx, %esi + movl StringRdx, %esi call PrintString .byte 0x48 movl 13*8(%ebp),%eax @@ -430,19 +430,19 @@ PrintTheString: movl $0xb81e0,%edi - movl StringRbx, %esi + movl StringRbx, %esi call PrintString .byte 0x48 movl 12*8(%ebp),%eax call PrintQword - movl StringRsp, %esi + movl StringRsp, %esi call PrintString .byte 0x48 movl 21*8(%ebp),%eax call PrintQword - movl StringRbp, %esi + movl StringRbp, %esi call PrintString .byte 0x48 movl 10*8(%ebp),%eax @@ -450,19 +450,19 @@ PrintTheString: movl $0xb8280,%edi - movl StringRsi, %esi + movl StringRsi, %esi call PrintString .byte 0x48 movl 9*8(%ebp),%eax call PrintQword - movl StringRdi, %esi + movl StringRdi, %esi call PrintString .byte 0x48 movl 8*8(%ebp),%eax call PrintQword - movl StringEcode, %esi + movl StringEcode, %esi call PrintString .byte 0x48 movl 17*8(%ebp),%eax @@ -470,19 +470,19 @@ PrintTheString: movl $0xb8320,%edi - movl StringR8, %esi + movl StringR8, %esi call PrintString .byte 0x48 movl 7*8(%ebp),%eax call PrintQword - movl StringR9, %esi + movl StringR9, %esi call PrintString .byte 0x48 movl 6*8(%ebp),%eax call PrintQword - movl StringR10, %esi + movl StringR10, %esi call PrintString .byte 0x48 movl 5*8(%ebp),%eax @@ -490,19 +490,19 @@ PrintTheString: movl $0xb83c0,%edi - movl StringR11, %esi + movl StringR11, %esi call PrintString .byte 0x48 movl 4*8(%ebp),%eax call PrintQword - movl StringR12, %esi + movl StringR12, %esi call PrintString .byte 0x48 movl 3*8(%ebp),%eax call PrintQword - movl StringR13, %esi + movl StringR13, %esi call PrintString .byte 0x48 movl 2*8(%ebp),%eax @@ -510,19 +510,19 @@ PrintTheString: movl $0xb8460,%edi - movl StringR14, %esi + movl StringR14, %esi call PrintString .byte 0x48 movl 1*8(%ebp),%eax call PrintQword - movl StringR15, %esi + movl StringR15, %esi call PrintString .byte 0x48 movl 0*8(%ebp),%eax call PrintQword - movl StringSs, %esi + movl StringSs, %esi call PrintString .byte 0x48 movl 22*8(%ebp),%eax @@ -530,7 +530,7 @@ PrintTheString: movl $0xb8500,%edi - movl StringRflags, %esi + movl StringRflags, %esi call PrintString .byte 0x48 movl 20*8(%ebp),%eax @@ -554,7 +554,7 @@ InnerLoop: movl (%esi),%eax call PrintQword addl $8,%esi - mov $0x00, %al + mov $0x00, %al movb %al,(%edi) addl $2,%edi loop InnerLoop @@ -585,7 +585,7 @@ InnerLoop1: movl (%esi),%eax call PrintQword addl $8,%esi - movb $0x00, %al + movb $0x00, %al movb %al,(%edi) addl $2,%edi loop InnerLoop1 @@ -652,10 +652,10 @@ LN_C1: PrintString: pushl %eax LN_C2: - movb (%esi), %al + movb (%esi), %al cmpb $0,%al je LN_C3 - movb %al, (%edi) + movb %al, (%edi) .byte 0xff .byte 0xc6 # inc esi @@ -687,7 +687,7 @@ looptop: jle @f addb $7,%bl @@: - movb %bl, (%edi) + movb %bl, (%edi) addl $2,%edi loop looptop #wbinvd @@ -701,12 +701,12 @@ ClearScreen: pushl %eax pushl %ecx - movb $0x00, %al + movb $0x00, %al movb $0xc,%ah movl $0xb8000,%edi movl $80*24,%ecx LN_C4: - movw %ax, (%edi) + movw %ax, (%edi) addl $2,%edi loop LN_C4 movl $0xb8000,%edi diff --git a/DuetPkg/BootSector/st16_64.S b/DuetPkg/BootSector/st16_64.S index d68613b1b6..d863f53840 100644 --- a/DuetPkg/BootSector/st16_64.S +++ b/DuetPkg/BootSector/st16_64.S @@ -74,7 +74,7 @@ BootSectorEntryPoint: NoVarStore: pushw %es # Set the 5th byte start @ 0:19000 to non-zero indicating we should init var store header in DxeIpl - movb %al, %es:(4) + movb %al, %es:(4) jmp SaveVolumeId CheckVarStoreSize: @@ -232,7 +232,7 @@ ReadCylinderLoop: movw $0x7bfc,%bp # bp = 0x7bfc movl %esi,%eax # eax = Start LBA xorl %edx,%edx # edx = 0 - movzwl (%bp), %ebx # bx = MaxSector + movzwl (%bp), %ebx # bx = MaxSector divl %ebx # ax = StartLBA / MaxSector incw %dx # dx = (StartLBA % MaxSector) + 1 @@ -354,7 +354,7 @@ MemMapLoop: MemMapDone: leal MemoryMap, %eax subl %eax,%edi # Get the address of the memory map - movl %edi, MemoryMapSize # Save the size of the memory map + movl %edi, MemoryMapSize # Save the size of the memory map xorl %ebx,%ebx movw %cs,%bx # BX=segment @@ -416,7 +416,7 @@ A20GateEnabled: leal OffsetIn32BitProtectedMode, %eax addl $0x20000+0x6,%eax - movl %eax, OffsetIn32BitProtectedMode + movl %eax, OffsetIn32BitProtectedMode leal OffsetInLongMode, %eax addl $0x20000+0x6,%eax @@ -582,7 +582,7 @@ Empty8042Loop: .p2align 1 - gdtr: .long GDT_END - GDT_BASE - 1 # GDT limit + gdtr: .long GDT_END - GDT_BASE - 1 # GDT limit .long 0 # (GDT base gets set above) ############################################################################## # global descriptor table (GDT) @@ -701,366 +701,366 @@ idtr: .long IDT_END - IDT_BASE - 1 # IDT limit IDT_BASE: # divide by zero (INT 0) .equ DIV_ZERO_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # debug exception (INT 1) .equ DEBUG_EXCEPT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # NMI (INT 2) .equ NMI_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # soft breakpoint (INT 3) .equ BREAKPOINT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # overflow (INT 4) .equ OVERFLOW_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # bounds check (INT 5) .equ BOUNDS_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # invalid opcode (INT 6) .equ INVALID_OPCODE_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # device not available (INT 7) .equ DEV_NOT_AVAIL_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # double fault (INT 8) .equ DOUBLE_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Coprocessor segment overrun - reserved (INT 9) .equ RSVD_INTR_SEL1, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # invalid TSS (INT 0ah) .equ INVALID_TSS_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # segment not present (INT 0bh) .equ SEG_NOT_PRESENT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # stack fault (INT 0ch) .equ STACK_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # general protection (INT 0dh) .equ GP_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # page fault (INT 0eh) .equ PAGE_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Intel reserved - do not use (INT 0fh) .equ RSVD_INTR_SEL2, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # floating point error (INT 10h) .equ FLT_POINT_ERR_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # alignment check (INT 11h) .equ ALIGNMENT_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # machine check (INT 12h) .equ MACHINE_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # SIMD floating-point exception (INT 13h) .equ SIMD_EXCEPTION_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # 85 unspecified descriptors, First 12 of them are reserved, the rest are avail - .fill 85 * 16, 1, 0 # db (85 * 16) dup(0) + .fill 85 * 16, 1, 0 # db (85 * 16) dup(0) # IRQ 0 (System timer) - (INT 68h) .equ IRQ0_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 1 (8042 Keyboard controller) - (INT 69h) .equ IRQ1_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Reserved - IRQ 2 redirect (IRQ 2) - DO NOT USE!!! - (INT 6ah) .equ IRQ2_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 3 (COM 2) - (INT 6bh) .equ IRQ3_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 4 (COM 1) - (INT 6ch) .equ IRQ4_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 5 (LPT 2) - (INT 6dh) .equ IRQ5_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 6 (Floppy controller) - (INT 6eh) .equ IRQ6_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 7 (LPT 1) - (INT 6fh) .equ IRQ7_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 8 (RTC Alarm) - (INT 70h) .equ IRQ8_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 9 - (INT 71h) .equ IRQ9_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 10 - (INT 72h) .equ IRQ10_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 11 - (INT 73h) .equ IRQ11_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 12 (PS/2 mouse) - (INT 74h) .equ IRQ12_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 13 (Floating point error) - (INT 75h) .equ IRQ13_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 14 (Secondary IDE) - (INT 76h) .equ IRQ14_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 15 (Primary IDE) - (INT 77h) .equ IRQ15_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved IDT_END: @@ -1101,7 +1101,7 @@ MemoryMap: .long 0,0,0,0,0,0,0,0 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - #.org 0x0fe0 #Just for pass build + #.org 0x0fe0 #Just for pass build MyStack: # below is the pieces of the IVT that is used to redirect INT 68h - 6fh # back to INT 08h - 0fh when in real mode... It is 'org'ed to a @@ -1133,7 +1133,7 @@ MyStack: iret - #.org 0x0ffe #Just for pass build + #.org 0x0ffe #Just for pass build BlockSignature: .word 0xaa55 diff --git a/DuetPkg/BootSector/st32_64.S b/DuetPkg/BootSector/st32_64.S index 747289b211..b16b41f0ec 100644 --- a/DuetPkg/BootSector/st32_64.S +++ b/DuetPkg/BootSector/st32_64.S @@ -89,7 +89,7 @@ BootSectorEntryPoint: NoVarStore: pushw %es # Set the 5th byte start @ 0:19000 to non-zero indicating we should init var store header in DxeIpl - movb %al, %es:(4) + movb %al, %es:(4) jmp SaveVolumeId CheckVarStoreSize: @@ -247,7 +247,7 @@ ReadCylinderLoop: movw $0x7bfc,%bp # bp = 0x7bfc movl %esi,%eax # eax = Start LBA xorl %edx,%edx # edx = 0 - movzwl (%bp), %ebx # bx = MaxSector + movzwl (%bp), %ebx # bx = MaxSector divl %ebx # ax = StartLBA / MaxSector incw %dx # dx = (StartLBA % MaxSector) + 1 @@ -369,7 +369,7 @@ MemMapLoop: MemMapDone: leal MemoryMap, %eax subl %eax,%edi # Get the address of the memory map - movl %edi, MemoryMapSize # Save the size of the memory map + movl %edi, MemoryMapSize # Save the size of the memory map xorl %ebx,%ebx movw %cs,%bx # BX=segment @@ -431,7 +431,7 @@ A20GateEnabled: leal OffsetIn32BitProtectedMode, %eax addl $0x20000+0x6,%eax - movl %eax, OffsetIn32BitProtectedMode + movl %eax, OffsetIn32BitProtectedMode leal OffsetInLongMode, %eax addl $0x20000+0x6,%eax @@ -597,7 +597,7 @@ Empty8042Loop: .p2align 1 - gdtr: .long GDT_END - GDT_BASE - 1 # GDT limit + gdtr: .long GDT_END - GDT_BASE - 1 # GDT limit .long 0 # (GDT base gets set above) ############################################################################## # global descriptor table (GDT) @@ -716,366 +716,366 @@ idtr: .long IDT_END - IDT_BASE - 1 # IDT limit IDT_BASE: # divide by zero (INT 0) .equ DIV_ZERO_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # debug exception (INT 1) .equ DEBUG_EXCEPT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # NMI (INT 2) .equ NMI_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # soft breakpoint (INT 3) .equ BREAKPOINT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # overflow (INT 4) .equ OVERFLOW_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # bounds check (INT 5) .equ BOUNDS_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # invalid opcode (INT 6) .equ INVALID_OPCODE_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # device not available (INT 7) .equ DEV_NOT_AVAIL_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # double fault (INT 8) .equ DOUBLE_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Coprocessor segment overrun - reserved (INT 9) .equ RSVD_INTR_SEL1, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # invalid TSS (INT 0ah) .equ INVALID_TSS_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # segment not present (INT 0bh) .equ SEG_NOT_PRESENT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # stack fault (INT 0ch) .equ STACK_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # general protection (INT 0dh) .equ GP_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # page fault (INT 0eh) .equ PAGE_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Intel reserved - do not use (INT 0fh) .equ RSVD_INTR_SEL2, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # floating point error (INT 10h) .equ FLT_POINT_ERR_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # alignment check (INT 11h) .equ ALIGNMENT_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # machine check (INT 12h) .equ MACHINE_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # SIMD floating-point exception (INT 13h) .equ SIMD_EXCEPTION_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # 85 unspecified descriptors, First 12 of them are reserved, the rest are avail - .fill 85 * 16, 1, 0 # db (85 * 16) dup(0) + .fill 85 * 16, 1, 0 # db (85 * 16) dup(0) # IRQ 0 (System timer) - (INT 68h) .equ IRQ0_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 1 (8042 Keyboard controller) - (INT 69h) .equ IRQ1_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Reserved - IRQ 2 redirect (IRQ 2) - DO NOT USE!!! - (INT 6ah) .equ IRQ2_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 3 (COM 2) - (INT 6bh) .equ IRQ3_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 4 (COM 1) - (INT 6ch) .equ IRQ4_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 5 (LPT 2) - (INT 6dh) .equ IRQ5_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 6 (Floppy controller) - (INT 6eh) .equ IRQ6_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 7 (LPT 1) - (INT 6fh) .equ IRQ7_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 8 (RTC Alarm) - (INT 70h) .equ IRQ8_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 9 - (INT 71h) .equ IRQ9_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 10 - (INT 72h) .equ IRQ10_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 11 - (INT 73h) .equ IRQ11_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 12 (PS/2 mouse) - (INT 74h) .equ IRQ12_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 13 (Floating point error) - (INT 75h) .equ IRQ13_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 14 (Secondary IDE) - (INT 76h) .equ IRQ14_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 15 (Primary IDE) - (INT 77h) .equ IRQ15_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved IDT_END: @@ -1116,7 +1116,7 @@ MemoryMap: .long 0,0,0,0,0,0,0,0 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - #.org 0x0fe0 #Just for pass build + #.org 0x0fe0 #Just for pass build MyStack: # below is the pieces of the IVT that is used to redirect INT 68h - 6fh # back to INT 08h - 0fh when in real mode... It is 'org'ed to a @@ -1148,7 +1148,7 @@ MyStack: iret - #.org 0x0ffe #Just for pass build + #.org 0x0ffe #Just for pass build BlockSignature: .word 0xaa55 diff --git a/DuetPkg/BootSector/start.S b/DuetPkg/BootSector/start.S index 177e9ae82e..183ebe2065 100644 --- a/DuetPkg/BootSector/start.S +++ b/DuetPkg/BootSector/start.S @@ -18,7 +18,7 @@ .stack: .486p: .code16 - + .equ FAT_DIRECTORY_ENTRY_SIZE, 0x020 .equ FAT_DIRECTORY_ENTRY_SHIFT, 5 .equ BLOCK_SIZE, 0x0200 @@ -715,7 +715,7 @@ IDT_BASE: .word 0 # offset 31:16 # 85 unspecified descriptors, First 12 of them are reserved, the rest are avail - .fill 85 * 8, 1, 0 # db (85 * 8) dup(0) + .fill 85 * 8, 1, 0 # db (85 * 8) dup(0) # IRQ 0 (System timer) - (INT 0x68) .equ IRQ0_SEL, .-IDT_BASE diff --git a/DuetPkg/BootSector/start64.S b/DuetPkg/BootSector/start64.S index 39e5869fe2..3269b221ae 100644 --- a/DuetPkg/BootSector/start64.S +++ b/DuetPkg/BootSector/start64.S @@ -54,7 +54,7 @@ SystemId: .ascii "FAT12 " # SystemId - 8 bytes BootSectorEntryPoint: # ASSUME ds:@code" - # ASSUME ss:@code" + # ASSUME ss:@code" # ds = 1000, es = 2000 + x (size of first cluster >> 4) # cx = Start Cluster of EfiLdr # dx = Start Cluster of Efivar.bin @@ -74,7 +74,7 @@ BootSectorEntryPoint: NoVarStore: pushw %es # Set the 5th byte start @ 0:19000 to non-zero indicating we should init var store header in DxeIpl - movb %al, %es:(4) + movb %al, %es:(4) jmp SaveVolumeId CheckVarStoreSize: @@ -86,7 +86,7 @@ CheckVarStoreSize: LoadVarStore: movb $0,%al movb %al, %es:(4) - movw (%di), %cx + movw (%di), %cx # ES:DI = 1500:0 xorw %di,%di pushw %es @@ -98,7 +98,7 @@ SaveVolumeId: movw VolId(%bp), %ax movw %ax, %es:(0) movw VolId+2(%bp), %ax - movw %ax, %es:(2) + movw %ax, %es:(2) # Read Efildr popw %cx @@ -166,7 +166,7 @@ FatChainLoop: pushw %si # Save si movw %ax,%si # si = FatOffset shrw $BLOCK_SHIFT, %ax # ax = FatOffset >> BLOCK_SHIFT - addw ReservedSectors(%bp), %ax # ax = FatSectorNumber = ReservedSectors + (FatOffset >> BLOCK_OFFSET) + addw ReservedSectors(%bp), %ax # ax = FatSectorNumber = ReservedSectors + (FatOffset >> BLOCK_OFFSET) andw $BLOCK_MASK, %si # si = FatOffset & BLOCK_MASK cmpw %dx,%ax # Compare FatSectorNumber to CachedFatSectorNumber je SkipFatRead @@ -178,7 +178,7 @@ FatChainLoop: popw %es movw %ax,%dx # CachedFatSectorNumber = FatSectorNumber SkipFatRead: - movw (%si), %bx # bx = NextClusterNumber + movw (%si), %bx # bx = NextClusterNumber movw %cx,%ax # ax = ClusterNumber andw $1,%ax # See if this is an odd cluster number je EvenFatEntry @@ -200,9 +200,9 @@ ReadClusters: movw %bx,%cx # ClusterNumber = NextClusterNumber subw $2,%ax # ax = StartCluster - 2 xorb %bh,%bh - movb SectorsPerCluster(%bp), %bl # bx = SectorsPerCluster + movb SectorsPerCluster(%bp), %bl # bx = SectorsPerCluster mulw %bx # ax = (StartCluster - 2) * SectorsPerCluster - addw (%bp), %ax # ax = FirstClusterLBA + (StartCluster-2)*SectorsPerCluster + addw (%bp), %ax # ax = FirstClusterLBA + (StartCluster-2)*SectorsPerCluster pushw %ax # save start sector movw %si,%ax # ax = NumberOfClusters mulw %bx # ax = NumberOfClusters * SectorsPerCluster @@ -243,7 +243,7 @@ ReadCylinderLoop: divl %ebx # ax = StartLBA / MaxSector incw %dx # dx = (StartLBA % MaxSector) + 1 - movw (%bp), %bx # bx = MaxSector + movw (%bp), %bx # bx = MaxSector subw %dx,%bx # bx = MaxSector - Sector incw %bx # bx = MaxSector - Sector + 1 cmpw %bx,%cx # Compare (Blocks) to (MaxSector - Sector + 1) @@ -311,11 +311,11 @@ Halt: ErrorString: .byte 'S', 0x0c, 'E', 0x0c, 'r', 0x0c, 'r', 0x0c, 'o', 0x0c, 'r', 0x0c, '!',0x0c - .org 0x01fa + .org 0x01fa LBAOffsetForBootSector: .long 0x0 - .org 0x01fe + .org 0x01fe .word 0xaa55 #****************************************************************************** @@ -328,7 +328,7 @@ LBAOffsetForBootSector: .equ WRITE_DATA_PORT_CMD, 0x0d1 # 8042 command to write the data port .equ ENABLE_A20_CMD, 0x0df # 8042 command to enable A20 - .org 0x200 + .org 0x200 jmp start Em64String: .byte 'E', 0x0c, 'm', 0x0c, '6', 0x0c, '4', 0x0c, 'T', 0x0c, ' ', 0x0c, 'U', 0x0c, 'n', 0x0c, 's', 0x0c, 'u', 0x0c, 'p', 0x0c, 'p', 0x0c, 'o', 0x0c, 'r', 0x0c, 't', 0x0c, 'e', 0x0c, 'd', 0x0c, '!', 0x0c @@ -361,7 +361,7 @@ MemMapLoop: MemMapDone: leal MemoryMap, %eax subl %eax,%edi # Get the address of the memory map - movl %edi, MemoryMapSize # Save the size of the memory map + movl %edi, MemoryMapSize # Save the size of the memory map xorl %ebx,%ebx movw %cs,%bx # BX=segment @@ -423,7 +423,7 @@ A20GateEnabled: leal OffsetIn32BitProtectedMode, %eax addl $0x20000+0x6,%eax - movl %eax, OffsetIn32BitProtectedMode + movl %eax, OffsetIn32BitProtectedMode leal OffsetInLongMode, %eax addl $0x20000+0x6,%eax @@ -589,7 +589,7 @@ Empty8042Loop: .p2align 1 - gdtr: .long GDT_END - GDT_BASE - 1 # GDT limit + gdtr: .long GDT_END - GDT_BASE - 1 # GDT limit .long 0 # (GDT base gets set above) ############################################################################## # global descriptor table (GDT) @@ -708,366 +708,366 @@ idtr: .long IDT_END - IDT_BASE - 1 # IDT limit IDT_BASE: # divide by zero (INT 0) .equ DIV_ZERO_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # debug exception (INT 1) .equ DEBUG_EXCEPT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # NMI (INT 2) .equ NMI_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # soft breakpoint (INT 3) .equ BREAKPOINT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # overflow (INT 4) .equ OVERFLOW_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # bounds check (INT 5) .equ BOUNDS_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # invalid opcode (INT 6) .equ INVALID_OPCODE_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # device not available (INT 7) .equ DEV_NOT_AVAIL_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # double fault (INT 8) .equ DOUBLE_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Coprocessor segment overrun - reserved (INT 9) .equ RSVD_INTR_SEL1, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # invalid TSS (INT 0ah) .equ INVALID_TSS_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # segment not present (INT 0bh) .equ SEG_NOT_PRESENT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # stack fault (INT 0ch) .equ STACK_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # general protection (INT 0dh) .equ GP_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # page fault (INT 0eh) .equ PAGE_FAULT_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Intel reserved - do not use (INT 0fh) .equ RSVD_INTR_SEL2, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # floating point error (INT 10h) .equ FLT_POINT_ERR_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # alignment check (INT 11h) .equ ALIGNMENT_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # machine check (INT 12h) .equ MACHINE_CHECK_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # SIMD floating-point exception (INT 13h) .equ SIMD_EXCEPTION_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # 85 unspecified descriptors, First 12 of them are reserved, the rest are avail - .fill 85 * 16, 1, 0 # db (85 * 16) dup(0) + .fill 85 * 16, 1, 0 # db (85 * 16) dup(0) # IRQ 0 (System timer) - (INT 68h) .equ IRQ0_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 1 (8042 Keyboard controller) - (INT 69h) .equ IRQ1_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # Reserved - IRQ 2 redirect (IRQ 2) - DO NOT USE!!! - (INT 6ah) .equ IRQ2_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 3 (COM 2) - (INT 6bh) .equ IRQ3_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 4 (COM 1) - (INT 6ch) .equ IRQ4_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 5 (LPT 2) - (INT 6dh) .equ IRQ5_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 6 (Floppy controller) - (INT 6eh) .equ IRQ6_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 7 (LPT 1) - (INT 6fh) .equ IRQ7_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 8 (RTC Alarm) - (INT 70h) .equ IRQ8_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 9 - (INT 71h) .equ IRQ9_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 10 - (INT 72h) .equ IRQ10_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 11 - (INT 73h) .equ IRQ11_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 12 (PS/2 mouse) - (INT 74h) .equ IRQ12_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 13 (Floating point error) - (INT 75h) .equ IRQ13_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 14 (Secondary IDE) - (INT 76h) .equ IRQ14_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved # IRQ 15 (Primary IDE) - (INT 77h) .equ IRQ15_SEL, .-IDT_BASE - .word 0 # offset 15:0 + .word 0 # offset 15:0 .long SYS_CODE64_SEL # selector 15:0 .byte 0 # 0 for interrupt gate .byte 0x0e | 0x80 # type = 386 interrupt gate, present - .word 0 # offset 31:16 - .long 0 # offset 63:32 - .long 0 # 0 for reserved + .word 0 # offset 31:16 + .long 0 # offset 63:32 + .long 0 # 0 for reserved IDT_END: @@ -1108,7 +1108,7 @@ MemoryMap: .long 0,0,0,0,0,0,0,0 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .org 0x0fe0 + .org 0x0fe0 MyStack: # below is the pieces of the IVT that is used to redirect INT 68h - 6fh # back to INT 08h - 0fh when in real mode... It is 'org'ed to a @@ -1140,7 +1140,7 @@ MyStack: iret - .org 0x0ffe + .org 0x0ffe BlockSignature: .word 0xaa55 -- cgit v1.2.3