switch build system to Tup
git-svn-id: svn://kolibrios.org@5098 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -11,7 +11,6 @@ endif
|
||||
make -C src depend
|
||||
make -C src
|
||||
make -C stub
|
||||
make -C programs
|
||||
|
||||
genconfig:
|
||||
ifdef ON_MINGW
|
||||
@@ -24,5 +23,4 @@ clean:
|
||||
make -C src clean
|
||||
make -C linuxtools clean
|
||||
make -C stub clean
|
||||
make -C programs clean
|
||||
$(RM) mkversion$(EXESUFFIX)
|
||||
|
6
programs/develop/libraries/menuetlibc/Tupfile.lua
Normal file
6
programs/develop/libraries/menuetlibc/Tupfile.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
if tup.getconfig("TUP_PLATFORM") == "win32"
|
||||
-- on win32 '#' is not a special character, but backslash and quotes would be printed as is
|
||||
then tup.rule('echo #define NEEDS_UNDERSCORES > %o', {"config.h"})
|
||||
-- on unix '#' should be escaped
|
||||
else tup.rule('echo "#define NEEDS_UNDERSCORES" > %o', {"config.h"})
|
||||
end
|
@@ -167,7 +167,7 @@ extern double j0 __P((double));
|
||||
extern double j1 __P((double));
|
||||
extern double jn __P((int, double));
|
||||
extern double lgamma __P((double));
|
||||
extern double nan __P((void));
|
||||
extern double nan __P((const char*));
|
||||
extern double y0 __P((double));
|
||||
extern double y1 __P((double));
|
||||
extern double yn __P((int, double));
|
||||
@@ -187,7 +187,7 @@ extern double nextafter __P((double, double));
|
||||
extern double pow10 __P((double));
|
||||
extern double pow2 __P((double));
|
||||
extern double powi __P((double, int));
|
||||
extern void sincos __P((double *, double *, double));
|
||||
extern void sincos __P((double, double *, double *));
|
||||
extern double remainder __P((double, double));
|
||||
extern double scalb __P((double, double));
|
||||
|
||||
@@ -263,7 +263,7 @@ extern float j0f __P((float));
|
||||
extern float j1f __P((float));
|
||||
extern float jnf __P((int, float));
|
||||
extern float lgammaf __P((float));
|
||||
extern float nanf __P((void));
|
||||
extern float nanf __P((const char*));
|
||||
extern float y0f __P((float));
|
||||
extern float y1f __P((float));
|
||||
extern float ynf __P((int, float));
|
||||
|
@@ -74,7 +74,7 @@ long double modfl(long double _x, long double *_pint);
|
||||
double pow10(double _x);
|
||||
double pow2(double _x);
|
||||
double powi(double, int);
|
||||
void sincos(double *, double *, double);
|
||||
void sincos(double, double *, double *);
|
||||
|
||||
/* These are in libm.a (Cygnus). You must link -lm to get these */
|
||||
/* See libm/math.h for comments */
|
||||
@@ -100,7 +100,7 @@ extern double j0(double);
|
||||
extern double j1(double);
|
||||
extern double jn(int, double);
|
||||
extern double lgamma(double);
|
||||
extern double nan(void);
|
||||
extern double nan(const char*);
|
||||
extern double y0(double);
|
||||
extern double y1(double);
|
||||
extern double yn(int, double);
|
||||
@@ -152,7 +152,7 @@ extern float j0f(float);
|
||||
extern float j1f(float);
|
||||
extern float jnf(int, float);
|
||||
extern float lgammaf(float);
|
||||
extern float nanf(void);
|
||||
extern float nanf(const char*);
|
||||
extern float y0f(float);
|
||||
extern float y1f(float);
|
||||
extern float ynf(int, float);
|
||||
|
@@ -5,6 +5,7 @@ SECTIONS
|
||||
.text 0x000000 :
|
||||
{
|
||||
code = . ; _code = . ;
|
||||
*(.A)
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.gnu.warning)
|
||||
@@ -43,6 +44,24 @@ SECTIONS
|
||||
{
|
||||
*(.bss)
|
||||
}
|
||||
end = . ; _end = . ;
|
||||
end = . ; _end = . ; ___memsize = . ;
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.debug$S)
|
||||
*(.debug$T)
|
||||
*(.debug$F)
|
||||
*(.drectve)
|
||||
*(.note.GNU-stack)
|
||||
*(.eh_frame)
|
||||
*(.comment)
|
||||
*(.debug_abbrev)
|
||||
*(.debug_info)
|
||||
*(.debug_line)
|
||||
*(.debug_frame)
|
||||
*(.debug_loc)
|
||||
*(.debug_pubnames)
|
||||
*(.debug_aranges)
|
||||
*(.debug_ranges)
|
||||
}
|
||||
}
|
||||
|
@@ -49,8 +49,8 @@ size_t strxfrm(char *_s1, const char *_s2, size_t _n);
|
||||
#include <sys/movedata.h>
|
||||
|
||||
int bcmp(const void *_ptr1, const void *_ptr2, int _length);
|
||||
void * bcopy(const void *_a, void *_b, size_t _len);
|
||||
void * bzero(void *ptr, size_t _len);
|
||||
void bcopy(const void *_a, void *_b, size_t _len);
|
||||
void bzero(void *ptr, 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);
|
||||
|
@@ -1,5 +0,0 @@
|
||||
all:
|
||||
make -C binclock
|
||||
|
||||
clean:
|
||||
make -C binclock clean
|
@@ -1,3 +0,0 @@
|
||||
OUTFILE = mbinclk
|
||||
OBJS = main.o
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,89 +0,0 @@
|
||||
#include<menuet/os.h>
|
||||
|
||||
#define B_SZ 10
|
||||
|
||||
static char * Title="BinClock";
|
||||
|
||||
void draw_small_box(int x,int y,int is_on)
|
||||
{
|
||||
__menuet__bar(x,y,B_SZ,B_SZ,is_on ? 0xFF0000 : 0x103000);
|
||||
}
|
||||
|
||||
void draw_box_group(int x,int y,int num)
|
||||
{
|
||||
int i,j;
|
||||
char buf[2];
|
||||
buf[0]=(num&(1+2+4+8))+'0';
|
||||
buf[1]='\0';
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
j=(B_SZ+2)*i;
|
||||
draw_small_box(x,y+((B_SZ+2)*i),num & (1<<(3-i)) ? 1 : 0);
|
||||
}
|
||||
__menuet__bar(x,y+((B_SZ+2)*4),B_SZ,B_SZ,0x800000);
|
||||
__menuet__write_text(x+2,y+((B_SZ+2)*4)+3,0xFFFFFF,buf,1);
|
||||
}
|
||||
|
||||
void draw_bcd_num(int x,int y,int num)
|
||||
{
|
||||
int v1,v2;
|
||||
v1=(num>>4)&(1+2+4+8);
|
||||
v2=num & (1+2+4+8);
|
||||
draw_box_group(x,y,v1);
|
||||
draw_box_group(x+B_SZ+2,y,v2);
|
||||
}
|
||||
|
||||
void draw_hms(int x,int y)
|
||||
{
|
||||
__u32 t;
|
||||
int h,m,s;
|
||||
t=__menuet__getsystemclock();
|
||||
s=(t & 0x00FF0000)>>16;
|
||||
m=(t & 0x0000FF00)>>8;
|
||||
h=(t & 0x000000FF);
|
||||
draw_bcd_num(x,y,h);
|
||||
x+=((B_SZ+2)<<1)+2;
|
||||
draw_bcd_num(x,y,m);
|
||||
x+=((B_SZ+2)<<1)+2;
|
||||
draw_bcd_num(x,y,s);
|
||||
}
|
||||
|
||||
void draw_h(void)
|
||||
{
|
||||
draw_hms(22,28);
|
||||
}
|
||||
|
||||
void paint(void)
|
||||
{
|
||||
__menuet__window_redraw(1);
|
||||
__menuet__define_window(100,100,40+((B_SZ+2)*6)+4,30+((B_SZ+2)*4)+16,0x03000080,0x800000FF,0x000080);
|
||||
__menuet__write_text(3,3,0xFFFFFF,Title,strlen(Title));
|
||||
__menuet__bar(20,26,((B_SZ+2)*6)+4+2,4+((B_SZ+1)*4)+2,0);
|
||||
draw_h();
|
||||
__menuet__window_redraw(2);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
int i;
|
||||
paint();
|
||||
for(;;)
|
||||
{
|
||||
__menuet__delay100(20);
|
||||
i=__menuet__check_for_event();
|
||||
draw_h();
|
||||
switch(i)
|
||||
{
|
||||
case 1:
|
||||
paint();
|
||||
continue;
|
||||
case 2:
|
||||
__menuet__getkey();
|
||||
continue;
|
||||
case 3:
|
||||
if(__menuet__get_button_id()==1) __menuet__sys_exit();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +0,0 @@
|
||||
OUTFILE = xapp
|
||||
OBJS = main.o
|
||||
LIBS = -lcon2
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,110 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include<menuet/os.h>
|
||||
#include<menuet/textcon.h>
|
||||
#include<ctype.h>
|
||||
#include<stdarg.h>
|
||||
#include<errno.h>
|
||||
|
||||
static int did_con_init=0;
|
||||
|
||||
static char * WindowTitle="xtest";
|
||||
|
||||
static char con_buffer[0x100000];
|
||||
static char * conp=con_buffer+0;
|
||||
static unsigned long sz=0;
|
||||
|
||||
void check_board(void)
|
||||
{
|
||||
int d0,d1;
|
||||
do {
|
||||
__asm__ __volatile__("int $0x40":"=a"(d0),"=b"(d1):"0"(63),"1"(2));
|
||||
if(d1!=1) break;
|
||||
_lcon_putch(d0&0xff);
|
||||
*conp++=(d0&0xff);
|
||||
sz++;
|
||||
} while(1);
|
||||
}
|
||||
|
||||
void paint_wnd(void)
|
||||
{
|
||||
__menuet__window_redraw(1);
|
||||
__menuet__define_window(100,100,20+(NR_CHARS_X*CHAR_SIZE_X),
|
||||
30+(NR_CHARS_Y*CHAR_SIZE_Y),0x03000080,0x800000FF,0x000080);
|
||||
__menuet__write_text(5,5,0xFFFFFF,WindowTitle,strlen(WindowTitle));
|
||||
if(did_con_init) _lcon_flush_console();
|
||||
__menuet__window_redraw(2);
|
||||
}
|
||||
|
||||
static char kpf_buf[1024];
|
||||
|
||||
void _kph_pf(char * p)
|
||||
{
|
||||
for(;p && *p;p++) _lcon_putch(*p);
|
||||
}
|
||||
|
||||
void kprintf(const char * fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap,fmt);
|
||||
vsprintf(kpf_buf,fmt,ap);
|
||||
va_end(ap);
|
||||
_kph_pf(kpf_buf);
|
||||
}
|
||||
|
||||
int event_loop(void)
|
||||
{
|
||||
int i;
|
||||
i=__menuet__check_for_event();
|
||||
switch(i)
|
||||
{
|
||||
case 1:
|
||||
paint_wnd(); return 0;
|
||||
case 2:
|
||||
return __menuet__getkey();
|
||||
case 3:
|
||||
if(__menuet__get_button_id()==1)
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
unsigned long xtmp;
|
||||
int a,b,c;
|
||||
FILE * f=fopen("example","rb");
|
||||
did_con_init=0;
|
||||
paint_wnd();
|
||||
init_consoles();
|
||||
did_con_init=1;
|
||||
xtmp=__menuet__getsystemclock();
|
||||
a=(xtmp>>16)&0xff;
|
||||
b=(xtmp>>8)&0xff;
|
||||
c=xtmp&0xff;
|
||||
kprintf("h/m/s=%x:%x:%x %u:%u:%u\n",a,b,c,a,b,c);
|
||||
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
|
||||
BCD_TO_BIN(a);
|
||||
BCD_TO_BIN(b);
|
||||
BCD_TO_BIN(c);
|
||||
kprintf("h/m/s=%x:%x:%x %u:%u:%u\n",a,b,c,a,b,c);
|
||||
__asm__ __volatile__("int $0x40":"=a"(xtmp):"0"(29));
|
||||
a=(xtmp>>16)&0xff;
|
||||
b=(xtmp>>8)&0xff;
|
||||
c=xtmp&0xff;
|
||||
kprintf("y/d/m=%x:%x:%x %u:%u:%u\n",a,b,c,a,b,c);
|
||||
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
|
||||
BCD_TO_BIN(a);
|
||||
BCD_TO_BIN(b);
|
||||
BCD_TO_BIN(c);
|
||||
kprintf("y/d/m=%x:%x:%x %u:%u:%u\n",a,b,c,a,b,c);
|
||||
for(;;)
|
||||
{
|
||||
check_board();
|
||||
event_loop();
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
OUTFILE = htmlview
|
||||
OBJS = parser.o filestreamparser.o textstreamparser.o HTML.o
|
||||
CFLAGS = -I.
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_cpp_program
|
@@ -1,340 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
Parser class for FILE stream derived from CParser class.
|
||||
Copyright (C) 2003 Jarek Pelczar (jarekp3@wp.pl)
|
||||
|
||||
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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include<stdio.h>
|
||||
#include"parser.h"
|
||||
#include<ctype.h>
|
||||
|
||||
CFileStreamParser::CFileStreamParser(FILE * ff):CParser()
|
||||
{
|
||||
f=ff;
|
||||
}
|
||||
|
||||
CFileStreamParser::~CFileStreamParser()
|
||||
{
|
||||
this->CParser::~CParser();
|
||||
}
|
||||
|
||||
char CFileStreamParser::GetChar()
|
||||
{
|
||||
int c;
|
||||
if(IsEOF) return 0;
|
||||
c=fgetc(f);
|
||||
if(c<0)
|
||||
{
|
||||
IsEOF=true;
|
||||
return 0;
|
||||
}
|
||||
Look=c;
|
||||
return c;
|
||||
}
|
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
Main HTML parser code.
|
||||
Copyright (C) 2003 Jarek Pelczar (jarekp3@wp.pl)
|
||||
|
||||
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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include<stdio.h>
|
||||
#include"parser.h"
|
||||
#include<ctype.h>
|
||||
#include"HTML.h"
|
||||
|
||||
CHTMLParser::CHTMLParser(CParser * par,CPageBuffer * buf)
|
||||
{
|
||||
parser=par;
|
||||
pgbuf=buf;
|
||||
DefaultStyles();
|
||||
parser->Init();
|
||||
}
|
||||
|
||||
CHTMLParser::~CHTMLParser()
|
||||
{
|
||||
delete parser;
|
||||
}
|
||||
|
||||
void CHTMLParser::DefaultStyles()
|
||||
{
|
||||
text_style.flags=FFLAG_ALIGNLEFT;
|
||||
text_style.FontName="system";
|
||||
text_style.FontSize=8;
|
||||
text_style.color=0;
|
||||
text_style.next=NULL;
|
||||
page_style.background=0xffffffff;
|
||||
page_style.text=0;
|
||||
page_style.link=0x008000;
|
||||
page_style.alink=0x000080;
|
||||
page_style.vlink=0x800000;
|
||||
page_style.flags=PFLAG_ALIGNLEFT|PFLAG_RAWMODE;
|
||||
pgbuf->Reset();
|
||||
}
|
||||
|
||||
void CHTMLParser::Parse()
|
||||
{
|
||||
char * tokenbuf;
|
||||
tokenbuf=new char[1024];
|
||||
while(!parser->isEOF())
|
||||
{
|
||||
parser->SkipWhite();
|
||||
if(parser->Look=='<')
|
||||
{
|
||||
parser->Match('<');
|
||||
memset(tokenbuf,0,1024);
|
||||
parser->GetToken(tokenbuf,1020);
|
||||
parser->Match('>');
|
||||
}
|
||||
}
|
||||
delete tokenbuf;
|
||||
}
|
@@ -1,128 +0,0 @@
|
||||
#ifndef __HTML_h
|
||||
#define __HTML_h
|
||||
|
||||
#include"parser.h"
|
||||
|
||||
template<class T> class CHTMLStack
|
||||
{
|
||||
public:
|
||||
CHTMLStack()
|
||||
{
|
||||
FirstItem=NULL;
|
||||
NR=0;
|
||||
}
|
||||
void Push(T * ff)
|
||||
{
|
||||
T * ff1;
|
||||
if(!ff) return;
|
||||
ff1=(T *)malloc(sizeof(T));
|
||||
memcpy((void *)ff1,(const void *)ff,sizeof(T));
|
||||
NR++;
|
||||
ff1->next=FirstElem;
|
||||
FirstElem=ff1;
|
||||
}
|
||||
T * Pop()
|
||||
{
|
||||
T * R;
|
||||
if(!NR) return NULL;
|
||||
NR--;
|
||||
R=FirstElem;
|
||||
FirstElem=R->next;
|
||||
return R;
|
||||
}
|
||||
void Free(T * x)
|
||||
{
|
||||
free(x);
|
||||
}
|
||||
~CHTMLStack()
|
||||
{
|
||||
T * __tmp;
|
||||
while((__tmp=Pop())) this->Free(__tmp);
|
||||
}
|
||||
protected:
|
||||
T * FirstElem;
|
||||
int NR;
|
||||
};
|
||||
|
||||
struct text_style {
|
||||
unsigned long flags;
|
||||
char * FontName;
|
||||
int FontSize;
|
||||
unsigned long color;
|
||||
struct text_style * next;
|
||||
};
|
||||
|
||||
struct page_style {
|
||||
unsigned long background;
|
||||
unsigned long text;
|
||||
unsigned long link,alink,vlink;
|
||||
unsigned long flags;
|
||||
struct page_style * next;
|
||||
};
|
||||
|
||||
struct image_properties {
|
||||
int width,height;
|
||||
int border;
|
||||
};
|
||||
|
||||
struct text_properties {
|
||||
char * FontName;
|
||||
int font_size;
|
||||
int color;
|
||||
unsigned long flags;
|
||||
};
|
||||
|
||||
struct cpb_Text {
|
||||
struct text_properties prop;
|
||||
char * Text;
|
||||
int len;
|
||||
};
|
||||
|
||||
struct cpb_Image {
|
||||
struct image_properties img;
|
||||
void * ImageData;
|
||||
};
|
||||
|
||||
class CPageBuffer
|
||||
{
|
||||
public:
|
||||
CPageBuffer();
|
||||
~CPageBuffer();
|
||||
virtual void AddText(char *,int,struct text_properties *);
|
||||
virtual void AddImage(char *,struct image_properties *);
|
||||
virtual void Paint();
|
||||
virtual void Reset();
|
||||
private:
|
||||
int nr_text,nr_images;
|
||||
struct cpb_Text ** _text;
|
||||
struct cpb_Image ** _images;
|
||||
};
|
||||
|
||||
class CHTMLParser
|
||||
{
|
||||
public:
|
||||
CHTMLParser(CParser * par,CPageBuffer * buf);
|
||||
~CHTMLParser();
|
||||
virtual void DefaultStyles();
|
||||
virtual void Parse();
|
||||
virtual void ParseHTML();
|
||||
protected:
|
||||
CParser * parser;
|
||||
CPageBuffer * pgbuf;
|
||||
struct text_style text_style;
|
||||
struct page_style page_style;
|
||||
};
|
||||
|
||||
#define FFLAG_ALIGNLEFT 0x00000001
|
||||
#define FFLAG_ALIGNRIGHT 0x00000002
|
||||
#define FFLAG_ALIGNCENTER 0x00000003
|
||||
#define FFLAG_BOLD 0x00000004
|
||||
#define FFLAG_ITALIC 0x00000008
|
||||
#define FFLAG_UNDERLINE 0x00000010
|
||||
|
||||
#define PFLAG_ALIGNLEFT 0x00000001
|
||||
#define PFLAG_ALIGNRIGHT 0x00000002
|
||||
#define PFLAG_ALIGNCENTER 0x00000003
|
||||
#define PFLAG_RAWMODE 0x00000004
|
||||
|
||||
#endif
|
@@ -1,5 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include"HTML.h"
|
||||
|
@@ -1,165 +0,0 @@
|
||||
/*
|
||||
Generic parser class for HTML viewer.
|
||||
Copyright (C) 2003 Jarek Pelczar (jarekp3@wp.pl)
|
||||
|
||||
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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include<stdio.h>
|
||||
#include"parser.h"
|
||||
#include<ctype.h>
|
||||
|
||||
CParser::CParser()
|
||||
{
|
||||
IsEOF=false;
|
||||
Look=0;
|
||||
}
|
||||
|
||||
CParser::~CParser()
|
||||
{
|
||||
}
|
||||
|
||||
char CParser::GetChar()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CParser::Init()
|
||||
{
|
||||
GetChar();
|
||||
}
|
||||
|
||||
void CParser::SkipWhite()
|
||||
{
|
||||
if(IsEOF) return;
|
||||
while(Look==' ' || Look=='\t' || Look=='\n' || Look=='\r')
|
||||
GetChar();
|
||||
}
|
||||
|
||||
int CParser::Match(char c)
|
||||
{
|
||||
if(IsEOF) return 0;
|
||||
SkipWhite();
|
||||
if(Look==c) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int hex2dec(char c)
|
||||
{
|
||||
if(c>='0'&&c<='9') return c-'0';
|
||||
if(c>='a'&&c<='f') return c-'a'+10;
|
||||
if(c>='A'&&c<='F') return c-'A'+10;
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long CParser::__GetNum()
|
||||
{
|
||||
unsigned long __ret=0;
|
||||
SkipWhite();
|
||||
while(isdigit(Look))
|
||||
{
|
||||
__ret=(__ret*10)+(Look-'0');
|
||||
GetChar();
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
||||
unsigned long CParser::__GetHexNum()
|
||||
{
|
||||
unsigned long __ret=0;
|
||||
SkipWhite();
|
||||
while(isxdigit(Look))
|
||||
{
|
||||
__ret=(__ret<<4)+hex2dec(Look);
|
||||
GetChar();
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
||||
unsigned long CParser::__GetOctNum()
|
||||
{
|
||||
unsigned long __ret=0;
|
||||
SkipWhite();
|
||||
while(Look>='0' && Look<='7')
|
||||
{
|
||||
__ret=(__ret<<3)+(Look-'0');
|
||||
GetChar();
|
||||
}
|
||||
return __ret;
|
||||
}
|
||||
|
||||
/* This routine simply calls previously defined functions.
|
||||
So the number may be (of course in HTML) :
|
||||
number example class
|
||||
#1BADB002 hex
|
||||
#0x1BADB002 hex
|
||||
$0x1BADB002 hex
|
||||
0xF002 hex
|
||||
03312 octal
|
||||
32768 decimal
|
||||
Note:
|
||||
We don't have to remember leading zeroes because they always give 0
|
||||
so there isn't anything to complain about.
|
||||
*/
|
||||
unsigned long CParser::GetNum()
|
||||
{
|
||||
if(Look=='#')
|
||||
{
|
||||
Match('#');
|
||||
if(Look=='0')
|
||||
{
|
||||
GetChar();
|
||||
if(Look=='x')
|
||||
{
|
||||
GetChar();
|
||||
return __GetHexNum();
|
||||
}
|
||||
}
|
||||
return __GetHexNum();
|
||||
}
|
||||
if(Look=='$')
|
||||
{
|
||||
Match('$');
|
||||
return __GetHexNum();
|
||||
}
|
||||
if(Look=='0')
|
||||
{
|
||||
GetChar();
|
||||
if(Look=='x')
|
||||
{
|
||||
GetChar();
|
||||
return __GetHexNum();
|
||||
}
|
||||
return __GetOctNum();
|
||||
}
|
||||
return __GetNum();
|
||||
}
|
||||
|
||||
int CParser::GetToken(char * tokbuf,int maxlen)
|
||||
{
|
||||
int p;
|
||||
if(!tokbuf || !maxlen) return 0;
|
||||
if(IsEOF) return 0;
|
||||
SkipWhite();
|
||||
if(!isalpha(Look) && Look!='_') return 0;
|
||||
p=0;
|
||||
while(maxlen-- && (isalpha(Look) || isdigit(Look) || Look=='_'))
|
||||
{
|
||||
*tokbuf++=Look;
|
||||
GetChar();
|
||||
p++;
|
||||
}
|
||||
return p;
|
||||
}
|
@@ -1,51 +0,0 @@
|
||||
#ifndef __PARSER_H
|
||||
#define __PARSER_H
|
||||
|
||||
class CFileStreamParser;
|
||||
class CTextStreamParser;
|
||||
|
||||
class CParser
|
||||
{
|
||||
friend class CFileStreamParser;
|
||||
friend class CTextStreamParser;
|
||||
public:
|
||||
CParser();
|
||||
~CParser();
|
||||
virtual char GetChar();
|
||||
void Init();
|
||||
void SkipWhite();
|
||||
int Match(char c);
|
||||
unsigned long GetNum();
|
||||
int GetToken(char * tokbuf,int maxlen);
|
||||
inline bool isEOF() { return IsEOF; }
|
||||
char Look;
|
||||
private:
|
||||
bool IsEOF;
|
||||
unsigned long __GetNum();
|
||||
unsigned long __GetHexNum();
|
||||
unsigned long __GetOctNum();
|
||||
};
|
||||
|
||||
class CFileStreamParser: public CParser
|
||||
{
|
||||
public:
|
||||
CFileStreamParser(FILE *);
|
||||
~CFileStreamParser();
|
||||
virtual char GetChar();
|
||||
private:
|
||||
FILE * f;
|
||||
};
|
||||
|
||||
class CTextStreamParser: public CParser
|
||||
{
|
||||
public:
|
||||
CTextStreamParser(char * Stm,int stm_size);
|
||||
~CTextStreamParser();
|
||||
virtual char GetChar();
|
||||
private:
|
||||
char * __Stm;
|
||||
int __Size;
|
||||
int __Pos;
|
||||
};
|
||||
|
||||
#endif
|
@@ -1,49 +0,0 @@
|
||||
/*
|
||||
Parser class for memory stream derived from CParser class.
|
||||
Copyright (C) 2003 Jarek Pelczar (jarekp3@wp.pl)
|
||||
|
||||
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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include<stdio.h>
|
||||
#include"parser.h"
|
||||
#include<ctype.h>
|
||||
|
||||
CTextStreamParser::CTextStreamParser(char * Stm,int stm_size):CParser()
|
||||
{
|
||||
__Stm=Stm;
|
||||
__Size=stm_size;
|
||||
__Pos=0;
|
||||
}
|
||||
|
||||
CTextStreamParser::~CTextStreamParser()
|
||||
{
|
||||
this->CParser::~CParser();
|
||||
}
|
||||
|
||||
char CTextStreamParser::GetChar()
|
||||
{
|
||||
unsigned char c;
|
||||
if(IsEOF) return 0;
|
||||
if(__Pos>=__Size)
|
||||
{
|
||||
IsEOF=true;
|
||||
return 0;
|
||||
}
|
||||
c=*(unsigned char *)(__Stm+__Pos);
|
||||
__Pos++;
|
||||
Look=c;
|
||||
return c;
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
OUTFILE = ld-dll
|
||||
OBJS = kernel.o dll_list.o main.o
|
||||
LIBS = -lmcoff -Map ld-dll.map
|
||||
CFLAGS = -fwritable-strings -fno-merge-constants
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,103 +0,0 @@
|
||||
#include"loader.h"
|
||||
|
||||
#define MAX_DLL 32
|
||||
|
||||
static dll_t dll_list[MAX_DLL];
|
||||
|
||||
SYMENT * dl_find_dll_symbol(char * name,dll_t ** xdll)
|
||||
{
|
||||
dll_t * dll;
|
||||
SYMENT * __ret;
|
||||
int i;
|
||||
for(dll=dll_list+0,i=0;i<MAX_DLL;i++,dll++)
|
||||
{
|
||||
if(dll->obj)
|
||||
{
|
||||
__ret=find_coff_symbol(dll->obj,name);
|
||||
if(__ret)
|
||||
{
|
||||
*xdll=dll;
|
||||
return __ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
*xdll=(dll_t *)NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long dl_get_ref(char * symname)
|
||||
{
|
||||
dll_t * dll;
|
||||
SYMENT * sym=dl_find_dll_symbol(symname,&dll);
|
||||
if(!sym && !dll) return 0;
|
||||
return sym->e_value+dll->obj->co_sections[sym->e_scnum-1].s_scnptr+dll->obj->co_loadaddr;
|
||||
}
|
||||
|
||||
void init_dll(void)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<MAX_DLL;i++)
|
||||
dll_list[i].obj=NULL;
|
||||
}
|
||||
|
||||
dll_t * load_dll(char * name)
|
||||
{
|
||||
dll_t * p;
|
||||
int i;
|
||||
dprintf("Load dll '%s'\n",name);
|
||||
for(i=0,p=dll_list+0;i<MAX_DLL;i++,p++)
|
||||
{
|
||||
if(!p->obj)
|
||||
{
|
||||
p->obj=mcoff_load_file(name);
|
||||
if(!p->obj) return NULL;
|
||||
return p;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int dll_symlookupfn(coffobj_t * obj,unsigned long * sym_val,
|
||||
unsigned long * sym_sect,int index)
|
||||
{
|
||||
SYMENT * symtab;
|
||||
unsigned long lookup;
|
||||
char xname[9];
|
||||
char * symnamep;
|
||||
symtab=obj->co_symtab+index;
|
||||
*sym_sect=(unsigned long)symtab->e_scnum;
|
||||
if(symtab->e_scnum>0)
|
||||
{
|
||||
*sym_val=symtab->e_value;
|
||||
return 0;
|
||||
}
|
||||
if(symtab->e.e.e_zeroes==0)
|
||||
{
|
||||
symnamep=(char *)(((long)obj->co_strtab)+symtab->e.e.e_offset);
|
||||
} else {
|
||||
symnamep=(char *)symtab->e.e_name;
|
||||
memset(xname,0,9);
|
||||
memcpy(xname,symnamep,8);
|
||||
symnamep=xname;
|
||||
}
|
||||
lookup=kexport_lookup(symnamep);
|
||||
if(lookup)
|
||||
{
|
||||
*sym_val=lookup;
|
||||
return 0;
|
||||
}
|
||||
lookup=dl_get_ref(symnamep);
|
||||
if(!lookup) return -1;
|
||||
*sym_val=lookup;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int relocate_dlls(void)
|
||||
{
|
||||
int i;
|
||||
dll_t * dll;
|
||||
for(i=0,dll=dll_list+0;i<MAX_DLL;i++,dll++)
|
||||
if(dll->obj)
|
||||
if(relocate_coff_file(dll->obj,dll_symlookupfn)) return -1;
|
||||
return 0;
|
||||
}
|
@@ -1,36 +0,0 @@
|
||||
#include"loader.h"
|
||||
|
||||
#define EX(x) \
|
||||
{ "_"#x , (unsigned long)&x }
|
||||
|
||||
extern void * sbrk(int);
|
||||
extern void _exit(int);
|
||||
|
||||
static struct {
|
||||
char * name;
|
||||
unsigned long ptr;
|
||||
} kextable[]={
|
||||
EX(sbrk),
|
||||
EX(errno),
|
||||
EX(malloc),
|
||||
EX(free),
|
||||
EX(realloc),
|
||||
EX(atexit),
|
||||
EX(exit),
|
||||
EX(getenv),
|
||||
EX(_exit),
|
||||
};
|
||||
|
||||
#define NR_KEX (sizeof(kextable)/sizeof(kextable[0]))
|
||||
|
||||
unsigned long kexport_lookup(char * name)
|
||||
{
|
||||
int i,j;
|
||||
j=strlen(name);
|
||||
for(i=0;i<NR_KEX;i++)
|
||||
{
|
||||
if(strlen(kextable[i].name)==j &&
|
||||
!strncmp(kextable[i].name,name,j)) return kextable[i].ptr;
|
||||
}
|
||||
return 0;
|
||||
}
|
@@ -1,564 +0,0 @@
|
||||
Archive member included because of file (symbol)
|
||||
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(symtab.o)
|
||||
dll_list.o (_find_coff_symbol)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
dll_list.o (_dprintf)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o)
|
||||
dll_list.o (_mcoff_load_file)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(relocate.o)
|
||||
dll_list.o (_relocate_coff_file)
|
||||
/dev/env/MENUETDEV/lib/libc.a(param.o)
|
||||
/dev/env/MENUETDEV/stub/crt0.o (___menuet__app_param_area)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
/dev/env/MENUETDEV/stub/crt0.o (___crt1_startup)
|
||||
/dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (_init_brk)
|
||||
/dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
kernel.o (_errno)
|
||||
/dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
kernel.o (_malloc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(atexit.o)
|
||||
kernel.o (_atexit)
|
||||
/dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(atexit.o) (___atexit_ptr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(getenv.o)
|
||||
kernel.o (_getenv)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
kernel.o (__exit)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strlen.o)
|
||||
kernel.o (_strlen)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strncmp.o)
|
||||
kernel.o (_strncmp)
|
||||
/dev/env/MENUETDEV/lib/libc.a(memset.o)
|
||||
dll_list.o (_memset)
|
||||
/dev/env/MENUETDEV/lib/libc.a(memcpy.o)
|
||||
dll_list.o (_memcpy)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strchr.o)
|
||||
main.o (_strchr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
main.o (___libclog_printf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(sprintf.o)
|
||||
main.o (_sprintf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(vsprintf.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(debug.o) (_vsprintf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fopen)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fseek.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fseek)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ftell.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_ftell)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fread)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fclose.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fclose)
|
||||
/dev/env/MENUETDEV/lib/libc.a(printf.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(relocate.o) (_printf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (_dosemu_inithandles)
|
||||
/dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (_init_dir_stack)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (___main)
|
||||
/dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(getenv.o) (___libc_getenv)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ct_flags.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (___dj_ctype_flags)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_open.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (__open)
|
||||
/dev/env/MENUETDEV/lib/libc.a(lseek.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (_lseek)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_read.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (__read)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_close.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (__close)
|
||||
/dev/env/MENUETDEV/lib/libc.a(c1pglob.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (___crt0_glob_function)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(sprintf.o) (__doprnt)
|
||||
/dev/env/MENUETDEV/lib/libc.a(allocfil.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o) (___alloc_file)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fmode.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o) (__fmode)
|
||||
/dev/env/MENUETDEV/lib/libc.a(open.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o) (_open)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fflush.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fseek.o) (_fflush)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ftell.o) (___file_handle_modes)
|
||||
/dev/env/MENUETDEV/lib/libc.a(filbuf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o) (__filbuf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(remove.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fclose.o) (_remove)
|
||||
/dev/env/MENUETDEV/lib/libc.a(close.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fclose.o) (_close)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(printf.o) (___dj_stdout)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strcpy.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o) (_strcpy)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fixpath.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o) (__fixpath)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strupr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o) (_strupr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strlwr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(curdir.o) (_strlwr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strcmp.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(curdir.o) (_strcmp)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_open.o) (___FSEXT_call_open_handlers)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_close.o) (___FSEXT_set_function)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(c1pglob.o) (_glob)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (___stdio_cleanup_proc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (_localeconv)
|
||||
/dev/env/MENUETDEV/lib/libc.a(putc.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (_putc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(memchr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (_memchr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(flsbuf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (__flsbuf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(modfl.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (___modfl)
|
||||
/dev/env/MENUETDEV/lib/libc.a(frlist.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(allocfil.o) (___file_rec_list)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_write.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(open.o) (__write)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_creat.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(open.o) (__creat)
|
||||
/dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fflush.o) (_write)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(filbuf.o) (___dj_stdin)
|
||||
/dev/env/MENUETDEV/lib/libc.a(read.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(filbuf.o) (_read)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(filbuf.o) (___dj_stderr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ct_upper.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strupr.o) (___dj_ctype_toupper)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ct_lower.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strlwr.o) (___dj_ctype_tolower)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (___file_exists)
|
||||
/dev/env/MENUETDEV/lib/libc.a(findfirs.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (___findfirst)
|
||||
/dev/env/MENUETDEV/lib/libc.a(findnext.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (___findnext)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strncpy.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (_strncpy)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (_fnmatch)
|
||||
/dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (_qsort)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fwalk.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdiohk.o) (__fwalk)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fputc.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(putc.o) (_fputc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(hooks.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fputc.o) (___libc_write_termios_hook)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
*default* 0x00000000 0xffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
|
||||
.text 0x00000000 0x6500
|
||||
0x00000000 code = .
|
||||
0x00000000 _code = .
|
||||
*(.text)
|
||||
.text 0x00000000 0x39 /dev/env/MENUETDEV/stub/crt0.o
|
||||
0x00000000 ___menuet__app_header
|
||||
0x00000033 ___menuet__getmemsize
|
||||
0x00000000 start
|
||||
*fill* 0x00000039 0x7 00
|
||||
.text 0x00000040 0x70 kernel.o
|
||||
0x00000040 _kexport_lookup
|
||||
.text 0x000000b0 0x200 dll_list.o
|
||||
0x00000270 _relocate_dlls
|
||||
0x000001d0 _dll_symlookupfn
|
||||
0x00000100 _dl_get_ref
|
||||
0x00000150 _init_dll
|
||||
0x000000b0 _dl_find_dll_symbol
|
||||
0x00000170 _load_dll
|
||||
.text 0x000002b0 0x260 main.o
|
||||
0x000003e0 _app_main
|
||||
0x00000330 _try_load_dll
|
||||
.text 0x00000510 0xf0 /dev/env/MENUETDEV/lib/libmcoff.a(symtab.o)
|
||||
0x000005c0 _mcoff_get_ref
|
||||
0x00000510 _find_coff_symbol
|
||||
.text 0x00000600 0xa0 /dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
0x00000670 _dprintf
|
||||
.text 0x000006a0 0x400 /dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o)
|
||||
0x00000a60 _unload_coff_file
|
||||
0x000007f0 _mcoff_load_file
|
||||
.text 0x00000aa0 0x2a0 /dev/env/MENUETDEV/lib/libmcoff.a(relocate.o)
|
||||
0x00000c80 _mcoff_std_symlookupfn
|
||||
0x00000bf0 _relocate_coff_file
|
||||
.text 0x00000d40 0x50 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
0x00000d40 ___crt1_startup
|
||||
.text 0x00000d90 0x130 /dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
0x00000e60 _sbrk
|
||||
0x00000e00 _brk
|
||||
0x00000d90 _init_brk
|
||||
.text 0x00000ec0 0x10 /dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
0x00000ec0 ___isatty
|
||||
.text 0x00000ed0 0x3f0 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
0x000010d0 _free
|
||||
0x00001260 _realloc
|
||||
0x00000ed0 _malloc
|
||||
.text 0x000012c0 0x40 /dev/env/MENUETDEV/lib/libc.a(atexit.o)
|
||||
0x000012c0 _atexit
|
||||
.text 0x00001300 0x30 /dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
0x00001300 _exit
|
||||
.text 0x00001330 0x20 /dev/env/MENUETDEV/lib/libc.a(getenv.o)
|
||||
0x00001330 _getenv
|
||||
.text 0x00001350 0x7f0 /dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
0x00001350 __exit
|
||||
0x00001a90 ___crt0_setup_arguments
|
||||
.text 0x00001b40 0x20 /dev/env/MENUETDEV/lib/libc.a(strlen.o)
|
||||
0x00001b40 _strlen
|
||||
.text 0x00001b60 0x30 /dev/env/MENUETDEV/lib/libc.a(strncmp.o)
|
||||
0x00001b60 _strncmp
|
||||
.text 0x00001b90 0x40 /dev/env/MENUETDEV/lib/libc.a(memset.o)
|
||||
0x00001b90 _memset
|
||||
.text 0x00001bd0 0x30 /dev/env/MENUETDEV/lib/libc.a(memcpy.o)
|
||||
0x00001bd0 _memcpy
|
||||
.text 0x00001c00 0x20 /dev/env/MENUETDEV/lib/libc.a(strchr.o)
|
||||
0x00001c00 _strchr
|
||||
.text 0x00001c20 0xb0 /dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
0x00001c80 ___libclog_vprintf
|
||||
0x00001cb0 ___libclog_printf
|
||||
.text 0x00001cd0 0x40 /dev/env/MENUETDEV/lib/libc.a(sprintf.o)
|
||||
0x00001cd0 _sprintf
|
||||
.text 0x00001d10 0x40 /dev/env/MENUETDEV/lib/libc.a(vsprintf.o)
|
||||
0x00001d10 _vsprintf
|
||||
.text 0x00001d50 0x170 /dev/env/MENUETDEV/lib/libc.a(fopen.o)
|
||||
0x00001d50 _fopen
|
||||
.text 0x00001ec0 0xf0 /dev/env/MENUETDEV/lib/libc.a(fseek.o)
|
||||
0x00001ec0 _fseek
|
||||
.text 0x00001fb0 0x100 /dev/env/MENUETDEV/lib/libc.a(ftell.o)
|
||||
0x00001fb0 _ftell
|
||||
.text 0x000020b0 0xe0 /dev/env/MENUETDEV/lib/libc.a(fread.o)
|
||||
0x000020d0 _fread
|
||||
.text 0x00002190 0xd0 /dev/env/MENUETDEV/lib/libc.a(fclose.o)
|
||||
0x00002190 _fclose
|
||||
.text 0x00002260 0x30 /dev/env/MENUETDEV/lib/libc.a(printf.o)
|
||||
0x00002260 _printf
|
||||
.text 0x00002290 0x9a0 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
0x00002a70 _dosemu_lseek
|
||||
0x00002500 _dosemu_inithandles
|
||||
0x000027d0 _dosemu_iosize
|
||||
0x00002bf0 _dosemu_atexit
|
||||
0x00002bc0 __dosemu_flush
|
||||
0x00002ae0 _dosemu_read
|
||||
0x00002450 _dosemu_loadall
|
||||
0x00002750 _dosemu_filewrite
|
||||
0x000023a0 _dosemu_getiostruct
|
||||
0x00002330 _dosemu_createtrunc
|
||||
0x00002590 _dosemu_flush
|
||||
0x000027f0 _dosemu_filesize
|
||||
0x00002620 _dosemu_loadcurrsector
|
||||
0x00002810 _dosemu_open
|
||||
0x00002b30 _dosemu_write
|
||||
0x000023e0 _dosemu_fillbuf
|
||||
0x00002a50 _dosemu_tell
|
||||
0x00002640 _dosemu_fileread
|
||||
0x00002570 _dosemu_freehandle
|
||||
0x00002b80 _dosemu_close
|
||||
0x000022b0 _dosemu_file_exists
|
||||
0x00002550 _dosemu_allochandle
|
||||
.text 0x00002c30 0x390 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
0x00002d10 _add_to_dir
|
||||
0x00002f50 ___libc_combine_path
|
||||
0x00002e40 ___get_curdir
|
||||
0x00002d80 _init_dir_stack
|
||||
0x00002d40 _get_from_dir
|
||||
0x00002f20 ___chdir
|
||||
.text 0x00002fc0 0x40 /dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
0x00002fc0 ___main
|
||||
.text 0x00003000 0x20 /dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
0x00003000 ___libc_putenv
|
||||
0x00003010 ___libc_getenv
|
||||
.text 0x00003020 0x40 /dev/env/MENUETDEV/lib/libc.a(_open.o)
|
||||
0x00003020 __open
|
||||
.text 0x00003060 0x20 /dev/env/MENUETDEV/lib/libc.a(lseek.o)
|
||||
0x00003060 _lseek
|
||||
.text 0x00003080 0x50 /dev/env/MENUETDEV/lib/libc.a(_read.o)
|
||||
0x00003080 __read
|
||||
.text 0x000030d0 0x70 /dev/env/MENUETDEV/lib/libc.a(_close.o)
|
||||
0x000030d0 __close
|
||||
.text 0x00003140 0x30 /dev/env/MENUETDEV/lib/libc.a(c1pglob.o)
|
||||
0x00003140 ___crt0_glob_function
|
||||
.text 0x00003170 0x18a0 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
0x000031a0 __doprnt
|
||||
.text 0x00004a10 0xb0 /dev/env/MENUETDEV/lib/libc.a(allocfil.o)
|
||||
0x00004a20 ___alloc_file
|
||||
.text 0x00004ac0 0xb0 /dev/env/MENUETDEV/lib/libc.a(open.o)
|
||||
0x00004ac0 _open
|
||||
.text 0x00004b70 0xc0 /dev/env/MENUETDEV/lib/libc.a(fflush.o)
|
||||
0x00004b70 _fflush
|
||||
.text 0x00004c30 0x20 /dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
0x00004c30 ___file_handle_set
|
||||
.text 0x00004c50 0x1a0 /dev/env/MENUETDEV/lib/libc.a(filbuf.o)
|
||||
0x00004c60 __filbuf
|
||||
.text 0x00004df0 0x10 /dev/env/MENUETDEV/lib/libc.a(remove.o)
|
||||
0x00004df0 _remove
|
||||
.text 0x00004e00 0x20 /dev/env/MENUETDEV/lib/libc.a(close.o)
|
||||
0x00004e00 _close
|
||||
.text 0x00004e20 0x10 /dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
.text 0x00004e30 0x20 /dev/env/MENUETDEV/lib/libc.a(strcpy.o)
|
||||
0x00004e30 _strcpy
|
||||
.text 0x00004e50 0x80 /dev/env/MENUETDEV/lib/libc.a(fixpath.o)
|
||||
0x00004e50 _fix_slashes
|
||||
0x00004eb0 __fixpath
|
||||
.text 0x00004ed0 0x30 /dev/env/MENUETDEV/lib/libc.a(strupr.o)
|
||||
0x00004ed0 _strupr
|
||||
.text 0x00004f00 0x30 /dev/env/MENUETDEV/lib/libc.a(strlwr.o)
|
||||
0x00004f00 _strlwr
|
||||
.text 0x00004f30 0x20 /dev/env/MENUETDEV/lib/libc.a(strcmp.o)
|
||||
0x00004f30 _strcmp
|
||||
.text 0x00004f50 0x90 /dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
0x00004f90 ___FSEXT_call_open_handlers
|
||||
0x00004f50 ___FSEXT_add_open_handler
|
||||
.text 0x00004fe0 0x110 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
0x00005010 ___FSEXT_alloc_fd
|
||||
0x000050c0 ___FSEXT_get_function
|
||||
0x00005040 ___FSEXT_set_function
|
||||
.text 0x000050f0 0x8a0 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
0x000057d0 _glob
|
||||
.text 0x00005990 0x50 /dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
0x000059c0 ___stdio_cleanup_proc
|
||||
.text 0x000059e0 0x10 /dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
0x000059e0 _localeconv
|
||||
.text 0x000059f0 0x20 /dev/env/MENUETDEV/lib/libc.a(putc.o)
|
||||
0x000059f0 _putc
|
||||
.text 0x00005a10 0x30 /dev/env/MENUETDEV/lib/libc.a(memchr.o)
|
||||
0x00005a10 _memchr
|
||||
.text 0x00005a40 0x180 /dev/env/MENUETDEV/lib/libc.a(flsbuf.o)
|
||||
0x00005a40 __flsbuf
|
||||
.text 0x00005bc0 0x30 /dev/env/MENUETDEV/lib/libc.a(modfl.o)
|
||||
0x00005bc0 ___modfl
|
||||
.text 0x00005bf0 0x50 /dev/env/MENUETDEV/lib/libc.a(_write.o)
|
||||
0x00005bf0 __write
|
||||
.text 0x00005c40 0x20 /dev/env/MENUETDEV/lib/libc.a(_creat.o)
|
||||
0x00005c40 __creat
|
||||
.text 0x00005c60 0x20 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
0x00005c60 _write
|
||||
.text 0x00005c80 0x10 /dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
.text 0x00005c90 0x20 /dev/env/MENUETDEV/lib/libc.a(read.o)
|
||||
0x00005c90 _read
|
||||
.text 0x00005cb0 0x10 /dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
.text 0x00005cc0 0x40 /dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
0x00005cc0 ___file_exists
|
||||
.text 0x00005d00 0x10 /dev/env/MENUETDEV/lib/libc.a(findfirs.o)
|
||||
0x00005d00 ___findfirst
|
||||
.text 0x00005d10 0x10 /dev/env/MENUETDEV/lib/libc.a(findnext.o)
|
||||
0x00005d10 ___findnext
|
||||
.text 0x00005d20 0x20 /dev/env/MENUETDEV/lib/libc.a(strncpy.o)
|
||||
0x00005d20 _strncpy
|
||||
.text 0x00005d40 0x340 /dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
0x00005e50 _fnmatch
|
||||
.text 0x00006080 0x340 /dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
0x00006260 _qsort
|
||||
.text 0x000063c0 0x50 /dev/env/MENUETDEV/lib/libc.a(fwalk.o)
|
||||
0x000063c0 __fwalk
|
||||
.text 0x00006410 0xf0 /dev/env/MENUETDEV/lib/libc.a(fputc.o)
|
||||
0x00006410 _fputc
|
||||
*(.fixup)
|
||||
*(.gnu.warning)
|
||||
*(.gnu.linkonce.t*)
|
||||
*(.const)
|
||||
*(.ro*)
|
||||
*(.gnu.linkonce.r*)
|
||||
0x00006500 ecode = .
|
||||
0x00006500 _ecode = .
|
||||
|
||||
.data 0x00006500 0xaa0
|
||||
0x00006500 djgpp_first_ctor = .
|
||||
*(.ctor)
|
||||
0x00006500 djgpp_last_ctor = .
|
||||
0x00006500 djgpp_first_dtor = .
|
||||
*(.dtor)
|
||||
0x00006500 djgpp_last_dtor = .
|
||||
*(.gcc_exc*)
|
||||
0x00006500 __EH_FRAME_BEGIN__ = .
|
||||
*(.eh_fram*)
|
||||
0x00006500 __EH_FRAME_END__ = .
|
||||
0x00006500 0x4 LONG 0x0
|
||||
*(.gnu.linkonce.d*)
|
||||
*(.rodata)
|
||||
*(.rodata.*)
|
||||
*(.data)
|
||||
*fill* 0x00006504 0xc 00
|
||||
.data 0x00006510 0xc0 kernel.o
|
||||
.data 0x000065d0 0x10 dll_list.o
|
||||
.data 0x000065e0 0x140 main.o
|
||||
.data 0x00006720 0x10 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
0x00006724 ___crt0_argc
|
||||
0x00006720 ___bss_count
|
||||
.data 0x00006730 0x20 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.data 0x00006750 0x10 /dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
0x00006754 _keypress_at_exit
|
||||
0x00006750 ___atexit_ptr
|
||||
.data 0x00006760 0x10 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
.data 0x00006770 0x20 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.data 0x00006790 0x10 /dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
.data 0x000067a0 0x220 /dev/env/MENUETDEV/lib/libc.a(ct_flags.o)
|
||||
0x000067a0 ___dj_ctype_flags
|
||||
.data 0x000069c0 0x180 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
.data 0x00006b40 0x10 /dev/env/MENUETDEV/lib/libc.a(fmode.o)
|
||||
0x00006b40 __fmode
|
||||
.data 0x00006b50 0x20 /dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
0x00006b6c ___file_handle_modes
|
||||
.data 0x00006b70 0x40 /dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
0x00006b70 ___dj_stdout
|
||||
.data 0x00006bb0 0x10 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.data 0x00006bc0 0x20 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.data 0x00006be0 0x10 /dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
0x00006be0 ___stdio_cleanup_hook
|
||||
.data 0x00006bf0 0x60 /dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
.data 0x00006c50 0x60 /dev/env/MENUETDEV/lib/libc.a(frlist.o)
|
||||
0x00006ca8 ___file_rec_list
|
||||
.data 0x00006cb0 0x10 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
.data 0x00006cc0 0x40 /dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
0x00006cc0 ___dj_stdin
|
||||
.data 0x00006d00 0x40 /dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
0x00006d00 ___dj_stderr
|
||||
.data 0x00006d40 0x120 /dev/env/MENUETDEV/lib/libc.a(ct_upper.o)
|
||||
0x00006d40 ___dj_ctype_toupper
|
||||
.data 0x00006e60 0x120 /dev/env/MENUETDEV/lib/libc.a(ct_lower.o)
|
||||
0x00006e60 ___dj_ctype_tolower
|
||||
.data 0x00006f80 0x10 /dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
.data 0x00006f90 0x10 /dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
0x00006fa0 edata = .
|
||||
0x00006fa0 _edata = .
|
||||
0x00006fa0 bss = .
|
||||
|
||||
.bss 0x00006fa0 0x13dbc
|
||||
*(.bss)
|
||||
.bss 0x00006fa0 0x1000 /dev/env/MENUETDEV/stub/crt0.o
|
||||
.bss 0x00007fa0 0x100 dll_list.o
|
||||
.bss 0x000080a0 0x820 main.o
|
||||
0x000080a0 _main_program
|
||||
0x000080ac _xmain
|
||||
0x000080a4 _dll
|
||||
0x000080a8 _dll_load_table
|
||||
.bss 0x000088c0 0x400 /dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
.bss 0x00008cc0 0x400 /dev/env/MENUETDEV/lib/libc.a(param.o)
|
||||
0x00008cc0 ___menuet__app_param_area
|
||||
.bss 0x000090c0 0x10 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
0x000090cc _environ
|
||||
0x000090c4 ___crt0_argv
|
||||
0x000090c0 ___dos_argv0
|
||||
0x000090c8 __crt0_startup_flags
|
||||
.bss 0x000090d0 0x40 /dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
.bss 0x00009110 0x4 /dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
0x00009110 _errno
|
||||
.bss 0x00009114 0xa0 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.bss 0x000091b4 0x400 /dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
.bss 0x000095b4 0x10b00 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
.bss 0x0001a0b4 0xba0 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.bss 0x0001ac54 0x10 /dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
.bss 0x0001ac64 0x10 /dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
.bss 0x0001ac74 0x20 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.bss 0x0001ac94 0x80 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.bss 0x0001ad14 0x40 /dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
.bss 0x0001ad54 0x8 /dev/env/MENUETDEV/lib/libc.a(hooks.o)
|
||||
0x0001ad58 ___libc_write_termios_hook
|
||||
0x0001ad54 ___libc_read_termios_hook
|
||||
0x0001ad5c end = .
|
||||
0x0001ad5c _end = .
|
||||
LOAD /dev/env/MENUETDEV/stub/crt0.o
|
||||
LOAD kernel.o
|
||||
LOAD dll_list.o
|
||||
LOAD main.o
|
||||
LOAD /dev/env/MENUETDEV/lib/libmcoff.a
|
||||
LOAD /dev/env/MENUETDEV/lib/libc.a
|
||||
OUTPUT(ld-dll binary)
|
||||
|
||||
.comment 0x0001ad5c 0x500
|
||||
.comment 0x0001ad5c 0x10 kernel.o
|
||||
.comment 0x0001ad6c 0x10 dll_list.o
|
||||
.comment 0x0001ad7c 0x10 main.o
|
||||
.comment 0x0001ad8c 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(symtab.o)
|
||||
.comment 0x0001ad9c 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
.comment 0x0001adac 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o)
|
||||
.comment 0x0001adbc 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(relocate.o)
|
||||
.comment 0x0001adcc 0x10 /dev/env/MENUETDEV/lib/libc.a(param.o)
|
||||
.comment 0x0001addc 0x10 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
.comment 0x0001adec 0x10 /dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
.comment 0x0001adfc 0x10 /dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
.comment 0x0001ae0c 0x10 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.comment 0x0001ae1c 0x10 /dev/env/MENUETDEV/lib/libc.a(atexit.o)
|
||||
.comment 0x0001ae2c 0x10 /dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
.comment 0x0001ae3c 0x10 /dev/env/MENUETDEV/lib/libc.a(getenv.o)
|
||||
.comment 0x0001ae4c 0x10 /dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
.comment 0x0001ae5c 0x10 /dev/env/MENUETDEV/lib/libc.a(strlen.o)
|
||||
.comment 0x0001ae6c 0x10 /dev/env/MENUETDEV/lib/libc.a(strncmp.o)
|
||||
.comment 0x0001ae7c 0x10 /dev/env/MENUETDEV/lib/libc.a(memcpy.o)
|
||||
.comment 0x0001ae8c 0x10 /dev/env/MENUETDEV/lib/libc.a(strchr.o)
|
||||
.comment 0x0001ae9c 0x10 /dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
.comment 0x0001aeac 0x10 /dev/env/MENUETDEV/lib/libc.a(sprintf.o)
|
||||
.comment 0x0001aebc 0x10 /dev/env/MENUETDEV/lib/libc.a(vsprintf.o)
|
||||
.comment 0x0001aecc 0x10 /dev/env/MENUETDEV/lib/libc.a(fopen.o)
|
||||
.comment 0x0001aedc 0x10 /dev/env/MENUETDEV/lib/libc.a(fseek.o)
|
||||
.comment 0x0001aeec 0x10 /dev/env/MENUETDEV/lib/libc.a(ftell.o)
|
||||
.comment 0x0001aefc 0x10 /dev/env/MENUETDEV/lib/libc.a(fread.o)
|
||||
.comment 0x0001af0c 0x10 /dev/env/MENUETDEV/lib/libc.a(fclose.o)
|
||||
.comment 0x0001af1c 0x10 /dev/env/MENUETDEV/lib/libc.a(printf.o)
|
||||
.comment 0x0001af2c 0x10 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
.comment 0x0001af3c 0x10 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.comment 0x0001af4c 0x10 /dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
.comment 0x0001af5c 0x10 /dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
.comment 0x0001af6c 0x10 /dev/env/MENUETDEV/lib/libc.a(ct_flags.o)
|
||||
.comment 0x0001af7c 0x10 /dev/env/MENUETDEV/lib/libc.a(_open.o)
|
||||
.comment 0x0001af8c 0x10 /dev/env/MENUETDEV/lib/libc.a(lseek.o)
|
||||
.comment 0x0001af9c 0x10 /dev/env/MENUETDEV/lib/libc.a(_read.o)
|
||||
.comment 0x0001afac 0x10 /dev/env/MENUETDEV/lib/libc.a(_close.o)
|
||||
.comment 0x0001afbc 0x10 /dev/env/MENUETDEV/lib/libc.a(c1pglob.o)
|
||||
.comment 0x0001afcc 0x10 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
.comment 0x0001afdc 0x10 /dev/env/MENUETDEV/lib/libc.a(allocfil.o)
|
||||
.comment 0x0001afec 0x10 /dev/env/MENUETDEV/lib/libc.a(fmode.o)
|
||||
.comment 0x0001affc 0x10 /dev/env/MENUETDEV/lib/libc.a(open.o)
|
||||
.comment 0x0001b00c 0x10 /dev/env/MENUETDEV/lib/libc.a(fflush.o)
|
||||
.comment 0x0001b01c 0x10 /dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
.comment 0x0001b02c 0x10 /dev/env/MENUETDEV/lib/libc.a(filbuf.o)
|
||||
.comment 0x0001b03c 0x10 /dev/env/MENUETDEV/lib/libc.a(remove.o)
|
||||
.comment 0x0001b04c 0x10 /dev/env/MENUETDEV/lib/libc.a(close.o)
|
||||
.comment 0x0001b05c 0x10 /dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
.comment 0x0001b06c 0x10 /dev/env/MENUETDEV/lib/libc.a(strcpy.o)
|
||||
.comment 0x0001b07c 0x10 /dev/env/MENUETDEV/lib/libc.a(fixpath.o)
|
||||
.comment 0x0001b08c 0x10 /dev/env/MENUETDEV/lib/libc.a(strupr.o)
|
||||
.comment 0x0001b09c 0x10 /dev/env/MENUETDEV/lib/libc.a(strlwr.o)
|
||||
.comment 0x0001b0ac 0x10 /dev/env/MENUETDEV/lib/libc.a(strcmp.o)
|
||||
.comment 0x0001b0bc 0x10 /dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
.comment 0x0001b0cc 0x10 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.comment 0x0001b0dc 0x10 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.comment 0x0001b0ec 0x10 /dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
.comment 0x0001b0fc 0x10 /dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
.comment 0x0001b10c 0x10 /dev/env/MENUETDEV/lib/libc.a(putc.o)
|
||||
.comment 0x0001b11c 0x10 /dev/env/MENUETDEV/lib/libc.a(memchr.o)
|
||||
.comment 0x0001b12c 0x10 /dev/env/MENUETDEV/lib/libc.a(flsbuf.o)
|
||||
.comment 0x0001b13c 0x10 /dev/env/MENUETDEV/lib/libc.a(frlist.o)
|
||||
.comment 0x0001b14c 0x10 /dev/env/MENUETDEV/lib/libc.a(_write.o)
|
||||
.comment 0x0001b15c 0x10 /dev/env/MENUETDEV/lib/libc.a(_creat.o)
|
||||
.comment 0x0001b16c 0x10 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
.comment 0x0001b17c 0x10 /dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
.comment 0x0001b18c 0x10 /dev/env/MENUETDEV/lib/libc.a(read.o)
|
||||
.comment 0x0001b19c 0x10 /dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
.comment 0x0001b1ac 0x10 /dev/env/MENUETDEV/lib/libc.a(ct_upper.o)
|
||||
.comment 0x0001b1bc 0x10 /dev/env/MENUETDEV/lib/libc.a(ct_lower.o)
|
||||
.comment 0x0001b1cc 0x10 /dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
.comment 0x0001b1dc 0x10 /dev/env/MENUETDEV/lib/libc.a(findfirs.o)
|
||||
.comment 0x0001b1ec 0x10 /dev/env/MENUETDEV/lib/libc.a(findnext.o)
|
||||
.comment 0x0001b1fc 0x10 /dev/env/MENUETDEV/lib/libc.a(strncpy.o)
|
||||
.comment 0x0001b20c 0x10 /dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
.comment 0x0001b21c 0x10 /dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
.comment 0x0001b22c 0x10 /dev/env/MENUETDEV/lib/libc.a(fwalk.o)
|
||||
.comment 0x0001b23c 0x10 /dev/env/MENUETDEV/lib/libc.a(fputc.o)
|
||||
.comment 0x0001b24c 0x10 /dev/env/MENUETDEV/lib/libc.a(hooks.o)
|
@@ -1,571 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/dev/env/MENUETDEV/lib/libc.a(_close.o) (___FSEXT_set_function)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_open.o) (___FSEXT_call_open_handlers)
|
||||
/dev/env/MENUETDEV/lib/libc.a(allocfil.o) (___file_rec_list)
|
||||
/dev/env/MENUETDEV/lib/libc.a(atexit.o) (___atexit_ptr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(c1pglob.o) (_glob)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (___crt0_glob_function)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (___dj_ctype_flags)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (__close)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (__open)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (__read)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o) (_lseek)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (___main)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (_dosemu_inithandles)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (_init_brk)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o) (_init_dir_stack)
|
||||
/dev/env/MENUETDEV/lib/libc.a(curdir.o) (_strcmp)
|
||||
/dev/env/MENUETDEV/lib/libc.a(curdir.o) (_strlwr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (___modfl)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (___stdio_cleanup_proc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (__flsbuf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (_localeconv)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (_memchr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o) (_putc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o) (__fixpath)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o) (_strcpy)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o) (_strupr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fclose.o) (_close)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fclose.o) (_remove)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fflush.o) (_write)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fgetc.o) (___libc_read_termios_hook)
|
||||
/dev/env/MENUETDEV/lib/libc.a(filbuf.o) (_read)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o) (___alloc_file)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o) (__fmode)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o) (_open)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o) (___dj_stderr)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o) (___dj_stdin)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o) (___dj_stdout)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o) (__filbuf)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o) (_fgetc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fseek.o) (_fflush)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ftell.o) (___file_handle_modes)
|
||||
/dev/env/MENUETDEV/lib/libc.a(getenv.o) (___libc_getenv)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (___file_exists)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (___findfirst)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (___findnext)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (_fnmatch)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (_qsort)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o) (_strncpy)
|
||||
/dev/env/MENUETDEV/lib/libc.a(open.o) (__creat)
|
||||
/dev/env/MENUETDEV/lib/libc.a(open.o) (__write)
|
||||
/dev/env/MENUETDEV/lib/libc.a(putc.o) (_fputc)
|
||||
/dev/env/MENUETDEV/lib/libc.a(sprintf.o) (__doprnt)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdiohk.o) (__fwalk)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strlwr.o) (___dj_ctype_tolower)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strupr.o) (___dj_ctype_toupper)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(debug.o) (_vsprintf)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fclose)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fopen)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fread)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_fseek)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o) (_ftell)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(relocate.o) (_printf)
|
||||
/dev/env/MENUETDEV/stub/crt0.o (___crt1_startup)
|
||||
/dev/env/MENUETDEV/stub/crt0.o (___menuet__app_param_area)
|
||||
dll_list.o (_dprintf)
|
||||
dll_list.o (_find_coff_symbol)
|
||||
dll_list.o (_mcoff_load_file)
|
||||
dll_list.o (_memcpy)
|
||||
dll_list.o (_memset)
|
||||
dll_list.o (_relocate_coff_file)
|
||||
kernel.o (__exit)
|
||||
kernel.o (_atexit)
|
||||
kernel.o (_errno)
|
||||
kernel.o (_getenv)
|
||||
kernel.o (_malloc)
|
||||
kernel.o (_strlen)
|
||||
kernel.o (_strncmp)
|
||||
main.o (___libclog_printf)
|
||||
main.o (_sprintf)
|
||||
main.o (_strchr)
|
||||
0x00000000 ___menuet__app_header
|
||||
0x00000000 _code = .
|
||||
0x00000000 code = .
|
||||
0x00000000 start
|
||||
0x00000033 ___menuet__getmemsize
|
||||
0x00000040 _kexport_lookup
|
||||
0x000000b0 _dl_find_dll_symbol
|
||||
0x00000100 _dl_get_ref
|
||||
0x00000150 _init_dll
|
||||
0x00000170 _load_dll
|
||||
0x000001d0 _dll_symlookupfn
|
||||
0x00000270 _relocate_dlls
|
||||
0x00000330 _try_load_dll
|
||||
0x000003e0 _app_main
|
||||
0x00000510 _find_coff_symbol
|
||||
0x000005c0 _mcoff_get_ref
|
||||
0x00000670 _dprintf
|
||||
0x000007f0 _mcoff_load_file
|
||||
0x00000a50 _unload_coff_file
|
||||
0x00000bd0 _relocate_coff_file
|
||||
0x00000c60 _mcoff_std_symlookupfn
|
||||
0x00000d20 ___crt1_startup
|
||||
0x00000d80 _init_brk
|
||||
0x00000df0 _brk
|
||||
0x00000e50 _sbrk
|
||||
0x00000eb0 ___isatty
|
||||
0x00000ec0 _malloc
|
||||
0x000010c0 _free
|
||||
0x00001250 _realloc
|
||||
0x000012b0 _atexit
|
||||
0x000012f0 _exit
|
||||
0x00001320 _getenv
|
||||
0x00001340 __exit
|
||||
0x00001a60 ___crt0_setup_arguments
|
||||
0x00001b10 _strlen
|
||||
0x00001b30 _strncmp
|
||||
0x00001b60 _memset
|
||||
0x00001ba0 _memcpy
|
||||
0x00001bd0 _strchr
|
||||
0x00001c50 ___libclog_vprintf
|
||||
0x00001c80 ___libclog_printf
|
||||
0x00001ca0 _sprintf
|
||||
0x00001ce0 _vsprintf
|
||||
0x00001d20 _fopen
|
||||
0x00001e90 _fseek
|
||||
0x00001f70 _ftell
|
||||
0x00002060 _fread
|
||||
0x00002150 _fclose
|
||||
0x00002210 _printf
|
||||
0x00002260 _dosemu_file_exists
|
||||
0x000022e0 _dosemu_createtrunc
|
||||
0x00002350 _dosemu_getiostruct
|
||||
0x00002380 _dosemu_fillbuf
|
||||
0x000023f0 _dosemu_loadall
|
||||
0x000024a0 _dosemu_inithandles
|
||||
0x000024f0 _dosemu_allochandle
|
||||
0x00002510 _dosemu_freehandle
|
||||
0x00002540 _dosemu_flush
|
||||
0x000025d0 _dosemu_loadcurrsector
|
||||
0x000025f0 _dosemu_fileread
|
||||
0x000026f0 _dosemu_filewrite
|
||||
0x00002770 _dosemu_iosize
|
||||
0x00002790 _dosemu_filesize
|
||||
0x000027b0 _dosemu_open
|
||||
0x000029f0 _dosemu_tell
|
||||
0x00002a10 _dosemu_lseek
|
||||
0x00002a80 _dosemu_read
|
||||
0x00002ac0 _dosemu_write
|
||||
0x00002b00 _dosemu_close
|
||||
0x00002b40 __dosemu_flush
|
||||
0x00002b70 _dosemu_atexit
|
||||
0x00002c90 _add_to_dir
|
||||
0x00002cc0 _get_from_dir
|
||||
0x00002d00 _init_dir_stack
|
||||
0x00002dc0 ___get_curdir
|
||||
0x00002ea0 ___chdir
|
||||
0x00002ed0 ___libc_combine_path
|
||||
0x00002f40 ___main
|
||||
0x00002f80 ___libc_putenv
|
||||
0x00002f90 ___libc_getenv
|
||||
0x00002fa0 __open
|
||||
0x00002fe0 _lseek
|
||||
0x00003000 __read
|
||||
0x00003050 __close
|
||||
0x000030c0 ___crt0_glob_function
|
||||
0x00003100 __doprnt
|
||||
0x00004870 ___alloc_file
|
||||
0x00004910 _open
|
||||
0x000049c0 _fflush
|
||||
0x00004a80 ___file_handle_set
|
||||
0x00004ae0 __filbuf
|
||||
0x00004c70 _fgetc
|
||||
0x00004d60 _remove
|
||||
0x00004d70 _close
|
||||
0x00004d90 _strcpy
|
||||
0x00004db0 _fix_slashes
|
||||
0x00004e10 __fixpath
|
||||
0x00004e30 _strupr
|
||||
0x00004e60 _strlwr
|
||||
0x00004e90 _strcmp
|
||||
0x00004eb0 ___FSEXT_add_open_handler
|
||||
0x00004ef0 ___FSEXT_call_open_handlers
|
||||
0x00004f70 ___FSEXT_alloc_fd
|
||||
0x00004fa0 ___FSEXT_set_function
|
||||
0x00005020 ___FSEXT_get_function
|
||||
0x00005730 _glob
|
||||
0x00005920 ___stdio_cleanup_proc
|
||||
0x00005940 _localeconv
|
||||
0x00005950 _putc
|
||||
0x00005970 _memchr
|
||||
0x000059a0 __flsbuf
|
||||
0x00005b20 ___modfl
|
||||
0x00005b50 __write
|
||||
0x00005ba0 __creat
|
||||
0x00005bc0 _write
|
||||
0x00005be0 _read
|
||||
0x00005c00 ___file_exists
|
||||
0x00005c40 ___findfirst
|
||||
0x00005c50 ___findnext
|
||||
0x00005c60 _strncpy
|
||||
0x00005d90 _fnmatch
|
||||
0x000061a0 _qsort
|
||||
0x00006300 __fwalk
|
||||
0x00006350 _fputc
|
||||
0x00006440 __EH_FRAME_BEGIN__ = .
|
||||
0x00006440 __EH_FRAME_END__ = .
|
||||
0x00006440 _ecode = .
|
||||
0x00006440 djgpp_first_ctor = .
|
||||
0x00006440 djgpp_first_dtor = .
|
||||
0x00006440 djgpp_last_ctor = .
|
||||
0x00006440 djgpp_last_dtor = .
|
||||
0x00006440 ecode = .
|
||||
0x00006440 0x4 LONG 0x0
|
||||
0x00006660 ___bss_count
|
||||
0x000066e0 ___dj_ctype_flags
|
||||
0x00006ac0 __fmode
|
||||
0x00006aec ___file_handle_modes
|
||||
0x00006af0 ___dj_stdin
|
||||
0x00006b30 ___dj_stdout
|
||||
0x00006b70 ___dj_stderr
|
||||
0x00006be0 ___stdio_cleanup_hook
|
||||
0x00006ca8 ___file_rec_list
|
||||
0x00006cc0 ___dj_ctype_toupper
|
||||
0x00006de0 ___dj_ctype_tolower
|
||||
0x00006f20 _edata = .
|
||||
0x00006f20 bss = .
|
||||
0x00006f20 edata = .
|
||||
0x00008020 _main_program
|
||||
0x00008024 _dll
|
||||
0x00008028 _dll_load_table
|
||||
0x0000802c _xmain
|
||||
0x00008c40 ___menuet__app_param_area
|
||||
0x00009040 ___crt0_argc
|
||||
0x00009044 ___dos_argv0
|
||||
0x00009048 ___crt0_argv
|
||||
0x0000904c __crt0_startup_flags
|
||||
0x00009050 _environ
|
||||
0x00009094 _errno
|
||||
0x00009138 ___atexit_ptr
|
||||
0x0000913c _keypress_at_exit
|
||||
0x0001ace0 ___libc_read_termios_hook
|
||||
0x0001ace4 ___libc_write_termios_hook
|
||||
0x0001ad28 _end = .
|
||||
0x0001ad28 end = .
|
||||
*(.bss)
|
||||
*(.const)
|
||||
*(.ctor)
|
||||
*(.data)
|
||||
*(.dtor)
|
||||
*(.eh_fram*)
|
||||
*(.fixup)
|
||||
*(.gcc_exc*)
|
||||
*(.gnu.linkonce.d*)
|
||||
*(.gnu.linkonce.r*)
|
||||
*(.gnu.linkonce.t*)
|
||||
*(.gnu.warning)
|
||||
*(.ro*)
|
||||
*(.rodata)
|
||||
*(.rodata.*)
|
||||
*(.text)
|
||||
*fill* 0x00000039 0x7 00
|
||||
*fill* 0x00006444 0xc 00
|
||||
.bss 0x00006f20 0x1000 /dev/env/MENUETDEV/stub/crt0.o
|
||||
.bss 0x00007f20 0x100 dll_list.o
|
||||
.bss 0x00008020 0x820 main.o
|
||||
.bss 0x00008840 0x400 /dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
.bss 0x00008c40 0x400 /dev/env/MENUETDEV/lib/libc.a(param.o)
|
||||
.bss 0x00009040 0x14 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
.bss 0x00009054 0x40 /dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
.bss 0x00009094 0x4 /dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
.bss 0x00009098 0xa0 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.bss 0x00009138 0x8 /dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
.bss 0x00009140 0x400 /dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
.bss 0x00009540 0x10b10 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
.bss 0x0001a050 0xba0 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.bss 0x0001abf0 0x10 /dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
.bss 0x0001ac00 0x10 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
.bss 0x0001ac10 0x10 /dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
.bss 0x0001ac20 0x20 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.bss 0x0001ac40 0x80 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.bss 0x0001acc0 0x20 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
.bss 0x0001ace0 0x8 /dev/env/MENUETDEV/lib/libc.a(hooks.o)
|
||||
.bss 0x0001ace8 0x40 /dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
.comment 0x0001ad28 0x10 kernel.o
|
||||
.comment 0x0001ad38 0x10 dll_list.o
|
||||
.comment 0x0001ad48 0x10 main.o
|
||||
.comment 0x0001ad58 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(symtab.o)
|
||||
.comment 0x0001ad68 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
.comment 0x0001ad78 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o)
|
||||
.comment 0x0001ad88 0x10 /dev/env/MENUETDEV/lib/libmcoff.a(relocate.o)
|
||||
.comment 0x0001ad98 0x10 /dev/env/MENUETDEV/lib/libc.a(param.o)
|
||||
.comment 0x0001ada8 0x10 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
.comment 0x0001adb8 0x10 /dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
.comment 0x0001adc8 0x10 /dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
.comment 0x0001add8 0x10 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.comment 0x0001ade8 0x10 /dev/env/MENUETDEV/lib/libc.a(atexit.o)
|
||||
.comment 0x0001adf8 0x10 /dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
.comment 0x0001ae08 0x10 /dev/env/MENUETDEV/lib/libc.a(getenv.o)
|
||||
.comment 0x0001ae18 0x10 /dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
.comment 0x0001ae28 0x10 /dev/env/MENUETDEV/lib/libc.a(strlen.o)
|
||||
.comment 0x0001ae38 0x10 /dev/env/MENUETDEV/lib/libc.a(strncmp.o)
|
||||
.comment 0x0001ae48 0x10 /dev/env/MENUETDEV/lib/libc.a(memcpy.o)
|
||||
.comment 0x0001ae58 0x10 /dev/env/MENUETDEV/lib/libc.a(strchr.o)
|
||||
.comment 0x0001ae68 0x10 /dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
.comment 0x0001ae78 0x10 /dev/env/MENUETDEV/lib/libc.a(sprintf.o)
|
||||
.comment 0x0001ae88 0x10 /dev/env/MENUETDEV/lib/libc.a(vsprintf.o)
|
||||
.comment 0x0001ae98 0x10 /dev/env/MENUETDEV/lib/libc.a(fopen.o)
|
||||
.comment 0x0001aea8 0x10 /dev/env/MENUETDEV/lib/libc.a(fseek.o)
|
||||
.comment 0x0001aeb8 0x10 /dev/env/MENUETDEV/lib/libc.a(ftell.o)
|
||||
.comment 0x0001aec8 0x10 /dev/env/MENUETDEV/lib/libc.a(fread.o)
|
||||
.comment 0x0001aed8 0x10 /dev/env/MENUETDEV/lib/libc.a(fclose.o)
|
||||
.comment 0x0001aee8 0x10 /dev/env/MENUETDEV/lib/libc.a(printf.o)
|
||||
.comment 0x0001aef8 0x10 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
.comment 0x0001af08 0x10 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.comment 0x0001af18 0x10 /dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
.comment 0x0001af28 0x10 /dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
.comment 0x0001af38 0x10 /dev/env/MENUETDEV/lib/libc.a(ct_flags.o)
|
||||
.comment 0x0001af48 0x10 /dev/env/MENUETDEV/lib/libc.a(_open.o)
|
||||
.comment 0x0001af58 0x10 /dev/env/MENUETDEV/lib/libc.a(lseek.o)
|
||||
.comment 0x0001af68 0x10 /dev/env/MENUETDEV/lib/libc.a(_read.o)
|
||||
.comment 0x0001af78 0x10 /dev/env/MENUETDEV/lib/libc.a(_close.o)
|
||||
.comment 0x0001af88 0x10 /dev/env/MENUETDEV/lib/libc.a(c1pglob.o)
|
||||
.comment 0x0001af98 0x10 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
.comment 0x0001afa8 0x10 /dev/env/MENUETDEV/lib/libc.a(allocfil.o)
|
||||
.comment 0x0001afb8 0x10 /dev/env/MENUETDEV/lib/libc.a(fmode.o)
|
||||
.comment 0x0001afc8 0x10 /dev/env/MENUETDEV/lib/libc.a(open.o)
|
||||
.comment 0x0001afd8 0x10 /dev/env/MENUETDEV/lib/libc.a(fflush.o)
|
||||
.comment 0x0001afe8 0x10 /dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
.comment 0x0001aff8 0x10 /dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
.comment 0x0001b008 0x10 /dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
.comment 0x0001b018 0x10 /dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
.comment 0x0001b028 0x10 /dev/env/MENUETDEV/lib/libc.a(filbuf.o)
|
||||
.comment 0x0001b038 0x10 /dev/env/MENUETDEV/lib/libc.a(fgetc.o)
|
||||
.comment 0x0001b048 0x10 /dev/env/MENUETDEV/lib/libc.a(remove.o)
|
||||
.comment 0x0001b058 0x10 /dev/env/MENUETDEV/lib/libc.a(close.o)
|
||||
.comment 0x0001b068 0x10 /dev/env/MENUETDEV/lib/libc.a(strcpy.o)
|
||||
.comment 0x0001b078 0x10 /dev/env/MENUETDEV/lib/libc.a(fixpath.o)
|
||||
.comment 0x0001b088 0x10 /dev/env/MENUETDEV/lib/libc.a(strupr.o)
|
||||
.comment 0x0001b098 0x10 /dev/env/MENUETDEV/lib/libc.a(strlwr.o)
|
||||
.comment 0x0001b0a8 0x10 /dev/env/MENUETDEV/lib/libc.a(strcmp.o)
|
||||
.comment 0x0001b0b8 0x10 /dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
.comment 0x0001b0c8 0x10 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.comment 0x0001b0d8 0x10 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.comment 0x0001b0e8 0x10 /dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
.comment 0x0001b0f8 0x10 /dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
.comment 0x0001b108 0x10 /dev/env/MENUETDEV/lib/libc.a(putc.o)
|
||||
.comment 0x0001b118 0x10 /dev/env/MENUETDEV/lib/libc.a(memchr.o)
|
||||
.comment 0x0001b128 0x10 /dev/env/MENUETDEV/lib/libc.a(flsbuf.o)
|
||||
.comment 0x0001b138 0x10 /dev/env/MENUETDEV/lib/libc.a(frlist.o)
|
||||
.comment 0x0001b148 0x10 /dev/env/MENUETDEV/lib/libc.a(_write.o)
|
||||
.comment 0x0001b158 0x10 /dev/env/MENUETDEV/lib/libc.a(_creat.o)
|
||||
.comment 0x0001b168 0x10 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
.comment 0x0001b178 0x10 /dev/env/MENUETDEV/lib/libc.a(read.o)
|
||||
.comment 0x0001b188 0x10 /dev/env/MENUETDEV/lib/libc.a(hooks.o)
|
||||
.comment 0x0001b198 0x10 /dev/env/MENUETDEV/lib/libc.a(ct_upper.o)
|
||||
.comment 0x0001b1a8 0x10 /dev/env/MENUETDEV/lib/libc.a(ct_lower.o)
|
||||
.comment 0x0001b1b8 0x10 /dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
.comment 0x0001b1c8 0x10 /dev/env/MENUETDEV/lib/libc.a(findfirs.o)
|
||||
.comment 0x0001b1d8 0x10 /dev/env/MENUETDEV/lib/libc.a(findnext.o)
|
||||
.comment 0x0001b1e8 0x10 /dev/env/MENUETDEV/lib/libc.a(strncpy.o)
|
||||
.comment 0x0001b1f8 0x10 /dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
.comment 0x0001b208 0x10 /dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
.comment 0x0001b218 0x10 /dev/env/MENUETDEV/lib/libc.a(fwalk.o)
|
||||
.comment 0x0001b228 0x10 /dev/env/MENUETDEV/lib/libc.a(fputc.o)
|
||||
.data 0x00006450 0xc0 kernel.o
|
||||
.data 0x00006510 0x10 dll_list.o
|
||||
.data 0x00006520 0x140 main.o
|
||||
.data 0x00006660 0x10 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
.data 0x00006670 0x20 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.data 0x00006690 0x20 /dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
.data 0x000066b0 0x20 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.data 0x000066d0 0x10 /dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
.data 0x000066e0 0x220 /dev/env/MENUETDEV/lib/libc.a(ct_flags.o)
|
||||
.data 0x00006900 0x1c0 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
.data 0x00006ac0 0x10 /dev/env/MENUETDEV/lib/libc.a(fmode.o)
|
||||
.data 0x00006ad0 0x20 /dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
.data 0x00006af0 0x40 /dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
.data 0x00006b30 0x40 /dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
.data 0x00006b70 0x40 /dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
.data 0x00006bb0 0x10 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.data 0x00006bc0 0x20 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.data 0x00006be0 0x10 /dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
.data 0x00006bf0 0x60 /dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
.data 0x00006c50 0x60 /dev/env/MENUETDEV/lib/libc.a(frlist.o)
|
||||
.data 0x00006cb0 0x10 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
.data 0x00006cc0 0x120 /dev/env/MENUETDEV/lib/libc.a(ct_upper.o)
|
||||
.data 0x00006de0 0x120 /dev/env/MENUETDEV/lib/libc.a(ct_lower.o)
|
||||
.data 0x00006f00 0x10 /dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
.data 0x00006f10 0x10 /dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
.text 0x00000000 0x39 /dev/env/MENUETDEV/stub/crt0.o
|
||||
.text 0x00000040 0x70 kernel.o
|
||||
.text 0x000000b0 0x200 dll_list.o
|
||||
.text 0x000002b0 0x260 main.o
|
||||
.text 0x00000510 0xf0 /dev/env/MENUETDEV/lib/libmcoff.a(symtab.o)
|
||||
.text 0x00000600 0xa0 /dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
.text 0x000006a0 0x3e0 /dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o)
|
||||
.text 0x00000a80 0x2a0 /dev/env/MENUETDEV/lib/libmcoff.a(relocate.o)
|
||||
.text 0x00000d20 0x60 /dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
.text 0x00000d80 0x130 /dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
.text 0x00000eb0 0x10 /dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
.text 0x00000ec0 0x3f0 /dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
.text 0x000012b0 0x40 /dev/env/MENUETDEV/lib/libc.a(atexit.o)
|
||||
.text 0x000012f0 0x30 /dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
.text 0x00001320 0x20 /dev/env/MENUETDEV/lib/libc.a(getenv.o)
|
||||
.text 0x00001340 0x7d0 /dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
.text 0x00001b10 0x20 /dev/env/MENUETDEV/lib/libc.a(strlen.o)
|
||||
.text 0x00001b30 0x30 /dev/env/MENUETDEV/lib/libc.a(strncmp.o)
|
||||
.text 0x00001b60 0x40 /dev/env/MENUETDEV/lib/libc.a(memset.o)
|
||||
.text 0x00001ba0 0x30 /dev/env/MENUETDEV/lib/libc.a(memcpy.o)
|
||||
.text 0x00001bd0 0x20 /dev/env/MENUETDEV/lib/libc.a(strchr.o)
|
||||
.text 0x00001bf0 0xb0 /dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
.text 0x00001ca0 0x40 /dev/env/MENUETDEV/lib/libc.a(sprintf.o)
|
||||
.text 0x00001ce0 0x40 /dev/env/MENUETDEV/lib/libc.a(vsprintf.o)
|
||||
.text 0x00001d20 0x170 /dev/env/MENUETDEV/lib/libc.a(fopen.o)
|
||||
.text 0x00001e90 0xe0 /dev/env/MENUETDEV/lib/libc.a(fseek.o)
|
||||
.text 0x00001f70 0xf0 /dev/env/MENUETDEV/lib/libc.a(ftell.o)
|
||||
.text 0x00002060 0xf0 /dev/env/MENUETDEV/lib/libc.a(fread.o)
|
||||
.text 0x00002150 0xc0 /dev/env/MENUETDEV/lib/libc.a(fclose.o)
|
||||
.text 0x00002210 0x30 /dev/env/MENUETDEV/lib/libc.a(printf.o)
|
||||
.text 0x00002240 0x970 /dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
.text 0x00002bb0 0x390 /dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
.text 0x00002f40 0x40 /dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
.text 0x00002f80 0x20 /dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
.text 0x00002fa0 0x40 /dev/env/MENUETDEV/lib/libc.a(_open.o)
|
||||
.text 0x00002fe0 0x20 /dev/env/MENUETDEV/lib/libc.a(lseek.o)
|
||||
.text 0x00003000 0x50 /dev/env/MENUETDEV/lib/libc.a(_read.o)
|
||||
.text 0x00003050 0x70 /dev/env/MENUETDEV/lib/libc.a(_close.o)
|
||||
.text 0x000030c0 0x30 /dev/env/MENUETDEV/lib/libc.a(c1pglob.o)
|
||||
.text 0x000030f0 0x1770 /dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
.text 0x00004860 0xb0 /dev/env/MENUETDEV/lib/libc.a(allocfil.o)
|
||||
.text 0x00004910 0xb0 /dev/env/MENUETDEV/lib/libc.a(open.o)
|
||||
.text 0x000049c0 0xc0 /dev/env/MENUETDEV/lib/libc.a(fflush.o)
|
||||
.text 0x00004a80 0x20 /dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
.text 0x00004aa0 0x10 /dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
.text 0x00004ab0 0x10 /dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
.text 0x00004ac0 0x10 /dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
.text 0x00004ad0 0x1a0 /dev/env/MENUETDEV/lib/libc.a(filbuf.o)
|
||||
.text 0x00004c70 0xf0 /dev/env/MENUETDEV/lib/libc.a(fgetc.o)
|
||||
.text 0x00004d60 0x10 /dev/env/MENUETDEV/lib/libc.a(remove.o)
|
||||
.text 0x00004d70 0x20 /dev/env/MENUETDEV/lib/libc.a(close.o)
|
||||
.text 0x00004d90 0x20 /dev/env/MENUETDEV/lib/libc.a(strcpy.o)
|
||||
.text 0x00004db0 0x80 /dev/env/MENUETDEV/lib/libc.a(fixpath.o)
|
||||
.text 0x00004e30 0x30 /dev/env/MENUETDEV/lib/libc.a(strupr.o)
|
||||
.text 0x00004e60 0x30 /dev/env/MENUETDEV/lib/libc.a(strlwr.o)
|
||||
.text 0x00004e90 0x20 /dev/env/MENUETDEV/lib/libc.a(strcmp.o)
|
||||
.text 0x00004eb0 0x90 /dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
.text 0x00004f40 0x110 /dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
.text 0x00005050 0x8a0 /dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
.text 0x000058f0 0x50 /dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
.text 0x00005940 0x10 /dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
.text 0x00005950 0x20 /dev/env/MENUETDEV/lib/libc.a(putc.o)
|
||||
.text 0x00005970 0x30 /dev/env/MENUETDEV/lib/libc.a(memchr.o)
|
||||
.text 0x000059a0 0x180 /dev/env/MENUETDEV/lib/libc.a(flsbuf.o)
|
||||
.text 0x00005b20 0x30 /dev/env/MENUETDEV/lib/libc.a(modfl.o)
|
||||
.text 0x00005b50 0x50 /dev/env/MENUETDEV/lib/libc.a(_write.o)
|
||||
.text 0x00005ba0 0x20 /dev/env/MENUETDEV/lib/libc.a(_creat.o)
|
||||
.text 0x00005bc0 0x20 /dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
.text 0x00005be0 0x20 /dev/env/MENUETDEV/lib/libc.a(read.o)
|
||||
.text 0x00005c00 0x40 /dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
.text 0x00005c40 0x10 /dev/env/MENUETDEV/lib/libc.a(findfirs.o)
|
||||
.text 0x00005c50 0x10 /dev/env/MENUETDEV/lib/libc.a(findnext.o)
|
||||
.text 0x00005c60 0x20 /dev/env/MENUETDEV/lib/libc.a(strncpy.o)
|
||||
.text 0x00005c80 0x340 /dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
.text 0x00005fc0 0x340 /dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
.text 0x00006300 0x50 /dev/env/MENUETDEV/lib/libc.a(fwalk.o)
|
||||
.text 0x00006350 0xf0 /dev/env/MENUETDEV/lib/libc.a(fputc.o)
|
||||
*default* 0x00000000 0xffffffff
|
||||
.bss 0x00006f20 0x13e08
|
||||
.comment 0x0001ad28 0x510
|
||||
.data 0x00006440 0xae0
|
||||
.text 0x00000000 0x6440
|
||||
/dev/env/MENUETDEV/lib/libc.a(_close.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_creat.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_main.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_open.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_read.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(_write.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(allocfil.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(atexit.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(brk.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(c1pglob.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(close.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt0.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(crt1.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ct_flags.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ct_lower.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ct_upper.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(curdir.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(debug.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(doprnt.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosemu.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(dosio.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(env.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(errno.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(exit.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fclose.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fexistp.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fflush.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fgetc.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(filbuf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(findfirs.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(findnext.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fixpath.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(flsbuf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fmode.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fnmatch.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fopen.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fputc.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fread.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(frlist.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fse_open.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fseek.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fsext.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(ftell.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(fwalk.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(getenv.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(glob.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(hooks.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(lconv.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(lseek.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(malloc.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(memchr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(memcpy.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(memset.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(modfl.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(open.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(param.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(printf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(putc.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(qsort.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(read.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(remove.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(sprintf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stderr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdin.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdiohk.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(stdout.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strchr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strcmp.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strcpy.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strlen.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strlwr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strncmp.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strncpy.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(strupr.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(vsprintf.o)
|
||||
/dev/env/MENUETDEV/lib/libc.a(write.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(debug.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(loadcoff.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(relocate.o)
|
||||
/dev/env/MENUETDEV/lib/libmcoff.a(symtab.o)
|
||||
Archive member included because of file (symbol)
|
||||
Linker script and memory map
|
||||
LOAD /dev/env/MENUETDEV/lib/libc.a
|
||||
LOAD /dev/env/MENUETDEV/lib/libmcoff.a
|
||||
LOAD /dev/env/MENUETDEV/stub/crt0.o
|
||||
LOAD dll_list.o
|
||||
LOAD kernel.o
|
||||
LOAD main.o
|
||||
Memory Configuration
|
||||
Name Origin Length Attributes
|
||||
OUTPUT(ld-dll binary)
|
@@ -1,23 +0,0 @@
|
||||
#ifndef __LOADER_H
|
||||
#define __LOADER_H
|
||||
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include<errno.h>
|
||||
#include<mcoff/mcoff.h>
|
||||
|
||||
unsigned long kexport_lookup(char * name);
|
||||
|
||||
typedef struct {
|
||||
coffobj_t * obj;
|
||||
void (* entry_point)(void);
|
||||
} dll_t;
|
||||
|
||||
SYMENT * dl_find_dll_symbol(char * name,dll_t ** xdll);
|
||||
unsigned long dl_get_ref(char * symname);
|
||||
void init_dll(void);
|
||||
dll_t * load_dll(char * name);
|
||||
int relocate_dlls(void);
|
||||
|
||||
#endif
|
@@ -1,87 +0,0 @@
|
||||
#include"loader.h"
|
||||
|
||||
extern char __menuet__app_param_area[];
|
||||
|
||||
static char program_name[1024];
|
||||
static char * argp;
|
||||
|
||||
static void extract_base_program_name(void)
|
||||
{
|
||||
char * p;
|
||||
int i;
|
||||
p=strchr(__menuet__app_param_area,' ');
|
||||
if(!p)
|
||||
{
|
||||
i=strlen(__menuet__app_param_area);
|
||||
} else {
|
||||
i=((long)p)-((long)__menuet__app_param_area);
|
||||
if(!i)
|
||||
{
|
||||
__libclog_printf("No program name supplied\n");
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
memcpy(program_name,__menuet__app_param_area,i);
|
||||
program_name[i]='\0';
|
||||
argp=&program_name[i+1];
|
||||
}
|
||||
|
||||
dll_t * main_program,*dll;
|
||||
char ** dll_load_table;
|
||||
|
||||
static char tmp[1024];
|
||||
|
||||
dll_t * try_load_dll(char * dllname)
|
||||
{
|
||||
if(dllname[0]=='/') return load_dll(dllname);
|
||||
sprintf(tmp,"/RD/1/%s",dllname);
|
||||
if(!(dll=load_dll(tmp))) return;
|
||||
sprintf(tmp,"/HD/1/MENUETOS/%s",dllname);
|
||||
if(!(dll=load_dll(tmp))) return;
|
||||
sprintf(tmp,"/HD/1/MENUETOS/DLL/%s",dllname);
|
||||
if(!(dll=load_dll(tmp))) return;
|
||||
return load_dll(dllname);
|
||||
}
|
||||
|
||||
int (* xmain)(void);
|
||||
|
||||
void main(void)
|
||||
{
|
||||
__libclog_printf("Supplied parameters:\n");
|
||||
__libclog_printf("|%s|\n",__menuet__app_param_area);
|
||||
extract_base_program_name();
|
||||
init_dll();
|
||||
main_program=load_dll(program_name);
|
||||
if(!main_program)
|
||||
{
|
||||
__libclog_printf("Unable to open main program\n");
|
||||
exit(-1);
|
||||
}
|
||||
dll_load_table=(char **)mcoff_get_ref(main_program->obj,"__required_dll");
|
||||
if(dll_load_table)
|
||||
{
|
||||
int i;
|
||||
for(i=0;dll_load_table[i];i++)
|
||||
{
|
||||
if(!(dll=try_load_dll(dll_load_table[i])))
|
||||
{
|
||||
__libclog_printf("Unable to load dll '%s'\n",dll_load_table[i]);
|
||||
exit(-1);
|
||||
}
|
||||
xmain=(void *)mcoff_get_ref(dll->obj,"_DllMain");
|
||||
if(xmain) xmain();
|
||||
}
|
||||
}
|
||||
if(relocate_dlls()!=0)
|
||||
{
|
||||
__libclog_printf("Unable to relocate dynamic objects\n");
|
||||
exit(-1);
|
||||
}
|
||||
xmain=(void *)mcoff_get_ref(main_program->obj,"_app_main");
|
||||
if(!xmain)
|
||||
{
|
||||
__libclog_printf("Unable to find _app_main symbol in main program");
|
||||
exit(-1);
|
||||
}
|
||||
exit(xmain());
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
OUTFILE = ld-dll
|
||||
OBJS = kernel.o dll_list.o
|
||||
CFLAGS = -O2 -fomit-frame-pointer
|
||||
LIBS = -lmcoff
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,9 +0,0 @@
|
||||
typedef struct {
|
||||
char dll_name[1];
|
||||
} dll_req_entry_t;
|
||||
|
||||
typedef struct {
|
||||
dll_req_entry_t req_list[0];
|
||||
} dll_req_t;
|
||||
|
||||
#define DLL_REQ_LIST_NAME "__DLL_REQUIRE_LIST__"
|
@@ -1,119 +0,0 @@
|
||||
#include"ld-dll.h"
|
||||
|
||||
#define MAX_DLL 32
|
||||
|
||||
static dll_t dll_list[MAX_DLL];
|
||||
|
||||
SYMENT * dl_find_dll_symbol(char * name,dll_t ** xdll)
|
||||
{
|
||||
dll_t * dll;
|
||||
SYMENT * __ret;
|
||||
int i;
|
||||
for(dll=dll_list+0,i=0;i<MAX_DLL;i++,dll++)
|
||||
{
|
||||
if(dll->obj)
|
||||
{
|
||||
__ret=find_coff_symbol(dll->obj,name);
|
||||
if(__ret)
|
||||
{
|
||||
*xdll=dll;
|
||||
return __ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
*xdll=(dll_t *)NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long dl_get_ref(char * symname)
|
||||
{
|
||||
dll_t * dll;
|
||||
SYMENT * sym=dl_find_dll_symbol(symname,&dll);
|
||||
if(!sym && !dll) return 0;
|
||||
return sym->e_value+dll->obj->co_sections[sym->e_scnum-1].s_scnptr+dll->obj->co_loadaddr;
|
||||
}
|
||||
|
||||
void init_dll(void)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<MAX_DLL;i++)
|
||||
dll_list[i].obj=NULL;
|
||||
}
|
||||
|
||||
dll_t * load_dll(char * name)
|
||||
{
|
||||
dll_t * p;
|
||||
int i;
|
||||
dprintf("Load dll '%s'\n",name);
|
||||
for(i=0,p=dll_list+0;i<MAX_DLL;i++,p++)
|
||||
{
|
||||
if(!p->obj)
|
||||
{
|
||||
p->obj=mcoff_load_file(name);
|
||||
p->d_name=strdup(name);
|
||||
if(!p->obj) return NULL;
|
||||
return p;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dll_t * find_dll(char * name)
|
||||
{
|
||||
dll_t * p;
|
||||
int i,j=strlen(name);
|
||||
for(i=0,p=dll_list+0;i<MAX_DLL;i++,p++)
|
||||
{
|
||||
if(p->obj)
|
||||
{
|
||||
if(strlen(p->d_name)==j &&
|
||||
!strncmp(name,p->d_name,j)) return p;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int dll_symlookupfn(coffobj_t * obj,unsigned long * sym_val,
|
||||
unsigned long * sym_sect,int index)
|
||||
{
|
||||
SYMENT * symtab;
|
||||
unsigned long lookup;
|
||||
char xname[9];
|
||||
char * symnamep;
|
||||
symtab=obj->co_symtab+index;
|
||||
*sym_sect=(unsigned long)symtab->e_scnum;
|
||||
if(symtab->e_scnum>0)
|
||||
{
|
||||
*sym_val=symtab->e_value;
|
||||
return 0;
|
||||
}
|
||||
if(symtab->e.e.e_zeroes==0)
|
||||
{
|
||||
symnamep=(char *)(((long)obj->co_strtab)+symtab->e.e.e_offset);
|
||||
} else {
|
||||
symnamep=(char *)symtab->e.e_name;
|
||||
memset(xname,0,9);
|
||||
memcpy(xname,symnamep,8);
|
||||
symnamep=xname;
|
||||
}
|
||||
lookup=kexport_lookup(symnamep);
|
||||
if(lookup)
|
||||
{
|
||||
*sym_val=lookup;
|
||||
return 0;
|
||||
}
|
||||
lookup=dl_get_ref(symnamep);
|
||||
if(!lookup) return -1;
|
||||
*sym_val=lookup;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int relocate_dlls(void)
|
||||
{
|
||||
int i;
|
||||
dll_t * dll;
|
||||
for(i=0,dll=dll_list+0;i<MAX_DLL;i++,dll++)
|
||||
if(dll->obj)
|
||||
if(relocate_coff_file(dll->obj,dll_symlookupfn)) return -1;
|
||||
return 0;
|
||||
}
|
@@ -1,37 +0,0 @@
|
||||
#include"ld-dll.h"
|
||||
|
||||
#define EX(x) \
|
||||
{ "_"#x , (unsigned long)&x }
|
||||
|
||||
extern void * sbrk(int);
|
||||
|
||||
extern void _exit(int);
|
||||
|
||||
static struct {
|
||||
char * name;
|
||||
unsigned long ptr;
|
||||
} kextable[]={
|
||||
EX(sbrk),
|
||||
EX(errno),
|
||||
EX(malloc),
|
||||
EX(free),
|
||||
EX(realloc),
|
||||
EX(atexit),
|
||||
EX(exit),
|
||||
EX(getenv),
|
||||
EX(_exit),
|
||||
};
|
||||
|
||||
#define NR_KEX (sizeof(kextable)/sizeof(kextable[0]))
|
||||
|
||||
unsigned long kexport_lookup(char * name)
|
||||
{
|
||||
int i,j;
|
||||
j=strlen(name);
|
||||
for(i=0;i<NR_KEX;i++)
|
||||
{
|
||||
if(strlen(kextable[i].name)==j &&
|
||||
!strncmp(kextable[i].name,name,j)) return kextable[i].ptr;
|
||||
}
|
||||
return 0;
|
||||
}
|
@@ -1,25 +0,0 @@
|
||||
#ifndef __LD_DLL_H
|
||||
#define __LD_DLL_H
|
||||
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include<errno.h>
|
||||
#include<mcoff/mcoff.h>
|
||||
|
||||
unsigned long kexport_lookup(char * name);
|
||||
|
||||
typedef struct {
|
||||
coffobj_t * obj;
|
||||
void (* entry_point)(void);
|
||||
char * d_name;
|
||||
} dll_t;
|
||||
|
||||
SYMENT * dl_find_dll_symbol(char * name,dll_t ** xdll);
|
||||
unsigned long dl_get_ref(char * symname);
|
||||
void init_dll(void);
|
||||
dll_t * load_dll(char * name);
|
||||
int relocate_dlls(void);
|
||||
dll_t * find_dll(char * name);
|
||||
|
||||
#endif
|
@@ -1,54 +0,0 @@
|
||||
#include"ld-dll.h"
|
||||
#include"dll_desc.h"
|
||||
|
||||
dll_t * main_program;
|
||||
|
||||
static char * std_dll_paths[]={
|
||||
"/rd/1/",
|
||||
"/hd/1/menuetos/",
|
||||
"/hd/1/menuetos/dll/",
|
||||
"./",
|
||||
NULL
|
||||
};
|
||||
|
||||
static char dll_name_buf[1024];
|
||||
|
||||
dll_t * do_load_dll(
|
||||
void main(void)
|
||||
{
|
||||
init_dll();
|
||||
main_program=load_dll("/rd/1/test.app");
|
||||
if(!main_program)
|
||||
{
|
||||
dprintf("Main load failed\n");
|
||||
exit(-1);
|
||||
}
|
||||
{ dll_t * tmp;
|
||||
if(!(tmp=load_dll("/rd/1/vcrt.dll")))
|
||||
{
|
||||
dprintf("Unable to load vcrt.dll\n");
|
||||
exit(-1);
|
||||
}
|
||||
dprintf("Looking for entry point\n");
|
||||
tmp->entry_point=(void *)mcoff_get_ref(tmp->obj,"_DllMain");
|
||||
if(tmp->entry_point) tmp->entry_point();
|
||||
if(!(tmp=load_dll("MOSKRNL.SO")))
|
||||
if(!(tmp=load_dll("/RD/1/MOSKRNL.SO")))
|
||||
if(!(tmp=load_dll("/HD/1/MENUETOS/MOSKRNL.SO")))
|
||||
{
|
||||
dprintf("Unable to load moskrnl.so\n");
|
||||
exit(-1);
|
||||
}
|
||||
tmp->entry_point=(void *)mcoff_get_ref(tmp->obj,"_DllMain");
|
||||
if(tmp->entry_point) tmp->entry_point();
|
||||
}
|
||||
relocate_dlls();
|
||||
main_program->entry_point=(void *)mcoff_get_ref(main_program->obj,"_main");
|
||||
if(!main_program->entry_point)
|
||||
{
|
||||
dprintf("Failed to find main program entry point\n");
|
||||
exit(-1);
|
||||
}
|
||||
main_program->entry_point();
|
||||
exit(0);
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
OUTFILE = mview
|
||||
OBJS = main.o
|
||||
LIBS = -lmgfx -ljpeg
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,45 +0,0 @@
|
||||
#include<menuet/os.h>
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include<jpeglib.h>
|
||||
#include"libmgfx.h"
|
||||
|
||||
static char * Title="MenuetMultiview";
|
||||
|
||||
mgfx_image_t * img;
|
||||
|
||||
void paint(void)
|
||||
{
|
||||
__menuet__window_redraw(1);
|
||||
__menuet__define_window(100,100,400,300,0x03000080,0x800000FF,0x000080);
|
||||
__menuet__write_text(3,3,0xFFFFFF,Title,strlen(Title));
|
||||
if(img)
|
||||
paint_image(10,30,img);
|
||||
__menuet__window_redraw(2);
|
||||
}
|
||||
|
||||
int event_loop(void)
|
||||
{
|
||||
int i;
|
||||
i=__menuet__wait_for_event();
|
||||
switch(i)
|
||||
{
|
||||
case 1:
|
||||
paint(); return 0;
|
||||
case 2:
|
||||
return __menuet__getkey();
|
||||
case 3:
|
||||
if(__menuet__get_button_id()==1) exit(0); return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
img=NULL;
|
||||
init_mgfx_library();
|
||||
paint();
|
||||
load_image("/rd/1/test.jpg",&img);
|
||||
paint_image(10,30,img);
|
||||
for(;;) event_loop();
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 12 KiB |
@@ -1,5 +0,0 @@
|
||||
OUTFILE = plaympg
|
||||
OBJS = main.o
|
||||
LIBS = -lmpeg
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,139 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<menuet/os.h>
|
||||
#include<mpeg.h>
|
||||
|
||||
ImageDesc I;
|
||||
FILE * fmpeg=NULL;
|
||||
|
||||
char * vblit_buffer=NULL;
|
||||
char * bitmap_buffer=NULL;
|
||||
int line_width;
|
||||
|
||||
int blit_x_offs=0;
|
||||
int blit_y_offs=0;
|
||||
|
||||
int win_size_x=0;
|
||||
int win_size_y=0;
|
||||
|
||||
unsigned long inter_frame_delay;
|
||||
|
||||
char player_window_title[256];
|
||||
char loaded_file_name[256];
|
||||
|
||||
enum {
|
||||
st_STOP=0,st_PLAYING=1,st_PAUSE=2,st_NOMOVIE=3
|
||||
} play_state=st_NOMOVIE;
|
||||
|
||||
#define __convert_line(from,to) \
|
||||
{ \
|
||||
int d0,d1,d2; \
|
||||
__asm__ __volatile__( \
|
||||
"1:\n\t" \
|
||||
"lodsw\n\t" \
|
||||
"stosw\n\t" \
|
||||
"lodsw\n\t" \
|
||||
"stosb\n\t" \
|
||||
"loop 1b" \
|
||||
:"=&c"(d0),"=&S"(d1),"=&D"(d2) \
|
||||
:"0"(line_width),"1"(from),"2"(to)); \
|
||||
}
|
||||
|
||||
void convert_output_image(void)
|
||||
{
|
||||
char * src=bitmap_buffer;
|
||||
char * dst=vblit_buffer;
|
||||
int i;
|
||||
for(i=0;i<I.Height;i++)
|
||||
{
|
||||
__convert_line(src,dst);
|
||||
src+=line_width;
|
||||
dst+=line_width;
|
||||
}
|
||||
}
|
||||
|
||||
int reload_mpg(const char * fname)
|
||||
{
|
||||
if(fmpeg) fclose(fmpeg);
|
||||
fmpeg=fopen(fname,"rb");
|
||||
if(!fmpeg) return -1;
|
||||
SetMPEGOption(MPEG_DITHER,FULL_COLOR_DITHER);
|
||||
OpenMPEG(fmpeg,&I);
|
||||
line_width=I.Width;
|
||||
vblit_buffer=(char *)realloc(vblit_buffer,I.Width*I.Height*3);
|
||||
bitmap_buffer=(char *)realloc(bitmap_buffer,I.Width*I.Height*4);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void close_mpg(void)
|
||||
{
|
||||
if(fmpeg) fclose(fmpeg);
|
||||
if(vblit_buffer) free(vblit_buffer);
|
||||
if(bitmap_buffer) free(bitmap_buffer);
|
||||
vblit_buffer=NULL;
|
||||
bitmap_buffer=NULL;
|
||||
fmpeg=NULL;
|
||||
}
|
||||
|
||||
void rewind_mpg(void)
|
||||
{
|
||||
RewindMPEG(fmpeg,&I);
|
||||
}
|
||||
|
||||
int play_mpg_frame(void)
|
||||
{
|
||||
if(!GetMPEGFrame(bitmap_buffer)) return -1;
|
||||
convert_output_image();
|
||||
__menuet__putimage(blit_x_offs,blit_y_offs,I.Width,I.Height,vblit_buffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void set_player_wnd_title(char * fname)
|
||||
{
|
||||
int i;
|
||||
if(!fname || play_state==st_NOMOVIE)
|
||||
fname="No movie loaded";
|
||||
i=sprintf(player_window_title,"Menuet MPEG player - %s",fname);
|
||||
__menuet__write_text(4,4,0xffffff,player_window_title,i);
|
||||
}
|
||||
|
||||
static char * player_buttons1[]={" || "," > "," ## "," /\\ "," \\/ "};
|
||||
static char * player_buttons2[]={"pause","play ","stop ","eject","load "};
|
||||
|
||||
#define BUTT_SIZE_X (5*8)
|
||||
#define BUTT_SIZE_Y (2*12)
|
||||
|
||||
void paint_player_buttons(void)
|
||||
{
|
||||
int xpos,ypos,i;
|
||||
xpos=5;
|
||||
ypos=20;
|
||||
for(i=0;i<5;i++)
|
||||
{
|
||||
__menuet__make_button(xpos,ypos,BUTT_SIZE_X,BUTT_SIZE_Y,i+2,0x40000000);
|
||||
}
|
||||
}
|
||||
|
||||
void paint_player_window(void)
|
||||
{
|
||||
__menuet__window_redraw(1);
|
||||
if(play_state==st_NOMOVIE)
|
||||
{
|
||||
win_size_x=40*8;
|
||||
win_size_y=200;
|
||||
} else {
|
||||
win_size_x=max(40*8,I.Width+20);
|
||||
win_size_y=max(200,I.Height+50);
|
||||
}
|
||||
__menuet__define_window(100,100,win_size_x,win_size_y,0x03000080,
|
||||
0x800000FF,0x000080);
|
||||
set_player_wnd_title(loaded_file_name);
|
||||
if(play_state!=st_NOMOVIE)
|
||||
{
|
||||
blit_x_offs=10;
|
||||
blit_y_offs=40;
|
||||
__menuet__putimage(blit_x_offs,blit_y_offs,I.Width,I.Height,vblit_buffer);
|
||||
}
|
||||
paint_player_buttons();
|
||||
__menuet__window_redraw(2);
|
||||
}
|
@@ -1,4 +0,0 @@
|
||||
OUTFILE = xtest
|
||||
OBJS = test.o
|
||||
|
||||
include $(MENUETDEV)/makefiles/Makefile_for_program
|
@@ -1,33 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
|
||||
char * xbuf;
|
||||
unsigned long sz;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
FILE * fp;
|
||||
chdir("/hd/1/menuetos/doom");
|
||||
__libclog_printf("Opening file ...");
|
||||
fp=fopen("doom1.wad","rb");
|
||||
if(!fp)
|
||||
{
|
||||
__libclog_printf("failed\n");
|
||||
return 1;
|
||||
}
|
||||
__libclog_printf("OK\n");
|
||||
fseek(fp,0,SEEK_END);
|
||||
sz=ftell(fp);
|
||||
fseek(fp,0,SEEK_SET);
|
||||
xbuf=malloc(sz);
|
||||
if(!xbuf)
|
||||
{
|
||||
__libclog_printf("Unable to malloc %u bytes\n",sz);
|
||||
return 1;
|
||||
}
|
||||
__libclog_printf("Reading ...");
|
||||
fread(xbuf,1,sz,fp);
|
||||
__libclog_printf("done\n");
|
||||
fclose(fp);
|
||||
return 0;
|
||||
}
|
85
programs/develop/libraries/menuetlibc/src/libc/Tupfile.lua
Normal file
85
programs/develop/libraries/menuetlibc/src/libc/Tupfile.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
if tup.getconfig("NO_GCC") ~= "" then return end
|
||||
FOLDERS = {
|
||||
"ansi/assert",
|
||||
"ansi/ctype",
|
||||
"ansi/errno",
|
||||
"ansi/locale",
|
||||
"ansi/math",
|
||||
"ansi/setjmp",
|
||||
"ansi/stdio",
|
||||
"ansi/stdlib",
|
||||
"ansi/string",
|
||||
"ansi/time",
|
||||
"ansif",
|
||||
"compat/bsd",
|
||||
"compat/io",
|
||||
"compat/math",
|
||||
"compat/mman",
|
||||
"compat/mntent",
|
||||
"compat/search",
|
||||
"compat/signal",
|
||||
"compat/stdio",
|
||||
"compat/stdlib",
|
||||
"compat/string",
|
||||
"compat/sys/resource",
|
||||
"compat/sys/stat",
|
||||
"compat/sys/vfs",
|
||||
"compat/termios",
|
||||
"compat/time",
|
||||
"compat/unistd",
|
||||
"compat/v1",
|
||||
"crt0",
|
||||
"dos/compat",
|
||||
"dos/dir",
|
||||
"dos/dos",
|
||||
"dos/dos_emu",
|
||||
"dos/errno",
|
||||
"dos/io",
|
||||
"dos/process",
|
||||
"dos/sys/timeb",
|
||||
"fsext",
|
||||
"menuetos",
|
||||
"net",
|
||||
"pc_hw/cpu",
|
||||
"pc_hw/endian",
|
||||
"pc_hw/farptr",
|
||||
"pc_hw/fpu",
|
||||
"pc_hw/hwint",
|
||||
"pc_hw/kb",
|
||||
"pc_hw/mem",
|
||||
"pc_hw/sound",
|
||||
"pc_hw/timer",
|
||||
"posix/dirent",
|
||||
"posix/fcntl",
|
||||
"posix/fnmatch",
|
||||
"posix/glob",
|
||||
"posix/grp",
|
||||
-- "posix/regex", -- not compilable
|
||||
"posix/pwd",
|
||||
"posix/setjmp",
|
||||
"posix/signal",
|
||||
"posix/stdio",
|
||||
"posix/sys/stat",
|
||||
"posix/sys/times",
|
||||
"posix/sys/wait",
|
||||
"posix/unistd",
|
||||
"posix/utime",
|
||||
"posix/utsname",
|
||||
"termios",
|
||||
}
|
||||
|
||||
CFLAGS="-Os -fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-ident -fomit-frame-pointer -fno-asynchronous-unwind-tables -mpreferred-stack-boundary=2"
|
||||
OBJS={}
|
||||
for i,v in ipairs(FOLDERS) do
|
||||
tup.append_table(OBJS,
|
||||
tup.foreach_rule({v .. "/*.c", extra_inputs = {"../../config.h"}},
|
||||
'kos32-gcc -c -I../../include -D__DEV_CONFIG_H=\\"../../config.h\\" ' .. CFLAGS .. " -o %o %f",
|
||||
v .. "/%B.o")
|
||||
)
|
||||
tup.append_table(OBJS,
|
||||
tup.foreach_rule({v .. "/*.s", extra_inputs = {"../../config.h"}},
|
||||
'kos32-cpp -I../../include -D__DEV_CONFIG_H=\\"../../config.h\\" %f | kos32-as -o %o',
|
||||
v .. "/%B.o")
|
||||
)
|
||||
end
|
||||
tup.rule(OBJS, "kos32-ar rcs %o %f", {"../../lib/libc.a", "../../<libc>"})
|
@@ -1,5 +1,6 @@
|
||||
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <libc/file.h>
|
||||
|
||||
int
|
||||
|
@@ -3,8 +3,8 @@
|
||||
|
||||
#undef bcopy
|
||||
|
||||
void *
|
||||
void
|
||||
bcopy(const void *a, void *b, size_t len)
|
||||
{
|
||||
return memmove(b, a, len);
|
||||
memmove(b, a, len);
|
||||
}
|
||||
|
@@ -3,8 +3,8 @@
|
||||
|
||||
#undef bzero
|
||||
|
||||
void *
|
||||
void
|
||||
bzero(void *a, size_t b)
|
||||
{
|
||||
return memset(a,0,b);
|
||||
memset(a,0,b);
|
||||
}
|
||||
|
@@ -6,18 +6,18 @@ NaN:
|
||||
|
||||
MK_C_SYM(sincos)
|
||||
|
||||
/* void sincos(double *cosine, double *sine, double x); */
|
||||
/* void sincos(double x, double *sine, double *cosine); */
|
||||
|
||||
movl 16(%esp), %ecx
|
||||
movl 8(%esp), %ecx
|
||||
|
||||
movl 4(%esp), %eax /* Point to cosine. */
|
||||
movl 8(%esp), %edx /* Point to sine. */
|
||||
movl 16(%esp), %eax /* Point to cosine. */
|
||||
movl 12(%esp), %edx /* Point to sine. */
|
||||
|
||||
andl $0x7FF00000, %ecx /* Examine exponent of x. */
|
||||
cmpl $0x43E00000, %ecx /* |x| >= 2^63 */
|
||||
jae bigarg
|
||||
|
||||
fldl 12(%esp)
|
||||
fldl 4(%esp)
|
||||
fsincos
|
||||
fstpl (%eax) /* cos */
|
||||
fstpl (%edx) /* sin */
|
||||
|
@@ -1,287 +0,0 @@
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include<string.h>
|
||||
#include<errno.h>
|
||||
#include<fcntl.h>
|
||||
#include<menuet/os.h>
|
||||
|
||||
struct systree_blk
|
||||
{
|
||||
unsigned long cmd,pos,blks;
|
||||
void * data,* work;
|
||||
char name[256];
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef struct EMU_FILE
|
||||
{
|
||||
int handle;
|
||||
unsigned long size;
|
||||
unsigned long pos;
|
||||
unsigned long mode;
|
||||
unsigned long current_sector;
|
||||
unsigned long size_sectors;
|
||||
char * write_buf;
|
||||
unsigned long write_bufsize;
|
||||
char rd_buffer[512];
|
||||
char name[256];
|
||||
unsigned char dirty;
|
||||
} EMU_FILE;
|
||||
|
||||
#define _MAX_HANDLES 64
|
||||
|
||||
static EMU_FILE * EMU_file_table[_MAX_HANDLES];
|
||||
static char systree_work_area[16384+512];
|
||||
static volatile struct systree_blk sblk;
|
||||
static volatile int S_eax,S_ebx;
|
||||
|
||||
static inline int EMU_alloc_handle(void)
|
||||
{
|
||||
register int i;
|
||||
for(i=0;i<_MAX_HANDLES;i++)
|
||||
if(!EMU_file_table[i])
|
||||
{
|
||||
EMU_file_table[i]=(EMU_FILE *)malloc(sizeof(EMU_FILE));
|
||||
if(!EMU_file_table[i]) return -ENOMEM;
|
||||
return i;
|
||||
}
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
static inline int EMU_systree_cmd(void)
|
||||
{
|
||||
__asm__ __volatile__("int $0x40"
|
||||
:"=a"(S_eax),"=b"(S_ebx)
|
||||
:"0"(58),"1"((void *)&sblk));
|
||||
return S_eax;
|
||||
}
|
||||
|
||||
static int EMU_loadsector(EMU_FILE * filp)
|
||||
{
|
||||
sblk.cmd=0;
|
||||
sblk.pos=filp->current_sector;
|
||||
sblk.blks=1;
|
||||
sblk.data=filp->rd_buffer;
|
||||
sblk.work=systree_work_area;
|
||||
memcpy((void *)&sblk.name,(const void *)filp->name,strlen(filp->name)+1);
|
||||
return EMU_systree_cmd();
|
||||
}
|
||||
|
||||
static int EMU_fsync(EMU_FILE * filp)
|
||||
{
|
||||
if(filp->mode==O_RDONLY) return 0;
|
||||
if(!filp->dirty) return 0;
|
||||
filp->dirty=0;
|
||||
sblk.cmd=1;
|
||||
sblk.pos=0;
|
||||
sblk.blks=filp->size;
|
||||
sblk.data=filp->write_buf;
|
||||
sblk.work=systree_work_area;
|
||||
memcpy((void *)sblk.name,(const void *)filp->name,strlen(filp->name)+1);
|
||||
return EMU_systree_cmd();
|
||||
}
|
||||
|
||||
static inline int EMU_realloc_buf(EMU_FILE * filp,unsigned long newsize)
|
||||
{
|
||||
char * n;
|
||||
newsize=(newsize+511)&~511;
|
||||
if(filp->write_bufsize==newsize) return 0;
|
||||
n=(char *)realloc(filp->write_buf,newsize);
|
||||
if(!n) return -ENOSPC;
|
||||
filp->write_buf=n;
|
||||
filp->write_bufsize=newsize;
|
||||
filp->dirty=1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int EMU_createtrunc(char * fname)
|
||||
{
|
||||
sblk.cmd=1;
|
||||
sblk.pos=0;
|
||||
sblk.blks=0;
|
||||
sblk.data=sblk.work=systree_work_area;
|
||||
memcpy((void *)sblk.name,(const void *)fname,strlen(fname)+1);
|
||||
return EMU_systree_cmd();
|
||||
}
|
||||
|
||||
static int EMU_getfsize(char * fname,unsigned long * sizep)
|
||||
{
|
||||
sblk.cmd=0;
|
||||
sblk.pos=0;
|
||||
sblk.blks=1;
|
||||
sblk.data=systree_work_area+16384;
|
||||
sblk.work=systree_work_area;
|
||||
memcpy((void *)sblk.name,(const void *)fname,strlen(fname)+1);
|
||||
if(EMU_systree_cmd()!=0) return -EINVAL;
|
||||
if(sizep) *sizep=(unsigned long)S_ebx;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int EMU_open(char * fname,int mode)
|
||||
{
|
||||
EMU_FILE * filp;
|
||||
register int hid;
|
||||
unsigned long iomode;
|
||||
hid=EMU_alloc_handle();
|
||||
if(hid<0) return hid;
|
||||
filp=EMU_file_table[hid];
|
||||
filp->handle=hid;
|
||||
iomode=mode&(O_RDONLY|O_WRONLY|O_RDWR);
|
||||
memcpy((void *)filp->name,(const void *)fname,strlen(fname)+1);
|
||||
strupr(filp->name);
|
||||
filp->mode=iomode;
|
||||
if(mode&O_CREAT)
|
||||
{
|
||||
int createflags=mode&(O_TRUNC|O_EXCL);
|
||||
if(createflags&O_EXCL)
|
||||
{
|
||||
unsigned long psz=0;
|
||||
if(EMU_getfsize(filp->name,&psz)==0)
|
||||
{
|
||||
free(EMU_file_table[hid=filp->handle]);
|
||||
EMU_file_table[hid]=NULL;
|
||||
return -EEXIST;
|
||||
}
|
||||
}
|
||||
if(createflags&O_TRUNC)
|
||||
{
|
||||
EMU_createtrunc(filp->name);
|
||||
}
|
||||
}
|
||||
if(iomode==O_RDONLY)
|
||||
{
|
||||
hid=EMU_getfsize(filp->name,&filp->size);
|
||||
if(hid<0)
|
||||
{
|
||||
free(EMU_file_table[hid=filp->handle]);
|
||||
EMU_file_table[hid]=NULL;
|
||||
return -ENOENT;
|
||||
}
|
||||
filp->current_sector=0;
|
||||
if(EMU_loadsector(filp)<0) filp->current_sector=-1UL;
|
||||
filp->mode=O_RDONLY;
|
||||
filp->size_sectors=(filp->size+511)/512;
|
||||
filp->write_bufsize=0;
|
||||
filp->dirty=0;
|
||||
return filp->handle;
|
||||
}
|
||||
if(iomode==O_WRONLY)
|
||||
{
|
||||
hid=EMU_getfsize(filp->name,&filp->size);
|
||||
if(hid<0)
|
||||
{
|
||||
BAD_WRO:
|
||||
free(EMU_file_table[hid=filp->handle]);
|
||||
EMU_file_table[hid]=NULL;
|
||||
return -ENOENT;
|
||||
}
|
||||
filp->current_sector=-1UL;
|
||||
filp->mode=O_WRONLY;
|
||||
filp->size_sectors=0;
|
||||
filp->write_bufsize=(filp->size+511)&~511;
|
||||
filp->write_buf=(char *)malloc(filp->write_bufsize);
|
||||
if(!filp->write_buf)
|
||||
{
|
||||
free(filp->write_buf);
|
||||
goto BAD_WRO;
|
||||
}
|
||||
sblk.cmd=0;
|
||||
sblk.pos=0;
|
||||
sblk.blks=filp->write_bufsize/512;
|
||||
sblk.data=filp->write_buf;
|
||||
sblk.work=systree_work_area;
|
||||
if(EMU_systree_cmd()!=0) goto BAD_WRO1;
|
||||
return filp->handle;
|
||||
}
|
||||
hid=EMU_getfsize(filp->name,&filp->size);
|
||||
if(hid<0)
|
||||
{
|
||||
BAD_WRO1:
|
||||
free(EMU_file_table[hid=filp->handle]);
|
||||
EMU_file_table[hid]=NULL;
|
||||
return -ENOENT;
|
||||
}
|
||||
filp->current_sector=-1UL;
|
||||
filp->mode=O_RDWR;
|
||||
filp->size_sectors=0;
|
||||
filp->write_bufsize=(filp->size+511)&~511;
|
||||
filp->write_buf=(char *)malloc(filp->write_bufsize);
|
||||
if(!filp->write_buf)
|
||||
{
|
||||
free(filp->write_buf);
|
||||
goto BAD_WRO1;
|
||||
}
|
||||
sblk.cmd=0;
|
||||
sblk.pos=0;
|
||||
sblk.blks=filp->write_bufsize/512;
|
||||
sblk.data=filp->write_buf;
|
||||
sblk.work=systree_work_area;
|
||||
if(EMU_systree_cmd()!=0) goto BAD_WRO1;
|
||||
return filp->handle;
|
||||
}
|
||||
|
||||
static int EMU_close(EMU_FILE * filp)
|
||||
{
|
||||
int hid;
|
||||
if(!filp) return -ENOENT;
|
||||
if(EMU_file_table[hid=filp->handle]!=filp) return -EBADF;
|
||||
if(filp->write_buf) free(filp->write_buf);
|
||||
free(filp);
|
||||
EMU_file_table[hid]=NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int EMU_lseek(EMU_FILE * filp,unsigned long off,int whence)
|
||||
{
|
||||
unsigned long newpos;
|
||||
switch(whence)
|
||||
{
|
||||
case SEEK_SET:
|
||||
newpos=off;
|
||||
break;
|
||||
case SEEK_CUR:
|
||||
newpos=filp->pos+off;
|
||||
break;
|
||||
case SEEK_END:
|
||||
newpos=filp->size+off-1;
|
||||
break;
|
||||
}
|
||||
if(newpos>=filp->size) return -1;
|
||||
filp->pos=newpos;
|
||||
return filp->pos;
|
||||
}
|
||||
|
||||
static int EMU_read(EMU_FILE * filp,unsigned long size,void * buf)
|
||||
{
|
||||
int icount,curr_sector,curr_sector_ofs,n;
|
||||
int nbufbytes,totalremaining;
|
||||
if(filp->pos+count>filp->size)
|
||||
count=filp->size-filp->pos;
|
||||
if(filp->mode==O_RDWR)
|
||||
{
|
||||
memcpy(buffer,filp->write_buf+filp->pos,count);
|
||||
filp->pos+=count;
|
||||
return count;
|
||||
}
|
||||
icount=count;
|
||||
while(count>0)
|
||||
{
|
||||
if(filp->pos>=filp->size) return icount=count;
|
||||
curr_sector=sh->pointer>>9;
|
||||
curr_sector_ofs=sh->pointer&511;
|
||||
n=count;
|
||||
if(sh->bufsector==-1 || curr_sector!=sh->bufsector)
|
||||
{
|
||||
if(dosemu_loadcurrsector(sh)==-1) return -1;
|
||||
}
|
||||
nbufbytes=512-curr_sector_ofs;
|
||||
totalremaining=sh->size-sh->pointer;
|
||||
if(nbufbytes>totalremaining) nbufbytes=totalremaining;
|
||||
if(n>nbufbytes) n=nbufbytes;
|
||||
memcpy(buffer,&sh->buf[curr_sector_ofs],n);
|
||||
buffer+=n;
|
||||
count-=n;
|
||||
sh->pointer+=n;
|
||||
}
|
||||
return icount;
|
||||
}
|
||||
}
|
@@ -0,0 +1,6 @@
|
||||
if tup.getconfig('NO_GCC') ~= "" then return end
|
||||
CFLAGS = "-Os -fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-ident -fomit-frame-pointer -fno-asynchronous-unwind-tables -mpreferred-stack-boundary=2"
|
||||
OBJS = tup.foreach_rule({"*.cpp", extra_inputs = {"../../config.h"}},
|
||||
'kos32-gcc -c -I../../include -D__DEV_CONFIG_H=\\"../../config.h\\" ' .. CFLAGS .. " -o %o %f",
|
||||
"%B.o")
|
||||
tup.rule(OBJS, "kos32-ar rcs %o %f", {"../../lib/libcpp.a", "../../<libcpp>"})
|
@@ -0,0 +1,9 @@
|
||||
if tup.getconfig('NO_GCC') ~= "" then return end
|
||||
CFLAGS="-D_USE_LIBM_MATH_H -Os -fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-ident -fomit-frame-pointer -fno-asynchronous-unwind-tables -mpreferred-stack-boundary=2"
|
||||
OBJS = tup.foreach_rule({"*.c", extra_inputs = {"../../config.h"}},
|
||||
'kos32-gcc -c -I../../include -D__DEV_CONFIG_H=\\"../../config.h\\" ' .. CFLAGS .. ' -o %o %f',
|
||||
"%B.o")
|
||||
OBJS += tup.foreach_rule({"*.s", extra_inputs = {"../../config.h"}},
|
||||
'kos32-cpp -I../../include -D__DEV_CONFIG_H=\\"../../config.h\\" %f | kos32-as -o %o',
|
||||
"%B.o")
|
||||
tup.rule(OBJS, "kos32-ar rcs %o %f", {"../../lib/libm.a", "../../<libm>"})
|
@@ -1,8 +0,0 @@
|
||||
.file "ef_sinh.c"
|
||||
.text
|
||||
.align 4
|
||||
_one:
|
||||
.long 1065353216
|
||||
.align 4
|
||||
_shuge:
|
||||
.long 2096152002
|
@@ -28,6 +28,8 @@ static char rcsid[] = "$Id: k_standard.c,v 1.4 1994/08/10 20:31:44 jtc Exp $";
|
||||
#undef fflush
|
||||
#endif /* !defined(_USE_WRITE) */
|
||||
|
||||
inline int fputs(const char* str, FILE* f) { return -1; }
|
||||
|
||||
#ifdef __STDC__
|
||||
static const double zero = 0.0; /* used as const */
|
||||
#else
|
||||
|
2
programs/develop/libraries/menuetlibc/stub/Tupfile.lua
Normal file
2
programs/develop/libraries/menuetlibc/stub/Tupfile.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
tup.rule("crt0_coff.asm", "fasm %f %o", "crt0.o")
|
@@ -7,6 +7,7 @@ public start
|
||||
EXTRN ___menuet__app_param_area
|
||||
EXTRN ___menuet__app_path_area
|
||||
EXTRN ___crt1_startup
|
||||
EXTRN ___memsize
|
||||
start:
|
||||
public ___menuet__app_header
|
||||
public ___menuet__memsize
|
||||
@@ -22,7 +23,7 @@ end if
|
||||
; dd _edata
|
||||
dd 0
|
||||
___menuet__memsize:
|
||||
dd 0x400000
|
||||
dd ___memsize
|
||||
dd app_stack
|
||||
dd ___menuet__app_param_area
|
||||
dd ___menuet__app_path_area
|
||||
@@ -54,5 +55,6 @@ _libc_null_call:
|
||||
end if
|
||||
|
||||
section '.bss' readable writeable
|
||||
rd 0x20000
|
||||
;rd 0x20000
|
||||
rb 0x10000
|
||||
app_stack:
|
||||
|
Reference in New Issue
Block a user