Cross development system
updated May 21 2000
I'm writing a cross-development system to speed up my work with the
next version on LUnix. The whole system consits of 3 (or 4) more or less
independent parts. All the programs are written for gcc (GNU-C-Compiler),
it should be possible to run (compile) them on every system with gcc (especialy
Use the tools with care, when you run them in a insecure environment (other than UNIX).
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...
- The preprocessor (lupo v0.19)
- Lupo (little, universal preprocessor) is designed to proprocess assembler-sources
of every kind. Lupo can expand macros, includes and conditional assembly.
The syntax is very near to that of normal C-preprocessors, there are commands
like #if, #elif, #endif, #define, #ifdef, #ifndef, ...
- The assembler (luna v1.30)
- Luna (lunix assembler) is a normal assembler (multi pass) that has
some additional features to help creating LUnix-applications. Luna can
also generate object files that can be processed with lld (a linker).
- The linker (lld v0.07)
- Lld (little linker) can link many objectfiles, librarys to one executable,
and can create librarys from objectfiles. The only assembler that is able
to create objectfiles for lld is luna.
- A peephole optimizer (opt65) (optional, not included)
- Okay, such a optimizer is normaly part of a compiler, but you can use
it for handwritten sources too (it sometimes helps finding bugs in your
code, a good code can't be optimized by this optimizer, so everytime there
is a "REMOVED"-remark of opt65s output you should take a deeper
look into your code :-)
- Standard library + include files (mainly for LUnix)
- The library provides some basic routines, to help you writing applications for LUnix.
At the same time it tries to match the lib6502, the standard 6502 library as described
by André Fachat, to give a unified interface to the operating system.
I made a 'tar'-archive of lupo, luna and lld (sources and some docu). Plus many
include files and a complete library of system calls for LUnix and many examples
for applications. You can download it from here (46801 bytes).
Many thanks to Stefan Haubenthal, who gave me compiled binarys
for AMIGA. (In a LHA-archive.) amiga11.lha (72493
bytes, lld v0.07, luna v1.30, lupo v0.19)
for 80x86-PC running MSDOS
I've compiled them for 80x86-PCs running MSDOS
(In a ZIP-achrive.) 80x86dos.zip (51534 bytes, lld v0.03, luna v1.16, lupo v0.13)
for 80x86-PC running OS/2
Many thanks to Joachim Probst, who gave me compiled binarys for OS/2 (ZIP-archive).
Should run on every 32bit OS/2 with EMX runtime environment (lld v0.05, luna v1.21, lupo v0.17).
If you have compiled some of the above on an other system, especially
systems that come without a c-compiler, please email me the executable,
to include it here.