-
Difference between revisions of "UTILITIES PUBLIC DOCUMENT CC"
Line 1: | Line 1: | ||
− | |||
− | |||
CC - improved control program for HiTech-C and msx-dos2 | CC - improved control program for HiTech-C and msx-dos2 | ||
Line 24: | Line 22: | ||
You should get the following files: | You should get the following files: | ||
− | cc.com | + | ;cc.com :replacement for c.com |
− | libdos2.lib | + | ;libdos2.lib :IO-library using msx-dos2, source is in libdos.lzh |
− | vsh1.o | + | ;vsh1.o,vsh2.o,vsh3.o |
− | + | :variants of crt.o for programs executing other programssee vsh.txt for details | |
− | + | ;vsh.txt :text about vsh?.o | |
− | vsh.txt | + | ;redir.obj :used in a work-around for -U bug in link.com |
− | redir.obj | + | ;cc.txt :this text |
− | cc.txt | + | ;cc.c :source for cc.com |
− | cc.c | + | ;vshrt.as :source for vsh?.o |
− | vshrt.as | + | ;redir.as :source for redir.obj |
− | redir.as | + | ;makefile |
− | makefile | + | ;pack.bat |
− | pack.bat | ||
==Using cc== | ==Using cc== | ||
Line 42: | Line 39: | ||
You can invoke CC with: | You can invoke CC with: | ||
− | cc <options> <files> | + | cc <options> <files> |
The following options are recognised: | The following options are recognised: | ||
Line 49: | Line 46: | ||
;-CR[file] : produce cross refenerence file | ;-CR[file] : produce cross refenerence file | ||
;-O : optimise assembly code generated by CGEN with OPTIM | ;-O : optimise assembly code generated by CGEN with OPTIM | ||
− | + | ;-O<file> : put output in <file> | |
;-I<dir> : passed to CPP as extra search-path for include files, only works for drives, the directory where cc.com is stored is always searched via APPEND environment variable | ;-I<dir> : passed to CPP as extra search-path for include files, only works for drives, the directory where cc.com is stored is always searched via APPEND environment variable | ||
;-V : verbose mode, print out commands of subprocesses | ;-V : verbose mode, print out commands of subprocesses | ||
Line 98: | Line 95: | ||
added the code to execute a subprogram and then continue the main | added the code to execute a subprogram and then continue the main | ||
program. | program. | ||
− | |||
− |
Revision as of 09:35, 25 August 2017
CC - improved control program for HiTech-C and msx-dos2
About
The program cc.com executes the passes to compile a C-program with HiTech-C automatically. The c.com from Hi-Tech does the same, but cc.com has the following advantages:
- cc.com does not use a batchfile and stops if a pass has failed
- cc.com sets the append-variable so that your source can be in a different directory than the compiler.
How to install
First you need to install MSX-DOS2. Then get the HI-TECH Z80 CP/M C Compiler from ftp://ftp.funet.fi/pub/msx/programming/c/hitech-?.pma and unpack with pmext. HiTech has been so kind to grant permission to use their C-compiler free of charge, see also http://www.htsoft.com/products/CPM.php .
Unpack cc.lzh to the directory that contains the C-compiler.
You should get the following files:
- cc.com
- replacement for c.com
- libdos2.lib
- IO-library using msx-dos2, source is in libdos.lzh
- vsh1.o,vsh2.o,vsh3.o
- variants of crt.o for programs executing other programssee vsh.txt for details
- vsh.txt
- text about vsh?.o
- redir.obj
- used in a work-around for -U bug in link.com
- cc.txt
- this text
- cc.c
- source for cc.com
- vshrt.as
- source for vsh?.o
- redir.as
- source for redir.obj
- makefile
- pack.bat
Using cc
You can invoke CC with:
cc <options> <files>
The following options are recognised:
- -C
- keep the object file; do not link
- -CR[file]
- produce cross refenerence file
- -O
- optimise assembly code generated by CGEN with OPTIM
- -O<file>
- put output in <file>
- -I<dir>
- passed to CPP as extra search-path for include files, only works for drives, the directory where cc.com is stored is always searched via APPEND environment variable
- -V
- verbose mode, print out commands of subprocesses
- -F<file>
- write symbol file
- -U<sym>
- undefine symbol for CPP
- -D<sym>[=<def>]
- define symbol for CPP
- -S
- keep assembly file; do not assemble or link
- -X
- strip local symbols, also passed to LINK
- -P<pspec>
- define order of psect (not normally needed)
- -M<file>
- write map file
- -W<n>
- width for map file
- -l<xx>
- pass lib<xx>.lib to LINK, order is important
All options are case insensitive.
Files
Files with no extension get the extension ".c". Files with extension ".c" are treated as C language sourcefiles. Files with extension ".as" are treated as assembly assembly language source files. All other files are passed directly to the linker.
Environment item
- VSHTOP
- If set, VSHTOP specifies the first page of video memory that will not be used or probed by CC. Pages 0..7 are ordinary video memory, pages 8..11 are the extended video memory. Legal values are 2..12, default is 12. Other values are silently ignored. If VSHTOP is 2, CC will not work. You can use this to protect data in higher pages. Some emulators may need vshtop=8.
Notes
CC.COM uses video memory for temporary storage, so it will corrupt the contents of a ramdisk that also uses video memory. The screen will flash between the compilation steps, this is to improve reliability of reading/writing from/to video memory and should not be cause for concern.
HiTech-C cannot handle large C-files. This is not a real problem; just split your program in to C-files of about 6 or 7 kB. The MAKE program by Arnold metselaar can be used with CC.com to compile only those modules that need to be recompiled.
See also:
- The documantation that comes with HiTech-C
- Documentation about the C language in general
- vsh.txt
Authors
CC.C is based on work by HiTech and Pierre Gielen. Arnold Metselaar added the code to execute a subprogram and then continue the main program.