diff options
| author | hpa <hpa> | 2002-10-25 16:02:28 +0000 |
|---|---|---|
| committer | hpa <hpa> | 2002-10-25 16:02:28 +0000 |
| commit | 9665c8054dfbd821bdd1113f91590881e5c7e5ee (patch) | |
| tree | e13199751367ccf08079e99da255f3d995c30a7b /comboot.inc | |
| parent | f805675eef4b2119d252465a211b643f79d17c7e (diff) | |
| download | syslinux-2.00-pre16.tar.gz | |
Use a more conventional stack arrangement in PXELINUX. Also make itsyslinux-2.00-pre16
possible to query the invocation record for PXELINUX.
Diffstat (limited to 'comboot.inc')
| -rw-r--r-- | comboot.inc | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/comboot.inc b/comboot.inc index 15b25fce..46463694 100644 --- a/comboot.inc +++ b/comboot.inc @@ -19,13 +19,15 @@ ; Parameter registers definition; this is the definition ; of the stack frame used by INT 21h and INT 22h. -%define P_FLAGS word [bp+40] -%define P_FLAGSL byte [bp+40] -%define P_FLAGSH byte [bp+41] -%define P_CS word [bp+38] -%define P_IP word [bp+36] -%define P_DS word [bp+34] -%define P_ES word [bp+32] +%define P_FLAGS word [bp+44] +%define P_FLAGSL byte [bp+44] +%define P_FLAGSH byte [bp+45] +%define P_CS word [bp+42] +%define P_IP word [bp+40] +%define P_DS word [bp+38] +%define P_ES word [bp+36] +%define P_FS word [bp+34] +%define P_GS word [bp+32] %define P_EAX dword [bp+28] %define P_AX word [bp+28] %define P_HAX word [bp+30] @@ -147,6 +149,8 @@ comboot_setup_api: comboot_int21: cli push ds push es + push fs + push gs pushad cld mov bp,cs @@ -167,6 +171,8 @@ comboot_int21: cli comboot_resume: setc P_FLAGSL ; Propagate CF->error popad + pop gs + pop fs pop es pop ds iret @@ -277,6 +283,8 @@ comboot_int22: cli push ds push es + push fs + push gs pushad cld mov bp,cs @@ -453,6 +461,10 @@ comapi_derinfo: mov P_BX,ax mov ax,[StrucPtr+2] mov P_ES,ax + mov ax,[InitStack] + mov P_SI,ax + mov ax,[InitStack+2] + mov P_FS,ax %elif IS_ISOLINUX mov al,[DriveNo] mov P_DL,al |
