-
- if (size == 1)
- fprintf(oFile,
- "\t.byte %s", val->name) ;
- else
- fprintf (oFile,
- "\t.byte %s,(%s >> 8)",
- val->name, val->name);
-
- if (size > 2)
- fprintf (oFile, ",#0x02\n");
- else
- fprintf (oFile, "\n");
-
+
+ if (val->name && strlen(val->name)) {
+ switch (size) {
+ case 1:
+ tfprintf(oFile,
+ "\t!dbs\n", val->name) ;
+ break;
+ case 2:
+ tfprintf(oFile, "\t!dws\n", val->name);
+ break;
+ /* PENDING: probably just 3 */
+ default:
+ /* PENDING: 0x02 or 0x%02x, CDATA? */
+ fprintf (oFile,
+ "\t.byte %s,(%s >> 8),#0x02\n",
+ val->name, val->name);
+ }
+ }
+ else {
+ switch (size) {
+ case 1:
+ tfprintf(oFile, "\t!dbs\n", aopLiteral(val, 0));
+ break;
+ case 2:
+ tfprintf(oFile, "\t!dws\n",
+ aopLiteralLong(val, 0, 2));
+ break;
+ case 3:
+ /* PENDING: 0x02 or 0x%02x, CDATA? */
+ fprintf(oFile, "\t.byte %s,%s,0x02\n",
+ aopLiteral (val, 0), aopLiteral (val, 1));
+ break;
+ default:
+ assert(0);
+ }
+ }
+
+