]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/BootSector/efi64.S
ArmPkg/UncachedMemoryAllocationLib: restore mapping attributes after free
[mirror_edk2.git] / DuetPkg / BootSector / efi64.S
index 57efe587e485be831da500edba59d0d2bd61b3b0..34bd7521b95a6794502bf2b3bc4de2eb94eab320 100644 (file)
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------\r
 #*\r
-#*   Copyright 2006, Intel Corporation                                                         \r
-#*   All rights reserved. This program and the accompanying materials                          \r
+#*   Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+#*   This program and the accompanying materials                          \r
 #*   are licensed and made available under the terms and conditions of the BSD License         \r
 #*   which accompanies this distribution.  The full text of the license may be found at        \r
 #*   http://opensource.org/licenses/bsd-license.php                                            \r
@@ -24,6 +24,9 @@
         .code: \r
         .org 0x21000\r
 \r
+.global _start\r
+_start:\r
+\r
 .equ                 DEFAULT_HANDLER_SIZE, INT1 - INT0\r
 \r
 .macro jmpCommonIdtEntry  \r
@@ -32,8 +35,8 @@
     #                          within 255 bytes of the common entry.  This must\r
     #                          be done to maintain the consistency of the size\r
     #                          of entry points...\r
-    .byte   0xe9                                        # jmp 16 bit relative\r
-               .long   commonIdtEntry - . - 4   # offset to jump to\r
+    .byte   0xe9                     # jmp 16 bit relative\r
+    .long   commonIdtEntry - . - 4   # offset to jump to\r
 .endm\r
 \r
 \r
@@ -56,25 +59,26 @@ Start:
     call    ClearScreen\r
 \r
     # Populate IDT with meaningful offsets for exception handlers...\r
-               sidt    Idtr \r
-               \r
+    movl    $Idtr, %eax\r
+    sidt    (%eax)                      # get fword address of IDT\r
+    \r
 \r
-               movl    Halt, %eax\r
+    movl    $Halt, %eax\r
     movl    %eax,%ebx                   # use bx to copy 15..0 to descriptors\r
     shrl    $16,%eax                    # use ax to copy 31..16 to descriptors \r
                                         # 63..32 of descriptors is 0\r
     movl    $0x78,%ecx                  # 78h IDT entries to initialize with unique entry points (exceptions)\r
-               movl    (Idtr + 2), %esi\r
+    movl    $(Idtr + 2), %esi\r
     movl    (%esi),%edi\r
 \r
 LOOP_1:                                         # loop through all IDT entries exception handlers and initialize to default handler\r
     movw    %bx, (%edi)                         # write bits 15..0 of offset\r
     movw    $0x38, 2(%edi)                      # SYS_CODE_SEL64 from GDT\r
-    movw    $(0x0e00 | 0x8000), 4(%edi)                # type = 386 interrupt gate, present\r
+    movw    $(0x0e00 | 0x8000), 4(%edi)         # type = 386 interrupt gate, present\r
     movw    %ax, 6(%edi)                        # write bits 31..16 of offset\r
     movl    $0, 8(%edi)                         # write bits 31..16 of offset  \r
     addl    $16, %edi                           # move up to next descriptor\r
-    addw    DEFAULT_HANDLER_SIZE, %bx           # move to next entry point\r
+    addw    $DEFAULT_HANDLER_SIZE, %bx          # move to next entry point\r
     loopl   LOOP_1                              # loop back through again until all descriptors are initialized\r
 \r
     ## at this point edi contains the offset of the descriptor for INT 20\r
@@ -123,12 +127,12 @@ LOOP_1:                                         # loop through all IDT entries e
     movl    0x30(%ebp),%edi             # edi = [[22000 + [22014] + 3c] + 2c] = ImageBase (63..32 is zero, ignore)\r
     movl    0x28(%ebp),%eax             # eax = [[22000 + [22014] + 3c] + 24] = EntryPoint\r
     addl    %edi,%eax                   # eax = ImageBase + EntryPoint\r
-               movl    %ebx, EfiLdrOffset          \r
+    movl    $EfiLdrOffset, %ebx\r
     movl    %eax, (%ebx)                # Modify far jump instruction for correct entry point\r
 \r
-               movw    6(%ebp), %bx                # bx = Number of sections\r
+    movw    6(%ebp), %bx                # bx = Number of sections\r
     xorl    %eax,%eax\r
-               movw    0x14(%ebp), %ax             # ax = Optional Header Size\r
+    movw    0x14(%ebp), %ax             # ax = Optional Header Size\r
     addl    %eax,%ebp\r
     addl    $0x18,%ebp                  # ebp = Start of 1st Section\r
 \r
@@ -155,12 +159,12 @@ SectionLoop:
     cmpw    $0,%bx\r
     jne     SectionLoop\r
 \r
-               movl    (Idtr), %eax                  # get size of IDT\r
-               movzx           (%edx), %eax\r
+    movl    $Idtr, %edx                  # get size of IDT\r
+    movzxw  (%edx), %eax\r
     .byte 0xff\r
     .byte 0xc0\r
 #    inc     eax\r
