Jump to content
IGNORED

DIS6502 - The Interactive 6502 Disassembler


JAC!

Recommended Posts

On 7/21/2023 at 8:37 PM, tschak909 said:

This does not play nice on HiDPI displays under Wine, at all. :(

 

Windows applications _ARE NOT_ supposed to _HARD CODE_ font metrics. sigh.

 

image.thumb.png.118fb51725dca7ffde1149f51b6b53d6.png

The program started in 1997 on Win XP with a fixed pixel layout for 640x320. In fact Windows Forms force you to use pixels until today. With DIS6502 3.6, I've implemented an own layout manager which can handle different screen sizes and font sizes. Note that all you see are self-implemented non-standard controls. You can use "Double Font Height" from the "View" menu already. More scaling options are planned. But since this is a pixel exact fixed size font, only integer multiples make sense/will look OK.

 

Double Font Height:

image.thumb.png.a434e8049d2131da4b81af4f2335a1bc.png

  • Like 3
Link to comment
Share on other sites

1 hour ago, JAC! said:

The program started in 1997 on Win XP with a fixed pixel layout for 640x320. In fact Windows Forms force you to use pixels until today. With DIS6502 3.6, I've implemented an own layout manager which can handle different screen sizes and font sizes. Note that all you see are self-implemented non-standard controls. You can use "Double Font Height" from the "View" menu already. More scaling options are planned. But since this is a pixel exact fixed size font, only integer multiples make sense/will look OK.

 

Double Font Height:

image.thumb.png.a434e8049d2131da4b81af4f2335a1bc.png

About double height...

 

image.thumb.png.dac21d5e23cf66cf85e7585ac214f2d8.png

-Thom

Link to comment
Share on other sites

On 7/24/2023 at 3:00 AM, tschak909 said:

About double height...

 

-Thom

The correct font is used, by it is not correctly scaled. This is a bug in the CreateFont() handling of Wine. It works correctly on real Windows.

The long-term solution would be using the TTF fonts that are part of https://github.com/wudsn/wudsn-ide/tree/main/com.wudsn.ide.base/fonts. But this will require switching the whole project to Unicode support, which means a major rework. Nevertheless, it would make sense. Filed as https://sourceforge.net/p/dis6502/bugs/33/ for tracking.

  • Like 2
Link to comment
Share on other sites

  • 3 months later...
On 4/12/2023 at 1:36 AM, Alfred said:

How do you disassemble a large ROM file ? I tried RAW but it doesn't work, and other modes complain about missing segments. Is there a way to disassemble a plain ROM that has no binary header ?

Which size does the ROM have? RAW files can be added as RAW with up to 64k. The current DIS6502 can also read ROM images of 4/8/16k and 8/16k CAR files. You'd have to split larger files into banks and add them separately. And of course, cross-references between the banks will be hard to map. Nevertheless, I like the idea and registered it as https://sourceforge.net/p/dis6502/feature-requests/71/ -  Support adding banked .car files. 

 

    // Get file size.
    auto bytesRemaining = fileSize;

    if ((bytesRemaining == SIZE_8K_CAR) || (bytesRemaining == SIZE_16K_CAR)) {
        byte carHeader[CAR_HEADER_SIZE];
        inputStream.Read(carHeader, CAR_HEADER_SIZE);

        if (memcmp(carHeader, "CART", 4) != 0) {
            throw IOException("Invalid stream header. Stream is not a CART stream");
        }
        bytesRemaining -= CAR_HEADER_SIZE;
    }


    // Read only 4K, 8K and 16K cartriges.
    switch (bytesRemaining) {
    case SIZE_4K:
        wBegin = BASE_4K;
        wEnd = END_4K;
        break;
    case SIZE_8K:
        wBegin = BASE_8K;
        wEnd = END_8K;
        break;
    case SIZE_16K:
        wBegin = BASE_16K;
        wEnd = END_16K;
        break;

 

  • Like 1
Link to comment
Share on other sites

  • 3 months later...
On 5/6/2023 at 2:31 AM, Irgendwer said:

* when going for single file output without any includes the result is garbage. Is this a known issue (or a problem while I'm testing under Linux with "wine")?

Bugfix version https://sourceforge.net/projects/dis6502/files/dis6502/3.6.1/ released

No new features

Fixed bugs:
- Saving listings without includes now generates correct output (bug #32)
- Block numbers in SDX blocks are now output in hexadecimal if that option is active in the profile

 

This is a "by-product" of my 4.0 developments, where I try to track down the reported issue. I keep the 3.6 version in a state where I can compile and use it for reference.
I also found and fixed a bug in version 4.0 that prevented the correct usage of the scroll bar in the disassembly window.

 

Note: Microsoft Defender incorrectly complains about the version. I've submitted https://www.microsoft.com/en-us/wdsi/submission/feb36ac1-91b6-449d-888d-c6f912fb3447 for that.

 

  • Like 1
  • Thanks 3
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...