aboutsummaryrefslogtreecommitdiffstats
path: root/bcopy32.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-03-14 21:50:36 -0700
committerH. Peter Anvin <hpa@zytor.com>2007-03-14 21:50:36 -0700
commita80b07e7fb8feec668a435101659e3ed94015a23 (patch)
treee756f82c2156a7d1a813d142a2541b696004a153 /bcopy32.inc
parentab6acefe649751b072fd9be21ff5de7733c1370e (diff)
downloadsyslinux.git-a80b07e7fb8feec668a435101659e3ed94015a23.tar.gz
syslinux.git-a80b07e7fb8feec668a435101659e3ed94015a23.tar.xz
syslinux.git-a80b07e7fb8feec668a435101659e3ed94015a23.zip
Add a register-setting shuffle and boot for real mode; clean up headers.syslinux-3.40-pre14
- Add an API function to shuffle and boot which sets *all* RM registers; - Move those structures to <syslinux/bootpm.h> and <syslinux/bootrm.h>
Diffstat (limited to 'bcopy32.inc')
-rw-r--r--bcopy32.inc10
1 files changed, 8 insertions, 2 deletions
diff --git a/bcopy32.inc b/bcopy32.inc
index 4448c9e7..36af62ee 100644
--- a/bcopy32.inc
+++ b/bcopy32.inc
@@ -487,7 +487,7 @@ trampoline_to_pm:
mov ss,ax
mov fs,ax
mov gs,ax
- jmp 020h:PMTrampolineBuf ; 20h = 32-bit code segment
+ jmp 020h:TrampolineBuf ; 20h = 32-bit code segment
align 2
A20List dw a20_dunno, a20_none, a20_bios, a20_kbc, a20_fast
@@ -505,4 +505,10 @@ __bcopy_size equ $-__bcopy_start
EntryPoint resd 1 ; CS:IP for shuffle_and_boot
A20Test resw 1 ; Counter for testing status of A20
A20Tries resb 1 ; Times until giving up on A20
-PMTrampolineBuf resb 9*9 ; Code snippet for invoking PM entry
+
+;
+; This buffer contains synthesized code for shuffle-and-boot.
+; For the PM case, it is 9*5 = 45 bytes long; for the RM case it is
+; 8*6 to set the GPRs, 6*5 to set the segment registers (including a dummy
+; setting of CS), 5 bytes to set CS:IP, for a total of 83 bytes.
+TrampolineBuf resb 83 ; Shuffle and boot trampoline