Visual Assembler logo
Files   Message Board   News   FAQ   Team   Dev Area  


Introduction


ATTENTION!!
All development, design, and maintainance has been halted!
What does this mean?

   Visual Assembler is an IDE for assembly language programming that incorporates Rapid Application Development (RAD) features. Direct support is provided for win32 assembly programming on the Intel x86 processors via the free NetWide Assembler. Visual Assembler is still under development, with about 25% of the intended functionality implemented in the current version. Submit/view bugs here.

  Visual Assembler will ship with a number of code-generating "wizards" that will guide the user through creating Win32 applications, libraries, drivers and VxDs. In addition, a large supply of code modules for Intel opcodes, DOS and BIOS interrupts, Win32 API calls, and standard programming libraries will be supplied for instant insertion into the user's source code. Project-browsing windows for quickly viewing and editting program source modules, data, resources, and message handlers will also be available. The IDE will have integrated tools including a debugger, calculator, binary editor, and disassembler, and will incorporate the compiling and linking of the final program into the development environment to make compilation and error correction easier.

  The strength of Visual Assembler will lie in its wizard modules. The IDE will display all of the .dll files in the \Visual Assembler\Wizards directory using their internal names; these libraries will all be called using a standard (and documented) interface which will enable the user to create their own wizard modules. Each wizard will prompt the user for specific information such as the name and location of the project, and will proceed to create a project.ini file for the project which will contain a list of the source code modules to be included in the project. When finished the wizard module will turn control over to the IDE, which will open the project.ini file and use it to load the user-modifiable code modules in the project.

Anticipated Developments


  In order to provide basic R.A.D. functionality in a shorter time period, Visasm is going drop direct support for all assemblers but Nasm for the time being. The reason for choosing Nasm is that it is 'free', it is portable to multiple OSes, and it is a quality assembler capable of win32 code generation; therefore it can be integrated into the Visasm IDE along with its disassembler and Net Walker's debugger without bringing up license agreements, royalties, etc.

  Once Nasm is going full-blast, support for user-specified assemblers can be added. More important, however, will be the inclusion of a resource editor [and compiler] into the IDE. A 'Project Manager', various 'Project Wizards', and overall integration of projects into the IDE will be needed at this point as well.

  Eventually Visual Assembler will be ported to run on multiple OSes. This will be done by re-designing the IDE in Tcl/Tk, using Nasm as the assembler; at this point it may be desireable to include support and integration of the basic Gnu tools [ld, gas, gcc, gdb, binutils] for cross-platform support. Additional libraries of procedures and classes will be needed to achieve the goal of this stage of the project, which will be the creation of a Linux version of Visual Assembler (with X-Windows support).

News

Background


  The Win32 programming market is dominated by "visual" RAD tools such as Delphi, Visual Basic, and C++ Builder that offer the programmer a flexible class library represented within an IDE by objects and wizards; the lure of these development environments is their speed and easily-negotiated learning curve, the payoff is the inordinately large applications they produce. While it can be argued that the power of modern machines is such that a 70 to 100K "hello world" application is perfectly acceptable on a platform with 32-128MB RAM and 4-8 GB of hard drive space, this train of thought ignores the fundamental principles that 1) smaller applications run faster, and 2) the continual development of needlessly larger and larger applications does not merely encourage the production of larger and faster machines, but also requires it, and ultimately contributes to the 16-month obsolescence that plagues computer hardware consumers and vendors to this day.

  In the face of moden RAD tools, assembly language has been ignored not only for its complexity and the significant amount of knowledge required to use it effectively, but also because--broadly speaking--it does not have the capacity for implementing an extensible class library such as VCL, OWL, or MFC. Certainly the work of Barry Kauler, Sven Schreiber, and others have shown that assembly language can be realistically implemented on a Win32 GUI platform, using standard C Win32 programming techniques with MASM and C++ class-oriented methods with TASM. Visual Assembler is being developed based on the notion that not only can assembly language be used to program Win32 applications, but that is can be used quickly and easily through the careful implementation of reusable code modules rather than classes.