News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Plugin support?

Started by scrooge, January 14, 2006, 02:31:54 AM

Previous topic - Next topic

scrooge

One of goasms main perks is its speed but could i make a mad request?
Would it be possible to add a plugin interface before and during goasms famous 'single pass' allowing users to modify the data

This would allow me to add multicommand-singleline support and other such features ive been trying to add in masms macro system (with little success!)

2nd point:
i know your set on making the assemble as slick as possible but ading this  (unique) feature would allow me to add psuedo (.if/.endif ) support which if im honest is the the only thing that means im still using masm :'( since GO seems infintitly more powerful in every other repect
thx in advance

jorgon

Hi Scrooge

Could this be done by adding another "interrupt" which does things the user commands?

Already there are the following ones:-
GOASM_ECHO message
GOASM_EXIT
GOASM_REPORTTIME

I could add an interrupt which runs a pre-processor written by you and then assembly could continue afterwards.  The number of lines to process might need to be specified in some way.
Author of the "Go" tools (GoAsm, GoLink, GoRC, GoBug)

scrooge

 :bg

Maybe?,I was going to do it like this

1.enumerating the included files
2 'fixing up' new commands
3.then passing this fixed output file to the assembler
(acting like a compiler)
The bigest 'problem' from a pre-processor point of view is it seems messy for adding simple .if statments

The most troublesome thing to acheive in masm if named forward labels forcing most macros to have a some kind of end statment Rather than a simple close bracket .etc

for example if I assume control over the key word MATH:

Go sends me:-
mov eax, MATH (SIN(43)/WhateverValue)

I would return a ptr to the fixed asm and its len/number of lines
Go would continue to compile from there until len is 'dec'ed to zero then return to the original file's next line

If I've learned one thing from Watching the RADASM project is that if open up a decent program to a plugin interface (Troublesome though they can be!) people will push your program to the max it can be.
1000 heads are better than one.

I guess what im really going for is the lazyness of a c compiler without the overhead!

thx

jorgon

As mentioned in the GoAsm help file, I did not include support for the .IF/.ELSE/.ELSEIF/.ENDIF and .WHILE/.BREAK (runtime test conditions and/or repeat) commands, because of their similarity with the commands for conditional assembly (which is supported).  I have always been willing to add support for runtime test conditions and/or repeat commands if:-
(a) GoAsm users wanted it; and
(b) a suitable syntax could be agreed on, which was far enough away from the conditional assembly commands to reduce the chance of confusion with those commands.
Author of the "Go" tools (GoAsm, GoLink, GoRC, GoBug)