KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /usr/share/doc/syslinux-4.02/sample/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/syslinux-4.02/sample/fd.c
/* ----------------------------------------------------------------------- *
 *
 *   Copyright 2003-2008 H. Peter Anvin - All Rights Reserved
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
 *   Boston MA 02111-1307, USA; either version 2 of the License, or
 *   (at your option) any later version; incorporated herein by reference.
 *
 * ----------------------------------------------------------------------- */

/*
 * fd.c
 *
 * Chainload a floppy disk (currently rather braindead.)
 */

#include <com32.h>
#define NULL ((void *)0)

int printf(const char *, ...);
unsigned int atou(const char *);

int __start(void)
{
    int whichfd = atou(__com32.cs_cmdline);
    static com32sys_t inreg, outreg;	/* In bss, so zeroed automatically */
    int retry;

    for (retry = 0; retry < 6; retry++) {
	printf(">");
	inreg.eax.w[0] = 0x0201;	/* Read one sector */
	inreg.ecx.w[0] = 0x0001;	/* Cyl 0 sector 1 */
	inreg.edx.b[1] = 0;	/* Head 0 */
	inreg.edx.b[0] = whichfd;	/* Drive number */
	inreg.es = SEG(__com32.cs_bounce);	/* Read into the bounce buffer */
	inreg.ebx.w[0] = OFFS(__com32.cs_bounce);
	__com32.cs_intcall(0x13, &inreg, &outreg);

	if ((outreg.eflags.l & 1) == 0)
	    break;
    }

    if ((outreg.eflags.l & 1) == 0) {
	printf("!\n");
	inreg.eax.w[0] = 0x000d;
	inreg.edx.w[0] = 0;
	inreg.edi.l = (uint32_t) __com32.cs_bounce;
	inreg.ecx.l = 512;
	inreg.ebx.l = whichfd & 0xff;
	inreg.esi.l = 0;	/* No partitions */
	inreg.ds = 0;		/* No partitions */
	__com32.cs_intcall(0x22, &inreg, NULL);
    }

    /* If we get here, badness happened */
    return 255;
}

Anon7 - 2021