')', ']', '}', 0, // CPAR
CR_DEFINED, CR_REFERENCED, // SUNARY (special unary)
CR_STREQ, CR_MACDEF,
- CR_DATE, CR_TIME, 0,
+ CR_DATE, CR_TIME,
+ CR_ABSCOUNT, 0,
'!', '~', UNMINUS, 0, // UNARY
'*', '/', '%', 0, // MULT
'+', '-', 0, // ADD
{
switch ((int)*tok++)
{
+ case CR_ABSCOUNT:
+ *evalTokenBuffer++ = CONST;
+ *evalTokenBuffer++ = (LONG)sect[ABS].sloc;
+ break;
case CR_TIME:
*evalTokenBuffer++ = CONST;
*evalTokenBuffer++ = dos_time();
case DOTL:
d = ".l";
break;
+ case CR_ABSCOUNT:
+ d = "^^abscount";
+ break;
case CR_DATE:
d = "^^date";
break;
printf("[DOTI]");
else if (*t == ENDEXPR)
printf("[ENDEXPR]");
+ else if (*t == CR_ABSCOUNT)
+ printf("[CR_ABSCOUNT]");
else if (*t == CR_DEFINED)
printf("[CR_DEFINED]");
else if (*t == CR_REFERENCED)
#define CR_MACDEF 'w' // ^^macdef - is macro defined?
#define CR_TIME 'x' // ^^time - DOS format time
#define CR_DATE 'y' // ^^date - DOS format date
+#define CR_ABSCOUNT 'z' // ^^abscount - count the number of bytes defined in curent .abs section
// Character Attributes
#define ILLEG 0 // Illegal character (unused)