wok rev 19637

linld: not above topseg()
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jan 20 11:51:22 2017 +0100 (2017-01-20)
parents 76087975885f
children 1fe20f9ae3ad
files linld/stuff/src/HIMEM.CPP linld/stuff/src/JUMP.ASM
line diff
     1.1 --- a/linld/stuff/src/HIMEM.CPP	Fri Jan 20 09:55:25 2017 +0100
     1.2 +++ b/linld/stuff/src/HIMEM.CPP	Fri Jan 20 11:51:22 2017 +0100
     1.3 @@ -30,8 +30,8 @@
     1.4  #endif
     1.5      }
     1.6      struct image_himem *m = &pm;
     1.7 +    vm2rm();
     1.8      if(((u16 *)&m->fallback)[1] >= 0x10) m->fallback = _1m; // >= _1m ?
     1.9 -    vm2rm();
    1.10      if(m->bufv==0) {
    1.11          // Move kernel
    1.12          memcpy_image(m);
     2.1 --- a/linld/stuff/src/JUMP.ASM	Fri Jan 20 09:55:25 2017 +0100
     2.2 +++ b/linld/stuff/src/JUMP.ASM	Fri Jan 20 11:51:22 2017 +0100
     2.3 @@ -37,6 +37,7 @@
     2.4  		extrn	_topseg:near
     2.5  		call	near _topseg
     2.6  		mov	es,ax
     2.7 +		xchg	ax,bx
     2.8  		else
     2.9  		push	9000h
    2.10  		pop	es
    2.11 @@ -66,6 +67,13 @@
    2.12  		  movsb
    2.13  		cmp	al,cl			; load high ?
    2.14  		jne	isbzimage
    2.15 +		ifdef	NO386
    2.16 +		add	bh,9
    2.17 +		push	bx			; topseg()+0x0900
    2.18 +		else
    2.19 +		push	9900h			; 4096 bytes for cmdline
    2.20 +	;push	9820h			; 512 bytes for cmdline
    2.21 +		endif
    2.22  		; finish loading
    2.23  		extrn   @last_ditch$qv:near
    2.24  		push	cs
    2.25 @@ -73,13 +81,6 @@
    2.26  		mov	ax,[word _pm+2+2]	; get pm->fallback high word
    2.27  		; self move
    2.28  		;cld
    2.29 -		ifdef	NO386
    2.30 -		mov	cx,9900h
    2.31 -		push	cx
    2.32 -		else
    2.33 -		push	9900h			; 4096 bytes for cmdline
    2.34 -	;push	9820h			; 512 bytes for cmdline
    2.35 -		endif
    2.36  		pop	es			; min 2048 bytes for stack
    2.37  		xor	si,si			;  A000 -9000 -0800(>movedend)
    2.38  		xor	di,di			; set ZF