home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource4 / 267_01 / a85.doc < prev    next >
Text File  |  1989-01-13  |  41KB  |  1,108 lines

  1. /*
  2.     HEADER:        CUG267;
  3.     TITLE:        8085 Cross-Assembler (Portable);
  4.     FILENAME:    A85.DOC;
  5.     VERSION:    0.1;
  6.     DATE:        08/27/1988;
  7.     SEE-ALSO:    A85.H;
  8.     AUTHORS:    William C. Colley, III;
  9. */
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                          8085 Cross-Assembler (Portable)
  25.  
  26.  
  27.                                    Version 0.1
  28.  
  29.  
  30.                  Copyright (c) 1985,1987 William C. Colley, III
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                             The manual such as it is.
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.         Legal Note:    This package may be used for any commercial or 
  50.                        non-commercial purpose.  It may be copied and 
  51.                        distributed freely provided that any fee charged 
  52.                        by the distributor of the copy does not exceed the 
  53.                        sum of:  1) the cost of the media the copy is 
  54.                        written on,  2) any required costs of shipping the 
  55.                        copy, and  3) a nominal handling fee.  Any other 
  56.                        distribution requires the written permission of 
  57.                        the author.  Also, the author's copyright notices 
  58.                        shall not be removed from the program source, the 
  59.                        program object, or the program documentation.
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                                 Table of Contents
  75.  
  76.         1.0  How to Use the Cross-Assembler Package ..................  3
  77.         2.0  Format of Cross-Assembler Source Lines ..................  4
  78.              2.1  Labels .............................................  5
  79.              2.2  Numeric Constants ..................................  5
  80.              2.3  String Constants ...................................  6
  81.              2.4  Expressions ........................................  6
  82.         3.0  Machine Opcodes .........................................  7
  83.              3.1  Opcodes -- No Arguments ............................  7
  84.              3.2  Opcodes -- One Register Argument ...................  7
  85.              3.3  Opcodes -- One RST Vector Argument .................  8
  86.              3.4  Opcodes -- One I/O Port Argument ...................  8
  87.              3.5  Opcodes -- One Immediate Argument ..................  8
  88.              3.6  Opcodes -- One Address Argument ....................  8
  89.              3.7  Opcodes -- Two Register Arguments...................  8
  90.              3.8  Opcodes -- One Register and One Immediate Argument .  8
  91.              3.9  Opcodes -- One Register and One Address Argument ...  9
  92.         4.0  Pseudo Opcodes ..........................................  9
  93.              4.1  Pseudo-ops -- DB ...................................  9
  94.              4.2  Pseudo-ops -- DS ...................................  9
  95.              4.3  Pseudo-ops -- DW ...................................  9
  96.              4.4  Pseudo-ops -- END .................................. 10
  97.              4.5  Pseudo-ops -- EQU .................................. 10
  98.              4.6  Pseudo-ops -- IF, ELSE, ENDIF ...................... 10
  99.              4.7  Pseudo-ops -- INCL ................................. 11
  100.              4.8  Pseudo-ops -- ORG .................................. 12
  101.              4.9  Pseudo-ops -- PAGE ................................. 12
  102.              4.10 Pseudo-ops -- SET .................................. 12
  103.              4.11 Pseudo-ops -- TITLE ................................ 12
  104.         5.0  Assembly Errors ......................................... 13
  105.              5.1  Error * -- Missing Statement ....................... 13
  106.              5.2  Error ( -- Parenthesis Imbalance ................... 13
  107.              5.3  Error " -- Missing Quotation Mark .................. 13
  108.              5.4  Error D -- Illegal Digit ........................... 13
  109.              5.5  Error E -- Illegal Expression ...................... 13
  110.              5.6  Error I -- IF-ENDIF Imbalance ...................... 14
  111.              5.7  Error L -- Illegal Label ........................... 14
  112.              5.8  Error M -- Multiply Defined Label .................. 14
  113.              5.9  Error O -- Illegal Opcode .......................... 14
  114.              5.10 Error P -- Phasing Error ........................... 15
  115.              5.11 Error R -- Illegal Register ........................ 15
  116.              5.12 Error S -- Illegal Syntax .......................... 15
  117.              5.13 Error T -- Too Many Arguments ...................... 15
  118.              5.14 Error U -- Undefined Label ......................... 15
  119.              5.15 Error V -- Illegal Value ........................... 15
  120.         6.0  Warning Messages ........................................ 16
  121.              6.1  Warning -- Illegal Option Ignored .................. 16
  122.              6.2  Warning -- -l Option Ignored -- No File Name ....... 16
  123.              6.3  Warning -- -o Option Ignored -- No File Name ....... 16
  124.              6.4  Warning -- Extra Source File Ignored ............... 16
  125.              6.5  Warning -- Extra Listing File Ignored .............. 16
  126.              6.6  Warning -- Extra Object File Ignored ............... 16
  127.  
  128.  
  129.  
  130.  
  131.                                         1
  132.  
  133.  
  134.  
  135.         7.0  Fatal Error Messages .................................... 16
  136.              7.1  Fatal Error -- No Source File Specified ............ 16
  137.              7.2  Fatal Error -- Source File Did Not Open ............ 17
  138.              7.3  Fatal Error -- Listing File Did Not Open ........... 17
  139.              7.4  Fatal Error -- Object File Did Not Open ............ 17
  140.              7.5  Fatal Error -- Error Reading Source File ........... 17
  141.              7.6  Fatal Error -- Disk or Directory Full .............. 17
  142.              7.7  Fatal Error -- File Stack Overflow ................. 17
  143.              7.8  Fatal Error -- If Stack Overflow ................... 17
  144.              7.9  Fatal Error -- Too Many Symbols .................... 17
  145.  
  146.  
  147.  
  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.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                         2
  193.  
  194.  
  195.  
  196.         1.0  How to Use the Cross-Assembler Package
  197.  
  198.              First, the question, "What does a cross-assembler do?" needs 
  199.         to be addressed as there is considerable confusion on this point.  
  200.         A cross-assembler is just like any other assembler except that it 
  201.         runs on some CPU other than the one for which it assembles code.  
  202.         For example, this package assembles 8085 source code into 8085 
  203.         object code, but it runs on an 8088, a 68000, or whatever other 
  204.         CPU you happen to have a C compiler for.  The reason that cross-
  205.         assemblers are useful is that you probably already have a CPU 
  206.         with memory, disk drives, a text editor, an operating system, and 
  207.         all sorts of hard-to-build or expensive facilities on hand.  A 
  208.         cross-assembler allows you to use these facilites to develop code 
  209.         for an 8085.
  210.  
  211.              Because this cross-assembler assembles 8085 code, it is, in 
  212.         fact, possible to use it as a regular assembler by compiling it 
  213.         under either Aztec C II or Eco-C and running it on an 8085 under 
  214.         CP/M.
  215.  
  216.              This program requires one input file (your 8085 source code) 
  217.         and zero to two output files (the listing and the object).  The 
  218.         input file MUST be specified, or the assembler will bomb on a 
  219.         fatal error.  The listing and object files are optional.  If no 
  220.         listing file is specified, no listing is generated, and if no 
  221.         object file is specified, no object is generated.  If the object 
  222.         file is specified, the object is written to this file in "Intel 
  223.         hexadecimal" format.
  224.  
  225.              The command line for the cross-assembler looks like this:
  226.  
  227.                   A85 source_file { >list_file } { -o object_file }
  228.  
  229.         where the { } indicates that the specified item is optional.
  230.  
  231.              Some examples are in order:
  232.  
  233.              a85 test85.asm                          source:   test85.asm
  234.