Dec 072017
Assembly Laboratory Ver 1.0 for MASM/TASM.

Full Description of File

Assembler Laboratory v1.0
(c) Ghoul / Xenon

% Syntax highlighting
% Error highlighting
% Proc/Macro/Data worksheet
% Heuristic source code scan
| % Project Manager
| % Label jumps
% Ascii/Key/Scancodes table
% Opcode help, context sens.
% Keyboard macros/reassign
> + + + + + + + + + + + <
Tasm / Masm

File ALABV10.ZIP from The Programmer’s Corner in
Category Recently Uploaded Files
Assembly Laboratory Ver 1.0 for MASM/TASM.
File Name File Size Zip Size Zip Type
ALAB.CFG 3068 1394 deflated
ALAB.DOC 22899 8530 deflated
ALAB.EXE 230592 91619 deflated
ALAB.HLP 139707 29289 deflated
ALAB.MAC 3322 883 deflated
ALAB.OVR 51709 20838 deflated
ALAB.REV 8283 3290 deflated
DESCRIPT.ION 517 317 deflated
FILE_ID.DIZ 544 271 deflated
KEYS.MAC 6687 2033 deflated
LICENSE.TXT 1819 828 deflated
ORDER.FRM 5516 1758 deflated
SHAREWRE.TXT 1715 770 deflated
UNHANG.COM 2000 686 deflated

Download File ALABV10.ZIP Here

Contents of the ALAB.DOC file

(c) 1994,1995 Kurt Inge Groenbech

Version 1.0

Table of contents:

0 - Legal
0.1 - Disclaimer
0.2 - Registration (and what you get)
0.3 - Distribution
0.4 - Acknowledgements
1 - Introduction
1.1 - About this reference manual
1.2 - Why starting this project
1.3 - Release notes!!
2 - Installation
3 - Command line switches
4 - Features
4.1 - Procedure/macro Worksheet
4.2 - Heuristic Scan
4.3 - Block comment/uncomment
4.4 - Label Jumps
4.5 - Opcode help
4.6 - Tab characters
4.7 - Redefining shortcut keys in menus
5 - Project Manager
5.1 - What is it?
5.2 - Creating a project file
5.3 - Making a project
6 - Known bugs
6.1 Alab hangs when I open a window!
7 - People involved
7.1 - Public domain software
7.2 - Betatesters
8 - The author/contacting

[ 0 - Legal ]

0.1 - Disclaimer

Assembler Laboratory is provided "as is" and without any warranty.
To the extent premitted under applicable law, I disclaim all warranties,
express or implied, including but not limited to, any implied warranty
of merchantability or fitness for a particular purpose. Specifically, I
make no representation or warranty that the software is fit for any
particular purpose.

I shall not be liable for any damages resulting from the use of this
software, including but not limited to, loss of profit, data or use of
the software, or indirect, special, incidental or consequential damages
or other similar claims, even if I has been specifically advised of the
possibility of such damages.

What it means:
The only thing I guarantee Alab will do, is to take up space on your
harddisk. If it doesn't do that, well... then I think you have some
serious problems with your harddisk ๐Ÿ˜‰

0.2 - Registration

Assembler Laboratory is provided as SHAREWARE (read SHAREWRE.TXT for
information about shareware). If you continue using Alab after a 30 day
trial period, you MUST PURCHASE a license for it. This is the advantage
about shareware. You can use the program for a specified number of
days/months to see if you like it, and then pay for it if you do and
would like to use it further.

The non-commercial registration fee for Alab is set to just $15 (USD).
This includes shipping costs, disk, envelope, stamp etc.

To register Alab, do the following:

- Print out the order form (ORDER.FRM) and fill it out.
- Print out license.txt (read it ofcoz) and sign it
- Mail them both to HAAVARD ENGUM (the address is at the end of this
document, and in order.frm).
- The registration fee can be paid in cash, cheque or money-transfer
to "giro" bank or postgiro accounts:

Bank account ("giro" bank) : 82306010944
Post account (postgiro) : 08250698330

Make it payable to :

Sigrid Johansens v.23
7025 Trondheim

When Haavard then recieves order.frm and a signed license.txt (and you
have paid the fee), he will send a registered version to you by snailmail.

The shareware version of Alab comes with lack of 2 features.
I have not put any shitty delays or big screens wich says 'EVALUATION COPY'
in there, because that SUCKS! I *hate* such delays. I do not want to push
you too much to register Alab. Those who find it useful, I hope you will
appreciate my many hours of work on this project and register.

What you get by registering:
- A personalised disk with a registered version of Alab.
- Max 15 windows open (4 in the shareware version)
- Possibility to Save/Restore desktop when not using Project.

I couldn't figure out something else ๐Ÿ˜‰

0.3 - Distribution

