Jump to content
IGNORED

what is a good disassembler on XL/XE


Marius

Recommended Posts

Hi

 

For PC there is that brilliant DIS6502 program I found on Steve Tuckers site.

 

But what I need (or better said: want...) to use is a Disassembler on XL/XE.

 

The most important thing is that it outputs a Mac65 (or another assembler) compatible output to disk, including labels, so that the generated source can be edited and assembled again without any problems with an assembler.

 

I know that PC program can do that, but since I don't have access to windows it is much more convenient for me to do this on the real thing. Besides a lack of windows: I have all my files on my XL/XE system.

 

Thanks!

M>

Link to comment
Share on other sites

Not sure if one was ever made.

 

I wrote one in Basic decades ago but it was effectively similar to AsmEd, with some enhancements such as arrows pointing out branch directions. But I never intended it for generating source.

 

These days I use IDA Pro. I've taken 32K binary dumps and created source code that can be assembled in under 30 minutes.

 

Most of the batch disassemblers, you have to keep running them trial/error with parameters to tell them what parts should be treated as data.

With IDA, you just load in the file and it automatically starts to identify the program parts. Usually leaves lots of data areas, you just point the cursor and hit "C" it turns data to instructions and takes care of labels and cross-reference stuff.

Edited by Rybags
Link to comment
Share on other sites

I found a program called "THE DISASSEMBLER" ... I found it on my Ultimate Utility Cartridge.

 

It works great. Except for one bloody thing. It puts the label-equates at the bottom of the Mac/65 listing, which does not work very well (a lot of Phase errors). So I had to cut the labels, and put them on top of the listing. Now it works.

 

Another 'not so handy' thing is that the labels better should have names like LD200 so I could see what the memory location of that label is. Unfortunately it uses labels from AA0 to ZZ9 ... but ok, it works very good. So it resulted in a working source for Mac/65.

 

It also outputs for ATMAS II, but I don't have a manual of ATMAS II so I don't know how to use that assembler.

Link to comment
Share on other sites

The "Wosfilm" disassembler.

 

Tried many others of which I forgot their names but once I bought this one I never looked back. It's a commercial product and the original disk has a copy protection. No idea how or where to get it these days but I guess it's out there somewhere like (almost) any other title.

  • Like 1
Link to comment
Share on other sites

The "Wosfilm" disassembler.

 

Tried many others of which I forgot their names but once I bought this one I never looked back. It's a commercial product and the original disk has a copy protection. No idea how or where to get it these days but I guess it's out there somewhere like (almost) any other title.

 

I can confirm version 1.1 is 'out there', cracked by Mr Barcardi..

Link to comment
Share on other sites

  • 3 weeks later...

The "Wosfilm" disassembler.

 

Tried many others of which I forgot their names but once I bought this one I never looked back. It's a commercial product and the original disk has a copy protection. No idea how or where to get it these days but I guess it's out there somewhere like (almost) any other title.

 

I am not sure if this would infringe on anyone's copyright but here it is.

Disassembler, The v1.1 (1991)(WosFilm)cr Mr. Bacardi.zip

Edited by atari8warez
Link to comment
Share on other sites

  • 3 years later...

Please can someone patch the "Wosfilm Disassembler" (file on above post) so it will work on 2 drives. It has a D1: prompt when selecting files but you cannot change it.

 

I'm using 1050 drives. The problem is the single drive limit means your source and destination files have to be on the same disk which doesn't always have room to create the output file. If you try disassemble by sector instead of by file, to split the file, it doesn't allow your output to be on the same disk as the source!!! I'll try and split the source file first using a sector editor, but would be great if this can be fixed for 2 drives

:)

Edited by therealbountybob
Link to comment
Share on other sites

Disassembler, The v1.1- (1991)(WosFilm)cr Mr. Bacardi.zip

 

