Compare commits
No commits in common. "90e1d2818d6ecacb5bb9c25651630702e473d5a3" and "180c1254e665464059637d35719a96b935666a16" have entirely different histories.
90e1d2818d
...
180c1254e6
6 changed files with 2 additions and 1361 deletions
|
@ -9,9 +9,7 @@ SRCS = kernel.asm \
|
|||
dev/vga_console.inc \
|
||||
mm/mm.inc \
|
||||
mm/pmm.inc \
|
||||
lock.inc \
|
||||
gdt.inc \
|
||||
isr.inc
|
||||
lock.inc
|
||||
|
||||
.PHONY: all
|
||||
all: $(KERNEL)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
macro ISR [name,error] {
|
||||
isr_table:
|
||||
forward
|
||||
dd isr_#name
|
||||
forward
|
||||
|
@ -12,34 +13,6 @@ forward
|
|||
|
||||
}
|
||||
|
||||
idt_setup:
|
||||
xor ecx, ecx
|
||||
@@:
|
||||
mov eax, [aISRTable + (ecx * 4)]
|
||||
mov [aInterruptGate + (ecx * 8)], ax
|
||||
mov [aInterruptGate + (ecx * 8) + 2], word 0x08
|
||||
|
||||
mov [aInterruptGate + (ecx * 8) + 5], word 0x8E
|
||||
shr eax, 16
|
||||
mov [aInterruptGate + (ecx * 8) + 6], ax
|
||||
inc ecx
|
||||
cmp ecx, 32
|
||||
jb @b
|
||||
|
||||
lidt [pIDT]
|
||||
sti
|
||||
ret
|
||||
|
||||
pIDT:
|
||||
dw aInterruptGate.end-aInterruptGate-1
|
||||
dd aInterruptGate
|
||||
|
||||
; variable: idt_entries
|
||||
aInterruptGate:
|
||||
dd 256*2 dup(0)
|
||||
.end:
|
||||
|
||||
|
||||
isr_common:
|
||||
pusha
|
||||
|
||||
|
@ -52,9 +25,6 @@ isr_common:
|
|||
mov fs, ax
|
||||
mov gs, ax
|
||||
|
||||
mov esi, szMsgInterrupt
|
||||
call klog
|
||||
|
||||
pop eax
|
||||
mov ds, ax
|
||||
mov es, ax
|
||||
|
@ -66,7 +36,6 @@ isr_common:
|
|||
sti
|
||||
iret
|
||||
|
||||
aISRTable:
|
||||
ISR \
|
||||
division_by_zero, 0, \
|
||||
debug, 0, \
|
||||
|
@ -100,5 +69,3 @@ ISR \
|
|||
reserved29, 0, \
|
||||
security_exception, 0, \
|
||||
reserved31, 0
|
||||
|
||||
szMsgInterrupt db "Interrupt", 0
|
||||
|
|
|
@ -56,7 +56,6 @@ kmain:
|
|||
lgdt [pGDT]
|
||||
; I don't think i need to reload segment cuz their value are already correct
|
||||
|
||||
call idt_setup
|
||||
|
||||
|
||||
.halt:
|
||||
|
@ -74,7 +73,6 @@ kmain:
|
|||
include 'mm/mm.inc'
|
||||
include 'lock.inc'
|
||||
include 'gdt.inc'
|
||||
include 'isr.inc'
|
||||
|
||||
szMsgKernelAlive db "Kernel is alive", 0
|
||||
szErrorBootProtocol db "Error: wrong magic number", 0
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
;; File: pic.inc
|
||||
;; <Datasheet at https://pdos.csail.mit.edu/6.828/2005/readings/hardware/8259A.pdf>
|
||||
|
||||
PIC1_COMMAND = 0x20
|
||||
PIC1_DATA = 0x21
|
||||
PIC2_COMMAND = 0xA0
|
||||
|
|
|
@ -102,7 +102,6 @@ struc idt_gate
|
|||
.attributes: resb 1
|
||||
.offset_high: resw 1
|
||||
endstruc
|
||||
defn idt_gate
|
||||
|
||||
;; About: Gates
|
||||
;; - Task Gate
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue