Jump to content
IGNORED

DIS6502 - The Interactive 6502 Disassembler


JAC!

Recommended Posts

  • 2 weeks later...

Now I'm seeing random crashes when I save the workspace (Ctl-S) or doing things like "change to WORD or change to BYTE). It only seems to crash in double height mode though, and only in higher segments, like say the third or fourth. I know it's a bit vague but it's only just started. I'll see a little window open that says "Disassembling please wait... Pass: 4 Segment: 6". It will occasionally crash in not double height, but that window does not appear on the rare occasion that it does.

 

Edit: the saving workspace crash seems to only happen if I select it from the dropdown box. CTL-S seems to work.

 

Segment 6 is the key I guess. I'm actually working in segment 3, although there are six segments. segment 6 is the $02E0 run, so the address/offset I'm editing does not appear in segment 6, so presumably that's why it crashes.

Edited by Alfred
Link to comment
Share on other sites

Finally an update as been uploaded.

 

FIXED: No more dumps when deleting segments from the segment list via context menu.
FIXED: No more dumps when adding user comments.
FIXED: No more dumps when loading segment with full 64k. Such segment Are now display correctly in the segment list. The dump windows cannot handle full 64k segments, because it uses $ffff as marker. Split the segment if you really need to work with it.
FIXED: Context menu in disassembly window appears again.
FIXED: Strg-F opens "Find in Dump Window". I've check the original V2.2, there Strg-F also opens the "Find in Dump" and not "Find in Disassembly" if the disassembly window has the focus. The reason is that there is actually no such thing as "the view with the current focus", because DIS6502 is not MDI application. All views as simply there.

FIXED: Selecting "Quit edit mode" actually quits edit mode again (besides ESC).

 

CHANGED: Added Shift-Strg-F/Shift-F3 as shortcuts for string search in the disassembly window

CHANGED: Find in Dump dialog now formats hex outout with spaces and accepts spaces as separators for readability.

CHANGED: Order of entries in the dump context menu is not according to the Windows standards and guidelines.
CHANGED: Comment dialog now trimms trailing whitespaces and return characters.
CHANGED: "String not found" dialogs now also display the string that was not found.
CHANGED: Modal dialog have a proper application title as caption.

There are still major bugs in the handling of the labels, etc. but many things in the code have been reworked. So at least it should be easier to track down the remaining issues.

 

post-17404-0-53237600-1556143532.pngpost-17404-0-72277600-1556143526.pngpost-17404-0-13607400-1556143651.pngpost-17404-0-72983300-1556143539_thumb.png

  • Like 2
Link to comment
Share on other sites

Doesn't seem to work. All the windows are blank. something gets focus in each window, but it's like every control is invisible.

Could be an issue with Windows caching the font, please try a reboot.

Link to comment
Share on other sites

Hi JAC!

 

I found another bug, when searching in the hexadecimal editor (control + f) it does not look for anything when searching by hex for example C921

 

regards

FIXED.

Link to comment
Share on other sites

Oh yes, another bug. If you save the workspace and then say "New Workspace" it always asks if you want to save. If there was no changes, it shouldn't ask, imo.

The V2.2 always prompted. The V3 only prompts, if a workspace is loaded. To detect if anything was actually changed, I'd have to keep a complete copy after loading and do a deep semantic compare (cannot compare pointers etc.). That would too much investment, so I'll leave it as it is.

Link to comment
Share on other sites

FIXED: "Select next block of Unknown Bytes" in the dump now works correctly if there are multiple segments.
FIXED: Dragging scroll bar handle in sprite selection screen now works (maybe it did in one of the recent builds before, at least now I verified it).
FIXED: Most recently used (MRU) lists of workspaces and files in the file menu loads correctly. Previously the order was reversed every time the preferences were loaded.

FIXED: Mouse wheel scrolling for DisWindows/DisControl works again.

Link to comment
Share on other sites

FIXED: No more dump when adding more than 5 files in the MRU list

