1               ' ' ) * * E:\WORD55\NORMAL.STY                                                POSTSS  + @ QO( '   ) MPX-32 Non-Base Mode C Compiler
Model 14??

Features:
	Executes on all models of Encore's Real-time Computers
	Executes in non-base mode
	Generates sectioned code for user programs
	Generates non-sectioned O/S level code
	One or two pass operation
	Inline assembler code capability
	Inline code replacement for 'RSX thru' context instructions
	K&R complaint compiler with extensions
	System V compatible library
	Online documentation
	Comprehensive diagnostics
	MPX-32 1X and MPX-32 3X object code generation
.	Register variables in R4 - R7

Benefits:
	Industry standard K&R C language for increased programming efficiency
	Familiar System V UNIX runtime interface
	C and Assembler language source file recognition
	Interactive and batch mode of operation

Overview:
The Non-base mode C compiler operates in one pass or two pass mode.  It generates assembler language instructions which may optionally have the source C code intermixed as comments.  Compile time options allow support for register to register floating point instructions or only register to memory instructions to support 32/7X and 32/27 systems.  The debug option allows symbols to be passed through to the Cataloger for display with the task debugger.

The C run-time library provides an emulated System V UNIX interface to MPX-32.  Most of the standard library functions are provided where emulation was possible without O/S modifications.  Functions are also provided to directly access MPX-32 SVCs where UNIX compatibility is not desired.  MPX-32 SVCs can also be called as in-line assembler instructions.  An additional option also allows non-sectioned code to be generated.  This allows functions written in C to be Sysgen'd into the MPX-32 operating system.






Operation:
The non-base mode C compiler executes on Encore's real-time computers.  Releases of MPX-32 starting with 1.4 are supported.  The object code generated is either purely sectioned or non-sectioned.  Sectioned code allows the user to take advantage of the large address capabilities of the CONCEPT 32/2000 processors and also allows tasks to share the code section.  This capability improves overall physical memory use.  Non-sectioned object code provides the capability to generate O/S level code or provide non-shared task capability.

To aid in all program development phases, the Non-base Mode C compiler can generate the following:

	Assembly listing with intermixed C source code
	MPX-32 1X or MPX-32 3X object code
	Cross reference listing
	Source error diagnostics
	Source listing
	Symbol directory
	Debug symbol generation

Since each compilation can provide an easy-to-read, formatted source listing, users will find that program development is enhanced.  Assembler code is keyed to the C source line numbers for easy reference, and a symbol cross-reference of all symbols is generated.

Validation:
The Non-base Mode C compiler was validated with the Encore C compiler validation suite.  Correct code generation was obtained in all cases.

Comprehensive Error Handling:
To expedite coding, the Non-base Mode C compiler produces error messages interdispersed within the source listing or output to standard error (stderr) with source line number referencing.  Errors are classified as warning or terminating.  Warning errors are identified by the compiler and documented, but permit code to be generated.  Terminating errors prevent faulty code generation, and terminates compiler execution.  This differentiation between terminating and warning errors speeds the development process by allowing the compiler to tolerate small, correctable coding errors wherever possible.
܀      x    u    r    o    k    h    e   a   ^   [   W   T   Q  ` a ` ` a ` ` a ` ` a ` a
  }  w   t   q   m   j   g   c   `   ]   Y   W   T   Q  ` a  ` ` a ` ` a ` ` a `
                  `   ` ?  ` i  `  !  !  !  !  !  !  !  ! <    P          Ni    `   `   `   ` 2  ` J  ` g  `   `  !  !  !  !  !  !  !  ! <    P          N    `       E <  E  !  !  !  !  !  !  <    P          N<    P          N<  p  `   `     o  q  q  s   !  !  !  !  	!  !  !  ! <    P          Ns  u  w  y  {  }    x 	  u 	  
   !  !  !  !  !  !  !  !  !          <<	
  	
  ;
  b a
  b |
  b 
  b 
  b 
  b 
  b  !  !  !  !  !  !  !  !  <    P          h
  
                     !  !  !  !  !  !  !                    h
=/2  
     }           }     ~   ( ) * + , - 5 =   CC product bulletin      05/10/9205/03/92}  