• 大小: 2.6MB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-08-11
  • 语言: 其他
  • 标签: cdrtools  LINUX  

资源简介

在LINUX上,要把Systemback产生的sblive转换为iso,需要使用这个。下载后: sudo make sudo make install /opt/schily/bin/mkisofs -iso-level 3 -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o sblive.iso sblive

资源截图

代码片段和文件信息

/* @(#)btcflash.c	1.18 17/07/15 2004-2017 J. Schilling */
#ifndef lint
static const char _sccsid[] =
“@(#)btcflash.c 1.18 17/07/15 2004-2017 J. Schilling“;
#endif
/*--------------------------------------------------------------------------*/
/*
 * Firmware flash utility for BTC DRW1008 DVD+/-RW recorder
 * Version 2004/04/29
 * By David Huang 
 * This work is dedicated to the public domain
 *
 * This utility may also work with other BTC DVD recorders such as
 * the DRW1004 and DRW1108 but they have not been tested.
 *
 * USE AT YOUR OWN RISK!
 * btcflash is provided AS IS with NO WARRANTY either expressed or implied.
 *
 * Firmware files may be obtained by running BTC‘s Windows flash
 * utility then searching in the WINDOWS\TEMP or WINNT\TEMP directory
 * for a *.HEX file. It will probably be in a subdirectory named
 * PAC*.tmp.DIR and the HEX file will be named Vnnnn.HEX where nnnn
 * is the firmware version number. You‘ll also find IDEFLASH.EXE or
 * BTCFLASH.EXE in the same directory.
 *
 * This utility will also accept firmware files in “.BIN“ format.
 */

#ifdef DO_INCLUDE
#include 
#include 
#include 
#include 
#endif

#define FLASHSIZE 0x100000 /* BTC flash is 1MB */

EXPORT unsigned char  *loadfirmware __PR((const char *));
LOCAL int getbyte __PR((char **));
LOCAL unsigned short calcsum __PR((unsigned char *));
LOCAL int btcmain __PR((SCSI *scgp const char *fwfile));


EXPORT unsigned char *
loadfirmware(firmware)
const char * firmware;
{
FILE *f;
char line[80];
char *p;
unsigned char *fwbuf;
int bank;
int length;
int offset;
int type;
int hexsum;
int i;
int b;

fwbuf = malloc(FLASHSIZE);
if (!fwbuf) {
fprintf(stderr _(“Could not allocate memory for firmware\n“));
return (NULL);
}

f = fopen(firmware “r“);
if (!f) {
fprintf(stderr _(“%s: Unable to open: “) firmware);
perror(NULL);
free(fwbuf);
return (NULL);
}

/*
 * Get length of file. If it‘s exactly FLASHSIZE assume it‘s a
 * .bin file. Otherwise try to read it as a .hex file.
 */
fseek(f 0 SEEK_END);
if (ftell(f) == FLASHSIZE) {
rewind(f);
if (fread(fwbuf 1 FLASHSIZE f) != FLASHSIZE) {
fprintf(stderr _(“%s: Short read\n“) firmware);
fclose(f);
free(fwbuf);
return (NULL);
}
fclose(f);
return (fwbuf);
}

rewind(f);
memset(fwbuf 0xff FLASHSIZE);

bank = 0;
while (fgets(line sizeof (line) f)) {
if (line[0] != ‘:‘)
continue;

p = line + 1;

length = getbyte(&p);
offset = getbyte(&p) << 8 | getbyte(&p);
type = getbyte(&p);
if (length < 0 || offset < 0 || type < 0 ||
    (type != 0 && length != 0)) {
errmsgno(EX_BAD _(“Malformed line: %.79s\n“) line);
fclose(f);
free(fwbuf);
return (NULL);
} else if (length == 0) {
if (strncmp(line “:00000155AA“ 11) == 0) {
if (++bank >= 16) {
errmsgno(EX_BAD
    _(“Firmware file larger than 1MB\n“));
fclose(f);

评论

共有 条评论