I have gotten the compiler and linking steps to work; but, I still have a lot of work to do before it works to the final axe file;
(This compiler produces an axe instead of exe as the final output file.)
Currently works to create a rom file; that I have no idea if safe to use.
Note: The 16-bit linker does NOT support long names so option in advanced compiler settings for 8.3 must be checked.
Note2: I have only used/tested the "LinkNative" native linker and compile commands.
Note3: I started out by copying the bcc xml files and removing the stuff that was not correct and adding some missing stuff.
What I post might still have incorrect bcc values in places.
Tim S.
compiler_pcc16.xml
<?xml version="1.0"?>
<!DOCTYPE CodeBlocks_compiler>
<CodeBlocks_compiler name="Paradigm C++ Compiler TERN Edition (16 bit)"
id="pcc16"
weight="20"
platform="windows">
<Path type="master">
<Search envVar="PATH"
for="C"/>
<Search registry="HKEY_LOCAL_MACHINE\SOFTWARE\Paradigm\Paradigm Tern\7.0"
value="PCRoot Path"/>
<Search path="%ProgramFiles%\Paradigm C++ Professional TERN Edition"/>
</Path>
<Path type="include">
<Search registry="HKEY_LOCAL_MACHINE\SOFTWARE\Paradigm\Paradigm Tern\7.0"
value="Include Path"/>
<Search path="%ProgramFiles%\Paradigm C++ Professional TERN Edition\include"/>
<Add>C:\TERN\186\include</Add>
</Path>
<Path type="lib">
<Search registry="HKEY_LOCAL_MACHINE\SOFTWARE\Paradigm\Paradigm Tern\7.0"
value="Lib Path"/>
<Search path="%ProgramFiles%\Paradigm C++ Professional TERN Edition\lib"/>
<Add>C:\TERN\186\lib</Add>
</Path>
</CodeBlocks_compiler>
options_pcc16.xml
<?xml version="1.0"?>
<!DOCTYPE CodeBlocks_compiler_options>
<CodeBlocks_compiler_options>
<Program name="C" value="pcc.exe"/>
<Program name="CPP" value="pcc.exe"/>
<Program name="LD" value="plink.exe"/>
<Program name="LIB" value="plib.exe"/>
<Program name="WINDRES" value=""/>
<Program name="MAKE" value="make.exe"/>
<Switch name="includeDirs" value="-I"/>
<Switch name="libDirs" value="-L"/>
<Switch name="linkLibs" value=""/>
<Switch name="defines" value="-D"/>
<Switch name="genericSwitch" value="-"/>
<Switch name="objectExtension" value="obj"/>
<Switch name="needDependencies" value="false"/>
<Switch name="forceCompilerUseQuotes" value="false"/>
<Switch name="forceLinkerUseQuotes" value="false"/>
<Switch name="logging" value="default"/>
<Switch name="libPrefix" value=""/>
<Switch name="libExtension" value="lib"/>
<Switch name="linkerNeedsLibPrefix" value="false"/>
<Switch name="linkerNeedsLibExtension" value="true"/>
<Category name="Optimization">
<Option name="Optimizations for size"
option="-O1"
supersedes="-O2"/>
<Option name="Optimizations for speed"
option="-O2"
supersedes="-O1"/>
<Option name="Optimize jumps"
option="-O"/>
<Option name="Eliminate duplicate expressions"
option="-Oc"/>
<Option name="Disable optimizations"
option="-Od"
exclusive="true"/>
<Option name="Expand intrinsic functions"
option="-Oi"/>
<Option name="Enable instruction scheduling for Pentium"
option="-OS"/>
<Option name="Disable instruction scheduling"
option="-O-S"/>
<Option name="Enable loop induction variable and strength reduction"
option="-Ov"/>
<Option name="Disable register variables"
option="-r-"/>
<Option name="Merge duplicate strings"
option="-d"/>
<Option name="Function stack frame optimization"
option="-k-"/>
</Category>
<Category name="C++ Features">
<Option name="Disable runtime type information"
option="-RT-"/>
<Option name="Disable exception handling"
option="-x-"/>
<Option name="Enable destructor cleanup"
option="-xd"
supersedes="-xd-"/>
<Option name="Disable destructor cleanup"
option="-xd-"
supersedes="-xd"/>
<Option name="Enable fast exception prologs"
option="-xf"/>
<Option name="Enable exception location information"
option="-xp"/>
<Option name="Zero length empty class members"
option="-Vx"/>
<Option name="Zero-length empty base classes"
option="-Ve"/>
</Category>
<Category name="16-bit Compiler Options">
<Option name="Small Memory Model"
option="-ms"
supersedes="-mm -mc -mh"/>
<Option name="Medium Memory Model"
option="-mm"
supersedes="-ms -mc -mh"/>
<Option name="Compact Memory Model"
option="-mc"
supersedes="-ms -mm -mh"/>
<Option name="Huge Memory Model"
option="-mh"
supersedes="-ms -mm -mc"/>
</Category>
<Category name="C Features">
<Option name="Emulate floating point"
option="-f"/>
<Option name="Disable floating point"
option="-f-"/>
<Option name="Fast floating point"
option="-ff"/>
<Option name="Pentium FDIV workaround"
option="-fp"/>
<Option name="Pascal calling convention"
option="-p"/>
<Option name="fastcall calling convention"
option="-pr"/>
<Option name="Align data by byte"
option="-a1"
supersedes="-a2 -a4 -a8 -a16"/>
<Option name="Align data by word (2 bytes)"
option="-a2"
supersedes="-a1 -a4 -a8 -a16"/>
<Option name="Align data by double word (4 bytes)"
option="-a4"
supersedes="-a1 -a2 -a8 -a16"/>
<Option name="Align data by quad word (8 bytes)"
option="-a8"
supersedes="-a1 -a2 -a4 -a16"/>
<Option name="Align data by paragraph (16 bytes)"
option="-a16"
supersedes="-a1 -a2 -a4 -a8"/>
<Option name="Use minimum sized enums"
option="-b-"/>
<Option name="Use unsigned char"
option="-K"/>
</Category>
<Category name="Language">
<Option name="ANSI keywords and extensions"
option="-A"/>
<Option name="Kernighan and Ritchie keywords and extensions"
option="-AK"/>
<Option name="Borland C++ keywords and extensions"
option="-AT"/>
<Option name="UNIX V keywords and extensions"
option="-AU"/>
<Option name="Allow nested comments"
option="-C"/>
</Category>
<Category name="Debugging">
<Option name="debugging on, inline expansion off"
option="-v"
supersedes="-v-"/>
<Option name="debugging off, inline expansion on"
option="-v-"
supersedes="-v"/>
<Option name="inline function expansion on"
option="-vi"
supersedes="-vi-"/>
<Option name="inline function expansion off"
option="-vi-"
supersedes="-vi"/>
<Option name="Include line numbers"
option="-y"/>
</Category>
<Category name="Architecture"
exclusive="true">
<Option name="Optimize for 8086"
option="-1-"/>
<Option name="Optimize for 80186"
option="-1"/>
<Option name="Optimize for 80286"
option="-2"/>
<Option name="Optimize for 80386"
option="-3"/>
<Option name="Optimize for 80486"
option="-4"/>
</Category>
<Category name="Target">
<Option name="Windows application"
option="-tW"
supersedes="-tWC -tWD"/>
<Option name=".DLL executable"
option="-tWD"
supersedes="-tW -tWC"/>
</Category>
<Option name="Display all warnings"
option="-w"
category="Warnings"/>
<Command name="CompileObject"
value="$compiler $options $includes -o$object -c $file"/>
<Command name="LinkDynamic"
value="$linker $libdirs -Tpd $link_options $link_objects,$exe_output,$exe_name.map,$libs"/>
<Command name="LinkStatic"
value="$lib_linker /C $static_output $+-link_objects,$def_output"/>
<Command name="LinkNative"
value="$linker $link_options $libdirs C:\PROGRA~1\PARADI~1\Lib\c0s.obj $link_objects,$exe_output,$exe_dir\$exe_name.map,$libs"/>
<Common name="cmds"/>
<RegEx name="Compiler warning"
type="warning"
msg="1;4"
file="2"
line="3">
<![CDATA[(^Warning[ \t]W[0-9]+)[ \t]([][{}() \t#%$~[:alnum:]&_:+/\.-]+)[ \t]([0-9]+)(:[ \t].*)]]>
</RegEx>
<RegEx name="Compiler error"
type="error"
msg="1;4"
file="2"
line="3">
<![CDATA[(^Error[ \t]E[0-9]+)[ \t]([][{}() \t#%$~[:alnum:]&_:+/\.-]+)[ \t]([0-9]+)(:[ \t].*)]]>
</RegEx>
<RegEx name="Unknown error"
type="error"
msg="1">
<![CDATA[(^Error[ \t]+E[0-9]+:.*)]]>
</RegEx>
<RegEx name="Fatal error"
type="error"
msg="1">
<![CDATA[Fatal:[ \t]+(.*)]]>
</RegEx>
</CodeBlocks_compiler_options>