Introduction
ASM64 is an assembler editor using DOS, in a way that DOS commands are written once in the settings so they don�t have to be rewritten every time the code gets assembled.
Using the program
- Open the DOS settings window: Settings->DOS Settings (see image above):
- Declare the path of the assembler ml64.exe, the linker link.exe etc. (these settings remain the same until you change them):
Default:
Path ml64.exe: C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\amd64
- Complete the DOS commands in the same way you would use them under DOS (these settings are unique for every project):
Default:
Assemble: ml64 xxx.asm /c
Link: link xxx.obj
Assemble and Link: ml64 xxx.asm /link
Lib: Lib
Editbin: Editbin
Dumpbin: Dumpbin
[When creating a new ASM file, xxx.asm and xxx.obj will be replaced by the new name.]
When using libraries like user32.lib, they should be in the same directory as the xxx.asm file. Otherwise, the commands have to be prepared:
- Paths in the DOS commands should be written between quotation marks because of space characters in DOS applications.
- Special characters in DOS commands, like �(� and �)� should be written between curly brackets, like �{(}� and �{)}� because of the �
SendKeys.Send
� function (see Visual Studio help).
[This is already done for the ML64.exe path string by the function PrepareToDosCommand()
.]
- Write the assembler code, and compile and link it: Assembler->Assemble, Link etc.
When compiling the code, the DOS application is set to the foreground and the eventual errors are shown there.
There are a few examples in the Zip file.
Classes in the code
- ASM64.cs:
This class represents the ASM64 form.
- DosSettings.cs:
This class represents the settings form.
- DosProzess.cs:
This class manages the communication with the DOS console.
- FileHandling.cs:
This class manages the opening and saving of the assembler code and the settings.
- EditFindReplace.cs:
This class invokes a Find/Replace dialog.
- EditUndoRedo.cs:
This class manages multiple undo/redo actions.
- DialogSave.cs:
This class invokes a save (Yes/No) dialog.
Final
Parts of the program are lent from the Code Project WinDOS Tool by msmits, Notepad II by Mike Gold, and Leo�s Icon Archive.