ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º ASMIDE - THE MULTIPLE ASSEMBLER INTEGRATED DEVELOPMENT ENVIRONMENT º º Version 4.01 Toby Kurien 1994 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÚÄÄÄÄÄÄÄÄ¿ ³CONTENTS³ ÀÄÄÄÄÄÄÄÄÙ 1. Introduction 2. Features 3. Guidelines 4. Configuration 5. Command Line 6. Frequently asked Questions (FAQ's) 7. Notes 8. Limits, Bugs and Wishes 9. About the author 10. Disclaimer 11. Acknowledgments ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ 1.³INTRODUCTION³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ Asmide is a shareware program written to relieve the frustration involved in using an assembler to write programs. Asmide simulates an IDE (Integrated Development Environment) for assembly language programming. Due to the fact that assemblers work from the command line, programmers usually do the following: þ Use a text editor to write the program. þ Save the program. þ Exit the editor. þ Assemble the file from the command line. þ Run the program. þ Reboot the machine if it crashes (happens quite often) þ Return to the editor to make further modifications. This process is very time-consuming and frustrating, because most text editors take years to load (especially if you are working with an 8088 computer like mine)! Asmide allows you to edit, assemble, link and/or run your program without leaving the editor. Asmide also allows you to run a debugger. However, Asmide cannot prevent faulty programs from crashing your PC! ÚÄÄÄÄÄÄÄÄ¿ 2.³FEATURES³ ÀÄÄÄÄÄÄÄÄÙ þ Asmide contains all the features of a conventional editor, such as Finding, Replacing, Cutting, Copying, Pasting. þ Asmide has the ability to open multiple files, allowing you to transfer text between the files. Multiple windows can be Tiled or Cascaded, and features Scroll bars. þ Asmide has mouse support. þ Asmide features a simple, 4 function, 3 mode calculator, and an Ascii Chart. þ Asmide has menu systems allowing you to assemble, link, run and debug your program. Short cut keys are also provided. þ Asmide allows you to specify your own assembler, linker and debugger in the configuration file. þ Asmide features setup dialogs that provide support for TASM, TLINK, MASM and LINK. ÚÄÄÄÄÄÄÄÄÄÄ¿ 3.³GUIDELINES³ ÀÄÄÄÄÄÄÄÄÄÄÙ There are a few guidelines you should stick to for best performance: þ Asmide works by passing command line options to a sub-program. This command line can be viewed by starting Asmide with the /D option. You should try and keep this command line as short as possible, because the command line to a sub-program cannot exceed 127 bytes (1« lines), otherwise it will be truncated. If your command line is too long (longer than 1« lines), try these: þ Keep your source files close to the root directory so that the fully qualified filenames are as short as possible. þ Use as few of the setup options as possible. Use only the options you need to. þ Enter only the absolutely necessary parameters in the Parameters dialog box. þ If you still need to shorten the command line, leave the include directory in the Directories dialog box blank, and use the 'File³Change dir...' option to change to the include directory. That way, your include directories should still be accessible to the assembler. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 4.³CONFIGURATION³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Asmide searches the current directory and the PATH for the file ASMIDE.CFG or the configuration file specified in the command line. If you do not have a configuration file, an error will be displayed when Asmide starts up. To avoid problems, keep the configuration file in the same directory as the executable file. (Same applies to the help file) To configure Asmide, do the following: Once you start Asmide, select the 'Options³Directories' menu item. Enter the required information into the dialog window, then save it using the 'Options³Save As' menu item. You should also configure the setup dialogs under the 'Assemble' and 'Link' menus, as well as the dialogs in the 'Options' menu. Do not rename ASMIDE.EXE, as it uses that filename in it's search for the configuration and help files (which you should keep in the same directory). If you prefer a shorter name, edit and place the batch file (A.BAT) somewhere in the PATH. ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ 5.³COMMAND LINE³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ The command line syntax for Asmide v4.01 is: ASMIDE [filename.ext] [/?] [/C] [/D] filename.ext is the name of the file to edit. Wildcards are permitted. /? get command line help. /C specifies as the configuration file to load at startup. Asmide will search the PATH for the file. /D Display parameters. Displays the parameters that Asmide passes to the assembler, linker or debugger. These parameters are displayed following the line that reads: "Running ..." when you run an assembler, linker, or debugger. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 6.³FREQUENTLY ASKED QUESTIONS (FAQ's)³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 1. How do I install Asmide on my machine? Copy all the files to a directory, eg. C:\ASMIDE , then include the directory in the PATH. Next, configure Asmide (See section 4 - Configuration). Asmide should now work from any directory. If you do not want to place the directory in the PATH, edit and place the batch file provided (A.BAT) in the PATH. 2. What are the minimum requirements for Asmide to work properly? I don't know! I haven't had a chance to test the program on different systems, but I do know that it will work on an 8088 computer with a CGA or HERCULES monochrome card and 640k RAM (does it get any worse than that???). You need the following files to run Asmide: ASMIDE.EXE - The executable file ASMIDE.CFG - The configuration file ASMIDE.HLP - The help file (only needed for help) An optional mouse driver if you are using a mouse You will also (obviously) need an assembler and linker, and an optional debugger. 3. Does Asmide have help on the assembler language? No. Asmide only provides help on it's own menu items and dialogs. The ideal environment would be to load a context-sensitive TSR help program such as The Norton Guides, which provides help for both Tasm and Masm, and the assembler language. Let me take this opportunity to apologize for my crummy help text - I got a bit lazy, besides, I'm no good at explaining things :) 4. How do I print a file or a block of text in Asmide? There is a little trick you can use to print text. If you want to print a whole file, open the file, then select the 'File³Save As' menu item and save the file as PRN, LPT1 or LPT2 depending on which port you want to send it to. To print a block of text, mark the block, copy the block to the clipboard, select the Edit³Show Clipboard menu item, then select the 'File³Save As' menu item and save the contents of the clipboard as PRN, LPT1 or LPT2 as before. 5. What do I do if Asmide does not work on my machine? Get a new machine :) Also, let me know of it. 6. How much memory is available to the assembler? ie. how much memory does Asmide take? Without any file open, Asmide takes up about 249.6K bytes of memory. However, you can force Asmide to swap to a disk file, EMS, or XMS memory by configuring the 'Asmide Setup' dialog under 'Options|Environment'. After swapping, Asmide will only take up about 1.4K of RAM. 7. Sometimes, when I setup the assembler to create both listings and cross- references, it only creates a listing. Also, if I specify many object files and libraries, some of the libraries are ignored. Why? This is not a bug. The problem is that the command line passed to the sub-program is too long, and it gets truncated. To determine whether your command line is too long, start Asmide with the /D option. If the displayed arguments take up more than 1« lines, it is too long and will be truncated. See 'Guidelines' for suggestions on how to shorten the command line to a sub-program. 8. Could I have the source code, please? Not really, but if you need help on routines, etc., mail me. Besides, I'd hate for anyone to see the messy source code! ÚÄÄÄÄÄ¿ 7.³NOTES³ ÀÄÄÄÄÄÙ If you like this program and find it useful, you are encouraged to support it by sending me a contribution of $10.00 US or R30.00 RSA. This will entitle you to notification of updates, support, and a free copy of the next version of this program PROVIDED I can send it to you via E-Mail or some other trouble-free way. More to the point though, it'll make you feel good :) Note that, at the time of this writing, I do not have much experience in assembly language programming. As I gain more experience in assembly language programming, and with your support, Asmide will continue to improve. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 8.³LIMITS, BUGS AND WISHES³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The following are the limits of Asmide v4.01: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ þ The editor can only edit files 64K or smaller in length. If your file is larger than this, you should split it up into smaller files. þ Asmide's page swapping routine will only work on these video modes: 00h, 01h, 02h, 03h, 04h, 05h, 06h, 07h (Monochrome). ie. you will not be able to view the output from a EGA/VGA graphics screen by pressing F4 or Alt-F5 in the IDE. þ The calculator has the following limits: Decimal range : -99999999999 to 99999999999 (11 digits) Hexadecimal range: 0 to 7FFFFFFE ( 8 digits) Binary range : 0 to 11111111111111111 (17 bits ) Negative Hex and Binary numbers are not yet supported. Here is a list of all known bugs: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ þ Using the 'Window³Close All' menu item after retrieving a desktop file, and opening and closing windows sometimes causes a system crash. End of list. If you discover any other bug(s), PLEASE report it/them to me as soon as possible. Here is a sort of 'Wish List' for future versions of Asmide: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ þ Increase the editor capacity. þ Syntax highlighting (!!!) þ Increase calculator range. þ Extended Keycode Tables, Instruction Set Table. þ Hex Edit binary files. þ Macro Record. þ Error highlighting in the source file. Perhaps you could help me add to this list? ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 9.³ABOUT THE AUTHOR³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ I am a new-comer to the assembler world, and as such, decided that a program such as Asmide would make learning the language a lot easier. I am an 18 year old, talented, righteous, good-looking dude, doing second year Electronic Engineering at the University of Natal, Durban. I programmed the first version of Asmide during the last week of the June vacation in 1993, version 2 during September, and version 3 in October. I wrote version 4.00 during Dec '93 - Jan '94. Please send suggestions, contributions, bug reports, feedback or nice messages to: Mr T. Kurien P.O. Box 12202 Amalinda P.O. East London 5252 South Africa or call: (0431) 431247 (during vacations) Internet: kurien1@elaine.ee.und.ac.za kurien@frob.ee.und.ac.za or maybe you could even chat to me, Viperr, on IRC. ÚÄÄÄÄÄÄÄÄÄÄ¿ 10.³DISCLAIMER³ ÀÄÄÄÄÄÄÄÄÄÄÙ This program is shareware and is not to be resold or distributed for sale with other programs which are for sale. This software is provided "as is" without warranty of any kind. In no event shall I be held liable for any loss of data or any other direct or indirect damage or claims caused by the use of or inability to use this program. (Phew!) You are, however, urged to copy and distribute this program as freely as dandelions in the wind! (If you do, please include this documentation) ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 11.³ACKNOWLEDGMENTS³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The following packages are acknowledged in the development of Asmide. Turbo Vision for Turbo Pascal 7.0 by Borland International Turbo Assembler Version 3.1 by Borland International Turbo Link Version 2.0 by Borland International Turbo Debugger Version 1.5 by Borland International Microsoft Macro Assembler Version 5.1 by Microsoft Corp Microsoft Overlay Linker Version 3.64 by Microsoft Corp Microsoft CodeView Version 2.2 by Microsoft Corp The Norton Guides by Peter Norton Computing Exec33b by Thomas Wagner These packages are trademarks of their respective companies. Thanks to Thomas Wagner for his wonderful EXEC33b package. I thank all those who have supported Asmide so far, and sent in comments and suggestions, etc. - you know who you are! A special thanks to Nishaan 'PRO' Pillay for help on hexadecimal and binary calculations, and for letting me test Asmide on his 386DX machine. PRO 'n DETH are still alive, 'cos we're BAD 'n we ain't even DEAD!!!! Last, but not least, I thank God for helping me accomplish this task, and for everything I have in this world :) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ END OF DOCUMENT : ASMIDE.DOC ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