FIXED: About dialog now shows correct program dates and list of versions for the involved DLLs etc.

  • Like 2
Link to comment
Share on other sites

Feature Request:

I'm using the 'Double Font Height' option and it is looking fine in the disassembly area for my eyes on my 4K monitor. However, I realise that either in a few years, my eyes won't be able to read the double sized font or the standard might move to 8K or 16K screens in time.

 

So that we're not pestering you in 20 years time, could you offer a "Font size" option, perhaps, 1x, 2x, 4x, 8x, 16x etc? Future proofing yourself, and I assume that most of the code is already there for scaling the fonts.

 

One other thing to consider is that increasing the font size only increases the font size in some areas. Is it possible to increase it in the menu and in the 'Segments for <>' , segment details and 'Disassembly' bars?

 

Thank you for considering this.

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

 

Finally I have managed to conquer the dump control and the related Win32 API issues. Both have basically blocked me from any other change in the past months.

With the new control, I was able to rework the related file selection dialogs.

I've also adapted the layout to make better use of the available space and be more logical and in line with the M$ standards.

The daily build is updated and I'm looking forward to feedback reading these 3 dialogs.

Sectors-Old.png.eda275ca91190a43882c47b588083309.png                             Sectors-New.png.a10e2487e0b41deff9de7e3d9f76b9b8.png

 

RAW-Old.png.c84fc4414d37620d8469554876bad267.png      RAW-New.png.503f9dc79f461121558682185f9ddf25.png

 

EXE-Old.png.630d69d1d88d1ec023a4938f9b74e45c.png                        EXE-New.png.2e7aa502f8f557d5261a2921927084b5.png

 

 

Regarding the font size:

- Using the same for the main screen part titles definitively makes sense

- The side in the menu should be controlled by your standard Windows settings, if not please provide an example. The same should be the case in the dialog boxes.

- A more general font size option definitively makes sense for the future, unfortunately a lot of code is still using fixed value/computations still. So that'll take time.

On 5/5/2019 at 2:07 AM, snicklin said:

Feature Request:

I'm using the 'Double Font Height' option and it is looking fine in the disassembly area for my eyes on my 4K monitor. However, I realise that either in a few years, my eyes won't be able to read the double sized font or the standard might move to 8K or 16K screens in time. So that we're not pestering you in 20 years time, could you offer a "Font size" option, perhaps, 1x, 2x, 4x, 8x, 16x etc? Future proofing yourself, and I assume that most of the code is already there for scaling the fonts.

 

One other thing to consider is that increasing the font size only increases the font size in some areas. Is it possible to increase it in the menu and in the 'Segments for <>' , segment details and 'Disassembly' bars?

 

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

I just tried setting the Windows 10 Zoom to 150% after tweaking the DPI settings in the properties, it looks OK for me. Note: This is already the view with double font height in the part window titles.
 

High-DPI-01.png

High-DPI-02.png

  • Like 1
Link to comment
Share on other sites

The version with the double part window title height and a number of additional fixes in the dialogs and the dump selection (when selecting from end to begin) has just been uploaded.

Link to comment
Share on other sites

This update contains a major redesign where changes to the workspace (loading, adding segments, selecting a segment, changing the font, ...) are handled as events in a model-view-controller style. This has removed a lot of redundant code and allows for a more structured approach to handle selections, selection changes and in future font changes. Of course that also means, some things may be not yet as they should be, so I'm looking forward to feedback.

 

Part of the restructuring results are:

- A new dialog allows changing the machine type/computer system when a new workspace is created. All dependent elements (system equates, computer font, ...) should be updated accordingly, when the computer system is changed.

- Ctrl-N works now for creating a new workspace
NewWorkspace.thumb.png.c673b3bc1ff72265b6cb787813424ef9.png

- "Merge contiguous segments" in the context menu of the segment list now works again. The log contains a summary message of the result.

- "Delete Bad Segments" has been removed from the context menu of the segment list. It didn't work before and the file logic prevents incorrect files from being loaded anyway. 
Merge.thumb.png.cc09cc167ffc834e0c2ac1edadedf63f.png

