Keil™, An ARM® Company

Technical Support

C51 C Compiler

C51: #PRAGMA MESSAGE AND #PRAGMA ERROR
C51: ?C? LIBRARY ROUTINES
C51: ?C? LOAD AND STORE LIBRARY ROUTINES
C51: ?C? LONG/FLOAT MATH LIBRARY ROUTINES
C51: ?C?COPYXX UNRESOLVED EXTERNAL FROM EVAL VERSION
C51: '\N' DOES NOT WORK IN PRINTF() STATEMENTS
C51: __DATE__ AND __TIME__ MACROS
C51: _CHKFLOAT_ RETURNS STRANGE VALUES
C51: 16-BIT MULTIPLY WITH 32-BIT RESULT
C51: 16MB XDATA RAM WITH ANALOG DEVICES MICROCONVERTER
C51: 256 GLOBAL SYMBOLS LIMIT
C51: 4K-LIMITED COMPILER FOR THE PHILIPS LPC  FAMILY
C51: 64-BIT FLOATING-POINT OPERATIONS
C51: 8051 PORT FOR JEAN LABROSSE'S MICRO C/OS-II  RTOS
C51: 8051 SERIAL I/O IN C
C51: 80C517A MA-STEP SHIFT BUG
C51: 80C751.LIB IS MISSING FROM EVALUATION CD-ROM
C51: 80C751.LIB MISSING FROM RELEASE TOOLS
C51: 8K LIMIT ON MEMORY ALLOCATION
C51: A/D EXAMPLES FOR THE ADUC812
C51: ABSOLUTE ACCESS FOR FAR VARIABLES
C51: ABSOLUTE ADDRESSES
C51: ABSOLUTE FAR VARIABLES DO NOT CALL IBANKING FUNCTIONS
C51: ABSOLUTE FUNCTION ADDRESS
C51: ABSOLUTE MEMORY ACCESSES TO DALLAS 390'S FAR MEMORY
C51: ABSOLUTE REGISTERS AND USING DIRECTIVE
C51: ACCESS LOW/HIGH BYTES OF A INTEGER VARIABLE
C51: ACCESS TO PAGED SFR REGISTERS
C51: ACCESSING A POINTER IN ASSEMBLER
C51: ACCESSING A STRUCTURE VIA A POINTER
C51: ACCESSING ASSEMBLY VARIABLES FROM C
C51: ACCESSING BITS ON P5 OF PHILIPS 552
C51: ACCESSING EXTERNAL SFR'S IN A C PROGRAM
C51: ACCESSING I/O PORTS IN C
C51: ACCESSING INTERNAL EEPROM ON ATMEL 89S9252
C51: ACCESSING REGISTER BANKS IN C
C51: ACCESSING SPECIAL FUNCTION REGISTERS IN C
C51: ACCESSING SPECIFIC MEMORY BYTES
C51: ACCESSING THE DS390 ON-CHIP 4K SRAM AND STACK
C51: ADDING C FUNCTIONS TO EXISTING ASSEMBLER CODE
C51: ADDING INTRINSIC FUNCTIONS
C51: ADDING TO THE STARTUP CODE
C51: ADDRESS SPACE OVERFLOW WITH FAR CONST
C51: ADUC812 COMPATIBILITY
C51: ADUC812 EXAMPLE PROGRAM
C51: AFTER REGLIVE SUCCESS MESSAGE
C51: ALTERNATE STARTUP CODE
C51: ANALOG DEVICES ADUC812 EXTERNAL CODE PROBLEMS
C51: ARE 32-BIT SFRS SUPPORTED?
C51: ARE CHECKSUM LIBRARY ROUTINES INCLUDED?
C51: ARE CODE AND DATA OBJECTS RELOCATABLE?
C51: ARE LINK AND MAKE FUNCTIONS AVAILABLE?
C51: ARE RAM BIT-ADDRESSABLE REGISTERS SUPPORTED?
C51: ARE UNIONS SUPPORTED IN C51
C51: AREGS/NOAREGS DIRECTIVE
C51: ARITHMETIC PROBLEMS WITH CHAR TYPES
C51: ARRAY INDEX USES BYTE INSTEAD OF WORD
C51: ASM/ENDASM DIRECTIVE
C51: ASSIGNING AN I/O ADDRESS TO A VARIABLE
C51: ATMEL EEPROM PROGRAMMING SUPPORT
C51: ATMEL T89C51CC01 INTERNAL EEPROM SUPPORT
C51: ATOF LIBRARY ROUTINE USES BIT VARIABLES
C51: AVOIDING ACALL PROBLEMS IN DS80C390 REV BX DEVICES
C51: AVOIDING MOVC FETCHES FROM CODE SPACE
C51: AVOIDING STARTUP INITIALIZATION OF STATIC VARIABLES
C51: BAD JUMP IN .SRC FILE
C51: BANK SWITCHING COMMON AREA
C51: BANK SWITCHING USING ASSEMBLY
C51: BANK TABLE ENTRIES FOR INDIRECTLY CALLED FUNCTIONS
C51: BATTERY-BACKED NON-VOLATILE MEMORY
C51: BIT ADDRESSABLE ARRAYS
C51: BIT FIELD UNIONS DON'T WORK AS EXPECTED
C51: BIT FIELD UNIONS GIVE STRANGE RESULTS
C51: BIT FORMAT SPECIFIERS FOR PRINTF
C51: BITS USED FOR BANK SELECTION
C51: BOOTLOADER AND ISP FOR THE CYGNAL C8051FXX DEVICES
C51: BROWSER INFORMATION IN OMF51 FILE MAKES EMULATOR FAIL
C51: CALCULATING BAUD RATES FOR THE 8051 SERIAL PORT
C51: CALCULATING CODE SPACE FOR BANK SWITCHING
C51: CALCULATING STACK SIZE
C51: CALCULATING TIMER SETTINGS FOR SERIAL I/O
C51: CALL C FUNCTIONS WITHIN STARTUP CODE
C51: CALLING ASSEMBLY ROUTINES FROM C
C51: CALLING FUNCTIONS FROM INTERRUPTS
C51: CALLING PRINTF IN AN INTERRUPT
C51: CAN STRUCT MEMBERS RESIDE IN DIFFERENT MEMORY SPACES?
C51: CHANGING L51_BANK TO OUTPUT INVERTED SIGNALS
C51: CHANGING OPTIMIZER LEVEL FOR A SINGLE FUNCTION
C51: CHANGING THE ORDER OF OBJ FILES MAKES PROGRAM CRASH
C51: CHECKING FOR STACK UNDERFLOW AT RUNTIME
C51: CLEARING THE SCANF INPUT STREAM
C51: CODE BANKING LATCH ON EXTRA ADDRESS LINES
C51: CODE BANKING WITH ON-CHIP AND OFF-CHIP MEMORY
C51: CODE BANKING WITH SILABS C8051F12X/F13X DEVICES
C51: CODE DIRECTIVE
C51: CODE GENERATOR SUPPORT FOR MULTIPLE DATA POINTERS
C51: CODE STRINGS IN STRUCTS ARE NOT MERGED
C51: COMMAND LINE GLOBAL REGISTER OPTIMIZATION
C51: COMMENTS IN ASSEMBLY BLOCKS
C51: COMPACT DIRECTIVE
C51: COMPILER DIRECTIVE FOR LINKER-LEVEL OPTIMIZATION
C51: COMPILER DIRECTIVE FOR OMF2 FILE FORMAT
C51: COMPILER DIRECTIVE FOR OMF-51 EXTENDED FORMAT
C51: COMPILER DOES NOT INITIALIZE R1/R2/R3 FOR ?C?CSTOPTR
C51: COMPILER DOESN'T WORK WITH BORLAND MAKE
C51: COMPILER GENERATES ZERO LENGTH JUMP
C51: COMPILER IS UNABLE TO FIND INCLUDE FILES
C51: COMPILER OPTIMIZES OUT NECESSARY XDATA READS
C51: COMPILER USES DPL AND DPH FOR VARIABLES
C51: COND/NOCOND DIRECTIVE
C51: CONFIGURABLE SFR BIT ACCESSES
C51: CONFIGURING FOR THE DALLAS 390 CONTIGUOUS MODE
C51: CONFIGURING PPAGE AND PPAGEENABLE
C51: CONFIGURING XDATA BANKING
C51: CONST VARIABLE BANKING WITH SILABS C8051F12X DEVICES
C51: CONST VARIABLE STORAGE LOCATION
C51: CONSTANT ARRAYS LARGER THAN 64KB
C51: CONSTANT FLOATING POINT NUMBER '0E'
C51: CONSTANT VALUES AT FIXED ADDRESSES IN CODE SPACE
C51: CONTENTS OF THE ?C_INITSEG SEGMENT
C51: CONTROL DIRECTIVES
C51: CONVERTING BIG ENDIAN TO LITTLE ENDIAN
C51: CONVERTING IAR BANKED CODE TO KEIL
C51: CONVERTING PORT.BIT CODE FROM IAR
C51: CORRECTED SETJMP.H FOR CX51
C51: CORRECTLY DECLARING VARIABLES WITH MEMORY SPACES
C51: CORRUPTION OF DPTR WHEN USING MODP2
C51: CREATE A PATCH VECTOR TABLE
C51: CREATING A FIXED STACK SEGMENT
C51: CREATING CODE BANKING PROGRAMS
C51: CREATING CPU HEADER FILES
C51: CREATING HEX FILES FOR THE CYPRESS USB DEVICES
C51: CREATING OUTPUT FILES FOR OLDER PHILIPS PDS51 EMULATORS
C51: DALLAS 390 HANGS ON MATH OPERATIONS
C51: DALLAS 390 MATH ACCELERATOR OPERATIONS
C51: DALLAS 390/400 INTERRUPTS IN ALTERNATE 64K CODE PAGE
C51: DALLAS 390/400/520 STRUCTURE POINTER INCREMENT PROBLEM
C51: DALLAS 390/400/5240 REENTRANT FUNCTION
C51: DALLAS 80C420 OR 89C420 HEADER FILE?
C51: DALLAS DS5240 MODULO-ARITHMETIC ACCELERATOR
C51: DALLAS TINI BOARD SOFTWARE PROBLEMS
C51: DASHES IN FILENAMES
C51: DATA OVERLAYING PROBLEM WITH STRUCT PARAMETERS
C51: DATA OVERLAYING WITH RTOS APPLICATIONS
C51: DATA TYPE QUESTION
C51: DATA_GROUP AND STACK PROBLEMS
C51: DEBUG DIRECTIVE
C51: DEBUGGER WON'T STOP ON BREAKPOINTS, ON ST UPSD33XX
C51: DECLARING 2 VARIABLES AT THE SAME ADDRESS
C51: DECLARING BDATA AND SBIT VARIABLES
C51: DECLARING EXTERNAL SBITS
C51: DEFAULT PAGELENGTH IS 68, NOT 60
C51: DEFAULT STARTUP AND INITIALIZATION CODE
C51: DEFINE DIRECTIVE
C51: DEFINING THE MINIMUM STACK SIZE
C51: DETERMINING THE LOCATION OF ASSEMBLER INSTRUCTIONS
C51: DIFFERENCES BETWEEN C51 V7.50 AND V7.50A
C51: DIFFERENCES BETWEEN V6.10 AND V6.10A
C51: DIRECTING PRINTF OUTPUT TO SECOND SERIAL PORT
C51: DISABLE DIRECTIVE
C51: DISABLING INTERRUPTS ON SILICON LABS F12X/F13X DEVICES
C51: DIVISION DOESN'T WORK
C51: DIVISION PROBLEMS WITH THE DALLAS 390 / DALLAS 400
C51: DO THE KEIL TOOLS WORK WITH ALL 8051 CHIPS?
C51: DO XDATA AND CODE MEMORY OVERLAP?
C51: DOES ENUM TYPE CHECKING WORK?
C51: DOES THE RUN-TIME LIBRARY DISABLE INTERRUPTS?
C51: DOUBLE PRECISION MATH ROUTINES
C51: DS5000 REAL-TIME CLOCK EXAMPLE CODE
C51: DS80C320.H INCLUDE FILE IS INCORRECT
C51: DS80C390 ARITHMETIC ACCELERATOR
C51: DUAL DATA POINTER PERFORMANCE INCREASE
C51: DUAL DATA POINTERS AND CYPRESS EZ-USB
C51: DUAL DATA POINTERS AND PHILIPS
C51: DUAL DATA POINTERS FOR DALLAS PARTS
C51: EFFICIENT CODE FOR BYTE ACCESS CONVERSION TO LONG
C51: ELIMINATING 16-BIT POINTER INCREMENTS
C51: EMPTY RELOCATABLE SEGMENT
C51: ENUM EXAMPLES
C51: ERROR 146 (INVALID BASE ADDRESS)
C51: ERROR 166 (ARRAY OF FUNCTIONS)
C51: ERROR 200 (LEFT SIDE OF '.' REQUIRES STRUCT/UNION)
C51: ERROR 230 (UNKNOWN STRUCT/UNION/ENUM TAG)
C51: ERROR 258 (MSPACE ILLEGAL IN STRUCT/UNION)
C51: ERROR 274 (ABSOLUTE SPECIFIER ILLEGAL)
C51: ERROR C202 USING XBYTE ABSOLUTE ADDRESSING
C51: ERROR C249 (SPECIAL INITIALIZATION EXCEEDS 8K)
C51: ERROR C267 ('FUNCTION': REQUIRES ANSI-STYLE PROTOTYPE)
C51: ERRORS USING SBITS AND SFRS
C51: EVAL AND THE FLOATING-POINT LIBRARY
C51: EVALUATION COMPILER FOR CYPRESS EZ-USB FAMILY
C51: EXAMPLE PROGRAMS FOR THE DALLAS 390 CONTIGUOUS MODE
C51: EXAMPLE PROGRAMS FOR THE PHILIPS MX DEVICES
C51: EXECUTING SPECIAL INSTRUCTIONS IMMEDIATELY AFTER RESET
C51: EXPECT LCALL BUT SEE LJMP
C51: EXPORTING SYMBOLS FOR EMULATORS
C51: EXTERN DECLARATIONS USING _AT_
C51: EXTERN VARS AND INLINE ASSEMBLY
C51: EXTERNAL MEMORY ACCESSED FOR DATA MEMORY POINTER
C51: EXTERNAL SFR ACCESS FOR 8051 PROGRAMS
C51: EZ-USB STARTUP CODE
C51: FAR DATA POINTER BOUNDARIES
C51: FAR VAR _AT_ COMPARED TO CAST VALUE
C51: FATAL ERROR (CANNOT OPTIMIZE FUNCTION)
C51: FATAL ERROR (MORE THAN 256 SEGMENTS)
C51: FATAL ERROR 210 (RTX51.LIB NOT FOUND)
C51: FATAL ERROR WHEN USING #PRAGMA SRC
C51: FLASH MEMORY ON THE ADUC812
C51: FLOATFUZZY DIRECTIVE
C51: FLOATING POINT LIBRARY ROUTINES REGISTER USAGE
C51: FLOATING-POINT REENTRANCY IN ISR?
C51: FORMAT OF ?C_INITSEG SEGMENT
C51: FORMAT OF __DATE__ MACRO HAS CHANGED
C51: FORMFEEDS IN LISTING FILES
C51: FULL VERSION OF TOOLS SHOW CODE SIZE LIMIT
C51: FUNCTION OF ?C?ICALL AND ?C?ICALL2
C51: FUNCTION POINTERS IN CONTIGUOUS MODE
C51: FUNCTION PROTOTYPES FOR REENTRANT FUNCTIONS
C51: FUNCTIONS THAT ARE REENTRANT
C51: GAPS IN DATA SPACE
C51: GENERAL PURPOSE SFR INTERFACE
C51: GENERATING HEX FILES FOR CODE BANKING PROGRAMS
C51: GET ERROR A45: USING IN-LINE ASSEMBLER
C51: GETCHAR ECHOS CHARACTERS
C51: GETTING EVAL VERSION USING SILABS IDE
C51: GETTING INLINE ASSEMBLY TO WORK
C51: GETTING INTERRUPTS WORKING
C51: GETTING MANUALS
C51: GETTING THE CODE BANK OF A FUNCTION
C51: GETTING THE CURRENT BANK NUMBER
C51: GLOBAL OR STATIC VARIABLES NOT BEING INITIALIZED
C51: GLOBAL VARIABLE PROBLEM WITH DALLAS 390 CONTIGUOUS MODE
C51: HALT BUTTON DOES NOT STOP SIMULATOR EXECUTION
C51: HANDLING UNUSED INTERRUPTS
C51: HEADER FILE FOR THE PHILIPS 87C554
C51: HOW ARE FUNCTION PARAMETERS HANDLED?
C51: HOW BIG CAN A BINARY NUMBER BE?
C51: HOW DO I READ A LATCH?
C51: HOW TO DIRECTLY ADDRESS MULTIPLE CONSECUTIVE SFRS
C51: HOW TO GIVE DESCRIPTIVE NAMES TO PORT PINS
C51: HOW TO USE 256 BYTES DATA SPACE
C51: HYPHENS ARE NOT ALLOWED IN INCLUDE FILE FILENAMES
C51: IDATALOOP NEVER ENDS
C51: IMPLEMENTING XDATA BANKING
C51: IN-APPLICATION PROGRAMMING (IAP) ON PHILIPS LPC9XX
C51: INCLUDE FILE FOR ATMEL 89S8252
C51: INCLUDE FILES IN THE DEPENDENCY CHECK
C51: INCORRECT ACCESSING OF 2D ARRAY IN STRUCTURE
C51: INCORRECT OPERATION OF PRINTF AND SIZEOF
C51: INCORRECT VALUE STORED IN CHAR
C51: INDENTIFY UNCALLED LIBRARY ROUTINES
C51: INDIRECT FUNCTION CALLS WITH CODE BANKING
C51: INDIRECTLY ACCESSING 8051 SFRS
C51: INDIRECTLY CALLED REENTRANT FUNCTIONS
C51: INFINEON C517A A/D EXAMPLE PROGRAM
C51: INFINEON WATCHDOG TIMER RESETS SIMULATOR
C51: INIT_MEMPOOL REQUIRES MORE MEMORY THAN IS ACTUALLY USED
C51: INITIALIZING AN ABSOLUTELY LOCATED VARIABLE
C51: INITIALIZING FAR DATA
C51: INITIALIZING THE 320/520 2ND SERIAL PORT
C51: INITIALIZING XDATA OVER FF00H
C51: IN-LINE ASM GIVES COMPILER WARNINGS
C51: INLINE ASSEMBLY
C51: INLINE ASSEMBLY GENERATES TARGET OUT OF RANGE
C51: IN-SYSTEM FLASH PROGRAMMING (PART 1)
C51: IN-SYSTEM FLASH PROGRAMMING (PART 2)
C51: IN-SYSTEM FLASH PROGRAMMING WITH ROM SIZE > 64KB
C51: INTEGER PROMOTION
C51: INTERFACE FOR IAP FUNCTIONS ON PHILIPS DEVICES
C51: INTERRUPT CODE NOT IN CORRECT SPACE
C51: INTERRUPT SERVICE ROUTINES LOCATED AT WRONG ADDRESSES
C51: INTERRUPT VECTOR NUMBERS
C51: INTERRUPT-DRIVEN SERIAL I/O
C51: INTERRUPTS AND LOCAL VARIABLES
C51: INTERRUPTS NOT GENERATED
C51: INTERVAL DIRECTIVE
C51: INTPROMOTE/NOINTPROMOTE DIRECTIVE
C51: INTVECTOR/NOINTVECTOR DIRECTIVE
C51: INVALID SERIAL NUMBER/UNABLE TO INSTALL FROM CD
C51: IS RETURN REQUIRED FOR VOID FUNCTIONS?
C51: IS STARTUP.A51 REQUIRED?
C51: IS THE PHILIPS XA SUPPORTED?
C51: IS THERE A LITTLE ENDIAN/BIG ENDIAN COMPILER OPTION?
C51: IS THERE A TRANSLATOR FOR PL/M-51 TO C?
C51: IS V5.1 REALLY V5.1?
C51: KBHIT LIBRARY ROUTINE IS MISSING
C51: L51_BANK.A51 ASSEMBLES WITH ERRORS
C51: LARGE DIRECTIVE
C51: LATENCY OF INTERRUPT SERVICE ROUTINES
C51: LIBRARY PROBLEMS WITH DALLAS CONTIGUOUS MODE
C51: LIMITS ON FUNCTIONS WITH VARIABLE-LENGTH ARGUMENT LISTS
C51: LINK INTERBANK CALL TABLE ?BANK?SELECT
C51: LINKER WARNINGS AFTER UPGRADING SOFTWARE
C51: LINKING PROGRAMS FOR DS80C400 USING START400.A51 FAILS
C51: LINKING V6 LIBRARIES WITH V5 PROGRAMS
C51: LISTINCLUDE DIRECTIVE
C51: LITTLE-ENDIAN CAN REGISTERS, BIG-ENDIAN COMPILER
C51: LJMP & LCALL INSTEAD OF AJMP & ACALL
C51: LJMP INSTRUCTIONS IN INLINE ASSEMBLER CORRUPTED
C51: LOCAL VARIABLES PRESERVE VALUES BETWEEN FUNCTION CALLS
C51: LOCATE STRUCT TO SFR SPACE
C51: LOCATING A TABLE OF POINTERS AT A SPECIFIC ADDRESS
C51: LOCATING A VARIABLE IN A REGISTER
C51: LOCATING DATA STRUCTURES IN XDATA IN THE ORDER DEFINED
C51: LOCATING FUNCTION TABLES IN CODE MEMORY
C51: LOCATING INITIALIZED VARIABLES AT ABSOLUTE ADDRESSES
C51: LOCATING INTERRUPTS IN EVAL SOFTWARE
C51: LOCATING OBJECT FILES AT SPECIFIC STARTING ADDRESSES
C51: LOCATING THE STACK AFTER IDATA VARIABLES
C51: LOCATING VARIABLES IN MULTIPLE XDATA AREAS
C51: LOCATING VARIABLES TO  FAR CONST SPACE
C51: LOG AND POW FUNCTION PROBLEMS
C51: LONG FILE NAMES
C51: LONG POINTER ARITHMETIC
C51: LROL AND LROR FUNCTIONS ARE NOT INTRINSIC
C51: MATH FUNCTIONS
C51: MATH OPERATIONS SUPPORTED
C51: MAXARGS DIRECTIVE
C51: MEMORY ALLOCATION
C51: MEMORY CLASSES FOR STRINGS AND STRING POINTERS
C51: MEMORY TYPES FOR THE DALLAS 390 CONTIGUOUS MODE
C51: MISSING UART SFR DEFINITIONS FOR PHILIPS 8XC51MX
C51: MIXING C AND ASSEMBLY
C51: MIXING MEMORY MODELS
C51: MIXING MEMORY MODELS AND MEMORY AREAS
C51: MIXING REENTRANT FUNCTIONS AND NON-REENTRANT FUNCTIONS
C51: MIXING SRAM AND NVRAM
C51: MOD517/ NOMOD517 DIRECTIVE
C51: MODDP2/NOMODDP2 DIRECTIVE
C51: MODIFYING CONSTANT STRUCTURES
C51: MODIFYING THE STARTUP ROUTINES
C51: MULTIPLE LARGE OBJECTS IN HDATA
C51: MULTIPLE VARIABLES AT THE SAME ADDRESS
C51: NAMING CONVENTIONS FOR FUNCTION SYMBOLS
C51: NO SIMULATION OF A/D CONVERTER
C51: NOAMAKE DIRECTIVE
C51: NOEXTEND DIRECTIVE
C51: NOEXTEND DOES NOT WORK PROPERLY
C51: NON-REENTRANT PRINTF
C51: NOREGPARMS DOES NOT WORK ON REENTRANT FUNCTIONS
C51: NULL POINTER COMPARE FAILS WHEN MIXING MEMORY TYPES
C51: NULL POINTER COMPARE FAILS WITH MALLOC AND CALLOC
C51: OBJECT/NOOBJECT DIRECTIVE
C51: OBJECTEXTEND DIRECTIVE
C51: OBTAINING THE PARITY OF A CHARACTER
C51: OFFSETS WITH FAR MEMORY ACCESS
C51: ON-CHIP BANKED PDATA SUPPORT
C51: ON-CHIP MEMORY CONFIGURATION FOR STM UPSD DEVICES
C51: OPTIMIZED C WITH INLINE ASSEMBLER
C51: OPTIMIZER LEVELS AND VOLATILE VARIABLES
C51: OPTIMUM CODE FOR BIT TO BYTE CONVERSION
C51: ORDER DIRECTIVE
C51: ORDER OF BITFIELDS
C51: OUT OF STACK SPACE
C51: OVERLAYABLE SEGMENTS AND MEMORY MODELS
C51: PAGELENGTH DIRECTIVE
C51: PAGEWIDTH DIRECTIVE
C51: PASSING PARAMETERS TO INDIRECTLY CALLED FUNCTIONS
C51: PERFORMING A SOFTWARE RESET
C51: PHILIPS 87C51RC 512-BYTE INTERNAL RAM SUPPORT
C51: PHILIPS LPC SUPPORT
C51: PHILIPS P8XC557E8 2KB INTERNAL RAM SUPPORT
C51: PHYSICAL LOCATION OF REGISTERS
C51: PLACING FAR VARIABLES AT ABSOLUTE LOCATIONS
C51: POINTER ASSIGNMENT CRASHES IN THE CONTIGUOUS MODE
C51: POINTER STORAGE SIZE
C51: POP INTRINSIC GENERATES UNRESOLVED EXTERNAL
C51: PORTING CODE FROM PL/M-51
C51: PORTING FROM OLDER TO NEWER TOOLS
C51: PORTING IAR XMEM TO KEIL XDATA
C51: POST INCREMENT ON LONG FAR TYPES
C51: PREPRINT DIRECTIVE
C51: PREVENTING COMMON BLOCK OPTIMIZATION
C51: PRINT/NOPRINT DIRECTIVE
C51: PRINTF GIVES WRONG VALUES
C51: PRINTF LIBRARY ROUTINE PROBLEM WITH 0-LENGTH PRECISION
C51: PROBLEMS IN SCANF AND SSCANF
C51: PROBLEMS INITIALIZING BITFIELD WITH POINTER
C51: PROBLEMS SOLVED IN C51 V5.50
C51: PROBLEMS SOLVED IN C51 V6.01
C51: PROBLEMS SOLVED IN C51 V6.02
C51: PROBLEMS SOLVED IN C51 V6.02 - V6.14
C51: PROBLEMS SOLVED IN C51 V6.12
C51: PROBLEMS SOLVED IN C51 V6.20 - V6.23
C51: PROBLEMS SOLVED IN C51 V7.00 - V7.01
C51: PROBLEMS USING PRINTF
C51: PROBLEMS WHEN LOCATING FUNCTIONS IN CODE BANKS
C51: PROBLEMS WITH #PRAGMA ASM
C51: PROBLEMS WITH FUNCTION POINTERS OVERWRITING VARIABLES
C51: PROBLEMS WITH HYPHENS IN FILENAMES AND PROJECT NAMES
C51: PROBLEMS WITH LONG COMPARISONS TO 0 IN V6.21
C51: PROBLEMS WITH REGISTER OPTIMIZATION IN V6.22
C51: PROGRAM HANGS CASTING INT TO FLOAT ON DALLAS 400
C51: PROGRAM NEVER REACHES MAIN
C51: PROGRAMMING THE CYPRESS CY3671 FOR GPIF ACCESS
C51: PROGRAMS THAT USE ONE REGISTERBANK
C51: PROGRAM-WIDE SOURCE/ASSEMBLY LISTING FILE
C51: PURPOSE OF THE INIT.A51 FILE
C51: RAMSIZE FOR THE PHILIPS 87C528
C51: READING CODE SPACE
C51: READING FROM AN INPUT PORT
C51: READING PORT INPUT VERSUS PORT LATCH
C51: READ-MODIFY-WRITE REGISTERS
C51: REDIRECTING INTERRUPT VECTORS
C51: REDIRECTING SERIAL I/O TO OTHER UARTS
C51: REENTRANCY ISSUES WITH THE DALLAS 390 MATH ACCELERATOR
C51: REENTRANT FUNCTIONS AND THE REENTRANT STACK POINTER
C51: REENTRANT FUNCTIONS AND VARIABLES
C51: REENTRANT STACK NEEDED FOR REENTRANT LIBRARY FUNCTIONS?
C51: REGFILE DIRECTIVE
C51: REGISTER USAGE OVER  XBANKING.A51 FUNCTIONS
C51: REGISTER VARIABLES
C51: REGISTERBANK DIRECTIVE
C51: RELOCATING AUTOVECTOR INTERRUPTS ON THE CYPRESS EZ-USB
C51: RELOCATING INTERRUPT VECTOR TABLES
C51: RELOCATING PROGRAM CODE IN C
C51: REMOVING AND DISABLING WARNING 13 (RECURSIVE CALL)
C51: REMOVING LINKER WARNING L16 (UNCALLED SEGMENT)
C51: REPLACE AJMP/ACALL WITH LJMP/LCALL
C51: REPLACING MEM AND STR LIBRARY ROUTINES
C51: RESERVE MEMORY AT ABSOLUTE BANK ADDRESSES
C51: RESERVING CODE SPACE
C51: RESERVING MEMORY ACCESSED WITH XBYTE AND XWORD
C51: RESERVING SPACE IN CODE BANKS
C51: RESERVING SPACE IN CODE MEMORY
C51: RESET VECTOR DOES NOT JUMP TO C CODE
C51: RET_ISTK DIRECTIVE
C51: RET_PSTK DIRECTIVE
C51: RET_XSTK DIRECTIVE
C51: RE-USE LIBRARY FUNCTIONS FROM A BOOT APPLICATION
C51: ROM DIRECTIVE
C51: ROM(COMPACT)
C51: RTX51 AND TRISCEND BANKING WITH CUSTOM L51_BANK.A51
C51: RUNTIME DETERMINATION OF LAST XDATA ADDRESS USED
C51: SAVE/RESTORE DIRECTIVE
C51: SAVING EXTRA VARIABLES ON THE STACK
C51: SAVING REGISTERS IN INTERRUPTS
C51: SBIT MODIFICATIONS NOT CORRECTLY WRITTEN TO MEMORY
C51: SCANF %F FAILS WITH USER-DEFINED GETKEY FUNCTION
C51: SCANF() BEHAVES INCORRECTLY
C51: SELECTING DIFFERENT REGISTER BANKS IN A FUNCTION
C51: SETTING OR CLEARING BITS IN THE ACCUMULATOR
C51: SETTING PROGRAM START ADDRESS
C51: SETTING THE LOCATION OF THE REENTRANT STACK POINTER
C51: SIDE-EFFECTS OF VPRINTF AND VSPRINTF
C51: SIGNED BIT FIELD NOT SUPPORTED
C51: SMALL DIRECTIVE
C51: SOFTWARE RESET IN C
C51: SOME HLP FILES DON'T WORK UNDER WINDOWS
C51: SOURCE CODE DOESN'T DISPLAY IN MY EMULATOR
C51: SPECIFYING HEADER PATHS FROM THE COMMAND LINE
C51: SPLITTING CODE BETWEEN EPROM AND FLASH/EEPROM
C51: SRC DIRECTIVE
C51: SROM MACROS RETURN INCORRECT ADDRESSES
C51: SSCANF RETURNS INCORRECT NUMBER OF PARAMETERS SCANNED
C51: STACK AND REENTRANT STACK SYMBOLIC NAMES
C51: STACK POINTER INITIALIZATION IN STARTUP CODE
C51: STACK REQUIREMENTS OF RUN-TIME LIBRARY FUNCTIONS
C51: STACK UTILIZATION
C51: STARTING A FUNCTION AT A SPECIFIC ADDRESS
C51: STARTUP CODE UNRESOLVED EXTERNAL (?B_SWITCH0)
C51: STATIC DATA VARIABLES
C51: STATIC POINTERS VS EXPLICITLY PLACED VARIABLES
C51: STDARG.H QUESTIONS
C51: STORAGE OF LOCAL VARIABLES
C51: STRING TABLE IN XDATA
C51: STRUCTURE MEMORY SPACE DETAILS IN LISTING FILES
C51: SUPPORT FOR C505 DATA POINTERS
C51: SUPPORT FOR DEVICES WITH UNDER 2K CODE SPACE
C51: SUPPORT FOR FLOATING-POINT NUMBERS
C51: SUPPORT FOR -I AND -D MAKEFILE COMMANDS
C51: SUPPORT FOR INLINE KEYWORD
C51: SUPPORT FOR PHILIPS P89C51RC & P89C51RC2
C51: SUPPORT FOR THE 515C EIGHT DATA POINTERS
C51: SUPPORT FOR THE 8744 SDLC MICROCONTROLLER
C51: SUPPORT FOR THE ATMEL AT89C
C51: SUPPORT FOR THE ATMEL T80C51 DEVICES
C51: SUPPORT FOR THE DALLAS 390
C51: SUPPORT FOR THE PHILIPS 80C51RX
C51: SUPPORT FOR THE PHILIPS 87C652
C51: SUPPORT FOR THE PHILIPS 87LPC764
C51: SUPPORT FOR THE PHILIPS P89C66X DEVICES
C51: SUPPORT FOR THE SIEMENS DECT472X
C51: SUPPORT FOR THE SST89C5X
C51: SUPPORT FOR THE WINBOND W77C32
C51: SUPPORT OF NON-STANDARD CHIP FEATURES
C51: SUPPORTED DATA TYPES
C51: SUPPRESSING CALLS TO FUNCTION FROM COMMON CODE BLOCKS
C51: SWITCH/CASE STATEMENTS
C51: SYMBOLS DIRECTIVE
C51: TCP/IP SUPPORT
C51: TRANSMITTING FLOATING-POINT NUMBERS
C51: TYPEDEF ENUM
C51: UNABLE TO FIND INCLUDE FILES USING LONG DIRECTORY NAMES
C51: UNRESOLVED EXTERNAL ?C?CLDOPTR
C51: UNRESOLVED EXTERNAL ERROR USING ASSEMBLER AND C
C51: UNRESOLVED EXTERNAL SYMBOL ?C?XPAGE1SFR
C51: UNRESOLVED EXTERNAL WITH FAR MEMORY TYPE
C51: UNUSED OPCODES
C51: UPDATING THE PROGRAM COUNTER ON THE STACK
C51: USB DONGLE NOT RECOGNIZED
C51: USE OF DUAL DATA POINTERS
C51: USE OF F0 AND F1 IN PSW
C51: USE SPECIFIC ADDRESS RANGE FOR MOVC
C51: USING #IF TO TEST CONDITIONS
C51: USING > 64KB EXTERNAL SRAM WITH C8051F12X DEVICES
C51: USING 1K SRAM ON DALLAS DS89C420
C51: USING AUTO-DECREMENT/AUTO-TOGGLE WITH DALLAS 390 & 400
C51: USING C51 V7.50 WITH A C51 V8 PSN
C51: USING DONGLES WITH WINDOWS NT/2000
C51: USING LIBRARY FUNCTIONS
C51: USING MDU_F120 AND MDU_R515 IN µVISION
C51: USING MEMORY FROM 00H TO 1FH
C51: USING MEMORY-MAPPED DEVICES
C51: USING MICROCONTROLLERS WITH ON-CHIP XDATA
C51: USING MORE THAN 2K OF CODE SPACE
C51: USING MOVX TO UPDATE FLASH ON C8051F320
C51: USING MULTI-FUNCTION PINS ON ATMEL AT89C51RD2
C51: USING NON-REENTRANT FUNCTION IN MAIN AND INTERRUPTS
C51: USING NOOVERLAY WITH µVISION2
C51: USING NOP IN C
C51: USING ONLY ONE REGISTERBANK
C51: USING PDATA MEMORY
C51: USING PDATA ON ADUC83X AND ADUC84X DEVICES
C51: USING PDATA VARIABLES ON INFINEON XC800
C51: USING PHILIPS MX DEVICE WITH C51 / BL51
C51: USING ROM LIBRARY IN INFINEON XC8XX DEVICES
C51: USING SETJMP AND LONGJMP WITH CODE BANKING AND RTX51
C51: USING SFR16 FOR 16-BIT SFRS
C51: USING SIO0 AND SIO1 WITH THE DALLAS 320
C51: USING THE 517 MULTIPLY/DIVIDE UNIT IN INTERRUPTS
C51: USING THE C509 MULTIPLY/DIVIDE UNIT
C51: USING THE CODEWRIGHT EDITOR
C51: USING THE DS87C520 INTERNAL SRAM
C51: USING THE ON-CHIP XDATA OF THE INFINEON C515C
C51: USING THE PHILIPS 87C751
C51: USING TIMED ACCESS REGISTERS ON DALLAS PARTS
C51: USING VERSION 6.12 WITH A VERSION 8 INSTALLATION
C51: USING XRAM ON THE PHILIPS 80C66X AND 80C51RX DEVICES
C51: UTMOST SPEED ON INTEGER DIVISION
C51: V6.0 INSTALLATION PROBLEMS WITH CD-ROM RELEASE 12.99
C51: V6.00 OPTIMIZATIONS CAUSE LINKER ERRORS/WARNINGS
C51: V6.02 UPDATE SAYS V6.01
C51: VARIABLE BANKING CONFIGURATION OPTIONS
C51: VARIABLE ZERO INITIALIZIATION
C51: VARIABLES CREATED IN XDATA USING SMALL MODEL
C51: VARIABLES IN LARGE AND COMPACT MEMORY MODEL DON'T WORK
C51: VERIFYING LOOK-UP TABLE VALUES
C51: VERSION 6 RELEASE NOTES
C51: WARNING 173 (MISSING RETURN-EXPRESSION)
C51: WARNING 182 (POINTER TO DIFFERENT OBJECTS)
C51: WARNING 185 (DIFFERENT MEMORY SPACE)
C51: WARNING 196 (MSPACE PROBABLY INVALID)
C51: WARNING 198 (SIZEOF RETURNS ZERO)
C51: WARNING 206 (MISSING FUNCTION PROTOTYPE)
C51: WARNING 209 (TOO FEW ACTUAL PARAMETERS)
C51: WARNING 219 (LONG CONSTANT TRUNCATED TO INT)
C51: WARNING 245 (UNKNOWN PRAGMA, LINE IGNORED)
C51: WARNING 258 (MSPACE ILLEGAL ON STRUCT/UNION MEMBER)
C51: WARNING 259 (POINTER: DIFFERENT MSPACE)
C51: WARNING 259 (POINTER: DIFFERENT MSPACE)
C51: WARNING 260 (POINTER TRUNCATION)
C51: WARNING 261 (BIT IN REENTRANT FUNCTION)
C51: WARNING 265 (RECURSIVE CALL TO NON-REENTRANT FUNCTION)
C51: WARNING 271 (MISPLACED ASM/ENDASM CONTROL)
C51: WARNING 275 (EXPRESSION WITH POSSIBLY NO EFFECT)
C51: WARNING 276 (CONSTANT IN CONDITION EXPRESSION)
C51: WARNING 277 (DIFFERENT MSPACES TO POINTER)
C51: WARNING 280 (UNREFERENCED SYMBOL/LABEL)
C51: WARNING 307 (MACRO 'NAME': PARAMETER COUNT MISMATCH)
C51: WARNING 317 (MACRO 'NAME': INVALID REDEFINITION)
C51: WARNING 317 (REDEFINITION OF MACRO)
C51: WARNING 322 (UNKNOWN IDENTIFIER)
C51: WARNING 323 (NEWLINE EXPECTED EXTRA CHARACTERS FOUND)
C51: WARNING 324 (PREPROCESSOR TOKEN EXPECTED)
C51: WARNING 500 (BAD OR MISSING COMPILER OVERLAY)
C51: WARNING C259 (DIFFERENT ENUMERATION TYPES)
C51: WARNING C500 (MISSING DEVICE) AFTER UPDATE
C51: WARNINGLEVEL DIRECTIVE
C51: WHAT ARE THE LIMITS FOR FLOATING-POINT NUMBERS?
C51: WHAT C51 KIT SHOULD I BUY TO WORK WITH CYPRESS EZ-USB
C51: WHAT CAUSES HEX FILES TO CHANGE BETWEEN VERSIONS?
C51: WHAT IS ?C?LIB_DATA USED FOR?
C51: WHAT IS THE ADDRESS RANGE ACCEPTABLE BY XBYTE MACRO
C51: WHAT'S IN THE ?CO? SEGMENTS?
C51: WHAT'S THE BEST WAY TO DISABLE/REENABLE INTERRUPTS
C51: WHEN ARE FUNCTIONS REENTRANT
C51: WHEN/WHERE ARE GLOBAL AND STATIC VARIABLES INITIALIZED?
C51: WHERE IS THE ABSOLUTE OMF OBJECT MODULE?
C51: WHICH 8051-BASED CHIPS ARE SUPPORTED?
C51: WHICH STARTUP CODE TO USE
C51: WHY DOES C51 V6.01 INCLUDE C51 V5.50A?
C51: WHY DOES VA_ARGS WORK?
C51: WHY NUMBER OF BYTES PASSED TO PRINTF IS LIMITED
C51: WIDE CHARACTER SUPPORT
C51: WRITING INTERRUPT ROUTINES
C51: WRITING TO THE OUTPUT PORTS
C51: WRONG CODE GENERATED FOR DOUBLE INDIRECTION
C51: WRONG HEADER FILE FOR PHILIPS P89C664
C51: XDATA BANKING WITH R8051XC
C51: XDATA OVERLAYING
C51: XDATA PROBLEMS PORTING C51 CODE TO C251
C51: XOR GIVES INCORRECT RESULTS
C51: XWORD MACRO QUESTIONS