Some time ago I have announced the T3X/Z compiler here, a T3X compiler
that runs on CP/M on the Z80 and generates code for CP/M on the Z80.
In the past months I have created a new version of T3X that runs not
only on CP/M, but also on the virtual Tcode machine (TCVM), DOS (8086),
and 386-based Unix systems. Programs can be cross-compiled in many
different ways, like DOS->CP/M, CP/M->DOS, Unix->CP/M. TCVM->DOS,
TCVM->Unix, etc... There is a total of 14 cross compilers that can be
built from the code.
Here is a link to the sources:
http://t3x.org/t3x/index.html#0
CP/M and DOS binaries of the compiler are included in the archive.
The T3X language accepted by the new compiler is (almost) a superset
of T3X/Z (the intrinsic T3X class has been replaced by modules, so two
lines of boiler-plate have to change at the beginning of each program).
The new language has separate namespaces via modules, loadable modules
in separate file, unsigned operators (0xfffe .< 0xffff is true), and
lots of predefined functions in a library. For example, here is
"Hello, World!" using a simple I/O library:
use t3x;
use string;
use io;
do
io.writeln("Hello, World!");
end
The compiler still self-compiles on CP/M, but needs 48K bytes of TPA
now (T3X/Z uses 44K bytes). It self-compiles in 10 minutes on a 4MHz
Z80 emulator. It also requires (at least) two files now: the compiler
binary itself and the T3X core module, which was intrinsic before.
Anyway, I hope some of you may enjoy programming CP/M using a
high-level language of the 1990s!
--
Nils M Holm < n m h @ t 3 x . o r g >
http://t3x.org