Commit Graph

347 Commits

Author SHA1 Message Date
Carl-Henrik Skårstedt 794ffa70d2 Adding error handling for flushing local labels
- Errors were ignored in a couple of places
2016-03-11 17:08:44 -08:00
Carl-Henrik Skårstedt 273bdcc92d Fix for local labels within rept/LUP and force org with command line argument
- Flushing local labels after each rept/LUP source segment so local
labels within won't cross over the segment boundary
- The command line argument -org will force fixed address rather than
suggest a location, which in turn makes the -lst command line more
readable.
2016-03-11 16:58:24 -08:00
Carl-Henrik Skårstedt 7ee229442b Fix for local labels within rept/LUP and force org with command line argument
- Flushing local labels after each rept/LUP source segment so local
labels within won't cross over the segment boundary
- The command line argument -org will force fixed address rather than
suggest a location, which in turn makes the -lst command line more
readable.
2016-03-11 16:58:24 -08:00
Carl-Henrik Skårstedt ee53c41776 Fix for Merlin macros with arguments
- Macro argument was assembled and first argument was defined as a label
2016-03-11 14:12:32 -08:00
Carl-Henrik Skårstedt 04b2e71586 Fix for Merlin macros with arguments
- Macro argument was assembled and first argument was defined as a label
2016-03-11 14:12:32 -08:00
Carl-Henrik Skårstedt 341cc8f2ad Labels can begin with numbers
- It is a bad idea to define labels starting with numbers but apparently
Merlin allows it.
2016-03-01 18:34:20 -08:00
Carl-Henrik Skårstedt 1236b7fd21 Labels can begin with numbers
- It is a bad idea to define labels starting with numbers but apparently
Merlin allows it.
2016-03-01 18:34:20 -08:00
Carl-Henrik Skårstedt 462eaeccf6 Fixed bad fix (INCSYM was not properly fixed) 2016-02-15 21:11:10 -08:00
Carl-Henrik Skårstedt 50b6e310f5 Fixed bad fix (INCSYM was not properly fixed) 2016-02-15 21:11:10 -08:00
Carl-Henrik Skårstedt 0605a1d6d2 Fix for INCSYM directive when loading files with local labels 2016-02-14 12:36:01 -08:00
Carl-Henrik Skårstedt 8fbf05520c Fix for INCSYM directive when loading files with local labels 2016-02-14 12:36:01 -08:00
Carl-Henrik Skårstedt 7d59943d35 Fixed broken INCBIN and IMPORT BINARY directives 2016-02-13 16:41:33 -08:00
Carl-Henrik Skårstedt 736d4f1cac Fixed broken INCBIN and IMPORT BINARY directives 2016-02-13 16:41:33 -08:00
Carl-Henrik Skårstedt 60780a514a Pool labels of even 16ths would be re-reserved due to a left-right bug
- Shifted left when I should have shifted right.
2016-01-28 21:06:41 -08:00
Carl-Henrik Skårstedt b8d37be3ef Pool labels of even 16ths would be re-reserved due to a left-right bug
- Shifted left when I should have shifted right.
2016-01-28 21:06:41 -08:00
Carl-Henrik Skårstedt 5b9e5f6d46 Disassembler calling graph skips fallthrough labels
- significantly cleaner calling graph in complex projects.
2016-01-14 22:08:38 -08:00
Carl-Henrik Skårstedt e658b0c03d Disassembler calling graph skips fallthrough labels
- significantly cleaner calling graph in complex projects.
2016-01-14 22:08:38 -08:00
Carl-Henrik Skårstedt 1f50f07c24 STRUCT Directive fix
- Structs can contain empty lines
- Structs can be empty
- All structs have a size member named bytes, the number of bytes used
by a struct is <struct>.bytes
2016-01-04 20:55:32 -08:00
Carl-Henrik Skårstedt 7d26faa75b STRUCT Directive fix
- Structs can contain empty lines
- Structs can be empty
- All structs have a size member named bytes, the number of bytes used
by a struct is <struct>.bytes
2016-01-04 20:55:32 -08:00
Carl-Henrik Skårstedt e3241c66aa Disassembler swapping the order of a couple of things
- Re-evaluating code separators (jmp, rts, etc) before determining local
labels
- Re-evaluated label separator was off by one.
2015-12-18 22:41:16 -08:00
Carl-Henrik Skårstedt 27e5f766cd Disassembler swapping the order of a couple of things
- Re-evaluating code separators (jmp, rts, etc) before determining local
labels
- Re-evaluated label separator was off by one.
2015-12-18 22:41:16 -08:00
Carl-Henrik Skårstedt 794171d48b Fixed disassembler call graph function fall-through
- forgot that functions can fall through to the next label if there is
nothing separates the function from the next label
2015-12-17 23:27:16 -08:00
Carl-Henrik Skårstedt 8e6ac7d38b Fixed disassembler call graph function fall-through
- forgot that functions can fall through to the next label if there is
nothing separates the function from the next label
2015-12-17 23:27:16 -08:00
Carl-Henrik Skårstedt 7833ddc188 Missing character 2015-12-16 22:21:35 -08:00
Carl-Henrik Skårstedt 9b02e018aa Missing character 2015-12-16 22:21:35 -08:00
Carl-Henrik Skårstedt c4921552ba Disassembler calling graph
- graph command line option adds a calling graph to the disassembly file
- graph+bra includes branches in the calling graph
- re-evaluating separating code/data segments after the segments have
been culled.
- Added a c64kernal.lbl file that includes kernal calls
2015-12-16 22:19:25 -08:00
Carl-Henrik Skårstedt cac8f1e9cb Disassembler calling graph
- graph command line option adds a calling graph to the disassembly file
- graph+bra includes branches in the calling graph
- re-evaluating separating code/data segments after the segments have
been culled.
- Added a c64kernal.lbl file that includes kernal calls
2015-12-16 22:19:25 -08:00
Carl-Henrik Skårstedt b8362cbb0b Improving some code and data distinction rules
- If an address is unreachable it is data even if a branch crosses
- If a branch crosses data then that branch can be valid code
- If a segment is initially considered code but not reachable after all
is said and done it is reverted to data
2015-12-14 22:07:30 -08:00
Carl-Henrik Skårstedt 219323d911 Improving some code and data distinction rules
- If an address is unreachable it is data even if a branch crosses
- If a branch crosses data then that branch can be valid code
- If a segment is initially considered code but not reachable after all
is said and done it is reverted to data
2015-12-14 22:07:30 -08:00
Carl-Henrik Skårstedt ec01fcc6e1 Disassembler memory access check 2015-12-14 00:27:12 -08:00
Carl-Henrik Skårstedt 1bf3afa0d0 Disassembler memory access check 2015-12-14 00:27:12 -08:00
Carl-Henrik Skårstedt 5dbe08b1b3 Minor disassembler annoyances addressing
- Label ranges outside of data would be ignored for instructions
- If last code reference was a jump table then its references would get
stripped
2015-12-12 14:00:36 -08:00
Carl-Henrik Skårstedt 7902863ccc Minor disassembler annoyances addressing
- Label ranges outside of data would be ignored for instructions
- If last code reference was a jump table then its references would get
stripped
2015-12-12 14:00:36 -08:00
Carl-Henrik Skårstedt fd46f1aa1a Binaries updated 2015-12-12 13:24:48 -08:00
Carl-Henrik Skårstedt 3b2b0f7778 Disassembler local label improvement
- Determination for negative branches to local labels were one off which
meant lots of unnecessary local labels at end of long functions
- struse null/0-length check was reverse causing access to 0
2015-12-12 13:22:23 -08:00
Carl-Henrik Skårstedt 81f0364ab2 Disassembler local label improvement
- Determination for negative branches to local labels were one off which
meant lots of unnecessary local labels at end of long functions
- struse null/0-length check was reverse causing access to 0
2015-12-12 13:22:23 -08:00
Carl-Henrik Skårstedt 0f740c25bd Fixes to disassembling code pointer arrays
- Removing some filters that pulled out relevant references from pointer
arrays
- Separating 6502 illegal opcodes (6502ill) and WDC specific 65C02
instructions (65C02WDC) from general disassembly
- invalid instructions will always be disassembled as dc.b $hh instead
of the non-assemblable instruction
2015-12-11 23:01:52 -08:00
Carl-Henrik Skårstedt f6c5b08224 Fixes to disassembling code pointer arrays
- Removing some filters that pulled out relevant references from pointer
arrays
- Separating 6502 illegal opcodes (6502ill) and WDC specific 65C02
instructions (65C02WDC) from general disassembly
- invalid instructions will always be disassembled as dc.b $hh instead
of the non-assemblable instruction
2015-12-11 23:01:52 -08:00
Carl-Henrik Skårstedt c96399d896 Adding read-only labels to disassembler and Atari 7800 memory map file
- Changed how the instruction lookup is stored to more easily
distinguish between read-only and other instructions
- Added Atari 7800 labels (a78.lbl)
- Added a keyword "read" to declare a read-only version of a data label
to the labels file
- Fixes to determining addresses representing data or code
- Fixed missing data blocks that were exactly 16 bytes
2015-12-10 22:27:49 -08:00
Carl-Henrik Skårstedt 3c470af40e Adding read-only labels to disassembler and Atari 7800 memory map file
- Changed how the instruction lookup is stored to more easily
distinguish between read-only and other instructions
- Added Atari 7800 labels (a78.lbl)
- Added a keyword "read" to declare a read-only version of a data label
to the labels file
- Fixes to determining addresses representing data or code
- Fixed missing data blocks that were exactly 16 bytes
2015-12-10 22:27:49 -08:00
Carl-Henrik Skårstedt 214c32931a Adding pointer array to data
- Allow assign data type to pointer arrays (label = start-end pointers
data comment)
2015-12-09 23:53:43 -08:00
Carl-Henrik Skårstedt 58c241952f Adding pointer array to data
- Allow assign data type to pointer arrays (label = start-end pointers
data comment)
2015-12-09 23:53:43 -08:00
Carl-Henrik Skårstedt 798b657c70 Better logic for what separates code segments
- Allows jump tables without separating between each instruction
- Branch to instruction after jump instruction does not inject a
function separator
- Jump relative does not reference code
2015-12-09 18:22:07 -08:00
Carl-Henrik Skårstedt 6bdf6b0023 Better logic for what separates code segments
- Allows jump tables without separating between each instruction
- Branch to instruction after jump instruction does not inject a
function separator
- Jump relative does not reference code
2015-12-09 18:22:07 -08:00
Carl-Henrik Skårstedt a674f7f165 Fix user defined labels not keeping up with current address
- can skip multiple labels per instruction
2015-12-09 00:06:38 -08:00
Carl-Henrik Skårstedt 8a37b0dc32 Fix user defined labels not keeping up with current address
- can skip multiple labels per instruction
2015-12-09 00:06:38 -08:00
Carl-Henrik Skårstedt 0e64a58375 Disassembler improvements
- More aggressive local labels
- Double checking code sections after detection phase
- Zero page instructions added to labels (65816 uses direct page and
will generate slightly off labels)
2015-12-07 22:26:04 -08:00
Carl-Henrik Skårstedt 6c843c99fd Disassembler improvements
- More aggressive local labels
- Double checking code sections after detection phase
- Zero page instructions added to labels (65816 uses direct page and
will generate slightly off labels)
2015-12-07 22:26:04 -08:00
Carl-Henrik Skårstedt acf26cf7d7 Fixing and adding to x65macro.i
- Adding shift operations to macros
- Adding README.MD to macros
2015-12-04 22:10:27 -08:00
Carl-Henrik Skårstedt 5be88e858b Fixing and adding to x65macro.i
- Adding shift operations to macros
- Adding README.MD to macros
2015-12-04 22:10:27 -08:00