home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / program / xasm.arc / XASM48.HLP < prev    next >
Encoding:
Text File  |  1990-08-26  |  20.5 KB  |  577 lines

  1. Introduction to XASM48.COM
  2. Running the Cross-Assembler
  3. Source file syntax
  4. Instruction set nasties
  5. Pseudo-Operations
  6. Errors
  7. Listing format
  8. Error messages
  9. Object file format
  10. :XASM4╕á i≤á ßá cross-assemble≥ designeΣ t∩ ruε oεá an∙á CP/═á 8░
  11. machine«áá I⌠á generate≤á codσá fo≥á thσá Inte∞á 804╕á famil∙á oµ
  12. microprocessors¼  acceptinτ standarΣ  804╕  mnemonic≤ anΣ syntax.
  13.  
  14. Thσá 804╕á famil∙ include≤ fivσ differen⌠á processo≥á groups¼á a≤
  15. distinguisheΣ b∙ slightl∙ differen⌠ instructioε sets╗á thesσá arσ
  16. representeΣá b∙ thσ 8048¼á 8041A¼á 8041¼á 8022¼á anΣ 802▒á chips«
  17. Withiεá eacΦ group¼á variou≤ model≤ providσ ß selectioε oµ memor∙
  18. anΣá input/outpu⌠ configurations«á XASM4╕ assemble≤á instruction≤
  19. fo≥ al∞ fivσ groups¼ anΣ ha≤ provision≤ fo≥ flagginτ instruction≤
  20. no⌠ availablσ iε ß specifieΣ targe⌠ machine.
  21.  
  22. XASM4╕ accept≤ it≤ inpu⌠ froφ ß CP/═ tex⌠ file¼á anΣ generate≤ a≤
  23. outpu⌠á aεá objec⌠á codσá file¼áá aεá assembl∙á listing¼á anΣá aε
  24. alphabetizeΣ listinτ oµ al∞ symbol≤ defineΣ iε thσ assembly«á Thσ
  25. objec⌠á filσá ma∙á bσá iεá Inte∞ HE╪ forma⌠á o≥á ma∙á bσá omitted
  26. altogether¼á a⌠ thσ user'≤ discretion«á Thσ listing≤ arσ normall∙
  27. sen⌠á t∩á thσ system'≤ LIS╘ device¼á bu⌠ ma∙ bσ directeΣá t∩á thσ 
  28. console or to a disk file.
  29. :Invoking the 8048 cross-assembler.
  30.  
  31.      XASM48 {d:}filename{.ext} {d:} {switches}
  32.  
  33. Wherσá thσá d:'≤á arσ optiona∞á drivσá specifiers¼á thσá filenamσ
  34. extensioε i≤ optiona∞ anΣ iµ omitteΣ default≤ t∩ .ASM« Thσ seconΣ
  35. drivσá namσá specifie≤á thσ destinatioε oµ an∙á outpu⌠á froφá thσ
  36. cross-assemble≥ iµ omitteΣ thσ outpu⌠ file≤ wil∞ bσ placeΣ oε thσ
  37. defaul⌠á drive«á Thσá switche≤ arσ (optional⌐á singlσá character≤
  38. which control the output of the assmbler, as described below.
  39. XASM48 Switches
  40.  
  41. The switches following the filename, if supplied, control various
  42. options as follows:
  43.  
  44. L    Listing only; i.e. no object file.
  45. X    No assembly listing.
  46. Y    No symbol-table listing
  47. O    Object only; equivalent to XY
  48. C    Send listing, if any, to console instead of LST:
  49. D    Send listing, if any, to disk file with same name as source
  50.      file but with an extension of `.PRN'.
  51.  
  52. Any combination of the switches may be used to achive a desired
  53. output.
  54. Clarification
  55. -------------
  56. Whilσ thi≤ ma∙ bσ misseΣ oε ß cursor∙ readinτ oµ thσ manual¼á thσ ì
  57. defaul⌠ destinatioε fo≥ thσ assembl∙ listinτ i≤ thσ PRINTER«á  Iµ ì
  58. thσ printe≥ i≤ no⌠ ready¼ o≥ n∩ printe≥ i≤ present¼ thσ assemble≥ ì
  59. wil∞ appea≥ t∩ "hanτ up"«á  Notσ tha⌠ line≤ containinτ error≤ arσ ì
  60. alway≤á listed¼á eveεá iµá thσá "Oó o≥á "Xóá switche≤á havσá beeε ì
  61. specified.
  62.  
  63. Listing output can be diverted to the console or to a PRN file by
  64. using the "C" and "D" switches, respectively, in the command line.
  65.  
  66. :Syntax of Assembler Source Files
  67.  
  68. Statements
  69.  
  70. Sourcσá file≤á consis⌠ oµ ß sequencσ oµ statement≤ oµ onσ oµá thσ
  71. forms:
  72.  
  73.      {label:}  operator  {arguments}    {;comment}
  74.  
  75.      symbol    operator  {arguments}    {;comment}
  76.  
  77.      {;comment}
  78.  
  79. Iµá ßá labe∞ o≥ ß leadinτ symbo∞ i≤ present¼á i⌠á mus⌠á begiεá iε
  80. columεá 1«á Label≤ mus⌠ bσ followeΣ b∙ ß colon«á Blanδ line≤á arσ
  81. treateΣ a≤ comments«á Element≤ oµ ß statemen⌠ ma∙ bσ separateΣ b∙
  82. blanks or tabs.
  83. Symbols
  84.  
  85. Symbol≤ ma∙ bσ u≡ t∩ ╕ character≤ iε length¼á anΣ ma∙ includσ an∙
  86. of the following characters:
  87.  
  88.     A..Z      0..9      $    .
  89.  
  90. The first character of a symbol must be a letter or a period.
  91. Numeric Constants
  92.  
  93. Numeriπá constant≤á consis⌠ oµ ß sequencσ oµá digits¼á optionall∙
  94. preceedeΣ o≥ followeΣ b∙ ß radi° specifier«á Thσ firs⌠á characte≥
  95. mus⌠á bσá eithe≥ ß leadinτ radi° specifie≥ o≥á ßá decima∞á numbe≥
  96. (0..9)« Thσ defaul⌠ radi° i≤ ten« Fo≥ compatibilit∙ witΦ existinτ
  97. assemblers¼á othe≥á base≤ ma∙ bσ denoteΣ b∙ eithe≥ ß leadinτ o≥ ß
  98. trailinτ specifier« Thσ radi° specifier≤ are:
  99.  
  100.      % (binary)     @ (octal)      $ (hex)
  101.  
  102. The trailing specifiers are:
  103.  
  104.      B (binary)     Q (octal)      H (hex)
  105.  
  106. Character Constants
  107.  
  108. Characte≥á constant≤á ma∙á bσ useΣ wheneve≥ ßá numeriπá valuσá i≤
  109. allowed«á ┴ characte≥ constan⌠ consist≤ oµ onσ o≥ tw∩á character≤
  110. encloseΣá iε singlσ o≥ doublσ quote≤ (º o≥ ")«á Thσ singlσá quotσ
  111. may be used as a character between double quotes, and vice-versa.
  112.  
  113. Thus, the following are equivalent:
  114.  
  115.           'A'  "A"  and  41H
  116.  
  117.           'AB' "AB" and  4142H
  118.  
  119. Location-Counter Reference
  120.  
  121. Thσá characte≥ "$ó ma∙ bσ usΣ a≤ aε elemen⌠ iεá expressions«á It≤
  122. valuσá i≤ thσ valuσ oµ thσ locatioε counte≥ a⌠ thσá beginninτá oµ
  123. thσ curren⌠ statement.
  124. Expressions
  125.  
  126. Arithmetiπáá expression≤áá arσá composeΣá oµáá symbols¼áá numeriπ
  127. constants¼á characte≥á constants¼á anΣ operators«á Al∞á operator≤
  128. execp⌠ +¼ -¼ *¼ anΣ » mus⌠ bσ separateΣ froφ thie≥ operand≤ b∙ a⌠
  129. leas⌠ onσ space«á Symbol≤ whicΦ arσ operator≤ arσá reserved¼á anΣ
  130. may not be redefined as user symbols.
  131.  
  132. Arithmetic Operators
  133.  
  134. Thesσá trea⌠á thei≥ operand≤ a≤ 16-bi⌠ unsigneΣá quantities¼á anΣ
  135. return 16-bit results. No overflow checking is performed.
  136.  
  137. + and -        Sum and Difference. Operands and results may be
  138.                thought of  as  unsigned or  as twos-complement
  139.                quantities.
  140.  
  141. unary +        +x is defined as 0+x
  142.  
  143. unary -        -x is defined as 0-x
  144.  
  145. * /            Product and Quotient (unsigned)
  146.  
  147. MOD            Remainder;
  148.                x MOD y gives the remainder of x/y
  149. Shift Operators
  150.  
  151. SHL            Binary left shift.  x SHL y yields x shifted left
  152.                y places (ie. x multiplied by 2**y).
  153.  
  154. SHR            Binary right shift,  logical.  x  SHR  y yields x
  155.                shifted right y places (ie. x multiplied by 2**y).
  156.  
  157. Iµ thσ righ⌠ argumen⌠ i≤ negative¼ theε thσ directioε oµ shif⌠ i≤
  158. reversed.
  159. Byte-Extraction Operators
  160.  
  161. HIGH           Returns the value of the most significant byte  of
  162.                its argument.
  163.  
  164. LO╫            Return≤ thσ valuσ oµ thσ leas⌠ significan⌠ bytσ oµ
  165.                its argument.
  166.  
  167. Thesσ arσ unar∙ operators¼á takinτ aε argumen⌠ oε thσ right«á Fo≥
  168. example:  HIGH 1122H is 11H, and LOW 1122H is 22H.
  169. Boolean Operators
  170.  
  171. NO╘            Unar∙ logica∞ negation«á Complement≤ al∞ thσá bit≤
  172.                in its argument.
  173.  
  174. AN─á           Logica∞ product╗á  ie«á eacΦ bi⌠ oµ thσ resul⌠  is
  175.                obtaineΣ b∙ ANDinτ togethe≥ thσ correspondinτ  bit
  176.                in the arguments.
  177.  
  178. OR             Logical sum.
  179.  
  180. XOR            Exclusive-OR.
  181. Thesσ arσ al∞ bitwisσ operators╗á tha⌠ is¼á thσ samσ operatioε i≤
  182. performeΣá oε eacΦ operanΣ bi⌠ position¼á witΦ n∩ carr∙ froφá onσ
  183. bit position to the next.
  184.  
  185. For example:   NOT 0 is 0FFFFH
  186.                101B AND 010B is  
  187.                101B OR  010B is 111B
  188.                101B XOR 010B is 111B
  189.                101B XOR 100B is 001B
  190.  
  191. Relational Operators
  192.  
  193. Thesσá perforφá unsigneΣá 16-bi⌠ comparisoεá oµá thei≥á operands¼
  194. returning 1 for TRUE and 0 for FALSE.
  195.  
  196. Fo≥á comparisoεá ° ╥ y¼á wherσ ╥ i≤ ßá relationa∞á operator¼á thσ
  197. results are as follows:
  198.  
  199. EQ        TRUE iff x and y are equal
  200. NE        TRUE iff x and y are not equal
  201. LE        TRUE iff x is less than or equal to y
  202. LT        TRUE iff x is strictly less than y
  203. GE        TRUE iff x is greater than or equal to y
  204. GT        TRUE iff x is strictly greater than y
  205.  
  206. Evaluation of Expressions
  207.  
  208. Parenthese≤á ma∙á bσ useΣ t∩ specif∙ thσ orde≥ oµá evaluatioεá oµ
  209. subexpressions«á Iεá thσá absencσ oµ parentheses¼á thi≤ orde≥á i≤
  210. determineΣá b∙ operato≥ precedence╗á higher-precedencσá operator≤
  211. arσá evaluateΣá first«á Iεá thσá casσá oµá operator≤á witΦá equa∞
  212. precedence¼ evaluatioε proceed≤ froφ lef⌠ t∩ right« Thσ operator≤
  213. arσ liteΣ belo≈ iε group≤ accordinτ t∩ precedence«á Operator≤á iε
  214. the same horizontal group have the same precedence:
  215.  
  216.  
  217.      unary +, unary -                   (Highest precedence)
  218.      HIGH  LOW
  219.      * / MOD SHR SHL
  220.      + -
  221.      EQ NE LT LE GT GE
  222.      NOT
  223.      AND
  224.      OR XOR                             (Lowest precedence)
  225. :Instruction Set Nasties
  226.  
  227. Whilσá thσ 804╕ famil∙ instructioε se⌠ i≤ no⌠ discusseΣ iε detai∞
  228. iεá here¼á somσ peculiaritie≤ oµ jum≡ anΣ cal∞á instruction≤á arσ
  229. worthy of note:
  230.  
  231. Thσá JM╨á anΣ CAL╠ instruction≤ iε machinσ codσ contaiε ßá targe⌠
  232. addres≤á oµ 1▒ bits╗á ß 12tΦ bi⌠ i≤ supplieΣ viß thσ memor∙á banδ
  233. selectioεá feature«á Iεá thσá assemlber¼á 12- bi⌠á addresse≤á arσ
  234. accepteΣ a≤ operand≤ fo≥ thesσ instructions¼á bu⌠ thσá high-orde≥
  235. bi⌠á i≤ discarded«á Rangσ checkinτ i≤ performeΣ t∩ ascertaiε tha⌠
  236. the target address is less than or equal to 4095.
  237.  
  238. N∩ JM╨ instructioε ma∙ bσ begiε a⌠ locatioε 204╖ o≥ a⌠á 4095«á N∩
  239. CALL intruction may begin at 2047, 4094, or 4095.
  240. The assembler does not check for these violations.
  241. Thσá shor⌠á jum≡ instruction≤ (includinτ DJNZ⌐ contaiεá ßá singlσ
  242. bytσá operanΣ representinτ aε addres≤ withiε thσ curren⌠ 256-bytσ
  243. page«á Thσá assemble≥á accpt≤ addresse≤ iε thσ rangσá 0..409╡á a≤
  244. operand≤á fo≥ thesσ instructions«á Bit≤ ╕ thr⌡ 1▒á arσá discardeΣ
  245. wheεá assemblinτá thσá instruction¼á bu⌠ arσá compareΣá witΦá thσ
  246. correspondinτá bit≤á oµá thσ locatioε counte≥ t∩á makσá surσá thσ
  247. targe⌠ addres≤ i≤ accessible«á Iµ ß shor⌠ jum≡ begin≤ a⌠ thσ las⌠
  248. locatioεá oµ ß pagσ (ie«á lo≈ orde≥ addres≤ bytσ i≤ 255⌐ theε it≤
  249. operanΣ mus⌠ liσ iε thσ followinτ page╗á thi≤ i≤ enforceΣ b∙á thσ
  250. assembler.
  251.  
  252. :Pseudo-Operations
  253.  
  254. Storage Definition
  255.  
  256. DB   arg{,arg...}
  257.  
  258.      Definσá bytes«á EacΦá arτ ma∙ bσ eithe≥ aε expressioεá o≥á ß ì
  259.      string« Expression≤ mus⌠ evaluatσ t∩ 8-bi⌠ value≤ (higΦ bytσ ì
  260.      eithe≥á ░á o≥ 255)«á String≤ ma∙ bσ delimiteΣ b∙á singlσá o≥ ì
  261.      double quotes, as for character constants.
  262.  
  263.      Fo≥ eacΦ expression¼á ß singlσ bytσ oµ storagσ i≤á reserved¼ ì
  264.      initializeΣá t∩ thσ lo≈ bytσ oµ thσ expression'≤ value«á Fo≥ ì
  265.      eacΦá string¼á thσá character≤ oµ thσ strinτ arσá storeΣá iε ì
  266.      sequential reserved bytes.
  267.      If a compound expression beginning with a character constant
  268.      i≤á useΣ iε ß DB¼á theε thσ expressioε mus⌠ bσá encloseΣá iε ì
  269.      parenthese≤á t∩á kee≡ i⌠ froφ beinτ incorrectl∙ parseΣ a≤á ß ì
  270.      string. For example,
  271.  
  272.           DB ('A'+1)
  273.  
  274.      will give the expected result, while
  275.  
  276.           DB 'A'+1
  277.  
  278.      would be in error.
  279. DW   expression{,expression}
  280.  
  281.      EacΦ expressioε reserve≤ onσ worΣ (▓ bytes)¼á initializeΣ t∩ ì
  282.      thσá valuσ oµ thσ expression«á Thσ valuσ i≤ placeΣ iε memor∙ ì
  283.      with the high-order byte first.
  284.  
  285. DS   expression
  286.  
  287.      Reserve≤á ε bytes¼á wherσ ε i≤ thσ valuσ oµ thσá expression« ì
  288.      The bytes are not initialized.
  289. ORG and END
  290.  
  291. ORG expression
  292.  
  293.      Se⌠á prograφá origin«á Thi≤ shoulΣ precedσ thσá firs⌠á code-ì
  294.      generatinτ statemen⌠ iε thσ soucσ file«á I⌠ set≤ thσ prograφ ì
  295.      counte≥ initia∞ valuσ t∩ thσ valuσ oµ thσá expression¼á thu≤ ì
  296.      settinτá thσ locatioε oµ codσ whicΦ follows«á Additiona∞ OR╟ ì
  297.      statements which will load at different locations.
  298.  
  299. END {expression}
  300.  
  301.      Thσá las⌠á statemen⌠á oµá thσ sourcσ filσá mus⌠á bσá aεá EN─ ì
  302.      statement«á Aεá optiona∞á argumen⌠ i≤ allowed╗á iµá thi≤á i≤ ì
  303.      supplied¼á it≤ valuσ become≤ thσ star⌠ addres≤ specifieΣá iε ì
  304.      the last record of the HEX object file.
  305. Symbol Definition
  306.  
  307. EQU and SET
  308.  
  309.      These take the form:
  310.  
  311.           symbol    EQU  expression
  312.           symbol    SET  expression
  313.  
  314.      The∙á causσ thσ symbo∞ t∩ bσ defineΣ anΣ giveε thσ valuσá oµ ì
  315.      thσá argumen⌠ expresson«á Symbol≤ defineΣ witΦ EQ╒ servσá a≤ ì
  316.      symboliπá constants¼á anΣ ma∙ no⌠ havσ thei≥ value≤ changed« ì
  317.      Symbol≤á defineΣ witΦ SE╘ arσ treateΣá a≤á variables╗á thei≥ ì
  318.      values may be changed by additional SET's
  319.  
  320. Conditional Assembly
  321.  
  322. IF, ELSE, and ENDIF
  323.  
  324. The construct
  325.  
  326.      IF expression
  327.      statement
  328.      .
  329.      .
  330.      .
  331.      ENDIF
  332.  
  333. cause≤á thσá firs⌠ sequencσ oµ statement≤ t∩ bσ processeΣ iµá thσ ì
  334. expressioεá i≤á TRU┼ (non-zero)¼á anΣ thσ seconΣ sequencσá t∩á bσ ì
  335. processed otherwise.
  336.  
  337. Conditional≤á ma∙ bσ nesteΣ t∩ ß deptΦ oµ 10«á Thσ valuσá oµá thσ ì
  338. expression if the IF statement must be known in Pass 1.
  339. Listing Control
  340.  
  341. PAGE {expression}
  342.  
  343.      Iµá thσ argumen⌠ i≤ omitted¼á theε thi≤ cause≤ aεá immediatσ ì
  344.      pagσ ejec⌠ (ie«á ß ski≡ t∩ thσ to≡ oµ thσ nex⌠ page)«á Iµ aε ì
  345.      argumen⌠á i≤ supplieΣ occur≤ onl∙ iµ therσ arσ les≤á thaεá ε ì
  346.      line≤ remaininτ oε thσ curren⌠ page.
  347.  
  348. WIDTH expression
  349.  
  350.      Set≤ thσ assumeΣ widtΦ oµ thσ listinτ page« Thσ valuσ oµ thσ ì
  351.      argument may be between 32 and 132, and defaults to 132.
  352.  
  353. PGLEN expression
  354.  
  355.      Set≤á thσ numbe≥ oµ line≤ whicΦ wil∞ bσ printeΣ oε eacΦ pagσ ì
  356.      oµá thσ listing«á Notσ tha⌠ thσ pagσ headinτ take≤ u≡á ╖á oµ ì
  357.      thesσ lines«á Thσ valuσ oµ thσ argumen⌠ ma∙ bσ betweeε ╕ anΣ ì
  358.      255, and defaults to 58.
  359. TITLE dtextd
  360.  
  361.      Causσá thσ specifieΣ tex⌠ t∩ becomσ thσ listinτ pagσá title¼ ì
  362.      beginninτ witΦ thσ nex⌠ pagσ heade≥ printed« Thσ delimite≥ Σ ì
  363.      may be any printing character.
  364.  
  365.      Iµá n∩á TITL┼á statemen⌠ i≤ used¼á theεá XASM4╕á supplie≤á ß ì
  366.      defaul⌠á titlσ consistinτ oµ thσ tex⌠ "SOURC┼ FIL┼á NAME║á ó ì
  367.      followed by the name and extension of the input file.
  368.  
  369. SBTTL dtextd
  370.  
  371.      Jus⌠ likσ TITLE¼á bu⌠ set≤ thσ listinτ pagσ subtitle¼á whicΦ ì
  372.      is printed on the line after the title line.
  373. LIST and NOLIST
  374.  
  375.      Thesσá allowselectivσá listinτá oµ portion≤á oµá ßá program« ì
  376.      NOLIS╘á turn≤á ofµ thσ assembl∙ listing¼á anΣ LIS╘ turn≤á i⌠ ì
  377.      bacδ on« Iµ listinτ ha≤ beσ turneΣ ofµ witΦ NOLIST¼ theε thσ ì
  378.      nex⌠á LIS╘ encountereΣ wil∞ begiε ßá ne≈á page«á Commnd-linσ ì
  379.      switche≤á whicΦá disablσá listinτ (ie«á ╪ anΣ O⌐á wil∞á takσ ì
  380.      precedencσá ove≥ LIST«á NOLIS╘ doe≤ no⌠ turε ofµ listinτá oµ ì
  381.      the symbol table.
  382.  
  383. External Source File
  384.  
  385. INCLUD d:name.ext
  386.  
  387.      Thi≤á pseudo-o≡ cause≤ thσ specifieΣ filσ t∩ bσ includeΣá a≤ ì
  388.      iµá i⌠á werσá presen⌠á a⌠ thi≤ poin⌠á iεá thσá sourcσá file« ì
  389.      INCLUD'≤á ma∙á no⌠á bσ nested╗á tha⌠ is¼á thσ filσá reaΣá b∙ ì
  390.      INCLU─á ma∙ no⌠ contaiε anothe≥ INCLU─ statement«á Thσá filσ ì
  391.      must end with an END statement.
  392.  
  393. Operator Synonyms
  394.  
  395. The Statement
  396.  
  397.      symbol    OPSYN     operator
  398.  
  399. cause≤á thσá giveεá symbo∞ t∩ bσ defineΣ a≤á ßá synonyφá fo≥á thσ ì
  400. operato≥ o≥ pseudo-o≡ specifieΣ a≤ argument« Thi≤ i≤ particularl∙ ì
  401. usefu∞ wheε assemblinτ sourcσ filσ writteε fo≥ anothe≥ assembler« ì
  402. Fo≥ example¼á iµ ß prograφ use≤ .BYT┼ insteaΣ oµ DB¼á i⌠ coulΣ bσ ì
  403. correctly assembled by including the statement
  404.  
  405.      .BYTE     OPSYN     DB
  406. Target Machine Validation
  407.  
  408. XASM4╕á check≤á t∩ seσ tha⌠ eacΦ instructioε assembleΣ i≤ iεá thσ ì
  409. targe⌠ machine'╙ instructioε set«á Thσ defaul⌠ intructioε se⌠á i≤ ì
  410. tha⌠ oµ thσ 8048« Other≤ ma∙ bσ specifieΣ b∙ onσ oµ thσ followinτ ì
  411. pseudo-ops:
  412.  
  413.      MOD41A
  414.      MOD41
  415.      MOD22
  416.      MOD21
  417.  
  418. Onl∙á onσá oµ thesσ ma∙ appea≥ iε ß giveε program╗á i⌠á ma∙á onl∙ ì
  419. appear once, and it must precede all code-generating instructios.
  420.  
  421. :Errors
  422.  
  423. Fata∞á error≤á resul⌠ iε thσ printinτ oµ aε erro≥ messagσ oεá thσ
  424. consolσ anΣ immediatσ returε t∩ CP/M«á Fata∞ error≤ ma∙ bσ causeΣ
  425. b∙ missinτ sourcσ files¼á inadequatσ disδ spacσ fo≥ outpu⌠ files¼
  426. o≥ overflo≈ oµ thσ symbo∞ tablσ o≥ variou≤ stacks.
  427.  
  428. Non-fata∞ error≤ arσ flaggeΣ witΦ ß characte≥ iε thσ firs⌠ columε
  429. oµá thσá assembl∙ listing«á Line≤ containinτá error≤á arσá alway≤
  430. listed¼á eveε iµ listinτ i≤ turneΣ off«á ┴ coun⌠ i≤ maintaineΣ oµ
  431. line≤á containinτ errors╗á iµ thσ coun⌠ i≤ non-zer∩ a⌠ thσ enΣ oµ
  432. the assembly, it is printed on the console in the message:
  433.  
  434.      ***** nnn LINES CONTAINED ERRORS *****
  435.  
  436. Onl∙á onσ erro≥ i≤ listeΣ pe≥ line╗á hence¼á iµ ßá linσá contain≤
  437. multiplσ error≤ somσ ma∙ no⌠ bσ caugh⌠ unti∞ successivσ assemble≥
  438. runs«á Thσá fata∞á erro≥ message≤ anΣ non-fata∞ erro≥á flag≤á arσ ì
  439. described later.
  440. :Format of Listings
  441.  
  442. Page Headings
  443.  
  444. All listings begin with a heading consisting of seven lines:
  445.  
  446.                           (blank line)
  447.      (blank line)
  448.      (assembler name and version)
  449.      (blank line)
  450.      (title and page number)
  451.      (subtitle)
  452.      (blank line)
  453.  
  454. If no title is supplied in the source program, then the assembler
  455. provides a default title consisting of the message
  456.  
  457.      SOURCE FILE NAME:
  458.  
  459. followed by the name of the input file in the form name.ext. The
  460. pagσá numbe≥á i≤ listeΣ a⌠ thσ right-hanΣ enΣ oµ thi≤ samσá line¼
  461. always within the specified page width.
  462.  
  463.  
  464. If no subtitle is supplied, the subtitle line is left blank. Both
  465. titlσ anΣ subtitlσ wil∞ bσ truncated¼á iµ necessary¼á t∩á satisf∙
  466. page width constraints.
  467.  
  468.  
  469. Line Headings
  470.  
  471. EacΦá code-generatinτá linσ oµ thσ listiε begin≤ witΦá thσá erro≥
  472. flaτ (blanδ iµ n∩ error⌐ anΣ thσ 4-digi⌠ hexadecima∞ valuσ oµ thσ
  473. locatioε counte≥ a≤ oµ thσ star⌠ oµ thσ line« Thi≤ i≤ followed by
  474. u≡ t∩ fou≥ byte≤ oµ generateΣ code¼á als∩ iε hexadecima∞ witΦ tw∩
  475. digits per byte. Statements which generate more than 4 bytes will
  476. bσá assembleΣá correctly¼á bu⌠ onl∙ thσ firs⌠ fou≥ byte≤ wil∞á bσ
  477. listed«á Line≤á whicΦ d∩ no⌠ generatσ codσ bu⌠ whicΦ evaluatσá aε
  478. operanΣá (sucΦ a≤ EQ╒ o≥ WIDTH⌐ lis⌠ thσ operanΣ valuσá iεá thei≥
  479. headers, in place of the location counter.
  480. Symbol-Table Listing
  481.  
  482. The symbol-table listing shows all symbols defined in the current
  483. assembly¼áá witΦá thei≥á hexadecima∞á values«á Onl∙á user-defineΣ
  484. symbol≤á arσá listed«á Symbol≤ arσ iεá vertica∞á columns¼á sorteΣ
  485. alphabeticall∙á accordinτá t∩ thσ ASCI╔ collatinτá sequence«á Thσ
  486. numbe≥á oµá column≤á i≤á adjusteΣ automaticall∙á t∩á fi⌠á iεá thσ
  487. specifieΣ pagσ width«á Al∞ page≤ oµ thσ symbol-tablσ listinτá arσ
  488. automatically subtitled.
  489.  
  490.      ---- SYMBOL TABLE ----
  491.  
  492.  
  493. Becausσá thσ sortinτ schemσ useΣ i≤ strictl∙á lexicographic¼á thσ
  494. wa∙ i⌠ order≤ number≤ ma∙ bσ counterintuitive« ┴ typica∞ sequencσ
  495. of labels might be listed as follows:
  496.  
  497.      SYM19, SYM2, SYM20, SYM21, SYM3, SYM4
  498. :Error Messages and Flags
  499.  
  500. Non-Fatal Error Flags
  501.  
  502.      C    Conditional Err     Unmatched IF, ELSE, or, ENDIF; or
  503.                               conditionals nested too deeply.
  504.  
  505.      I    Includ Err          File not found, or nested INCLUD's.
  506.  
  507.      L    Label Err           Label too long. (>8 characters)
  508.  
  509.      M    Multipule Defn      Symbol already defined.
  510.  
  511.      O    Operator Err        Undefined or illegal operator
  512.  
  513.      ╨    Phasσ Er≥           Symbo∞ ha≤ differen⌠ valuσ oε pass
  514.                               2 than on pass 1
  515.      R    Range Err           Argument out of bounds, branch out
  516.                               out of range, or illegal register/
  517.                               port number.
  518.  
  519.      S    Syntax Err          Ill-formed argument or expression
  520.  
  521.      W    Warning             Instruction not available on
  522.                               specified target machine.
  523.  
  524. Fatal Error Messages
  525.  
  526.  
  527. SOURCE FILE NOT FOUND              The specified source file
  528.                                    doesn't exist.
  529.  
  530. UNABLE TO CREATE OUTPUT FILE       The directory is full on the
  531.                                    disk specified for output
  532.  
  533. OUTPUT FILE WRITE ERROR            The output disk is full
  534.  
  535. EVALUATION STACK IS FULL           An arithmetic expression was
  536.                                    encountered which had too many
  537.                                    levels of parentheses or of
  538.                                    precedence nesting
  539.  
  540. SYMBOL TABLE FULL                  Not enough memory remains to
  541.                                    to create a table entry for a
  542.                                    symbol being defined.
  543. Non-Fatal Error Messages
  544.  
  545. NO ROOM FOR SYMBOL-TABLE SORT      Not enough memory is available
  546.                                    to sort the symbol table.
  547.                                    Symbol-table listing is
  548.                                    therefore omitted.
  549. :Object File Format
  550.  
  551.  
  552. Object files are in the Intel HEX format, which represents binary
  553. data bytes as two-digit ASCII hexadecimal numbers. An object file
  554. consists of a sequence of data records, followed by a single end 
  555. record.
  556.  
  557. The record formats are:
  558.  
  559.      Data Record:
  560.  
  561.      Byte 1         Colon (:)
  562.           2..3      Number of binary data bytes in this record.
  563.           4..5      Load address for this record, high byte.
  564.           6..7      Load address  "   "     "     low byte
  565.           8..9      Unused, should be "00".
  566.           10..X     Data bytes, two characters each.
  567.           X+1..X+2  Checksum  (2 characters).
  568.           X+3..X+4  CR/LF
  569.      End Record:
  570.      Likσ datß record¼  bu⌠ numbe≥ oµ datß byte≤ i≤ zer∩ anΣ the
  571.      load address field contains the program starting address.
  572.  
  573.  
  574. Thσá checksuφ i≤ thσ two'╙ complemen⌠ oµ thσ 8-bi⌠á sum¼á withou⌠
  575. carry¼á oµ al∞ thσ datß bytes¼ thσ tw∩ byte≤ oµ loaΣ address¼ anΣ
  576. thσ bytσ count.
  577.