wok diff linld/stuff/src/XMM.ASM @ rev 23996

linld: add iso support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jan 08 20:15:35 2021 +0000 (2021-01-08)
parents 3d19917d3a03
children 5c1ce90eb1d6
line diff
     1.1 --- a/linld/stuff/src/XMM.ASM	Sat Dec 12 10:41:29 2020 +0000
     1.2 +++ b/linld/stuff/src/XMM.ASM	Fri Jan 08 20:15:35 2021 +0000
     1.3 @@ -12,15 +12,9 @@
     1.4                  p386
     1.5  		endif
     1.6  
     1.7 -        group   DGROUP  _TEXT,_BSS
     1.8 +        group   DGROUP  _TEXT
     1.9          assume  cs:DGROUP,ds:DGROUP
    1.10  
    1.11 -        segment _BSS byte public use16 'BSS'
    1.12 -
    1.13 -xmm_handler	dd	?
    1.14 -
    1.15 -        ends    _BSS
    1.16 -
    1.17          segment _TEXT byte public use16 'CODE'
    1.18  
    1.19  ;***************************************************************
    1.20 @@ -42,47 +36,30 @@
    1.21  ;***************************************************************
    1.22          proc    xmm_driver near
    1.23  
    1.24 -		push	si
    1.25 -		mov	si,offset xmm_handler
    1.26 -		ifndef	NO386
    1.27 -		cmp	[dword si],0
    1.28 -		jne	@@gotit
    1.29  		push	ax			; save cmd
    1.30                  mov     ax,4300h		; installation check in al
    1.31 -		else
    1.32 -		push	ax			; save cmd
    1.33 -		lodsw
    1.34 -		or	ax,[word si]
    1.35 -		jne	@@gotit
    1.36 -                mov     ah,43h			; installation check in al
    1.37 -		endif
    1.38 -
    1.39                  int     2fh
    1.40 -                mov     bx,offset xmm_fail
    1.41 -                push    ds
    1.42 +                mov     bx,offset @@xmm_fail
    1.43 +                push    cs
    1.44                  pop     es
    1.45                  cmp     al,80h
    1.46                  jne     @@err
    1.47                  mov     ax,4310h		; get driver address in es:bx
    1.48                  int     2fh
    1.49  @@err:
    1.50 -		ifndef	NO386
    1.51  		pop	ax			; restore cmd
    1.52 -		mov	[si],bx
    1.53 -		mov	[si+2],es
    1.54 -@@gotit:
    1.55 -		call	[dword si]		; far ptr [si]
    1.56 -		else
    1.57 -		mov	[si-2],bx
    1.58 -		mov	[si],es
    1.59 -@@gotit:
    1.60 -		pop	ax			; restore cmd
    1.61 -		call	[dword si-2]		; far ptr [si-2]
    1.62 -		endif
    1.63 +
    1.64 +		push	cs			; call far
    1.65 +		call	@@jmp_esbx
    1.66                  dec     ax			; Z=1=OK
    1.67 -		pop	si
    1.68                  ret
    1.69 -xmm_fail:
    1.70 +
    1.71 +@@jmp_esbx:
    1.72 +		push	es			; \
    1.73 +		push	bx			;  > jmp far es:bx
    1.74 +		retf				; /
    1.75 +
    1.76 +@@xmm_fail:
    1.77                  xor     ax,ax
    1.78                  cwd
    1.79                  retf