mirror of
https://github.com/fadden/6502bench.git
synced 2024-11-12 21:09:29 +00:00
e6c5c7f8df
Added support for non-addressable regions, which are useful for things like file headers stripped out by the system loader, or chunks that get loaded into non-addressable graphics RAM. Regions are specified with the "NA" address value. The code list displays the address field greyed out, starting from zero (which is kind of handy if you want to know the relative offset within the region). Putting labels in non-addressable regions doesn't make sense, but symbol resolution is complicated enough that we really only have two options: ignore the labels entirely, or allow them but warn of their presence. The problem isn't so much the label, which you could legitimately want to access from an extension script, but rather the references to them from code or data. So we keep the label and add a warning to the Messages list when we see a reference. Moved NON_ADDR constants to Address class. AddressMap now has a copy. This is awkward because Asm65 and CommonUtil don't share. Updated the asm code generators to understand NON_ADDR, and reworked the API so that Merlin and cc65 output is correct for nested regions. Address region changes are now noted in the anattribs array, which makes certain operations faster than checking the address map. It also fixes a failure to recognize mid-instruction region changes in the code analyzer. Tweaked handling of synthetic regions, which are non-addressable areas generated by the linear address map traversal to fill in any "holes". The address region editor now treats attempts to edit them as creation of a new region. |
||
---|---|---|
.. | ||
Properties | ||
Address.cs | ||
Asm65.csproj | ||
CharEncoding.cs | ||
CpuDef.cs | ||
Formatter.cs | ||
Helper.cs | ||
Label.cs | ||
Number.cs | ||
OpDef.cs | ||
OpDescription.cs | ||
OpName.cs | ||
StatusFlags.cs | ||
StringOpFormatter.cs | ||
TriState16.cs |