"DS80C390", /* Target name */
NULL,
{
+ glue,
TRUE, /* Emit glue around main */
MODEL_SMALL | MODEL_LARGE | MODEL_FLAT24,
MODEL_SMALL
NULL,
1
},
+ { NULL, NULL },
{
+1, 1, 4, 1, 1, 0
},
NULL,
_ds390_nativeMulCheck,
FALSE,
+ TRUE, /* little endian */
0, /* leave lt */
0, /* leave gt */
1, /* transform <= to ! > */
NULL,
1
},
+ { NULL, NULL },
{
+1, 1, 4, 1, 1, 0
},
NULL,
NULL,
FALSE,
+ TRUE, /* little endian */
0, /* leave lt */
0, /* leave gt */
1, /* transform <= to ! > */
} /* MODEL_FLAT24 */
}
+extern char * iComments2;
+
+static void _ds400_generateRomDataArea(FILE *fp, bool isMain)
+{
+ /* Only do this for the file containing main() */
+ if (isMain)
+ {
+ fprintf(fp, "%s", iComments2);
+ fprintf(fp, "; the direct data area used by the DS80c400 ROM code.\n");
+ fprintf(fp, "%s", iComments2);
+ fprintf(fp, ".area ROMSEG (ABS,CON,DATA)\n\n");
+ fprintf(fp, ".ds 24 ; 24 bytes of directs used starting at 0x68\n\n");
+ }
+}
+
+static void _ds400_linkRomDataArea(FILE *fp)
+{
+ fprintf(fp, "-b ROMSEG = 0x0068\n");
+}
+
+
PORT ds400_port =
{
TARGET_ID_DS400,
"DS80C400", /* Target name */
NULL,
{
+ glue,
TRUE, /* Emit glue around main */
MODEL_SMALL | MODEL_LARGE | MODEL_FLAT24,
MODEL_SMALL
NULL,
1
},
+ { _ds400_generateRomDataArea, _ds400_linkRomDataArea },
{
+1, 1, 4, 1, 1, 0
},
NULL,
_ds390_nativeMulCheck,
FALSE,
+ TRUE, /* little endian */
0, /* leave lt */
0, /* leave gt */
1, /* transform <= to ! > */