]> wirehaze git hosting - BOS.git/blobdiff - kernel/krl_incs/idt.inc

wirehaze git hosting

made it assemble under os x, moved loading position of kernel + install script for osx
[BOS.git] / kernel / krl_incs / idt.inc
old mode 100755 (executable)
new mode 100644 (file)
index a899cbc..cafbc63
@@ -1,15 +1,15 @@
 ;----------------------------------------------------------;\r
-; BOS kernel                Christoffer Bubach, 2003-2005. ;\r
+; BOS kernel               Christoffer Bubach, 2003-2005. ;\r
 ;----------------------------------------------------------;\r
-;                                                          ;\r
-;       set/modify IDT entries                             ;\r
-;                                                          ;\r
+;                                                         ;\r
+;      set/modify IDT entries                             ;\r
+;                                                         ;\r
 ;----------------------------------------------------------;\r
 \r
 \r
 \r
 ;--------------------------------------------------;\r
-;     set up IDT                                   ;\r
+;     set up IDT                                  ;\r
 ; in:  edi = pointer to "unhandled int"-function.  ;\r
 ;--------------------------------------------------;\r
 init_idt:\r
@@ -40,9 +40,9 @@ init_idt:
 \r
 \r
 ;--------------------------------------;\r
-;  modify IDT, set any int             ;\r
-;     in: cl  = int number             ;\r
-;         edi = int function pointer   ;\r
+;  modify IDT, set any int            ;\r
+;     in: cl  = int number            ;\r
+;        edi = int function pointer   ;\r
 ;--------------------------------------;\r
 set_int:\r
          push    eax\r
@@ -51,7 +51,8 @@ set_int:
          mov     al, 8                               ; 8 bytes for each int\r
          mul     cl                                  ; cl * al = ax\r
          movzx   ecx, ax                             ; ecx = offset in IDT (1/2 for dword list)\r
-         mov     [(idt_list+ecx/2)], edi             ; add new int to idt entry list\r
+         ;;mov   [(idt_list+ecx/2)], edi             ; add new int to idt entry list\r
+         mov     dword [(idt_list+ecx)], edi         ; add new int to idt entry list\r
 \r
          mov     eax, edi\r
          mov     [(0x6c00+ecx)], ax\r
@@ -71,9 +72,9 @@ set_int:
 \r
 \r
 ;------------------------------------------------;\r
-;   get int address                              ;\r
-;      in:  cl  = int number                     ;\r
-;      out: esi = address or 0 if none present   ;\r
+;   get int address                             ;\r
+;      in:  cl = int number                     ;\r
+;      out: esi = address or 0 if none present  ;\r
 ;------------------------------------------------;\r
 get_int:\r
          push    eax\r
@@ -90,8 +91,8 @@ get_int:
 \r
 \r
 ;----------------------------------------;\r
-;   sets ints from list                  ;\r
-;      in:  esi = pointer to int list    ;\r
+;   sets ints from list                 ;\r
+;      in:  esi = pointer to int list   ;\r
 ;----------------------------------------;\r
 set_idt_list:\r
          push    eax\r
@@ -117,7 +118,7 @@ set_idt_list:
 \r
 ;------------------------------;\r
 ;   list of idt entries.       ;\r
-;           0 = not handled    ;\r
+;          0 = not handled    ;\r
 ;------------------------------;\r
 idt_list:           dd   isr00\r
                     dd   isr01\r