[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problems using large files with Merlin 16+



I'm having "problems" with a Merlin 16+ assembler project.
Specifically, I get BAD ADDRESS MODE & UNKNOWN LABEL
messages on labels & code that _worked_fine_before_.
I've checked out the meaning of these errors, and the
code conforms to all syntax rules, etc.
 
Here's my idea of what's going on:
My source is getting _larger_ every day.
(88K to 100K total, split over about 17 files,
my main file being about 27K)
Although, in general, this is no sweat for 4 megs
of RAM, it seems to be a problem for Merlin 16+.
About half my files are "USE" files, the other half
are "PUT" files.  I understand that "USE" files are
supposed to remain in memory during assembly, but
it seems the assembler has been "forgetting" several
of my early equates.
It seems to me that I have reached the delicate point
of having just a little too much code & labels
but not enough to trigger any sort of _memory_
error.
 
For example, I "used" the file "Equates",
which had the line:
 
ToolDPptr = 0  (a zero page pointer equate)
 
And when I went to assemble it, it showed me
 
BAD ADDRESS MODE IN LINE xxx
 
   xxx     LDA [ToolDPptr]
 
which had _always_ worked before, and even still
work in other places in the source BEFORE line xxx
 
I'm able to "remind" Merlin about certain labels,
which is a patch by patch solution at best.
For example, if I get an UNKNOWN LABEL in line 457,
I can put an equate command in line 456, and it
works.  But then a different label pops up to be
dealt with.
 
I have my Merlin 8/16 docs, but have misplaced my
Merlin 16+ docs, so I can't research this as
much as I would like.
 
For now, I will break my project into link files
so that the assembler won't be overwhelmed by
assembling the entire project all the time.
 
I assume that my problem is that I have too many
labels and/or too much source code to assemble
properly altogether.  My problem occured after
adding a few labels, and writing another
200 lines of code.
 
My Question:  #1 Why is this happening?
        (Is it some upper limit on # of labels?)
        (Am I approching the limits of use/put?)
 
#2 Is there a simple way to solve the problem?
 
E-mail preferred, but posting is OK.
 
Thank you very much in advance.
 
* Andrew Schwerin *
* schwerin@k12.ucs.umass.edu *