-               addl    2(%edx), %eax                                                            # add to base of IDT to get location of memory map...\r
+    addl    2(%edx), %eax                # add to base of IDT to get location of memory map...\r
     xorl    %ecx,%ecx\r
     movl    %eax,%ecx                    # put argument to RCX\r
 \r
@@ -296,13 +300,608 @@ INT19:
     jmpCommonIdtEntry \r
 \r
 INTUnknown: \r
-.rept  (0x78 - 20)\r
+# The following segment repeats (0x78 - 20) times:\r
+# No. 1\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 2\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 3\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 4\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 5\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 6\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 7\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 8\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 9\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 10\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 11\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 12\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 13\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 14\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 15\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 16\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 17\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 18\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 19\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 20\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 21\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 22\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 23\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 24\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 25\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 26\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 27\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 28\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 29\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 30\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 31\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 32\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 33\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 34\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 35\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 36\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 37\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 38\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 39\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 40\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 41\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 42\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 43\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 44\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 45\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 46\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 47\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 48\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 49\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 50\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 51\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 52\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 53\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 54\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 55\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 56\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 57\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 58\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 59\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 60\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 61\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 62\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 63\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 64\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 65\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 66\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 67\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 68\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 69\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 70\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 71\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 72\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 73\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 74\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 75\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 76\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 77\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 78\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 79\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 80\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 81\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 82\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 83\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 84\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 85\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 86\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 87\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 88\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 89\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 90\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 91\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 92\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 93\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 94\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 95\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 96\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 97\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 98\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 99\r
+    pushl   $0x0    # push error code place holder on the stack\r
+#    push    xxh     ; push vector number\r
+    .byte 0x6a\r
+    .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
+    jmpCommonIdtEntry \r
+# No. 100\r
     pushl   $0x0    # push error code place holder on the stack\r
 #    push    xxh     ; push vector number\r
     .byte 0x6a\r
     .byte      ( . - INTUnknown - 3 ) / 9 + 20   # vector number\r
     jmpCommonIdtEntry \r
-.endr\r
+\r
 \r
 commonIdtEntry: \r
     pushl   %eax\r
@@ -370,7 +969,7 @@ commonIdtEntry:
 ##      \r
 \r
     call    ClearScreen\r
-    mov     String1, %esi \r
+    movl    $String1, %esi \r
     call    PrintString\r
     .byte 0x48\r
     movl    16*8(%ebp),%eax       ## move Int number into RAX \r
@@ -379,11 +978,11 @@ commonIdtEntry:
     ja      PrintDefaultString\r
 PrintExceptionString: \r
     shll    $3,%eax             ## multiply by 8 to get offset from StringTable to actual string address\r
-               addl    StringTable, %eax\r
+    addl    $StringTable, %eax\r
     movl    (%eax),%esi\r
     jmp     PrintTheString\r
 PrintDefaultString: \r
-               movl    IntUnknownString, %esi\r
+    movl    $IntUnknownString, %esi\r
     # patch Int number\r
     movl    %eax,%edx\r
     call    A2C\r
@@ -394,35 +993,35 @@ PrintDefaultString:
     movb    %al,(%esi)\r
 PrintTheString:        \r
     call    PrintString\r
-               movl    String2, %esi\r
+    movl    $String2, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    19*8(%ebp),%eax    # CS\r
     call    PrintQword\r
     movb    $':', %al\r
-               movb    %al, (%edi)\r
+    movb    %al, (%edi)\r
     addl    $2,%edi\r
     .byte 0x48\r
     movl    18*8(%ebp),%eax    # RIP\r
     call    PrintQword\r
-               movl    String3, %esi\r
+    movl    $String3, %esi\r
     call    PrintString\r
 \r
     movl    $0xb8140,%edi\r
 \r
-               movl    StringRax, %esi\r
+    movl    $StringRax, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    15*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringRcx, %esi\r
+    movl    $StringRcx, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    14*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringRdx, %esi\r
+    movl    $StringRdx, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    13*8(%ebp),%eax\r
@@ -430,19 +1029,19 @@ PrintTheString:
 \r
     movl    $0xb81e0,%edi\r
 \r
-               movl    StringRbx, %esi\r
+    movl    $StringRbx, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    12*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringRsp, %esi\r
+    movl    $StringRsp, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    21*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringRbp, %esi\r
+    movl    $StringRbp, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    10*8(%ebp),%eax\r
@@ -450,19 +1049,19 @@ PrintTheString:
 \r
     movl    $0xb8280,%edi\r
 \r
-               movl    StringRsi, %esi\r
+    movl    $StringRsi, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    9*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringRdi, %esi\r
+    movl    $StringRdi, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    8*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringEcode, %esi\r
+    movl    $StringEcode, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    17*8(%ebp),%eax\r
@@ -470,19 +1069,19 @@ PrintTheString:
 \r
     movl    $0xb8320,%edi\r
 \r
