#include "error.h"
char * list_fname; // Listing filename
-char subttl[TITLESIZ]; // Current subtitle
-int listing; // Listing level
+uint8_t subttl[TITLESIZ]; // Current subtitle
+int listing; // Listing level
int pagelen = 61; // Lines on a page
int nlines; // #lines on page so far
-LONG lsloc; // `sloc' at start of line
+LONG lsloc; // `sloc' at start of line
// Private
static int lcursect; // `cursect' at start of line
-static int llineno; // `curlineno' at start of line
-static int pageno; // Current page number
+static int llineno; // `curlineno' at start of line
+static int pageno; // Current page number
static int pagewidth; // #columns on a page
static int subflag; // 0, don't do .eject on subttl (set 1)
static char lnimage[IMAGESIZ]; // Image of output line
static char title[TITLESIZ]; // Current title
-static char datestr[20]; // Current date dd-mon-yyyy
+static char datestr[20]; // Current date dd-mon-yyyy
static char timestr[20]; // Current time hh:mm:ss [am|pm]
static char buf[IMAGESIZ]; // Buffer for numbers
static long unused; // For supressing 'write' warnings
}
-//
+//
// Return GEMDOS format time
//
VALUE dos_time(void)
}
-//
+//
// Create listing file with the appropriate name
//
void list_setup(void)
}
list_fname = NULL;
-
+
if ((list_fd = open(fnbuf, _OPEN_FLAGS, _PERM_MODE)) < 0)
cantcreat(fnbuf);
}
{
ch = sect[lcursect].sfcode;
+ if (lcursect != M6502)
+ {
for(; ch!=NULL; ch=ch->chnext)
{
if (lsloc >= ch->chloc && lsloc < (ch->chloc + ch->ch_size))
break;
}
+ }
// Fatal: Can't find chunk holding code
if (ch == NULL)
strncpy(lnimage + LOC_COL, buf, 8);
}
- if (lsloc >= (ch->chloc + ch->ch_size))
+ if (lcursect != M6502 &&
+ lsloc >= (ch->chloc + ch->ch_size))
{
if ((ch = ch->chnext) == NULL)
goto nochunk;
strcpy(buf, "xx");
p++; // Advance anyway
}
- else
+ else
sprintf(buf, "%02x", *p++ & 0xff);
strncpy(lnimage + col, buf, 2);
}
- // Flush partial line
+ // Flush partial line
if (col > DATA_COL)
{
uc_ln(lnimage);
tok += 2;
- // Always eject on pages 2+
+ // Always eject on pages 2+
if (ejectok && (subflag || pageno > 1))
eject();
{
if (*tok != STRING)
return error("missing string");
-
+
// strcpy(title, (char*)tok[1]);
strcpy(title, string[tok[1]]);
tok += 2;