home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS - Coast to Coast
/
simteldosarchivecoasttocoast2.iso
/
asmutil
/
rtools.zip
/
README.DOC
< prev
Wrap
Text File
|
1993-12-03
|
16KB
|
561 lines
REAL TOOLS (R) (Beta version 1.0)
a
True Macro Assembler
by
International Systems Development
Table of Contents:
Chapter 1...
International Systems Development Software License and
Copyright Information
Chapter 2...
Concept Behind this Assembler
Chapter 3...
Getting Started
Chapter 4...
Special Commands
Chapter 5...
Compiler Reserved Keywords
Chapter 6...
Commands Supported
Chapter 7...
Information on this product and on International Systems
Development
Chapter 1
International Systems Development Software License and
Copyright Information
REAL TOOLS is owned by International Systems Development and is protected
under United States copyright laws and international treaty provisions. This
product must be treated like all other copyrighted materials, with the exception
that this version (Beta version 1.0) and only this version can and could be
copied by other users for the single purpose of being used as the compiler that
it is. There is no restriction as to the amount of copies that could be made
for other users. To decompile and recompile the executable code for ones or
others benefit, is an infringement on the copyright laws.
International Systems Development grants you the right to use this compiler
version (Beta version 1.0) and only this version on as many computers as you
desire.
International Systems Development does not guarantee or supply any warranty
for this compiler version (Beta version 1.0) and only this version, and is not
responsible for any damages whether direct or indirect to any user of this
compiler (Beat version 1.0) or its output code.
International Systems Development reserves all rights with respect to REAL
TOOLS (R), our macro assembler.
Chapter 2
Concept Behind this Assembler
This assembler started as a development tool for other products due to some
vital and important features other similar compilers lack. As development
progressed, we decided that it would be in the best interest for the programming
public if we were to release this assembler. Commercial assembler compilers
have come to a point were their costs outweigh their benefits and productivity.
Our goal was to offer a product with the same similarities as the other
compilers, and added many more features that will not likely appear any time
soon in any other assemblers. When a programmer sits down on a computer and
wants to create a program, he/she has several decisions to make even before the
actual programming begins. Among these choices is, what would be the most
efficient and least time consuming way to make the given program. As we all
know assembly is most efficient in speed and in size, but is the most time
consuming of all languages.
Our development team took a look at several high level languages as they
were creating this compiler. They came up with an interesting solution to
timely development using assembly; why not offer users the power of assembly,
and at the same time give them high level language keywords to accelerate their
production time. With this Beta version, are included two MCR files, standing
for macro files. On the final release many more will be included, for example:
a macro to print something on the screen, to load a file into memory, to save
from memory, to jump into protected mode, to setup protected mode, etc.
This assembler will do what other high level language programs do, in a
more efficient way (size and speed) and still only take about the same amount of
time as it would with other high level languages. We hope you enjoy this Beta
version, and hope to be coming out with a new releases to further enhance the
assembly language programming. It also supports 32 bit mode to its fullest
extent without any restrictions.
Chapter 3
Getting Started
If you are not familiar with assembly language programming when reading
this, then it is strongly recommended that you pick up any of the many good
books out in the book store and become acquainted with it before continuing.
Since this is a Beta version, some bugs are expected to crawl up from time
to time. If you encounter any bugs please refer to the last chapter on how to
proceed and some incentives.
To begin you must first type edit, in order to enter the editor. We will
also be assuming that you know how to use this type of standard editor. There
are several features that were left out of the editor on purpose, like help, and
the debugger. The other feature that is left out is one of some inconvenience.
The compiler will link and compile the last file you loaded or changed the name
of. In other words if you load 5 files and eventually want to compile the first
one loaded, it will instead compile the last.
Another feature deliberately not given is the command line compile and
link. The way to link and compile is through the editor. There is an
exception, please see below.
IMPORTANT:
First Link then Compile. We decided not to follow convention.
-----------------------
NOTE:
If the editor is giving you problems, then use it only to make or change
your files, then exit and make sure there is a file named "tt.tt" with the
drive, path and name of the file you wish to link, then compile. If
everything is set then just type in link.exe, when done type compile.exe,
and you are on your way.
If there are any further questions please contact us at the numbers or
locations given in the last chapter.
NOTE:
Some .exe files have tendencies not to run. This problem will be fixed for
final release.
Macro files can only be linked, do NOT compile, in order to make the
.mcr file. The .mcr file can later be linked and compiled with the
regular programs.
If an error occured during linking and you a were including macro files,
to be safe relink the .asm files relating to the macro files you were
calling. This inconvinience will be eliminated for the final version.
Chapter 4
Special Commands
There are several commands that do not follow convention. The command
keyword will be followed by the they should be used by this compiler and also
the way it is used by other compilers.
keyword:
in
use:
in port #
used:
in al,port #
keyword:
out
use:
out port #
used:
out port #,al
keyword:
ins
use:
ins
used:
in ax,dx
keyword:
outs
use:
outs
used:
out dx,ax
keyword:
mov,cmp,and,xor,add,sub,sbb,adc
use:
mov ds:[offset],#
or:
.word mov ds:[offset],#
used:
mov ds:[offset],word ptr #
by not placing the .word, .byte, or .dword the compiler defaults to the size of
the number. For example, if the command is as follows: mov ds:[bx],00h
then the compiler only references a byte.
keyword:
jmp,call
use:
jmp pointer seg reg:[offset]
this enables you to jump or call to any position in memory you wish
Chapter 5
Compiler Reserved Keywords
.byte --> sets the default for the next command to be the
size of a byte
.word --> sets the default for the next command to be the
size of a word
.dword --> sets the default for the next command to be the
size of a double word
.16 --> (default) sets encoding from that point on to be
in 16 bit mode
.32 --> sets encoding from that point on to be in 32 bit
mode
.com --> (default) tells the compiler that you wish to
produce a .com file
.exe --> tells the compiler that you wish to produce an
.exe type file (best results when used at the beginning of the
file)
.off --> tells compiler to stop encoding size and address
prefixes
.on --> (default) compiler encodes size and address size
prefixes when necessary
'label': --> used as a label for jmp's, call's and loop's
.label 'name' --> indicates a label that you and the
compiler can use as reference
.code 'name' --> indicates a label that you and the
compiler can use as reference
.data 'name' --> indicates a label that you and the
compiler can use as reference
.proc 'name' --> indicates a label that you and the
compiler can use as reference
.endc 'name' --> indicates a label that you and the
compiler can use as reference
.endd 'name' --> indicates a label that you and the
compiler can use as reference
.endp 'name' --> indicates a label that you and the
compiler can use as reference
.stack # --> (not necessary because the compiler
the default to be 1024 bytes) indicates big you wish
your stack segment to be
.org # --> NOT YET AVAILABLE
#include "drive\path\file.ext" --> this commands includes
another assembly file
#macro "drive\path\file.ext" --> this commands includes
a macro (.mcr produced by the compiler) file
.macro 'name' --> calls a macro file by name given when creating the
macro file
_macro 'name' --> tells the compiler that the following code is to be
converted into a macro file for further use (should be
placed at the beginning of the file) (result is a file
with the extension .mcr)
Chapter 6
Commands Supported
mov loop xor
int jmp or
inc jmp cond. shl
loop cond. dec
shr add call
rol sub pop
ror adc push
all other rotates and shifts
all other pushes and pops and
out cli sti
cld std aaa
aad aam cmp
cbw clc clts
cmc cwd/q daa
das into invd
iret ret lahf
leave lock nop
rdmsr sahf in
smsw rsm sbb
std xlat bt
btc bts btc
arpl bound cmpxchg
lar lsl movsx
movzx xadd invlpg
lgdt lidt lldt
lmsw ltr neg
not sidt sgdt
sldt smsw str
verr verw
All commands use standard conventions unless specified earlier. We have
not yet included several commands like lea,lds,lss and some others. Instead of
using lea, use mov si,offset 'labe'. Also use mov ax,seg 'label' instead of
lds,lss,les,lfs,lgs. All remaining commands will be supported by final release,
including all floating point commands.
Chapter 7
Information on this Product
We are working very hard to make this product as stable as possible and as
reliable as possible. We are also hoping to bring this compiler into the market
for those programers that want and need more control over their computers, but
also need to cut corners and still be as efficient. The final release will
include many predefined macros like the commands that C compilers offer. These
macros will be written so efficiently, that many C programers are going to be
very tempted to make a switch. We need your help, to make this product a worthy
one. Our intentions are to provide an excellent editor along with a debugger
that makes the job a whole lot easier.
Final release will include a complete editor with intensive help, a
debugger with many features such as the actual writing into memory, and a
complete compiler with all the commands and an intensive library of macros, and
a comprehensive manual showing examples and some of the basic components. If
you have any serious comments about this product there are several ways of
contacting us. We are offering several packages for those interested in this
compiler, and they are as follows:
To reach us on:
Compuserve --> Mike Arias, Miami Florida
Prodigy --> Mike Arias, Miami Florida
America Online --> Mike Arias (user screen name MikeIntDev)
Internet --> P6SQL48C@umiami.ir.miami.edu ->this is a temporary
address and due to change, the new address will be
posted on our BBS
or
call (305) 226-6350 from 2 p.m. to 6 p.m. Monday-Saturday
ask for Mike (Eastern Time)
or
call our BBS at (305) 226-6350 from 10 p.m. to 12 p.m. All 7 days
leave e-mail to Mike Arias (Eastern Time)
or
write to: P.O. Box 83-0333
Miami, FL 33183-0333
or
if you wish to talk in person, but are not able at the given times
then leave your number and the hours available so we can contact you
--------------------------------------------------------------------------------
If you like this product and wish to purchase the final release for $20
plus $5 for shipping and handling, send a request to one of the above
with a return address and name, so we can bill you (when the product
becomes available) and open an account for you. This offer expires by
March of 1994 when the suggested retail price will be $40. For those
who find serious bugs on the Beta version, we are offering some
incentives to help our development team. To qualify:
1) Must be a bug that no one else has encountered.
2) Precise description of the bug and when it happened must be
given.
3) Submit it with name and address to one of the above places.
For every bug found, that much percentage will be taken off from
your purchase of the final release. For example:
if 10 bugs are found for the first time and submitted to one of the
above, for that individual 10% will be deducted from the $25. if
100 bugs are found then the final release can be purchased for FREE
by the individual.
If you wish to purchase more than one copy of the final release please
let us know for special pricing. Thank you for your time.