flat assembler
Message board for the users of flat assembler.

Index > Projects and Ideas > fasm wizard

Author
Thread Post new topic Reply to topic
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 14 Apr 2020, 07:08
am i overkilling it?
any missing features?
and please ignore the two "???" buttons, im not sure what functionality to put behind these buttons!


Description:
Filesize: 153.52 KB
Viewed: 17797 Time(s)

fw.png



_________________
Asm For Wise Humans


Last edited by Ali.Z on 15 Apr 2020, 03:25; edited 2 times in total
Post 14 Apr 2020, 07:08
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20450
Location: In your JS exploiting you and your system
revolution 14 Apr 2020, 07:11
Yeah, cool.

Generate the boring boilerplate so we can concentrate on the meat of the coding.
Post 14 Apr 2020, 07:11
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1847
Roman 14 Apr 2020, 08:26
because im bored
Me too.

We need easy write big code. And not write hands all variables names and put in differents places in code.

And no need see all big asm code, it impairs code reading.
Need small easy reading blocks code.
We need asm generator !


Last edited by Roman on 14 Apr 2020, 08:33; edited 1 time in total
Post 14 Apr 2020, 08:26
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20450
Location: In your JS exploiting you and your system
revolution 14 Apr 2020, 08:29
Roman wrote:
We need easy write big code. And not write hands all variables names and put in differents places in code.
We need asm generator !
I think you are advocating for HLLs.
Post 14 Apr 2020, 08:29
View user's profile Send private message Visit poster's website Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1847
Roman 14 Apr 2020, 08:36
Cool.


Last edited by Roman on 21 May 2020, 06:49; edited 3 times in total
Post 14 Apr 2020, 08:36
View user's profile Send private message Reply with quote
ProMiNick



Joined: 24 Mar 2012
Posts: 804
Location: Russian Federation, Sochi
ProMiNick 14 Apr 2020, 10:21
Roman, don`t look at assembly from HLL point of view:
first of all intermixing stages is unallowed.
so split vars of preprocessor vars (EQU) & assembler vars (all rest)
if thou don`t split them in initial state thou will feel problems in future with evolving tool.

then in assembly no types in HLL matter.

but type in assembly could be tractated as set of definitions related to memory cell and size of that cell.
float dword & int dword in assembly is single unsplitterable type.
float qword & int qword too.

but
a: db 'hello'
&
a db 'hello'
&
a db 'hello'
sizeof.a = $-a
are 3 completely different types because these constructions declare different set of labels and constants related to same memory cells.

some tipes I wouldn`t suggest to realize as stndalone types, much better to realize them as flags(checkbox) of more common types.
so in 32bit ppAddr is variant of dword(dd), and interface is variant of ppAddr, such nesting will better demonstrate internal nature of types.

in case of interfaces if thou declare some var as comobject of some common interface & will want to realize via it child interface thou will have to share same memory whithin 2 interfaces.

so vars should not only occupy their own cell, but share it with other vars.

to Ali.Z: better PE as property sheet, subsystem as combobox, sections as something with uneditable editbox with summary info about section & with single button EDIT.
moreover property sheet is weak demonstrated by fasm (so it would be interesting) - just remember property sheets structures differs from one version of COMCTL32.DLL to another, initialy requested proper version of comctl and only after created appropriate propertysheet. structs of property sheet are only expanded from version to version so could be defined lastmost variant, and only its first member struct size will be affected by comctl version.
Post 14 Apr 2020, 10:21
View user's profile Send private message Send e-mail Reply with quote
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 14 Apr 2020, 22:17
prominick, i like compact design like property sheet, however it does not worth spending time on it as i just want make everything done as quickly as possible.

i liked the idea of combobox, its not cool to have radio buttons for everything.

currently im still editing the user interface and writing minimal control handling and logic so still not everything is functional. once done i will move on coding the logic / functionality behind the control.

more on property sheets:
property sheets are basically tab control, however another control is also involved, which is MDI.

the logic behind property sheets can be done by subclassing tab control and making a borderless popup window for each tab.
the borderless popup window will have child controls in it client area.

i can do that, but im not much interested in graphical part.

but yes property sheet is very good, and personally i like it because i can have a very small window/dialog with several pages to cover anything i want. (but again it takes time)

another idea to have compact design is to make it like installations setup where we can navigate thru pages by clicking "Next" and creating/destroying each dialog as we hit next or back buttons.
but its not ideal, there are better ways to implement such logic .. but i have to think a lot.

i will update the first post shortly to include another image of the progress. (after completing the wizard and the functionality of it, then i can focus on the gui part and more compact design)

_________________
Asm For Wise Humans
Post 14 Apr 2020, 22:17
View user's profile Send private message Reply with quote
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 14 Apr 2020, 22:29
revolution wrote:
Yeah, cool.

Generate the boring boilerplate so we can concentrate on the meat of the coding.

i also added a way to create custom section, includes, how to construct import section and what resource do you want to use.

maybe we can add stuff for fasmarm too, but not now.

_________________
Asm For Wise Humans
Post 14 Apr 2020, 22:29
View user's profile Send private message Reply with quote
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 15 Apr 2020, 02:54
ok here is more progress, ui is done .. need to focus on logic.

https://board.flatassembler.net/topic.php?p=213435#213435 (first post)

it will take few days, as i cant spend all my free time working on this.

_________________
Asm For Wise Humans
Post 15 Apr 2020, 02:54
View user's profile Send private message Reply with quote
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 16 Apr 2020, 23:40
believe or not, while editing the order of control creation i used ctrl-x to cut so i can paste somewhere else, and i copied a large chunk of controls then accidentally i copy something else and save the file (((((((((((((((:

im not going to work on this anymore, fuck this luck.

_________________
Asm For Wise Humans
Post 16 Apr 2020, 23:40
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20450
Location: In your JS exploiting you and your system
revolution 16 Apr 2020, 23:43
Sorry to hear about your pain.

Backups?
Post 16 Apr 2020, 23:43
View user's profile Send private message Visit poster's website Reply with quote
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 17 Apr 2020, 00:08
i have an old backup that have less than 50% of the controls and 0 logic code. (before messing up i had over 170 controls)

one might be wondering why the order of creation matter, well it doesnt normally, but when you want to have ws_group and tabstop style to navigate using tab and arrow keys it doest matter. (because after creating 1 control with ws_group, every control follows that control will be assigned to the same group until it find another control with ws_group style, which is stupid implementation, i blame windows)

_________________
Asm For Wise Humans
Post 17 Apr 2020, 00:08
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20450
Location: In your JS exploiting you and your system
revolution 17 Apr 2020, 00:39
Order always matters IMO. Not everyone uses the mouse. The keyboard navigation is awful when dialogs don't have the controls in any order.
Post 17 Apr 2020, 00:39
View user's profile Send private message Visit poster's website Reply with quote
Ali.Z



Joined: 08 Jan 2018
Posts: 732
Ali.Z 17 Apr 2020, 01:21
yes, i dont use the mouse a lot, thats why i wanted to reorder so i can use group and tabstop styles.

all what i wanted is to create something that aid development when using fasm by generating the basic requirements by few clicks nothing fancy - a simple utility not a real project.

maybe i need to create something else, ehm on top of my head:
- source level flow analyzer, that create flow graphs.

IDA Pro/demo are disassembly level flow analyzing tool, imagine same functionality for source level, that would be super great project.

but its near impossible without implementing your own custom classes, or at least subclassing many different controls. (lets say minimum 5)
and of course use GDI for drawing, and implement a zoom-in/out mechanism.

then basically analyze Jcc and call instructions.
but thats little bit to much for 1 person, all this extensive work should be split across a small team. or otherwise that single person should work several months before seeing actual product and testing it.

_________________
Asm For Wise Humans
Post 17 Apr 2020, 01:21
View user's profile Send private message Reply with quote
typedef



Joined: 25 Jul 2010
Posts: 2909
Location: 0x77760000
typedef 28 Dec 2020, 21:40
Ali.Z wrote:
believe or not, while editing the order of control creation i used ctrl-x to cut so i can paste somewhere else, and i copied a large chunk of controls then accidentally i copy something else and save the file (((((((((((((((:

im not going to work on this anymore, fuck this luck.


Very Happy Very Happy Very Happy

Should have used Git or something
Post 28 Dec 2020, 21:40
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1671
Location: Toronto, Canada
AsmGuru62 29 Dec 2020, 21:54
Seems like a great tool!
I could help to code something like that -- using custom property pages -- not the ones from ComCtl32.
Except I don't get all the things specified in UI: NX!? I know NX-01, but that is not it.
What is "Native"? Is it a DLL project?
"Control Panel"? -- You mean Windows Control Panel? I don't follow this one too.
Oh, I see -- you have DLL there -- good.
Post 29 Dec 2020, 21:54
View user's profile Send private message Send e-mail Reply with quote
Vlad_Astrelin



Joined: 05 Dec 2021
Posts: 1
Location: Ukraine, Odessa
Vlad_Astrelin 17 Feb 2022, 09:31
Ali.Z , is it possible to see the source code of your program ? It seems very useful and interesting in terms of automation. Many thanks in advance. Vladimir
Post 17 Feb 2022, 09:31
View user's profile Send private message Reply with quote
FlierMate



Joined: 21 Jan 2021
Posts: 219
FlierMate 21 Mar 2022, 12:01
AsmGuru62 wrote:

What is "Native"? Is it a DLL project?


It is "Device drivers and native Windows processes".
Post 21 Mar 2022, 12:01
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4073
Location: vpcmpistri
bitRAKE 22 Mar 2022, 11:02
Native would be no OS. Very Happy
Post 22 Mar 2022, 11:02
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
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 vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.