亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? grub-0.97-patch8-bioscdrom

?? grub for dos ,people can use it in dos for calling linux
?? 97-PATCH8-BIOSCDROM
字號(hào):
diff -Naur grub-0.97_scdrom/ChangeLog grub-0.97_bioscdrom/ChangeLog--- grub-0.97_scdrom/ChangeLog	2006-10-24 12:28:52.000000000 +0800+++ grub-0.97_bioscdrom/ChangeLog	2006-10-24 12:28:54.000000000 +0800@@ -1,5 +1,9 @@ 2005-05-11 +	From Tinybit  <tinybit@163.net>:+	BIOS CDROM routine support.+	Currently only works on some ASUS motherboards.+ 	From Gandalf  <f22_storm@163.com>: 	ATAPI CDROM support(experimental) diff -Naur grub-0.97_scdrom/grub/asmstub.c grub-0.97_bioscdrom/grub/asmstub.c--- grub-0.97_scdrom/grub/asmstub.c	2006-10-24 12:28:52.000000000 +0800+++ grub-0.97_bioscdrom/grub/asmstub.c	2006-10-24 12:28:54.000000000 +0800@@ -353,6 +353,11 @@    return 0; } +int+mount_cdrom (int mode)+{+   return 0;+} /* memory probe routines */ int get_memsize (int type)diff -Naur grub-0.97_scdrom/stage2/asm.S grub-0.97_bioscdrom/stage2/asm.S--- grub-0.97_scdrom/stage2/asm.S	2006-10-24 12:28:52.000000000 +0800+++ grub-0.97_bioscdrom/stage2/asm.S	2006-10-24 12:28:54.000000000 +0800@@ -5559,17 +5559,18 @@  */  ENTRY(chain_stage1)-	/* no need to save anything, just use %esp */+	///* no need to save anything, just use %esp */+	pushal	// for CDROM boot failure  	/* store %ESI, presuming %ES is 0 */-	movl	0xc(%esp), %esi+	movl	0x2c(%esp), %esi  	/* store new offset */-	movl	0x8(%esp), %eax+	movl	0x28(%esp), %eax 	movl	%eax, offset  	/* store new segment */-	movw	0x4(%esp), %ax+	movw	0x24(%esp), %ax 	movw	%ax, segment  	/* set up to pass boot drive */@@ -5581,12 +5582,21 @@  	//sti		/* it is not bad keeping interrupt off */ +	/* The CDROM boot code might corrupt our stack, so we move to a safe place */+	movw	$0x400, %sp	// at the top of interrupt vector table, SS=0++	/* use lcall instead of ljmp to push the return address onto stack */ #ifdef ABSOLUTE_WITHOUT_ASTERISK-	DATA32	ADDR32	ljmp	(offset)+	DATA32	ADDR32	lcall	(offset) #else-	DATA32	ADDR32	ljmp	*(offset)+	DATA32	ADDR32	lcall	*(offset) #endif+	/* back to protected mode */+	DATA32	call	EXT_C(real_to_prot) 	.code32+	popal+	ret+ #endif /* STAGE1_5 */  @@ -6044,6 +6054,296 @@  	ret +/*+ *   int mount_cdrom (int drive)+ *+ *   Check if LBA is supported for DRIVE. If it is supported, then return+ *   the major version of extensions, otherwise zero.+ */++ENTRY(mount_cdrom)+	pushl	%ebp+	movl	%esp, %ebp++	pushl	%ebx++	/* drive */+	movl	0x8(%ebp), %edx+	/* enter real mode */+	call	EXT_C(prot_to_real)++	.code16+	pushal+	pushw	%ds+	pushw	%es+	movw	$0xF000, %ax+	movw	%ax, %es+	xorw	%di, %di+	movw	%di, %ds+	cmpl	$0xffffffff, %edx+	jne	2f+	/* unmount cdrom */+	movl	ABS(award_orig), %ebx+	testl	%ebx, %ebx+	jz	8f		// not yet mounted, do nothing+	decb	0x475+	jmp	5f+2:+	movl	ABS(award_orig), %ebx+	testl	%ebx, %ebx+	jz	2f+	// already mounted, do nothing+	popw	%es+	popw	%ds+	popal+	xorl	%ebx, %ebx+	incw	%bx	// show error+	jmp	7f+2:+	movl	0x4c, %eax	// int13 vector+	movl	%eax, ABS(award_orig)+	movl	0x4c1, %eax+	movl	%eax, ABS(award_orig + 4)+	movl	0x4c5, %eax+	movl	%eax, ABS(award_orig + 8)+	movb	$0x9a, %al	// lcall+	movw	$0xffff, %cx	// search the whole 64K ROM+#if 0+	movw	$0x0201, %ax	// 0xb8 0x01 0x02+	movw	$0x7c00, %bx	// 0xbb 0x00 0x7c+	movw	$0x0006, %cx	// 0xb9 0x06 0x00+	movw	$0x0180, %dx	// 0xba 0x80 0x01+	pushfw		// 0x9c+	.byte	0x9a	//lcall	$0xf000, $0xba24+#endif+	cld+3:+	repnz scasb+	testw	%cx, %cx	//jcxz	6f		// failed AWARD+	jz	6f+	cmpb	$0x9c, %es:-2(%di) // pushfw+	jnz	3b+	cmpl	$0x0180ba00, %es:-6(%di)+	jnz	3b+	cmpl	$0x06b97c00, %es:-10(%di)+	jnz	3b+	cmpl	$0xbb0201b8, %es:-14(%di)+	jnz	3b+	movl	%es:(%di), %eax+	movl	%eax, 0x4c+	movl	$0x000c, %edi+4:+	decw	%di+	cmpw	$8, %di+	jb	5f+	movl	%edi, 0x4c1+	movl	$0xfbf7f300, 0x4c5+	movb	$8, %ah+	movb	$0x80, %dl+	int	$0x13+	jc	4b+	cmpb	$0, %ah+	jnz	4b+	cmpb	$0xf2, %dh+	jnz	4b+	cmpw	$0xfaf7, %cx+	jnz	4b+	/* change CHS, and try int13/AH=8 again */+	movl	%edi, 0x4c1+	movl	$0xffffff00, 0x4c5+	movb	$8, %ah+	movb	$0x80, %dl+	int	$0x13+	jc	4b+	cmpb	$0, %ah+	jnz	4b+	cmpb	$0xfe, %dh+	jnz	4b+	cmpw	$0xfeff, %cx+	jnz	4b+	pushw	%es+	movw	$SCRATCHSEG, %ax+	movw	%ax, %es+	movw	$0x201, %ax+	movw	$0, %bx+	movw	$1, %cx+	movw	$0x80, %dx+	int	$0x13+	popw	%es+	jc	4b+	cmpb	$0, %ah+	jnz	4b+	incb	0x475+8:+	popw	%es+	popw	%ds+	popal+	xorl	%ebx, %ebx+	/* we've got the CDROM sector read function */+	cmpl	$8, %edx	/* boot cd? */+	jb	7f		/* no, return to GRUB */+	+	/* try to boot the cd, and, on failure, return here successfully */+	pushal+	pushw	%ds+	pushw	%es+	movw	$0xF000, %ax+	movw	%ax, %es+	xorw	%di, %di+	movw	%di, %ds+	movb	$0xE8, %al	// call+	movw	$0xffff, %cx	// search the whole 64K ROM+	cld+9:+	repnz scasb+	testw	%cx, %cx	//jcxz	6f		// failed AWARD+	jz	5f		// cannot boot cd+	cmpl	$0xE8148A2E, %es:-15(%di)	//mov dl,cs:[si]; call+	jnz	9b+	cmpw	$0x830F, %es:-9(%di)		//jnc+	jnz	9b+	cmpl	$0x01548A2E, %es:-5(%di)	//mov dl,cs:[si+01]+	jnz	9b+	cmpw	$0x830F, %es:2(%di)		//jnc+	jnz	9b+	cmpl	$0x02548A2E, %es:6(%di)		//mov dl,cs:[si+02]+	jnz	9b+	cmpb	$0xE8, %es:10(%di)		//call+	jnz	9b+	movw	%es:-11(%di), %si+	movw	%es:(%di), %bx+	movw	%es:11(%di), %dx+	addw	%di, %si+	subw	$9, %si+	addw	%di, %bx+	addw	$2, %bx+	addw	%di, %dx+	addw	$13, %dx+	cmpw	%si, %bx+	jnz	9b+	cmpw	%dx, %bx+	jnz	9b++	/* SI=BX=DX=CDROM_BOOT_ENTRY_IN_ROM */++	xorw	%di, %di+	movb	$0xCB, %al	// retf+	movw	$0xffff, %cx	// search the whole 64K ROM+	cld+	repnz scasb+	testw	%cx, %cx	//jcxz	6f		// failed AWARD+	jz	5f		// cannot boot cd++	/* restore original int13 vector */+	movl	ABS(award_orig), %eax+	movl	%eax, 0x4c	// int13 vector+	//movl	ABS(award_orig + 4), %eax+	//movl	%eax, 0x4c1+	//movl	ABS(award_orig + 8), %eax+	//movl	%eax, 0x4c5++	decw	%di		// points to RETF instruction in ROM++	movb	$0xBB, 0x7C00	// mov bx, ...+	movw	$0x7C00, 0x7C01	//         7C00+	movb	$0xB9, 0x7C03	// mov cx, ...+	movw	$1, 0x7C04	//         0001+	movb	$0xBA, 0x7C06	// mov dx, ...+	movw	$0x80, 0x7C07	//         0080++	movb	$0x68, 0x7c09	// push immediate word+	movw	%di, 0x7c0a+	movb	$0xEA, 0x7c0c	// ljmp+	movw	%si, 0x7c0d+	movw	$0xF000, 0x7c0f++	popw	%es+	popw	%ds+	popal+	xorl	%ebx, %ebx+	jmp	7f++	//pushw	%ds+	//pushw	%es++	//xorw	%ax, %ax+	//movw	%ax, %ds+	//movw	%ax, %es+	//movw	$0x7c00, %bx+	//movw	$1, %cx+	//movw	$0x80, %dx+	+	//pushw	%cs+	//call	dummy_boot_cd		// simulate a far call+	+	///* return here on CDROM BOOT failure */+	//popw	%es+	//popw	%ds+5:+	movl	ABS(award_orig), %eax+	movl	%eax, 0x4c	// int13 vector+	movl	ABS(award_orig + 4), %eax+	movl	%eax, 0x4c1+	movl	ABS(award_orig + 8), %eax+	movl	%eax, 0x4c5+6:+	xorl	%eax, %eax+	movl	%eax, ABS(award_orig)+	movl	%eax, ABS(award_orig + 4)+	movl	%eax, ABS(award_orig + 8)+	popw	%es+	popw	%ds+	popal+	movb	$1, %bl+7:+	/* back to protected mode */+	DATA32	call	EXT_C(real_to_prot)+	.code32++	movl	%ebx, %eax	/* return value in %eax */++	popl	%ebx+	popl	%ebp++	ret++#if 0+dummy_boot_cd:++	/* the stack is:+	 *+	 *	CS ---------- this segment+	 *	IP ---------- the return address of the dummy_boot_cd function+	 *+	 * before the call:+	 *+	 *	SI ---------- points to CDROM BOOT function in ROM+	 *	DI ---------- points to FAR RET instruction in ROM+	 */++	/* before far jmp to F000:SI, set the return address of CDROM BOOT+	 * function to be a FAR RET in ROM+	 */++	cli+	movw	%ax, %ss+	movw	$0x400, %sp+	sti+	//ljmp	$0xF000, $0xfff0+	int	$0x19+	pushw	%di+	pushw	$0xF000+	pushw	%si+	lret		// simulate far jmp to F000:SI++	/* never get here */+#endif++award_orig:+	.long	0	// int13+	.long	0	// at 0x4c1+	.long	0	// at 0x4c5+  /*  *   int get_diskinfo_standard (int drive, unsigned long *cylinders, diff -Naur grub-0.97_scdrom/stage2/builtins.c grub-0.97_bioscdrom/stage2/builtins.c--- grub-0.97_scdrom/stage2/builtins.c	2006-10-24 12:28:53.000000000 +0800+++ grub-0.97_bioscdrom/stage2/builtins.c	2006-10-24 12:28:54.000000000 +0800@@ -583,7 +583,7 @@    /* if our terminal needed initialization, we should shut it down     * before booting the kernel, but we want to save what it was so     * we can come back if needed */-  if (current_term->shutdown) +  if (kernel_type != KERNEL_TYPE_NONE && current_term->shutdown)      {       (*current_term->shutdown)();       current_term = term_table; /* assumption: console is first */@@ -591,7 +591,8 @@   #ifdef SUPPORT_NETBOOT   /* Shut down the networking.  */-  cleanup_net ();+  if (kernel_type != KERNEL_TYPE_NONE)+    cleanup_net (); #endif      old_cursor = setcursor (1);@@ -912,6 +913,9 @@ 	}              chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr); /* no return */+      /* yes, we might come here, e.g., on CDROM failure. */+      gateA20 (1);+      kernel_type = KERNEL_TYPE_NONE;       break;      case KERNEL_TYPE_MULTIBOOT:@@ -4615,6 +4619,70 @@ };  +/* bioscdrom */+static int+bioscdrom_func (char *arg, int flags)+{+  extern int mount_cdrom(int drive);+  int err;+  int cdrom;+    +  if (grub_memcmp (arg, "--mount", 7) == 0)+    {+	    err = mount_cdrom (cdrom=4);+    }+  else if (grub_memcmp (arg, "--unmount", 9) == 0)+    {+	    err = mount_cdrom (cdrom=-1);+    }+  else if (grub_memcmp (arg, "--boot", 6) == 0)+    {+	    err = mount_cdrom (cdrom=9);+    }+  else if (grub_memcmp (arg, "--chainloader", 13) == 0)+    {+	    err = mount_cdrom (cdrom=8);+    }+  else+    {+	grub_printf ("status report: not implemented yet.\n");+	return 0;+    }+  +  if (cdrom >= 8 && !err)+    {+      if (cdrom == 8)+	grub_printf ("Ready to boot CDROM. Enter 'boot', please.\n");+      kernel_type = KERNEL_TYPE_CHAINLOADER;+      if (cdrom != 8)+	boot_func (arg, flags);+    }++  if (err)+    if (cdrom == -1)+	grub_printf ("cdrom unmounted ok\n");+    else+	grub_printf ("Failed mount cdrom. Try unmount first if already mounted.\n");+  else+    if (cdrom == -1)+	grub_printf ("cdrom not yet mounted\n");+    else+	grub_printf ("cdrom mounted ok\n");+  return 0;+}++static struct builtin builtin_bioscdrom =+{+  "bioscdrom",+  bioscdrom_func,+  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,+  "bioscdrom [--mount | --unmount | --boot | --chainloader]",+  "Try to access the BIOS cdrom routine to mount the cdrom(the option --mount)"+  " or to boot the cdrom(the option --boot). The --chainloader"+  " option is similar to --boot, but does not cause an immediate boot, and"+  " a further 'boot' command is expected."+};+ #ifndef GRUB_UTIL static unsigned long start_sector, sector_count; @@ -9405,6 +9473,7 @@ #ifdef SUPPORT_GRAPHICS   &builtin_background, #endif+  &builtin_bioscdrom,   &builtin_blocklist, #ifndef GRUB_UTIL   &builtin_boot,

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区久久婷婷 | 欧美色成人综合| 免费成人在线观看| 国产欧美综合在线| 欧美日韩性生活| www.成人网.com| 久久99精品国产麻豆婷婷洗澡| 成人免费在线播放视频| 亚洲精品在线免费播放| 欧美日韩亚洲国产综合| 99久久综合99久久综合网站| 极品美女销魂一区二区三区免费| 亚洲一区免费在线观看| 亚洲欧洲精品一区二区三区| 一区二区三区**美女毛片| 精品国产乱码久久久久久老虎| 色狠狠桃花综合| 国产+成+人+亚洲欧洲自线| 免费成人在线播放| 偷拍一区二区三区| 夜夜嗨av一区二区三区| 国产精品久久久久一区| 久久久精品黄色| 日韩欧美123| 88在线观看91蜜桃国自产| 91麻豆国产福利精品| 成人精品视频.| 国内精品国产成人国产三级粉色| 日韩电影在线观看网站| 丝袜亚洲另类欧美综合| 亚洲影院在线观看| 亚洲精品视频免费看| 亚洲色图在线视频| 中文字幕一区二区三区不卡在线 | 日韩一级片网站| 欧美日韩成人综合在线一区二区| 色香蕉成人二区免费| 99久久精品一区二区| av电影在线观看一区| 成人a级免费电影| 成年人午夜久久久| 成人手机电影网| 99久久99久久久精品齐齐| 成人精品视频一区二区三区| av网站一区二区三区| 99久久伊人久久99| 91精品办公室少妇高潮对白| 色综合咪咪久久| 欧美亚洲动漫精品| 91.成人天堂一区| 日韩一级免费一区| 精品精品国产高清a毛片牛牛 | 国产精品久久久久久久久免费丝袜| 久久久不卡网国产精品二区| 国产欧美日韩视频一区二区| 国产精品久久看| 亚洲老司机在线| 午夜精品一区二区三区电影天堂 | 成人一区二区三区视频| jizzjizzjizz欧美| 欧美伊人久久久久久午夜久久久久| 欧美午夜精品理论片a级按摩| 欧美性高清videossexo| 日韩欧美国产综合一区| 久久久久88色偷偷免费| 亚洲区小说区图片区qvod| 亚洲高清三级视频| 极品美女销魂一区二区三区免费| 粉嫩13p一区二区三区| 欧美自拍偷拍午夜视频| 日韩欧美在线综合网| 国产精品日韩成人| 亚洲午夜久久久久久久久电影网| 日本不卡在线视频| 成人午夜激情在线| 欧美日韩免费高清一区色橹橹| 日韩精品一区二区三区在线 | 久久精品国产精品亚洲精品| 懂色中文一区二区在线播放| 欧美专区亚洲专区| 欧美精品一区二区三区蜜桃视频 | 亚洲欧美欧美一区二区三区| 欧美aaaaaa午夜精品| 国产v综合v亚洲欧| 欧美日韩视频第一区| 国产清纯白嫩初高生在线观看91| 一区二区三区不卡视频| 国产高清无密码一区二区三区| 91国产福利在线| 久久久久99精品一区| 亚洲va欧美va天堂v国产综合| 国产精品 日产精品 欧美精品| 欧美亚洲尤物久久| 欧美国产精品久久| 青青草伊人久久| 一本到不卡免费一区二区| xf在线a精品一区二区视频网站| 一区二区三区精品视频| 国产成人精品免费网站| 欧美一级爆毛片| 一区二区三区免费| 成人性生交大合| 精品欧美黑人一区二区三区| 亚洲一区二区三区视频在线播放| 国产成人自拍网| 日韩欧美精品三级| 午夜精品成人在线| 91浏览器在线视频| 中文字幕欧美日本乱码一线二线| 日本女优在线视频一区二区| 一本大道综合伊人精品热热| 日本一区二区三区久久久久久久久不| 亚洲成av人在线观看| 色域天天综合网| 国产精品福利一区| 国产盗摄一区二区三区| 欧美电影免费观看高清完整版在线 | 26uuuu精品一区二区| 婷婷夜色潮精品综合在线| 色偷偷久久一区二区三区| 欧美激情一区二区在线| 国产一区二区免费看| 欧美一区二区啪啪| 婷婷久久综合九色综合绿巨人| 日本久久一区二区| 亚洲欧美一区二区三区久本道91 | 精品对白一区国产伦| 日韩激情一二三区| 欧美精品久久99久久在免费线| 亚洲欧美激情一区二区| 一本色道久久综合亚洲91| 中文字幕欧美一| 99国产精品99久久久久久| 国产精品午夜在线| av资源网一区| 亚洲天堂网中文字| 91色综合久久久久婷婷| 亚洲精品一卡二卡| 色综合天天综合网天天狠天天| 日韩国产高清影视| 欧美日韩国产综合视频在线观看| 亚洲国产精品天堂| 欧美卡1卡2卡| 日本少妇一区二区| 337p日本欧洲亚洲大胆精品| 国模套图日韩精品一区二区 | 亚洲第一av色| 777奇米四色成人影色区| 日本网站在线观看一区二区三区| 欧美一区二区不卡视频| 久久国产精品99久久久久久老狼| 久久综合国产精品| 粗大黑人巨茎大战欧美成人| 日韩毛片一二三区| 欧美三级韩国三级日本一级| 日韩av电影天堂| 久久色在线观看| 成人免费毛片高清视频| 一区二区三区丝袜| 欧美丰满高潮xxxx喷水动漫| 黄色日韩网站视频| 国产精品第一页第二页第三页| 日本高清不卡视频| 青青草原综合久久大伊人精品优势| 久久久不卡网国产精品二区| 91在线精品秘密一区二区| 午夜久久久久久电影| 久久亚洲精品国产精品紫薇| 成人av免费观看| 亚洲3atv精品一区二区三区| ww亚洲ww在线观看国产| 91麻豆精东视频| 日本sm残虐另类| 国产精品免费久久| 在线观看91av| 成人激情黄色小说| 无码av中文一区二区三区桃花岛| 久久免费午夜影院| 在线精品视频小说1| 精品夜夜嗨av一区二区三区| 综合色中文字幕| 精品久久久久久久久久久久包黑料 | 欧美国产日韩亚洲一区| 欧美日韩激情一区二区三区| 国产成人亚洲综合色影视| 亚洲自拍与偷拍| 国产欧美日韩亚州综合| 91精品免费观看| 99在线视频精品| 黑人巨大精品欧美一区| 一卡二卡三卡日韩欧美| 久久久久久久久久久久久女国产乱| 色激情天天射综合网| 国产大片一区二区| 日韩影视精彩在线| 最近日韩中文字幕| 久久精品亚洲一区二区三区浴池 | 风间由美性色一区二区三区| 午夜私人影院久久久久| 国产精品素人视频|