2026-06-13 13:27:39 -05:00
|
|
|
.code32
|
2026-06-13 20:43:09 -04:00
|
|
|
.section .text
|
|
|
|
|
.global disable_interrupts
|
|
|
|
|
disable_interrupts:
|
|
|
|
|
cli
|
|
|
|
|
ret
|
2026-06-13 13:27:39 -05:00
|
|
|
|
|
|
|
|
.global enable_interrupts
|
|
|
|
|
enable_interrupts:
|
|
|
|
|
sti
|
2026-06-13 19:53:57 -04:00
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.global io_wait
|
|
|
|
|
io_wait:
|
|
|
|
|
outb %al, $0x80
|
2026-06-16 21:53:38 -04:00
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.global liftoff
|
|
|
|
|
liftoff:
|
|
|
|
|
cli
|
|
|
|
|
|
|
|
|
|
mov 4(%esp), %ecx
|
|
|
|
|
mov 8(%esp), %ebx
|
|
|
|
|
|
|
|
|
|
mov $0x23, %ax
|
|
|
|
|
mov %ax, %ds
|
|
|
|
|
mov %ax, %es
|
|
|
|
|
mov %ax, %fs
|
|
|
|
|
mov %ax, %gs
|
|
|
|
|
|
|
|
|
|
push $0x23
|
|
|
|
|
push %ebx
|
|
|
|
|
push $0x202
|
|
|
|
|
push $0x1B
|
|
|
|
|
push %ecx
|
|
|
|
|
|
|
|
|
|
xor %eax, %eax
|
|
|
|
|
xor %edx, %edx
|
|
|
|
|
|
|
|
|
|
iret
|