summaryrefslogtreecommitdiffstats
path: root/src/tests/comboot/shuffle-simple.asm
diff options
context:
space:
mode:
authorDaniel Verkamp2008-08-29 00:52:19 +0200
committerMichael Brown2008-08-29 00:52:19 +0200
commite8b22f203ffe4ae11b654f758270790a2e5e11f1 (patch)
tree9028ceab23cdfdc388b720f878efb84bb17a4abc /src/tests/comboot/shuffle-simple.asm
parent[librm] Add rm stack copying functions (diff)
downloadipxe-e8b22f203ffe4ae11b654f758270790a2e5e11f1.tar.gz
ipxe-e8b22f203ffe4ae11b654f758270790a2e5e11f1.tar.xz
ipxe-e8b22f203ffe4ae11b654f758270790a2e5e11f1.zip
[comboot] Add COMBOOT and COM32 support
Diffstat (limited to 'src/tests/comboot/shuffle-simple.asm')
-rw-r--r--src/tests/comboot/shuffle-simple.asm40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/tests/comboot/shuffle-simple.asm b/src/tests/comboot/shuffle-simple.asm
new file mode 100644
index 000000000..efc7d9b46
--- /dev/null
+++ b/src/tests/comboot/shuffle-simple.asm
@@ -0,0 +1,40 @@
+ bits 16
+ org 100h
+
+ jmp start
+
+shuffle_start:
+ push 0xB800
+ pop es
+ mov cx, 80*24*2
+ mov ax, 'AA'
+ xor di, di
+ rep stosw
+.lbl: jmp .lbl
+shuffle_end:
+ nop
+shuffle_len equ (shuffle_end - shuffle_start + 1)
+
+start:
+ ; calculate physical address of shuffled part
+ xor eax, eax
+ push ds
+ pop ax
+ shl eax, 4
+ add ax, shuffle_start
+ mov dword [source], eax
+
+ mov ax, 0012h
+ mov di, shuffle_descriptors
+ mov cx, num_shuffle_descriptors
+ mov ebp, 0x7c00
+ int 22h
+ int3
+
+shuffle_descriptors:
+ dd 0x7C00
+source: dd 0
+ dd shuffle_len
+
+num_shuffle_descriptors equ 1
+