home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / asmutil / rtools.zip / README.DOC < prev   
Text File  |  1993-12-03  |  16KB  |  561 lines

  1.  
  2.                        REAL TOOLS (R) (Beta version 1.0)
  3.  
  4.                                        a
  5.  
  6.                               True Macro Assembler
  7.  
  8.                                        by
  9.  
  10.                         International Systems Development
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. Table of Contents:
  62.  
  63.  
  64.        Chapter 1...
  65.                   International Systems Development Software License and 
  66.                   Copyright Information
  67.        Chapter 2...
  68.                   Concept Behind this Assembler
  69.        Chapter 3...
  70.                   Getting Started
  71.        Chapter 4...
  72.                   Special Commands
  73.        Chapter 5...
  74.                   Compiler Reserved Keywords
  75.        Chapter 6...
  76.                   Commands Supported
  77.        Chapter 7...
  78.                   Information on this product and on International Systems
  79.                   Development
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.                                    Chapter 1
  122.  
  123.             International Systems Development Software License and
  124.  
  125.                              Copyright Information
  126.  
  127.  
  128.      REAL TOOLS is owned by International Systems Development and is protected 
  129. under United States copyright laws and international treaty provisions.  This 
  130. product must be treated like all other copyrighted materials, with the exception 
  131. that this version (Beta version 1.0) and only this version can and could be 
  132. copied by other users for the single purpose of being used as the compiler that 
  133. it is. There is no restriction as to the amount of copies that could be made 
  134. for other users.  To decompile and recompile the executable code for ones or 
  135. others benefit, is an infringement on the copyright laws.
  136.  
  137.      International Systems Development grants you the right to use this compiler
  138. version (Beta version 1.0) and only this version on as many computers as you
  139. desire.
  140.  
  141.      International Systems Development does not guarantee or supply any warranty 
  142. for this compiler version (Beta version 1.0) and only this version, and is not
  143. responsible for any damages whether direct or indirect to any user of this
  144. compiler (Beat version 1.0) or its output code.
  145.  
  146.      International Systems Development reserves all rights with respect to REAL 
  147. TOOLS (R), our macro assembler.
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.                                    Chapter 2
  181.  
  182.                          Concept Behind this Assembler
  183.  
  184.  
  185.      This assembler started as a development tool for other products due to some
  186. vital and important features other similar compilers lack.  As development
  187. progressed, we decided that it would be in the best interest for the programming
  188. public if we were to release this assembler.  Commercial assembler compilers
  189. have come to a point were their costs outweigh their benefits and productivity.
  190. Our goal was to offer a product with the same similarities as the other
  191. compilers, and added many more features that will not likely appear any time
  192. soon in any other assemblers.  When a programmer sits down on a computer and
  193. wants to create a program, he/she has several decisions to make even before the
  194. actual programming begins.  Among these choices is, what would be the most
  195. efficient and least time consuming way to make the given program.  As we all
  196. know assembly is most efficient in speed and in size, but is the most time
  197. consuming of all languages.
  198.  
  199.      Our development team took a look at several high level languages as they
  200. were creating this compiler.  They came up with an interesting solution to
  201. timely development using assembly; why not offer users the power of assembly,
  202. and at the same time give them high level language keywords to accelerate their
  203. production time.   With this Beta version, are included two MCR files, standing
  204. for macro files.  On the final release many more will be included, for example:
  205. a macro to print something on the screen, to load a file into memory, to save
  206. from memory, to jump into protected mode, to setup protected mode, etc.
  207.  
  208.      This assembler will do what other high level language programs do, in a
  209. more efficient way (size and speed) and still only take about the same amount of
  210. time as it would with other high level languages.  We hope you enjoy this Beta
  211. version, and hope to be coming out with a new releases to further enhance the
  212. assembly language programming.  It also supports 32 bit mode to its fullest
  213. extent without any restrictions.
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.                                    Chapter 3
  241.  
  242.                                 Getting Started
  243.  
  244.  
  245.      If you are not familiar with assembly language programming when reading
  246. this, then it is strongly recommended that you pick up any of the many good
  247. books out in the book store and become acquainted with it before continuing.
  248.  
  249.      Since this is a Beta version, some bugs are expected to crawl up from time
  250. to time.  If you encounter any bugs please refer to the last chapter on how to
  251. proceed and some incentives.
  252.  
  253.      To begin you must first type edit, in order to enter the editor.  We will
  254. also be assuming that you know how to use this type of standard editor.  There
  255. are several features that were left out of the editor on purpose, like help, and
  256. the debugger.  The other feature that is left out is one of some inconvenience.
  257. The compiler will link and compile the last file you loaded or changed the name
  258. of.  In other words if you load 5 files and eventually want to compile the first
  259. one loaded, it will instead compile the last.
  260.  
  261.      Another feature deliberately not given is the command line compile and
  262. link.  The way to link and compile is through the editor.  There is an
  263. exception, please see below.
  264.  
  265.      IMPORTANT:
  266.                First Link then Compile.  We decided not to follow convention.
  267.                -----------------------
  268. NOTE:
  269.       If the editor is giving you problems, then use it only to make or change
  270.       your files, then exit and make sure there is a file named "tt.tt" with the
  271.       drive, path and name of the file you wish to link, then compile.  If
  272.       everything is set then just type in link.exe, when done type compile.exe,
  273.       and you are on your way.
  274.  
  275.       If there are any further questions please contact us at the numbers or
  276. locations given in the last chapter.
  277.  
  278. NOTE:
  279.      Some .exe files have tendencies not to run.  This problem will be fixed for
  280.      final release.
  281.  
  282.      Macro files can only be linked, do NOT compile, in order to make the
  283.      .mcr file.  The .mcr file can later be linked and compiled with the 
  284.      regular programs.
  285.  
  286.      If an error occured during linking and you a were including macro files,
  287.      to be safe relink the .asm files relating to the macro files you were 
  288.      calling.  This inconvinience will be eliminated for the final version.
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.                                    Chapter 4
  301.  
  302.                                 Special Commands
  303.  
  304.  
  305.      There are several commands that do not follow convention.  The command
  306. keyword will be followed by the they should be used by this compiler and also
  307. the way it is used by other compilers.
  308. keyword:
  309.         in
  310.     use:
  311.         in port #
  312.     used:
  313.         in al,port #
  314. keyword:
  315.         out
  316.     use:
  317.         out port #
  318.     used:
  319.         out port #,al
  320. keyword:
  321.         ins
  322.     use:
  323.         ins
  324.     used:
  325.         in  ax,dx
  326. keyword:
  327.         outs
  328.     use:
  329.         outs
  330.     used:
  331.         out dx,ax
  332. keyword:
  333.         mov,cmp,and,xor,add,sub,sbb,adc
  334.     use:
  335.         mov  ds:[offset],#
  336.      or:
  337.         .word mov  ds:[offset],#
  338.     used:
  339.         mov  ds:[offset],word ptr #
  340. by not placing the .word, .byte, or .dword the compiler defaults to the size of
  341.         the number.  For example, if the command is as follows: mov ds:[bx],00h
  342.         then the compiler only references a byte.
  343.  
  344. keyword:
  345.         jmp,call
  346.     use:
  347.         jmp pointer   seg reg:[offset]
  348.  
  349.         this enables you to jump or call to any position in memory you wish
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.                                    Chapter 5
  361.  
  362.                            Compiler Reserved Keywords
  363.  
  364.  
  365.      .byte  --> sets the default for the next command to be the
  366.                 size of a byte
  367.      .word  --> sets the default for the next command to be the
  368.                 size of a word
  369.      .dword --> sets the default for the next command to be the
  370.                 size of a double word
  371.      .16    --> (default) sets encoding from that point on to be
  372.                 in 16 bit mode
  373.      .32    --> sets encoding from that point on to be in 32 bit
  374.                 mode
  375.      .com   --> (default) tells the compiler that you wish to
  376.                 produce a .com file
  377.      .exe   --> tells the compiler that you wish to produce an
  378.                 .exe type file (best results when used at the beginning of the
  379.                 file)
  380.      .off   --> tells compiler to stop encoding size and address
  381.                 prefixes
  382.      .on    --> (default) compiler encodes size and address size
  383.                 prefixes when necessary
  384.  
  385.      'label': --> used as a label for jmp's, call's and loop's
  386.  
  387.      .label 'name'  -->  indicates a label that you and the
  388.                          compiler can use as reference
  389.      .code 'name'   -->  indicates a label that you and the
  390.                          compiler can use as reference
  391.      .data 'name'   -->  indicates a label that you and the
  392.                          compiler can use as reference
  393.      .proc 'name'   -->  indicates a label that you and the
  394.                          compiler can use as reference
  395.      .endc 'name'   -->  indicates a label that you and the
  396.                          compiler can use as reference
  397.      .endd 'name'   -->  indicates a label that you and the
  398.                          compiler can use as reference
  399.      .endp 'name'   -->  indicates a label that you and the
  400.                          compiler can use as reference
  401.  
  402.      .stack  #      -->  (not necessary because the compiler
  403.                          the default to be 1024 bytes) indicates big you wish
  404.                          your stack segment to be
  405.      .org  #        -->  NOT YET AVAILABLE
  406.  
  407.      #include "drive\path\file.ext"  --> this commands includes
  408.                another assembly file
  409.      #macro "drive\path\file.ext"    --> this commands includes
  410.                a macro (.mcr produced by the compiler) file
  411.  
  412.      .macro 'name'  -->  calls a macro file by name given when creating the
  413.                          macro file
  414.      _macro 'name'  -->  tells the compiler that the following code is to be
  415.                          converted into a macro file for further use (should be
  416.                          placed at the beginning of the file) (result is a file
  417.                          with the extension .mcr)
  418.  
  419.  
  420.                                    Chapter 6
  421.  
  422.                                Commands Supported
  423.  
  424. mov    loop        xor
  425. int    jmp         or
  426. inc    jmp cond.   shl
  427. loop cond.         dec
  428. shr    add         call
  429. rol    sub         pop
  430. ror    adc         push
  431.                    all other rotates and shifts
  432.                    all other pushes and pops and
  433. out    cli         sti
  434. cld    std         aaa
  435. aad    aam         cmp
  436. cbw    clc         clts
  437. cmc    cwd/q       daa
  438. das    into        invd
  439. iret   ret         lahf
  440. leave  lock        nop
  441. rdmsr  sahf        in
  442. smsw   rsm         sbb
  443. std    xlat        bt
  444. btc    bts         btc
  445. arpl   bound       cmpxchg
  446. lar    lsl         movsx
  447. movzx  xadd        invlpg
  448. lgdt   lidt        lldt
  449. lmsw   ltr         neg
  450. not    sidt        sgdt
  451. sldt   smsw        str
  452. verr   verw
  453.  
  454.  
  455.  
  456.      All commands use standard conventions unless specified earlier.  We have
  457. not yet included several commands like lea,lds,lss and some others.  Instead of
  458. using lea, use mov si,offset 'labe'.  Also use mov ax,seg 'label' instead of
  459. lds,lss,les,lfs,lgs.  All remaining commands will be supported by final release,
  460. including all floating point commands.
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.                                    Chapter 7
  481.  
  482.                           Information on this Product
  483.  
  484.  
  485.      We are working very hard to make this product as stable as possible and as
  486. reliable as possible.  We are also hoping to bring this compiler into the market
  487. for those programers that want and need more control over their computers, but
  488. also need to cut corners and still be as efficient.  The final release will
  489. include many predefined macros like the commands that C compilers offer.  These
  490. macros will be written so efficiently, that many C programers are going to be
  491. very tempted to make a switch.  We need your help, to make this product a worthy
  492. one.  Our intentions are to provide an excellent editor along with a debugger
  493. that makes the job a whole lot easier.
  494.      Final release will include a complete editor with intensive help, a
  495. debugger with many features such as the actual writing into memory, and a
  496. complete compiler with all the commands and an intensive library of macros, and 
  497. a comprehensive manual showing examples and some of the basic components.  If
  498. you have any serious comments about this product there are several ways of
  499. contacting us.  We are offering several packages for those interested in this
  500. compiler, and they are as follows:
  501.  
  502.         To reach us on:
  503.  
  504.            Compuserve --> Mike Arias, Miami Florida
  505.  
  506.            Prodigy --> Mike Arias, Miami Florida
  507.  
  508.            America Online --> Mike Arias (user screen name MikeIntDev)
  509.  
  510.            Internet -->  P6SQL48C@umiami.ir.miami.edu ->this is a temporary
  511.                          address and due to change, the new address will be
  512.                          posted on our BBS
  513.  
  514.                 or
  515.  
  516.            call (305) 226-6350 from  2 p.m. to  6 p.m.  Monday-Saturday 
  517.                 ask for Mike (Eastern Time)
  518.  
  519.                 or
  520.  
  521.            call our BBS at (305) 226-6350 from  10 p.m. to  12 p.m.  All 7 days
  522.                 leave e-mail to Mike Arias (Eastern Time)
  523.  
  524.                 or
  525.  
  526.            write to:  P.O. Box 83-0333
  527.                       Miami, FL  33183-0333
  528.  
  529.                 or
  530.  
  531.            if you wish to talk in person, but are not able at the given times
  532.            then leave your number and the hours available so we can contact you
  533.  
  534. --------------------------------------------------------------------------------
  535.         If you like this product and wish to purchase the final release for $20
  536.         plus $5 for shipping and handling, send a request to one of the above
  537.         with a return address and name, so we can bill you (when the product
  538.         becomes available) and open an account for you.  This offer expires by
  539.         March of 1994 when the suggested retail price will be $40.  For those
  540.         who find serious bugs on the Beta version, we are offering some
  541.         incentives to help our development team.  To qualify:
  542.  
  543.              1) Must be a bug that no one else has encountered.
  544.  
  545.              2) Precise description of the bug and when it happened must be
  546.                 given.
  547.  
  548.              3) Submit it with name and address to one of the above places.
  549.  
  550.              For every bug found, that much percentage will be taken off from
  551.              your purchase of the final release.  For example:
  552.  
  553.              if 10 bugs are found for the first time and submitted to one of the
  554.              above, for that individual 10% will be deducted from the $25.  if
  555.              100 bugs are found then the final release can be purchased for FREE
  556.              by the individual.
  557.  
  558.  
  559. If you wish to purchase more than one copy of the final release please
  560.         let us know for special pricing.  Thank you for your time.
  561.