2007-04-27 22:42:41 +00:00
|
|
|
The cpm platform
|
|
|
|
=================
|
|
|
|
|
|
|
|
cpm is an i80-based BSP that generates CP/M executables that can be run on any
|
|
|
|
CP/M-compliant machine.
|
|
|
|
|
2019-06-16 18:10:13 +00:00
|
|
|
CP/M has special needs in many ways, the main one being that it doesn't
|
|
|
|
support byte-accessible files --- only complete 128-byte sectors can be read
|
|
|
|
or written. The port's read/write/open/close/lseek etc should handle this
|
|
|
|
transparently, but trying to write a fragment of a sector will involve a
|
|
|
|
read/modify/write cycle. No buffering is done (that's stdio's job).
|
2007-04-27 22:42:41 +00:00
|
|
|
|
2019-06-16 18:10:13 +00:00
|
|
|
File descriptors 0, 1 and 2 represent the console, as usual.
|
2007-04-27 22:42:41 +00:00
|
|
|
|
2019-06-16 18:10:13 +00:00
|
|
|
In addition, there's a special interface to give applications direct access
|
|
|
|
to CP/M. See include/cpm.h for details.
|
2007-04-28 22:34:47 +00:00
|
|
|
|
2019-06-16 18:10:13 +00:00
|
|
|
Floating point is not supported and attempts to use floating-point numbers
|
|
|
|
will cause the program to terminate.
|
2007-04-27 22:42:41 +00:00
|
|
|
|
|
|
|
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
|