93e01eb5d1
Old .o files stop working if they use floating point. One must recompile those files. Old files don't call libfp in the correct way, and may use symbols that I removed from libem. I don't keep old symbols in libem/flp.s, because a program that pulls both libfp and flp.s would get "multiply defined" errors in the linker. I teach mach/i80/ncg/table to use libfp by copying or adapting the patterns from mach/i86/ncg/table. I did not test all the patterns, but I did use `ack -mcpm -fp -O4` to compile examples/mandelbrot.c, then I ran it in the emulator YAZE-AG. It worked, but it was slow. |
||
---|---|---|
.. | ||
include | ||
libsys | ||
boot.s | ||
build-pkg.lua | ||
build-tools.lua | ||
descr | ||
README |
# $Source$ # $State$ # $Revision$ The cpm platform ================= cpm is an i80-based BSP that generates CP/M executables that can be run on any CP/M-compliant machine. This port only implements a very limited set of syscalls --- and most of those are stubs required to make the demo apps link. File descriptors 0, 1 and 2 represent the console. All reads block. There's enough TTY emulation to allow \n conversion and local echo (but it can't be turned off). There's a special, if rather minimilist, interface to give applications access to CP/M. See include/cpm.h for details. IEEE floating point is not available. Attempts to use floating-point numbers will cause the program to terminate. Example command line ==================== ack -mcpm -O -o cpm.com examples/paranoia.c The file cpm.com can then be run. (Although note that Paranoia is very big, and you'll need a CP/M machine with lots of memory for it to fit. Which it does, just.) David Given dg@cowlark.com