#define SYSCALL_WRITE 1
#define SYSCALL_RESET 169
+#define SYSCALL_IOPL 172
#define SYSCALL_EXIT 60
#define STDOUT 1
#define SHUTDOWN_MAGIC2 0x28121969
#define SHUTDOWN_MAGIC3 0x4321fedc
+#define SHUTDOWN_PORT 0x8900
+
.text
.global start, _start
_start:
movq $(messageend-message), %rdx
syscall
+ movq $SYSCALL_IOPL, %rax
+ movq $3, %rdi
+ syscall
+
+ movw $SHUTDOWN_PORT, %dx
+ movb $'S', %al
+ outb %al, %dx
+ movb $'h', %al
+ outb %al, %dx
+ movb $'u', %al
+ outb %al, %dx
+ movb $'t', %al
+ outb %al, %dx
+ movb $'d', %al
+ outb %al, %dx
+ movb $'o', %al
+ outb %al, %dx
+ movb $'w', %al
+ outb %al, %dx
+ movb $'n', %al
+ outb %al, %dx
+
/* shutdown. */
movq $SYSCALL_RESET, %rax
movq $SHUTDOWN_MAGIC1, %rdi