⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grub-0.93-diff

📁 从linux移植到dos下的grub
💻 93-DIFF
📖 第 1 页 / 共 4 页
字号:
+	cmpb	$0x08, %al+	jnz	failed_check_msdos7plus+	cld+	lodsl+	movl	%eax, %ebx+	movw	$0x0560, %si /* the saved int 08 vector */+	cld+	lodsl+	cmpl	%ebx, %eax+	jnz	failed_check_msdos7plus++	movw	$0x0823, %si /* another saved int 0f vector */+	cld+	lodsb+	cmpb	$0x0f, %al+	jnz	failed_check_msdos7plus+	cld+	lodsl+	movl	%eax, %ebx+	movw	$0x057c, %si /* the saved int 0f vector */+	cld+	lodsl+	cmpl	%ebx, %eax+	jnz	failed_check_msdos7plus++	call	restore_BDA_EBDA+	+	cli+	xorw	%ax, %ax+	movw	%ax, %es+	movw	%ax, %ds+	movw	$0x0540, %si+	movw	%ax, %di	/* int 00 to 1f */+	movw	$0x0040, %cx	/* 64 words to move */+	cld+	repz movsw+	movw	$0x0100, %di	/* int 40 to 43 */+	movw	$0x0008, %cx	/* 8 words to move */+	cld+	repz movsw+	cld+	lodsl+	movw	$0x0118, %di	/* int 46 */+	cld+	stosl+	cld+	lodsl			/* int 4b, already in place */+	cld+	lodsl+	movw	$0x013c, %di	/* int 4f */+	cld+	stosl+	movw	$0x01c0, %di	/* int 70 to 77 */+	movw	$0x0010, %cx	/* 16 words to move */+	cld+	repz movsw+	movw	$0x0810, %si	/* another saved int 19 */+	cld+	lodsl+	movw	$0x0064, %di	/* int 19 */+	cld+	stosl+	+	jmp	move_stage2_image++failed_check_msdos7plus:+	/* check for MS-DOS 5.0+ */+	+	xorw	%ax, %ax+	movw	%ax, %ds++	movw	$0x0800, %si+	cld+	lodsb+	cmpb	$0x10, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x13, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0x9e000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x15, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x19, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x1b, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus++	movw	$0x0d41, %si+	cld+	lodsb+	cmpb	$0x02, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x08, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x09, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x0a, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x0b, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x0c, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x0d, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x0e, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x70, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x72, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x73, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x74, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	cld+	lodsb+	cmpb	$0x76, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jnb	1f+	addw	$0x000d, %ax+	movw	%ax, %si+	shrl	$0x10, %eax+	movw	%ax, %ds+	lodsw+	movw	%ax, %si+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus+	xorw	%ax, %ax+	movw	%ax, %ds+	movw	$0x0d82, %si+1:+	cld+	lodsb+	cmpb	$0x77, %al+	jnz	failed_check_msdos5plus+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	failed_check_msdos5plus++	call	restore_BDA_EBDA+	+	cli+	xorw	%ax, %ax+	movw	%ax, %es+	movw	%ax, %ds++	movw	$0x0800, %si+	cld+	lodsb+	movw	$0x0040, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x004c, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0054, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0064, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x006c, %di+	cld+	lodsl+	stosl++	movw	$0x0d41, %si+	cld+	lodsb+	movw	$0x0008, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0020, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0024, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0028, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x002c, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0030, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0034, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x0038, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x01c0, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x01c8, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x01cc, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x01d0, %di+	cld+	lodsl+	stosl+	cld+	lodsb+	movw	$0x01d8, %di+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jnb	1f+	addw	$0x000d, %ax+	movw	%ax, %si+	shrl	$0x10, %eax+	movw	%ax, %ds+	lodsw+	movw	%ax, %si+	lodsl+1:+	stosl+	xorw	%ax, %ax+	movw	%ax, %ds+	movw	$0x0d82, %si+	cld+	lodsb+	movw	$0x01dc, %di+	cld+	lodsl+	stosl++	jmp	move_stage2_image++check_msdos4minus:+	/* check for MS-DOS 4.0- */+	+	xorw	%ax, %ax+	movw	%ax, %ds++	movw	%bx, %si	/* int 19 */+	cld+	lodsl+	cmpl	$0xc0000000, %eax+	jb	1f+	cld+	lodsb+	cmpb	$0x01, %al  /* the byte 01 followed by int 02, ... */+	jnz	1f+	+		/* int 02,08-0e,70,72-74,76-77 */+	movw	$0x000e, %cx /* 14 vectors to check */+	call	check_a_range_of_ROM_vectors+	jc	1f++	pushw	%bx+	call	restore_BDA_EBDA+	popw	%bx+	+	cli+	cld+	xorw	%ax, %ax+	movw	%ax, %es+	movw	%ax, %ds+	movw	%bx, %si	/* int 19 */+	movw	$0x0064, %di+	lodsl+	stosl+	lodsb			/* the byte "01" */+	movw	$0x0008, %di	/* int 02 */+	lodsl+	stosl+	movw	$0x0020, %di	/* int 08 to 0f */+	movw	$0x000e, %cx	/* 14 words to move */+	repz movsw+	movw	$0x01c0, %di	/* int 70 */+	lodsl+	stosl+	movw	$0x01c8, %di	/* int 72 */+	lodsl+	stosl+	lodsl			/* int 73 */+	stosl+	lodsl			/* int 74 */+	stosl+	movw	$0x01d8, %di	/* int 76 */+	lodsl+	stosl+	lodsl			/* int 77 */+	stosl++	clc+	ret+1:+	stc	/* failed_check_msdos4minus */+	ret++failed_check_msdos5plus:+	/* check for MS-DOS 4.01 */+	+	movw	$0x240e, %bx+	call	check_msdos4minus+	jc	failed_check_msdos4++	jmp	move_stage2_image++failed_check_msdos4:+	/* check for MS-DOS 3.30 */+	+	movw	$0x2172, %bx+	call	check_msdos4minus+	jc	failed_check_msdos3++	jmp	move_stage2_image++failed_check_msdos3:+	/* check for FreeDOS (build 2029+) */+	+	/*+	 * MS himem.sys takes over int 15, so check for the case.+	 */+	+	xorw	%ax, %ax+	movw	%ax, %es+	movw	%ax, %ds+	movw	$0x0054, %di+	movl	(%di), %eax		/* int 15 vector in table */+	cmpl	$0xc0000000, %eax	/* is it a valid BIOS vector? */+	jnb	1f			/* yes, do nothing */+	movw	$0x3086, %si		/* no, take one from himem */+	movl	(%si), %eax+	cmpl	$0xe0000000, %eax	/* is it a system BIOS vector? */+	jb	failed_check_freedos	/* no, do not continue */+1:					/* yes, continue */+	xorw	%ax, %ax+	movw	%ax, %ds

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -