public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/32763] New: internal error - compiling DiskEditor (hed.c)
@ 2007-07-14 2:52 mu8ja0i at earthlink dot net
2007-07-14 2:58 ` [Bug c/32763] " dj at redhat dot com
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: mu8ja0i at earthlink dot net @ 2007-07-14 2:52 UTC (permalink / raw)
To: gcc-bugs
After installing djgpp I tried to compile the source file "hed.c" . My system
type is Windows XP sp2, gcc version is 4.1.2, (target djgpp); configuration
build is as follows: /gnu/gcc-4.12/configure djgpp --prefix=/dev/env/DJDIR
--disable-nls --disable-werror
--enable-languages=c,c++,fortran,objc,obj-c++,ada .
The command line was "gcc hed.c -o hed.exe"; the intermediate output was :
# 1 "hed.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "d:/djgpp/bin/../lib/gcc/djgpp/4.12/djgpp.ver" 1
# 1 "d:/djgpp/include/sys/version.h" 1 3 4
# 2 "d:/djgpp/bin/../lib/gcc/djgpp/4.12/djgpp.ver" 2
# 1 "<command line>" 2
# 1 "hed.c"
# 12 "hed.c"
# 1 "d:/djgpp/include/stdio.h" 1 3 4
# 13 "d:/djgpp/include/stdio.h" 3 4
# 1 "d:/djgpp/include/sys/version.h" 1 3 4
# 14 "d:/djgpp/include/stdio.h" 2 3 4
# 1 "d:/djgpp/include/sys/djtypes.h" 1 3 4
# 15 "d:/djgpp/include/stdio.h" 2 3 4
# 35 "d:/djgpp/include/stdio.h" 3 4
typedef __builtin_va_list va_list;
typedef long unsigned int size_t;
typedef struct {
int _cnt;
char *_ptr;
char *_base;
int _bufsiz;
int _flag;
int _file;
char *_name_to_remove;
int _fillsize;
} FILE;
typedef unsigned long fpos_t;
extern FILE __dj_stdin, __dj_stdout, __dj_stderr;
void clearerr(FILE *_stream);
int fclose(FILE *_stream);
int feof(FILE *_stream);
int ferror(FILE *_stream);
int fflush(FILE *_stream);
int fgetc(FILE *_stream);
int fgetpos(FILE *_stream, fpos_t *_pos);
char * fgets(char *_s, int _n, FILE *_stream);
FILE * fopen(const char *_filename, const char *_mode);
int fprintf(FILE *_stream, const char *_format, ...);
int fputc(int _c, FILE *_stream);
int fputs(const char *_s, FILE *_stream);
size_t fread(void *_ptr, size_t _size, size_t _nelem, FILE *_stream);
FILE * freopen(const char *_filename, const char *_mode, FILE *_stream);
int fscanf(FILE *_stream, const char *_format, ...);
int fseek(FILE *_stream, long _offset, int _mode);
int fsetpos(FILE *_stream, const fpos_t *_pos);
long ftell(FILE *_stream);
size_t fwrite(const void *_ptr, size_t _size, size_t _nelem, FILE *_stream);
int getc(FILE *_stream);
int getchar(void);
char * gets(char *_s);
void perror(const char *_s);
int printf(const char *_format, ...);
int putc(int _c, FILE *_stream);
int putchar(int _c);
int puts(const char *_s);
int remove(const char *_filename);
int rename(const char *_old, const char *_new);
void rewind(FILE *_stream);
int scanf(const char *_format, ...);
void setbuf(FILE *_stream, char *_buf);
int setvbuf(FILE *_stream, char *_buf, int _mode, size_t _size);
int sprintf(char *_s, const char *_format, ...);
int sscanf(const char *_s, const char *_format, ...);
FILE * tmpfile(void);
char * tmpnam(char *_s);
int ungetc(int _c, FILE *_stream);
int vfprintf(FILE *_stream, const char *_format, va_list _ap);
int vprintf(const char *_format, va_list _ap);
int vsprintf(char *_s, const char *_format, va_list _ap);
int fileno(FILE *_stream);
FILE * fdopen(int _fildes, const char *_type);
int pclose(FILE *_pf);
FILE * popen(const char *_command, const char *_mode);
extern FILE __dj_stdprn, __dj_stdaux;
void _djstat_describe_lossage(FILE *_to_where);
int _doprnt(const char *_fmt, va_list _args, FILE *_f);
int _doscan(FILE *_f, const char *_fmt, void **_argp);
int _doscan_low(FILE *, int (*)(FILE *_get), int (*_unget)(int, FILE *), const
char *_fmt, void **_argp);
int fpurge(FILE *_f);
int getw(FILE *_f);
int mkstemp(char *_template);
char * mktemp(char *_template);
int putw(int _v, FILE *_f);
void setbuffer(FILE *_f, void *_buf, int _size);
void setlinebuf(FILE *_f);
char * tempnam(const char *_dir, const char *_prefix);
int _rename(const char *_old, const char *_new);
int vfscanf(FILE *_stream, const char *_format, va_list _ap);
int vscanf(const char *_format, va_list _ap);
int vsscanf(const char *_s, const char *_format, va_list _ap);
# 13 "hed.c" 2
# 1 "d:/djgpp/include/conio.h" 1 3 4
# 17 "d:/djgpp/include/conio.h" 3 4
extern int directvideo;
extern int _wscroll;
struct text_info {
unsigned char winleft;
unsigned char wintop;
unsigned char winright;
unsigned char winbottom;
unsigned char attribute;
unsigned char normattr;
unsigned char currmode;
unsigned char screenheight;
unsigned char screenwidth;
unsigned char curx;
unsigned char cury;
};
enum text_modes { LASTMODE=-1, BW40=0, C40, BW80, C80, MONO=7, C4350=64 };
enum COLORS {
BLACK,
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY,
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE
};
void blinkvideo(void);
char * cgets(char *_str);
void clreol(void);
void clrscr(void);
int _conio_kbhit(void);
int cprintf(const char *_format, ...) __attribute__((format(printf,1,2)));
int cputs(const char *_str);
int cscanf(const char *_format, ...) __attribute__((format(scanf,1,2)));
void delline(void);
int getch(void);
int getche(void);
int gettext(int _left, int _top, int _right, int _bottom, void *_destin);
void gettextinfo(struct text_info *_r);
void gotoxy(int _x, int _y);
void gppconio_init(void);
void highvideo(void);
void insline(void);
void intensevideo(void);
void lowvideo(void);
int movetext(int _left, int _top, int _right, int _bottom, int _destleft, int
_desttop);
void normvideo(void);
int putch(int _c);
int puttext(int _left, int _top, int _right, int _bottom, void *_source);
void _setcursortype(int _type);
void _set_screen_lines(int _nlines);
void textattr(int _attr);
void textbackground(int _color);
void textcolor(int _color);
void textmode(int _mode);
int ungetch(int);
int wherex(void);
int wherey(void);
void window(int _left, int _top, int _right, int _bottom);
# 14 "hed.c" 2
# 1 "d:/djgpp/include/dos.h" 1 3 4
# 13 "d:/djgpp/include/dos.h" 3 4
# 1 "d:/djgpp/include/pc.h" 1 3 4
# 17 "d:/djgpp/include/pc.h" 3 4
unsigned char inportb (unsigned short _port);
unsigned short inportw (unsigned short _port);
unsigned long inportl (unsigned short _port);
void inportsb (unsigned short _port, unsigned char *_buf, unsigned _len);
void inportsw (unsigned short _port, unsigned short *_buf, unsigned _len);
void inportsl (unsigned short _port, unsigned long *_buf, unsigned _len);
void outportb (unsigned short _port, unsigned char _data);
void outportw (unsigned short _port, unsigned short _data);
void outportl (unsigned short _port, unsigned long _data);
void outportsb(unsigned short _port, const unsigned char *_buf, unsigned _len);
void outportsw(unsigned short _port, const unsigned short *_buf, unsigned
_len);
void outportsl(unsigned short _port, const unsigned long *_buf, unsigned _len);
unsigned char inp(unsigned short _port);
unsigned short inpw(unsigned short _port);
void outp(unsigned short _port, unsigned char _data);
void outpw(unsigned short _port, unsigned short _data);
int getkey(void);
int getxkey(void);
void sound(int _frequency);
extern unsigned char ScreenAttrib;
int ScreenMode(void);
int ScreenRows(void);
int ScreenCols(void);
void ScreenPutChar(int _ch, int _attr, int _x, int _y);
void ScreenGetChar(int *_ch, int *_attr, int _x, int _y);
void ScreenPutString(const char *_ch, int _attr, int _x, int _y);
void ScreenSetCursor(int _row, int _col);
void ScreenGetCursor(int *_row, int *_col);
void ScreenClear(void);
void ScreenUpdate(const void *_virtual_screen);
void ScreenUpdateLine(const void *_virtual_screen_line, int _row);
void ScreenRetrieve(void *_virtual_screen);
void ScreenVisualBell(void);
# 1 "d:/djgpp/include/inlines/pc.h" 1 3 4
# 10 "d:/djgpp/include/inlines/pc.h" 3 4
extern __inline__ unsigned char
inportb (unsigned short _port)
{
unsigned char rv;
__asm__ __volatile__ ("inb %1, %0"
: "=a" (rv)
: "dN" (_port));
return rv;
}
extern __inline__ unsigned short
inportw (unsigned short _port)
{
unsigned short rv;
__asm__ __volatile__ ("inw %1, %0"
: "=a" (rv)
: "dN" (_port));
return rv;
}
extern __inline__ unsigned long
inportl (unsigned short _port)
{
unsigned long rv;
__asm__ __volatile__ ("inl %1, %0"
: "=a" (rv)
: "dN" (_port));
return rv;
}
extern __inline__ void
outportb (unsigned short _port, unsigned char _data)
{
__asm__ __volatile__ ("outb %1, %0"
:
: "dN" (_port),
"a" (_data));
}
extern __inline__ void
outportw (unsigned short _port, unsigned short _data)
{
__asm__ __volatile__ ("outw %1, %0"
:
: "dN" (_port),
"a" (_data));
}
extern __inline__ void
outportl (unsigned short _port, unsigned long _data)
{
__asm__ __volatile__ ("outl %1, %0"
:
: "dN" (_port),
"a" (_data));
}
# 69 "d:/djgpp/include/pc.h" 2 3 4
# 14 "d:/djgpp/include/dos.h" 2 3 4
extern int _8087;
int _detect_80387(void);
struct DWORDREGS {
unsigned long edi;
unsigned long esi;
unsigned long ebp;
unsigned long cflag;
unsigned long ebx;
unsigned long edx;
unsigned long ecx;
unsigned long eax;
unsigned short eflags;
};
struct DWORDREGS_W {
unsigned long di;
unsigned long si;
unsigned long bp;
unsigned long cflag;
unsigned long bx;
unsigned long dx;
unsigned long cx;
unsigned long ax;
unsigned short flags;
};
struct WORDREGS {
unsigned short di, _upper_di;
unsigned short si, _upper_si;
unsigned short bp, _upper_bp;
unsigned short cflag, _upper_cflag;
unsigned short bx, _upper_bx;
unsigned short dx, _upper_dx;
unsigned short cx, _upper_cx;
unsigned short ax, _upper_ax;
unsigned short flags;
};
struct BYTEREGS {
unsigned short di, _upper_di;
unsigned short si, _upper_si;
unsigned short bp, _upper_bp;
unsigned long cflag;
unsigned char bl;
unsigned char bh;
unsigned short _upper_bx;
unsigned char dl;
unsigned char dh;
unsigned short _upper_dx;
unsigned char cl;
unsigned char ch;
unsigned short _upper_cx;
unsigned char al;
unsigned char ah;
unsigned short _upper_ax;
unsigned short flags;
};
union REGS {
struct DWORDREGS d;
struct DWORDREGS_W x;
struct WORDREGS w;
struct BYTEREGS h;
};
struct SREGS {
unsigned short es;
unsigned short ds;
unsigned short fs;
unsigned short gs;
unsigned short cs;
unsigned short ss;
};
struct ftime {
unsigned ft_tsec:5;
unsigned ft_min:6;
unsigned ft_hour:5;
unsigned ft_day:5;
unsigned ft_month:4;
unsigned ft_year:7;
};
struct date {
short da_year;
char da_day;
char da_mon;
};
struct time {
unsigned char ti_min;
unsigned char ti_hour;
unsigned char ti_hund;
unsigned char ti_sec;
};
struct dfree {
unsigned df_avail;
unsigned df_total;
unsigned df_bsec;
unsigned df_sclus;
};
extern unsigned short _osmajor, _osminor;
extern const char * _os_flavor;
extern int _doserrno;
unsigned short _get_dos_version(int);
int int86(int ivec, union REGS *in, union REGS *out);
int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *seg);
int intdos(union REGS *in, union REGS *out);
int intdosx(union REGS *in, union REGS *out, struct SREGS *seg);
int bdos(int func, unsigned dx, unsigned al);
int bdosptr(int func, void *dx, unsigned al);
int enable(void);
int disable(void);
int getftime(int handle, struct ftime *ftimep);
int setftime(int handle, struct ftime *ftimep);
int getcbrk(void);
int setcbrk(int new_value);
void getdate(struct date *);
void gettime(struct time *);
void setdate(struct date *);
void settime(struct time *);
void getdfree(unsigned char drive, struct dfree *ptr);
void delay(unsigned msec);
# 186 "d:/djgpp/include/dos.h" 3 4
struct _dosdate_t {
unsigned char day;
unsigned char month;
unsigned short year;
unsigned char dayofweek;
};
struct _dostime_t {
unsigned char hour;
unsigned char minute;
unsigned char second;
unsigned char hsecond;
};
struct _find_t {
char reserved[21] __attribute__((packed));
unsigned char attrib __attribute__((packed));
unsigned short wr_time __attribute__((packed));
unsigned short wr_date __attribute__((packed));
unsigned long size __attribute__((packed));
char name[256] __attribute__((packed));
};
struct _diskfree_t {
unsigned short total_clusters;
unsigned short avail_clusters;
unsigned short sectors_per_cluster;
unsigned short bytes_per_sector;
};
struct _DOSERROR {
int exterror;
char class;
char action;
char locus;
};
unsigned int _dos_creat(const char *_filename, unsigned int _attr, int
*_handle);
unsigned int _dos_creatnew(const char *_filename, unsigned int _attr, int
*_handle);
unsigned int _dos_open(const char *_filename, unsigned int _mode, int
*_handle);
unsigned int _dos_write(int _handle, const void *_buffer, unsigned int _count,
unsigned int *_result);
unsigned int _dos_read(int _handle, void *_buffer, unsigned int _count,
unsigned int *_result);
unsigned int _dos_close(int _handle);
unsigned int _dos_commit(int _handle);
unsigned int _dos_findfirst(const char *_name, unsigned int _attr, struct
_find_t *_result);
unsigned int _dos_findnext(struct _find_t *_result);
void _dos_getdate(struct _dosdate_t *_date);
unsigned int _dos_setdate(struct _dosdate_t *_date);
void _dos_gettime(struct _dostime_t *_time);
unsigned int _dos_settime(struct _dostime_t *_time);
unsigned int _dos_getftime(int _handle, unsigned int *_p_date, unsigned int
*_p_time);
unsigned int _dos_setftime(int _handle, unsigned int _date, unsigned int
_time);
unsigned int _dos_getfileattr(const char *_filename, unsigned int *_p_attr);
unsigned int _dos_setfileattr(const char *_filename, unsigned int _attr);
void _dos_getdrive(unsigned int *_p_drive);
void _dos_setdrive(unsigned int _drive, unsigned int *_p_drives);
unsigned int _dos_getdiskfree(unsigned int _drive, struct _diskfree_t
*_diskspace);
int _dosexterr(struct _DOSERROR *_p_error);
# 15 "hed.c" 2
# 1 "d:/djgpp/include/dir.h" 1 3 4
# 21 "d:/djgpp/include/dir.h" 3 4
#pragma pack(1)
struct ffblk {
char lfn_magic[6] __attribute__((packed));
short lfn_handle __attribute__((packed));
unsigned short lfn_ctime __attribute__((packed));
unsigned short lfn_cdate __attribute__((packed));
unsigned short lfn_atime __attribute__((packed));
unsigned short lfn_adate __attribute__((packed));
char _ff_reserved[5] __attribute__((packed));
unsigned char ff_attrib __attribute__((packed));
unsigned short ff_ftime __attribute__((packed));
unsigned short ff_fdate __attribute__((packed));
unsigned long ff_fsize __attribute__((packed));
char ff_name[260] __attribute__((packed));
};
struct ffblklfn {
unsigned long fd_attrib __attribute__((packed));
unsigned long long fd_ctime __attribute__((packed));
unsigned long long fd_atime __attribute__((packed));
unsigned long long fd_mtime __attribute__((packed));
unsigned long fd_sizehi __attribute__((packed));
unsigned long fd_size __attribute__((packed));
unsigned long long fd_reserved __attribute__((packed));
char fd_longname[260] __attribute__((packed));
char fd_name[14] __attribute__((packed));
};
#pragma pack(4)
# 72 "d:/djgpp/include/dir.h" 3 4
int __file_tree_walk(const char *_dir, int (*_fn)(const char *_path, const
struct ffblk *_ff));
int findfirst(const char *_pathname, struct ffblk *_ffblk, int _attrib);
int findnext(struct ffblk *_ffblk);
void fnmerge (char *_path, const char *_drive, const char *_dir, const char
*_name, const char *_ext);
int fnsplit (const char *_path, char *_drive, char *_dir, char *_name, char
*_ext);
int getdisk(void);
char * searchpath(const char *_program);
int setdisk(int _drive);
# 16 "hed.c" 2
# 1 "d:/djgpp/include/bios.h" 1 3 4
# 16 "d:/djgpp/include/bios.h" 3 4
int bioscom(int _cmd, char _data, int _port);
int biosdisk(int _cmd, int _drive, int _head, int _track, int _sector,
int _nsects, void *_buffer);
int biosequip(void);
int bioskey(int cmd);
int biosmemory(void);
int biosprint(int _cmd, int _byte, int _port);
long biostime(int _cmd, long _newtime);
struct _diskinfo_t {
unsigned drive;
unsigned head;
unsigned track;
unsigned sector;
unsigned nsectors;
void *buffer;
};
# 98 "d:/djgpp/include/bios.h" 3 4
unsigned _bios_disk(unsigned _cmd, struct _diskinfo_t *_di);
unsigned _bios_timeofday(unsigned _cmd, unsigned long *_timeval);
# 17 "hed.c" 2
# 1 "d:/djgpp/include/ctype.h" 1 3 4
# 11 "d:/djgpp/include/ctype.h" 3 4
int isalnum(int c);
int isalpha(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int tolower(int c);
int toupper(int c);
# 1 "d:/djgpp/include/inlines/ctype.ha" 1 3 4
# 16 "d:/djgpp/include/inlines/ctype.ha" 3 4
extern unsigned short __dj_ctype_flags[];
extern unsigned char __dj_ctype_toupper[];
extern unsigned char __dj_ctype_tolower[];
# 27 "d:/djgpp/include/ctype.h" 2 3 4
int isascii(int c);
int toascii(int c);
# 1 "d:/djgpp/include/inlines/ctype.hd" 1 3 4
# 38 "d:/djgpp/include/ctype.h" 2 3 4
# 18 "hed.c" 2
# 1 "d:/djgpp/include/dirent.h" 1 3 4
# 16 "d:/djgpp/include/dirent.h" 3 4
typedef struct __dj_DIR DIR;
struct dirent {
char d_namlen;
char d_name[256];
};
int closedir(DIR *dirp);
DIR * opendir(const char *_dirname);
struct dirent * readdir(DIR *_dirp);
void rewinddir(DIR *_dirp);
extern int __opendir_flags;
void seekdir(DIR *_dir, long _loc);
long telldir(DIR *_dir);
void __set_need_fake_dot_dotdot(DIR *_dir);
void _lfn_find_close(int _handle);
# 19 "hed.c" 2
# 1 "d:/djgpp/include/stdlib.h" 1 3 4
# 24 "d:/djgpp/include/stdlib.h" 3 4
extern int __dj_mb_cur_max;
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
typedef unsigned short wchar_t;
void abort(void) __attribute__((noreturn));
int abs(int _i);
int atexit(void (*_func)(void));
double atof(const char *_s);
int atoi(const char *_s);
long atol(const char *_s);
void * bsearch(const void *_key, const void *_base, size_t _nelem,
size_t _size, int (*_cmp)(const void *_ck, const void *_ce));
void * calloc(size_t _nelem, size_t _size);
div_t div(int _numer, int _denom);
void exit(int _status) __attribute__((noreturn));
void free(void *_ptr);
char * getenv(const char *_name);
long labs(long _i);
ldiv_t ldiv(long _numer, long _denom);
void * malloc(size_t _size);
int mblen(const char *_s, size_t _n);
size_t mbstowcs(wchar_t *_wcs, const char *_s, size_t _n);
int mbtowc(wchar_t *_pwc, const char *_s, size_t _n);
void qsort(void *_base, size_t _nelem, size_t _size,
int (*_cmp)(const void *_e1, const void *_e2));
int rand(void);
void * realloc(void *_ptr, size_t _size);
void srand(unsigned _seed);
double strtod(const char *_s, char **_endptr);
long strtol(const char *_s, char **_endptr, int _base);
unsigned long strtoul(const char *_s, char **_endptr, int _base);
int system(const char *_s);
size_t wcstombs(char *_s, const wchar_t *_wcs, size_t _n);
int wctomb(char *_s, wchar_t _wchar);
typedef struct {
long long quot;
long long rem;
} lldiv_t;
void * alloca(size_t _size);
long double _atold(const char *_s);
long long atoll(const char *_s);
void cfree(void *_ptr);
double drand48(void);
char * ecvtbuf(double _val, int _nd, int *_dp, int *_sn, char *_bf);
char * ecvt(double _val, int _nd, int *_dp, int *_sn);
double erand48(unsigned short state[3]);
char * fcvtbuf(double _val, int _nd, int *_dp, int *_sn, char *_bf);
char * fcvt(double _val, int _nd, int *_dp, int *_sn);
char * gcvt(double _val, int _nd, char *_buf);
char * getpass(const char *_prompt);
int getlongpass(const char *_prompt, char *_buffer, int _max_len);
char * itoa(int value, char *buffer, int radix);
long jrand48(unsigned short state[3]);
long long llabs(long long _i);
lldiv_t lldiv(long long _numer, long long _denom);
void lcong48(unsigned short param[7]);
unsigned long lrand48(void);
long mrand48(void);
unsigned long nrand48(unsigned short state[3]);
int putenv(const char *_val);
unsigned short *seed48(unsigned short state_seed[3]);
int setenv(const char *_var, const char *_val, int _replace);
void srand48(long seedval);
int stackavail(void);
long double _strtold(const char *_s, char **_endptr);
long long strtoll(const char *_s, char **_endptr, int _base);
unsigned long long strtoull(const char *_s, char **_endptr, int _base);
void swab(const void *from, void *to, int nbytes);
char * initstate (unsigned _seed, char *_arg_state, int _n);
char * setstate(char *_arg_state);
long random(void);
int srandom(int _seed);
# 140 "d:/djgpp/include/stdlib.h" 3 4
extern int __system_flags;
# 20 "hed.c" 2
# 1 "d:/djgpp/include/string.h" 1 3 4
# 19 "d:/djgpp/include/string.h" 3 4
void * memchr(const void *_s, int _c, size_t _n);
int memcmp(const void *_s1, const void *_s2, size_t _n);
void * memcpy(void *_dest, const void *_src, size_t _n);
void * memmove(void *_s1, const void *_s2, size_t _n);
void * memset(void *_s, int _c, size_t _n);
char * strcat(char *_s1, const char *_s2);
char * strchr(const char *_s, int _c);
int strcmp(const char *_s1, const char *_s2);
int strcoll(const char *_s1, const char *_s2);
char * strcpy(char *_s1, const char *_s2);
size_t strcspn(const char *_s1, const char *_s2);
char * strerror(int _errcode);
size_t strlen(const char *_s);
char * strncat(char *_s1, const char *_s2, size_t _n);
int strncmp(const char *_s1, const char *_s2, size_t _n);
char * strncpy(char *_s1, const char *_s2, size_t _n);
char * strpbrk(const char *_s1, const char *_s2);
char * strrchr(const char *_s, int _c);
size_t strspn(const char *_s1, const char *_s2);
char * strstr(const char *_s1, const char *_s2);
char * strtok(char *_s1, const char *_s2);
size_t strxfrm(char *_s1, const char *_s2, size_t _n);
# 1 "d:/djgpp/include/sys/movedata.h" 1 3 4
# 18 "d:/djgpp/include/sys/movedata.h" 3 4
# 27 "d:/djgpp/include/sys/movedata.h" 3 4
void dosmemget(unsigned long _offset, size_t _length, void *_buffer);
void dosmemput(const void *_buffer, size_t _length, unsigned long _offset);
void _dosmemgetb(unsigned long _offset, size_t _xfers, void *_buffer);
void _dosmemgetw(unsigned long _offset, size_t _xfers, void *_buffer);
void _dosmemgetl(unsigned long _offset, size_t _xfers, void *_buffer);
void _dosmemputb(const void *_buffer, size_t _xfers, unsigned long _offset);
void _dosmemputw(const void *_buffer, size_t _xfers, unsigned long _offset);
void _dosmemputl(const void *_buffer, size_t _xfers, unsigned long _offset);
void movedata(unsigned _source_selector, unsigned _source_offset,
unsigned _dest_selector, unsigned _dest_offset,
size_t _length);
void _movedatab(unsigned, unsigned, unsigned, unsigned, size_t);
void _movedataw(unsigned, unsigned, unsigned, unsigned, size_t);
void _movedatal(unsigned, unsigned, unsigned, unsigned, size_t);
# 51 "d:/djgpp/include/string.h" 2 3 4
int bcmp(const void *_ptr1, const void *_ptr2, int _length);
void * bcopy(const void *_a, void *_b, size_t _len);
int ffs(int _mask);
char * index(const char *_string, int _c);
void * memccpy(void *_to, const void *_from, int c, size_t n);
int memicmp(const void *_s1, const void *_s2, size_t _n);
char * rindex(const char *_string, int _c);
char * stpcpy(char *_dest, const char *_src);
char * strdup(const char *_s);
char * strlwr(char *_s);
int strcasecmp(const char *_s1, const char *_s2);
int stricmp(const char *_s1, const char *_s2);
int strncasecmp(const char *_s1, const char *_s2, size_t _n);
int strnicmp(const char *_s1, const char *_s2, size_t _n);
char * strsep(char **_stringp, const char *_delim);
char * strupr(char *_s);
# 21 "hed.c" 2
# 38 "hed.c"
struct boot
{
unsigned char code[3] ;
unsigned char system_id[8] ;
int bytes_per_sec ;
char sec_per_clus ;
int res_sec ;
char fat_copies ;
int root_dir_entry ;
unsigned int no_sects ;
unsigned char format_id ;
int sec_per_fat ;
int sec_per_trk ;
int no_sides ;
int no_sp_res_sect ;
unsigned char rest_code[482] ;
} ;
struct boot b ;
struct ffblk ffblk;
unsigned char buff[512],temp[512];
char fl[512][14];
int drive,head,track,sector,lsect,maxc,i,i5=0,i6=0,x,y,a,indicator,of=0,ftp=1;
FILE *fp1;
FILE *fs;
static int x1=2;
void update(int i);
void filemode();
void dispfl(char *fl);
void help();
void part();
void disclam();
void chdr(char a);
char *getascii (unsigned int in_data [], int off_start, int off_end);
void lay()
{
int p,q;
gotoxy(1,1);
textcolor(15);
cprintf(" Disk Editor(version 2.0)
");
for(q=2;q<=24;q++)
{gotoxy(1,q);
cprintf("%c",186);
gotoxy(80,q);
cprintf("%c",186);
}
for(p=2;p<80;p++)
{
gotoxy(p,24);
cprintf("%c",205);}
gotoxy(80,24);
cprintf("%c",188);
gotoxy(1,24);
cprintf("%c",200);
for(p=2;p<25;p++)
{gotoxy(p,1);
cprintf("%c",205);}
for(p=53;p<80;p++)
{gotoxy(p,1);
cprintf("%c",205);}
gotoxy(1,1);
cprintf("%c",201);
gotoxy(80,1);
cprintf("%c",187);
}
void hdinfo ()
{
unsigned int dd [256];
unsigned int dd_off;
unsigned int loop=0;
int num_drv;
union REGS registers;
unsigned int bios_cyl [2], bios_head [2], bios_sec [2];
while (inp (0x1F7) != 0x50)
;
outp (0x1F6, 0xA0 );
outp (0x1F7, 0xEC);
while (inp (0x1F7) != 0x58)
;
for (dd_off = 0; dd_off != 256; dd_off++)
dd [dd_off] = inpw (0x1F0);
registers.h.ah = 0x8;
registers.h.dl = 0x80 ;
int86 (0x13, ®isters, ®isters);
if (! registers.x.cflag)
{
bios_head [loop] = registers.h.dh + 1;
bios_sec [loop] = registers.h.cl & 0x3F;
bios_cyl [loop] = ((registers.h.cl & 0xC0) << 2) + registers.h.ch + 2;
}
gotoxy(2,2);
printf ( " DRIVE %d:\n", loop);
gotoxy(2,3);
printf ( " Model Number______________________: %s\n", getascii (dd, 27,
46));
gotoxy(2,4);
printf ( " Serial Number_____________________: %s\n", getascii (dd, 10,
19));
gotoxy(2,5);
printf ( " Controller Revision Number________: %s\n\n", getascii (dd,
23, 26));
gotoxy(2,7);
printf ( " Able to do Double Word Transfer___: %6s\n", (dd [48] == 0 ?
"No" : "Yes"));
gotoxy(2,8);
printf ( " Controller type___________________: %04X\n", dd [20]);
gotoxy(2,9);
printf ( " Controller buffer size (bytes)____: %6u\n", dd [21] * 512);
gotoxy(2,10);
printf ( " Number of ECC bytes transferred___: %6u\n", dd [22]);
gotoxy(2,11);
printf ( " Number of sectors per interrupt___: %6u\n\n", dd [47]);
gotoxy(2,13);
printf ( " Hard Disk Reports\n");
gotoxy(2,14);
printf ( " Number of Cylinders (Fixed)_______: %6u\n", dd [1]);
gotoxy(2,15);
printf ( " Number of Heads___________________: %6u\n", dd [3]);
gotoxy(2,16);
printf ( " Number of Sectors per Track_______: %6u\n\n", dd [6]);
gotoxy(2,18);
printf ( " BIOS Reports\n");
gotoxy(2,19);
printf ( " Number of Cylinders_______________: %6u\n", bios_cyl [loop]);
gotoxy(2,20);
printf ( " Number of Heads___________________: %6u\n", bios_head
[loop]);
gotoxy(2,21);
printf ( " Number of Sectors per Track_______: %6u\n\n", bios_sec
[loop]);
gotoxy(49,23);
printf ( "press a key to continue....");
getch ();
part();
}
char *getascii (unsigned int in_data [], int off_start, int off_end)
{
static char ret_val [255];
int loop, loop1;
for (loop = off_start, loop1 = 0; loop <= off_end; loop++)
{
ret_val [loop1++] = (char) (in_data [loop] / 256);
ret_val [loop1++] = (char) (in_data [loop] % 256);
}
ret_val [loop1] = '\0';
return (ret_val);
}
void part()
{
struct partition
{
unsigned char bootable ; unsigned char start_side ;
unsigned int start_sec_cyl ; unsigned char parttype ;
unsigned char end_side ; unsigned int end_sec_cyl ;
unsigned long part_beg ; unsigned long plen ;
} ;
struct part
{
unsigned char master_boot[446] ;
struct partition pt[4] ;
int lasttwo ;
} ;
struct part p ;
int p1,q;
unsigned int s_sec, s_trk, e_sec, e_trk, i, t1, t2 ;
char type[20], boot[5] ;
clrscr();
biosdisk ( 2, 0x80, 0, 0, 1, 1, &p ) ;
printf("\n Part. Boot Startlocation EndLocation Relative sec
Number of");
printf("\n Type Side Cyl Sector Side Cyl Sector begin end
Sectors\n");
for ( i = 0 ; i <= 3 ; i++ )
{
if ( p.pt[i].bootable == 0x80 )
strcpy ( boot, "Yes" ) ;
else
strcpy ( boot, "No" ) ;
switch ( p.pt[i].parttype )
{
case 0 :
strcpy ( type, "Unused" ) ;
break ;
case 1 :
strcpy ( type, "12-Bit" ) ;
break ;
case 2 :
strcpy ( type, "Xenix" ) ;
break ;
case 4 :
strcpy ( type, "16-Bit" ) ;
break ;
case 5 :
strcpy ( type, "Extended" ) ;
break ;
case 6 :
strcpy ( type, "Huge" ) ;
break ;
default :
strcpy ( type, "Unknown" ) ;
break ;
}
s_sec = ( p.pt[i].start_sec_cyl & 0x3f ) ;
t1 = ( p.pt[i].start_sec_cyl & 0xff00 ) >> 8 ;
t2 = ( p.pt[i].start_sec_cyl & 0x00c0 ) << 2 ;
s_trk = t1 | t2 ;
e_sec = ( p.pt[i].end_sec_cyl & 0x3f ) ;
t1 = ( p.pt[i].end_sec_cyl & 0xff00 ) >> 8 ;
t2 = ( p.pt[i].end_sec_cyl & 0x00c0 ) << 2 ;
e_trk = t1 | t2 ;
printf ( "\n %6s %3s", type, boot ) ;
printf ( " %d %6d %d", p.pt[i].start_side, s_trk,s_sec ) ;
printf ( " %7d%6u %8u ", p.pt[i].end_side, e_trk, e_sec ) ;
printf ( "%8lu%10lu", p.pt[i].part_beg, p.pt[i].plen ) ;
}
lay();
for(p1=2;p1<80;p1++)
{
gotoxy(p1,4);
printf("%c",205);
gotoxy(p1,9);
printf("%c",205);
}
for(q=2;q<9;q++)
{
gotoxy(9,q);
printf("%c",179);
gotoxy(16,q);
printf("%c",179);
gotoxy(37,q);
printf("%c",179);
gotoxy(53,q);
printf("%c",179);
gotoxy(68,q);
printf("%c",179);
}
for(q=5;q<9;q++)
{ gotoxy(22,q);
printf("%c",179);
gotoxy(29,q);
printf("%c",179);
gotoxy(45,q);
printf("%c",179);
gotoxy(59,q);
printf("%c",179);
}
gotoxy(37,9);
printf("%c",207);
gotoxy(29,9);
printf("%c",207);
gotoxy(22,9);
printf("%c",207);
gotoxy(16,9);
printf("%c",207);
gotoxy(9,9);
printf("%c",207);
gotoxy(45,9);
printf("%c",207);
gotoxy(53,9);
printf("%c",207);
gotoxy(59,9);
printf("%c",207);
gotoxy(68,9);
printf("%c",207);
gotoxy(37,4);
printf("%c",216);
gotoxy(29,4);
printf("%c",209);
gotoxy(22,4);
printf("%c",209);
gotoxy(16,4);
printf("%c",216);
gotoxy(9,4);
printf("%c",216);
gotoxy(45,4);
printf("%c",209);
gotoxy(53,4);
printf("%c",216);
gotoxy(59,4);
printf("%c",209);
gotoxy(68,4);
printf("%c",216);
gotoxy(25,12);
printf("Press any key to continue and don't forgot to vote:)");
getch();
}
display(int i4)
{
int r,c,a,i=0,p,q;
unsigned char ch;
textbackground(4);
clrscr();
textcolor(11);
if(drive==0)
cprintf("Relative sector displayed is %06d",lsect);
else
if(drive==0x80)
cprintf("Head:%03d, Track:%06d, Sector:%08d",head,track,sector);
else
if(drive==405)
{ if(i6==0)
{gotoxy(1,1);
cprintf("File=%s",fl[i4]);
fread(buff,512,1,fs);}
gotoxy(1,1);
cprintf("File=%s",fl[i4]);
}
textcolor(14);
printf("\n");
gotoxy(21,2);
cprintf("Hex codes");
textcolor(11);
for(q=2;q<20;q++)
{
gotoxy(q,2);
cprintf("%c",205);
}
for(q=31;q<=54;q++)
{
gotoxy(q,2);
cprintf("%c",205);}
gotoxy(1,2);
cprintf("%c",201);
for(q=3;q<=24;q++)
{
gotoxy(1,q);
cprintf("%c",186);
}
for(q=3;q<=24;q++)
{
gotoxy(55,q);
cprintf("%c",186);
}
gotoxy(55,2);
cprintf("%c",203);
for(q=56;q<61;q++)
{
gotoxy(q,2);
cprintf("%c",205);
}
textcolor(14);
cprintf(" Ascii values ");
textcolor(11);
for(q=75;q<=80;q++)
{
gotoxy(q,2);
cprintf("%c",205);
}
for(r=3;r<=24;r++)
{
for(c=2;c<=55;c+=2)
{
ch=buff[i];
gotoxy(c,r);
textcolor(15);
cprintf("%02x",ch);
gotoxy(57+(i%24),r);
if(ch==7||ch==8||ch==13||ch==10)
printf(" ");
else
{
cprintf("%c",ch);
}
i++;
if(i%4==0)
c++;
if(i==512)
{
maxc=c+1;
break;
}
}
}
textcolor(11);
printf("\n");
if(drive==0)
{cprintf("F1-Restore;F2-Save changes,F5-Jump to sec,Pgdwn-Next sec,Pgup-Prev
sec,Esc-Exit");
gotoxy(52,1);
cprintf("F3-Edit hex,F4-Edit ascii ");}
else
if(drive==0x80)
{
cprintf("F1-Restore,F2-Save,F3-Edit hex,F4-Edit
ascii,F5-Head,F6-Track,F7-Sector");
gotoxy(41,1);
cprintf("Pg up-Prev sec,Pg down-Next sec,Esc-Exit");}
else
if(drive==405)
{
cprintf("F2-Save,F3-Edit hex,F4-Edit ascii");
gotoxy(38,1);
cprintf("Pg up-Prev Page,Pg down-Next page,Esc-Exit");}
return 0 ;
}
void fp()
{
int a;
clrscr();
lay();
a=absread(0,1,0,&b);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}
gotoxy(6,4);
cprintf("System id: %s", b.system_id);
gotoxy(6,7);
cprintf("Bytes per sector : %d", b.bytes_per_sec ) ;
gotoxy(6,10);
cprintf("Sectors per cluster : %d", b.sec_per_clus ) ;
gotoxy(6,13);
cprintf("Reserved sectors : %d", b.res_sec ) ;
gotoxy(6,16);
cprintf("FAT copies : %d", b.fat_copies ) ;
gotoxy(6,19);
cprintf("Root directory entries : %d", b.root_dir_entry ) ;
gotoxy(44,4);
cprintf("No. of sectors on disk : %u", b.no_sects ) ;
gotoxy(44,7);
cprintf("Format id : %X", b.format_id ) ;
gotoxy(44,10);
cprintf("Sectors per FAT : %d", b.sec_per_fat ) ;
gotoxy(44,13);
cprintf("Sectors per track : %d", b.sec_per_trk ) ;
gotoxy(44,16);
cprintf("No. of sides : %d", b.no_sides ) ;
gotoxy(44,19);
cprintf("No. of reserved sectors : %d", b.no_sp_res_sect ) ;
gotoxy(48,22);
printf("Press any key to continue...\n hey u like it not??? ");
getch();
}
void options()
{ char ch; int dr;char name[20];
textbackground(4);
clrscr();
while(ch!=27)
{clrscr();
lay();
_setcursortype(0);
gotoxy(28,4);
cprintf("F : Floppy drive info");
gotoxy(28,6);
cprintf("M : Harddisk info");
gotoxy(28,8);
cprintf("A : Edit Floppy sector");
gotoxy(28,10);
cprintf("C : Edit Harddisk sector");
gotoxy(28,12);
cprintf("F2 : File mode");
gotoxy(28,14);
cprintf("T : Save to file");
gotoxy(28,16);
cprintf("W : Write from file");
gotoxy(28,18);
cprintf("F1 : Help");
gotoxy(28,20);
cprintf("D : Disclamier");
gotoxy(28,22);
cprintf("Esc : Exit");
textcolor(15);
gotoxy(5,25);
cprintf("Copyright (c) 2003 by Hardik Shah. Released Under GNU-GPL.");
ch=getch();
_setcursortype(2);
switch(ch)
{
case 'F':
case 'f':clrscr();
lay();
gotoxy(2,2);
printf("Please insert a floppy disk in drive and press any key....");
getch();
clrscr();
fp();
break;
case 'M':
case 'm':clrscr();
lay();
gotoxy(2,2);
printf("This option is not compatible with all the drivers.If your screen
goes blank");
gotoxy(2,3);
printf("then press ctrl+pause to exit.press any key to continue....");
getch();
clrscr();
lay();
hdinfo();
break;
case 'A':
case 'a':clrscr();
lay();
gotoxy(4,4);
cprintf("Enter logical sector you wish to edit:");
scanf("%d",&lsect);
drive=0;
a=absread(drive,1,lsect,buff);
if(a==-1)
{
perror("Disk Read/Write error:");
getch();
break;
}
display(0);
edit();
break;
case 'C':
case 'c': clrscr();
lay();
drive=0x80;
gotoxy(4,4);
cprintf("Enter the head:");
scanf("%d",&head);
gotoxy(4,6);
cprintf("Enter the track:");
scanf("%d",&track);
gotoxy(4,8);
cprintf("Enter the sector:");
scanf("%d",§or);
biosdisk(2,0x80,head,track,sector,1,buff);
display(0);
edit();
break;
case 'T':
case 't':clrscr();
lay();
chdir("c:\\windows\\desktop");
gotoxy(2,2);
cprintf("Enter the file name with extension:");
scanf("%s",name);
fp1=fopen(name,"wb+");
if(fp1==0)
perror("can't open file!!!");
else
{
gotoxy(2,3);
cprintf("Select Drive");
gotoxy(2,4);
cprintf("1)Harddisk");
gotoxy(2,5);
cprintf("2)Floppy disk");
gotoxy(2,6);
printf("ur choice:");
dr=getche();
dr=dr-48;
while(dr!=1&&dr!=2)
{gotoxy(2,4);
cprintf("Please enter a valid choice!!!");
dr=getche();
dr=dr-48;}
switch(dr)
{
case 1:clrscr();
lay();
gotoxy(12,2);
cprintf("write the hard disk sector to file!!!");
gotoxy(2,4);
cprintf("enter the head:");
scanf("%d",&head);
gotoxy(2,6);
cprintf("enter the track:");
scanf("%d",&track);
gotoxy(2,8);
cprintf("enter the sector:");
scanf("%d",§or);
biosdisk(2,0x80,head,track,sector,1,buff);
fwrite(&buff,sizeof(buff),1,fp1);
fclose(fp1);
gotoxy(2,10);
cprintf("the sector is stored to the file
\"c:\\windows\\desktop\\%s\"",name);
getch();
break;
case 2:clrscr();
lay();
gotoxy(12,2);
cprintf("write the floppy disk sector to file!!!");
gotoxy(2,4);
cprintf("enter logical sector:");
scanf("%d",&lsect);
gotoxy(2,6);
cprintf("writing....");
a=absread(drive,1,lsect,buff);
if(a==-1)
{
perror("Disk Read/Write error:");
getch();
break;
}
fwrite(&buff,sizeof(buff),1,fp1);
fclose(fp1);
gotoxy(2,8);
cprintf("the sector is stored to the file
\"c:\\windows\\desktop\\%s\"",name);
getch();
}
}
break;
case 'W':
case 'w': clrscr();
lay();
chdir("c:\\windows\\desktop");
gotoxy(2,2);
cprintf("enter the file name with extension:");
scanf("%s",name);
fp1=fopen(name,"rb+");
if(fp1==0)
{perror("can't open file!!!");
getch();
break;
}
else
{
gotoxy(2,3);
cprintf("enter the drive");
gotoxy(2,4);
cprintf("1)for harddisk");
gotoxy(2,5);
cprintf("2)for floppy disk");
gotoxy(2,6);
printf("ur choice:");
dr=getche();
dr=dr-48;
while(dr!=1&&dr!=2)
{gotoxy(2,8);
printf("please enter a valid choice!!!");
dr=getche();
dr=dr-48;
}
switch(dr)
{
case 1:clrscr();
lay();
gotoxy(12,2);
cprintf("write to hard disk **from** file!!!");
gotoxy(2,4);
cprintf("enter the head:");
scanf("%d",&head);
gotoxy(2,6);
cprintf("enter the track:");
scanf("%d",&track);
gotoxy(2,8);
cprintf("enter the sector:");
scanf("%d",§or);
fread(&buff,512,1,fp1);
biosdisk(3,0x80,head,track,sector,1,buff);
fclose(fp1);
gotoxy(2,10);
cprintf("successfully write to the disk!!!");
getch();
break;
case 2:clrscr();
lay();
gotoxy(12,2);
cprintf("write to floppy disk sector **from** file!!!");
gotoxy(2,4);
cprintf("enter logical sector:");
scanf("%d",&lsect);
fread(&buff,512,1,fp1);
gotoxy(2,6);
cprintf("writing...." );
a=abswrite(drive,1,lsect,buff);
if(a==-1)
{
perror("Disk Read/Write error:");
getch();
break;
}
fclose(fp1);
gotoxy(2,8);
cprintf("successfully write to the disk!!!");
getch();
}
}
break;
case 27: textbackground(0);
clrscr();
gotoxy(2,2);
printf("thanks for using this!!!");
gotoxy(2,3);
printf("if u found this software usefull then simply drop me a mail at:-\n
hardik_shah_cu@rediffmail.com");
gotoxy(2,5);
printf("or send a letter to:-\nhardik Shah\nI-405 L.I.G. Colony,\nIndira
chowk,\nindore(M.P),\nPin-452008\n India");
gotoxy(13,12);
printf("web:-\n-hardik shah\nwww.hardikshah.cjb.net");
chdr('c');
exit(1);
break;
case 59:clrscr();
help();
getch();
break;
case 60:clrscr();
filemode();
break;
case 'd':
case 'D':clrscr();
disclam();
lay();
getch();
break;
}
}
}
edit()
{
int ch,ch1,j,flg=0;
x=2;
y=3;
indicator=1;
i=0;
for(j=0;j<=511;j++)
temp[j]=buff[j];
while(1)
{
gotoxy(x,y);
ch=bioskey(0);
ch1=(__dj_ctype_toupper[(int)(ch)+1]);
if(ch1>='0'&&ch1<='9'||ch1>='A'&&ch1<='F')
{
putch((__dj_ctype_toupper[(int)(ch)+1]));
indicator=!(indicator);
x++;
if(((x-1)%9==0)&&(x>=9))
x++;
if(indicator==0)
{
gotoxy(x,y);
printf(" ");
}
ch1=ch1-48;
if(ch1>9)
ch1=ch1-7;
if(indicator==0)
{
ch1=ch1<<4;
temp[i]=temp[i]&0x0f;
flg=1;
}
else
{
flg=0;
temp[i]=temp[i]&0xf0;
}
temp[i]=temp[i]|ch1;
if(x>=19&&y==24)
flg=0;
gotoxy((57+(i%24)),y);
printf("%c",temp[i]);
if(flg==0)
i++;
sound(0);
update(0);
}
else
{
switch(ch)
{
case 0x4D00:
if((x==8)||(x==17)||(x==26)||(x==35)||(x==44))
x++;
update(1);
break;
case 0x4B00:
if(((x-2)%9==0)&&(x>=9))
x--;
update(2);
break;
case 0x5000:
update(3);
break;
case 0x04800:
update(4);
break;
case 0x3B00: x=2;
y=3;
i=0;
display(0);
break;
case 0x3C00:i=0;
gotoxy(52,1);
printf(" saving....");
for(j=0;j<=511;j++)
buff[j]=temp[j];
if(drive==0)
{a=abswrite(drive,1,lsect,temp);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}
clrscr();
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
} }
else
if(drive==0x80)
{biosdisk(3,drive,head,track,sector,1,buff);
clrscr();
biosdisk(4,drive,head,track,sector,1,buff);
}
else
if(drive==405)
{fseek(fs,-512,1);
fwrite(buff,512,1,fs);
fseek(fs,-512,1);
i6=0;
display(i5);
edit();
break;
}
display(0);
edit();
break;
case 0x3f00:
if(drive==0)
{i=0;
gotoxy(1,25);
textcolor(2);
cprintf(" enter the sector you wish to modify:
");
gotoxy(55,25);
scanf("%d",&lsect);
textcolor(15);
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}
}
else
if(drive==0x80)
{i=0;
gotoxy(6,1);
textcolor(2);
printf(" ");
gotoxy(6,1);
scanf("%d",&head);
textcolor(15);
biosdisk(2,drive,head,track,sector,1,buff);
}
display(0);
edit();
break;
case 0x4900:
if(drive==0)
{i=0;
lsect--;
if(lsect<0)
lsect=0;
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}
else
display(0);
}
else
if(drive==0x80)
{i=0;
sector--;
if(sector<1)
sector=1;
biosdisk(2,drive,head,track,sector,1,buff);
display(0);}
else
if(drive==405)
{if(ftp>1)
{ftp--;
if(ftp<=-1)
ftp=0;
if(ftp==0)
{i6=0;
fseek(fs,-512,1);
display(i5);}
else
if(ftp>0)
{
i6=0;
fseek(fs,-512,1);
fseek(fs,-512,1);
display(i5);
} }
else
{i6=1;
display(i5);}
}
edit();
break;
case 0x5100:
if(drive==0)
{i=0;
lsect++;
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch(); }
else
display(0); }
else
if(drive==0x80)
{
i=0;
sector++;
biosdisk(2,drive,head,track,sector,1,buff);
display(0);
}
else
if(drive==405)
{ftp++;
i6=0;
clrscr();
if((ch=fread(buff,512,1,fs))!=0)
{
fseek(fs,-512,1);
display(i5);
}
else
{fseek(fs,-512,1);
i6=1;
display(i5);}
}
edit();
break;
case 0x3e00:
i=0;
edascii();
break;
case 0x4000:
if(drive==0x80)
{i=0;
gotoxy(17,1);
textcolor(2);
printf(" ");
gotoxy(17,1);
scanf("%d",&track);
textcolor(15);
biosdisk(2,drive,head,track,sector,1,buff);
display(0);
edit();
}
break;
case 0x4100:
if(drive==0x80)
{i=0;
gotoxy(32,1);
textcolor(2);
printf(" ");
gotoxy(32,1);
scanf("%d",§or);
textcolor(15);
biosdisk(2,drive,head,track,sector,1,buff);
display(0);
edit();
}
break;
case 0x11B:if(drive==405)
fclose(fs);
options();
break;
}
}
}
}
void update(int i1)
{
if(x==2&&y==3)
i=0;
if(i1==0)
if(x>=55)
{
x=2;
y++;
}
if(y==24&&x>=maxc+1)
{
y=24;
x=17;
i=511;
}
if(i1==1)
{
if((y<=23)||(y==24&&x<18))
i++;
x+=2;
if(x>=55)
{
x=2;
y++;
}
if(y==24&&x>=maxc+1)
{
y=24;
x=17;
i=511;
}
}
else
if(i1==2)
{
i--;
x-=2;
if(x<2)
{
x=55;
y--;
}
if(y<3)
{
i=0;
y=3;
x=2;
}
}
else
if(i1==3)
{ indicator=1;
if((y<24&&x<=18)||(y<23&&x>18))
i+=24;
y++;
if(y>=24)
y=24;
if(y>=23&&x>18)
y=23;
}
else
if(i1==4)
{indicator=0;
if(y>3)
i-=24;
y--;
if(y<3)
y=3;
}
if(x==2&&y==3)
i=0;
}
edascii()
{
int ch,ch1,j,x2,fkey=0;
x=57,y=3;
gotoxy(57,3);
for(j=0;j<=511;j++)
temp[j]=buff[j];
while(1)
{
gotoxy(x,y);
ch=getch();
if(ch==27)
{
options();}
else
if(ch==0)
{fkey=1;
ch=getch();
}
else
fkey=0;
if(fkey!=1)
{
putch(ch);
x++;
temp[i]=ch;
if(x1==10||x1==19||x1==28||x1==37||x1==46)
x1++;
if(x1>=54)
x1=2;
gotoxy(x1,y);
printf("%02x",temp[i]);
if((y==24&&x<64)||(y<=23))
i++;
x1+=2;
upascii(0);
}
else
{
switch(ch)
{
case 77:
x1+=2;
if(x1==10||x1==19||x1==28||x1==37||x1==46)
x1++;
if(x1>=54)
x1=2;
upascii(1);
break;
case 75:
x1-=2;
if(x1==10||x1==19||x1==28||x1==37||x1==46)
x1--;
if(x1>=54||x1<=2)
x1=2;
upascii(2);
break;
case 80:
upascii(3);
break;
case 72:
upascii(4);
break;
case 59:
i=0;
x1=2;
x=57;
y=3;
display(0);
break;
case 60:
i=0;
gotoxy(52,1);
printf(" saving....");
for(j=0;j<=511;j++)
buff[j]=temp[j];
if(drive!=0x80)
{a=abswrite(drive,1,lsect,temp);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}
clrscr();
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
} }
else
{biosdisk(3,drive,head,track,sector,1,buff);
clrscr();
biosdisk(4,drive,head,track,sector,1,buff);
}
display(0);
edascii();
break;
case 63:
i=0;
gotoxy(1,25);
textcolor(2);
if(drive!=0x80)
{cprintf(" enter the sector you wish to modify:
");
gotoxy(55,25);
scanf("%d",&lsect);
textcolor(15);
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}
}
else
{i=0;
gotoxy(6,1);
textcolor(2);
printf(" ");
gotoxy(6,1);
scanf("%d",&head);
textcolor(15);
biosdisk(2,drive,head,track,sector,1,buff);
}
display(0);
edascii();
break;
case 61:
edit();
break;
case 73:
i=0;
if(drive!=0x80)
{
lsect--;
if(lsect<0)
lsect=0;
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}}
else
{
sector--;
if(sector<1)
sector=1;
biosdisk(2,drive,head,track,sector,1,buff);
}
display(0);
edascii();
break;
case 81:
i=0;
if(drive!=0x80)
{
lsect++;
a=absread(drive,1,lsect,buff);
if(a==-1)
{
clrscr();
perror("Disk Read/Write error:");
getch();
}}
else
{
sector++;
biosdisk(2,drive,head,track,sector,1,buff);
}
display(0);
edascii();
break;
case 62:
i=0;
x1=2;
edascii();
break;
case 64:
if(drive==0x80)
{i=0;
gotoxy(17,1);
textcolor(2);
printf(" ");
gotoxy(17,1);
scanf("%d",&track);
textcolor(15);
biosdisk(2,drive,head,track,sector,1,buff);
display(0);
edit();
}
break;
case 65:
if(drive==0x80)
{i=0;
gotoxy(32,1);
textcolor(2);
printf(" ");
gotoxy(32,1);
scanf("%d",§or);
textcolor(15);
biosdisk(2,drive,head,track,sector,1,buff);
display(0);
edit();
}
break;
}
}
}
}
upascii(int i1)
{
if(x>=64&&y==24)
x=64;
if((x==64)&&(y==24))
x1=17;
if(i1==0)
{
if(x>=81)
{x=57;
y++; }
}
else
if(i1==1)
{
if((y==24&&x<64)||(y<=23))
i++;
x++;
if(x>=81)
{
x=57;
y++;
}
if(y>24)
y=24;
if(x>64&&y==23)
y=23;
if(x>=64&&y==24)
x=64;
}
else
if(i1==2)
{ if(x>57&&y>=3)
i--;
x--;
if(x<=56)
{ i--;
x=80;
y--;
if(y<3)
{
y=3;
x=57;
}
}
if(x==57&&y==3)
i=0;
if((x<=57)&&(y<=3))
{
x=57;
y=3;
}
}
else
if(i1==3)
{ if((y==23&&x<65)||(y<23))
i+=24;
y++;
if(y>=23&&x>=65)
y=23;
if((y>24))
y=24;
}
else
if(i1==4)
{if(y>3)
i-=24;
y--;
if(x==57&&y==3)
i=0;
if(y<3)
y=3;
}
return;
}
void chdr(char a)
{ int chdr;
switch(a)
{
case 'A':
case 'a':chdr=_chdrive(1);
break;
case 'B':
case 'b':chdr=_chdrive(2);
break;
case 'C':
case 'c':chdr=_chdrive(3);
break;
case 'D':
case 'd':chdr=_chdrive(4);
break;
case 'E':
case 'e':chdr=_chdrive(5);
break;
case 'F':
case 'f':chdr=_chdrive(6);
break;
case 'G':
case 'g':chdr=_chdrive(7);
break;
case 'H':
case 'h':chdr=_chdrive(8);
break;
case 'I':
case 'i':chdr=_chdrive(9);
break;
case 'J':
case 'j':chdr=_chdrive(10);
break;
}
if(chdr!=0)
{clrscr();
printf("An Unexpected ERROR Occured!!!\n Please Restart The
Application.....");
exit(1);}
}
void filemode()
{char buffer[260],ch2,t1[4],tm[3]={'a','m'};
int y2=3,i2=0,y3=4,i3=0,len,done,max=0;
unsigned int hr,min,sec,yr,mon,day;
clrscr();
lay();
getcwd(buffer, 260);
_setcursortype(0);
gotoxy(2,2);
cprintf("Current dir %s\n", buffer);
done = findfirst("*.*",&ffblk,1|2|4|8|16|32);
while (1)
{if(done==0)
{
gotoxy(36,2);
printf("Time");
gotoxy(47,2);
printf("Date");
gotoxy(57,2);
printf("Size(in bytes)");
gotoxy(3,y2);
printf(" %s", ffblk.ff_name);
if(ffblk.ff_attrib==2)
{gotoxy(22,y2);
printf(" hidden"); }
if(ffblk.ff_attrib==1)
{gotoxy(22,y2);
printf(" read only"); }
if(ffblk.ff_attrib==4)
{gotoxy(22,y2);
printf(" system");}
if(ffblk.ff_attrib==8)
{gotoxy(22,y2);
printf(" vol");}
if(ffblk.ff_attrib==16)
{gotoxy(22,y2);
printf(" dir");}
if(ffblk.ff_attrib==32)
{gotoxy(22,y2);
printf(" archive");}
hr=ffblk.ff_ftime>>11;
if(hr>12)
{tm[0]='p';
hr=hr-12; }
min=(ffblk.ff_ftime<<5)>>10;
sec= ((ffblk.ff_ftime<<11)>>11)*2;
gotoxy(33,y2);
printf("%02u:%02u:%02u%s",hr,min,sec,tm);
gotoxy(45,y2);
yr=1980+(ffblk.ff_fdate>>9);
mon=(ffblk.ff_fdate<<7)>>12;
day=(ffblk.ff_fdate<<11)>>11;
printf("%02u\-%02u\-%04u",day,mon,yr);
gotoxy(57,y2);
printf("%lu",ffblk.ff_fsize);
printf("\n");
len=strlen(ffblk.ff_name);
strcpy(fl[i2],ffblk.ff_name);
fl[i2][len+1]='\0';
y2++;
i2++;
max++; }
if((y2==24)||done)
{gotoxy(4,3);
printf("%c",16);
gotoxy(5,25);
printf("F1-Change directory");
gotoxy(30,25);
printf("F2-change drive");
gotoxy(51,25);
printf("Esc-Main menu");
y2=3;
while(1)
{
ch2=getch();
switch(ch2)
{
case 80: if(!done)
{
if(y3!=25)
{
y3++;
i3++;
i5=i3;
gotoxy(4,y3-2);
printf(" ");
gotoxy(4,y3-1);
printf("%c",16);
} }
else
{if(i3<max-1)
{y3++;
i3++;
i5=i3;
gotoxy(4,y3-2);
printf(" ");
gotoxy(4,y3-1);
printf("%c",16);
} }
break;
case 72:
if(y3>=5)
{
gotoxy(4,y3-1);
printf(" ");
gotoxy(4,y3-2);
printf("%c",16);
y3--;
i3--;
i5=i3;
}
break;
case 59:gotoxy(2,2);
_setcursortype(2);
printf("enter the directory: ");
gotoxy(22,2);
scanf("%s",buffer);
_setcursortype(0);
if(buffer[1]==':')
chdr(buffer[0]);
chdir(buffer);
filemode();
return;
case 60: gotoxy(2,2);
printf(" ");
gotoxy(2,2);
_setcursortype(2);
printf("Enter Drive:");
scanf("%s",t1);
chdr(t1[0]);
filemode();
return;
case 13:clrscr();
drive =405;
_setcursortype(2);
ftp=1;
findfirst(fl[i3],&ffblk,1|2|4|8|16|32);
if(ffblk.ff_attrib==16)
{chdir(fl[i3]);
filemode();
return;
}
else
{fs=fopen(fl[i3],"rb+");
display(i3);
edit(); }
break;
case 27:
return;
}
if(y3==25)
{clrscr();
lay();
y3=4;
break;
}
}
}
done = findnext(&ffblk);
}
}
void help()
{
printf("\n");
printf("\n");
textcolor(10);
cprintf(" Disk Editor is a utility to see,modify disk sectors.you can edit
any");
printf("\n");
cprintf(" sector on your disk drive.");
printf("\n");
printf("\n");
textcolor(11);
cprintf(" -:Varius commands are as bellow:-");
printf("\n");
printf("\n");
textcolor(14);
cprintf(" F1 - It is use to restore the disk sector.it means this command
re-read");
printf("\n");
cprintf(" the sector and then display the contains of the sector again on
the screen");
printf("\n");
printf("\n");
cprintf(" F2 - It is use to save the changes made by you.");
printf("\n");
printf("\n");
cprintf(" F3 - If you want to edit sectors in Hex mode then press this
key.");
printf("\n");
printf("\n");
cprintf(" F4 - If you want to edit the sectors in ascii mode then use this
key.");
printf("\n");
printf("\n");
cprintf(" F5 - By using this you can direct jump to any sector");
printf("\n");
printf("\n");
cprintf(" Page Up - Go to previous sector.");
printf("\n");
printf("\n");
cprintf(" Page Down - Go to next sector");
printf("\n");
printf("\n");
cprintf(" Esc - Exit from Disk Editor");
printf("\n Press any key to
Exit....");
textcolor(14);
gotoxy(8,25);
cprintf("Copyright (c) 2003 by Hardik Shah. Released Under
GNU-GPL.");
lay();
}
void disclam()
{ int p;
gotoxy(2,3);
printf(" Disclamier:-");
for(p=3;p<13;p++)
{
gotoxy(p,4);
printf("%c",205);}
gotoxy(2,5);
printf(" This software is provided on \"AS-IS\" basis.As this software is
direct access-");
gotoxy(2,6);
printf(" es the disk drives, I am not responsible for any damage caused to
you or your");
gotoxy(2,7);
printf(" computer's hardware or software through proper or inproper use of
this soft-");
gotoxy(2,8);
printf(" ware.Please do not change any critical sectors on your drive
otherwise you ");
gotoxy(2,9);
printf(" can damage your computer.");
gotoxy(2,10);
printf(" This software is Released Under GNU-GPL.you should
get a copy ");
gotoxy(2,11);
printf(" of GPL licence.You can use,modify this software as you wish.If u
make some ");
gotoxy(2,12);
printf(" changes then kindly add ur name,e-mail and comment:) If you found
any bug or ");
gotoxy(2,13);
printf(" wish to give any suggestion then please contact me at:-");
gotoxy(26,16);
cprintf("E-mail:-");
gotoxy(29,17);
cprintf("hardik_shah_cu@rediffmail.com");
gotoxy(26,18);
cprintf("web:-");
gotoxy(29,19);
cprintf("www.hardikshah.cjb.net");
textcolor(14);
gotoxy(8,25);
cprintf("Copyright (c) 2003 by Hardik Shah. Released Under
GNU-GPL.");
}
void main()
{
clrscr();
textcolor(11);
options();
}
The compiler output was:
hed.c:1531:14: warning: unknown escape sequence '\-'
hed.c:1531:14: warning: unknown escape sequence '\-'
hed.c: In function 'main':
hed.c:1729: warning: return type of 'main' is not 'int'
gcc.exe: Internal error: (null) (program as)
Please submit a full bug report.
See <URL:http:/gcc.gnu.org/bugs.html> for instructions.
--
Summary: internal error - compiling DiskEditor (hed.c)
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mu8ja0i at earthlink dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c/32763] internal error - compiling DiskEditor (hed.c)
2007-07-14 2:52 [Bug c/32763] New: internal error - compiling DiskEditor (hed.c) mu8ja0i at earthlink dot net
@ 2007-07-14 2:58 ` dj at redhat dot com
2007-07-14 5:16 ` pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: dj at redhat dot com @ 2007-07-14 2:58 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from dj at redhat dot com 2007-07-14 02:58 -------
Subject: Re: New: internal error - compiling DiskEditor (hed.c)
> gcc.exe: Internal error: (null) (program as)
djgpp 2.03 (current) or 2.04 (beta) ? You might need the XP bugfixes
in 2.04.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c/32763] internal error - compiling DiskEditor (hed.c)
2007-07-14 2:52 [Bug c/32763] New: internal error - compiling DiskEditor (hed.c) mu8ja0i at earthlink dot net
2007-07-14 2:58 ` [Bug c/32763] " dj at redhat dot com
@ 2007-07-14 5:16 ` pinskia at gcc dot gnu dot org
2007-07-14 5:53 ` mu8ja0i at earthlink dot net
2007-07-14 5:59 ` mu8ja0i at earthlink dot net
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-07-14 5:16 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from pinskia at gcc dot gnu dot org 2007-07-14 05:16 -------
Not a GCC bug as as is crashing.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c/32763] internal error - compiling DiskEditor (hed.c)
2007-07-14 2:52 [Bug c/32763] New: internal error - compiling DiskEditor (hed.c) mu8ja0i at earthlink dot net
2007-07-14 2:58 ` [Bug c/32763] " dj at redhat dot com
2007-07-14 5:16 ` pinskia at gcc dot gnu dot org
@ 2007-07-14 5:53 ` mu8ja0i at earthlink dot net
2007-07-14 5:59 ` mu8ja0i at earthlink dot net
3 siblings, 0 replies; 5+ messages in thread
From: mu8ja0i at earthlink dot net @ 2007-07-14 5:53 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from mu8ja0i at earthlink dot net 2007-07-14 05:53 -------
Subject: RE: internal error - compiling DiskEditor (hed.c)
> [Original Message]
> From: dj at redhat dot com <gcc-bugzilla@gcc.gnu.org>
> To: <mu8ja0i@earthlink.net>
> Date: 7/13/2007 9:58:37 PM
> Subject: [Bug c/32763] internal error - compiling DiskEditor (hed.c)
>
>
>
> ------- Comment #1 from dj at redhat dot com 2007-07-14 02:58 -------
> Subject: Re: New: internal error - compiling DiskEditor (hed.c)
>
>
> > gcc.exe: Internal error: (null) (program as)
>
> djgpp 2.03 (current) or 2.04 (beta) ? You might need the XP bugfixes
> in 2.04.
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
Thanks a lot, I went to the 2.04 Alpha 2 web page and installed all the
newest binaries listed there. When I recompiled the internal error does not
occur, only compiler syntax errors. I also have gcc 3.32 installed in the
Alpha 2 version. This bug report is resolved
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c/32763] internal error - compiling DiskEditor (hed.c)
2007-07-14 2:52 [Bug c/32763] New: internal error - compiling DiskEditor (hed.c) mu8ja0i at earthlink dot net
` (2 preceding siblings ...)
2007-07-14 5:53 ` mu8ja0i at earthlink dot net
@ 2007-07-14 5:59 ` mu8ja0i at earthlink dot net
3 siblings, 0 replies; 5+ messages in thread
From: mu8ja0i at earthlink dot net @ 2007-07-14 5:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from mu8ja0i at earthlink dot net 2007-07-14 05:58 -------
Subject: RE: internal error - compiling DiskEditor (hed.c)
> [Original Message]
> From: pinskia at gcc dot gnu dot org <gcc-bugzilla@gcc.gnu.org>
> To: <mu8ja0i@earthlink.net>
> Date: 7/14/2007 12:16:34 AM
> Subject: [Bug c/32763] internal error - compiling DiskEditor (hed.c)
>
>
>
> ------- Comment #2 from pinskia at gcc dot gnu dot org 2007-07-14 05:16
-------
> Not a GCC bug as as is crashing.
>
>
> --
>
> pinskia at gcc dot gnu dot org changed:
>
> What |Removed |Added
>
----------------------------------------------------------------------------
> Status|UNCONFIRMED |RESOLVED
> Resolution| |INVALID
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
I installed djgpp 2.04 Alpha and it fixed the problem. I updated to gcc
3.32 as part of the update installation. The bug report has been resolved
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32763
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-07-14 5:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-07-14 2:52 [Bug c/32763] New: internal error - compiling DiskEditor (hed.c) mu8ja0i at earthlink dot net
2007-07-14 2:58 ` [Bug c/32763] " dj at redhat dot com
2007-07-14 5:16 ` pinskia at gcc dot gnu dot org
2007-07-14 5:53 ` mu8ja0i at earthlink dot net
2007-07-14 5:59 ` mu8ja0i at earthlink dot net
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).