-               movl    StringR8, %esi\r
+    movl    $StringR8, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    7*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringR9, %esi\r
+    movl    $StringR9, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    6*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringR10, %esi\r
+    movl    $StringR10, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    5*8(%ebp),%eax\r
@@ -490,19 +1089,19 @@ PrintTheString:
 \r
     movl    $0xb83c0,%edi\r
 \r
-               movl    StringR11, %esi\r
+    movl    $StringR11, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    4*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringR12, %esi\r
+    movl    $StringR12, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    3*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringR13, %esi\r
+    movl    $StringR13, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    2*8(%ebp),%eax\r
@@ -510,19 +1109,19 @@ PrintTheString:
 \r
     movl    $0xb8460,%edi\r
 \r
-               movl    StringR14, %esi\r
+    movl    $StringR14, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    1*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringR15, %esi\r
+    movl    $StringR15, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    0*8(%ebp),%eax\r
     call    PrintQword\r
 \r
-               movl    StringSs, %esi\r
+    movl    $StringSs, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    22*8(%ebp),%eax\r
@@ -530,7 +1129,7 @@ PrintTheString:
 \r
     movl    $0xb8500,%edi\r
 \r
-               movl    StringRflags, %esi\r
+    movl    $StringRflags, %esi\r
     call    PrintString\r
     .byte 0x48\r
     movl    20*8(%ebp),%eax\r
@@ -554,7 +1153,7 @@ InnerLoop:
     movl    (%esi),%eax\r
     call    PrintQword\r
     addl    $8,%esi\r
-               mov                     $0x00, %al \r
+    movb    $0x20, %al       # blank character\r
     movb    %al,(%edi)\r
     addl    $2,%edi\r
     loop    InnerLoop\r
@@ -585,7 +1184,7 @@ InnerLoop1:
     movl    (%esi),%eax\r
     call    PrintQword\r
     addl    $8,%esi\r
-               movb            $0x00, %al\r
+    movb    $0x20, %al     # blank character\r
     movb    %al,(%edi)\r
     addl    $2,%edi\r
     loop    InnerLoop1\r
@@ -652,10 +1251,10 @@ LN_C1:
 PrintString: \r
     pushl   %eax\r
 LN_C2: \r
-               movb    (%esi), %al\r
+    movb    (%esi), %al\r
     cmpb    $0,%al\r
     je      LN_C3\r
-               movb    %al, (%edi)\r
+    movb    %al, (%edi)\r
     .byte 0xff\r
     .byte 0xc6\r
 #    inc     esi\r
@@ -684,10 +1283,10 @@ looptop:
     andb    $0xf,%bl\r
     addb    $'0', %bl\r
     cmpb    $'9', %bl\r
-    jle     @f\r
+    jle     LN_C4\r
     addb    $7,%bl\r
-@@\r
-               movb %bl, (%edi)\r
+LN_C4\r
+    movb %bl, (%edi)\r
     addl    $2,%edi\r
     loop    looptop\r
     #wbinvd\r
@@ -701,14 +1300,14 @@ ClearScreen:
     pushl   %eax\r
     pushl   %ecx\r
 \r
-               movb            $0x00, %al\r
+    movb    $0x20, %al       # blank character\r
     movb    $0xc,%ah\r
     movl    $0xb8000,%edi\r
     movl    $80*24,%ecx\r
-LN_C4\r
-               movw      %ax, (%edi)\r
+LN_C5\r
+    movw    %ax, (%edi)\r
     addl    $2,%edi\r
-    loop    LN_C4\r
+    loop    LN_C5\r
     movl    $0xb8000,%edi\r
 \r
     popl    %ecx\r
@@ -720,9 +1319,9 @@ A2C:
     andb    $0xf,%al\r
     addb    $'0', %al\r
     cmpb    $'9', %al\r
-    jle     @f\r
+    jle     LN_C6\r
     addb    $7,%al\r
-LN_C5\r
+LN_C6\r
     ret\r
 \r
 String1:            .asciz      "*** INT "\r
@@ -749,11 +1348,11 @@ Int18String:        .asciz      "12h Machine check -"
 Int19String:        .asciz      "13h SIMD Floating-Point Exception -"\r
 IntUnknownString:   .asciz      "??h Unknown interrupt -"\r
 \r
-StringTable:   .long  Int0String, Int1String, Int2String, Int3String,    \\r
-                      Int4String, Int5String, Int6String, Int7String,    \\r
-                      Int8String, Int9String, Int10String, Int11String,  \\r
-                      Int12String, Int13String, Int14String, Int15String,\\r
-                      Int16String, Int17String, Int18String, Int19String\r
+StringTable:   .long  Int0String, 0, Int1String, 0, Int2String, 0, Int3String, 0,  \\r
+                      Int4String, 0, Int5String, 0, Int6String, 0, Int7String, 0,  \\r
+                      Int8String, 0, Int9String, 0, Int10String, 0, Int11String, 0,  \\r
+                      Int12String, 0, Int13String, 0, Int14String, 0, Int15String, 0,  \\r
+                      Int16String, 0, Int17String, 0, Int18String, 0, Int19String, 0\r
 \r
 String2:           .asciz  " HALT!! *** ("\r
 String3:           .asciz  ")"\r