mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 08:24:18 +00:00
180 lines
7.1 KiB
Plaintext
180 lines
7.1 KiB
Plaintext
.so macro
|
|
.he 'C68''C68'
|
|
.de sw
|
|
.sp
|
|
.ti -8
|
|
..
|
|
.pr PROGRAM C68
|
|
c68 - 68000 C compiler
|
|
.us USAGE
|
|
c68 [-c] [-[e|f]] [-v] [-L] [-a] [-S] [-T] [-t] [-[6|7|3|5]] file...
|
|
.fn FUNCTION
|
|
'c68' is the REGULUS 68000 C compiler. It accepts three types of arguments:
|
|
.sp
|
|
Arguments whose names end with '.c' are taken to be C source programs;
|
|
they are compiled, and each object program is left on the file
|
|
whose name is that of the source with '.o' substituted for '.c'.
|
|
The '.o' file is normally deleted, however, if a single
|
|
C program is compiled and loaded all at one go.
|
|
.sp
|
|
The aforementioned flags as well as the C preprocessor flags (eg. -P or -D)
|
|
See 'cpp68(cmnd)' and the link-editor flags (eg. -l or -s) See 'lo68(cmnd)'.
|
|
The following flags are interpreted by 'c68'.
|
|
.in +8
|
|
.sw
|
|
-c\ \ \ \ \ \ Suppress the loading phase of the compilation and force an
|
|
object file to be produced, even if only one program is compiled.
|
|
.sw
|
|
-e\ \ \ \ \ \ Specify that floating point arithmetic is used. Instructs
|
|
the loader to load the floating point library 'libE.a'. Constants
|
|
will be generated in the 'IEEE Floating Point' format. Constants will
|
|
be generated in this format by default.
|
|
.sw
|
|
-f\ \ \ \ \ \ Specify that floating point arithmetic is used. Instructs
|
|
the loader to load the floating point library 'libF.a'. Constants
|
|
will be generated in the 'Fast Floating Point' format.
|
|
.sw
|
|
-v\ \ \ \ \ \ Force the 'C' source file being processed to be printed
|
|
regardless of whether there is more than one or not.
|
|
.sw
|
|
-S\ \ \ \ \ \ Compile the named C programs, and leave
|
|
the assembler-language output on corresponding file suffixed by '.s'.
|
|
Line number comments are included in the assembly code to help relate
|
|
the assembly code and the C source.
|
|
.sw
|
|
-L\ \ \ \ \ \ (default) Compile a program which is larger than 32K bytes.
|
|
This flag instructs the assembler to generate 32 bit addresses for
|
|
all external references and also changes some code generation
|
|
sequences (i.e. indexed array references). This flag MUST be specified
|
|
for all programs whose total size (text size + data size + bss size)
|
|
is larger than 32K bytes.
|
|
.sw
|
|
-a\ \ \ \ \ \ This is the alternate of the '-L' flag, it causes
|
|
the assembler to generate 16 bit addresses for all externally referenced
|
|
variables.
|
|
.sw
|
|
-T\ \ \ \ \ \ Generate assembler code suitable for the 68010.
|
|
Generates "move cc" instead of "move sr". Let's the assembler know the
|
|
meaning of the "movec", "moves", "rte", and "rtd" instructions.
|
|
.sw
|
|
-t\ \ \ \ \ \ Causes string constants to be placed in the text segment
|
|
(as opposed to the data segment). The '-t' flag with an appended
|
|
0, 1, 2, or p (eg. '-tp') is used to specify an alternate parser,
|
|
code generator, assembler or preprocessor respectively. The alternate
|
|
executables are expected to be located in the directory "/usr/c68".
|
|
.sw
|
|
-6\ \ \ \ \ \ Version 6 compatibility mode. Adds the v6 include file
|
|
directory onto the include file search list (/usr/include/v6), and
|
|
adds the version 6 compatibility library (/lib/libv6.a) to the
|
|
loader's library search list.
|
|
.sw
|
|
-7\ \ \ \ \ \ Version 7 compatibility mode. Adds the v7 include file
|
|
directory onto the include file search list (/usr/include/v7), and
|
|
adds the version 7 compatibility library (/lib/libv7.a) to the
|
|
loader's library search list.
|
|
.sw
|
|
-3\ \ \ \ \ \ System 3 compatibility mode. Adds the s3 include file
|
|
directory onto the include file search list (/usr/include/sys3), and
|
|
adds the system 3 compatibility library (/lib/libs3.a) to the
|
|
loader's library search list.
|
|
.sw
|
|
-5\ \ \ \ \ \ System 5 compatibility mode. Adds the s5 include file
|
|
directory onto the include file search list (/usr/include/sys5), and
|
|
adds the system 5 compatibility library (/lib/libs5.a) to the
|
|
loader's library search list.
|
|
.sw
|
|
-P\ \ \ \ \ \ Run only the macro preprocessor
|
|
on the named C programs, and leave the output on corresponding
|
|
files suffixed '.i'.
|
|
.sw
|
|
-E\ \ \ \ \ \ Run only the macro preprocessor on the named C programs,
|
|
and write the output to the standard output device. Each code block is
|
|
identified using a sequence consisting of the source file name and
|
|
line number (eg. # 34 file.c).
|
|
.sw
|
|
-C\ \ \ \ \ \ Like the -E flag except that the comments are not removed.
|
|
This is used by lint and similar programs which need information which
|
|
is stored in comments.
|
|
.sw
|
|
-Dxxx\ \ \ Define the symbol "xxx" as a preprocessor symbol.
|
|
This flag is useful for setting compile time options such as "DEBUG"
|
|
or "NOMMU". (See the "ifdef" construct described below)
|
|
.sw
|
|
-Idir\ \ \ Specify a directory (eg. -I/usr/include/test) in which to
|
|
search for include files which are surrounded by angle brackets <stdio.h>
|
|
or quotes "ctypes.h" before searching in the default directory '/usr/include'.
|
|
If '-I' is specified without a directory name the current directory will
|
|
be used.
|
|
.in -8
|
|
.sp
|
|
Other arguments are taken to be either loader flag arguments,
|
|
or C-compatible object programs, typically produced by an earlier 'c68' run,
|
|
or perhaps libraries of C-compatible routines. These programs,
|
|
together with the results of any compilations specified, are loaded
|
|
(in the order given) to produce an executable program with name 'c.out'.
|
|
.sp
|
|
The instruction 'asm("text");' will output a single line of text into the
|
|
assembly output literally.
|
|
.fl FILES
|
|
.nf
|
|
.na
|
|
file.c input file
|
|
file.o object file
|
|
file.s assembly language file
|
|
file.i preprocessor output file
|
|
a.out loaded output
|
|
/tmp/c6t?a temporary
|
|
/lib/c068 parser
|
|
/lib/c168 code generator
|
|
/lib/c680.o runtime startoff
|
|
/lib/lib7.a 68000 C library
|
|
/lib/libF.a 68000 fast floating point library
|
|
/lib/libE.a 68000 IEEE floating point library
|
|
/lib/libv6.a version 6 compatibility library
|
|
/lib/libv7.a version 7 compatibility library
|
|
/lib/libs3.a system 3 compatiblity library
|
|
/lib/libs5.a system 5 compatibility library
|
|
.fi
|
|
.ad
|
|
.sa SEE ALSO
|
|
.fi
|
|
.ad
|
|
"The C Programming Language" by Kernighan and Ritchie, published by
|
|
Prentice-Hall in 1978.
|
|
.br
|
|
cpp(cmnd), as(cmnd), ld(cmnd), float(misc), a.out(files)
|
|
.br
|
|
float(misc)
|
|
.dg DIAGNOSTICS
|
|
The diagnostics produced by C itself are intended to be self-explanatory.
|
|
Occasional messages may be produced by the assembler or loader.
|
|
To distinguish the source of error messages,
|
|
compiler error messages begin with an *,
|
|
assembler error messages begin with an &,
|
|
and loader error messages begin with a :.
|
|
.sp
|
|
.ti -5
|
|
DIFFERENCES
|
|
.br
|
|
This compiler is an implementation of the language as described in
|
|
Kernighan and Ritchie Appendix A with the following exceptions
|
|
and/or machine dependencies:
|
|
.sp
|
|
All pointers are 32 bits in length to accommodate the full 68000
|
|
addressing range.
|
|
Address constants are generated as 32-bit numbers
|
|
unless the -a flag is specified.
|
|
.sp
|
|
Pointer register variables are assigned to A-registers.
|
|
All other register variables are assigned to D-registers.
|
|
There are 5 D-registers and 3 A-registers available for register variables.
|
|
.sp
|
|
Structure arguments, and structures returned
|
|
from procedures are not yet implemented.
|
|
.sp
|
|
An additional comment syntax has been added. Comments may be introduced
|
|
by two slashes (i.e. //) and are terminated by the end of the source line.
|
|
The standard C comment syntax (i.e. /* comment */) is also supported.
|
|
.sp
|
|
Unsigned long and unsigned short have not yet been implemented.
|