- All file operations now give the file path, error code and error text in the log message in case of errors

- Workspaces where no segments have the "binary" flag set are now handled correctly, i.e. no dump anymore.

 

  • Like 10
  • Thanks 1
Link to comment
Share on other sites

On 7/26/2019 at 7:24 AM, JAC! said:

I just tried setting the Windows 10 Zoom to 150% after tweaking the DPI settings in the properties, it looks OK for me. Note: This is already the view with double font height in the part window titles.

That is great. I didn't realise that you could change the zoom for individual programs.

 

Great solution there.

Link to comment
Share on other sites

  • 2 weeks later...

How do you define a new label to display in the disassembly window ? You can only add comments in that window, and in the lefthand data window all that selecting "Label" or SDX label does is fold all the code up onto the last line where DIS6502 put its own label, which is useless.  The inability to add labels to the disassembly listing renders the tool mostly useless. Selecting "change bytes to Label" should put up a prompt to ask for a label identifier that it then associates with the given instruction at that address. Instead it just packs all the data bytes in to one line.

 

edit: Rename referenced label doesn't work. Changing say L2506 to START does nothing, just adds an equate to top of the listing, but won't change the actual label. So the listing still has to be exported as a text fie and all the labels changed by hand to their proper names.

Edited by Alfred
Link to comment
Share on other sites

6 hours ago, Alfred said:

Selecting "change bytes to Label" should put up a prompt to ask for a label identifier that it then associates with the given instruction at that address. Instead it just packs all the data bytes in to one line.

 

edit: Rename referenced label doesn't work. Changing say L2506 to START does nothing, just adds an equate to top of the listing, but won't change the actual label. So the listing still has to be exported as a text fie and all the labels changed by hand to their proper names.

>Selecting "change bytes to Label" should put up a prompt to ask for a label identifier

No, it should actually automatically detect the nam based on the address and auto-generate "Lnnnn" as automatic/implied label if there is no explicit definition.

 

The problem with incomplete label resolution was reported before and I am working on it.

I had tried to make it work for SDX and that probably broke it, because as it turned out Eric has SDX never really completed.

The label/equate part is the last part of the code that is still plain C with malloc and untyped direct pointer stuff.
To make things worse there are things called "equates" and "labels" in the code in 3 locations and they mean different things. 

For example system equates and user equates are handled totally different.

Means it is basically impossible to understand or change it yet.


I've spent most of the past 3 weeks in trying to understand and refactoring this.

My plan is

- understand the code and turn into C++ with proper types 

- handle system and user equates the same way

- means support "<", ">" and "#" in addition to "=" in the definition to indicate the type of access the equate shall be used for (low address,high address, immediate)

- support for comments attached to user defined labels

- then use the new logic in the actual disassembly process

 

This is a screen shot of the new equate dialog I'm working on.

 

Equates.png

  • Like 1
Link to comment
Share on other sites

7 hours ago, JAC! said:

>Selecting "change bytes to Label" should put up a prompt to ask for a label identifier

No, it should actually automatically detect the nam based on the address and auto-generate "Lnnnn" as automatic/implied label if there is no explicit definition.

 

 

Ok, if that's what it's supposed to do, sometimes it works, because I did get it to generate the L2506 label from nothing. I just was unable to change the L2506 to anything else, or to insert anything other than L2506 at that line.

 

There still should be a way to rename L2506 though, afterwards. L2506 has no meaning, but RESTART or STAKPULL does to the person doing the disassembly.

 

Link to comment
Share on other sites

5 hours ago, Dropcheck said:

Sorry Peter,

 

   I'm not seeing a dl link on your website for the current version.  Not in the latest update post either.  My latest version is dated Feb 2019.

Hello Dropcheck,

 

At the first post from Peter you will find the download links.

For every update he make you can use the link.

 

There are currently two versions available:

 

 

Gr..

Marco

Edited by marcokitt2000
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...