Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > ASM to C
2018-08-08 10:37
Mixer

Registered: Apr 2008
Posts: 452
ASM to C

Are there tools to convert a) disassembler output to some sort of C? b) macro assembler listings to C?

Such a thing can be done by substituting opcodes with their C-statement equals. Has anyone written more sophisticated tools for this?
 
... 10 posts hidden. Click here to view all posts....
 
2018-08-12 07:35
oziphantom

Registered: Oct 2014
Posts: 490
Quote: Quote:
Time to write a better tool.

some things just cant be done automatically - no matter how good the tool is.

some years ago i had the idiotic idea to make a basic v2 to C compiler... guess what, it cant be done either. you cant even convert the basic shit from the test/demo disk automatically :) with asm it will be even more impossible =P


What was the major blocker on basic to C? I would think it mostly has a 1:1 relationship. READ would be the tricky part. Making custom functions would probably need to be beyond scope, but what else?
2018-08-12 11:04
Mixer

Registered: Apr 2008
Posts: 452
@Ozipanthom, true that the decompiler itself does not know that the lookup is a multiplication, and does not know what the multiplier is.

But this is already pretty good for my uses.

thing=mem[table[x]]+mem[otherTable[y]]
2018-08-12 15:05
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
What was the major blocker on basic to C? I would think it mostly has a 1:1 relationship.

not at all. you can do terrible things in basic v2 which just wont translate to C at all. like GOSUB somewhere, but never RETURN. or reuse parts of one subfunction from another. even after building a control flow graph and duplicating the things that would collide, you'd still end up with dead ends. not worth the trouble, easier to just convert by hand :)

Quote:
READ would be the tricky part.

no not really, thats one of the easier parts infact :=P
2018-08-12 18:55
DanPhillips

Registered: Jan 2003
Posts: 39
Yay back on the forum :)


We once used a bunch of macros to convert 65816 to c.
All the object handling/ai was converted when going from Snes to PC dos.


I don't have a copy of the macros, but I do remember they were "horrendous" :)


Cheers

Dan
2018-08-12 19:19
chatGPZ

Registered: Dec 2001
Posts: 11386
ah i did this once when i converted 6502 code to gameboy :)

however - this doesnt make the code more readable at all =D
2019-02-28 07:39
Remdy

Registered: Feb 2019
Posts: 26
I did it for (a subset) of DOS/PMODEW 386 TASM assembly code: https://github.com/frranck/asm2c
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
t0m3000/hf^boom!^ibx
Mike
LightSide
The MeatBall
𝘁𝗡𝗚/FairLight
Hairdog/BOOM!^Dream
katon/Lepsi De
Walt/Bonzai
Twilight/Excess/Arcade
Steffan/BOOM!
Fresh
New Design/Excess
Wayne Kerr/Flashtro
iAN CooG/HVSC
Fred/Channel 4
HBH.ZTH/Abnormal
Freeze/Blazon
4gentE/ΤRIΛD
Guests online: 125
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Logo Graphicians
1 t0m3000  (10)
2 Sander  (9.8)
3 Mermaid  (9.5)
4 Facet  (9.4)
5 Shine  (9.4)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.041 sec.