home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 03 Demos and Info / ASMTXT.SDA / ASM1 next >
Encoding:
Text File  |  2019-04-13  |  7.3 KB  |  199 lines

  1.  
  2.  
  3.  
  4.  
  5.        ┴TARI ┴SSEMBLER ├OURSE
  6.         (EDITED FOR ├┬═)
  7.  
  8.  
  9. -----------------------------------
  10.  
  11.     1.1   ╫HY ┴SSEMBLY ╠ANGUAGE
  12.  
  13.  
  14.   ╘O BETTER UNDERSTAND THE NEED FOR ┴SSEMBLY ╨ROGRAMMING, LET'S COMPARE THE 
  15. DIFFERENT TYPES OF PROGRAMMING LANGUAGES: INTERPRETED, COMPILED, AND 
  16. ASSEMBLED. ╘HE LANGUAGE WE ARE MOST FAMILIAR WITH, ├┬═ ┬┴╙╔├, FALLS IN THE 
  17. FIRST CATEGORY. ╫HEN AN INTERPRETED LANGUAGE RUNS, EACH COMMAND IS EXAMINED 
  18. AND CONVERTED TO ITS MACHINE CODE EQUIVALENT AND THEN EXECUTED. ┬ECAUSE OF 
  19. THIS "ONE-AT-A-TIME" METHOD, THESE LANGUAGES TEND TO BE SLOWER BUT REQUIRE 
  20. LESS MEMORY. ┴LSO, THE LANGUAGE ITSELF REQUIRES MEMORY (8╦ IN THE CASE OF 
  21. ├┬═ ┬┴╙╔├) EVEN WITH NO PROGRAM LOADED INTO THE COMPUTER! ╙OME LANGUAGES, 
  22. LIKE ╞ORTH, HAVE A VERY FAST YET SMALL INTERPRETER. ╧THERS LIKE ╨ASCAL OR 
  23. ╨ETSPEEDED ┬┴╙╔├ ARE LARGER AND SLOWER.  ╘HE CLOSEST A LANGUAGE CAN COME 
  24. TOTHE SPEED OF MACHINE CODE IS A TRULY COMPILED LANGUAGE, SUCH AS ┴├╘╔╧╬! 
  25. (╬.┬. ┴CTION IS AN ┴TARI LANGUAGE WHICH IS SIMILAR TO "├" OR ╨ASCAL, WHICH 
  26. IS CURRENTLY BEING CONVERTED FROM ┴TARI TO ├'64.) THAT GENERATES THE 
  27. "NATIVE CODE" OF THE COMPUTER ITSELF (THE 6502/09/10 MICROPROCESSOR IN OUR 
  28. CASE).  ├OMPILED LANGUAGES DIFFER FROM INTERPRETED LANGUAGES IN THE WAY 
  29. THEY ARE TRANSLATED INTO MACHINE CODE. ╒NLIKE AN INTERPRETER, A COMPILER 
  30. GENERATES THE EQUIVALENT MACHINE CODE FOR THE COMPLETE PROGRAM BEFORE IT IS 
  31. RUN. ┴LTHOUGH THIS STEP TAKES EXTRA TIME, IT NEEDS ONLY TO BE DONE ONCE AND 
  32. THE RESULTING MACHINE-CODE EQUIVALENT PROGRAM WILL RUN MUCH FASTER EVERY 
  33. TIME.
  34.   ╠ASTLY, ASSEMBLED LANGUAGE IS A MEANS OF WRITING PROGRAMS DIRECTLY IN 
  35. MACHINE CODE BUT WE HAVE THE USE OF WORDS TO REPRESENT THE LOWEST LEVEL 
  36. OPERATIONS OF THE MICROCOMPUTER. ╘HE OPERATIONAL CODES OR "╧P-CODES ARE 
  37. REPRESENTED AS THREE-LETTER SYMBOLIC WORDS OR "MNEMONICS". ╒NLIKE THE OTHER 
  38. TYPES, ASSEMBLY LANGUAGE ALLOWS THE PROGRAMMER TO OPTIMIZE THE SPEED, SIZE, 
  39. AND TIMING OF A PROGRAM BY TALKING IN THE COMPUTERS OWN WORDS.
  40.   ╘HESE ADVANTAGES WILL EASILY JUSTIFY THE LONGER DEVELOPEMENT TIME IN MANY 
  41. APPLICATIONS, SUCH AS GAMES, WHERE TIMING IS INTRICATE, THE SIZE MUST BE 
  42. MINIMIZED AND, NATURALLY, IT HAS TO BE FAST!
  43.  
  44. -----------------------------------
  45.  
  46.  1.2   ├┬═ ╙YSTEM ┴RCHITECTURE
  47.  
  48.   ╔N ORDER TO DESIGN GOOD SOFTWARE WITH YOUR ├OMMODORE ├OMPUTER, YOU NEED A 
  49. GOOD UNDERSTANDING OF THE HARDWARE. ┬ECAUSE ┴SSEMBLY ╠ANGUAGE DEALS 
  50. DIRECTLY WITH THE MACHINE ITSELF, YOU WILL BECOME GOOD FRIENDS WITH "├╔┴", 
  51. OR "╓╔┴", "╙╔─", AND THE "╓╔├" OR "╓╔├-2".  ╘HESE CHIPS ARE THE WORK-HORSES 
  52. OF ├OMMODORE COMPUTERS, AND HELP OUT THE 65XY MICROPROCESSOR WITH THE 
  53. VARIOUS DUTIES OF THE COMPUTER SYSTEM. ╫E WILL GET INTO MORE DETAIL WITH 
  54. THEM THROUGH OUT THE COURSE. ╞OR NOW:
  55.  
  56.  ╥EAD: THE FIRST FEW PAGES OF THE
  57.        MACHINE LANGUAGE CHAPTER OF
  58.        YOUR COMPUTER'S ╨ROGRAMMER'S
  59.        ╥EFERENCE ╟UIDE
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. -----------------------------------
  70.    1.3   6502 ├╨╒ ─ESCRIPTION
  71.  
  72.  
  73.   ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘
  74.    7   6   5   4   3   2   1   0
  75.  ,---+---+---+---+---+---+---+---.
  76.  ▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄
  77.  '---+---+---+---+---+---+---+---'
  78.            ┴├├╒═╒╠┴╘╧╥
  79.  
  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. 1▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄
  112.  '---+---+---+---+---+---+---+---'
  113.           ╙╘┴├╦ ╨╧╔╬╘┼╥
  114. -----------------------------------
  115.         ╙PECIAL 6510 REGISTERS
  116.         (MASQUERADING AS ╥┴═)
  117.  
  118.  
  119.  ,---+---+---+---+---+---+---+---.
  120. 0▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄
  121.  '---+---+---+---+---+---+---+---'
  122. ╬OR:╔N ╔N ╧UT ╔N  ╧UT ╧UT ╧UT ╧UT
  123.        ╔/╧ ─IRECTION FOR 1
  124.  
  125.  
  126.  ,---+---+---+---+---+---+---+---.
  127. 1▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄   ▄
  128.  '---+---+---+---+---+---+---+---'
  129.             ├ASSETTE  $─  $┼╞ $┴┬
  130.          ═OT ╙ENS ╫RI   ┬ANKING
  131.  
  132.  
  133.  
  134.  
  135. -----------------------------------
  136.         6502 ═ICROPROCESSOR
  137.         ╔NTERNAL ╥EGISTERS 
  138. -----------------------------------
  139.  
  140.    1.3.1   ╥EGISTERS - ┴,╪,┘
  141.  
  142.   ┴ "REGISTER" IS A MEMORY CELL, INTERNAL TO THE MICROPROCESSOR, IN WHICH 
  143. EIGHT "BITS" OR BINARY DIGITS ARE STORED. ╘HE ACCUMULATOR IS THE REGISTER 
  144. WHERE DATA MUST BE STORED TO BE OPERATED UPON.
  145.   ╘HE "╪" AND "┘" REGISTERS ARE NORMALLY USED TO KEEP DATA FOR INDEXING 
  146. INTO MEMORY OR AS A COUNTER IN A LOOP.
  147.  
  148.  1.3.2   ╨ROCESSOR ╙TATUS ╥EGISTER
  149.  
  150.   ╘HE NEXT MOST IMPORTANT REGISTER IN THE 6502 IS THE PROCESS STATUS 
  151. REGISTER. ┴S ITS NAME IMPLIES, THE "╨" REGISTER HOLDS THE STATUS OF MANY 
  152. CONDITIONS IN THE ├╨╒. ┼ACH BIT IN THIS REGISTER IS A FLAG, EITHER A "1" OR 
  153. A "0", THAT MAY BE USED AS A TEST FOR BRANCHING OR LOOPING IN A PROGRAM.
  154.   ╘HE SYMBOLIC LETTER FOR EACH STATUS FLAG IS SHOWN IN THE FIGURE ABOVE 
  155. WITHIN CORRESPONDING BIT OF "╨" REGISTER. ╘HE "├" OR "CARRY" FLAG IS SET 
  156. (EQUAL TO ONE) WHEN AN ARITHMETIC OPERATION RESULTS IN A VALUE GREATER THAN 
  157. 255 (THE HIGHEST VALUE FOR 8 BIT NUMBERS).  ╘HE "┌" FLAG IS SET WHEN AN 
  158. OPERATION RESULTS IN A VALUE EQUAL TO ZERO. ╘HE "╔" FLAG IS USED DURING AN 
  159. "INTERRUPTING" OR TIME-SHARING PORTION OF THE PROGRAM. ╘HE "─" FLAG IS SET 
  160. WHEN "DECIMAL" ARITHMETIC IS USED AND RESET TO "0" FOR "BINARY" MATH. ╘HE 
  161. "┬" FLAG IS SET WHEN THE 6502 ┬REAK COMMAND HAS OCCURRED. ╘HE "╪" FLAG IS 
  162. NOT USED.
  163.   ╘HE "╓" FLAG IS SET WHEN AN OPERATION RESULTS IN A VALUE GREATER THAN 
  164. +127 OR LESS THAN -128 AND IS USED FOR SIGNED ARITHMETIC.  ╘HE "╬" FLAG, OR 
  165. NEGATIVE FLAG, IS EQUAL TO THE SEVENTH BIT OF A RESULT; THIS IS ALSO USED 
  166. FOR SIGNED ARITHMETIC.
  167.   ┼ACH OF THE STATUS BITS MAY BE CHANGED IN A PROGRAM EXCEPT FOR THE BREAK 
  168. FLAG.
  169.  
  170.   1.3.3   ╨ROGRAM ├OUNTER - ╨├
  171.  
  172.   ╘HE PROGRAM COUNTER HOLDS THE VALUE OF THE MEMORY LOCATION WHERE THE NEXT 
  173. MACHINE CODE INSTRUCTION IS LOCATED. ╔T HAS A "HIGH" AND "LOW" BYTE SO THAT 
  174. 64╦ BYTES OF MEMORY CAN BE "ADDRESSED" WITH THE 16 BITS. ┴LSO, THE "╨├" IS 
  175. CHANGED BY THE ├╨╒ AS A RESULT OF A BRANCH, JUMP, OR SUBROUTINE IN THE 
  176. PROGRAM SO THAT THE NEXT OPERATION IS FOUND. ╫E WILL SEE SOME OTHER USES OF 
  177. THE PROGRAM COUNTER LATER ON.
  178.  
  179.    1.3.4   ╙TACK ╨OINTER - ╙
  180.  
  181.   ╘HE ╙TACK IS ANOTHER VERY USEFUL ASPECT OF THE 6502 ├╨╒. ╔T IS LOCATED IN 
  182. MEMORY ON "╨AGE-╧NE" (HEX 0100 TO 01╞╞) AND IS RESERVED FOR THE THE 6502 
  183. AND THE PROGRAMMER FOR LIMITED USAGE. ╘HE STACK BEGINS AT THE END OF 
  184. PAGE-ONE (HEX 01╞╞) AND IS FILLED ON A LAST-IN, FIRST-OUT BASIS. ╘HE ╙TACK 
  185. ╨OINTER HOLDS THE LOCATION OF THE "TOP" OF THE STACK.
  186.  
  187.   1.4 ╥EVIEW OF ┬INARY AND ╚EX ═ATH
  188.  
  189.   ┬ECAUSE WE ARE DEALING DIRECTLY WITH THE MICROPROCESSOR ITSELF, IT IS 
  190. VERY IMPORTANT TO UNDERSTAND THE OPERATIONS OF BINARY NUMBERS AND THEIR 
  191. HEXIDECIMAL EQUIVALENTS.  ╫E CAN REVIEW THIS BRIEFLY DURING THE SESSION IF 
  192. THERE ARE QUESTIONS.  ┬UT, GET A GOOD UNDERSTANDING BEFORE WE BEGIN. ╘HERE 
  193. ARE TUTORIALS IN YOUR ╨ROGRAMMER'S ╥EFERENCE ╟UIDE AND IN ╥ICHARD 
  194. ═ANSFIELD'S "═ACHINE ╠ANGUAGE FOR ┬EGINNERS BY ├OMPUTE! ┬OOKS.
  195.  
  196.  
  197. ....╩OHN ─E═AR 71066,337.   2/6/84 EDITED 3/29/84 BY ╩OEL ╥UBIN
  198.  
  199.