home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / info / optasm.msg < prev    next >
Encoding:
Text File  |  1993-06-08  |  5.9 KB  |  126 lines

  1. Message posted by Jay Sage
  2. to the INFO-IBM newsletter
  3. on the ARPA Network:
  4.  
  5.  
  6.    I would like to make the PC-DOS/MS-DOS communities aware of a new
  7. assembler from SLR Systems in Butler, Pennsylvania.  Although I follow to
  8. some degree developments in the 16-bit world, my own personal activity is in
  9. the 8-bit world, where I write extensively in assembly language.
  10.  
  11.    In the CP/M world the SLR assembly language tools are well known for both
  12. their quality and their speed.  The speed difference is the most spectacular
  13. feature.  The first time I used SLRMAC to assemble a ZCPR file, the assembly
  14. ended virtually simultaneously with the appearance of the signon message
  15. after the assembler loaded.  I was sure then that I was dealing with another
  16. cheap assembler and would find a zero-length output file.  To my surprise,
  17. the output file was there and ran perfectly.  Since then I have just gotten
  18. used to the fact that Steve Russell can make his tools run at speeds others
  19. cannot even approach.  And he does this while offering better convenience
  20. features in the programs as well.
  21.  
  22.    After this experience with SLR's products in the 8-bit domain, I was
  23. excited to hear that Steve was working on 16-bit versions of the tools.  The
  24. first, an assembler called OPTASM, is now available.
  25.  
  26.    It takes a somewhat different approach from the CP/M products, which were
  27. unusual in doing their work with only one pass through the source file
  28. rather than the usual two.  In fact OPTASM does the opposite.  In order to
  29. optimize the more complex 16-bit object code, it makes a variable number of
  30. passes through the code so that it can, among other things, (1) resolve
  31. forward references without generating phase errors or resorting to insertion
  32. of NOP instructions and (2) optimize short and near jumps.  The output code
  33. from OPTASM ranges from slightly shorter to dramatically shorter than the
  34. output from MASM.
  35.  
  36.    Despite making multiple passes (apparently up to 8!), efficient coding,
  37. I/O, and memory management by OPTASM allow it to run THREE TO FOUR TIMES
  38. FASTER than MASM.
  39.  
  40.    For test purposes I tried assembling two pieces of source code: MXTID.ASM
  41. from Ron Fowler's MEX-Plus telecommunications program and GR.ASM, some
  42. Lincoln-written assembly-code subroutines for efficient graphics output from
  43. a C program.  Here are the results I obtained on my Compaq Deskpro 386. 
  44. Times on a standard AT would, presumably, be twice as long for both
  45. assemblers.
  46.  
  47.  
  48.                                 MASM            OPTASM
  49.                                 ----            ------
  50.  
  51. MXTID.ASM size                  46,208          46,208
  52.  
  53. Assembly time with listing
  54.   and crossreference output      14 s             3 s
  55.  
  56. MXTID.OBJ size                   5,969           3,981
  57.  
  58.  
  59. GR.ASM size                     69,283          69,283
  60.  
  61. Assembly time with listing
  62.   and crossreference output      17 s             4 s
  63.  
  64. GR.OBJ size                      5,488           4,056
  65.  
  66.  
  67.    I will have to admit that I had a lingering doubt about these results
  68. (how could the code get that much shorter?), so I took the GR.OBJ module
  69. back to the author of the plotting program and had him link it into the C
  70. program.  Worked perfectly!
  71.  
  72.    From glancing at the user manual, it appears that OPTASM offers the same
  73. kind of extremely useful convenience features that Steve put into the 8-bit
  74. tools.  Here are just a few examples:
  75.  
  76. 1. Symbols can be defined from the command line, as in
  77.  
  78.         OPTASM /Dtest=true MYPROG;
  79.  
  80. This makes it easy to try different options without having to edit the
  81. source file each time.
  82.  
  83. 2. OPTASM allows a large number of configuration options.  The CONFIG
  84. utility makes it easy for the user to customize OPTASM to his own needs and
  85. tastes.
  86.  
  87. 3. Options can be controlled (overriding the configured options) by
  88. directives in the source, from the command line, or from an environment
  89. variable OPTASM.  Thus it is easy to make temporary changes to the default
  90. options.
  91.  
  92. 4. The search path for INCLUDE files in the source can be specified from the
  93. command line.  Many directories can be included in that path, limited only
  94. by the length of the command line.
  95.  
  96. 5. OPTASM includes a built-in MAKE facility.  This can be used for complete
  97. management of module dependencies or simply to perform assemblies of many
  98. files with a single loading of OPTASM.  OPTASM even allocates buffers to
  99. keep source resident in memory to the maximum extent possible (for example,
  100. so that common include files or macro libraries do not have to be read in
  101. again from disk).  I created a MAKE file to assemble the GR.ASM file above
  102. five times without listing or crossrefernce files.  Total assembly time (all
  103. 5 assemblies) was only 5 seconds!!!  With listing output the time was 15
  104. seconds; the time was dominated by output to disk of the listing file.
  105.  
  106.    The cost of OPTASM is $195.  For more information or to order a copy,
  107. call SLR Systems at 412-282-0864 or 800-833-3061 or write to them at
  108.                 SLR Systems
  109.                 1622 N. Main Street
  110.                 Butler, PA 16001
  111.  
  112. I do not have any financial stake in SLR Systems.  My wife's company, Sage
  113. Microsystems East, has been selling their 8-bit products and may now add the
  114. 16-bit ones, too.  My comments above are motivated only by a desire to see
  115. excellence rewarded (so that it may continue).
  116.  
  117. Note added later:
  118.  
  119.    I asked Steve Russell how it was possible for his OBJ files to be so much
  120. shorter than those produced by MASM.  He replied that there are many
  121. references that MASM does not resolve, even though enough information is
  122. available to the assembler to perform the resolution.  These items are left
  123. for the linker to resolve later.  OPTASM does resolve these items, thereby
  124. eliminating a lot of unnecessary link items in the OBJ file.  Thus OPTASM is
  125. doing even more work than MASM, and still it is so much faster!