Distribution of Alab must happen under these conditions:

- Alab should be distributed in its original archive, but if not
possible, all these files must be in the archive:
[UNHANG.COM] not a must, but do include it if you have it
[SHAREWRE.TXT] not a must, but do include it if you have it
[DESCRIPT.ION] not a must, but do include it if you have it

- No money can be charged for it, EXCEPT a little payment for the
disk or similar.

0.4 - Acknowledgements

Many hours have gone into the development of this product, and I have
got many a useful ida from various betatesters. Especially I would like
to thank the following people for extensive betatesting:

- Tor-Helge Skei (Axon/ Xenon), Main betatester
- Helge Helgesen
- Espen Grimsgaard (Twinny/ Gollum)
- Thomas Loevlie

A complete list of betatesters comes at the end of this document.

Also, I acknowledge these packages in the development of Alab:

Turbo Vision for Turbo Pascal 6.0 (yes 6.0!), by Borland International
Turbo Vision for Borland Pascal 7.0 by Borland International
Turbo Assembler by Borland International
Turbo Link by Borland International
Turbo Debugger by Borland International
Turbo Profiler by Borland International
Microsoft Macro Assembler by Microsoft Corp
Microsoft Overlay Linker by Microsoft Corp
Microsoft Codeview by Microsoft Corp

[ 1 - Introduction ]

1.1 - About this reference manual

