_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

ASM TUT 3

FILE INFORMATION

FILENAME(S): ASM TUT 3

FILE TYPE(S): PRG

FILE SIZE: 12.8K

FIRST SEEN: 2025-11-30 19:47:20

APPEARS ON: 1 disk(s)

FILE HASH

326f1d177b26e11d919c52a94aee9f03fd90924b97b61ddf2a7a70b23a934d7e

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
THE PHANTOM ASM TUT 3 PRG Curtcool, Frank 30 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: AC 6C 5E 0D 0D 20 20 61  4E 20 69 4E 54 52 4F 44  |.l^..  aN iNTROD|
00000010: 55 43 54 49 4F 4E 20 54  4F 20 6D 41 43 48 49 4E  |UCTION TO mACHIN|
00000020: 45 20 6C 41 4E 47 55 41  47 45 0D 0D 20 20 74 48  |E lANGUAGE..  tH|
00000030: 49 53 20 49 53 20 54 48  45 20 54 48 49 52 44 20  |IS IS THE THIRD |
00000040: 49 4E 20 41 20 53 45 52  49 45 53 20 4F 46 20 20  |IN A SERIES OF  |
00000050: 20 20 20 20 54 55 54 4F  52 49 41 4C 53 20 4F 4E  |    TUTORIALS ON|
00000060: 20 4D 41 43 48 49 4E 45  20 4C 41 4E 47 55 41 47  | MACHINE LANGUAG|
00000070: 45 2E 20 74 48 45 20 46  49 52 53 54 54 57 4F 20  |E. tHE FIRSTTWO |
00000080: 43 4F 56 45 52 45 44 20  54 48 45 20 43 4F 4E 43  |COVERED THE CONC|
00000090: 45 50 54 20 4F 46 20 41  4E 20 41 53 53 45 4D 42  |EPT OF AN ASSEMB|
000000A0: 4C 45 52 20 41 4E 44 20  4D 41 4E 59 20 4F 46 20  |LER AND MANY OF |
000000B0: 54 48 45 20 41 53 53 45  4D 42 4C 59 2D 4C 41 4E  |THE ASSEMBLY-LAN|
000000C0: 47 55 41 47 45 20 36 35  31 30 20 20 49 4E 53 54  |GUAGE 6510  INST|
000000D0: 52 55 43 54 49 4F 4E 53  2C 20 41 50 50 4C 49 43  |RUCTIONS, APPLIC|
000000E0: 41 42 4C 45 20 54 4F 20  41 4E 59 20 43 4F 4D 50  |ABLE TO ANY COMP|
000000F0: 55 54 45 52 57 48 49 43  48 20 55 53 45 53 20 54  |UTERWHICH USES T|
00000100: 48 45 20 36 35 31 30 20  4F 52 20 36 35 30 32 20  |HE 6510 OR 6502 |
00000110: 63 70 75 2E 20 20 20 20  20 20 20 20 6B 4E 4F 57  |cpu.        kNOW|
00000120: 4C 45 44 47 45 20 4F 46  20 42 49 4E 41 52 59 20  |LEDGE OF BINARY |
00000130: 41 4E 44 20 48 45 58 20  49 53 20 41 53 53 55 4D  |AND HEX IS ASSUM|
00000140: 45 44 2E 0D 0D 20 20 74  48 49 53 20 49 4E 53 54  |ED...  tHIS INST|
00000150: 41 4C 4D 45 4E 54 20 57  49 4C 4C 20 43 4F 56 45  |ALMENT WILL COVE|
00000160: 52 20 53 4F 4D 45 20 4F  54 48 45 52 2C 4C 45 53  |R SOME OTHER,LES|
00000170: 53 20 43 4F 4D 4D 4F 4E  20 49 4E 53 54 52 55 43  |S COMMON INSTRUC|
00000180: 54 49 4F 4E 53 2C 20 53  4F 4D 45 20 54 45 43 48  |TIONS, SOME TECH|
00000190: 4E 49 43 41 4C 44 45 54  41 49 4C 53 2C 20 41 4E  |NICALDETAILS, AN|
000001A0: 44 20 48 4F 57 20 54 4F  20 55 53 45 20 62 41 53  |D HOW TO USE bAS|
000001B0: 49 43 20 46 55 4E 43 54  49 4F 4E 53 20 28 4C 49  |IC FUNCTIONS (LI|
000001C0: 4B 45 20 70 72 69 6E 74  2C 69 6E 70 75 74 29 20  |KE print,input) |
000001D0: 46 52 4F 4D 20 6D 6C 2E  0D 0D 20 20 61 4E 59 54  |FROM ml...  aNYT|
000001E0: 48 49 4E 47 20 49 4E 20  5B 53 51 55 41 52 45 20  |HING IN [SQUARE |
000001F0: 42 52 41 43 4B 45 54 53  5D 20 49 53 20 54 48 45  |BRACKETS] IS THE|
00000200: 20 20 4E 41 4D 45 20 4F  46 20 41 20 50 49 45 43  |  NAME OF A PIEC|
00000210: 45 20 4F 46 20 49 4E 46  4F 52 4D 41 54 49 4F 4E  |E OF INFORMATION|
00000220: 20 28 41 20 4E 55 4D 42  45 52 4F 52 20 42 49 54  | (A NUMBEROR BIT|
00000230: 20 4F 46 20 50 52 4F 47  52 41 4D 29 20 57 48 49  | OF PROGRAM) WHI|
00000240: 43 48 20 48 41 53 20 42  45 45 4E 20 4C 45 46 54  |CH HAS BEEN LEFT|
00000250: 20 20 4F 55 54 20 46 4F  52 20 54 48 45 20 53 41  |  OUT FOR THE SA|
00000260: 4B 45 20 4F 46 20 43 4C  41 52 49 54 59 20 41 4E  |KE OF CLARITY AN|
00000270: 44 20 42 52 45 56 49 54  59 2E 73 4F 4D 45 54 48  |D BREVITY.sOMETH|
00000280: 49 4E 47 20 4D 55 53 54  20 54 41 4B 45 20 49 54  |ING MUST TAKE IT|
00000290: 53 20 50 4C 41 43 45 20  54 4F 20 4D 41 4B 45 20  |S PLACE TO MAKE |
000002A0: 41 20 57 4F 52 4B 49 4E  47 20 6D 6C 20 50 52 4F  |A WORKING ml PRO|
000002B0: 47 52 41 4D 2E 0D 0D 5E  0D 20 20 20 20 20 20 20  |GRAM...^.       |
000002C0: 20 72 45 56 49 45 57 20  4F 46 20 70 41 52 54 20  | rEVIEW OF pART |
000002D0: 32 0D 0D 20 20 69 54 20  49 53 20 41 53 53 55 4D  |2..  iT IS ASSUM|
000002E0: 45 44 20 54 48 41 54 20  59 4F 55 20 4B 4E 4F 57  |ED THAT YOU KNOW|
000002F0: 20 54 48 49 53 3A 0D 0D  20 20 36 35 31 30 20 6D  | THIS:..  6510 m|
00000300: 6C 20 69 4E 53 54 52 55  43 54 49 4F 4E 53 3A 0D  |l iNSTRUCTIONS:.|
00000310: 74 41 58 2C 20 54 58 41  2C 20 54 41 59 20 26 20  |tAX, TXA, TAY & |
00000320: 54 59 41 3B 20 4C 44 41  2C 20 4C 44 58 2C 20 4C  |TYA; LDA, LDX, L|
00000330: 44 59 2C 20 53 54 41 2C  53 54 58 20 26 20 53 54  |DY, STA,STX & ST|
00000340: 59 3B 20 41 44 43 2C 20  53 42 43 2C 20 43 4C 43  |Y; ADC, SBC, CLC|
00000350: 20 26 20 53 45 43 3B 20  42 43 43 2C 20 20 20 20  | & SEC; BCC,    |
00000360: 42 43 53 2C 20 42 45 51  2C 20 42 4E 45 2C 20 42  |BCS, BEQ, BNE, B|
00000370: 4D 49 2C 20 42 50 4C 2C  20 42 56 53 2C 20 26 20  |MI, BPL, BVS, & |
00000380: 42 56 43 3B 20 20 20 20  43 4D 50 3B 20 49 4E 58  |BVC;    CMP; INX|
00000390: 2C 20 49 4E 59 2C 20 44  45 58 20 26 20 44 45 59  |, INY, DEX & DEY|
000003A0: 3B 20 4A 4D 50 2C 20 4A  53 52 2C 20 52 54 53 2C  |; JMP, JSR, RTS,|
000003B0: 41 4E 44 20 4A 55 4D 50  20 20 49 4E 44 49 52 45  |AND JUMP  INDIRE|
000003C0: 43 54 20 5B 45 2E 47 2E  20 4A 4D 50 28 24 30 33  |CT [E.G. JMP($03|
000003D0: 30 36 29 5D 2E 0D 0D 20  20 61 44 44 52 45 53 53  |06)]...  aDDRESS|
000003E0: 49 4E 47 20 6D 4F 44 45  53 3A 0D 69 4D 4D 45 44  |ING mODES:.iMMED|
000003F0: 49 41 54 45 3B 20 41 42  53 4F 4C 55 54 45 3B 20  |IATE; ABSOLUTE; |
00000400: 5A 45 52 4F 20 50 41 47  45 3B 20 20 20 20 20 20  |ZERO PAGE;      |
00000410: 20 20 20 41 42 53 4F 4C  55 54 45 2C 58 3B 20 41  |   ABSOLUTE,X; A|
00000420: 42 53 4F 4C 55 54 45 2C  59 3B 20 5A 45 52 4F 20  |BSOLUTE,Y; ZERO |
00000430: 50 41 47 45 2C 58 3B 20  20 20 20 49 4E 44 49 52  |PAGE,X;    INDIR|
00000440: 45 43 54 2C 59 3B 20 49  4E 44 49 52 45 43 54 2C  |ECT,Y; INDIRECT,|
00000450: 58 3B 20 41 4E 44 20 52  45 4C 41 54 49 56 45 2E  |X; AND RELATIVE.|
00000460: 0D 0D 20 20 36 35 31 30  20 53 54 41 54 55 53 20  |..  6510 STATUS |
00000470: 46 4C 41 47 53 2C 20 45  53 50 45 43 49 41 4C 4C  |FLAGS, ESPECIALL|
00000480: 59 3A 0D 63 20 28 63 41  52 52 59 29 2C 20 7A 20  |Y:.c (cARRY), z |
00000490: 28 7A 45 52 4F 29 2C 20  76 20 28 4F 76 45 52 46  |(zERO), v (OvERF|
000004A0: 4C 4F 57 29 2C 20 20 20  20 20 20 41 4E 44 20 6E  |LOW),      AND n|
000004B0: 20 28 6E 45 47 41 54 49  56 45 29 2E 0D 0D 20 20  | (nEGATIVE)...  |
000004C0: 6E 45 47 41 54 49 56 45  20 4E 55 4D 42 45 52 53  |nEGATIVE NUMBERS|
000004D0: 20 49 4E 20 42 49 4E 41  52 59 2E 0D 0D 5E 0D 0D  | IN BINARY...^..|
000004E0: 20 20 20 20 20 62 49 54  2D 4D 41 4E 49 50 55 4C  |     bIT-MANIPUL|
000004F0: 41 54 49 4F 4E 20 69 4E  53 54 52 55 43 54 49 4F  |ATION iNSTRUCTIO|
00000500: 4E 53 0D 0D 20 20 61 4C  54 48 4F 55 47 48 20 59  |NS..  aLTHOUGH Y|
00000510: 4F 55 20 4E 4F 57 20 4B  4E 4F 57 20 48 4F 57 20  |OU NOW KNOW HOW |
00000520: 54 4F 20 41 44 44 2C 20  20 20 20 20 53 55 42 54  |TO ADD,     SUBT|
00000530: 52 41 43 54 2C 20 43 4F  4D 50 41 52 45 20 41 4E  |RACT, COMPARE AN|
00000540: 44 20 4D 4F 56 45 20 42  59 54 45 53 20 41 53 20  |D MOVE BYTES AS |
00000550: 41 20 20 20 57 48 4F 4C  45 2C 20 54 48 49 53 20  |A   WHOLE, THIS |
00000560: 49 4E 53 54 41 4C 4D 45  4E 54 20 57 49 4C 4C 20  |INSTALMENT WILL |
00000570: 53 54 41 52 54 20 57 49  54 48 20 20 54 48 45 20  |START WITH  THE |
00000580: 49 4E 53 54 52 55 43 54  49 4F 4E 53 20 55 53 45  |INSTRUCTIONS USE|
00000590: 44 20 54 4F 20 4D 41 4E  49 50 55 4C 41 54 45 20  |D TO MANIPULATE |
000005A0: 54 48 45 20 49 4E 44 49  56 49 44 55 41 4C 20 42  |THE INDIVIDUAL B|
000005B0: 49 54 53 20 57 49 54 48  49 4E 20 41 20 42 59 54  |ITS WITHIN A BYT|
000005C0: 45 2E 20 74 48 45 20 46  49 52 53 54 4F 46 20 54  |E. tHE FIRSTOF T|
000005D0: 48 45 53 45 20 49 4E 53  54 52 55 43 54 49 4F 4E  |HESE INSTRUCTION|
000005E0: 53 20 41 52 45 3A 0D 0D  6D 6C 20 20 62 41 53 49  |S ARE:..ml  bASI|
000005F0: 43 20 65 58 50 4C 41 4E  41 54 49 4F 4E 0D 0D 61  |C eXPLANATION..a|
00000600: 4E 44 20 20 61 6E 64 20  20 6C 4F 47 49 43 41 4C  |ND  and  lOGICAL|
00000610: 20 61 6E 64 2E 0D 6F 52  41 20 20 6F 72 20 20 20  | and..oRA  or   |
00000620: 6C 4F 47 49 43 41 4C 20  6F 72 2E 20 28 22 6F 72  |lOGICAL or. ("or|
00000630: 20 61 43 43 55 4D 55 4C  41 54 4F 52 22 29 65 4F  | aCCUMULATOR")eO|
00000640: 52 20 20 20 20 20 20 20  6C 4F 47 49 43 41 4C 20  |R       lOGICAL |
00000650: 22 65 58 43 4C 55 53 49  56 45 20 6F 72 22 2E 0D  |"eXCLUSIVE or"..|
00000660: 0D 6E 4F 54 45 3A 20 65  4F 52 20 48 41 53 20 4E  |.nOTE: eOR HAS N|
00000670: 4F 20 62 41 53 49 43 20  45 51 55 49 56 41 4C 45  |O bASIC EQUIVALE|
00000680: 4E 54 2E 0D 0D 20 20 62  45 43 41 55 53 45 20 54  |NT...  bECAUSE T|
00000690: 48 45 59 20 41 52 45 20  4E 4F 54 20 4F 46 54 45  |HEY ARE NOT OFTE|
000006A0: 4E 20 55 53 45 44 20 54  48 49 53 20 20 57 41 59  |N USED THIS  WAY|
000006B0: 2C 20 54 48 45 20 62 41  53 49 43 20 45 51 55 49  |, THE bASIC EQUI|
000006C0: 56 41 4C 45 4E 54 53 20  4D 41 59 20 42 45 20 20  |VALENTS MAY BE  |
000006D0: 20 20 20 20 20 4D 49 53  4C 45 41 44 49 4E 47 20  |     MISLEADING |
000006E0: 49 46 20 59 4F 55 20 4D  41 59 20 48 41 56 45 20  |IF YOU MAY HAVE |
000006F0: 4F 4E 4C 59 20 55 53 45  44 0D 54 48 45 4D 20 57  |ONLY USED.THEM W|
00000700: 49 54 48 20 69 66 20 28  45 47 20 69 66 20 61 3D  |ITH if (EG if a=|
00000710: 30 20 61 6E 64 20 62 3D  30 20 74 68 65 6E 2E 2E  |0 and b=0 then..|
00000720: 29 2E 5E 0D 0D 20 20 62  49 54 2D 4D 41 4E 49 50  |).^..  bIT-MANIP|
00000730: 55 4C 41 54 49 4F 4E 20  69 4E 53 54 52 55 43 54  |ULATION iNSTRUCT|
00000740: 49 4F 4E 53 20 28 63 4F  4E 54 27 44 29 0D 20 20  |IONS (cONT'D).  |
00000750: 74 48 45 53 45 20 43 4F  4D 4D 41 4E 44 53 20 54  |tHESE COMMANDS T|
00000760: 41 4B 45 20 54 57 4F 20  42 59 54 45 53 20 28 4F  |AKE TWO BYTES (O|
00000770: 4E 45 20 49 4E 20 54 48  45 20 41 43 43 55 4D 55  |NE IN THE ACCUMU|
00000780: 4C 41 54 4F 52 20 41 4E  44 20 41 4E 4F 54 48 45  |LATOR AND ANOTHE|
00000790: 52 20 53 50 45 43 49 46  49 45 44 20 42 59 4F 4E  |R SPECIFIED BYON|
000007A0: 45 20 4F 46 20 54 48 45  20 41 44 44 52 45 53 53  |E OF THE ADDRESS|
000007B0: 49 4E 47 20 4D 4F 44 45  53 29 2C 20 41 4E 44 20  |ING MODES), AND |
000007C0: 41 50 50 4C 59 20 41 20  52 55 4C 45 20 54 4F 20  |APPLY A RULE TO |
000007D0: 43 4F 52 52 45 53 50 4F  4E 44 49 4E 47 20 42 49  |CORRESPONDING BI|
000007E0: 54 53 20 54 4F 20 50 52  4F 44 55 43 45 20 54 48  |TS TO PRODUCE TH|
000007F0: 45 20 42 49 54 53 20 4F  46 20 41 20 52 45 53 55  |E BITS OF A RESU|
00000800: 4C 54 20 42 59 54 45 2C  20 4C 45 46 54 20 49 4E  |LT BYTE, LEFT IN|
00000810: 20 54 48 45 20 20 41 43  43 55 4D 55 4C 41 54 4F  | THE  ACCUMULATO|
00000820: 52 2E 20 74 48 45 53 45  20 52 55 4C 45 53 20 41  |R. tHESE RULES A|
00000830: 52 45 3A 0D 0D 61 4E 44  3A 20 69 46 20 41 20 47  |RE:..aND: iF A G|
00000840: 49 56 45 4E 20 42 49 54  20 49 4E 20 42 59 54 45  |IVEN BIT IN BYTE|
00000850: 20 31 20 61 6E 64 20 54  48 45 20 20 20 20 20 20  | 1 and THE      |
00000860: 20 20 43 4F 52 52 45 53  50 4F 4E 44 49 4E 47 20  |  CORRESPONDING |
00000870: 42 49 54 20 49 4E 20 42  59 54 45 20 32 20 49 53  |BIT IN BYTE 2 IS|
00000880: 20 53 45 54 2C 20 20 20  20 20 54 48 45 20 42 49  | SET,     THE BI|
00000890: 54 20 49 4E 20 54 48 45  20 52 45 53 55 4C 54 20  |T IN THE RESULT |
000008A0: 49 53 20 53 45 54 2E 0D  6F 52 41 3A 20 69 46 20  |IS SET..oRA: iF |
000008B0: 41 20 47 49 56 45 4E 20  42 49 54 20 49 4E 20 42  |A GIVEN BIT IN B|
000008C0: 59 54 45 20 31 20 6F 72  20 54 48 45 20 20 20 20  |YTE 1 or THE    |
000008D0: 20 20 20 20 20 43 4F 52  52 45 53 50 4F 4E 44 49  |     CORRESPONDI|
000008E0: 4E 47 20 42 49 54 20 49  4E 20 42 59 54 45 20 32  |NG BIT IN BYTE 2|
000008F0: 2C 20 6F 72 20 20 20 20  20 20 20 20 20 62 6F 74  |, or         bot|
00000900: 68 2C 20 49 53 20 53 45  54 2C 20 54 48 45 20 42  |h, IS SET, THE B|
00000910: 49 54 20 49 4E 20 54 48  45 20 52 45 53 55 4C 54  |IT IN THE RESULT|
00000920: 20 20 20 20 20 49 53 20  53 45 54 2E 0D 65 4F 52  |     IS SET..eOR|
00000930: 3A 20 69 46 20 41 20 47  49 56 45 4E 20 42 49 54  |: iF A GIVEN BIT|
00000940: 20 49 4E 20 42 59 54 45  20 31 20 6F 72 20 54 48  | IN BYTE 1 or TH|
00000950: 45 20 20 20 20 20 20 20  20 20 43 4F 52 52 45 53  |E         CORRES|
00000960: 50 4F 4E 44 49 4E 47 20  42 49 54 20 49 4E 20 42  |PONDING BIT IN B|
00000970: 59 54 45 20 32 2C 20 62  75 74 20 20 20 20 20 20  |YTE 2, but      |
00000980: 20 20 6E 6F 74 20 62 6F  74 68 2C 20 49 53 20 53  |  not both, IS S|
00000990: 45 54 2C 20 54 48 45 20  42 49 54 20 49 4E 20 54  |ET, THE BIT IN T|
000009A0: 48 45 20 20 20 20 20 20  20 20 52 45 53 55 4C 54  |HE        RESULT|
000009B0: 20 49 53 20 53 45 54 2E  0D 5E 0D 0D 20 20 62 49  | IS SET..^..  bI|
000009C0: 54 2D 4D 41 4E 49 50 55  4C 41 54 49 4F 4E 20 69  |T-MANIPULATION i|
000009D0: 4E 53 54 52 55 43 54 49  4F 4E 53 20 28 63 4F 4E  |NSTRUCTIONS (cON|
000009E0: 54 27 44 29 0D 20 20 68  45 52 45 20 41 52 45 20  |T'D).  hERE ARE |
000009F0: 53 4F 4D 45 20 45 58 41  4D 50 4C 45 53 20 55 53  |SOME EXAMPLES US|
00000A00: 49 4E 47 20 33 20 41 4E  44 20 36 3A 0D 0D 61 4E  |ING 3 AND 6:..aN|
00000A10: 44 3A 20 20 25 30 30 30  30 30 30 31 31 20 28 33  |D:  %00000011 (3|
00000A20: 29 20 20 20 20 20 30 20  61 6E 64 20 30 20 3D 20  |)     0 and 0 = |
00000A30: 30 0D 20 20 20 20 20 20  25 30 30 30 30 30 31 31  |0.      %0000011|
00000A40: 30 20 28 36 29 20 20 20  20 20 30 20 61 6E 64 20  |0 (6)     0 and |
00000A50: 31 20 3D 20 30 0D 20 20  20 20 20 20 2D 2D 2D 2D  |1 = 0.      ----|
00000A60: 2D 2D 2D 2D 2D 20 20 20  20 20 20 20 20 20 31 20  |-----         1 |
00000A70: 61 6E 64 20 30 20 3D 20  30 0D 20 20 20 20 20 20  |and 0 = 0.      |
00000A80: 25 30 30 30 30 30 30 31  30 20 28 32 29 20 20 20  |%00000010 (2)   |
00000A90: 20 20 31 20 61 6E 64 20  31 20 3D 20 31 0D 0D 0D  |  1 and 1 = 1...|
00000AA0: 6F 52 3A 20 20 20 25 30  30 30 30 30 30 31 31 20  |oR:   %00000011 |
00000AB0: 28 33 29 20 20 20 20 20  30 20 6F 72 20 30 20 3D  |(3)     0 or 0 =|
00000AC0: 20 30 0D 20 20 20 20 20  20 25 30 30 30 30 30 31  | 0.      %000001|
00000AD0: 31 30 20 28 36 29 20 20  20 20 20 30 20 6F 72 20  |10 (6)     0 or |
00000AE0: 31 20 3D 20 31 0D 20 20  20 20 20 20 2D 2D 2D 2D  |1 = 1.      ----|
00000AF0: 2D 2D 2D 2D 2D 20 20 20  20 20 20 20 20 20 31 20  |-----         1 |
00000B00: 6F 72 20 30 20 3D 20 31  0D 20 20 20 20 20 20 25  |or 0 = 1.      %|
00000B10: 30 30 30 30 30 31 31 31  20 28 37 29 20 20 20 20  |00000111 (7)    |
00000B20: 20 31 20 6F 72 20 31 20  3D 20 31 0D 0D 0D 65 4F  | 1 or 1 = 1...eO|
00000B30: 52 3A 20 20 25 30 30 30  30 30 30 31 31 20 28 33  |R:  %00000011 (3|
00000B40: 29 20 20 20 20 20 30 20  65 6F 72 20 30 20 3D 20  |)     0 eor 0 = |
00000B50: 30 0D 20 20 20 20 20 20  25 30 30 30 30 30 31 31  |0.      %0000011|
00000B60: 30 20 28 36 29 20 20 20  20 20 30 20 65 6F 72 20  |0 (6)     0 eor |
00000B70: 31 20 3D 20 31 0D 20 20  20 20 20 20 2D 2D 2D 2D  |1 = 1.      ----|
00000B80: 2D 2D 2D 2D 2D 20 20 20  20 20 20 20 20 20 31 20  |-----         1 |
00000B90: 65 6F 72 20 30 20 3D 20  31 0D 20 20 20 20 20 20  |eor 0 = 1.      |
00000BA0: 25 30 30 30 30 30 31 30  31 20 28 35 29 20 20 20  |%00000101 (5)   |
00000BB0: 20 20 31 20 65 6F 72 20  31 20 3D 20 30 0D 5E 0D  |  1 eor 1 = 0.^.|
00000BC0: 0D 20 20 62 49 54 2D 4D  41 4E 49 50 55 4C 41 54  |.  bIT-MANIPULAT|
00000BD0: 49 4F 4E 20 69 4E 53 54  52 55 43 54 49 4F 4E 53  |ION iNSTRUCTIONS|
00000BE0: 20 28 63 4F 4E 54 27 44  29 0D 20 20 61 53 20 41  | (cONT'D).  aS A|
00000BF0: 4E 20 45 58 41 4D 50 4C  45 20 4F 46 20 55 53 49  |N EXAMPLE OF USI|
00000C00: 4E 47 20 54 48 45 53 45  20 20 20 20 20 20 20 20  |NG THESE        |
00000C10: 20 20 49 4E 53 54 52 55  43 54 49 4F 4E 53 2C 20  |  INSTRUCTIONS, |
00000C20: 4E 4F 54 45 20 54 48 41  54 20 4D 45 4D 4F 52 59  |NOTE THAT MEMORY|
00000C30: 20 41 44 44 52 45 53 53  45 53 46 52 4F 4D 20 31  | ADDRESSESFROM 1|
00000C40: 30 32 34 20 54 4F 20 32  30 32 33 20 41 52 45 20  |024 TO 2023 ARE |
00000C50: 57 48 45 52 45 20 54 48  45 20 43 4F 4E 54 45 4E  |WHERE THE CONTEN|
00000C60: 54 53 4F 46 20 54 48 45  20 56 49 44 45 4F 20 53  |TSOF THE VIDEO S|
00000C70: 43 52 45 45 4E 20 41 52  45 20 53 54 4F 52 45 44  |CREEN ARE STORED|
00000C80: 2C 20 41 4E 44 20 54 48  41 54 4E 4F 52 4D 41 4C  |, AND THATNORMAL|
00000C90: 20 43 48 41 52 41 43 54  45 52 53 41 52 45 20 52  | CHARACTERSARE R|
00000CA0: 45 50 52 45 53 45 4E 54  45 44 20 42 59 20 20 20  |EPRESENTED BY   |
00000CB0: 20 20 56 41 4C 55 45 53  20 46 52 4F 4D 20 25 30  |  VALUES FROM %0|
00000CC0: 30 30 30 30 30 30 30 20  54 4F 20 25 30 31 31 31  |0000000 TO %0111|
00000CD0: 31 31 31 31 2C 20 57 49  54 48 54 48 45 49 52 20  |1111, WITHTHEIR |
00000CE0: 52 45 56 45 52 53 45 20  46 49 45 4C 44 20 45 51  |REVERSE FIELD EQ|
00000CF0: 55 49 56 41 4C 45 4E 54  53 20 55 53 49 4E 47 20  |UIVALENTS USING |
00000D00: 20 20 56 41 4C 55 45 53  20 46 52 4F 4D 20 25 31  |  VALUES FROM %1|
00000D10: 30 30 30 30 30 30 30 20  54 4F 20 25 31 31 31 31  |0000000 TO %1111|
00000D20: 31 31 31 31 2E 0D 0D 20  20 74 48 55 53 20 53 57  |1111...  tHUS SW|
00000D30: 49 54 43 48 49 4E 47 20  4F 4E 45 20 42 49 54 20  |ITCHING ONE BIT |
00000D40: 28 42 49 54 20 37 2C 20  49 4E 20 54 48 45 20 31  |(BIT 7, IN THE 1|
00000D50: 32 38 27 53 20 50 4F 53  49 54 49 4F 4E 29 20 4F  |28'S POSITION) O|
00000D60: 4E 20 28 54 4F 20 41 20  31 29 20 57 49 4C 4C 20  |N (TO A 1) WILL |
00000D70: 52 45 56 45 52 53 45 41  20 43 48 41 52 41 43 54  |REVERSEA CHARACT|
00000D80: 45 52 4F 4E 20 54 48 45  20 53 43 52 45 45 4E 2E  |ERON THE SCREEN.|
00000D90: 20 66 4F 52 20 45 58 41  4D 50 4C 45 3A 0D 0D 4C  | fOR EXAMPLE:..L|
00000DA0: 44 41 20 31 30 32 34 0D  4F 52 41 20 23 25 31 30  |DA 1024.ORA #%10|
00000DB0: 30 30 30 30 30 30 0D 53  54 41 20 31 30 32 34 0D  |000000.STA 1024.|
00000DC0: 0D 57 49 4C 4C 20 52 45  56 45 52 53 45 20 54 48  |.WILL REVERSE TH|
00000DD0: 45 20 54 4F 50 20 4C 45  46 54 20 43 48 41 52 41  |E TOP LEFT CHARA|
00000DE0: 43 54 45 52 2E 0D 5E 0D  0D 20 20 62 49 54 2D 4D  |CTER..^..  bIT-M|
00000DF0: 41 4E 49 50 55 4C 41 54  49 4F 4E 20 69 4E 53 54  |ANIPULATION iNST|
00000E00: 52 55 43 54 49 4F 4E 53  20 28 63 4F 4E 54 27 44  |RUCTIONS (cONT'D|
00000E10: 29 0D 20 20 72 45 50 4C  41 43 49 4E 47 20 22 4F  |).  rEPLACING "O|
00000E20: 52 41 20 25 31 30 30 30  30 30 30 30 22 20 57 49  |RA %10000000" WI|
00000E30: 54 48 20 22 41 4E 44 20  20 20 25 30 31 31 31 31  |TH "AND   %01111|
00000E40: 31 31 31 22 20 57 4F 55  4C 44 20 46 4F 52 43 45  |111" WOULD FORCE|
00000E50: 20 42 49 54 20 37 20 54  4F 20 42 45 20 22 30 22  | BIT 7 TO BE "0"|
00000E60: 2C 20 43 41 55 53 49 4E  47 20 54 48 45 20 50 52  |, CAUSING THE PR|
00000E70: 4F 47 52 41 4D 20 54 4F  20 43 48 41 4E 47 45 20  |OGRAM TO CHANGE |
00000E80: 41 4E 20 20 20 20 20 20  20 20 49 4E 56 45 52 54  |AN        INVERT|
00000E90: 45 44 20 43 48 41 52 41  43 54 45 52 20 54 4F 20  |ED CHARACTER TO |
00000EA0: 41 20 4E 4F 52 4D 41 4C  20 4F 4E 45 2E 0D 0D 20  |A NORMAL ONE... |
00000EB0: 20 75 53 49 4E 47 20 22  45 4F 52 20 25 31 30 30  | uSING "EOR %100|
00000EC0: 30 30 30 30 30 22 20 49  4E 53 54 45 41 44 20 4F  |00000" INSTEAD O|
00000ED0: 46 20 22 4F 52 41 20 25  31 30 30 30 30 30 30 30  |F "ORA %10000000|
00000EE0: 22 20 57 4F 55 4C 44 20  46 4C 49 50 20 42 49 54  |" WOULD FLIP BIT|
00000EF0: 20 37 2C 20 49 4E 56 45  52 54 49 4E 47 20 20 41  | 7, INVERTING  A|
00000F00: 20 22 4E 4F 52 4D 41 4C  22 20 43 48 41 52 41 43  | "NORMAL" CHARAC|
00000F10: 54 45 52 20 41 4E 44 20  52 45 4E 44 45 52 49 4E  |TER AND RENDERIN|
00000F20: 47 20 41 4E 20 20 20 49  4E 56 45 52 54 45 44 20  |G AN   INVERTED |
00000F30: 43 48 41 52 41 43 54 45  52 20 4E 4F 52 4D 41 4C  |CHARACTER NORMAL|
00000F40: 2E 0D 0D 20 20 74 48 45  53 45 20 49 4E 53 54 52  |...  tHESE INSTR|
00000F50: 55 43 54 49 4F 4E 53 20  41 52 45 20 55 53 45 44  |UCTIONS ARE USED|
00000F60: 20 41 4E 59 20 54 49 4D  45 20 20 59 4F 55 20 4E  | ANY TIME  YOU N|
00000F70: 45 45 44 20 54 4F 20 53  45 54 2C 20 43 4C 45 41  |EED TO SET, CLEA|
00000F80: 52 2C 20 4F 52 20 46 4C  49 50 20 4F 4E 45 20 4F  |R, OR FLIP ONE O|
00000F90: 52 20 41 47 52 4F 55 50  20 4F 46 20 42 49 54 53  |R AGROUP OF BITS|
00000FA0: 2E 20 74 48 49 53 20 48  41 50 50 45 4E 53 20 41  |. tHIS HAPPENS A|
00000FB0: 20 6C 6F 74 20 57 49 54  48 20 20 54 48 45 20 63  | lot WITH  THE c|
00000FC0: 2D 36 34 27 53 20 53 50  45 43 49 41 4C 20 53 4F  |-64'S SPECIAL SO|
00000FD0: 55 4E 44 20 41 4E 44 20  56 49 44 45 4F 20 20 20  |UND AND VIDEO   |
00000FE0: 20 20 20 43 41 50 41 42  49 4C 49 54 49 45 53 2C  |   CAPABILITIES,|
00000FF0: 20 49 46 20 59 4F 55 20  47 45 54 20 49 4E 54 4F  | IF YOU GET INTO|
00001000: 20 54 48 45 4D 2E 0D 0D  20 20 74 48 45 53 45 20  | THEM...  tHESE |
00001010: 49 4E 53 54 52 55 43 54  49 4F 4E 53 20 43 41 4E  |INSTRUCTIONS CAN|
00001020: 20 55 53 45 20 41 4E 59  20 20 20 20 20 20 20 20  | USE ANY        |
00001030: 41 44 44 52 45 53 53 49  4E 47 20 4D 4F 44 45 53  |ADDRESSING MODES|
00001040: 20 41 56 41 49 4C 41 42  4C 45 20 54 4F 20 4C 44  | AVAILABLE TO LD|
00001050: 41 20 41 4E 44 20 20 20  41 4C 4C 20 54 41 4B 45  |A AND   ALL TAKE|
00001060: 20 54 48 45 20 53 41 4D  45 20 41 4D 4F 55 4E 54  | THE SAME AMOUNT|
00001070: 20 4F 46 20 54 49 4D 45  20 41 53 20 4C 44 41 2E  | OF TIME AS LDA.|
00001080: 5E 0D 0D 20 20 20 20 20  20 20 20 6D 4F 52 45 20  |^..        mORE |
00001090: 42 49 54 2D 4A 55 47 47  4C 49 4E 47 0D 0D 20 20  |BIT-JUGGLING..  |
000010A0: 73 4F 4D 45 20 4F 54 48  45 52 20 49 4E 53 54 52  |sOME OTHER INSTR|
000010B0: 55 43 54 49 4F 4E 53 20  55 53 45 44 20 54 4F 20  |UCTIONS USED TO |
000010C0: 20 20 20 20 20 20 4D 41  4E 49 50 55 4C 41 54 45  |      MANIPULATE|
000010D0: 20 54 48 45 20 42 49 54  53 20 49 4E 20 41 20 42  | THE BITS IN A B|
000010E0: 59 54 45 20 41 52 45 20  41 53 4C 20 20 20 28 61  |YTE ARE ASL   (a|
000010F0: 52 49 54 48 4D 45 54 49  43 20 73 48 49 46 54 20  |RITHMETIC sHIFT |
00001100: 6C 45 46 54 29 2C 20 4C  53 52 20 28 6C 4F 47 49  |lEFT), LSR (lOGI|
00001110: 43 41 4C 20 20 20 73 48  49 46 54 20 72 49 47 48  |CAL   sHIFT rIGH|
00001120: 54 29 2C 20 52 4F 4C 20  28 72 6F 54 41 54 45 20  |T), ROL (roTATE |
00001130: 6C 45 46 54 29 20 41 4E  44 20 52 4F 52 20 28 72  |lEFT) AND ROR (r|
00001140: 6F 54 41 54 45 20 72 49  47 48 54 29 2E 20 74 48  |oTATE rIGHT). tH|
00001150: 45 53 45 20 49 4E 53 54  52 55 43 54 49 4F 4E 53  |ESE INSTRUCTIONS|
00001160: 20 4D 4F 56 45 20 41 4C  4C 20 54 48 45 20 42 49  | MOVE ALL THE BI|
00001170: 54 53 20 49 4E 20 41 20  42 59 54 45 20 4C 45 46  |TS IN A BYTE LEF|
00001180: 54 20 4F 52 20 52 49 47  48 54 2C 20 20 20 4D 55  |T OR RIGHT,   MU|
00001190: 4C 54 49 50 4C 59 49 4E  47 20 4F 52 20 44 49 56  |LTIPLYING OR DIV|
000011A0: 49 44 49 4E 47 20 54 48  45 20 42 59 54 45 27 53  |IDING THE BYTE'S|
000011B0: 20 56 41 4C 55 45 42 59  20 32 2E 0D 0D 20 20 61  | VALUEBY 2...  a|
000011C0: 4C 4C 20 54 48 45 53 45  20 49 4E 53 54 52 55 43  |LL THESE INSTRUC|
000011D0: 54 49 4F 4E 53 20 53 45  54 20 54 48 45 20 7A 20  |TIONS SET THE z |
000011E0: 41 4E 44 20 6E 46 4C 41  47 53 20 41 43 43 4F 52  |AND nFLAGS ACCOR|
000011F0: 44 49 4E 47 20 54 4F 20  54 48 45 20 56 41 4C 55  |DING TO THE VALU|
00001200: 45 20 4C 45 46 54 20 49  4E 20 54 48 45 42 59 54  |E LEFT IN THEBYT|
00001210: 45 2C 20 41 4E 44 20 54  48 45 20 42 49 54 20 53  |E, AND THE BIT S|
00001220: 48 49 46 54 45 44 20 4F  46 46 20 54 48 45 20 45  |HIFTED OFF THE E|
00001230: 4E 44 20 4F 46 54 48 45  20 42 59 54 45 20 49 53  |ND OFTHE BYTE IS|
00001240: 20 50 4C 41 43 45 44 20  49 4E 20 54 48 45 20 63  | PLACED IN THE c|
00001250: 20 46 4C 61 47 2E 0D 0D  20 20 61 53 4C 20 41 4E  | FLaG...  aSL AN|
00001260: 44 20 4C 53 52 20 41 4C  57 41 59 53 20 53 48 49  |D LSR ALWAYS SHI|
00001270: 46 54 20 41 20 30 20 49  4E 54 4F 20 54 48 45 20  |FT A 0 INTO THE |
00001280: 41 50 50 4C 49 43 41 42  4C 45 20 45 4E 44 20 4F  |APPLICABLE END O|
00001290: 46 20 54 48 45 20 42 59  54 45 2C 20 57 48 49 4C  |F THE BYTE, WHIL|
000012A0: 45 20 52 4F 4C 20 20 20  41 4E 44 20 52 4F 52 20  |E ROL   AND ROR |
000012B0: 55 53 45 20 54 48 45 20  56 41 4C 55 45 20 4F 46  |USE THE VALUE OF|
000012C0: 20 54 48 45 20 63 41 52  52 59 20 46 4C 41 47 20  | THE cARRY FLAG |
000012D0: 42 45 46 4F 52 45 20 54  48 45 20 4F 50 45 52 41  |BEFORE THE OPERA|
000012E0: 54 49 4F 4E 2E 0D 5E 0D  0D 20 20 20 20 6D 4F 52  |TION..^..    mOR|
000012F0: 45 20 62 49 54 2D 6A 55  47 47 4C 49 4E 47 20 28  |E bIT-jUGGLING (|
00001300: 63 4F 4E 54 49 4E 55 45  44 29 0D 0D 74 48 55 53  |cONTINUED)..tHUS|
00001310: 2C 20 54 4F 20 4D 55 4C  54 49 50 4C 59 20 41 20  |, TO MULTIPLY A |
00001320: 54 57 4F 2D 42 59 54 45  20 4E 55 4D 42 45 52 20  |TWO-BYTE NUMBER |
00001330: 42 59 20 20 32 2C 20 55  53 45 20 54 48 45 20 43  |BY  2, USE THE C|
00001340: 41 52 52 59 20 42 49 54  20 54 4F 20 48 4F 4C 44  |ARRY BIT TO HOLD|
00001350: 20 54 48 45 20 42 49 54  20 20 20 20 54 48 41 54  | THE BIT    THAT|
00001360: 20 4A 55 4D 50 53 20 54  48 45 20 42 4F 52 44 45  | JUMPS THE BORDE|
00001370: 52 20 42 45 54 57 45 45  4E 20 42 59 54 45 53 3A  |R BETWEEN BYTES:|
00001380: 0D 0D 4C 53 52 20 5B 4C  4F 57 20 42 59 54 45 20  |..LSR [LOW BYTE |
00001390: 4F 46 20 4E 55 4D 42 45  52 5D 0D 52 4F 4C 20 5B  |OF NUMBER].ROL [|
000013A0: 48 49 47 48 20 42 59 54  45 20 4F 46 20 4E 55 4D  |HIGH BYTE OF NUM|
000013B0: 42 45 52 5D 0D 0D 20 20  61 44 44 49 4E 47 20 4D  |BER]..  aDDING M|
000013C0: 4F 52 45 20 52 4F 4C 27  53 20 41 4C 4C 4F 57 53  |ORE ROL'S ALLOWS|
000013D0: 20 59 4F 55 20 54 4F 20  55 53 45 20 20 20 41 4E  | YOU TO USE   AN|
000013E0: 59 20 4E 55 4D 42 45 52  20 4F 46 20 42 59 54 45  |Y NUMBER OF BYTE|
000013F0: 53 20 49 4E 20 59 4F 55  52 20 4E 55 4D 42 45 52  |S IN YOUR NUMBER|
00001400: 2E 0D 0D 20 20 74 48 45  53 45 20 49 4E 53 54 52  |...  tHESE INSTR|
00001410: 55 43 54 49 4F 4E 53 20  43 41 4E 20 55 53 45 20  |UCTIONS CAN USE |
00001420: 54 48 45 20 5A 45 52 4F  20 20 20 50 41 47 45 3B  |THE ZERO   PAGE;|
00001430: 20 5A 45 52 4F 20 50 41  47 45 2C 58 3B 20 41 42  | ZERO PAGE,X; AB|
00001440: 53 4F 4C 55 54 45 20 41  4E 44 20 20 20 20 20 20  |SOLUTE AND      |
00001450: 20 20 20 41 42 53 4F 4C  55 54 45 2C 58 20 41 44  |   ABSOLUTE,X AD|
00001460: 44 52 45 53 53 49 4E 47  20 4D 4F 44 45 53 2C 20  |DRESSING MODES, |
00001470: 41 4E 44 20 4F 4E 45 20  20 20 20 46 4F 55 4E 44  |AND ONE    FOUND|
00001480: 20 4E 4F 57 48 45 52 45  20 45 4C 53 45 3A 20 41  | NOWHERE ELSE: A|
00001490: 43 43 55 4D 55 4C 41 54  4F 52 2E 0D 0D 20 20 69  |CCUMULATOR...  i|
000014A0: 4E 20 54 48 45 20 41 43  43 55 4D 55 4C 41 54 4F  |N THE ACCUMULATO|
000014B0: 52 20 41 44 44 52 45 53  53 49 4E 47 20 4D 4F 44  |R ADDRESSING MOD|
000014C0: 45 2C 20 20 20 54 48 45  20 41 43 43 55 4D 55 4C  |E,   THE ACCUMUL|
000014D0: 41 54 4F 52 20 49 53 20  53 48 49 46 54 45 44 20  |ATOR IS SHIFTED |
000014E0: 49 4E 53 54 45 41 44 20  4F 46 20 41 20 53 50 45  |INSTEAD OF A SPE|
000014F0: 43 49 46 49 45 44 20 4D  45 4D 4F 52 59 20 4C 4F  |CIFIED MEMORY LO|
00001500: 43 41 54 49 4F 4E 2E 0D  5E 0D 0D 20 20 20 20 6D  |CATION..^..    m|
00001510: 4F 52 45 20 62 49 54 2D  6A 55 47 47 4C 49 4E 47  |ORE bIT-jUGGLING|
00001520: 20 28 63 4F 4E 54 49 4E  55 45 44 29 0D 0D 20 20  | (cONTINUED)..  |
00001530: 73 4F 4D 45 20 41 53 53  45 4D 42 4C 45 52 53 20  |sOME ASSEMBLERS |
00001540: 55 53 45 20 54 48 45 20  46 4F 52 4D 41 54 20 22  |USE THE FORMAT "|
00001550: 41 53 4C 22 2C 20 57 49  54 48 4F 55 54 20 41 4E  |ASL", WITHOUT AN|
00001560: 59 20 46 4F 4C 4C 4F 57  49 4E 47 20 41 44 44 52  |Y FOLLOWING ADDR|
00001570: 45 53 53 20 54 4F 20 20  20 20 20 20 20 20 49 4E  |ESS TO        IN|
00001580: 44 49 43 41 54 45 20 54  48 41 54 20 54 48 45 20  |DICATE THAT THE |
00001590: 41 43 43 55 4D 55 4C 41  54 4F 52 20 4D 4F 44 45  |ACCUMULATOR MODE|
000015A0: 20 20 20 20 20 20 49 53  20 54 4F 20 42 45 20 55  |      IS TO BE U|
000015B0: 53 45 44 20 42 59 20 54  48 45 20 41 53 4C 20 49  |SED BY THE ASL I|
000015C0: 4E 53 54 52 55 43 54 49  4F 4E 2E 20 20 20 73 4F  |NSTRUCTION.   sO|
000015D0: 4D 45 20 4F 54 48 45 52  20 41 53 53 45 4D 42 4C  |ME OTHER ASSEMBL|
000015E0: 45 52 53 20 52 45 51 55  49 52 45 20 22 41 53 4C  |ERS REQUIRE "ASL|
000015F0: 20 41 22 2C 20 20 53 50  45 43 49 46 59 49 4E 47  | A",  SPECIFYING|
00001600: 20 54 48 45 20 41 43 43  55 4D 55 4C 41 54 4F 52  | THE ACCUMULATOR|
00001610: 2E 20 73 49 4D 49 4C 41  52 4C 59 0D 46 4F 52 20  |. sIMILARLY.FOR |
00001620: 4C 53 52 2C 20 52 4F 4C  20 41 4E 44 20 52 4F 52  |LSR, ROL AND ROR|
00001630: 2E 0D 0D 20 20 61 53 20  41 4E 20 41 53 49 44 45  |...  aS AN ASIDE|
00001640: 2C 20 4F 54 48 45 52 20  49 4E 53 54 52 55 43 54  |, OTHER INSTRUCT|
00001650: 49 4F 4E 53 20 53 55 43  48 20 20 41 53 20 54 58  |IONS SUCH  AS TX|
00001660: 41 2C 20 50 48 50 2C 20  45 54 43 2E 2C 20 57 48  |A, PHP, ETC., WH|
00001670: 49 43 48 20 22 44 4F 4E  27 54 20 52 45 41 4C 4C  |ICH "DON'T REALL|
00001680: 59 20 20 48 41 56 45 22  20 41 44 44 52 45 53 53  |Y  HAVE" ADDRESS|
00001690: 49 4E 47 20 4D 4F 44 45  53 20 41 52 45 20 53 41  |ING MODES ARE SA|
000016A0: 49 44 20 54 4F 20 55 53  45 20 20 54 48 45 20 22  |ID TO USE  THE "|
000016B0: 49 4D 50 4C 49 45 44 22  20 41 44 44 52 45 53 53  |IMPLIED" ADDRESS|
000016C0: 49 4E 47 20 4D 4F 44 45  20 49 4E 20 4F 52 44 45  |ING MODE IN ORDE|
000016D0: 52 20 20 54 4F 20 47 49  56 45 20 41 4C 4C 20 49  |R  TO GIVE ALL I|
000016E0: 4E 53 54 52 55 43 54 49  4F 4E 53 20 41 44 44 52  |NSTRUCTIONS ADDR|
000016F0: 45 53 53 49 4E 47 20 20  20 20 20 4D 4F 44 45 53  |ESSING     MODES|
00001700: 2E 20 74 48 45 20 44 49  53 54 49 4E 43 54 49 4F  |. tHE DISTINCTIO|
00001710: 4E 20 46 52 4F 4D 20 41  43 43 55 4D 55 4C 41 54  |N FROM ACCUMULAT|
00001720: 4F 52 20 4D 4F 44 45 20  49 53 20 54 48 41 54 20  |OR MODE IS THAT |
00001730: 41 53 4C 20 41 4E 44 20  43 4F 2E 20 43 41 4E 20  |ASL AND CO. CAN |
00001740: 53 50 45 43 49 46 59 20  20 20 20 53 45 56 45 52  |SPECIFY    SEVER|
00001750: 41 4C 20 4D 4F 44 45 53  2C 49 4E 43 4C 55 44 49  |AL MODES,INCLUDI|
00001760: 4E 47 20 41 43 43 55 4D  55 4C 41 54 4F 52 2E 0D  |NG ACCUMULATOR..|
00001770: 5E 0D 0D 20 20 20 20 6D  4F 52 45 20 62 49 54 2D  |^..    mORE bIT-|
00001780: 6A 55 47 47 4C 49 4E 47  20 28 63 4F 4E 54 49 4E  |jUGGLING (cONTIN|
00001790: 55 45 44 29 0D 0D 20 20  74 48 45 53 45 20 49 4E  |UED)..  tHESE IN|
000017A0: 53 54 52 55 43 54 49 4F  4E 53 20 41 52 45 20 55  |STRUCTIONS ARE U|
000017B0: 53 55 41 4C 4C 59 20 55  53 45 44 20 54 4F 4D 55  |SUALLY USED TOMU|
000017C0: 4C 54 49 50 4C 59 20 4E  55 4D 42 45 52 53 20 54  |LTIPLY NUMBERS T|
000017D0: 4F 47 45 54 48 45 52 2E  20 74 4F 20 4D 55 4C 54  |OGETHER. tO MULT|
000017E0: 49 50 4C 59 20 20 42 59  20 54 48 52 45 45 2C 20  |IPLY  BY THREE, |
000017F0: 46 4F 52 20 45 58 41 4D  50 4C 45 2C 20 54 41 4B  |FOR EXAMPLE, TAK|
00001800: 45 20 54 48 45 20 4E 55  4D 42 45 52 20 20 54 4F  |E THE NUMBER  TO|
00001810: 20 42 45 20 4D 55 4C 54  49 50 4C 49 45 44 2C 20  | BE MULTIPLIED, |
00001820: 41 53 4C 20 49 54 2C 20  53 54 4F 52 49 4E 47 20  |ASL IT, STORING |
00001830: 54 48 45 20 20 20 52 45  53 55 4C 54 20 4F 46 20  |THE   RESULT OF |
00001840: 54 48 45 20 53 48 49 46  54 20 54 45 4D 50 4F 52  |THE SHIFT TEMPOR|
00001850: 41 52 49 4C 59 2C 20 41  4E 44 20 41 44 44 54 48  |ARILY, AND ADDTH|
00001860: 45 20 55 4E 44 49 53 54  55 52 42 45 44 20 4F 52  |E UNDISTURBED OR|
00001870: 49 47 49 4E 41 4C 20 4E  55 4D 42 45 52 20 54 4F  |IGINAL NUMBER TO|
00001880: 20 49 54 2E 20 20 5B 6E  55 4D 42 45 52 5D 2B 5B  | IT.  [nUMBER]+[|
00001890: 32 58 6E 55 4D 42 45 52  5D 3D 5B 33 58 6E 55 4D  |2XnUMBER]=[3XnUM|
000018A0: 42 45 52 5D 2E 20 61 4E  59 20 20 20 20 20 4E 55  |BER]. aNY     NU|
000018B0: 4D 42 45 52 20 43 41 4E  20 42 45 20 55 53 45 44  |MBER CAN BE USED|
000018C0: 20 49 4E 20 53 55 43 48  20 41 20 50 52 4F 43 45  | IN SUCH A PROCE|
000018D0: 44 55 52 45 2E 20 74 4F  20 4D 55 4C 54 49 50 4C  |DURE. tO MULTIPL|
000018E0: 59 20 42 59 20 36 2C 20  53 48 49 46 54 20 54 48  |Y BY 6, SHIFT TH|
000018F0: 45 20 52 45 53 55 4C 54  20 4F 56 45 52 20 41 47  |E RESULT OVER AG|
00001900: 41 49 4E 2E 0D 0D 20 20  61 20 47 45 4E 45 52 41  |AIN...  a GENERA|
00001910: 4C 20 50 52 4F 43 45 44  55 52 45 20 54 4F 20 4D  |L PROCEDURE TO M|
00001920: 55 4C 54 49 50 4C 59 20  41 4E 59 20 20 20 54 57  |ULTIPLY ANY   TW|
00001930: 4F 20 56 41 4C 55 45 53  20 54 4F 47 45 54 48 45  |O VALUES TOGETHE|
00001940: 52 20 49 53 20 41 20 53  4F 4D 45 57 48 41 54 20  |R IS A SOMEWHAT |
00001950: 4D 4F 52 45 20 20 43 4F  4D 50 4C 45 58 2C 20 42  |MORE  COMPLEX, B|
00001960: 55 54 20 55 53 45 53 20  54 48 45 20 53 41 4D 45  |UT USES THE SAME|
00001970: 20 49 44 45 41 53 2E 20  6F 4E 20 54 48 45 4E 45  | IDEAS. oN THENE|
00001980: 58 54 20 53 43 52 45 45  4E 20 49 53 20 41 20 50  |XT SCREEN IS A P|
00001990: 52 4F 47 52 41 4D 20 57  48 49 43 48 20 57 49 4C  |ROGRAM WHICH WIL|
000019A0: 4C 20 44 4F 20 20 54 48  49 53 2E 20 69 54 20 57  |L DO  THIS. iT W|
000019B0: 4F 52 4B 53 20 52 41 54  48 45 52 20 4C 49 4B 45  |ORKS RATHER LIKE|
000019C0: 20 54 48 45 20 4C 4F 4E  47 20 20 20 20 20 4D 55  | THE LONG     MU|
000019D0: 4C 54 49 50 4C 49 43 41  54 49 4F 4E 20 59 4F 55  |LTIPLICATION YOU|
000019E0: 20 4C 45 41 52 4E 45 44  20 49 4E 20 53 43 48 4F  | LEARNED IN SCHO|
000019F0: 4F 4C 2C 20 20 20 54 41  4B 49 4E 47 20 54 57 4F  |OL,   TAKING TWO|
00001A00: 20 31 2D 42 59 54 45 20  4E 55 4D 42 45 52 53 20  | 1-BYTE NUMBERS |
00001A10: 54 4F 20 50 52 4F 44 55  43 45 20 41 20 20 32 2D  |TO PRODUCE A  2-|
00001A20: 42 59 54 45 20 52 45 53  55 4C 54 2E 20 77 48 59  |BYTE RESULT. wHY|
00001A30: 3F 20 32 35 35 2A 32 35  35 3D 36 35 30 32 35 2E  |? 255*255=65025.|
00001A40: 0D 5E 0D 0D 20 20 20 20  20 4E 55 4D 31 3D 24 46  |.^..     NUM1=$F|
00001A50: 42 20 20 20 20 3B 4F 52  20 41 4E 59 50 4C 41 43  |B    ;OR ANYPLAC|
00001A60: 45 20 48 41 4E 44 59 0D  20 20 20 20 20 4E 55 4D  |E HANDY.     NUM|
00001A70: 32 3D 24 46 43 0D 20 20  20 20 20 50 52 4F 44 55  |2=$FC.     PRODU|
00001A80: 43 54 3D 24 46 44 20 3B  24 46 45 20 57 49 4C 4C  |CT=$FD ;$FE WILL|
00001A90: 20 42 45 20 55 53 45 44  20 41 4C 53 4F 0D 20 20  | BE USED ALSO.  |
00001AA0: 20 20 20 4C 44 41 20 23  24 30 30 20 20 20 20 3B  |   LDA #$00    ;|
00001AB0: 43 4C 45 41 52 20 52 45  53 55 4C 54 20 41 52 45  |CLEAR RESULT ARE|
00001AC0: 41 0D 20 20 20 20 20 53  54 41 20 50 52 4F 44 55  |A.     STA PRODU|
00001AD0: 43 54 0D 20 20 20 20 20  53 54 41 20 50 52 4F 44  |CT.     STA PROD|
00001AE0: 55 43 54 2B 31 0D 20 20  20 20 20 4C 44 58 20 23  |UCT+1.     LDX #|
00001AF0: 24 30 38 20 20 20 20 3B  43 4F 55 4E 54 20 23 20  |$08    ;COUNT # |
00001B00: 4F 46 20 42 49 54 53 0D  3B 0D 4C 4F 4F 50 20 41  |OF BITS.;.LOOP A|
00001B10: 53 4C 20 4E 55 4D 32 20  3B 49 53 4F 4C 41 54 45  |SL NUM2 ;ISOLATE|
00001B20: 20 52 49 47 48 54 2D 48  41 4E 44 20 42 49 54 0D  | RIGHT-HAND BIT.|
00001B30: 20 20 20 20 20 42 43 43  20 5A 45 52 4F 20 3B 49  |     BCC ZERO ;I|
00001B40: 46 20 5A 45 52 4F 2C 20  44 4F 4E 27 54 20 41 44  |F ZERO, DON'T AD|
00001B50: 44 20 4E 55 4D 31 0D 20  20 20 20 20 43 4C 43 20  |D NUM1.     CLC |
00001B60: 20 20 20 20 20 3B 50 52  45 50 41 52 45 20 46 4F  |     ;PREPARE FO|
00001B70: 52 20 41 44 44 49 54 49  4F 4E 0D 20 20 20 20 20  |R ADDITION.     |
00001B80: 4C 44 41 20 4E 55 4D 31  20 3B 41 44 44 20 4E 55  |LDA NUM1 ;ADD NU|
00001B90: 4D 31 20 54 4F 20 50 52  4F 44 55 43 54 0D 20 20  |M1 TO PRODUCT.  |
00001BA0: 20 20 20 41 44 43 20 50  52 4F 44 55 43 54 0D 20  |   ADC PRODUCT. |
00001BB0: 20 20 20 20 53 54 41 20  50 52 4F 44 55 43 54 0D  |    STA PRODUCT.|
00001BC0: 20 20 20 20 20 42 43 43  20 5A 45 52 4F 20 20 20  |     BCC ZERO   |
00001BD0: 20 20 20 3B 54 41 4B 45  20 43 41 52 45 20 4F 46  |   ;TAKE CARE OF|
00001BE0: 20 43 41 52 52 59 0D 20  20 20 20 20 49 4E 43 20  | CARRY.     INC |
00001BF0: 50 52 4F 44 55 43 54 2B  31 20 3B 49 46 20 54 57  |PRODUCT+1 ;IF TW|
00001C00: 4F 20 42 59 54 45 53 20  4E 45 45 44 45 44 0D 5A  |O BYTES NEEDED.Z|
00001C10: 45 52 4F 20 44 45 58 20  20 20 20 20 20 20 20 20  |ERO DEX         |
00001C20: 20 20 3B 44 4F 20 49 54  20 38 20 54 49 4D 45 53  |  ;DO IT 8 TIMES|
00001C30: 0D 20 20 20 20 20 42 4E  45 20 5B 4F 55 54 5D 20  |.     BNE [OUT] |
00001C40: 20 20 20 20 3B 49 46 20  46 49 4E 49 53 48 45 44  |    ;IF FINISHED|
00001C50: 2C 20 4C 45 41 56 45 0D  20 20 20 20 20 41 53 4C  |, LEAVE.     ASL|
00001C60: 20 50 52 4F 44 55 43 54  20 20 20 3B 50 52 4F 44  | PRODUCT   ;PROD|
00001C70: 55 43 54 3D 50 52 4F 44  55 43 54 2A 32 0D 20 20  |UCT=PRODUCT*2.  |
00001C80: 20 20 20 52 4F 4C 20 50  52 4F 44 55 43 54 2B 31  |   ROL PRODUCT+1|
00001C90: 0D 20 20 20 20 20 4A 4D  50 20 4C 4F 4F 50 0D 5E  |.     JMP LOOP.^|
00001CA0: 0D 0D 20 20 20 20 6D 4F  52 45 20 62 49 54 2D 6A  |..    mORE bIT-j|
00001CB0: 55 47 47 4C 49 4E 47 20  28 63 4F 4E 54 49 4E 55  |UGGLING (cONTINU|
00001CC0: 45 44 29 0D 0D 20 20 75  53 49 4E 47 20 54 48 45  |ED)..  uSING THE|
00001CD0: 20 45 51 55 49 56 41 4C  45 4E 54 20 53 54 45 50  | EQUIVALENT STEP|
00001CE0: 53 20 49 4E 20 44 45 43  49 4D 41 4C 20 41 53 20  |S IN DECIMAL AS |
00001CF0: 45 58 41 4D 50 4C 45 53  2C 20 4D 55 4C 54 49 50  |EXAMPLES, MULTIP|
00001D00: 4C 49 43 41 54 49 4F 4E  20 42 59 20 41 20 53 49  |LICATION BY A SI|
00001D10: 4E 47 4C 45 20 20 20 20  20 20 20 20 20 20 20 20  |NGLE            |
00001D20: 44 49 47 49 54 20 49 53  20 56 45 52 59 20 45 41  |DIGIT IS VERY EA|
00001D30: 53 59 20 57 48 45 4E 20  49 54 53 20 20 66 20 20  |SY WHEN ITS  f  |
00001D40: 20 20 20 20 37 31 36 20  4F 4E 4C 59 20 50 4F 53  |    716 ONLY POS|
00001D50: 53 49 42 4C 45 20 56 41  4C 55 45 53 20 41 52 45  |SIBLE VALUES ARE|
00001D60: 20 30 20 20 20 49 20 20  20 20 20 58 33 34 32 20  | 0   I     X342 |
00001D70: 41 4E 44 20 31 2E 20 61  4C 53 4F 2C 20 49 4E 53  |AND 1. aLSO, INS|
00001D80: 54 45 41 44 20 4F 46 20  20 20 20 20 20 47 20 20  |TEAD OF      G  |
00001D90: 2D 2D 2D 2D 2D 2D 2D 20  57 41 49 54 49 4E 47 20  |------- WAITING |
00001DA0: 55 4E 54 49 4C 20 54 48  45 20 45 4E 44 20 54 4F  |UNTIL THE END TO|
00001DB0: 20 41 44 44 2C 55 20 20  20 20 20 31 34 33 32 20  | ADD,U     1432 |
00001DC0: 54 48 45 20 42 49 4E 41  52 59 20 4D 45 54 48 4F  |THE BINARY METHO|
00001DD0: 44 20 46 49 4E 44 53 20  20 20 20 20 20 52 20 20  |D FINDS      R  |
00001DE0: 20 20 32 38 36 34 20 20  33 58 37 31 36 2C 20 42  |  2864  3X716, B|
00001DF0: 55 4D 50 53 20 54 48 45  20 52 45 53 55 4C 54 20  |UMPS THE RESULT |
00001E00: 4F 56 45 52 20 45 20 20  2B 32 31 34 32 20 20 20  |OVER E  +2142   |
00001E10: 4F 4E 45 20 43 4F 4C 55  4D 4E 2C 20 41 44 44 53  |ONE COLUMN, ADDS|
00001E20: 20 34 58 37 31 36 2C 20  42 55 4D 50 53 20 20 20  | 4X716, BUMPS   |
00001E30: 2D 2D 2D 2D 2D 2D 2D 20  54 48 45 20 52 45 53 55  |------- THE RESU|
00001E40: 4C 54 20 4F 56 45 52 20  4F 4E 45 20 43 4F 4C 55  |LT OVER ONE COLU|
00001E50: 4D 4E 2C 20 20 31 20 20  20 32 34 34 32 37 32 20  |MN,  1   244272 |
00001E60: 41 44 44 53 20 34 58 37  31 36 2C 20 42 55 4D 50  |ADDS 4X716, BUMP|
00001E70: 53 20 54 48 41 54 20 4F  56 45 52 2C 20 20 20 20  |S THAT OVER,    |
00001E80: 20 20 20 20 20 20 20 20  54 48 45 4E 20 41 44 44  |        THEN ADD|
00001E90: 53 20 32 58 37 31 36 20  41 4E 44 20 51 55 49 54  |S 2X716 AND QUIT|
00001EA0: 53 2E 20 20 20 74 48 49  53 20 42 41 43 4B 57 41  |S.   tHIS BACKWA|
00001EB0: 52 44 53 20 53 59 53 54  45 4D 20 53 41 56 45 53  |RDS SYSTEM SAVES|
00001EC0: 20 54 49 4D 45 20 41 4E  44 20 20 20 20 4D 45 4D  | TIME AND    MEM|
00001ED0: 4F 52 59 2E 20 61 4E 4F  54 48 45 52 20 54 52 49  |ORY. aNOTHER TRI|
00001EE0: 43 4B 20 55 53 45 44 20  49 53 20 54 48 45 20 22  |CK USED IS THE "|
00001EF0: 42 43 43 20 20 5A 45 52  4F 20 20 20 49 4E 43 20  |BCC  ZERO   INC |
00001F00: 50 52 4F 44 55 43 54 2B  31 22 20 20 50 41 52 54  |PRODUCT+1"  PART|
00001F10: 20 4F 46 20 54 48 45 20  20 20 20 20 20 50 52 4F  | OF THE      PRO|
00001F20: 47 52 41 4D 2C 20 57 48  49 43 48 20 53 41 56 45  |GRAM, WHICH SAVE|
00001F30: 53 20 41 4E 20 41 44 44  49 54 49 4F 4E 2E 20 69  |S AN ADDITION. i|
00001F40: 46 20 59 4F 55 43 41 4E  20 55 4E 44 45 52 53 54  |F YOUCAN UNDERST|
00001F50: 41 4E 44 20 54 48 49 53  20 4D 55 4C 54 49 50 4C  |AND THIS MULTIPL|
00001F60: 49 43 41 54 49 4F 4E 2C  20 59 4F 55 20 43 41 4E  |ICATION, YOU CAN|
00001F70: 20 43 41 4C 4C 20 59 4F  55 52 53 45 4C 46 20 4C  | CALL YOURSELF L|
00001F80: 49 54 45 52 41 54 45 20  49 4E 20 6D 6C 2E 20 6A  |ITERATE IN ml. j|
00001F90: 4F 4C 4C 59 20 47 4F 4F  44 20 53 48 4F 57 2C 20  |OLLY GOOD SHOW, |
00001FA0: 4D 41 54 45 21 20 6F 4E  20 54 4F 20 4C 49 54 45  |MATE! oN TO LITE|
00001FB0: 52 41 54 55 52 45 2E 2E  2E 2E 0D 5E 0D 0D 20 20  |RATURE.....^..  |
00001FC0: 20 20 20 20 20 20 20 20  20 74 48 45 20 73 54 41  |         tHE sTA|
00001FD0: 43 4B 0D 0D 20 20 77 48  45 4E 20 54 48 45 20 36  |CK..  wHEN THE 6|
00001FE0: 35 31 30 20 45 58 45 43  55 54 45 53 20 41 20 4A  |510 EXECUTES A J|
00001FF0: 53 52 20 43 4F 4D 4D 41  4E 44 2C 20 49 54 20 48  |SR COMMAND, IT H|
00002000: 41 53 20 54 4F 20 52 45  4D 45 4D 42 45 52 20 57  |AS TO REMEMBER W|
00002010: 48 45 52 45 20 49 54 27  53 20 4A 53 52 2D 49 4E  |HERE IT'S JSR-IN|
00002020: 47 20 20 20 46 52 4F 4D  2C 20 53 4F 20 49 54 20  |G   FROM, SO IT |
00002030: 43 41 4E 20 47 4F 20 42  41 43 4B 20 54 48 45 52  |CAN GO BACK THER|
00002040: 45 20 57 48 45 4E 20 49  54 20 20 20 48 49 54 53  |E WHEN IT   HITS|
00002050: 20 54 48 45 20 4E 45 58  54 20 52 54 53 2E 20 62  | THE NEXT RTS. b|
00002060: 55 54 20 49 54 20 41 4C  53 4F 20 4C 45 54 53 20  |UT IT ALSO LETS |
00002070: 59 4F 55 20 48 41 56 45  20 41 20 53 45 43 4F 4E  |YOU HAVE A SECON|
00002080: 44 2C 20 4F 52 20 41 20  54 48 49 52 44 2C 4F 52  |D, OR A THIRD,OR|
00002090: 20 41 4E 59 20 4E 55 4D  42 45 52 20 4F 46 20 4A  | ANY NUMBER OF J|
000020A0: 53 52 27 53 20 57 49 54  48 49 4E 20 45 41 43 48  |SR'S WITHIN EACH|
000020B0: 20 4F 54 48 45 52 20 42  45 46 4F 52 45 20 54 48  | OTHER BEFORE TH|
000020C0: 45 20 20 20 46 49 52 53  54 20 52 54 53 2E 20 69  |E   FIRST RTS. i|
000020D0: 54 20 4D 41 4E 41 47 45  53 20 54 48 49 53 20 42  |T MANAGES THIS B|
000020E0: 59 20 4C 45 41 56 49 4E  47 20 20 20 45 41 43 48  |Y LEAVING   EACH|
000020F0: 20 41 44 44 52 45 53 53  20 4A 53 52 2D 45 44 20  | ADDRESS JSR-ED |
00002100: 46 52 4F 4D 20 4F 4E 20  54 4F 50 20 4F 46 20 41  |FROM ON TOP OF A|
00002110: 20 20 20 20 53 54 41 43  4B 20 49 54 20 4B 45 45  |    STACK IT KEE|
00002120: 50 53 20 49 4E 20 50 41  47 45 20 31 20 4F 46 20  |PS IN PAGE 1 OF |
00002130: 4D 45 4D 4F 52 59 20 28  46 52 4F 4D 24 30 31 30  |MEMORY (FROM$010|
00002140: 30 20 54 4F 20 24 30 31  46 46 29 2E 20 77 48 45  |0 TO $01FF). wHE|
00002150: 4E 20 49 54 20 43 4F 4D  45 53 20 54 4F 20 41 20  |N IT COMES TO A |
00002160: 52 54 53 2C 49 54 20 50  55 4C 4C 53 20 54 48 45  |RTS,IT PULLS THE|
00002170: 20 41 44 44 52 45 53 53  20 54 4F 20 52 45 54 55  | ADDRESS TO RETU|
00002180: 52 4E 20 54 4F 20 4F 46  46 20 20 20 54 48 45 20  |RN TO OFF   THE |
00002190: 54 4F 50 20 4F 46 20 54  48 45 20 53 54 41 43 4B  |TOP OF THE STACK|
000021A0: 2C 20 4C 45 41 56 49 4E  47 20 54 48 45 20 4E 45  |, LEAVING THE NE|
000021B0: 58 54 20 20 41 44 44 52  45 53 53 20 44 4F 57 4E  |XT  ADDRESS DOWN|
000021C0: 20 46 4F 52 20 54 48 45  20 4E 45 58 54 20 52 54  | FOR THE NEXT RT|
000021D0: 53 2E 0D 0D 20 20 74 48  45 20 53 54 41 43 4B 20  |S...  tHE STACK |
000021E0: 53 54 41 52 54 53 20 41  54 20 24 30 31 46 46 20  |STARTS AT $01FF |
000021F0: 41 4E 44 20 47 52 4F 57  53 20 20 20 44 4F 57 4E  |AND GROWS   DOWN|
00002200: 57 41 52 44 53 20 54 4F  57 41 52 44 53 20 24 30  |WARDS TOWARDS $0|
00002210: 31 30 30 2E 20 73 49 4E  43 45 20 4F 4E 45 20 20  |100. sINCE ONE  |
00002220: 20 20 20 20 41 44 44 52  45 53 53 20 49 53 20 54  |    ADDRESS IS T|
00002230: 57 4F 20 42 59 54 45 53  20 4C 4F 4E 47 2C 20 4F  |WO BYTES LONG, O|
00002240: 4E 4C 59 20 31 32 38 20  20 20 20 20 41 44 44 52  |NLY 128     ADDR|
00002250: 45 53 53 45 53 20 43 41  4E 20 42 45 20 4B 45 50  |ESSES CAN BE KEP|
00002260: 54 20 4F 4E 20 54 48 45  20 53 54 41 43 4B 2E 0D  |T ON THE STACK..|
00002270: 5E 0D 0D 20 20 20 20 20  20 20 74 48 45 20 73 54  |^..       tHE sT|
00002280: 41 43 4B 20 28 63 4F 4E  54 49 4E 55 45 44 29 0D  |ACK (cONTINUED).|
00002290: 0D 20 20 69 46 20 59 4F  55 20 54 52 59 20 54 4F  |.  iF YOU TRY TO|
000022A0: 20 50 55 54 20 4D 4F 52  45 20 4F 4E 20 54 48 45  | PUT MORE ON THE|
000022B0: 20 53 54 41 43 4B 2C 20  20 49 54 20 22 57 52 41  | STACK,  IT "WRA|
000022C0: 50 53 20 41 52 4F 55 4E  44 22 20 41 4E 44 20 53  |PS AROUND" AND S|
000022D0: 54 41 52 54 53 20 4F 56  45 52 20 41 54 20 20 20  |TARTS OVER AT   |
000022E0: 20 24 30 31 46 46 2C 20  44 45 53 54 52 4F 59 49  | $01FF, DESTROYI|
000022F0: 4E 47 20 54 48 45 20 46  49 52 53 54 20 46 45 57  |NG THE FIRST FEW|
00002300: 20 42 49 54 53 20 4F 46  20 49 4E 46 4F 52 4D 41  | BITS OF INFORMA|
00002310: 54 49 4F 4E 20 54 48 45  52 45 2E 20 6E 4F 52 4D  |TION THERE. nORM|
00002320: 41 4C 4C 59 2C 20 54 48  49 53 20 49 53 20 4E 4F  |ALLY, THIS IS NO|
00002330: 54 41 20 50 52 4F 42 4C  45 4D 2E 20 74 48 45 20  |TA PROBLEM. tHE |
00002340: 53 54 41 43 4B 20 49 53  20 42 49 47 20 45 4E 4F  |STACK IS BIG ENO|
00002350: 55 47 48 2E 0D 0D 20 20  74 48 45 20 36 35 31 30  |UGH...  tHE 6510|
00002360: 20 4B 45 45 50 53 20 54  52 41 43 4B 20 4F 46 20  | KEEPS TRACK OF |
00002370: 54 48 45 20 54 4F 50 20  4F 46 20 54 48 45 53 54  |THE TOP OF THEST|
00002380: 41 43 4B 20 57 49 54 48  20 54 48 45 20 53 50 20  |ACK WITH THE SP |
00002390: 52 45 47 49 53 54 45 52  2C 20 54 48 45 20 53 54  |REGISTER, THE ST|
000023A0: 41 43 4B 20 20 20 50 4F  49 4E 54 45 52 2E 20 77  |ACK   POINTER. w|
000023B0: 48 45 4E 20 49 54 20 50  55 54 53 20 53 4F 4D 45  |HEN IT PUTS SOME|
000023C0: 54 48 49 4E 47 20 4F 4E  20 4F 52 20 20 20 54 41  |THING ON OR   TA|
000023D0: 4B 45 53 20 53 4F 4D 45  54 48 49 4E 47 20 4F 46  |KES SOMETHING OF|
000023E0: 46 20 54 48 45 20 53 54  41 43 4B 2C 20 49 54 20  |F THE STACK, IT |
000023F0: 20 20 20 20 20 20 41 44  4A 55 53 54 53 20 54 48  |      ADJUSTS TH|
00002400: 45 20 53 54 41 43 4B 20  50 4F 49 4E 54 45 52 20  |E STACK POINTER |
00002410: 53 4F 20 49 54 20 41 4C  57 41 59 53 20 20 50 4F  |SO IT ALWAYS  PO|
00002420: 49 4E 54 53 20 54 4F 20  54 48 45 20 41 44 44 52  |INTS TO THE ADDR|
00002430: 45 53 53 20 4F 46 20 54  48 45 20 54 4F 50 20 49  |ESS OF THE TOP I|
00002440: 54 45 4D 20 20 20 4F 4E  20 54 48 45 20 53 54 41  |TEM   ON THE STA|
00002450: 43 4B 2E 20 69 46 20 59  4F 55 20 4E 45 45 44 20  |CK. iF YOU NEED |
00002460: 54 4F 20 4B 4E 4F 57 20  57 48 41 54 27 53 49 4E  |TO KNOW WHAT'SIN|
00002470: 20 54 48 45 20 53 54 41  43 4B 20 50 4F 49 4E 54  | THE STACK POINT|
00002480: 45 52 20 28 46 45 57 20  50 45 4F 50 4C 45 20 44  |ER (FEW PEOPLE D|
00002490: 4F 29 2C 20 20 20 54 58  53 20 41 4E 44 20 54 53  |O),   TXS AND TS|
000024A0: 58 20 54 52 41 4E 53 46  45 52 20 54 48 45 20 78  |X TRANSFER THE x|
000024B0: 20 52 45 47 49 53 54 45  52 20 54 4F 20 20 54 48  | REGISTER TO  TH|
000024C0: 45 20 53 54 41 43 4B 20  50 4F 49 4E 54 45 52 20  |E STACK POINTER |
000024D0: 41 4E 44 20 56 49 43 45  20 56 45 52 53 41 2E 20  |AND VICE VERSA. |
000024E0: 74 48 45 20 20 20 24 30  31 20 41 54 20 54 48 45  |tHE   $01 AT THE|
000024F0: 20 53 54 41 52 54 20 4F  46 20 54 48 45 20 41 44  | START OF THE AD|
00002500: 44 52 45 53 53 20 49 53  20 4E 4F 54 20 20 54 52  |DRESS IS NOT  TR|
00002510: 41 4E 53 46 45 52 52 45  44 2C 20 42 55 54 20 53  |ANSFERRED, BUT S|
00002520: 49 4D 50 4C 59 20 41 53  53 55 4D 45 44 2E 0D 5E  |IMPLY ASSUMED..^|
00002530: 0D 0D 20 20 20 20 20 20  20 74 48 45 20 73 54 41  |..       tHE sTA|
00002540: 43 4B 20 28 63 4F 4E 54  49 4E 55 45 44 29 0D 0D  |CK (cONTINUED)..|
00002550: 20 20 6D 4F 52 45 20 55  53 45 46 55 4C 20 53 54  |  mORE USEFUL ST|
00002560: 41 43 4B 20 49 4E 53 54  52 55 43 54 49 4F 4E 53  |ACK INSTRUCTIONS|
00002570: 20 41 52 45 20 50 48 41  28 22 70 55 53 68 20 61  | ARE PHA("pUSh a|
00002580: 43 43 55 4D 55 4C 41 54  4F 52 20 4F 4E 54 4F 20  |CCUMULATOR ONTO |
00002590: 53 54 41 43 4B 22 29 20  41 4E 44 20 50 4C 41 20  |STACK") AND PLA |
000025A0: 28 22 70 55 6C 4C 20 61  43 43 55 4D 55 4C 41 54  |("pUlL aCCUMULAT|
000025B0: 4F 52 20 4F 46 46 20 53  54 41 43 4B 22 29 2C 20  |OR OFF STACK"), |
000025C0: 57 48 49 43 48 20 20 20  41 4C 4C 4F 57 20 54 48  |WHICH   ALLOW TH|
000025D0: 45 20 41 43 43 55 4D 55  4C 41 54 4F 52 20 54 4F  |E ACCUMULATOR TO|
000025E0: 20 42 45 20 47 4F 54 54  45 4E 20 4F 55 54 20 20  | BE GOTTEN OUT  |
000025F0: 4F 46 20 54 48 45 20 57  41 59 20 54 45 4D 50 4F  |OF THE WAY TEMPO|
00002600: 52 41 52 49 4C 59 20 57  49 54 48 4F 55 54 20 48  |RARILY WITHOUT H|
00002610: 41 56 49 4E 47 20 54 4F  53 50 45 43 49 41 4C 4C  |AVING TOSPECIALL|
00002620: 59 20 52 45 53 45 52 56  45 20 41 20 50 4C 41 43  |Y RESERVE A PLAC|
00002630: 45 20 49 4E 20 4D 45 4D  4F 52 59 20 46 4F 52 20  |E IN MEMORY FOR |
00002640: 49 54 2E 20 73 4F 4D 45  54 49 4D 45 53 20 59 4F  |IT. sOMETIMES YO|
00002650: 55 20 57 49 4C 4C 20 53  45 45 20 22 50 48 41 20  |U WILL SEE "PHA |
00002660: 20 54 58 41 20 20 20 20  50 48 41 20 20 54 59 41  | TXA    PHA  TYA|
00002670: 20 20 50 48 41 22 20 55  53 45 44 20 54 4F 20 53  |  PHA" USED TO S|
00002680: 54 4F 52 45 20 41 4C 4C  20 54 48 45 20 20 20 20  |TORE ALL THE    |
00002690: 36 35 31 30 27 53 20 52  45 47 49 53 54 45 52 53  |6510'S REGISTERS|
000026A0: 20 4F 55 54 20 4F 46 20  48 41 52 4D 27 53 20 57  | OUT OF HARM'S W|
000026B0: 41 59 2E 0D 0D 20 20 6E  4F 54 45 20 54 48 41 54  |AY...  nOTE THAT|
000026C0: 20 54 48 49 53 20 43 41  4E 20 4F 4E 4C 59 20 42  | THIS CAN ONLY B|
000026D0: 45 20 55 53 45 44 20 20  20 20 20 20 20 54 45 4D  |E USED       TEM|
000026E0: 50 4F 52 41 52 49 4C 59  2C 20 42 45 43 41 55 53  |PORARILY, BECAUS|
000026F0: 45 20 49 46 20 41 4E 20  52 54 53 20 49 53 20 20  |E IF AN RTS IS  |
00002700: 20 20 20 20 20 45 58 45  43 55 54 45 44 20 42 45  |     EXECUTED BE|
00002710: 46 4F 52 45 20 54 48 45  20 56 41 4C 55 45 20 49  |FORE THE VALUE I|
00002720: 53 20 52 45 4D 4F 56 45  44 20 20 20 20 41 47 41  |S REMOVED    AGA|
00002730: 49 4E 20 28 42 59 20 50  4C 41 29 2C 20 54 48 45  |IN (BY PLA), THE|
00002740: 4E 20 54 48 45 20 36 35  31 30 20 57 49 4C 4C 20  |N THE 6510 WILL |
00002750: 54 41 4B 45 20 54 48 45  20 41 43 43 55 4D 55 4C  |TAKE THE ACCUMUL|
00002760: 41 54 4F 52 27 53 20 53  54 4F 52 45 44 20 56 41  |ATOR'S STORED VA|
00002770: 4C 55 45 20 41 4E 44 20  54 48 45 20 20 57 52 4F  |LUE AND THE  WRO|
00002780: 4E 47 20 48 41 4C 46 20  4F 46 20 54 48 45 20 41  |NG HALF OF THE A|
00002790: 44 44 52 45 53 53 20 42  45 4C 4F 57 20 49 54 20  |DDRESS BELOW IT |
000027A0: 41 53 20 41 4E 41 44 44  52 45 53 53 2C 20 41 4E  |AS ANADDRESS, AN|
000027B0: 44 20 52 54 53 20 54 4F  20 4E 45 56 45 52 2D 4E  |D RTS TO NEVER-N|
000027C0: 45 56 45 52 20 4C 41 4E  44 2E 20 62 45 43 41 52  |EVER LAND. bECAR|
000027D0: 45 46 55 4C 21 0D 5E 0D  0D 20 20 20 20 20 20 20  |EFUL!.^..       |
000027E0: 74 48 45 20 73 54 41 43  4B 20 28 63 4F 4E 54 49  |tHE sTACK (cONTI|
000027F0: 4E 55 45 44 29 0D 0D 20  79 4F 55 20 43 41 4E 2C  |NUED).. yOU CAN,|
00002800: 20 48 4F 57 45 56 45 52  2C 20 4C 45 41 56 45 20  | HOWEVER, LEAVE |
00002810: 41 20 4E 55 4D 42 45 52  20 4F 4E 20 54 48 45 53  |A NUMBER ON THES|
00002820: 54 41 43 4B 2C 20 44 4F  20 41 20 4A 53 52 2C 20  |TACK, DO A JSR, |
00002830: 41 4E 44 20 52 45 54 52  49 45 56 45 20 49 54 20  |AND RETRIEVE IT |
00002840: 41 46 54 45 52 20 20 54  48 45 20 52 54 53 2E 20  |AFTER  THE RTS. |
00002850: 74 48 49 53 20 49 53 20  56 45 52 59 20 55 53 45  |tHIS IS VERY USE|
00002860: 46 55 4C 20 49 46 20 59  4F 55 20 57 41 4E 54 41  |FUL IF YOU WANTA|
00002870: 20 53 55 42 52 4F 55 54  49 4E 45 20 54 4F 20 43  | SUBROUTINE TO C|
00002880: 41 4C 4C 20 49 54 53 45  4C 46 20 42 55 54 20 54  |ALL ITSELF BUT T|
00002890: 4F 20 4B 45 45 50 20 53  4F 4D 45 20 56 41 4C 55  |O KEEP SOME VALU|
000028A0: 45 20 46 4F 52 20 55 53  45 20 41 46 54 45 52 20  |E FOR USE AFTER |
000028B0: 54 48 45 20 45 4E 44 20  4F 46 20 54 48 45 20 53  |THE END OF THE S|
000028C0: 55 42 52 4F 55 54 49 4E  45 2E 20 61 44 56 41 4E  |UBROUTINE. aDVAN|
000028D0: 43 45 44 2C 20 42 55 54  20 55 53 45 46 55 4C 2E  |CED, BUT USEFUL.|
000028E0: 0D 0D 20 20 74 48 45 20  52 45 4D 41 49 4E 49 4E  |..  tHE REMAININ|
000028F0: 47 20 54 57 4F 20 49 4E  53 54 52 55 43 54 49 4F  |G TWO INSTRUCTIO|
00002900: 4E 53 20 57 48 49 43 48  20 20 41 46 46 45 43 54  |NS WHICH  AFFECT|
00002910: 20 54 48 45 20 53 54 41  43 4B 20 41 52 45 20 50  | THE STACK ARE P|
00002920: 48 50 20 28 70 55 53 68  20 70 20 20 20 20 20 20  |HP (pUSh p      |
00002930: 20 20 52 45 47 49 53 54  45 52 29 20 41 4E 44 20  |  REGISTER) AND |
00002940: 50 4C 50 20 28 70 55 6C  4C 20 70 20 52 45 47 49  |PLP (pUlL p REGI|
00002950: 53 54 45 52 29 2C 20 20  20 20 57 48 49 43 48 20  |STER),    WHICH |
00002960: 41 4C 4C 4F 57 20 59 4F  55 20 54 4F 20 4B 45 45  |ALLOW YOU TO KEE|
00002970: 50 20 41 4C 4C 20 54 48  45 20 46 4C 41 47 53 20  |P ALL THE FLAGS |
00002980: 20 20 53 41 46 45 20 4F  4E 20 54 48 45 20 53 54  |  SAFE ON THE ST|
00002990: 41 43 4B 20 46 4F 52 20  41 20 57 48 49 4C 45 2E  |ACK FOR A WHILE.|
000029A0: 20 70 48 50 20 50 4C 41  20 20 49 53 20 41 4C 53  | pHP PLA  IS ALS|
000029B0: 4F 20 54 48 45 20 4F 4E  4C 59 20 57 41 59 20 54  |O THE ONLY WAY T|
000029C0: 4F 20 4C 4F 4F 4B 20 41  54 20 53 4F 4D 45 20 20  |O LOOK AT SOME  |
000029D0: 20 20 46 4C 41 47 53 2C  4E 4F 54 41 42 4C 59 20  |  FLAGS,NOTABLY |
000029E0: 54 48 45 20 31 20 46 4C  41 47 20 41 4E 44 20 54  |THE 1 FLAG AND T|
000029F0: 48 45 20 62 20 46 4C 41  47 2E 0D 20 20 6C 49 4B  |HE b FLAG..  lIK|
00002A00: 45 20 50 48 41 2C 20 41  20 50 48 50 20 4D 55 53  |E PHA, A PHP MUS|
00002A10: 54 20 42 45 20 42 41 4C  41 4E 43 45 44 20 42 59  |T BE BALANCED BY|
00002A20: 20 41 20 50 4C 50 20 42  45 46 4F 52 45 20 41 4E  | A PLP BEFORE AN|
00002A30: 20 52 54 53 20 41 54 54  45 4D 50 54 53 20 54 4F  | RTS ATTEMPTS TO|
00002A40: 20 55 53 45 20 54 48 45  20 20 20 53 54 4F 52 45  | USE THE   STORE|
00002A50: 44 20 50 20 52 45 47 49  53 54 45 52 20 41 53 20  |D P REGISTER AS |
00002A60: 50 41 52 54 20 4F 46 20  41 4E 20 41 44 44 52 45  |PART OF AN ADDRE|
00002A70: 53 53 2E 5E 0D 0D 20 20  20 20 20 20 20 74 48 45  |SS.^..       tHE|
00002A80: 20 73 54 41 43 4B 20 28  63 4F 4E 54 49 4E 55 45  | sTACK (cONTINUE|
00002A90: 44 29 0D 0D 20 20 74 48  49 53 20 43 41 4E 20 42  |D)..  tHIS CAN B|
00002AA0: 45 20 55 53 45 44 20 54  4F 20 59 4F 55 52 20 41  |E USED TO YOUR A|
00002AB0: 44 56 41 4E 54 41 47 45  20 49 46 20 59 4F 55 20  |DVANTAGE IF YOU |
00002AC0: 57 41 4E 54 20 54 4F 2C  20 52 54 53 20 54 4F 2C  |WANT TO, RTS TO,|
00002AD0: 20 53 41 59 2C 20 54 48  45 20 4A 53 52 20 54 57  | SAY, THE JSR TW|
00002AE0: 4F 20 20 20 53 54 45 50  53 20 42 41 43 4B 2C 20  |O   STEPS BACK, |
00002AF0: 49 4E 53 54 45 41 44 20  4F 46 20 54 48 45 20 20  |INSTEAD OF THE  |
00002B00: 55 53 55 41 4C 20 4F 4E  45 2E 20 20 22 70 4C 41  |USUAL ONE.  "pLA|
00002B10: 20 20 50 4C 41 22 20 57  49 4C 4C 20 52 45 4D 4F  |  PLA" WILL REMO|
00002B20: 56 45 20 54 48 45 20 4D  4F 53 54 20 52 45 43 45  |VE THE MOST RECE|
00002B30: 4E 54 20 20 41 44 44 52  45 53 53 20 46 52 4F 4D  |NT  ADDRESS FROM|
00002B40: 20 54 48 45 20 53 54 41  43 4B 2C 20 4C 45 41 56  | THE STACK, LEAV|
00002B50: 49 4E 47 20 54 48 45 20  4E 45 58 54 4F 4E 45 20  |ING THE NEXTONE |
00002B60: 44 4F 57 4E 20 4F 4E 20  54 4F 50 2E 0D 0D 20 20  |DOWN ON TOP...  |
00002B70: 79 4F 55 20 43 41 4E 20  41 4C 53 4F 20 46 4F 4F  |yOU CAN ALSO FOO|
00002B80: 4C 20 52 54 53 20 49 4E  54 4F 20 52 45 54 55 52  |L RTS INTO RETUR|
00002B90: 4E 49 4E 47 20 20 54 4F  20 41 20 44 49 46 46 45  |NING  TO A DIFFE|
00002BA0: 52 45 4E 54 20 41 44 44  52 45 53 53 20 46 52 4F  |RENT ADDRESS FRO|
00002BB0: 4D 20 54 48 45 20 4F 4E  45 20 4A 53 52 2D 45 44  |M THE ONE JSR-ED|
00002BC0: 20 46 52 4F 4D 2E 20 70  48 41 20 54 48 45 20 41  | FROM. pHA THE A|
00002BD0: 44 44 52 45 53 53 20 4F  4E 54 4F 20 54 48 45 20  |DDRESS ONTO THE |
00002BE0: 53 54 41 43 4B 20 41 4E  44 20 4A 4D 50 20 54 4F  |STACK AND JMP TO|
00002BF0: 20 54 48 45 20 53 55 42  52 4F 55 54 49 4E 45 2E  | THE SUBROUTINE.|
00002C00: 20 61 43 54 55 41 4C 4C  59 20 59 4F 55 20 53 48  | aCTUALLY YOU SH|
00002C10: 4F 55 4C 44 20 50 48 41  20 54 48 45 20 41 44 44  |OULD PHA THE ADD|
00002C20: 52 45 53 53 2D 31 20 28  4D 49 4E 55 53 20 4F 4E  |RESS-1 (MINUS ON|
00002C30: 45 29 20 20 20 20 4F 4E  54 4F 20 54 48 45 20 53  |E)    ONTO THE S|
00002C40: 54 41 43 4B 2C 20 48 49  47 48 20 42 59 54 45 20  |TACK, HIGH BYTE |
00002C50: 28 54 48 45 20 24 41 42  20 49 4E 20 20 20 24 41  |(THE $AB IN   $A|
00002C60: 42 43 44 29 20 46 49 52  53 54 2E 0D 0D 20 20 74  |BCD) FIRST...  t|
00002C70: 48 49 53 20 49 53 20 47  45 54 54 49 4E 47 20 50  |HIS IS GETTING P|
00002C80: 52 45 54 54 59 20 41 42  54 52 55 53 45 2C 20 41  |RETTY ABTRUSE, A|
00002C90: 4E 44 20 20 20 49 54 20  57 49 4C 4C 20 50 52 4F  |ND   IT WILL PRO|
00002CA0: 42 41 42 4C 59 20 42 45  20 41 20 57 48 49 4C 45  |BABLY BE A WHILE|
00002CB0: 20 42 45 46 4F 52 45 20  59 4F 55 20 20 53 54 41  | BEFORE YOU  STA|
00002CC0: 52 54 20 50 4C 41 59 49  4E 47 20 57 49 54 48 20  |RT PLAYING WITH |
00002CD0: 54 48 45 20 53 54 41 43  4B 2E 20 62 55 54 20 49  |THE STACK. bUT I|
00002CE0: 54 20 49 53 20 57 4F 52  54 48 20 4B 4E 4F 57 49  |T IS WORTH KNOWI|
00002CF0: 4E 47 20 57 48 41 54 20  54 48 45 20 53 54 41 43  |NG WHAT THE STAC|
00002D00: 4B 20 43 41 4E 20 44 4F  2E 0D 5E 0D 20 20 20 20  |K CAN DO..^.    |
00002D10: 20 20 20 20 75 53 49 4E  47 20 62 41 53 49 43 20  |    uSING bASIC |
00002D20: 46 52 4F 4D 20 6D 6C 0D  0D 20 20 61 53 20 59 4F  |FROM ml..  aS YO|
00002D30: 55 20 4B 4E 4F 57 2C 20  62 41 53 49 43 20 49 53  |U KNOW, bASIC IS|
00002D40: 20 41 4E 20 6D 6C 20 50  52 4F 47 52 41 4D 2E 20  | AN ml PROGRAM. |
00002D50: 20 73 4F 4D 45 20 42 49  54 53 20 4F 46 20 49 54  | sOME BITS OF IT|
00002D60: 20 44 4F 20 55 53 45 46  55 4C 20 54 48 49 4E 47  | DO USEFUL THING|
00002D70: 53 20 53 55 43 48 20 41  53 43 4C 45 41 52 49 4E  |S SUCH ASCLEARIN|
00002D80: 47 20 54 48 45 20 53 43  52 45 45 4E 2C 20 50 52  |G THE SCREEN, PR|
00002D90: 49 4E 54 49 4E 47 20 43  48 41 52 41 43 54 45 52  |INTING CHARACTER|
00002DA0: 53 54 4F 20 54 48 45 20  53 43 52 45 45 4E 20 28  |STO THE SCREEN (|
00002DB0: 45 41 53 59 2C 20 45 48  3F 20 54 52 59 20 22 44  |EASY, EH? TRY "D|
00002DC0: 45 4C 45 54 45 22 2E 29  20 41 4E 44 20 43 4F 4D  |ELETE".) AND COM|
00002DD0: 4D 55 4E 49 43 41 54 49  4E 47 20 57 49 54 48 20  |MUNICATING WITH |
00002DE0: 54 48 45 20 44 49 53 4B  20 44 52 49 56 45 2E 0D  |THE DISK DRIVE..|
00002DF0: 0D 20 20 6F 4E 20 54 48  45 20 4E 45 58 54 20 50  |.  oN THE NEXT P|
00002E00: 41 47 45 20 41 52 45 20  4A 55 53 54 20 41 20 46  |AGE ARE JUST A F|
00002E10: 45 57 20 4F 46 20 54 48  45 45 41 53 49 45 52 20  |EW OF THEEASIER |
00002E20: 52 4F 55 54 49 4E 45 53  20 54 4F 20 55 53 45 2E  |ROUTINES TO USE.|
00002E30: 20 74 48 45 52 45 20 41  52 45 20 4F 56 45 52 20  | tHERE ARE OVER |
00002E40: 20 31 30 30 20 41 56 41  49 4C 41 42 4C 45 2C 20  | 100 AVAILABLE, |
00002E50: 41 4E 44 20 54 48 45 20  55 53 45 20 4F 46 20 41  |AND THE USE OF A|
00002E60: 20 47 4F 4F 44 0D 52 45  46 45 52 45 4E 43 45 20  | GOOD.REFERENCE |
00002E70: 42 4F 4F 4B 20 49 53 20  52 45 43 4F 4D 4D 45 4E  |BOOK IS RECOMMEN|
00002E80: 44 45 44 2E 0D 5E 0D 0D  63 68 72 6F 75 74 20 24  |DED..^..chrout $|
00002E90: 46 46 44 32 20 20 74 48  49 53 20 52 4F 55 54 49  |FFD2  tHIS ROUTI|
00002EA0: 4E 45 20 50 52 49 4E 54  53 20 54 48 45 20 20 20  |NE PRINTS THE   |
00002EB0: 20 20 43 48 41 52 41 43  54 45 52 20 49 4E 20 54  |  CHARACTER IN T|
00002EC0: 48 45 20 41 43 43 55 4D  55 4C 41 54 4F 52 2E 0D  |HE ACCUMULATOR..|
00002ED0: 63 68 72 69 6E 20 20 24  46 46 43 46 20 72 45 54  |chrin  $FFCF rET|
00002EE0: 55 52 4E 53 20 41 20 43  48 41 52 41 43 54 45 52  |URNS A CHARACTER|
00002EF0: 20 46 52 4F 4D 20 20 20  20 20 54 48 45 20 49 4E  | FROM     THE IN|
00002F00: 50 55 54 20 42 55 46 46  45 52 20 49 4E 20 54 48  |PUT BUFFER IN TH|
00002F10: 45 20 41 43 43 55 4D 55  4C 41 54 4F 52 2E 20 20  |E ACCUMULATOR.  |
00002F20: 20 20 69 46 20 54 48 45  20 42 55 46 46 45 52 27  |  iF THE BUFFER'|
00002F30: 53 20 45 4D 50 54 59 2C  20 46 49 4C 4C 53 20 49  |S EMPTY, FILLS I|
00002F40: 54 20 42 59 20 20 20 20  20 20 41 43 43 45 50 54  |T BY      ACCEPT|
00002F50: 49 4E 47 20 41 20 4C 49  4E 45 20 55 4E 54 49 4C  |ING A LINE UNTIL|
00002F60: 20 41 20 72 65 74 75 72  6E 2E 0D 67 65 74 69 6E  | A return..getin|
00002F70: 20 20 24 46 46 45 34 20  6C 49 4B 45 20 62 41 53  |  $FFE4 lIKE bAS|
00002F80: 49 43 20 67 65 74 2E 20  72 45 54 55 52 4E 53 20  |IC get. rETURNS |
00002F90: 20 20 20 20 20 44 41 54  41 20 49 4E 20 54 48 45  |     DATA IN THE|
00002FA0: 20 41 43 43 55 4D 55 4C  41 54 4F 52 2C 20 4F 52  | ACCUMULATOR, OR|
00002FB0: 20 30 20 49 46 20 4E 4F  20 20 20 20 20 4B 45 59  | 0 IF NO     KEY|
00002FC0: 20 48 41 53 20 42 45 45  4E 20 50 52 45 53 53 45  | HAS BEEN PRESSE|
00002FD0: 44 2E 0D 20 20 20 20 20  20 20 24 42 44 43 44 20  |D..       $BDCD |
00002FE0: 70 52 49 4E 54 53 20 28  49 4E 20 44 45 43 49 4D  |pRINTS (IN DECIM|
00002FF0: 41 4C 29 20 54 48 45 20  32 2D 20 20 20 42 59 54  |AL) THE 2-   BYT|
00003000: 45 20 4E 55 4D 42 45 52  20 49 4E 20 54 48 45 20  |E NUMBER IN THE |
00003010: 41 43 43 55 4D 55 4C 41  54 4F 52 20 41 4E 44 20  |ACCUMULATOR AND |
00003020: 58 20 20 20 20 52 45 47  49 53 54 45 52 20 28 4C  |X    REGISTER (L|
00003030: 4F 57 20 48 41 4C 46 20  49 4E 20 58 29 2E 0D 70  |OW HALF IN X)..p|
00003040: 6C 6F 74 20 20 20 24 46  46 46 30 20 63 55 52 53  |lot   $FFF0 cURS|
00003050: 4F 52 20 43 4F 4C 55 4D  4E 20 49 4E 20 58 20 41  |OR COLUMN IN X A|
00003060: 4E 44 20 20 20 20 20 20  20 43 55 52 53 4F 52 20  |ND       CURSOR |
00003070: 52 4F 57 20 49 4E 20 59  2E 20 69 46 20 63 20 49  |ROW IN Y. iF c I|
00003080: 53 20 53 45 54 2C 20 52  45 54 55 52 4E 53 20 20  |S SET, RETURNS  |
00003090: 20 54 48 45 20 43 55 52  52 45 4E 54 20 56 41 4C  | THE CURRENT VAL|
000030A0: 55 45 53 2E 20 69 46 20  63 3D 30 2C 20 53 45 54  |UES. iF c=0, SET|
000030B0: 53 20 54 48 45 20 20 20  20 43 55 52 53 4F 52 20  |S THE    CURSOR |
000030C0: 54 4F 20 54 48 45 20 53  50 45 43 49 46 49 45 44  |TO THE SPECIFIED|
000030D0: 20 50 4F 53 49 54 49 4F  4E 2E 0D 20 20 20 20 20  | POSITION..     |
000030E0: 20 20 24 41 34 37 34 20  74 48 49 53 20 48 41 53  |  $A474 tHIS HAS|
000030F0: 20 54 48 45 20 53 41 4D  45 20 45 46 46 45 43 54  | THE SAME EFFECT|
00003100: 20 41 53 20 20 20 48 49  54 54 49 4E 47 20 73 74  | AS   HITTING st|
00003110: 6F 70 2F 72 65 73 74 6F  72 65 2E 0D 20 20 20 20  |op/restore..    |
00003120: 20 20 20 24 46 43 45 32  20 74 48 49 53 20 49 53  |   $FCE2 tHIS IS|
00003130: 20 54 48 45 20 53 41 4D  45 20 41 53 20 54 55 52  | THE SAME AS TUR|
00003140: 4E 49 4E 47 20 20 20 54  48 45 20 43 4F 4D 50 55  |NING   THE COMPU|
00003150: 54 45 52 20 4F 46 46 20  41 4E 44 20 4F 4E 20 41  |TER OFF AND ON A|
00003160: 47 41 49 4E 0D 5E 0D 0D  0D 0D 20 20 20 20 20 20  |GAIN.^....      |
00003170: 20 20 20 20 74 48 41 54  27 53 20 61 4C 4C 20 66  |    tHAT'S aLL f|
00003180: 4F 4C 4B 53 0D 0D 20 20  69 46 20 59 4F 55 27 56  |OLKS..  iF YOU'V|
00003190: 45 20 4D 41 44 45 20 49  54 20 54 48 49 53 20 46  |E MADE IT THIS F|
000031A0: 41 52 20 54 48 52 4F 55  47 48 0D 54 48 45 20 4A  |AR THROUGH.THE J|
000031B0: 55 4E 47 4C 45 2C 20 59  4F 55 27 52 45 20 50 41  |UNGLE, YOU'RE PA|
000031C0: 53 54 20 54 48 45 20 48  41 52 44 20 50 41 52 54  |ST THE HARD PART|
000031D0: 2E 0D 69 54 27 53 20 4A  55 53 54 20 44 45 54 41  |..iT'S JUST DETA|
000031E0: 49 4C 53 20 54 48 41 54  20 41 52 45 20 4C 45 46  |ILS THAT ARE LEF|
000031F0: 54 20 54 4F 0D 57 4F 52  52 59 20 41 42 4F 55 54  |T TO.WORRY ABOUT|
00003200: 2E 20 67 45 54 20 41 20  47 4F 4F 44 20 52 45 46  |. gET A GOOD REF|
00003210: 45 52 45 4E 43 45 20 42  4F 4F 4B 0D 41 4E 44 20  |ERENCE BOOK.AND |
00003220: 54 52 59 20 54 48 49 4E  47 53 20 4F 55 54 21 20  |TRY THINGS OUT! |
00003230: 20 79 4F 55 20 41 52 45  20 41 54 20 54 48 45 0D  | yOU ARE AT THE.|
00003240: 53 54 41 47 45 20 4F 46  20 6D 6C 20 45 51 55 49  |STAGE OF ml EQUI|
00003250: 56 41 4C 45 4E 54 20 54  4F 20 59 4F 55 52 20 46  |VALENT TO YOUR F|
00003260: 49 52 53 54 0D 45 46 46  4F 52 54 53 20 49 4E 20  |IRST.EFFORTS IN |
00003270: 62 41 53 49 43 2E 20 79  4F 55 20 4B 4E 4F 57 20  |bASIC. yOU KNOW |
00003280: 54 48 45 20 46 41 43 54  53 2C 0D 41 4E 44 20 50  |THE FACTS,.AND P|
00003290: 52 41 43 54 49 53 45 20  57 49 4C 4C 20 45 4E 41  |RACTISE WILL ENA|
000032A0: 42 4C 45 20 59 4F 55 20  54 4F 20 44 4F 0D 53 4F  |BLE YOU TO DO.SO|
000032B0: 4D 45 54 48 49 4E 47 20  57 49 54 48 20 57 48 41  |METHING WITH WHA|
000032C0: 54 20 59 4F 55 20 4B 4E  4F 57 2E 0D 0D 20 20 72  |T YOU KNOW...  r|
000032D0: 45 4D 45 4D 42 45 52 3A  20 54 48 45 52 45 27 53  |EMEMBER: THERE'S|
000032E0: 20 34 6B 20 4F 46 20 4D  45 4D 4F 52 59 20 46 52  | 4k OF MEMORY FR|
000032F0: 4F 4D 20 20 20 24 43 30  30 30 20 4F 4E 20 4A 55  |OM   $C000 ON JU|
00003300: 53 54 20 57 41 49 54 49  4E 47 20 54 4F 20 42 45  |ST WAITING TO BE|
00003310: 20 46 49 4C 4C 45 44 20  57 49 54 48 20 6D 6C 20  | FILLED WITH ml |
00003320: 4F 46 20 59 4F 55 52 20  44 45 56 49 53 49 4E 47  |OF YOUR DEVISING|
00003330: 2E 0D 5E 5E 5E 5E 5E 5E  5E 5E 5E 5E 5E 5E 5E 5E  |..^^^^^^^^^^^^^^|
00003340: 5E 5E                                             |^^              |
.L^..  AN INTRODUCTION TO MACHINE LANGUA
GE..  THIS IS THE THIRD IN A SERIES OF  
    TUTORIALS ON MACHINE LANGUAGE. THE F
IRSTTWO COVERED THE CONCEPT OF AN ASSEMB
LER AND MANY OF THE ASSEMBLY-LANGUAGE 65
10  INSTRUCTIONS, APPLICABLE TO ANY COMP
UTERWHICH USES THE 6510 OR 6502 CPU.    
    KNOWLEDGE OF BINARY AND HEX IS ASSUM
ED...  THIS INSTALMENT WILL COVER SOME O
THER,LESS COMMON INSTRUCTIONS, SOME TECH
NICALDETAILS, AND HOW TO USE BASIC FUNCT
IONS (LIKE PRINT,INPUT) FROM ML...  ANYT
HING IN [SQUARE BRACKETS] IS THE  NAME O
F A PIECE OF INFORMATION (A NUMBEROR BIT
 OF PROGRAM) WHICH HAS BEEN LEFT  OUT FO
R THE SAKE OF CLARITY AND BREVITY.SOMETH
ING MUST TAKE ITS PLACE TO MAKE A WORKIN
G ML PROGRAM...^.        REVIEW OF PART 
2..  IT IS ASSUMED THAT YOU KNOW THIS:..
  6510 ML INSTRUCTIONS:.TAX, TXA, TAY & 
TYA; LDA, LDX, LDY, STA,STX & STY; ADC, 
SBC, CLC & SEC; BCC,    BCS, BEQ, BNE, B
MI, BPL, BVS, & BVC;    CMP; INX, INY, D
EX & DEY; JMP, JSR, RTS,AND JUMP  INDIRE
CT [E.G. JMP($0306)]...  ADDRESSING MODE
S:.IMMEDIATE; ABSOLUTE; ZERO PAGE;      
   ABSOLUTE,X; ABSOLUTE,Y; ZERO PAGE,X; 
   INDIRECT,Y; INDIRECT,X; AND RELATIVE.
..  6510 STATUS FLAGS, ESPECIALLY:.C (CA
RRY), Z (ZERO), V (OVERFLOW),      AND N
 (NEGATIVE)...  NEGATIVE NUMBERS IN BINA
RY...^..     BIT-MANIPULATION INSTRUCTIO
NS..  ALTHOUGH YOU NOW KNOW HOW TO ADD, 
    SUBTRACT, COMPARE AND MOVE BYTES AS 
A   WHOLE, THIS INSTALMENT WILL START WI
TH  THE INSTRUCTIONS USED TO MANIPULATE 
THE INDIVIDUAL BITS WITHIN A BYTE. THE F
IRSTOF THESE INSTRUCTIONS ARE:..ML  BASI
C EXPLANATION..AND  AND  LOGICAL AND..OR
A  OR   LOGICAL OR. ("OR ACCUMULATOR")EO
R       LOGICAL "EXCLUSIVE OR"...NOTE: E
OR HAS NO BASIC EQUIVALENT...  BECAUSE T
HEY ARE NOT OFTEN USED THIS  WAY, THE BA
SIC EQUIVALENTS MAY BE       MISLEADING 
IF YOU MAY HAVE ONLY USED.THEM WITH IF (
EG IF A=0 AND B=0 THEN..).^..  BIT-MANIP
ULATION INSTRUCTIONS (CONT'D).  THESE CO
MMANDS TAKE TWO BYTES (ONE IN THE ACCUMU
LATOR AND ANOTHER SPECIFIED BYONE OF THE
 ADDRESSING MODES), AND APPLY A RULE TO 
CORRESPONDING BITS TO PRODUCE THE BITS O
F A RESULT BYTE, LEFT IN THE  ACCUMULATO
R. THESE RULES ARE:..AND: IF A GIVEN BIT
 IN BYTE 1 AND THE        CORRESPONDING 
BIT IN BYTE 2 IS SET,     THE BIT IN THE
 RESULT IS SET..ORA: IF A GIVEN BIT IN B
YTE 1 OR THE         CORRESPONDING BIT I
N BYTE 2, OR         BOTH, IS SET, THE B
IT IN THE RESULT     IS SET..EOR: IF A G
IVEN BIT IN BYTE 1 OR THE         CORRES
PONDING BIT IN BYTE 2, BUT        NOT BO
TH, IS SET, THE BIT IN THE        RESULT
 IS SET..^..  BIT-MANIPULATION INSTRUCTI
ONS (CONT'D).  HERE ARE SOME EXAMPLES US
ING 3 AND 6:..AND:  %00000011 (3)     0 
AND 0 = 0.      %00000110 (6)     0 AND 
1 = 0.      ---------         1 AND 0 = 
0.      %00000010 (2)     1 AND 1 = 1...
OR:   %00000011 (3)     0 OR 0 = 0.     
 %00000110 (6)     0 OR 1 = 1.      ----
-----         1 OR 0 = 1.      %00000111
 (7)     1 OR 1 = 1...EOR:  %00000011 (3
)     0 EOR 0 = 0.      %00000110 (6)   
  0 EOR 1 = 1.      ---------         1 
EOR 0 = 1.      %00000101 (5)     1 EOR 
1 = 0.^..  BIT-MANIPULATION INSTRUCTIONS
 (CONT'D).  AS AN EXAMPLE OF USING THESE
          INSTRUCTIONS, NOTE THAT MEMORY
 ADDRESSESFROM 1024 TO 2023 ARE WHERE TH
E CONTENTSOF THE VIDEO SCREEN ARE STORED
, AND THATNORMAL CHARACTERSARE REPRESENT
ED BY     VALUES FROM %00000000 TO %0111
1111, WITHTHEIR REVERSE FIELD EQUIVALENT
S USING   VALUES FROM %10000000 TO %1111
1111...  THUS SWITCHING ONE BIT (BIT 7, 
IN THE 128'S POSITION) ON (TO A 1) WILL 
REVERSEA CHARACTERON THE SCREEN. FOR EXA
MPLE:..LDA 1024.ORA #%10000000.STA 1024.
.WILL REVERSE THE TOP LEFT CHARACTER..^.
.  BIT-MANIPULATION INSTRUCTIONS (CONT'D
).  REPLACING "ORA %10000000" WITH "AND 
  %01111111" WOULD FORCE BIT 7 TO BE "0"
, CAUSING THE PROGRAM TO CHANGE AN      
  INVERTED CHARACTER TO A NORMAL ONE... 
 USING "EOR %10000000" INSTEAD OF "ORA %
10000000" WOULD FLIP BIT 7, INVERTING  A
 "NORMAL" CHARACTER AND RENDERING AN   I
NVERTED CHARACTER NORMAL...  THESE INSTR
UCTIONS ARE USED ANY TIME  YOU NEED TO S
ET, CLEAR, OR FLIP ONE OR AGROUP OF BITS
. THIS HAPPENS A LOT WITH  THE C-64'S SP
ECIAL SOUND AND VIDEO      CAPABILITIES,
 IF YOU GET INTO THEM...  THESE INSTRUCT
IONS CAN USE ANY        ADDRESSING MODES
 AVAILABLE TO LDA AND   ALL TAKE THE SAM
E AMOUNT OF TIME AS LDA.^..        MORE 
BIT-JUGGLING..  SOME OTHER INSTRUCTIONS 
USED TO       MANIPULATE THE BITS IN A B
YTE ARE ASL   (ARITHMETIC SHIFT LEFT), L
SR (LOGICAL   SHIFT RIGHT), ROL (ROTATE 
LEFT) AND ROR (ROTATE RIGHT). THESE INST
RUCTIONS MOVE ALL THE BITS IN A BYTE LEF
T OR RIGHT,   MULTIPLYING OR DIVIDING TH
E BYTE'S VALUEBY 2...  ALL THESE INSTRUC
TIONS SET THE Z AND NFLAGS ACCORDING TO 
THE VALUE LEFT IN THEBYTE, AND THE BIT S
HIFTED OFF THE END OFTHE BYTE IS PLACED 
IN THE C FLAG...  ASL AND LSR ALWAYS SHI
FT A 0 INTO THE APPLICABLE END OF THE BY
TE, WHILE ROL   AND ROR USE THE VALUE OF
 THE CARRY FLAG BEFORE THE OPERATION..^.
.    MORE BIT-JUGGLING (CONTINUED)..THUS
, TO MULTIPLY A TWO-BYTE NUMBER BY  2, U
SE THE CARRY BIT TO HOLD THE BIT    THAT
 JUMPS THE BORDER BETWEEN BYTES:..LSR [L
OW BYTE OF NUMBER].ROL [HIGH BYTE OF NUM
BER]..  ADDING MORE ROL'S ALLOWS YOU TO 
USE   ANY NUMBER OF BYTES IN YOUR NUMBER
...  THESE INSTRUCTIONS CAN USE THE ZERO
   PAGE; ZERO PAGE,X; ABSOLUTE AND      
   ABSOLUTE,X ADDRESSING MODES, AND ONE 
   FOUND NOWHERE ELSE: ACCUMULATOR...  I
N THE ACCUMULATOR ADDRESSING MODE,   THE
 ACCUMULATOR IS SHIFTED INSTEAD OF A SPE
CIFIED MEMORY LOCATION..^..    MORE BIT-
JUGGLING (CONTINUED)..  SOME ASSEMBLERS 
USE THE FORMAT "ASL", WITHOUT ANY FOLLOW
ING ADDRESS TO        INDICATE THAT THE 
ACCUMULATOR MODE      IS TO BE USED BY T
HE ASL INSTRUCTION.   SOME OTHER ASSEMBL
ERS REQUIRE "ASL A",  SPECIFYING THE ACC
UMULATOR. SIMILARLY.FOR LSR, ROL AND ROR
...  AS AN ASIDE, OTHER INSTRUCTIONS SUC
H  AS TXA, PHP, ETC., WHICH "DON'T REALL
Y  HAVE" ADDRESSING MODES ARE SAID TO US
E  THE "IMPLIED" ADDRESSING MODE IN ORDE
R  TO GIVE ALL INSTRUCTIONS ADDRESSING  
   MODES. THE DISTINCTION FROM ACCUMULAT
OR MODE IS THAT ASL AND CO. CAN SPECIFY 
   SEVERAL MODES,INCLUDING ACCUMULATOR..
^..    MORE BIT-JUGGLING (CONTINUED)..  
THESE INSTRUCTIONS ARE USUALLY USED TOMU
LTIPLY NUMBERS TOGETHER. TO MULTIPLY  BY
 THREE, FOR EXAMPLE, TAKE THE NUMBER  TO
 BE MULTIPLIED, ASL IT, STORING THE   RE
SULT OF THE SHIFT TEMPORARILY, AND ADDTH
E UNDISTURBED ORIGINAL NUMBER TO IT.  [N
UMBER]+[2XNUMBER]=[3XNUMBER]. ANY     NU
MBER CAN BE USED IN SUCH A PROCEDURE. TO
 MULTIPLY BY 6, SHIFT THE RESULT OVER AG
AIN...  A GENERAL PROCEDURE TO MULTIPLY 
ANY   TWO VALUES TOGETHER IS A SOMEWHAT 
MORE  COMPLEX, BUT USES THE SAME IDEAS. 
ON THENEXT SCREEN IS A PROGRAM WHICH WIL
L DO  THIS. IT WORKS RATHER LIKE THE LON
G     MULTIPLICATION YOU LEARNED IN SCHO
OL,   TAKING TWO 1-BYTE NUMBERS TO PRODU
CE A  2-BYTE RESULT. WHY? 255*255=65025.
.^..     NUM1=$FB    ;OR ANYPLACE HANDY.
     NUM2=$FC.     PRODUCT=$FD ;$FE WILL
 BE USED ALSO.     LDA #$00    ;CLEAR RE
SULT AREA.     STA PRODUCT.     STA PROD
UCT+1.     LDX #$08    ;COUNT # OF BITS.
;.LOOP ASL NUM2 ;ISOLATE RIGHT-HAND BIT.
     BCC ZERO ;IF ZERO, DON'T ADD NUM1. 
    CLC      ;PREPARE FOR ADDITION.     
LDA NUM1 ;ADD NUM1 TO PRODUCT.     ADC P
RODUCT.     STA PRODUCT.     BCC ZERO   
   ;TAKE CARE OF CARRY.     INC PRODUCT+
1 ;IF TWO BYTES NEEDED.ZERO DEX         
  ;DO IT 8 TIMES.     BNE [OUT]     ;IF 
FINISHED, LEAVE.     ASL PRODUCT   ;PROD
UCT=PRODUCT*2.     ROL PRODUCT+1.     JM
P LOOP.^..    MORE BIT-JUGGLING (CONTINU
ED)..  USING THE EQUIVALENT STEPS IN DEC
IMAL AS EXAMPLES, MULTIPLICATION BY A SI
NGLE            DIGIT IS VERY EASY WHEN 
ITS  F      716 ONLY POSSIBLE VALUES ARE
 0   I     X342 AND 1. ALSO, INSTEAD OF 
     G  ------- WAITING UNTIL THE END TO
 ADD,U     1432 THE BINARY METHOD FINDS 
     R    2864  3X716, BUMPS THE RESULT 
OVER E  +2142   ONE COLUMN, ADDS 4X716, 
BUMPS   ------- THE RESULT OVER ONE COLU
MN,  1   244272 ADDS 4X716, BUMPS THAT O
VER,            THEN ADDS 2X716 AND QUIT
S.   THIS BACKWARDS SYSTEM SAVES TIME AN
D    MEMORY. ANOTHER TRICK USED IS THE "
BCC  ZERO   INC PRODUCT+1"  PART OF THE 
     PROGRAM, WHICH SAVES AN ADDITION. I
F YOUCAN UNDERSTAND THIS MULTIPLICATION,
 YOU CAN CALL YOURSELF LITERATE IN ML. J
OLLY GOOD SHOW, MATE! ON TO LITERATURE..
...^..           THE STACK..  WHEN THE 6
510 EXECUTES A JSR COMMAND, IT HAS TO RE
MEMBER WHERE IT'S JSR-ING   FROM, SO IT 
CAN GO BACK THERE WHEN IT   HITS THE NEX
T RTS. BUT IT ALSO LETS YOU HAVE A SECON
D, OR A THIRD,OR ANY NUMBER OF JSR'S WIT
HIN EACH OTHER BEFORE THE   FIRST RTS. I
T MANAGES THIS BY LEAVING   EACH ADDRESS
 JSR-ED FROM ON TOP OF A    STACK IT KEE
PS IN PAGE 1 OF MEMORY (FROM$0100 TO $01
FF). WHEN IT COMES TO A RTS,IT PULLS THE
 ADDRESS TO RETURN TO OFF   THE TOP OF T
HE STACK, LEAVING THE NEXT  ADDRESS DOWN
 FOR THE NEXT RTS...  THE STACK STARTS A
T $01FF AND GROWS   DOWNWARDS TOWARDS $0
100. SINCE ONE      ADDRESS IS TWO BYTES
 LONG, ONLY 128     ADDRESSES CAN BE KEP
T ON THE STACK..^..       THE STACK (CON
TINUED)..  IF YOU TRY TO PUT MORE ON THE
 STACK,  IT "WRAPS AROUND" AND STARTS OV
ER AT    $01FF, DESTROYING THE FIRST FEW
 BITS OF INFORMATION THERE. NORMALLY, TH
IS IS NOTA PROBLEM. THE STACK IS BIG ENO
UGH...  THE 6510 KEEPS TRACK OF THE TOP 
OF THESTACK WITH THE SP REGISTER, THE ST
ACK   POINTER. WHEN IT PUTS SOMETHING ON
 OR   TAKES SOMETHING OFF THE STACK, IT 
      ADJUSTS THE STACK POINTER SO IT AL
WAYS  POINTS TO THE ADDRESS OF THE TOP I
TEM   ON THE STACK. IF YOU NEED TO KNOW 
WHAT'SIN THE STACK POINTER (FEW PEOPLE D
O),   TXS AND TSX TRANSFER THE X REGISTE
R TO  THE STACK POINTER AND VICE VERSA. 
THE   $01 AT THE START OF THE ADDRESS IS
 NOT  TRANSFERRED, BUT SIMPLY ASSUMED..^
..       THE STACK (CONTINUED)..  MORE U
SEFUL STACK INSTRUCTIONS ARE PHA("PUSH A
CCUMULATOR ONTO STACK") AND PLA ("PULL A
CCUMULATOR OFF STACK"), WHICH   ALLOW TH
E ACCUMULATOR TO BE GOTTEN OUT  OF THE W
AY TEMPORARILY WITHOUT HAVING TOSPECIALL
Y RESERVE A PLACE IN MEMORY FOR IT. SOME
TIMES YOU WILL SEE "PHA  TXA    PHA  TYA
  PHA" USED TO STORE ALL THE    6510'S R
EGISTERS OUT OF HARM'S WAY...  NOTE THAT
 THIS CAN ONLY BE USED       TEMPORARILY
, BECAUSE IF AN RTS IS       EXECUTED BE
FORE THE VALUE IS REMOVED    AGAIN (BY P
LA), THEN THE 6510 WILL TAKE THE ACCUMUL
ATOR'S STORED VALUE AND THE  WRONG HALF 
OF THE ADDRESS BELOW IT AS ANADDRESS, AN
D RTS TO NEVER-NEVER LAND. BECAREFUL!.^.
.       THE STACK (CONTINUED).. YOU CAN,
 HOWEVER, LEAVE A NUMBER ON THESTACK, DO
 A JSR, AND RETRIEVE IT AFTER  THE RTS. 
THIS IS VERY USEFUL IF YOU WANTA SUBROUT
INE TO CALL ITSELF BUT TO KEEP SOME VALU
E FOR USE AFTER THE END OF THE SUBROUTIN
E. ADVANCED, BUT USEFUL...  THE REMAININ
G TWO INSTRUCTIONS WHICH  AFFECT THE STA
CK ARE PHP (PUSH P        REGISTER) AND 
PLP (PULL P REGISTER),    WHICH ALLOW YO
U TO KEEP ALL THE FLAGS   SAFE ON THE ST
ACK FOR A WHILE. PHP PLA  IS ALSO THE ON
LY WAY TO LOOK AT SOME    FLAGS,NOTABLY 
THE 1 FLAG AND THE B FLAG..  LIKE PHA, A
 PHP MUST BE BALANCED BY A PLP BEFORE AN
 RTS ATTEMPTS TO USE THE   STORED P REGI
STER AS PART OF AN ADDRESS.^..       THE
 STACK (CONTINUED)..  THIS CAN BE USED T
O YOUR ADVANTAGE IF YOU WANT TO, RTS TO,
 SAY, THE JSR TWO   STEPS BACK, INSTEAD 
OF THE  USUAL ONE.  "PLA  PLA" WILL REMO
VE THE MOST RECENT  ADDRESS FROM THE STA
CK, LEAVING THE NEXTONE DOWN ON TOP...  
YOU CAN ALSO FOOL RTS INTO RETURNING  TO
 A DIFFERENT ADDRESS FROM THE ONE JSR-ED
 FROM. PHA THE ADDRESS ONTO THE STACK AN
D JMP TO THE SUBROUTINE. ACTUALLY YOU SH
OULD PHA THE ADDRESS-1 (MINUS ONE)    ON
TO THE STACK, HIGH BYTE (THE $AB IN   $A
BCD) FIRST...  THIS IS GETTING PRETTY AB
TRUSE, AND   IT WILL PROBABLY BE A WHILE
 BEFORE YOU  START PLAYING WITH THE STAC
K. BUT IT IS WORTH KNOWING WHAT THE STAC
K CAN DO..^.        USING BASIC FROM ML.
.  AS YOU KNOW, BASIC IS AN ML PROGRAM. 
 SOME BITS OF IT DO USEFUL THINGS SUCH A
SCLEARING THE SCREEN, PRINTING CHARACTER
STO THE SCREEN (EASY, EH? TRY "DELETE".)
 AND COMMUNICATING WITH THE DISK DRIVE..
.  ON THE NEXT PAGE ARE JUST A FEW OF TH
EEASIER ROUTINES TO USE. THERE ARE OVER 
 100 AVAILABLE, AND THE USE OF A GOOD.RE
FERENCE BOOK IS RECOMMENDED..^..CHROUT $
FFD2  THIS ROUTINE PRINTS THE     CHARAC
TER IN THE ACCUMULATOR..CHRIN  $FFCF RET
URNS A CHARACTER FROM     THE INPUT BUFF
ER IN THE ACCUMULATOR.    IF THE BUFFER'
S EMPTY, FILLS IT BY      ACCEPTING A LI
NE UNTIL A RETURN..GETIN  $FFE4 LIKE BAS
IC GET. RETURNS      DATA IN THE ACCUMUL
ATOR, OR 0 IF NO     KEY HAS BEEN PRESSE
D..       $BDCD PRINTS (IN DECIMAL) THE 
2-   BYTE NUMBER IN THE ACCUMULATOR AND 
X    REGISTER (LOW HALF IN X)..PLOT   $F
FF0 CURSOR COLUMN IN X AND       CURSOR 
ROW IN Y. IF C IS SET, RETURNS   THE CUR
RENT VALUES. IF C=0, SETS THE    CURSOR 
TO THE SPECIFIED POSITION..       $A474 
THIS HAS THE SAME EFFECT AS   HITTING ST
OP/RESTORE..       $FCE2 THIS IS THE SAM
E AS TURNING   THE COMPUTER OFF AND ON A
GAIN.^....          THAT'S ALL FOLKS..  
IF YOU'VE MADE IT THIS FAR THROUGH.THE J
UNGLE, YOU'RE PAST THE HARD PART..IT'S J
UST DETAILS THAT ARE LEFT TO.WORRY ABOUT
. GET A GOOD REFERENCE BOOK.AND TRY THIN
GS OUT!  YOU ARE AT THE.STAGE OF ML EQUI
VALENT TO YOUR FIRST.EFFORTS IN BASIC. Y
OU KNOW THE FACTS,.AND PRACTISE WILL ENA
BLE YOU TO DO.SOMETHING WITH WHAT YOU KN
OW...  REMEMBER: THERE'S 4K OF MEMORY FR
OM   $C000 ON JUST WAITING TO BE FILLED 
WITH ML OF YOUR DEVISING..^^^^^^^^^^^^^^
^^
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL