wok diff memtest/stuff/bootloader.S @ rev 24954

*/stuff/bootloader.S: add CHK_DOS_INT19
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Apr 23 15:28:40 2022 +0000 (2022-04-23)
parents d1f31f5f6401
children 50e835d951d8
line diff
     1.1 --- a/memtest/stuff/bootloader.S	Wed Apr 20 15:10:50 2022 +0000
     1.2 +++ b/memtest/stuff/bootloader.S	Sat Apr 23 15:28:40 2022 +0000
     1.3 @@ -23,13 +23,14 @@
     1.4  #define  BUGGY_CMDLINE		verify cmdline length		+2
     1.5  #define  VCPI			VCPI 4.0 support (386+)		+109
     1.6  #define  SHUTDOWNDOS		shutdown DOS services		+29
     1.7 +#define   CHK_DOS_INT19		do not trace bios		+12/13
     1.8  
     1.9  /* some contraints to reduce the code size */
    1.10  //#define FLOPPY_1440K_ONLY	1.44M floppies support only	-26
    1.11  //#define FLOPPY_HAS_2_SIDES	hardcoded heads count to 2	-15
    1.12  //#define NO_CMDLINE_SHRINK	remove heading spaces ?		-6-21
    1.13  //#define  NO_CMDLINE_FILE	remove @cmdline file support ?	-21
    1.14 -//#define NO_DOTS		show progression dots ?		-5
    1.15 +#define NO_DOTS			show progression dots ?		-5
    1.16  #ifndef BZIMAGE
    1.17  //#define TINY_ZIMAGE		system < 64Kb ?			-11
    1.18  //#define NO_MINSETUP		default setup (dos only) ?	-4
    1.19 @@ -74,6 +75,16 @@
    1.20  #ifdef ONLY8086
    1.21  	xorw	%si, %si
    1.22  	movw	%si, %ds
    1.23 +# ifdef CHK_DOS_INT19
    1.24 +	cmpb	$0xF0, 4*0x19+3(%si)
    1.25 +	jne	stepit
    1.26 +	popaw
    1.27 +	pushw	%es
    1.28 +	movw	$movesys, %si
    1.29 +	pushw	%si
    1.30 +	retf
    1.31 +stepit:
    1.32 +# endif
    1.33  	pushw	4+2(%si)
    1.34  	pushw	4(%si)
    1.35  	movw	$step19, 4(%si)
    1.36 @@ -82,6 +93,15 @@
    1.37  	pushl	$4
    1.38  	popw	%si
    1.39  	popw	%ds
    1.40 +# ifdef CHK_DOS_INT19
    1.41 +	cmpb	$0xF0, 4*0x19+3-4(%si)
    1.42 +	jne	stepit
    1.43 +	popaw
    1.44 +	pushw	%es
    1.45 +	pushw	$movesys
    1.46 +	retf
    1.47 +stepit:
    1.48 +# endif
    1.49  	pushl	(%si)
    1.50  	movl	$step19+(INITSEG<<16), (%si)
    1.51  #endif
    1.52 @@ -90,7 +110,11 @@
    1.53  	incb	%ah			# set TF
    1.54  	pushw	%ax
    1.55  	popfw
    1.56 +#ifdef ONLY8086
    1.57 +	ljmp	*4*0x19(%si)
    1.58 +#else
    1.59  	ljmp	*4*0x19-4(%si)
    1.60 +#endif
    1.61  .endm
    1.62  
    1.63  stacktop	= 0x9E00		# in 0x8000 .. 0xA000
    1.64 @@ -442,7 +466,6 @@
    1.65  # ifdef SHUTDOWNDOS
    1.66  	trace_int19
    1.67  # else
    1.68 -	lssw	%cs:EXEADRS(saved_ss_sp),%sp	
    1.69  	popaw
    1.70  	retf
    1.71  # endif
    1.72 @@ -649,10 +672,6 @@
    1.73  	.word	0x03FF
    1.74  idt_base:
    1.75  	.long	0
    1.76 -# ifndef SHUTDOWNDOS
    1.77 -saved_ss_sp:
    1.78 -	.word	stacktop-4-16-4,INITSEG
    1.79 -# endif
    1.80  #endif
    1.81  #ifdef ELKS
    1.82  	.org	0x1E3