6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 11:45 am

All times are UTC




Post new topic Reply to topic  [ 25 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Tue Mar 14, 2017 1:26 am 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 679
BigEd wrote:
If a disassembler can pass the round trip test, then its output is useful for making changes to the code.

That is only true when the edits do not change the size of anything.

Literal absolute addresses, alignment requirements, vector tables, graphics data at magic locations, etc, all get skewed otherwise. If you want to add entries to data tables, the code is usually littered with immediate values having baked-in prior lengths of those tables. The more the disassembler can "understand" what the code is doing, and the constraints it assumes in order to work, the more robustly it can generate editable output.

Generally, such reverse engineering involves taking a raw disassembly, and hunting down all the relative constraints between all these magic numbers and magic locations, deciding which should be labels, which addresses should be fixed & where padding applies, which immediate values are computed from deltas between labels, which items are required to be on the same page, etc. Only then does the code become as editable as any normal asm project. That's also a reason why there's less focus on 100% round-trip capabilities, because you need to go through everything anyway to enable making non-trivial edits.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 14, 2017 5:47 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
White Flame wrote:
That is only true when the edits do not change the size of anything.

An extremely good point!


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 23, 2017 2:41 pm 
Offline

Joined: Sun Mar 05, 2017 11:48 am
Posts: 6
fyi: as i couldn't find a windows port of the xa/dxa package, I've first tried that under freebsd (worked great!) - now I've created a win32 port:

https://github.com/Dennis1000/xa65-win32


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 4:34 am 
Offline

Joined: Sat Aug 15, 2009 8:08 pm
Posts: 29
I just released CBM-Transfer 1.00 and it includes an interactive disassembler, plus it supports most commodore machines. I did a lot of work on the disassembler part. Give it a try!
http://www.6502.org/users/sjgray/softwa ... mxfer.html

As for assemblers I use ACME. My disassembler will output ACME compatible code but also more generic code as well.

Steve


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 4:05 pm 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 679
I spent a lot of time trying to get the VB6 dependencies running on Win 7 64-bit, to no avail. Since it's such an old & afaik unsupported dependency, could you provide some instructions of how to bolt that into modern machines?

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 5:12 pm 
Offline

Joined: Sat Aug 15, 2009 8:08 pm
Posts: 29
White Flame wrote:
I spent a lot of time trying to get the VB6 dependencies running on Win 7 64-bit, to no avail. Since it's such an old & afaik unsupported dependency, could you provide some instructions of how to bolt that into modern machines?


Did you try the "complete package with installer"? I have been able to get the VB IDE running on every windows upto and including Windows 10, and most versions of windows include the runtimes. In any case the above should install and include all files you need... unzip it and run setup.exe . You should install OpenCBM first, then install CBM-Transfer into the same folder.

Steve


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 5:26 pm 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 679
Yes, I tried the complete package installer, as well as both VB6 dependencies, and lots of googling for VB6. Is OpenCBM a requirement or optional? I just wanted to check out the disassembler, not perform actual transfers.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 5:41 pm 
Offline

Joined: Sat Aug 15, 2009 8:08 pm
Posts: 29
It should run without opencbm as long as you do not enable "check EXE's" in the options. Did you run the setup with administrator privileges? Are you getting error messages?
Although I extensively tested, I made a lot of changes for CBM-Transfer 1.00 and it's possible there are bugs..

We should probably take this offlist. Email me if you are still having problems and I'm sure we can sort it out.

Steve

Addendum:
http://blog.danbrust.net/2015/09/14/ins ... OKNOfnyuUk


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 6:02 pm 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 679
I installed opencbm, and it does run now.

The options window did not come up before; it only displayed errors about missing components (I didn't record the exact error before installing opencbm).

So I would personally reword the site to list opencbm as a requirement, as the option to not require it isn't available until opencbm is installed. ;)

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 03, 2017 6:13 pm 
Offline

Joined: Sat Aug 15, 2009 8:08 pm
Posts: 29
White Flame wrote:
I installed opencbm, and it does run now.

The options window did not come up before; it only displayed errors about missing components (I didn't record the exact error before installing opencbm).

So I would personally reword the site to list opencbm as a requirement, as the option to not require it isn't available until opencbm is installed. ;)


Glad it's working.

I will have to do some more testing on some other machines. I think it should run without opencbm, so if that's not the case I'd like to fix that. My other idea is to break out the disassembler/viewer to it's own program. Hardly anyone knew the disassembler was part of the program...

Last night I downloaded Visual Studio 2017 and am playing with that to see if it's worth the effort to port the code. Also, in case you missed it, CBM-Transfer is open source so you can look at the code yourself.

Steve


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 25 posts ]  Go to page Previous  1, 2

All times are UTC


Who is online

Users browsing this forum: barnacle and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: