flat assembler
Message board for the users of flat assembler.

Index > IDE Development > Visual resource (dialog) editor for FASM - preliminary.

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
Hi all.

The below program is preliminary version -1.0 ( simply idea ) for FASM resource editor. It's buggy and don't work very good. But I want do discuss an idea. What functions will be usefull. Do you like this kind of resource editing.

The preliminary name of the project is "Fresh" - <F>ASM <res>ource ... (I don't know about "h" Very Happy )

How to work with "Fresh":

Press "New"
Drop some controls on the dialog window.
You can drag handles or control.
Press "Export to FASM" to generate FASM source code.

Every opinion will be appreciated.

Regards
John Found

[EDIT]Outdated attachement removed. There must be newer version. possibly in another thread.[/EDIT]


Last edited by JohnFound on 22 Sep 2003, 08:55; edited 1 time in total
Post 02 Jul 2003, 10:36
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 7802
Location: Kraków, Poland
Tomasz Grysztar
Fasm RESource Host maybe? Very Happy
Very nice idea!
Post 02 Jul 2003, 11:42
View user's profile Send private message Visit poster's website Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
Mr. Green Arrow Hmm, didn't JohnFound wrote:
The preliminary name of the project is "Fresh" - <F>ASM <res>ource <h>elper(I don't know about "h" Very Happy )

Question Hmm? I see where the "h" comes from... Wink

I've jsut started it look nice, will look deper into it

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 02 Jul 2003, 11:51
View user's profile Send private message Visit poster's website Reply with quote
Aquila



Joined: 21 Jun 2003
Posts: 16
Location: Russia, Moscow
Aquila
privalov wrote:
Fasm RESource Host maybe? Very Happy
Very nice idea!


Imagine how it will be nice to write something like "data resource from 'test.res" Wink.
Post 02 Jul 2003, 16:45
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 7802
Location: Kraków, Poland
Tomasz Grysztar
Aquila wrote:
Imagine how it will be nice to write something like "data resource from 'test.res" Wink.

I have already imagined that; don't worry, it's on my TODO list. Wink
Post 02 Jul 2003, 23:21
View user's profile Send private message Visit poster's website Reply with quote
BiDark



Joined: 22 Jun 2003
Posts: 109
Location: .th
BiDark
JohnFound, when will be complete? Cool
Post 03 Jul 2003, 02:43
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
BiDark wrote:
JohnFound, when will be complete? Cool


Actually I don't know. The whole idea is a big - I want to integrate this editor (not only for dialogs, but for icons, cursors, graphics and other resources in FASMW together with project manager and source level component and functions library to build whole complete RAD IDE for windows development. But firstly I think to release "Fresh" as stand alone applicaion with automatic generation of resource sections.
Post 03 Jul 2003, 05:31
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Vortex



Joined: 17 Jun 2003
Posts: 318
Vortex
JohnFound,

Very nice workImage

_________________
Code it... That's all...
Post 03 Jul 2003, 11:03
View user's profile Send private message Visit poster's website Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
Actually I don't know. The whole idea is a big - I want to integrate this editor (not only for dialogs, but for icons, cursors, graphics and other resources in FASMW together with project manager and source level component and functions library to build whole complete RAD IDE for windows development. But firstly I think to release "Fresh" as stand alone applicaion with automatic generation of resource sections.

I think it's better to keep it standalone, and intergrate it so it can be run via the fasmw from some menu or via some key sequence, maybe implet some funcitonallity to parse the active file for "data resource from '<file>.res" and then popup a little dialog where one selects which .res file to open with Fresh. That way integration/instersect/interface bugs can be avoided, at least some.
Plus that it's easier to isolate where possible erors/bugs are/occurs

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 03 Jul 2003, 11:29
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 7802
Location: Kraków, Poland
Tomasz Grysztar
Or maybe it'd be good to build some plug-in interface into FASMW and release such tools as a plug-in libraries?
Post 03 Jul 2003, 12:33
View user's profile Send private message Visit poster's website Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
privalov wrote:
Or maybe it'd be good to build some plug-in interface into FASMW and release such tools as a plug-in libraries?

Plug-ins = dlls?
I think DLL shall be used for plug-ins, I got an idea on how to implent plug-ins, I'll try to make an litte demo for the idea and post it.

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 03 Jul 2003, 13:45
View user's profile Send private message Visit poster's website Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy
Cool!
Post 03 Jul 2003, 14:22
View user's profile Send private message Visit poster's website Reply with quote
BiDark



Joined: 22 Jun 2003
Posts: 109
Location: .th
BiDark
IMHO, "fres" just enough Rolling Eyes (flink, fmake, fdis and so on...)
Post 03 Jul 2003, 14:57
View user's profile Send private message Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy
Hi!

I've written a little program with a plug-in system which might be useful to implement in FASMW... The plugin is the dll-file Plugin.dll which has access to (at the moment) two functions in the IDE: SetText (set the content of the asmedit-control) and SetPos (set position in asmedit-control). The zip includes an example where the plugin is a template system... But don't expect too much... This was written in 10 minutes and only demonstrates one way to do it... Wink (Actually this is my first plugin solution)

My plan is to continue on the editor and make my own customized version of the IDE (I will of course post it here with sources when I have a working version Wink)...

Enjoy!
Tommy


Description:
Download
Filename: Fasm+Plugin.zip
Filesize: 29.34 KB
Downloaded: 363 Time(s)

Post 03 Jul 2003, 15:43
View user's profile Send private message Visit poster's website Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
((Argh! I dislike menus very much Evil or Very Mad ))

It will take too long time to make the demo app work, so I'll just show the idea in a way which I understand it, thus it may seem a little chaotic to you. Rolling Eyes
The part which blocks me is the part where I'm trying tp instert the damn submenu, I just can't get it to work. I get a sepparator sometimes and sometimes, if I'm lucky, I get the text "Test function 1". Are there any exmpales of where the menus are generated on-the-fly anywhere?
Code:
;-------------------------------------------------------------------------

struc VERSION_STRUCT high, low, build
{ ; v. High.Low.Build
 .High  dd high
 .Low   dd low
 .Build dd build
}

struc PlugIn_Header lpName, lpDesc, vHigh,vLow,vBuild, nFuncs, lpFuncs
{
 .lpszPluginName        dd lpName                        ; pointer to plug-in name string.
 .lpszPluginDescription dd lpDesc                        ; pointer to plug-in description string.
 .PlugInVersion         VERSION_STRUCT vHigh,vLow,vBuild ; Plug-in Version.
 .nFunctions            dd nFuncs                        ; Number of plug-in functions (public).
 .lpFunctions           dd lpFuncs                       ; array of plug-in function structs.
}

struc PlugIn_Function lpProc, lpName, lpDesc
{
 .lpFunction               dd lpProc ; Pointer to funciton
 .lpszFunctionName        dd lpName ; pointer to function name string.
 .lpszFuncitonDescription dd lpDesc ; pointer to description string.
}
;-------------------------------------------------------------------------

Example of plug-in table in DLL, the address to piHead is returned by the funciton LoadPlugIn, in the code section:

  ; (in .data section)
  piHead  PlugIn_Header szPName, szPDesc, 0,1,5, (piFuncs.sizeof/6), piFuncs

  piFuncs PlugIn_Function Function1, lpFunction1, lpFunction1Desc,\
                         Function2, lpFunction2, lpFunction2Desc
  .sizeof = $-piFuncs

  szPName db 'Plug-in0',0
  szPDesc db 'Test plug-in',0

  lpFunction1     db 'Function 1',0
  lpFunction1Desc db 'Test function 1',0
  lpFunction2     db 'Function 2',0
  lpFunction2Desc db 'Test function 2',0

;-------------------------------------------------------------------------
Here's how it could look in fasmw when the table has been loaded and processed:
.__________________________________________________.
|[#]_fasm__________________________________ _ [] X |
|File|Edit|...|Plug-ins    |...____________________|
|             +------------+                       |
|             |Settings... |                       |
|             +------------+------------+          |
|             |Plug#In#0##>| Funciton 1 |          |
|             +------------++Function#2#|          |
|             |Plug-in1   >|+-----------+          |
|             +------------+                       |
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
|__________________________________________________|
| (status bar)| Test function 2                  //|
+--------------------------------------------------+
where the items wiht "#" instead of " " are highlighted/under the cursor.
;-------------------------------------------------------------------------
All the plug-ins are located in a subfolder names, guess, PlugIns. And all dll are loaded at stat up, or as specified by fasm.ini    

Did it make any sense to you?

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 03 Jul 2003, 18:49
View user's profile Send private message Visit poster's website Reply with quote
BiDark



Joined: 22 Jun 2003
Posts: 109
Location: .th
BiDark
Ah!! I prefer scientica's way. Twisted Evil
Post 04 Jul 2003, 04:23
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
Of course, to have Plug-in ability in FASMW is good. But to build whole IDE based only on Plugins, that is not very good IMHO.
Modularity of the system must stay on some reasonable level i.e. one complete stand-alone application and a few small, not absolutely necessary plugins. Look at similar systems like PhotoShop for example. It is stand-alone very powerfull graphic editor. But you can add extra filters, if you need them.
Also, the natural evolution of the software is from modular to nonmodular systems. FASMW is good example for this. The first versions had text editor in separate DLL. But in the next versions, Privalov build the code of the editor in the main executable. And IMHO this is good. The program gains some entireness and ripeness. So, LEGO concept is funny and very good for toys, but for profesional tools it's not very suitable.

Regards
John Found
Post 04 Jul 2003, 04:26
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
BiDark



Joined: 22 Jun 2003
Posts: 109
Location: .th
BiDark
JohnFound wrote:
And IMHO this is good. The program gains some entireness and ripeness.


And hard-to-catch bugs of course. Laughing
Post 04 Jul 2003, 04:37
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3502
Location: Bulgaria
JohnFound
Hi BiDark.
Quote:
And hard-to-catch bugs of course.


Yes, you are almost right, but I think, that if the program have "internal modularity" as every well written program (the principles of structural programing are valid even for assembler programs), the bugs are easy for hunting. We are old bug hunters! Isn't it? Very HappyVery HappyVery Happy
Post 04 Jul 2003, 04:57
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
BiDark



Joined: 22 Jun 2003
Posts: 109
Location: .th
BiDark
JohnFound wrote:
We are old bug hunters! Isn't it? Very HappyVery HappyVery Happy


Urmm.., It's my another job for Fasm!!! Very Happy
Post 04 Jul 2003, 05:57
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< 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-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.