summaryrefslogtreecommitdiff
path: root/newlib/libc/sys/go32/int86x.s
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-03 17:39:24 -0700
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-03 17:39:24 -0700
commita6c1ed4716cf02626ea035beb6dd4a921642ba80 (patch)
treeef582c1b52819e27bdd16097ec03b69799d04ede /newlib/libc/sys/go32/int86x.s
parentf6c9a624fa8a6878a7fb2b02f55e4990a20feb59 (diff)
Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gbalibc
Diffstat (limited to 'newlib/libc/sys/go32/int86x.s')
-rw-r--r--newlib/libc/sys/go32/int86x.s103
1 files changed, 0 insertions, 103 deletions
diff --git a/newlib/libc/sys/go32/int86x.s b/newlib/libc/sys/go32/int86x.s
deleted file mode 100644
index 7b49bcd..0000000
--- a/newlib/libc/sys/go32/int86x.s
+++ /dev/null
@@ -1,103 +0,0 @@
- .data
-ds:
- .word 0
-es:
- .word 0
-fs:
- .word 0
-gs:
- .word 0
-
- .globl int86
-int86:
- .byte 0x2e
- push ds
- pop %ds
- .byte 0x2e
- push es
- pop %es
- .byte 0x2e
- push fs
- pop %fs
- .byte 0x2e
- push gs
- pop %gs
-
- .byte 0xcd
-int86_vec:
- .byte 0x03
- ret
-
- .text
- .globl _int86x
-_int86x:
- movl 16(%esp), %eax
-
- movw 2(%eax), %cx
- movw %cx, ds
- movw 4(%eax), %cx
- movw %cx, es
- movw 6(%eax), %cx
- movw %cx, fs
- movw 8(%eax), %cx
- movw %cx, gs
-
- jmp int86_common
-
- .globl _int86
-_int86:
- movw %ds, %ax
- movw %ax, ds
- movw %ax, es
- movw %ax, fs
- movw %ax, gs
- jmp int86_common
-
-int86_common:
- pushl %ebp
- movl %esp,%ebp
- pushl %ebx
- pushl %esi
- pushl %edi
- pushf
-
- movl 8(%ebp),%eax
- movb %al,int86_vec
-
- movl 12(%ebp),%eax
- movl 4(%eax),%ebx
- movl 8(%eax),%ecx
- movl 12(%eax),%edx
- movl 16(%eax),%esi
- movl 20(%eax),%edi
- movl (%eax),%eax
-
- push %ds
- push %es
- call int86
- pop %es
- pop %ds
-
- pushf
- pushl %eax
- movl %esp,%ebp
- addl $24,%ebp
- movl 16(%ebp),%eax
- popl (%eax)
- movl %ebx,4(%eax)
- movl %ecx,8(%eax)
- movl %edx,12(%eax)
- movl %esi,16(%eax)
- movl %edi,20(%eax)
- popl %ebx /* flags */
- movl %ebx,28(%eax)
- andl $1,%ebx
- movl %ebx,24(%eax)
- movl (%eax),%eax
-
- popf
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret