V i s u a l A s s e m b l e r


Warning: This site is no longer being updated. Please update your bookmarks to http://www.bytamin-c.com/VisualAssembler/index.htm


Visual Assembler is an IDE for assembly language program that incorporates Rapid Application Development (RAD) features. Direct support is provided for win32 assembly programming on the Intel x86 processors, using the Masm, Nasm, or Tasm assemblers.

Visual Assembler is still under development, with about 25% of the intended functionality implemented in the current version. There are screenshots of the current version; in addition, a sort of help wanted page has been put up as an introduction to the project for programmers who want to help out. The current list of people in one way or another affiliated with the project is here.


Distributions

Date Source Binary NasmPak Tools Docs
05/25/99 zip(1.0MB)rar(608KB) zip(1.7MB)rar(1.4MB) zip(364KB) unchanged unchanged
05/02/99 zip(1.2MB) unchanged unchanged
02/20/99 zip(973KB) zip(1.8MB) zip(989KB) zip(72KB)

Support Files

Link Description
Include Files Bundled include files for Visual Assembler and NASM. To download separately go here.
Libs Various routines for use with Visual Assembler and NASM.
NasmPak This full-featured pack supplies many tools needed for pre-Visual Assembler NASM development
NASM Examples Updates for the NasmPak Example directory.

Developer Resources

Developers' Site Developer List
Thoughts MessageBoard
Nasm/VisAsm workspace
New Assignments Old Assignments
Developer Specs Version Control
W32ASM Samples Wizard Sample



Background

Visual Assembler is an attempt to apply Rapid Application Development techniques to assembly language programming. 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 hardr 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 has 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.

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.

Visual Assembler will initially be designed to only make win32 assembly programs; eventually it will have the capacity to produce programs for non-Intel and non-Win32 platforms (such as Linux/X-Windows) and ultimately will be ported to run on these platforms as well.



FAQ
  • Who can help out? Assembly language programmers can develop .asm libraries and wizards which will be at the core of Visual Assembler, C/C++ programmers can help out with the IDE development. Currently ideas are being sought for implementing future cross-platform features; programmers with experience using assembly language in non-Intel or in Unix/X-Windows environments are encouraged to submit notes on their experience. Testers, etc will also be needed. Contact [email protected] to help out.
  • Are the developers paid? No. Everyone involved in this project is dedicated to producing this application so that they may eventually use it; this not only provides more motivation than simple financial gain, it also inspires the need for a quality product. Visual Assembler is being designed to do everything that its developers think they will need it to do.
  • Is this for sale? No. This will be a free development environment. Some of the tools/compilers will have to be found by the end user, of course. The final version will have completely free tools and will be compliant with NASM, the free NetWide Assembler, as well as TASM and MASM.
  • Why C++ Builder? 1) Time, 2) Ease of use, 3) Time. Anyone wishing to re-code Visual Assembler in C or ASM is welcome to join the team.
  • Why are some features disabled/buggy? Relax, it is still in Alpha.
  • Why is Visual Assembler missing some good features? No-one has thought of them yet: please contribute your suggestions.
  • When is this going to be finished? Visual Assembler is being deleveloped on no particular schedule save for the need of the developers to see it actually do something useful. Work is progressing quickly--much more quickly than could have been thought possible--and a beta should be officially released during this summer.