+/** @file main.c
+ mcs51 specific general functions.
+
+ Note that mlh prepended _mcs51_ on the static functions. Makes
+ it easier to set a breakpoint using the debugger.
+*/
#include "common.h"
#include "main.h"
#include "ralloc.h"
+/* list of key words used by msc51 */
+static char *_mcs51_keywords[] = {
+ "at",
+ "bit",
+ "code",
+ "critical",
+ "data",
+ "far",
+ "idata",
+ "interrupt",
+ "near",
+ "pdata",
+ "reentrant",
+ "sfr",
+ "sbit",
+ "using",
+ "xdata",
+ "_data",
+ "_code",
+ "_generic",
+ "_near",
+ "_xdata",
+ "_pdata",
+ "_idata",
+ NULL
+};
+
+
void mcs51_assignRegisters (eBBlock **ebbs, int count);
static bool _mcs51_parseOptions(int *pargc, char **argv)
/* Sizes: char, short, int, long, ptr, fptr, gptr, bit, float, max */
1, 1, 2, 4, 1, 2, 3, 1, 4, 4
},
+ {
+ "XSEG (XDATA)",
+ "STACK (DATA)",
+ "CSEG (CODE)",
+ "DSEG (DATA)",
+ "ISEG (DATA)",
+ "XSEG (XDATA)",
+ "BSEG (BIT)",
+ "RSEG (DATA)",
+ "GSINIT (CODE)",
+ "OSEG (OVR,DATA)"
+ },
{
- +1, 1, 4, 0, 0
+ +1, 1, 4, 1, 1
},
/* mcs51 has an 8 bit mul */
{
_mcs51_finaliseOptions,
_mcs51_setDefaultOptions,
mcs51_assignRegisters,
- _mcs51_getRegName
-};
+ _mcs51_getRegName ,
+ _mcs51_keywords
+};