X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=listing.c;h=f2c61f6325e6438e2611549457c48507e4a7c0d6;hp=3d632560ab89ccf8ce561a29b8d9fb6e10628f74;hb=03dd34951a331e0b8971195ccef1600fffaea2e6;hpb=60f204cb9e3905100da0d89f14bb40db764acd9e diff --git a/listing.c b/listing.c index 3d63256..f2c61f6 100644 --- a/listing.c +++ b/listing.c @@ -1,7 +1,7 @@ // -// RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System +// RMAC - Reboot's Macro Assembler for all Atari computers // LISTING.C - Listing Output -// Copyright (C) 199x Landon Dyer, 2011-2012 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2017 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 // Source utilised with the kind permission of Landon Dyer // @@ -14,11 +14,11 @@ // nnnnn =vvvvvvvv #include "listing.h" -#include "version.h" -#include "token.h" +#include "error.h" #include "procln.h" #include "sect.h" -#include "error.h" +#include "token.h" +#include "version.h" char * list_fname; // Listing filename uint8_t subttl[TITLESIZ]; // Current subtitle @@ -217,26 +217,29 @@ void ship_ln(const char * ln) if (listing <= 0) return; - // Notice bottom of page - if (nlines >= pagelen - BOT_MAR) - eject(); - - // Print title, boilerplate, and subtitle at top of page - if (nlines == 0) + if (list_pag) { - pageno++; - println(""); - date_string(datestr, dos_date()); - time_string(timestr, dos_time()); - sprintf(buf, - "%-40s%-20s Page %-4d %s %s RMAC %01i.%01i.%02i (%s)", - title, curfname, pageno, timestr, datestr, MAJOR, MINOR, PATCH, - PLATFORM); - println(buf); - sprintf(buf, "%s", subttl); - println(buf); - println(""); - nlines = 4; + // Notice bottom of page + if (nlines >= pagelen - BOT_MAR) + eject(); + + // Print title, boilerplate, and subtitle at top of page + if (nlines == 0) + { + pageno++; + println(""); + date_string(datestr, dos_date()); + time_string(timestr, dos_time()); + sprintf(buf, + "%-40s%-20s Page %-4d %s %s RMAC %01i.%01i.%02i (%s)", + title, curfname, pageno, timestr, datestr, MAJOR, MINOR, PATCH, + PLATFORM); + println(buf); + sprintf(buf, "%s", subttl); + println(buf); + println(""); + nlines = 4; + } } println(ln); @@ -249,8 +252,6 @@ void ship_ln(const char * ln) // void InitListing(void) { - extern VALUE dos_date(), dos_time(); - subflag = 0; pageno = 0; nlines = 0; @@ -301,11 +302,14 @@ void listeol(void) { 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) @@ -331,7 +335,8 @@ nochunk: 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;