|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6400 (0x1900)
Types: TextFile
Names: »READ.ME«, »READCC.ME«
└─⟦4dd5d59b6⟧ Bits:30003303 Mix C version 2.1 og debugger til RC703
└─⟦this⟧ »READCC.ME«
└─⟦b6190e06c⟧ Bits:30003304 Mix C version 2.1 til RC703
└─⟦b6190e06c⟧ Bits:30005327 Mix C version 2.1 til RC703
└─⟦this⟧ »READ.ME«
Mix C 2.1.0
Mix C for CP/M comes with two c compilers. CC.COM and CC.OVY is
the faster compiler. It should be used in most cases. If CC runs
out of heap (for symbol table space), you may wish to use C.COM . This
is a version of the compiler that uses more overlays to allow additional
space for symbol table entries.
New Features in version 2.0
---------------------------
. Maximum length of a line is increased to 256 characters
. Keywords are recognized in lower case only. The compiler
option /*$KEYWCASE*/ may be used to switch to upper and mixed
case for keywords
. On the listing, lines are numbered separately for each include
file. A letter (a .. z) is present on the left of each line from
an include file to indicate the depth of includes.
. When errors occur in include files, the error file (C.ERR) will
have the name of the file as well as the line in error.
. Include files have a default extension of ".H" . If a file name
in an #include does not have an extension, the compiler looks first
for the file as specified. If no file exists by that name, the
compiler trys the same name with ".H" as an extension.
. Initializers are supported for float and double. Initializers for
auto variables may use constant expressions. Initializers for float
and double static or global variables allow only a constant.
. Hexadecimal character constants are supported and hexadecimal
characters may be included in strings. They are represented by
a backslash followed by "x" and a two digit hexadecimal number.
Examples:
'Øx30' is the character '0'
"abØx63d" is equivalent to "abcd"
. Enumerations are supported. Enumerations are declared similar
to structures with the keyword "enum". The braces contain a
list of identifiers with optional initialization values. Values
are assigned starting at zero and increasing by one for each
identifier. If an intialization value is present, the corresponding
identifier is assigned the value supplied and counting continues
from that point.
Examples:
enum primecolor æred, blue, greenå c;
/* declares a variable of type primecolor. The identifiers
are assigned values: red=0, blue=1, green=2.
*/
typedef enum æorange, yellow=8, pink, aquaå color;
/* defines the type color. The values of the colors are:
orange=0, yellow=8, pink=9, aqua=10
*/
c = blue; /* assigns the value "blue" (1) to c */
. Structures and unions may be passed as parameters to functions.
They are passed by value.
. Functions may return structures or unions as results.
Optional Patches
----------------
Some people may wish to change some of the file names used by Mix C
so that it will use a different file, disk drive, or user number.
The addresses of these file names are listed below. You can use DDT
(supplied with CP/M) to change the names to the ones that you prefer.
Be sure to make a copy of the original disk before attempting to make
the changes. The file names are strings of characters up to 15
characters in length and terminated by a binary zero. If a user
number is supplied, it must precede the disk drive name and a colon
":" must be present.
CC.OVY C.OVY
CERRORS.DAT 4099 6699 Error messages file
A:CERRORS.DAT 410D 670D Alternate error messages file
C.ERR 472A 6D2A File for lines in error
A: 07C0 25C0 Prefix for include files that are
enclosed in "<>"
Load the file: CC.OVY or C.OVY with DDT. Then use the "S" command
to change the file name. Exit DDT and save the new copy of the file
on disk with the "SAVE" command.
Example - Sets the system directory for include files to drive C. When
#include statements have the file name enclosed in "<>", the
compiler will look for the file on drive C.
A>DDT CC.OVY
DDT VERS 2.2
NEXT PC
4A00 0100
-D7c0,7c6
07C0 41 3A 00 00 00 00 00 A:.....
-S7c0
07C0 41 43
07C1 3A .
-D7c0,7c6
07C0 43 3A 00 00 00 00 00 C:.....
-^C
A>SAVE 73 CC.OVY
A>
The Mix linker has some file names that are built in. In some
applications you may wish to change one or more of these names. The
following table lists the addresses of these names. They may be changed
using DDT as shown above.
CLIB 167A Library that is searched for standard functions.
The name may be up to 31 characters and must be
terminated by a binary zero byte.
LINKER 16C2 Library that is searched if clib does not contain
all referenced functions.
A: and 0A: 16DA Directory prefix used to search for libraries.
Each prefix is terminated by a zero, and the entire
list is terminated by two zeros.
0RUNTIME OVY 080C File name for runtime. Stored as a CP/M svc file
name (8 character name filled with blanks + 3
character extension). The initial zero indicates
the default disk drive. If this byte is zero, drive
A will also be searched. If it is non-zero, it
specifies the drive to search.
When the short form of the linker is used to build a command file, the
runtime support routines are not inlcuded in the file. To make the linker
include the runtime by default, make the following change.
A>ddt linker.com
DDT VERS 2.2
NEXT PC
4200 0100
-s13ec
13EC AF 00
13ED C9 .
-^C
A>save 65 linker.com
Note: When using the change command in the linker to use a different
runtime file, the change command must be executed before any
load commands. The linker must know the size of the runtime so
it can perform relocation as it loads the program.
▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀▶e5◀