This documentation is inteded as a short overview of Alab and I will
therefore not go too much into details, thus I recon most of you out
there know how to handle an IDE (I believe most of you have already
tried different IDE's).

2 statements before I continue...

- Please bear with my english (I'm from Norway!:)
- I will cut the crap about Turbo Vision, how an Assembler IDE editor
should be compared to a Pascal IDE editor, and so forth. I will
instead consentrate on talking about all the special features, and
other things I believe can be useful to know when starting using
- This program is called Assembler Laboratory, but in this document it
will be called Alab for ease. (AsmLab in the startup ansi ...)

1.2 - Why starting this project

For some years of assembly programming, I (as most of us) had this
cyclus during development:
> - Edit the source code in a regular editor
- Save the source code (an extra keypress)
- Exit the editor
- Assemble the source code from the command line
- Go back to the editor if reported errors
(you'd have to search for the error(s))
- Link the .obj-file (possibly run an .bat-file or MAKE instead of
- Run the executable program
- Boot machine if the program hangs
- Go back to the editor to make further modifications

This is an extremely unneccesery time consuming process, and the ida
popped into my mind: 'Why not make an Asm IDE (I hadn't seen anyone at
that time) where you can do all of this things without exiting the
IDE!' I had also seen the editors for Pascal/C which had syntax
highlighting, and I thought that that would be a great ida to have in
the Asm IDE. C also had a great error highlighting and why not also
include that in my Asm IDE? Ok, so the ida was born, and now I needed a
name for it. I for a long time had 'AsmIDE' as the name, but then
suddenly I saw that there already was an Asm IDE out there called AsmIDE
(hi Toby!). Ok, I had already come so far on the project so I didn't
want to cancel it. All I had to do was to make an IDE much better than
what is already out there. I ofcourse had to change the name. At first I
couldn't think of anything good, but I guess suddenly 'Assembler
Laboratory' must have just popped in (can't remember exactly). Since it
is called 'Laboratory' I also thought I had to make a bunch of extra
features (laboratory is a place where you have many different things at
your disposal), and so it was!

Here is a brief list of Assembler Laboratory features:
- [Save/]Assemble as standalone choice (one keypress)
- [Save/]Assemble[/Link] as standalone choice (one keypress)
- [Save/]Assemble/Link/Run as standalone choice (one keypress)
- Syntax highlighting
- Error hightlighting
- Procedure worksheet (useful popup overview of procedures)
- Macro/data Worksheet (same as proc worksheet, but for macros/data)
- Heuristic scan (scans through source code for coding bugs)
- Project Manager
- Label jumps
- Keyboard macros
- Menu functions shortcut key reassignment
- Online opcode help. Also context sensitive. (Topic Search)
- Block comment/uncomment
- Ascii/scancodes table
- Dec/Hex/Bin calculator (inspired by Toby's AsmIDE, as many other
things ๐Ÿ™‚

... and I have also included an 'unhang' utility ('') which
can prevent your machine from hanging in many cases (that is, you can
press the stated keycombination when your machine hangs, and Unhang will
try to quit back to DOS.) Beware that this program can be very unstable
I think. It will not work if you either hook int 09 or disables keyboard
interrupt. It will probably not work if you run some module player in
the background... What it does is to hook int 9 and saves an
exit-command at the address found on the stack (the point where the
interrupt was called). Just 'mov ax, 4c00h - int 21h', but it works on
most smaller programmes ! ๐Ÿ™‚ It is actually _very_ useful when coding
demos under dos for example (without sound in the background).

1.3 - Release notes!!

I have been assigned to the military service this year starting
19. Juli 1995. Due to this I have decided to release Alab much sooner
than I had expected, or else I probably must have waited one year.
Because of this, Alab will be much more unfinished than I had expected
and has a lack of features I wanted to put in there. I will also not be
available to fix bugs most of the time, which garanteed will occur during
this year, but there will be ways to pass your messages/idas/suggestions to
Xenon members or Espen Grimsgaard (twinny / gollum) who is the coordinator
of the WWW page (is at the end of this doc). Another thing about this
release version is that it contains a lot of uneccessary code (the .exe-file
is over 230k!). I have not had any time to code it better before I leave...

If there is overwhelming response, I will code as _hell_ when I have
absens of leave (I don't know what the hell it's called, what I mean is:
free from military service). I will put in features you have requested,
fix bugs, change things etc., and try to release a new version now and
then, in between military service.

[ 2 - Installation ]

- Copy all the files to the directory where you wish to have Alab
- Include the directory in your path if you want (also easiest to do
in your autoexec.bat)

Now Alab is ready to go. The first thing you should do when you start
Alab, is to go to the Options|Directories and set the path to where your
Tasm/Masm executables are.

[ 4 - Features ]

4.1 - Procedure/macro Worksheet

Procedure/macro Worksheet is a completely new feature in low level
programming IDE's. It is a popup menu with complete procedure overview.
Here you have a nice list of all the procedures in the current
source code, and by pressing [Space], you jump directly to the item the
bar is on! Well, you maybe are familar with something like this.
Borland Pascal have a browser which is quite similar to this.

4.2 - Heuristic Scan

I actually got this ida from the famous virus-scanner F-PROT. What
Heuristic Scan does, is to scan through the sourcecode and look for
bugs which wasn't reported by the compiler, and is likely to cause some
problems. F.ex. it scans for missing 'ret's in procedures (which is
likely to hang your program). This is the only thing in Heuristic Scan
so far, but I have some more idas to it, and I will most probably get
many idas from you betatesters. (F.ex. I have planned to make Heuristic
Scan scan for places where it is possible that DS doesn't point to the
data-segment (or the segment where the variable is) when accessing
variables (this is also in many cases a hang-cause).

4.3 - Block comment/uncomment

This feature is pretty much self-explanatory. You mark a block, and
choose Block comment from the menu or shortcut-keys, and ....! The block
is commented. I guess uncomment is obvious at this time ๐Ÿ™‚

4.4 - Label Jumps

This is a nice one! You just position the cursor on a line that holds
a CALL or Jxx (all jump opcodes), and press Ctrl+J. The cursor then
jumps to the procedure or label succeding the opcode.

4.5 - Online Opcode Help

Also a nice one! On the Help|Opcodes you have a very extensive online
help on the instruction set. Just choose one and there you have it all,
just as detailed as any TSR. There also is context sensitive help on
this. Position the cursor on a line which hold an opcode as the first
thing (or after a label), and press the command for Topic Search
(Shift+F1 as default). Help for that specific opcode is automatically
brought up.

4.6 - Tab characters

I do not use true tab characters in my source codes, and therefore I
have not bothered to put in support for smart tabs when the 'Use tab
characters' checkbox is checked in Options|Editor (i'm too lazy, and
besides I have very little time to finish Alab now).
That is; smart tabs is only available when using spaces instead of
true tab characters.

Also; the tab step when using true tab characters is always 8, no
matter what you type in the 'Tab size' box in Options|Editor.

4.7 - Redefining shortcut keys in menus

Actually very easy. Just follow the instructions in KEYS.MAC. The
reason why I mention it here, is because people seem to not notice
that it says you have to start Alab with the '/K' switch in order to
make the changes take effect! Remember that... Also, you must not
reorder the function names in any way! Alab does not recognais (I
know it isn't written like that!) the function names.

[ 5 - Project Manager ]

5.1 - What is it?

Project Manager lets you create and maintain a project file (extension
.APF for Alab Project File) where you specify all the .asm, .obj and
.lib files which are to be included in your program. If you specify an
.asm file in your project YOU DO NOT HAVE TO specify the .obj file
created from that .asm file! With Project Manager it gets easy to
maintain your program, and easy to link/run it.

5.2 - Creating a project file

Lets say you are starting on a program with 3-4 source files, 2
additional object files you have got from a friend with video routines
etc., and 1 of your own library files. You then first choose Open on the
Project menu and type in the name for the project file (the name of the
project file will be used to create an .exe/.com file). You then get an
open Project Manager window with no files in it. Press Insert or choose
Add Item from the menu to insert new items. Insert the 3-4 source files,
the 2 object files and the library file. Then you can go to one of the
source file and press ENTER to open it (or choose Open from the File
menu). You then write your source code in it and assembles it the usual
way. You do this with the other .asm files also.

5.3 - Making a project

When you choose Make and you have an open project, the Project Manager
goes through the files specified in the project file (project window),
top to bottom, and do this: If the file is a source file (.asm) the
Project Manager checks wether the source file is modified. If it is, the
file is assembled and the .obj file created is added to the parameters
which will be passed to the linker later. If the file is a .obj or a
.lib file, the file is added to the parameters to pass to the linker.
Then when the Project Manger has gone through all the files, the linker
is invoked and an executable is created. The name of the executable will
be the same as the name of the project file.

[ 6 - Known bugs ]

- Not actually a bug, but lots of useless code in there!
(and code which is never used too..)
- Syntax highlighting really is way to slow...!
- Not fully support for Masm. Not support for Microsoft Link yet.
- Also not support for Masm in project.
- Calculator don't handle negativ decimal->hex+some more bugs (don't
use too big numbers...)
- Project Manager:
You have to specify full path to include files in the source files
in most cases.
- The line is deleted if you press 'Shift+End,Right' (use Undo)
- Some bugs with highlight extensions
- Dos screen doesn't work on a monochrom screen (who has that anyway?)

- Some other small bugs which I cannot remember right now.

6.1 - Alab hangs when I open a window!

The cause for this is most probably that you don't have a 386+, and that
the syntax highlighting checkbox is checked in Options|Editor. What
happens is that syntax highlighting uses 386 code, and this will hang
your machine. You will have to turn off syntax highlighting and clear
the 'Highlight extensions' field in Options|Editor before you open any

[ 7 - People Involved ]

7.1 - Public domain software

- Exec procedure with EMS swap by Thomas Wagner

7.2 - Betatesters

Here is a complete list of betatesters:

- Tor-Helge Skei (Axon/ Xenon), Main betatester
- Helge Helgesen
- Espen Grimsgaard (Twinny/ Gollum)
- Haavard Engum (Hobbes/ Xenon)
- Knut Petter Svendsen (Mephisto/ Xenon)
- Staale Singstad (Cyberman/ Xenon)
- Michal Karpinski (Mike X/ Xenon)
- Kurt-Inge Johansen
- Thomas Loevlie
- Kristian Loeseth (Opossum/ )

[ 8 - The author/contacting ]

I'm 19 years old and live in Trondheim, Norway.
Student at Trondheim School of Engineering.
A.k.a. Ghoul / Xenon Development

If you have suggestions/questions/problems about Alab I cannot be
reached due to military service, as stated above ๐Ÿ™

What you should do, is send your requests to one of the addresses below:
(Most preferred method is to send it to Haavard in one way or the other,
most preferably email, and the WWW page)

Email : [email protected]
This is the email address to Haavard Engum, a.k.a.
Hobbes/Xenon Development. He will make sure I get all the
requests in time.

The coordinator of this page is Espen Grimsgaard, a.k.a.
twinny/gollum, and there you can find info about Alab and
you can send your suggestions/questions/problems there, and
he'll save them for me.

BBS : Bogus Boutique #1 +47-73964483 (Xenon Development WHQ) [BBBS]
Bogus Boutique #2 +47-73965209
Eldritch BBS +47-72582079 (23:00-07:00)
InfoLink BBS +47-22571600/22571604 (10 nodes) [MBBS]

NB! Bogus Boutique is likely to go down soon...

Det er en konferanse p nettet NDC (Norwegian Demo Connection) som
heter NDC.Alab. Dere kan poste alt om alab der til Haavard Engum. Han
kan ogs svare p en del sprsml dere mtte ha. (dere kan poste
meldingene public ogs, s kan f.eks. forslagene til nye ting
diskuteres e.l.)

You can always mail me at my home address, but it's nok likely I'll get
your letter until 1-2 months.


Author: 'Registration coordinator'
Kurt Inge Groenbech Haavard Engum
Sigrid Johansens veg 23 Stokkanhaugen 164
7025 Trondheim 7048 Trondheim

NB! Please (again) register if you like it! I have been kind not to put
some shitty delays, shareware reminders or whatever in there (but some
restrictions like the 4 window limit), and I would very much appreciate
if you show your interest, so I can continue developing this program.
(hrmpf... god, what a sentence ๐Ÿ˜‰

Last minute notes:
I know there's a lot of bad programming in there now. Ofcourse I would
have rewritten big parts of it, but I have no time because of reasons
in section 1.3.
Well, hope you like it (sorry for the 64Kb limit;) !

Kurt Inge Groenbech

 December 7, 2017  Add comments

Leave a Reply