This one was too easy, one stinking byte and it appears to offer the world. A 02 for a 04 for the left margin in one spot gets you X source and Z destination while you run it from a third as I did.

 

Standard disclaimer applies - I wasn't even here.

 

I put a hyphen in the name so it's differently named from the one above, enjoy.

 

Decided I could show my work for not much extra, look for the prompt and find the left margin setting just above it. This using Dis6502, you should only have to load this workspace file.

 

wolf.zip

Edited by 1050
  • Like 2
Link to comment
Share on other sites

Certainly worth trying IDA Disassembler (DOS freeware version). Although it has the old-style windowing system it still does a good job (and convinced me in 1999 to buy the Pro version). Shame they dropped 6502 from the newer 'free' windows versions.

 

EDIT: Hmm, the install.exe isn't being allowed to run on Windows 10 - but happy under DosBox

Edited by Wrathchild
Link to comment
Share on other sites

EDIT: Hmm, the install.exe isn't being allowed to run on Windows 10 - but happy under DosBox

 

I'm guessing your Windows 10 is 64-bit. Any 64 -bit version of Windows will not run 16-bit software. DOS software is 16-bit. As you say, DOS Box should help you out. Another option is FreeDOS (or even MS DOS) installed on a VM.

Link to comment
Share on other sites

Thanks 1050, very much appreciated :thumbsup: :thumbsup: The WosFilm disassembler now works great on multiple drives (I guess someone made it single drive for their convenience).

 

I have been tinkering and used the disassemble by sector to split an XEX file into various MAC/65 files. I had a print out of the code so could see some logical points to split the file: blocks of code / data. Seems MAC/65 doesn't like anything too large so I need to split some further.

 

My aim is to take a well known game, tweak it and then re-assemble it. All on real hardware (with a little help from APE). The next challenge is how to get a block of data bytes into a format that I can use, ideally to be INCLUDEd in the assembler.

 

The problem is MAC/65 file thinks it is code, where as I want the data as .BYTE statements etc. I could search and replace each command e.g. replace BRK with .BYTE $00 but I would have issues with STA commands etc depending on the mode they are used in: STA $nnn,Y = $99, where as STA $nnnn = $8D - plus this would be a right pain as the files are large.

 

Suggestions please :)

Link to comment
Share on other sites

Eventually everyone notices that same weakness with MAC/65 and they write more better assemblers that allow to include data files - end of problem. :) And you are very welcome, I'm glad I actually could pull it off.

 

You might consider using BASIC to make a block of .BYTE file with instead of the disassembler as there is where the actual problem is (disassembly). MAC/65 should accept a block of .BYTE just as easily as the regular stuff. Making that block is the issue. MAC/65 will accept text files as a source and then you can save it in the tokenized form for disk space and speed when assembling.

 

Some disassemblers can do this trick where you tell it from here to there is block mode, most do not. Because references to various parts within that block are very likely to exist and MAC/65 will still need those to be inserted as labels in order to assemble good code outside the block we have real issues right away with block disassembly. Which is the main reason none of this gets done very often.

 

Very real programmer's dilemma has no easy solution that I'm aware of - I've never gone there though, so I'm just kicking ideas around here. Dis6502 could be used to force a block into .BYTEs for you? Others will have better suggestions I hope. It also kinda all depends on what exactly what you mean by 'real hardware' too.

  • Like 1
Link to comment
Share on other sites

:thumbsup: by real hardware I plan to continue using the 130XE and Atari based software ;)

 

I'm betting there is at least one Atari utility to export a block of bytes (from a range of secrors) and probably something designed for use with MAC/65 might exist if I'm lucky. I guess I can create something in BASIC like you say, but I'll have a trawl through the utilites archives. Interesting that when you disassemble (using WosFilm) by sector it still puts in the correct branch addresses to other parts of the file - I wasn't expecting this to be the case but I suppose they are all hard coded thinking about it. I'm still experimenting - and having fun :)

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...