home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- ┴TARI ┴SSEMBLER ├OURSE
- (EDITED FOR ├┬═)
-
-
- -----------------------------------
-
- 1.1 ╫HY ┴SSEMBLY ╠ANGUAGE
-
-
- ╘O BETTER UNDERSTAND THE NEED FOR ┴SSEMBLY ╨ROGRAMMING, LET'S COMPARE THE
- DIFFERENT TYPES OF PROGRAMMING LANGUAGES: INTERPRETED, COMPILED, AND
- ASSEMBLED. ╘HE LANGUAGE WE ARE MOST FAMILIAR WITH, ├┬═ ┬┴╙╔├, FALLS IN THE
- FIRST CATEGORY. ╫HEN AN INTERPRETED LANGUAGE RUNS, EACH COMMAND IS EXAMINED
- AND CONVERTED TO ITS MACHINE CODE EQUIVALENT AND THEN EXECUTED. ┬ECAUSE OF
- THIS "ONE-AT-A-TIME" METHOD, THESE LANGUAGES TEND TO BE SLOWER BUT REQUIRE
- LESS MEMORY. ┴LSO, THE LANGUAGE ITSELF REQUIRES MEMORY (8╦ IN THE CASE OF
- ├┬═ ┬┴╙╔├) EVEN WITH NO PROGRAM LOADED INTO THE COMPUTER! ╙OME LANGUAGES,
- LIKE ╞ORTH, HAVE A VERY FAST YET SMALL INTERPRETER. ╧THERS LIKE ╨ASCAL OR
- ╨ETSPEEDED ┬┴╙╔├ ARE LARGER AND SLOWER. ╘HE CLOSEST A LANGUAGE CAN COME
- TOTHE SPEED OF MACHINE CODE IS A TRULY COMPILED LANGUAGE, SUCH AS ┴├╘╔╧╬!
- (╬.┬. ┴CTION IS AN ┴TARI LANGUAGE WHICH IS SIMILAR TO "├" OR ╨ASCAL, WHICH
- IS CURRENTLY BEING CONVERTED FROM ┴TARI TO ├'64.) THAT GENERATES THE
- "NATIVE CODE" OF THE COMPUTER ITSELF (THE 6502/09/10 MICROPROCESSOR IN OUR
- CASE). ├OMPILED LANGUAGES DIFFER FROM INTERPRETED LANGUAGES IN THE WAY
- THEY ARE TRANSLATED INTO MACHINE CODE. ╒NLIKE AN INTERPRETER, A COMPILER
- GENERATES THE EQUIVALENT MACHINE CODE FOR THE COMPLETE PROGRAM BEFORE IT IS
- RUN. ┴LTHOUGH THIS STEP TAKES EXTRA TIME, IT NEEDS ONLY TO BE DONE ONCE AND
- THE RESULTING MACHINE-CODE EQUIVALENT PROGRAM WILL RUN MUCH FASTER EVERY
- TIME.
- ╠ASTLY, ASSEMBLED LANGUAGE IS A MEANS OF WRITING PROGRAMS DIRECTLY IN
- MACHINE CODE BUT WE HAVE THE USE OF WORDS TO REPRESENT THE LOWEST LEVEL
- OPERATIONS OF THE MICROCOMPUTER. ╘HE OPERATIONAL CODES OR "╧P-CODES ARE
- REPRESENTED AS THREE-LETTER SYMBOLIC WORDS OR "MNEMONICS". ╒NLIKE THE OTHER
- TYPES, ASSEMBLY LANGUAGE ALLOWS THE PROGRAMMER TO OPTIMIZE THE SPEED, SIZE,
- AND TIMING OF A PROGRAM BY TALKING IN THE COMPUTERS OWN WORDS.
- ╘HESE ADVANTAGES WILL EASILY JUSTIFY THE LONGER DEVELOPEMENT TIME IN MANY
- APPLICATIONS, SUCH AS GAMES, WHERE TIMING IS INTRICATE, THE SIZE MUST BE
- MINIMIZED AND, NATURALLY, IT HAS TO BE FAST!
-
- -----------------------------------
-
- 1.2 ├┬═ ╙YSTEM ┴RCHITECTURE
-
- ╔N ORDER TO DESIGN GOOD SOFTWARE WITH YOUR ├OMMODORE ├OMPUTER, YOU NEED A
- GOOD UNDERSTANDING OF THE HARDWARE. ┬ECAUSE ┴SSEMBLY ╠ANGUAGE DEALS
- DIRECTLY WITH THE MACHINE ITSELF, YOU WILL BECOME GOOD FRIENDS WITH "├╔┴",
- OR "╓╔┴", "╙╔─", AND THE "╓╔├" OR "╓╔├-2". ╘HESE CHIPS ARE THE WORK-HORSES
- OF ├OMMODORE COMPUTERS, AND HELP OUT THE 65XY MICROPROCESSOR WITH THE
- VARIOUS DUTIES OF THE COMPUTER SYSTEM. ╫E WILL GET INTO MORE DETAIL WITH
- THEM THROUGH OUT THE COURSE. ╞OR NOW:
-
- ╥EAD: THE FIRST FEW PAGES OF THE
- MACHINE LANGUAGE CHAPTER OF
- YOUR COMPUTER'S ╨ROGRAMMER'S
- ╥EFERENCE ╟UIDE
-
-
-
-
-
-
-
-
-
- -----------------------------------
- 1.3 6502 ├╨╒ ─ESCRIPTION
-
-
- ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘ ┬╔╘
- 7 6 5 4 3 2 1 0
- ,---+---+---+---+---+---+---+---.
- ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ┴├├╒═╒╠┴╘╧╥
-
-
- ,---+---+---+---+---+---+---+---.
- ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ╪ ╔╬─┼╪ ╥┼╟╔╙╘┼╥
-
-
- ,---+---+---+---+---+---+---+---.
- ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ┘ ╔╬─┼╪ ╥┼╟╔╙╘┼╥
-
-
- ,---+---+---+---+---+---+---+---.
- ▄ ╬ ▄ ╓ ▄ ╪ ▄ ┬ ▄ ─ ▄ ╔ ▄ ┌ ▄ ├ ▄
- '---+---+---+---+---+---+---+---'
- ╨╥╧├┼╙╙╧╥ ╙╘┴╘╒╙ ╥┼╟╔╙╘┼╥
-
-
- ,---+---+---+---+---+---+---+---.
- ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ╨╥╧╟╥┴═ ├╧╒╬╘┼╥ ╚╔╟╚
-
- ,---+---+---+---+---+---+---+---.
- ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ╨╥╧╟╥┴═ ├╧╒╬╘┼╥ ╠╧╫
-
-
- ,---+---+---+---+---+---+---+---.
- 1▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ╙╘┴├╦ ╨╧╔╬╘┼╥
- -----------------------------------
- ╙PECIAL 6510 REGISTERS
- (MASQUERADING AS ╥┴═)
-
-
- ,---+---+---+---+---+---+---+---.
- 0▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ╬OR:╔N ╔N ╧UT ╔N ╧UT ╧UT ╧UT ╧UT
- ╔/╧ ─IRECTION FOR 1
-
-
- ,---+---+---+---+---+---+---+---.
- 1▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄
- '---+---+---+---+---+---+---+---'
- ├ASSETTE $─ $┼╞ $┴┬
- ═OT ╙ENS ╫RI ┬ANKING
-
-
-
-
- -----------------------------------
- 6502 ═ICROPROCESSOR
- ╔NTERNAL ╥EGISTERS
- -----------------------------------
-
- 1.3.1 ╥EGISTERS - ┴,╪,┘
-
- ┴ "REGISTER" IS A MEMORY CELL, INTERNAL TO THE MICROPROCESSOR, IN WHICH
- EIGHT "BITS" OR BINARY DIGITS ARE STORED. ╘HE ACCUMULATOR IS THE REGISTER
- WHERE DATA MUST BE STORED TO BE OPERATED UPON.
- ╘HE "╪" AND "┘" REGISTERS ARE NORMALLY USED TO KEEP DATA FOR INDEXING
- INTO MEMORY OR AS A COUNTER IN A LOOP.
-
- 1.3.2 ╨ROCESSOR ╙TATUS ╥EGISTER
-
- ╘HE NEXT MOST IMPORTANT REGISTER IN THE 6502 IS THE PROCESS STATUS
- REGISTER. ┴S ITS NAME IMPLIES, THE "╨" REGISTER HOLDS THE STATUS OF MANY
- CONDITIONS IN THE ├╨╒. ┼ACH BIT IN THIS REGISTER IS A FLAG, EITHER A "1" OR
- A "0", THAT MAY BE USED AS A TEST FOR BRANCHING OR LOOPING IN A PROGRAM.
- ╘HE SYMBOLIC LETTER FOR EACH STATUS FLAG IS SHOWN IN THE FIGURE ABOVE
- WITHIN CORRESPONDING BIT OF "╨" REGISTER. ╘HE "├" OR "CARRY" FLAG IS SET
- (EQUAL TO ONE) WHEN AN ARITHMETIC OPERATION RESULTS IN A VALUE GREATER THAN
- 255 (THE HIGHEST VALUE FOR 8 BIT NUMBERS). ╘HE "┌" FLAG IS SET WHEN AN
- OPERATION RESULTS IN A VALUE EQUAL TO ZERO. ╘HE "╔" FLAG IS USED DURING AN
- "INTERRUPTING" OR TIME-SHARING PORTION OF THE PROGRAM. ╘HE "─" FLAG IS SET
- WHEN "DECIMAL" ARITHMETIC IS USED AND RESET TO "0" FOR "BINARY" MATH. ╘HE
- "┬" FLAG IS SET WHEN THE 6502 ┬REAK COMMAND HAS OCCURRED. ╘HE "╪" FLAG IS
- NOT USED.
- ╘HE "╓" FLAG IS SET WHEN AN OPERATION RESULTS IN A VALUE GREATER THAN
- +127 OR LESS THAN -128 AND IS USED FOR SIGNED ARITHMETIC. ╘HE "╬" FLAG, OR
- NEGATIVE FLAG, IS EQUAL TO THE SEVENTH BIT OF A RESULT; THIS IS ALSO USED
- FOR SIGNED ARITHMETIC.
- ┼ACH OF THE STATUS BITS MAY BE CHANGED IN A PROGRAM EXCEPT FOR THE BREAK
- FLAG.
-
- 1.3.3 ╨ROGRAM ├OUNTER - ╨├
-
- ╘HE PROGRAM COUNTER HOLDS THE VALUE OF THE MEMORY LOCATION WHERE THE NEXT
- MACHINE CODE INSTRUCTION IS LOCATED. ╔T HAS A "HIGH" AND "LOW" BYTE SO THAT
- 64╦ BYTES OF MEMORY CAN BE "ADDRESSED" WITH THE 16 BITS. ┴LSO, THE "╨├" IS
- CHANGED BY THE ├╨╒ AS A RESULT OF A BRANCH, JUMP, OR SUBROUTINE IN THE
- PROGRAM SO THAT THE NEXT OPERATION IS FOUND. ╫E WILL SEE SOME OTHER USES OF
- THE PROGRAM COUNTER LATER ON.
-
- 1.3.4 ╙TACK ╨OINTER - ╙
-
- ╘HE ╙TACK IS ANOTHER VERY USEFUL ASPECT OF THE 6502 ├╨╒. ╔T IS LOCATED IN
- MEMORY ON "╨AGE-╧NE" (HEX 0100 TO 01╞╞) AND IS RESERVED FOR THE THE 6502
- AND THE PROGRAMMER FOR LIMITED USAGE. ╘HE STACK BEGINS AT THE END OF
- PAGE-ONE (HEX 01╞╞) AND IS FILLED ON A LAST-IN, FIRST-OUT BASIS. ╘HE ╙TACK
- ╨OINTER HOLDS THE LOCATION OF THE "TOP" OF THE STACK.
-
- 1.4 ╥EVIEW OF ┬INARY AND ╚EX ═ATH
-
- ┬ECAUSE WE ARE DEALING DIRECTLY WITH THE MICROPROCESSOR ITSELF, IT IS
- VERY IMPORTANT TO UNDERSTAND THE OPERATIONS OF BINARY NUMBERS AND THEIR
- HEXIDECIMAL EQUIVALENTS. ╫E CAN REVIEW THIS BRIEFLY DURING THE SESSION IF
- THERE ARE QUESTIONS. ┬UT, GET A GOOD UNDERSTANDING BEFORE WE BEGIN. ╘HERE
- ARE TUTORIALS IN YOUR ╨ROGRAMMER'S ╥EFERENCE ╟UIDE AND IN ╥ICHARD
- ═ANSFIELD'S "═ACHINE ╠ANGUAGE FOR ┬EGINNERS BY ├OMPUTE! ┬OOKS.
-
-
- ....╩OHN ─E═AR 71066,337. 2/6/84 EDITED 3/29/84 BY ╩OEL ╥UBIN
-
-