Hey Ketilo, as a creator of a large project(RadASM) do you have any recommendations of how to manage a large project(gonna be starting one this weekend). And I will be using RadASM(of course, haha) for the IDE. I am thinking module based but I don't know if I am gonna like that NMake project work around for RadASM??? Also, would you use the Lib creator included with Masm32 and wrap up things that way?(like class, or OOP thinking)

I am gonna be writing a fairly large Graphical Game designer for the Gameboy Advance(already wrote one with Delphi). In Delphi it was about 20 Modules of code. I'd say about 30 files total with around 10,000+ lines of code.

I want to do something bigger and better and use Masm for it

I don't want to get burned with poor management basically. ASM can be a real headache if poorly managed!!

If you, or anyone else who reads this would like to offer their thoughts on effective methods for managing large ASM projects

thanx guys

P.S. Just to make this post kinda fit in this category, this is a game IDE, lol
Posted on 2002-01-08 18:51:39 by Rockinronstar
Hi Rockinronstar

How to manage a large project. Well, it's a matter of tase. RadASM is some 600k, 24000 code lines in 35 modules.
I use the main asm file to glue the modules into one project. As it only take a few seconds to assemle and link I see no reason to why I shoud bother with a lot of obj's, lib's and externals.

KetilO
Posted on 2002-01-08 20:18:42 by KetilO
when you mean glue, do you just include the ASM source? ie

include Module1.asm


Or do you actually have seperate modules that are all compiled seperately with their own .code section and then all linked together? ie. include an inc file that externdef's the procs in the other files

thanx
Posted on 2002-01-08 20:29:40 by Rockinronstar
I've tried using NMAKE and the interfacing between modules seems like too much work for practicle use! So much needs to be done manually to syncronize everything - it is a real struggle when things are evolving. What once seemed like a good idea is turning into a convoluted mess. I'm thinking maybe it's my coding style that runs against this kind of order.

This is everything assembled into separate object files, and then linked into one lump of code.
Posted on 2002-01-08 20:33:06 by bitRAKE
To me module development would only be easily managed if you had an IDE that had a Module/Function Explorer that let you jump seamlessly between the files. Hard to always remember which of the 50 files had the function you needed, haha

so bitrake, would you suggest using multiple asm files and just include them into the main .asm file, or even just use one big ass file for all the code?
Posted on 2002-01-08 20:37:57 by Rockinronstar

when you mean glue, do you just include the ASM source? ie

include Module1.asm


Or do you actually have seperate modules that are all compiled seperately with their own .code section and then all linked together? ie. include an inc file that externdef's the procs in the other files

thanx

Yes, that's what I do. I try to make each module self contained with .data, .const and .code sections. Usualy a module takes care of everything needed to handle a dialog.

KetilO
Posted on 2002-01-08 20:39:29 by KetilO
Ketilo, before you mentioned that NMake project was the method for using Module based coding in RadASM. Is this what you use yourself? And do you think you will ever add the feature to RadASM directly that will treat each ASM file as a seperate entity and compile/link them accordingly?

thanx
Posted on 2002-01-08 20:45:38 by Rockinronstar
KetiIO,

Not everyone uses the same method you do. I ran into the same prolem while trying to convert the MASM32.lib into RadASM, it wanted the MASM32.asm which doesn't exist and I didn't want to include them into the main module, because there were many errors and redefinitions and such. The bottom line is to remove the masm32 asm from the project and change the command line compile settings which is hugely inconvenient.

I would like to request that there be direct support for projects that don't have a default .asm file because in many cases with me, there won't be one... but that's just me. I don't use nmake so that's out of the question.

Nonetheless, you've done a great job on the IDE.

Thanks,
_Shawn
Posted on 2002-01-08 21:25:01 by _Shawn
I would recommend trying NMAKE on a small project and judge for yourself. The only benefit with building each file into an object is that you get to decide what symbols are accessible externally, but in asm there is a less contained approach to coding. This seems to create a conflict with small projects, but I imagine at some point the project would become loaded with symbols and the benefits will become a necessity. I have not reached that point. I have many macros that create a huge number of symbols to provide assemble-time features that aren't part of masm, and again we reach a conflict because the global benefits of the macros only exists within a single run of the assembler. Unless you run up against some boundary with your coding style or within masm itself I'd say use one assembly run.

Libraries are a separate matter all together, they have to be built separately to allow individual linking apon use. Hutch--'s MASM32 is a good example - commonly used procs should be migrated to a library to reduce assemble time of large projects. (It is hard to deny his experience and understanding of the process - deepest respect.)
Posted on 2002-01-08 23:24:51 by bitRAKE
Hi all

RadASM 1.0.8 can compile and run the same way as masm32 does. You don't even need to create a project and can compile masm32 examples and Icztutes directly. And, you can always create a .bat file which you can run from the make menu and have it's output in the output window. I don't think there are any limitations other than imagination.

KetilO
Posted on 2002-01-09 02:31:59 by KetilO
perfect, thanx guys

gonna also try the dll approach as well.
Posted on 2002-01-09 06:27:02 by Rockinronstar
VASM - Visual Assembler has a built-in Project Management System including version control of all files that includes asm files, resource files, external files etc.

You will see this in the next version of VASM. The version control of VASM uses XML as an in-memory database as well as XML as external file storage. Since the small XML db engine is entirely in-memory, it is extremely fast.

The Project Manager in VASM is the key to manage all contents of Groups and Projects. A group is a collection of at least one project. This allows you develop completely different portions of applications such as multiple DLL's and EXE's. Basically, a group can consist of projects that are related or not.

Also, if you make a change in VASM, VASM will make an internal backup. You can change the backup levels. What does this mean? You can "try" things. You can go back several levels deep and reach an older asm file that "did" work.

A check-in and check-out feature will be included at a later date to help the development of large asm projects using multiple developers.

Anyways, I'm almost done with the visual designer of VASM. It's almost identical to the one in Delphi. The creation of RC's (Resource-Definition Script File) is already working.
Posted on 2002-01-09 08:25:37 by rainbird
Warning guys...

The great MAsmEd in the sky have been aware of your existence and it's now watching you...

btw ketilo: the lastest options of your
(excellent) radasm looks familiar to me...

hitch.
Posted on 2002-01-09 11:05:54 by hitchhikr
These developments here can only mean good things for all of us! :grin:

rainbird, sounds awesome - going to have to check that out.
Posted on 2002-01-09 11:19:33 by bitRAKE
sure sure

just that feeling of "deja vu".

hitch.
Posted on 2002-01-09 11:53:22 by hitchhikr
Hi hitchhikr

Yes I did dl MasmEd a while back and did study it close. Still I don't think I borrowed any ideas from you. :rolleyes:

KetilO
Posted on 2002-01-09 12:44:12 by KetilO
Never said that
i just have natural tendencies to see the world as a mirror.
Maybe i should consult some experts about that.

Well, the world laying around me is a great source of inspiration, that's human.

I remember having told something like that to god when he was about to create that world:

"John (John god, he is american): u should add more colours to this thing you will call the world".

"Yeah, u're right once again old buddy"
he answered.

That spirit of nonsense.

hitch.
Posted on 2002-01-09 12:54:19 by hitchhikr