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

ASM TUT

FILE INFORMATION

FILENAME(S): ASM TUT

FILE TYPE(S): PRG

FILE SIZE: 13.1K

FIRST SEEN: 2025-10-19 22:49:24

APPEARS ON: 1 disk(s)

FILE HASH

7fc24dcaa5f1594101925a98428e700f5c84a4eea9813ee66eb93f0121aecb37

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
GOLD DISK JAN86 ASM TUT PRG Radd Maxx 10 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 6A 6B 5E 0D 0D 20 20 61  4E 20 69 4E 54 52 4F 44  |jk^..  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 20 41 52 45 20  | CHARACTERS ARE |
00000CA0: 52 45 50 52 45 53 45 4E  54 45 44 20 42 59 0D 56  |REPRESENTED BY.V|
00000CB0: 41 4C 55 45 53 20 46 52  4F 4D 20 25 30 30 30 30  |ALUES FROM %0000|
00000CC0: 30 30 30 30 20 54 4F 20  25 30 31 31 31 31 31 31  |0000 TO %0111111|
00000CD0: 31 2C 20 57 49 54 48 54  48 45 49 52 20 52 45 56  |1, WITHTHEIR REV|
00000CE0: 45 52 53 45 20 46 49 45  4C 44 20 45 51 55 49 56  |ERSE FIELD EQUIV|
00000CF0: 41 4C 45 4E 54 53 20 55  53 49 4E 47 20 20 20 56  |ALENTS USING   V|
00000D00: 41 4C 55 45 53 20 46 52  4F 4D 20 25 31 30 30 30  |ALUES FROM %1000|
00000D10: 30 30 30 30 20 54 4F 20  25 31 31 31 31 31 31 31  |0000 TO %1111111|
00000D20: 31 2E 0D 0D 20 20 74 48  55 53 20 53 57 49 54 43  |1...  tHUS SWITC|
00000D30: 48 49 4E 47 20 4F 4E 45  20 42 49 54 20 28 42 49  |HING ONE BIT (BI|
00000D40: 54 20 37 2C 20 49 4E 20  54 48 45 20 31 32 38 27  |T 7, IN THE 128'|
00000D50: 53 20 50 4F 53 49 54 49  4F 4E 29 20 4F 4E 20 28  |S POSITION) ON (|
00000D60: 54 4F 20 41 20 31 29 20  57 49 4C 4C 20 52 45 56  |TO A 1) WILL REV|
00000D70: 45 52 53 45 41 20 43 48  41 52 41 43 54 45 52 20  |ERSEA CHARACTER |
00000D80: 4F 4E 20 54 48 45 20 53  43 52 45 45 4E 2E 20 66  |ON THE SCREEN. f|
00000D90: 4F 52 20 45 58 41 4D 50  4C 45 3A 0D 0D 4C 44 41  |OR EXAMPLE:..LDA|
00000DA0: 20 31 30 32 34 0D 4F 52  41 20 23 25 31 30 30 30  | 1024.ORA #%1000|
00000DB0: 30 30 30 30 0D 53 54 41  20 31 30 32 34 0D 0D 57  |0000.STA 1024..W|
00000DC0: 49 4C 4C 20 52 45 56 45  52 53 45 20 54 48 45 20  |ILL REVERSE THE |
00000DD0: 54 4F 50 20 4C 45 46 54  20 43 48 41 52 41 43 54  |TOP LEFT CHARACT|
00000DE0: 45 52 2E 0D 5E 0D 0D 20  20 62 49 54 2D 4D 41 4E  |ER..^..  bIT-MAN|
00000DF0: 49 50 55 4C 41 54 49 4F  4E 20 69 4E 53 54 52 55  |IPULATION iNSTRU|
00000E00: 43 54 49 4F 4E 53 20 28  63 4F 4E 54 27 44 29 0D  |CTIONS (cONT'D).|
00000E10: 20 20 72 45 50 4C 41 43  49 4E 47 20 22 4F 52 41  |  rEPLACING "ORA|
00000E20: 20 25 31 30 30 30 30 30  30 30 22 20 57 49 54 48  | %10000000" WITH|
00000E30: 20 22 41 4E 44 20 20 20  25 30 31 31 31 31 31 31  | "AND   %0111111|
00000E40: 31 22 20 57 4F 55 4C 44  20 46 4F 52 43 45 20 42  |1" WOULD FORCE B|
00000E50: 49 54 20 37 20 54 4F 20  42 45 20 22 30 22 2C 20  |IT 7 TO BE "0", |
00000E60: 43 41 55 53 49 4E 47 20  54 48 45 20 50 52 4F 47  |CAUSING THE PROG|
00000E70: 52 41 4D 20 54 4F 20 43  48 41 4E 47 45 20 41 4E  |RAM TO CHANGE AN|
00000E80: 20 20 20 20 20 20 20 20  49 4E 56 45 52 54 45 44  |        INVERTED|
00000E90: 20 43 48 41 52 41 43 54  45 52 20 54 4F 20 41 20  | CHARACTER TO A |
00000EA0: 4E 4F 52 4D 41 4C 20 4F  4E 45 2E 0D 0D 20 20 75  |NORMAL ONE...  u|
00000EB0: 53 49 4E 47 20 22 45 4F  52 20 25 31 30 30 30 30  |SING "EOR %10000|
00000EC0: 30 30 30 22 20 49 4E 53  54 45 41 44 20 4F 46 20  |000" INSTEAD OF |
00000ED0: 22 4F 52 41 20 25 31 30  30 30 30 30 30 30 22 20  |"ORA %10000000" |
00000EE0: 57 4F 55 4C 44 20 46 4C  49 50 20 42 49 54 20 37  |WOULD FLIP BIT 7|
00000EF0: 2C 20 49 4E 56 45 52 54  49 4E 47 20 20 41 20 22  |, INVERTING  A "|
00000F00: 4E 4F 52 4D 41 4C 22 20  43 48 41 52 41 43 54 45  |NORMAL" CHARACTE|
00000F10: 52 20 41 4E 44 20 52 45  4E 44 45 52 49 4E 47 20  |R AND RENDERING |
00000F20: 41 4E 20 20 20 49 4E 56  45 52 54 45 44 20 43 48  |AN   INVERTED CH|
00000F30: 41 52 41 43 54 45 52 20  4E 4F 52 4D 41 4C 2E 0D  |ARACTER NORMAL..|
00000F40: 0D 20 20 74 48 45 53 45  20 49 4E 53 54 52 55 43  |.  tHESE INSTRUC|
00000F50: 54 49 4F 4E 53 20 41 52  45 20 55 53 45 44 20 41  |TIONS ARE USED A|
00000F60: 4E 59 20 54 49 4D 45 20  20 59 4F 55 20 4E 45 45  |NY TIME  YOU NEE|
00000F70: 44 20 54 4F 20 53 45 54  2C 20 43 4C 45 41 52 2C  |D TO SET, CLEAR,|
00000F80: 20 4F 52 20 46 4C 49 50  20 4F 4E 45 20 4F 52 20  | OR FLIP ONE OR |
00000F90: 41 47 52 4F 55 50 20 4F  46 20 42 49 54 53 2E 20  |AGROUP OF BITS. |
00000FA0: 74 48 49 53 20 48 41 50  50 45 4E 53 20 41 20 6C  |tHIS HAPPENS A l|
00000FB0: 6F 74 20 57 49 54 48 20  20 54 48 45 20 63 2D 36  |ot WITH  THE c-6|
00000FC0: 34 27 53 20 53 50 45 43  49 41 4C 20 53 4F 55 4E  |4'S SPECIAL SOUN|
00000FD0: 44 20 41 4E 44 20 56 49  44 45 4F 20 20 20 20 20  |D AND VIDEO     |
00000FE0: 20 43 41 50 41 42 49 4C  49 54 49 45 53 2C 20 49  | CAPABILITIES, I|
00000FF0: 46 20 59 4F 55 20 47 45  54 20 49 4E 54 4F 20 54  |F YOU GET INTO T|
00001000: 48 45 4D 2E 0D 0D 20 20  74 48 45 53 45 20 49 4E  |HEM...  tHESE IN|
00001010: 53 54 52 55 43 54 49 4F  4E 53 20 43 41 4E 20 55  |STRUCTIONS CAN U|
00001020: 53 45 20 41 4E 59 20 20  20 20 20 20 20 20 41 44  |SE ANY        AD|
00001030: 44 52 45 53 53 49 4E 47  20 4D 4F 44 45 53 20 41  |DRESSING MODES A|
00001040: 56 41 49 4C 41 42 4C 45  20 54 4F 20 4C 44 41 20  |VAILABLE TO LDA |
00001050: 41 4E 44 20 20 20 41 4C  4C 20 54 41 4B 45 20 54  |AND   ALL TAKE T|
00001060: 48 45 20 53 41 4D 45 20  41 4D 4F 55 4E 54 20 4F  |HE SAME AMOUNT O|
00001070: 46 20 54 49 4D 45 20 41  53 20 4C 44 41 2E 5E 0D  |F TIME AS LDA.^.|
00001080: 0D 20 20 20 20 20 20 20  20 6D 4F 52 45 20 42 49  |.        mORE BI|
00001090: 54 2D 4A 55 47 47 4C 49  4E 47 0D 0D 20 20 73 4F  |T-JUGGLING..  sO|
000010A0: 4D 45 20 4F 54 48 45 52  20 49 4E 53 54 52 55 43  |ME OTHER INSTRUC|
000010B0: 54 49 4F 4E 53 20 55 53  45 44 20 54 4F 20 20 20  |TIONS USED TO   |
000010C0: 20 20 20 20 4D 41 4E 49  50 55 4C 41 54 45 20 54  |    MANIPULATE T|
000010D0: 48 45 20 42 49 54 53 20  49 4E 20 41 20 42 59 54  |HE BITS IN A BYT|
000010E0: 45 20 41 52 45 20 41 53  4C 20 20 20 28 61 52 49  |E ARE ASL   (aRI|
000010F0: 54 48 4D 45 54 49 43 20  73 48 49 46 54 20 6C 45  |THMETIC sHIFT lE|
00001100: 46 54 29 2C 20 4C 53 52  20 28 6C 4F 47 49 43 41  |FT), LSR (lOGICA|
00001110: 4C 20 20 20 73 48 49 46  54 20 72 49 47 48 54 29  |L   sHIFT rIGHT)|
00001120: 2C 20 52 4F 4C 20 28 72  6F 54 41 54 45 20 6C 45  |, ROL (roTATE lE|
00001130: 46 54 29 20 41 4E 44 20  52 4F 52 20 28 72 6F 54  |FT) AND ROR (roT|
00001140: 41 54 45 20 72 49 47 48  54 29 2E 20 74 48 45 53  |ATE rIGHT). tHES|
00001150: 45 20 49 4E 53 54 52 55  43 54 49 4F 4E 53 20 4D  |E INSTRUCTIONS M|
00001160: 4F 56 45 20 41 4C 4C 20  54 48 45 20 42 49 54 53  |OVE ALL THE BITS|
00001170: 20 49 4E 20 41 20 42 59  54 45 20 4C 45 46 54 20  | IN A BYTE LEFT |
00001180: 4F 52 20 52 49 47 48 54  2C 20 20 20 4D 55 4C 54  |OR RIGHT,   MULT|
00001190: 49 50 4C 59 49 4E 47 20  4F 52 20 44 49 56 49 44  |IPLYING OR DIVID|
000011A0: 49 4E 47 20 54 48 45 20  42 59 54 45 27 53 20 56  |ING THE BYTE'S V|
000011B0: 41 4C 55 45 42 59 20 32  2E 0D 0D 20 20 61 4C 4C  |ALUEBY 2...  aLL|
000011C0: 20 54 48 45 53 45 20 49  4E 53 54 52 55 43 54 49  | THESE INSTRUCTI|
000011D0: 4F 4E 53 20 53 45 54 20  54 48 45 20 7A 20 41 4E  |ONS SET THE z AN|
000011E0: 44 20 6E 46 4C 41 47 53  20 41 43 43 4F 52 44 49  |D nFLAGS ACCORDI|
000011F0: 4E 47 20 54 4F 20 54 48  45 20 56 41 4C 55 45 20  |NG TO THE VALUE |
00001200: 4C 45 46 54 20 49 4E 20  54 48 45 42 59 54 45 2C  |LEFT IN THEBYTE,|
00001210: 20 41 4E 44 20 54 48 45  20 42 49 54 20 53 48 49  | AND THE BIT SHI|
00001220: 46 54 45 44 20 4F 46 46  20 54 48 45 20 45 4E 44  |FTED OFF THE END|
00001230: 20 4F 46 54 48 45 20 42  59 54 45 20 49 53 20 50  | OFTHE BYTE IS P|
00001240: 4C 41 43 45 44 20 49 4E  20 54 48 45 20 63 20 46  |LACED IN THE c F|
00001250: 4C 41 47 2E 0D 0D 20 20  61 53 4C 20 41 4E 44 20  |LAG...  aSL AND |
00001260: 4C 53 52 20 41 4C 57 41  59 53 20 53 48 49 46 54  |LSR ALWAYS SHIFT|
00001270: 20 41 20 30 20 49 4E 54  4F 20 54 48 45 20 41 50  | A 0 INTO THE AP|
00001280: 50 4C 49 43 41 42 4C 45  20 45 4E 44 20 4F 46 20  |PLICABLE END OF |
00001290: 54 48 45 20 42 59 54 45  2C 20 57 48 49 4C 45 20  |THE BYTE, WHILE |
000012A0: 52 4F 4C 20 20 20 41 4E  44 20 52 4F 52 20 55 53  |ROL   AND ROR US|
000012B0: 45 20 54 48 45 20 56 41  4C 55 45 20 4F 46 20 54  |E THE VALUE OF T|
000012C0: 48 45 20 63 41 52 52 59  20 46 4C 41 47 20 42 45  |HE cARRY FLAG BE|
000012D0: 46 4F 52 45 20 54 48 45  20 4F 50 45 52 41 54 49  |FORE THE OPERATI|
000012E0: 4F 4E 2E 0D 5E 0D 0D 20  20 20 20 6D 4F 52 45 20  |ON..^..    mORE |
000012F0: 62 49 54 2D 6A 55 47 47  4C 49 4E 47 20 28 63 4F  |bIT-jUGGLING (cO|
00001300: 4E 54 49 4E 55 45 44 29  0D 0D 74 48 55 53 2C 20  |NTINUED)..tHUS, |
00001310: 54 4F 20 4D 55 4C 54 49  50 4C 59 20 41 20 54 57  |TO MULTIPLY A TW|
00001320: 4F 2D 42 59 54 45 20 4E  55 4D 42 45 52 20 42 59  |O-BYTE NUMBER BY|
00001330: 20 20 32 2C 20 55 53 45  20 54 48 45 20 43 41 52  |  2, USE THE CAR|
00001340: 52 59 20 42 49 54 20 54  4F 20 48 4F 4C 44 20 54  |RY BIT TO HOLD T|
00001350: 48 45 20 42 49 54 20 20  20 20 54 48 41 54 20 4A  |HE BIT    THAT J|
00001360: 55 4D 50 53 20 54 48 45  20 42 4F 52 44 45 52 20  |UMPS THE BORDER |
00001370: 42 45 54 57 45 45 4E 20  42 59 54 45 53 3A 0D 0D  |BETWEEN BYTES:..|
00001380: 4C 53 52 20 5B 4C 4F 57  20 42 59 54 45 20 4F 46  |LSR [LOW BYTE OF|
00001390: 20 4E 55 4D 42 45 52 5D  0D 52 4F 4C 20 5B 48 49  | NUMBER].ROL [HI|
000013A0: 47 48 20 42 59 54 45 20  4F 46 20 4E 55 4D 42 45  |GH BYTE OF NUMBE|
000013B0: 52 5D 0D 0D 20 20 61 44  44 49 4E 47 20 4D 4F 52  |R]..  aDDING MOR|
000013C0: 45 20 52 4F 4C 27 53 20  41 4C 4C 4F 57 53 20 59  |E ROL'S ALLOWS Y|
000013D0: 4F 55 20 54 4F 20 55 53  45 20 20 20 41 4E 59 20  |OU TO USE   ANY |
000013E0: 4E 55 4D 42 45 52 20 4F  46 20 42 59 54 45 53 20  |NUMBER OF BYTES |
000013F0: 49 4E 20 59 4F 55 52 20  4E 55 4D 42 45 52 2E 0D  |IN YOUR NUMBER..|
00001400: 0D 20 20 74 48 45 53 45  20 49 4E 53 54 52 55 43  |.  tHESE INSTRUC|
00001410: 54 49 4F 4E 53 20 43 41  4E 20 55 53 45 20 54 48  |TIONS CAN USE TH|
00001420: 45 20 5A 45 52 4F 20 20  20 50 41 47 45 3B 20 5A  |E ZERO   PAGE; Z|
00001430: 45 52 4F 20 50 41 47 45  2C 58 3B 20 41 42 53 4F  |ERO PAGE,X; ABSO|
00001440: 4C 55 54 45 20 41 4E 44  20 20 20 20 20 20 20 20  |LUTE AND        |
00001450: 20 41 42 53 4F 4C 55 54  45 2C 58 20 41 44 44 52  | ABSOLUTE,X ADDR|
00001460: 45 53 53 49 4E 47 20 4D  4F 44 45 53 2C 20 41 4E  |ESSING MODES, AN|
00001470: 44 20 4F 4E 45 20 20 20  20 46 4F 55 4E 44 20 4E  |D ONE    FOUND N|
00001480: 4F 57 48 45 52 45 20 45  4C 53 45 3A 20 41 43 43  |OWHERE ELSE: ACC|
00001490: 55 4D 55 4C 41 54 4F 52  2E 0D 0D 20 20 69 4E 20  |UMULATOR...  iN |
000014A0: 54 48 45 20 41 43 43 55  4D 55 4C 41 54 4F 52 20  |THE ACCUMULATOR |
000014B0: 41 44 44 52 45 53 53 49  4E 47 20 4D 4F 44 45 2C  |ADDRESSING MODE,|
000014C0: 20 20 20 54 48 45 20 41  43 43 55 4D 55 4C 41 54  |   THE ACCUMULAT|
000014D0: 4F 52 20 49 53 20 53 48  49 46 54 45 44 20 49 4E  |OR IS SHIFTED IN|
000014E0: 53 54 45 41 44 20 4F 46  20 41 20 53 50 45 43 49  |STEAD OF A SPECI|
000014F0: 46 49 45 44 20 4D 45 4D  4F 52 59 20 4C 4F 43 41  |FIED MEMORY LOCA|
00001500: 54 49 4F 4E 2E 0D 5E 0D  0D 20 20 20 20 6D 4F 52  |TION..^..    mOR|
00001510: 45 20 62 49 54 2D 6A 55  47 47 4C 49 4E 47 20 28  |E bIT-jUGGLING (|
00001520: 63 4F 4E 54 49 4E 55 45  44 29 0D 0D 20 20 73 4F  |cONTINUED)..  sO|
00001530: 4D 45 20 41 53 53 45 4D  42 4C 45 52 53 20 55 53  |ME ASSEMBLERS US|
00001540: 45 20 54 48 45 20 46 4F  52 4D 41 54 20 22 41 53  |E THE FORMAT "AS|
00001550: 4C 22 2C 20 57 49 54 48  4F 55 54 20 41 4E 59 20  |L", WITHOUT ANY |
00001560: 46 4F 4C 4C 4F 57 49 4E  47 20 41 44 44 52 45 53  |FOLLOWING ADDRES|
00001570: 53 20 54 4F 20 20 20 20  20 20 20 20 49 4E 44 49  |S TO        INDI|
00001580: 43 41 54 45 20 54 48 41  54 20 54 48 45 20 41 43  |CATE THAT THE AC|
00001590: 43 55 4D 55 4C 41 54 4F  52 20 4D 4F 44 45 20 20  |CUMULATOR MODE  |
000015A0: 20 20 20 20 49 53 20 54  4F 20 42 45 20 55 53 45  |    IS TO BE USE|
000015B0: 44 20 42 59 20 54 48 45  20 41 53 4C 20 49 4E 53  |D BY THE ASL INS|
000015C0: 54 52 55 43 54 49 4F 4E  2E 20 20 20 73 4F 4D 45  |TRUCTION.   sOME|
000015D0: 20 4F 54 48 45 52 20 41  53 53 45 4D 42 4C 45 52  | OTHER ASSEMBLER|
000015E0: 53 20 52 45 51 55 49 52  45 20 22 41 53 4C 20 41  |S REQUIRE "ASL A|
000015F0: 22 2C 20 20 53 50 45 43  49 46 59 49 4E 47 20 54  |",  SPECIFYING T|
00001600: 48 45 20 41 43 43 55 4D  55 4C 41 54 4F 52 2E 20  |HE ACCUMULATOR. |
00001610: 74 48 45 20 67 4F 4C 44  20 20 20 20 64 49 53 4B  |tHE gOLD    dISK|
00001620: 20 41 53 53 45 4D 42 4C  45 52 20 49 4E 20 56 4F  | ASSEMBLER IN VO|
00001630: 4C 55 4D 45 20 31 31 2C  20 57 48 49 43 48 20 59  |LUME 11, WHICH Y|
00001640: 4F 55 20 20 4D 41 59 20  42 45 20 55 53 49 4E 47  |OU  MAY BE USING|
00001650: 2C 20 44 4F 45 53 20 4E  4F 54 20 52 45 51 55 49  |, DOES NOT REQUI|
00001660: 52 45 20 54 48 45 20 45  58 54 52 41 22 41 22 2E  |RE THE EXTRA"A".|
00001670: 20 73 49 4D 49 4C 41 52  4C 59 20 46 4F 52 20 4C  | sIMILARLY FOR L|
00001680: 53 52 2C 20 52 4F 4C 20  41 4E 44 20 52 4F 52 2E  |SR, ROL AND ROR.|
00001690: 0D 0D 20 20 61 53 20 41  4E 20 41 53 49 44 45 2C  |..  aS AN ASIDE,|
000016A0: 20 4F 54 48 45 52 20 49  4E 53 54 52 55 43 54 49  | OTHER INSTRUCTI|
000016B0: 4F 4E 53 20 53 55 43 48  20 20 41 53 20 54 58 41  |ONS SUCH  AS TXA|
000016C0: 2C 20 50 48 50 2C 20 45  54 43 2E 2C 20 57 48 49  |, PHP, ETC., WHI|
000016D0: 43 48 20 22 44 4F 4E 27  54 20 52 45 41 4C 4C 59  |CH "DON'T REALLY|
000016E0: 20 20 48 41 56 45 22 20  41 44 44 52 45 53 53 49  |  HAVE" ADDRESSI|
000016F0: 4E 47 20 4D 4F 44 45 53  20 41 52 45 20 53 41 49  |NG MODES ARE SAI|
00001700: 44 20 54 4F 20 55 53 45  20 20 54 48 45 20 22 49  |D TO USE  THE "I|
00001710: 4D 50 4C 49 45 44 22 20  41 44 44 52 45 53 53 49  |MPLIED" ADDRESSI|
00001720: 4E 47 20 4D 4F 44 45 20  49 4E 20 4F 52 44 45 52  |NG MODE IN ORDER|
00001730: 20 20 54 4F 20 47 49 56  45 20 41 4C 4C 20 49 4E  |  TO GIVE ALL IN|
00001740: 53 54 52 55 43 54 49 4F  4E 53 20 41 44 44 52 45  |STRUCTIONS ADDRE|
00001750: 53 53 49 4E 47 20 20 20  20 20 4D 4F 44 45 53 2E  |SSING     MODES.|
00001760: 20 74 48 45 20 44 49 53  54 49 4E 43 54 49 4F 4E  | tHE DISTINCTION|
00001770: 20 46 52 4F 4D 20 41 43  43 55 4D 55 4C 41 54 4F  | FROM ACCUMULATO|
00001780: 52 20 4D 4F 44 45 20 49  53 20 54 48 41 54 20 4F  |R MODE IS THAT O|
00001790: 50 43 4F 44 45 53 20 4C  49 4B 45 20 61 73 6C 20  |PCODES LIKE asl |
000017A0: 43 41 4E 0D 53 50 45 43  49 46 59 20 53 45 56 45  |CAN.SPECIFY SEVE|
000017B0: 52 41 4C 20 4D 4F 44 45  53 2C 20 49 4E 43 4C 55  |RAL MODES, INCLU|
000017C0: 44 49 4E 47 0D 41 43 43  55 4D 55 4C 41 54 4F 52  |DING.ACCUMULATOR|
000017D0: 2E 0D 5E 0D 0D 20 20 20  20 6D 4F 52 45 20 62 49  |..^..    mORE bI|
000017E0: 54 2D 6A 55 47 47 4C 49  4E 47 20 28 63 4F 4E 54  |T-jUGGLING (cONT|
000017F0: 49 4E 55 45 44 29 0D 0D  20 20 74 48 45 53 45 20  |INUED)..  tHESE |
00001800: 49 4E 53 54 52 55 43 54  49 4F 4E 53 20 41 52 45  |INSTRUCTIONS ARE|
00001810: 20 55 53 55 41 4C 4C 59  20 55 53 45 44 20 54 4F  | USUALLY USED TO|
00001820: 4D 55 4C 54 49 50 4C 59  20 4E 55 4D 42 45 52 53  |MULTIPLY NUMBERS|
00001830: 20 54 4F 47 45 54 48 45  52 2E 20 74 4F 20 4D 55  | TOGETHER. tO MU|
00001840: 4C 54 49 50 4C 59 20 20  42 59 20 54 48 52 45 45  |LTIPLY  BY THREE|
00001850: 2C 20 46 4F 52 20 45 58  41 4D 50 4C 45 2C 20 54  |, FOR EXAMPLE, T|
00001860: 41 4B 45 20 54 48 45 20  4E 55 4D 42 45 52 20 20  |AKE THE NUMBER  |
00001870: 54 4F 20 42 45 20 4D 55  4C 54 49 50 4C 49 45 44  |TO BE MULTIPLIED|
00001880: 2C 20 41 53 4C 20 49 54  2C 20 53 54 4F 52 49 4E  |, ASL IT, STORIN|
00001890: 47 20 54 48 45 20 20 20  52 45 53 55 4C 54 20 4F  |G THE   RESULT O|
000018A0: 46 20 54 48 45 20 53 48  49 46 54 20 54 45 4D 50  |F THE SHIFT TEMP|
000018B0: 4F 52 41 52 49 4C 59 2C  20 41 4E 44 20 41 44 44  |ORARILY, AND ADD|
000018C0: 54 48 45 20 55 4E 44 49  53 54 55 52 42 45 44 20  |THE UNDISTURBED |
000018D0: 4F 52 49 47 49 4E 41 4C  20 4E 55 4D 42 45 52 20  |ORIGINAL NUMBER |
000018E0: 54 4F 20 49 54 2E 20 20  5B 6E 55 4D 42 45 52 5D  |TO IT.  [nUMBER]|
000018F0: 2B 5B 32 58 6E 55 4D 42  45 52 5D 3D 5B 33 58 6E  |+[2XnUMBER]=[3Xn|
00001900: 55 4D 42 45 52 5D 2E 20  61 4E 59 20 20 20 20 20  |UMBER]. aNY     |
00001910: 4E 55 4D 42 45 52 20 43  41 4E 20 42 45 20 55 53  |NUMBER CAN BE US|
00001920: 45 44 20 49 4E 20 53 55  43 48 20 41 20 50 52 4F  |ED IN SUCH A PRO|
00001930: 43 45 44 55 52 45 2E 20  74 4F 20 4D 55 4C 54 49  |CEDURE. tO MULTI|
00001940: 50 4C 59 20 42 59 20 36  2C 20 53 48 49 46 54 20  |PLY BY 6, SHIFT |
00001950: 54 48 45 20 52 45 53 55  4C 54 20 4F 56 45 52 20  |THE RESULT OVER |
00001960: 41 47 41 49 4E 2E 0D 0D  20 20 61 20 47 45 4E 45  |AGAIN...  a GENE|
00001970: 52 41 4C 20 50 52 4F 43  45 44 55 52 45 20 54 4F  |RAL PROCEDURE TO|
00001980: 20 4D 55 4C 54 49 50 4C  59 20 41 4E 59 20 20 20  | MULTIPLY ANY   |
00001990: 54 57 4F 20 56 41 4C 55  45 53 20 54 4F 47 45 54  |TWO VALUES TOGET|
000019A0: 48 45 52 20 49 53 20 53  4F 4D 45 57 48 41 54 20  |HER IS SOMEWHAT |
000019B0: 4D 4F 52 45 0D 43 4F 4D  50 4C 45 58 2C 20 42 55  |MORE.COMPLEX, BU|
000019C0: 54 20 55 53 45 53 20 54  48 45 20 53 41 4D 45 20  |T USES THE SAME |
000019D0: 49 44 45 41 53 2E 20 6F  4E 20 54 48 45 4E 45 58  |IDEAS. oN THENEX|
000019E0: 54 20 53 43 52 45 45 4E  20 49 53 20 41 20 50 52  |T SCREEN IS A PR|
000019F0: 4F 47 52 41 4D 20 57 48  49 43 48 20 57 49 4C 4C  |OGRAM WHICH WILL|
00001A00: 20 44 4F 20 20 54 48 49  53 2E 20 69 54 20 57 4F  | DO  THIS. iT WO|
00001A10: 52 4B 53 20 52 41 54 48  45 52 20 4C 49 4B 45 20  |RKS RATHER LIKE |
00001A20: 54 48 45 20 4C 4F 4E 47  20 20 20 20 20 4D 55 4C  |THE LONG     MUL|
00001A30: 54 49 50 4C 49 43 41 54  49 4F 4E 20 59 4F 55 20  |TIPLICATION YOU |
00001A40: 4C 45 41 52 4E 45 44 20  49 4E 20 53 43 48 4F 4F  |LEARNED IN SCHOO|
00001A50: 4C 2C 20 20 20 54 41 4B  49 4E 47 20 54 57 4F 20  |L,   TAKING TWO |
00001A60: 31 2D 42 59 54 45 20 4E  55 4D 42 45 52 53 20 54  |1-BYTE NUMBERS T|
00001A70: 4F 20 50 52 4F 44 55 43  45 20 41 20 20 32 2D 42  |O PRODUCE A  2-B|
00001A80: 59 54 45 20 52 45 53 55  4C 54 2E 20 77 48 59 3F  |YTE RESULT. wHY?|
00001A90: 20 32 35 35 2A 32 35 35  3D 36 35 30 32 35 2E 0D  | 255*255=65025..|
00001AA0: 5E 0D 0D 20 20 20 20 20  4E 55 4D 31 3D 24 46 42  |^..     NUM1=$FB|
00001AB0: 20 20 20 20 3B 4F 52 20  41 4E 59 50 4C 41 43 45  |    ;OR ANYPLACE|
00001AC0: 20 48 41 4E 44 59 0D 20  20 20 20 20 4E 55 4D 32  | HANDY.     NUM2|
00001AD0: 3D 24 46 43 0D 20 20 20  20 20 50 52 4F 44 55 43  |=$FC.     PRODUC|
00001AE0: 54 3D 24 46 44 20 3B 24  46 45 20 57 49 4C 4C 20  |T=$FD ;$FE WILL |
00001AF0: 42 45 20 55 53 45 44 20  41 4C 53 4F 0D 20 20 20  |BE USED ALSO.   |
00001B00: 20 20 4C 44 41 20 23 24  30 30 20 20 20 20 3B 43  |  LDA #$00    ;C|
00001B10: 4C 45 41 52 20 52 45 53  55 4C 54 20 41 52 45 41  |LEAR RESULT AREA|
00001B20: 0D 20 20 20 20 20 53 54  41 20 50 52 4F 44 55 43  |.     STA PRODUC|
00001B30: 54 0D 20 20 20 20 20 53  54 41 20 50 52 4F 44 55  |T.     STA PRODU|
00001B40: 43 54 2B 31 0D 20 20 20  20 20 4C 44 58 20 23 24  |CT+1.     LDX #$|
00001B50: 30 38 20 20 20 20 3B 43  4F 55 4E 54 20 23 20 4F  |08    ;COUNT # O|
00001B60: 46 20 42 49 54 53 0D 4C  4F 4F 50 20 41 53 4C 20  |F BITS.LOOP ASL |
00001B70: 4E 55 4D 32 20 3B 49 53  4F 4C 41 54 45 20 4C 45  |NUM2 ;ISOLATE LE|
00001B80: 46 54 2D 48 41 4E 44 20  42 49 54 0D 20 20 20 20  |FT-HAND BIT.    |
00001B90: 20 42 43 43 20 5A 45 52  4F 20 3B 49 46 20 5A 45  | BCC ZERO ;IF ZE|
00001BA0: 52 4F 2C 20 44 4F 4E 27  54 20 41 44 44 20 4E 55  |RO, DON'T ADD NU|
00001BB0: 4D 31 0D 20 20 20 20 20  43 4C 43 20 20 20 20 20  |M1.     CLC     |
00001BC0: 20 3B 50 52 45 50 41 52  45 20 46 4F 52 20 41 44  | ;PREPARE FOR AD|
00001BD0: 44 49 54 49 4F 4E 0D 20  20 20 20 20 4C 44 41 20  |DITION.     LDA |
00001BE0: 4E 55 4D 31 20 3B 41 44  44 20 4E 55 4D 31 20 54  |NUM1 ;ADD NUM1 T|
00001BF0: 4F 20 50 52 4F 44 55 43  54 0D 20 20 20 20 20 41  |O PRODUCT.     A|
00001C00: 44 43 20 50 52 4F 44 55  43 54 0D 20 20 20 20 20  |DC PRODUCT.     |
00001C10: 53 54 41 20 50 52 4F 44  55 43 54 0D 20 20 20 20  |STA PRODUCT.    |
00001C20: 20 42 43 43 20 5A 45 52  4F 20 20 20 20 20 20 3B  | BCC ZERO      ;|
00001C30: 54 41 4B 45 20 43 41 52  45 20 4F 46 20 43 41 52  |TAKE CARE OF CAR|
00001C40: 52 59 0D 20 20 20 20 20  49 4E 43 20 50 52 4F 44  |RY.     INC PROD|
00001C50: 55 43 54 2B 31 20 3B 49  46 20 54 57 4F 20 42 59  |UCT+1 ;IF TWO BY|
00001C60: 54 45 53 20 4E 45 45 44  45 44 0D 5A 45 52 4F 20  |TES NEEDED.ZERO |
00001C70: 44 45 58 20 20 20 20 20  20 20 20 20 20 20 3B 44  |DEX           ;D|
00001C80: 4F 20 49 54 20 38 20 54  49 4D 45 53 0D 20 20 20  |O IT 8 TIMES.   |
00001C90: 20 20 42 4E 45 20 4F 55  54 20 20 20 20 20 20 20  |  BNE OUT       |
00001CA0: 3B 49 46 20 46 49 4E 49  53 48 45 44 2C 20 4C 45  |;IF FINISHED, LE|
00001CB0: 41 56 45 0D 20 20 20 20  20 41 53 4C 20 50 52 4F  |AVE.     ASL PRO|
00001CC0: 44 55 43 54 20 20 20 3B  50 52 4F 44 55 43 54 3D  |DUCT   ;PRODUCT=|
00001CD0: 50 52 4F 44 55 43 54 2A  32 0D 20 20 20 20 20 52  |PRODUCT*2.     R|
00001CE0: 4F 4C 20 50 52 4F 44 55  43 54 2B 31 0D 20 20 20  |OL PRODUCT+1.   |
00001CF0: 20 20 4A 4D 50 20 4C 4F  4F 50 0D 4F 55 54 20 20  |  JMP LOOP.OUT  |
00001D00: 2E 2E 2E 0D 0D 5E 0D 0D  20 20 20 20 6D 4F 52 45  |.....^..    mORE|
00001D10: 20 62 49 54 2D 6A 55 47  47 4C 49 4E 47 20 28 63  | bIT-jUGGLING (c|
00001D20: 4F 4E 54 49 4E 55 45 44  29 0D 0D 20 20 75 53 49  |ONTINUED)..  uSI|
00001D30: 4E 47 20 54 48 45 20 45  51 55 49 56 41 4C 45 4E  |NG THE EQUIVALEN|
00001D40: 54 20 53 54 45 50 53 20  49 4E 20 44 45 43 49 4D  |T STEPS IN DECIM|
00001D50: 41 4C 20 41 53 20 45 58  41 4D 50 4C 45 53 2C 20  |AL AS EXAMPLES, |
00001D60: 4D 55 4C 54 49 50 4C 49  43 41 54 49 4F 4E 20 42  |MULTIPLICATION B|
00001D70: 59 20 41 20 53 49 4E 47  4C 45 20 20 20 20 20 20  |Y A SINGLE      |
00001D80: 20 20 20 20 20 20 44 49  47 49 54 20 49 53 20 56  |      DIGIT IS V|
00001D90: 45 52 59 20 45 41 53 59  20 57 48 45 4E 20 49 54  |ERY EASY WHEN IT|
00001DA0: 27 53 20 66 20 20 20 20  20 20 37 31 36 20 4F 4E  |'S f      716 ON|
00001DB0: 4C 59 20 50 4F 53 53 49  42 4C 45 20 56 41 4C 55  |LY POSSIBLE VALU|
00001DC0: 45 53 20 41 52 45 20 30  0D 49 20 20 20 20 20 58  |ES ARE 0.I     X|
00001DD0: 33 34 32 20 41 4E 44 20  31 2E 20 61 4C 53 4F 2C  |342 AND 1. aLSO,|
00001DE0: 20 49 4E 53 54 45 41 44  20 4F 46 0D 47 20 20 2D  | INSTEAD OF.G  -|
00001DF0: 2D 2D 2D 2D 2D 2D 20 57  41 49 54 49 4E 47 20 55  |------ WAITING U|
00001E00: 4E 54 49 4C 20 54 48 45  20 45 4E 44 20 54 4F 20  |NTIL THE END TO |
00001E10: 41 44 44 2C 55 20 20 20  20 20 31 34 33 32 20 54  |ADD,U     1432 T|
00001E20: 48 45 20 42 49 4E 41 52  59 20 4D 45 54 48 4F 44  |HE BINARY METHOD|
00001E30: 20 46 49 4E 44 53 20 20  20 20 20 20 52 20 20 20  | FINDS      R   |
00001E40: 20 32 38 36 34 20 20 33  58 37 31 36 2C 20 42 55  | 2864  3X716, BU|
00001E50: 4D 50 53 20 54 48 45 20  52 45 53 55 4C 54 20 4F  |MPS THE RESULT O|
00001E60: 56 45 52 20 45 20 20 2B  32 31 34 32 20 20 20 4F  |VER E  +2142   O|
00001E70: 4E 45 20 43 4F 4C 55 4D  4E 2C 20 41 44 44 53 20  |NE COLUMN, ADDS |
00001E80: 34 58 37 31 36 2C 20 42  55 4D 50 53 20 20 20 2D  |4X716, BUMPS   -|
00001E90: 2D 2D 2D 2D 2D 2D 20 54  48 45 20 52 45 53 55 4C  |------ THE RESUL|
00001EA0: 54 20 4F 56 45 52 20 4F  4E 45 20 43 4F 4C 55 4D  |T OVER ONE COLUM|
00001EB0: 4E 2C 20 20 31 20 20 20  32 34 34 32 37 32 20 41  |N,  1   244272 A|
00001EC0: 44 44 53 20 34 58 37 31  36 2C 20 42 55 4D 50 53  |DDS 4X716, BUMPS|
00001ED0: 20 54 48 41 54 20 4F 56  45 52 2C 20 20 20 20 20  | THAT OVER,     |
00001EE0: 20 20 20 20 20 20 20 54  48 45 4E 20 41 44 44 53  |       THEN ADDS|
00001EF0: 20 32 58 37 31 36 20 41  4E 44 20 51 55 49 54 53  | 2X716 AND QUITS|
00001F00: 2E 20 20 20 74 48 49 53  20 50 41 52 54 49 43 55  |.   tHIS PARTICU|
00001F10: 4C 41 52 20 53 59 53 54  45 4D 20 53 41 56 45 53  |LAR SYSTEM SAVES|
00001F20: 20 54 49 4D 45 20 41 4E  44 20 20 20 4D 45 4D 4F  | TIME AND   MEMO|
00001F30: 52 59 2E 20 61 4E 4F 54  48 45 52 20 54 52 49 43  |RY. aNOTHER TRIC|
00001F40: 4B 20 55 53 45 44 20 49  53 20 54 48 45 20 22 42  |K USED IS THE "B|
00001F50: 43 43 20 20 5A 45 52 4F  20 20 20 49 4E 43 20 50  |CC  ZERO   INC P|
00001F60: 52 4F 44 55 43 54 2B 31  22 20 20 50 41 52 54 20  |RODUCT+1"  PART |
00001F70: 4F 46 20 54 48 45 20 20  20 20 20 20 50 52 4F 47  |OF THE      PROG|
00001F80: 52 41 4D 2C 20 57 48 49  43 48 20 53 41 56 45 53  |RAM, WHICH SAVES|
00001F90: 20 41 4E 20 41 44 44 49  54 49 4F 4E 2E 20 69 46  | AN ADDITION. iF|
00001FA0: 20 59 4F 55 43 41 4E 20  55 4E 44 45 52 53 54 41  | YOUCAN UNDERSTA|
00001FB0: 4E 44 20 54 48 49 53 20  4D 55 4C 54 49 50 4C 49  |ND THIS MULTIPLI|
00001FC0: 43 41 54 49 4F 4E 2C 20  59 4F 55 20 43 41 4E 20  |CATION, YOU CAN |
00001FD0: 43 41 4C 4C 20 59 4F 55  52 53 45 4C 46 20 4C 49  |CALL YOURSELF LI|
00001FE0: 54 45 52 41 54 45 20 49  4E 20 6D 6C 2E 20 6A 4F  |TERATE IN ml. jO|
00001FF0: 4C 4C 59 20 47 4F 4F 44  20 53 48 4F 57 2C 20 4D  |LLY GOOD SHOW, M|
00002000: 41 54 45 21 20 6F 4E 20  54 4F 20 4C 49 54 45 52  |ATE! oN TO LITER|
00002010: 41 54 55 52 45 2E 2E 2E  2E 0D 5E 0D 0D 20 20 20  |ATURE.....^..   |
00002020: 20 20 20 20 20 20 20 20  74 48 45 20 73 54 41 43  |        tHE sTAC|
00002030: 4B 0D 0D 20 20 77 48 45  4E 20 54 48 45 20 36 35  |K..  wHEN THE 65|
00002040: 31 30 20 45 58 45 43 55  54 45 53 20 41 20 4A 53  |10 EXECUTES A JS|
00002050: 52 20 43 4F 4D 4D 41 4E  44 2C 20 49 54 20 48 41  |R COMMAND, IT HA|
00002060: 53 20 54 4F 20 52 45 4D  45 4D 42 45 52 20 57 48  |S TO REMEMBER WH|
00002070: 45 52 45 20 49 54 27 53  20 4A 53 52 2D 49 4E 47  |ERE IT'S JSR-ING|
00002080: 20 20 20 46 52 4F 4D 2C  20 53 4F 20 49 54 20 43  |   FROM, SO IT C|
00002090: 41 4E 20 47 4F 20 42 41  43 4B 20 54 48 45 52 45  |AN GO BACK THERE|
000020A0: 20 57 48 45 4E 20 49 54  20 20 20 48 49 54 53 20  | WHEN IT   HITS |
000020B0: 54 48 45 20 4E 45 58 54  20 52 54 53 2E 20 62 55  |THE NEXT RTS. bU|
000020C0: 54 20 49 54 20 41 4C 53  4F 20 4C 45 54 53 20 59  |T IT ALSO LETS Y|
000020D0: 4F 55 20 48 41 56 45 20  41 20 53 45 43 4F 4E 44  |OU HAVE A SECOND|
000020E0: 2C 20 4F 52 20 41 20 54  48 49 52 44 2C 4F 52 20  |, OR A THIRD,OR |
000020F0: 41 4E 59 20 4E 55 4D 42  45 52 20 4F 46 20 4A 53  |ANY NUMBER OF JS|
00002100: 52 27 53 20 57 49 54 48  49 4E 20 45 41 43 48 20  |R'S WITHIN EACH |
00002110: 4F 54 48 45 52 20 42 45  46 4F 52 45 20 54 48 45  |OTHER BEFORE THE|
00002120: 20 20 20 46 49 52 53 54  20 52 54 53 2E 20 69 54  |   FIRST RTS. iT|
00002130: 20 4D 41 4E 41 47 45 53  20 54 48 49 53 20 42 59  | MANAGES THIS BY|
00002140: 20 4C 45 41 56 49 4E 47  20 20 20 45 41 43 48 20  | LEAVING   EACH |
00002150: 41 44 44 52 45 53 53 20  4A 53 52 2D 45 44 20 46  |ADDRESS JSR-ED F|
00002160: 52 4F 4D 20 4F 4E 20 54  4F 50 20 4F 46 20 41 20  |ROM ON TOP OF A |
00002170: 20 20 20 53 54 41 43 4B  20 49 54 20 4B 45 45 50  |   STACK IT KEEP|
00002180: 53 20 49 4E 20 50 41 47  45 20 31 20 4F 46 20 4D  |S IN PAGE 1 OF M|
00002190: 45 4D 4F 52 59 20 28 46  52 4F 4D 24 30 31 30 30  |EMORY (FROM$0100|
000021A0: 20 54 4F 20 24 30 31 46  46 29 2E 20 77 48 45 4E  | TO $01FF). wHEN|
000021B0: 20 49 54 20 43 4F 4D 45  53 20 54 4F 20 41 20 52  | IT COMES TO A R|
000021C0: 54 53 2C 49 54 20 50 55  4C 4C 53 20 54 48 45 20  |TS,IT PULLS THE |
000021D0: 41 44 44 52 45 53 53 20  54 4F 20 52 45 54 55 52  |ADDRESS TO RETUR|
000021E0: 4E 20 54 4F 20 4F 46 46  20 20 20 54 48 45 20 54  |N TO OFF   THE T|
000021F0: 4F 50 20 4F 46 20 54 48  45 20 53 54 41 43 4B 2C  |OP OF THE STACK,|
00002200: 20 4C 45 41 56 49 4E 47  20 54 48 45 20 4E 45 58  | LEAVING THE NEX|
00002210: 54 20 20 41 44 44 52 45  53 53 20 44 4F 57 4E 20  |T  ADDRESS DOWN |
00002220: 46 4F 52 20 54 48 45 20  4E 45 58 54 20 52 54 53  |FOR THE NEXT RTS|
00002230: 2E 0D 0D 20 20 74 48 45  20 53 54 41 43 4B 20 53  |...  tHE STACK S|
00002240: 54 41 52 54 53 20 41 54  20 24 30 31 46 46 20 41  |TARTS AT $01FF A|
00002250: 4E 44 20 47 52 4F 57 53  20 20 20 44 4F 57 4E 57  |ND GROWS   DOWNW|
00002260: 41 52 44 53 20 54 4F 57  41 52 44 53 20 24 30 31  |ARDS TOWARDS $01|
00002270: 30 30 2E 20 73 49 4E 43  45 20 4F 4E 45 20 20 20  |00. sINCE ONE   |
00002280: 20 20 20 41 44 44 52 45  53 53 20 49 53 20 54 57  |   ADDRESS IS TW|
00002290: 4F 20 42 59 54 45 53 20  4C 4F 4E 47 2C 20 4F 4E  |O BYTES LONG, ON|
000022A0: 4C 59 20 31 32 38 20 20  20 20 20 41 44 44 52 45  |LY 128     ADDRE|
000022B0: 53 53 45 53 20 43 41 4E  20 42 45 20 4B 45 50 54  |SSES CAN BE KEPT|
000022C0: 20 4F 4E 20 54 48 45 20  53 54 41 43 4B 2E 0D 5E  | ON THE STACK..^|
000022D0: 0D 0D 20 20 20 20 20 20  20 74 48 45 20 73 54 41  |..       tHE sTA|
000022E0: 43 4B 20 28 63 4F 4E 54  49 4E 55 45 44 29 0D 0D  |CK (cONTINUED)..|
000022F0: 20 20 69 46 20 59 4F 55  20 54 52 59 20 54 4F 20  |  iF YOU TRY TO |
00002300: 50 55 54 20 4D 4F 52 45  20 4F 4E 20 54 48 45 20  |PUT MORE ON THE |
00002310: 53 54 41 43 4B 2C 20 20  49 54 20 22 57 52 41 50  |STACK,  IT "WRAP|
00002320: 53 20 41 52 4F 55 4E 44  22 20 41 4E 44 20 53 54  |S AROUND" AND ST|
00002330: 41 52 54 53 20 4F 56 45  52 20 41 54 20 20 20 20  |ARTS OVER AT    |
00002340: 24 30 31 46 46 2C 20 44  45 53 54 52 4F 59 49 4E  |$01FF, DESTROYIN|
00002350: 47 20 54 48 45 20 46 49  52 53 54 20 46 45 57 20  |G THE FIRST FEW |
00002360: 42 49 54 53 20 4F 46 20  49 4E 46 4F 52 4D 41 54  |BITS OF INFORMAT|
00002370: 49 4F 4E 20 54 48 45 52  45 2E 20 6E 4F 52 4D 41  |ION THERE. nORMA|
00002380: 4C 4C 59 2C 20 54 48 49  53 20 49 53 20 4E 4F 54  |LLY, THIS IS NOT|
00002390: 41 20 50 52 4F 42 4C 45  4D 2E 20 74 48 45 20 53  |A PROBLEM. tHE S|
000023A0: 54 41 43 4B 20 49 53 20  42 49 47 20 45 4E 4F 55  |TACK IS BIG ENOU|
000023B0: 47 48 2E 0D 0D 20 20 74  48 45 20 36 35 31 30 20  |GH...  tHE 6510 |
000023C0: 4B 45 45 50 53 20 54 52  41 43 4B 20 4F 46 20 54  |KEEPS TRACK OF T|
000023D0: 48 45 20 54 4F 50 20 4F  46 20 54 48 45 53 54 41  |HE TOP OF THESTA|
000023E0: 43 4B 20 57 49 54 48 20  54 48 45 20 53 50 20 52  |CK WITH THE SP R|
000023F0: 45 47 49 53 54 45 52 2C  20 54 48 45 20 53 54 41  |EGISTER, THE STA|
00002400: 43 4B 20 20 20 50 4F 49  4E 54 45 52 2E 20 77 48  |CK   POINTER. wH|
00002410: 45 4E 20 49 54 20 50 55  54 53 20 53 4F 4D 45 54  |EN IT PUTS SOMET|
00002420: 48 49 4E 47 20 4F 4E 20  4F 52 20 20 20 54 41 4B  |HING ON OR   TAK|
00002430: 45 53 20 53 4F 4D 45 54  48 49 4E 47 20 4F 46 46  |ES SOMETHING OFF|
00002440: 20 54 48 45 20 53 54 41  43 4B 2C 20 49 54 20 20  | THE STACK, IT  |
00002450: 20 20 20 20 20 41 44 4A  55 53 54 53 20 54 48 45  |     ADJUSTS THE|
00002460: 20 53 54 41 43 4B 20 50  4F 49 4E 54 45 52 20 53  | STACK POINTER S|
00002470: 4F 20 49 54 20 41 4C 57  41 59 53 20 20 50 4F 49  |O IT ALWAYS  POI|
00002480: 4E 54 53 20 54 4F 20 54  48 45 20 41 44 44 52 45  |NTS TO THE ADDRE|
00002490: 53 53 20 4F 46 20 54 48  45 20 54 4F 50 20 49 54  |SS OF THE TOP IT|
000024A0: 45 4D 20 20 20 4F 4E 20  54 48 45 20 53 54 41 43  |EM   ON THE STAC|
000024B0: 4B 2E 20 69 46 20 59 4F  55 20 4E 45 45 44 20 54  |K. iF YOU NEED T|
000024C0: 4F 20 4B 4E 4F 57 20 57  48 41 54 27 53 49 4E 20  |O KNOW WHAT'SIN |
000024D0: 54 48 45 20 53 54 41 43  4B 20 50 4F 49 4E 54 45  |THE STACK POINTE|
000024E0: 52 20 28 46 45 57 20 50  45 4F 50 4C 45 20 44 4F  |R (FEW PEOPLE DO|
000024F0: 29 2C 20 20 20 54 58 53  20 41 4E 44 20 54 53 58  |),   TXS AND TSX|
00002500: 20 54 52 41 4E 53 46 45  52 20 54 48 45 20 78 20  | TRANSFER THE x |
00002510: 52 45 47 49 53 54 45 52  20 54 4F 20 20 54 48 45  |REGISTER TO  THE|
00002520: 20 53 54 41 43 4B 20 50  4F 49 4E 54 45 52 20 41  | STACK POINTER A|
00002530: 4E 44 20 56 49 43 45 20  56 45 52 53 41 2E 20 74  |ND VICE VERSA. t|
00002540: 48 45 20 20 20 24 30 31  20 41 54 20 54 48 45 20  |HE   $01 AT THE |
00002550: 53 54 41 52 54 20 4F 46  20 54 48 45 20 41 44 44  |START OF THE ADD|
00002560: 52 45 53 53 20 49 53 20  4E 4F 54 20 20 54 52 41  |RESS IS NOT  TRA|
00002570: 4E 53 46 45 52 52 45 44  2C 20 42 55 54 20 53 49  |NSFERRED, BUT SI|
00002580: 4D 50 4C 59 20 41 53 53  55 4D 45 44 2E 0D 5E 0D  |MPLY ASSUMED..^.|
00002590: 0D 20 20 20 20 20 20 20  74 48 45 20 73 54 41 43  |.       tHE sTAC|
000025A0: 4B 20 28 63 4F 4E 54 49  4E 55 45 44 29 0D 0D 20  |K (cONTINUED).. |
000025B0: 20 6D 4F 52 45 20 55 53  45 46 55 4C 20 53 54 41  | mORE USEFUL STA|
000025C0: 43 4B 20 49 4E 53 54 52  55 43 54 49 4F 4E 53 20  |CK INSTRUCTIONS |
000025D0: 41 52 45 20 50 48 41 28  22 70 55 53 68 20 61 43  |ARE PHA("pUSh aC|
000025E0: 43 55 4D 55 4C 41 54 4F  52 20 4F 4E 54 4F 20 53  |CUMULATOR ONTO S|
000025F0: 54 41 43 4B 22 29 20 41  4E 44 20 50 4C 41 20 28  |TACK") AND PLA (|
00002600: 22 70 55 6C 4C 20 61 43  43 55 4D 55 4C 41 54 4F  |"pUlL aCCUMULATO|
00002610: 52 20 4F 46 46 20 53 54  41 43 4B 22 29 2C 20 57  |R OFF STACK"), W|
00002620: 48 49 43 48 20 20 20 41  4C 4C 4F 57 20 54 48 45  |HICH   ALLOW THE|
00002630: 20 41 43 43 55 4D 55 4C  41 54 4F 52 20 54 4F 20  | ACCUMULATOR TO |
00002640: 42 45 20 47 4F 54 54 45  4E 20 4F 55 54 20 20 4F  |BE GOTTEN OUT  O|
00002650: 46 20 54 48 45 20 57 41  59 20 54 45 4D 50 4F 52  |F THE WAY TEMPOR|
00002660: 41 52 49 4C 59 20 57 49  54 48 4F 55 54 20 48 41  |ARILY WITHOUT HA|
00002670: 56 49 4E 47 20 54 4F 53  50 45 43 49 41 4C 4C 59  |VING TOSPECIALLY|
00002680: 20 52 45 53 45 52 56 45  20 41 20 50 4C 41 43 45  | RESERVE A PLACE|
00002690: 20 49 4E 20 4D 45 4D 4F  52 59 20 46 4F 52 20 49  | IN MEMORY FOR I|
000026A0: 54 2E 20 73 4F 4D 45 54  49 4D 45 53 20 59 4F 55  |T. sOMETIMES YOU|
000026B0: 20 57 49 4C 4C 20 53 45  45 20 22 50 48 41 20 20  | WILL SEE "PHA  |
000026C0: 54 58 41 20 20 20 20 50  48 41 20 20 54 59 41 20  |TXA    PHA  TYA |
000026D0: 20 50 48 41 22 20 55 53  45 44 20 54 4F 20 53 54  | PHA" USED TO ST|
000026E0: 4F 52 45 20 41 4C 4C 20  54 48 45 20 20 20 20 36  |ORE ALL THE    6|
000026F0: 35 31 30 27 53 20 52 45  47 49 53 54 45 52 53 20  |510'S REGISTERS |
00002700: 4F 55 54 20 4F 46 20 48  41 52 4D 27 53 20 57 41  |OUT OF HARM'S WA|
00002710: 59 2E 0D 0D 20 20 6E 4F  54 45 20 54 48 41 54 20  |Y...  nOTE THAT |
00002720: 54 48 49 53 20 43 41 4E  20 4F 4E 4C 59 20 42 45  |THIS CAN ONLY BE|
00002730: 20 55 53 45 44 20 20 20  20 20 20 20 54 45 4D 50  | USED       TEMP|
00002740: 4F 52 41 52 49 4C 59 2C  20 42 45 43 41 55 53 45  |ORARILY, BECAUSE|
00002750: 20 49 46 20 41 4E 20 52  54 53 20 49 53 20 20 20  | IF AN RTS IS   |
00002760: 20 20 20 20 45 58 45 43  55 54 45 44 20 42 45 46  |    EXECUTED BEF|
00002770: 4F 52 45 20 54 48 45 20  56 41 4C 55 45 20 49 53  |ORE THE VALUE IS|
00002780: 20 52 45 4D 4F 56 45 44  20 20 20 20 41 47 41 49  | REMOVED    AGAI|
00002790: 4E 20 28 42 59 20 50 4C  41 29 2C 20 54 48 45 4E  |N (BY PLA), THEN|
000027A0: 20 54 48 45 20 36 35 31  30 20 57 49 4C 4C 20 54  | THE 6510 WILL T|
000027B0: 41 4B 45 20 54 48 45 20  41 43 43 55 4D 55 4C 41  |AKE THE ACCUMULA|
000027C0: 54 4F 52 27 53 20 53 54  4F 52 45 44 20 56 41 4C  |TOR'S STORED VAL|
000027D0: 55 45 20 41 4E 44 20 54  48 45 20 20 57 52 4F 4E  |UE AND THE  WRON|
000027E0: 47 20 48 41 4C 46 20 4F  46 20 54 48 45 20 41 44  |G HALF OF THE AD|
000027F0: 44 52 45 53 53 20 42 45  4C 4F 57 20 49 54 20 41  |DRESS BELOW IT A|
00002800: 53 20 41 4E 41 44 44 52  45 53 53 2C 20 41 4E 44  |S ANADDRESS, AND|
00002810: 20 52 54 53 20 54 4F 20  4E 45 56 45 52 2D 4E 45  | RTS TO NEVER-NE|
00002820: 56 45 52 20 4C 41 4E 44  2E 20 62 45 43 41 52 45  |VER LAND. bECARE|
00002830: 46 55 4C 21 0D 5E 0D 0D  20 20 20 20 20 20 20 74  |FUL!.^..       t|
00002840: 48 45 20 73 54 41 43 4B  20 28 63 4F 4E 54 49 4E  |HE sTACK (cONTIN|
00002850: 55 45 44 29 0D 0D 20 79  4F 55 20 43 41 4E 2C 20  |UED).. yOU CAN, |
00002860: 48 4F 57 45 56 45 52 2C  20 4C 45 41 56 45 20 41  |HOWEVER, LEAVE A|
00002870: 20 4E 55 4D 42 45 52 20  4F 4E 20 54 48 45 53 54  | NUMBER ON THEST|
00002880: 41 43 4B 2C 20 44 4F 20  41 20 4A 53 52 2C 20 41  |ACK, DO A JSR, A|
00002890: 4E 44 20 52 45 54 52 49  45 56 45 20 49 54 20 41  |ND RETRIEVE IT A|
000028A0: 46 54 45 52 20 20 54 48  45 20 52 54 53 2E 20 74  |FTER  THE RTS. t|
000028B0: 48 49 53 20 49 53 20 56  45 52 59 20 55 53 45 46  |HIS IS VERY USEF|
000028C0: 55 4C 20 49 46 20 59 4F  55 20 57 41 4E 54 41 20  |UL IF YOU WANTA |
000028D0: 53 55 42 52 4F 55 54 49  4E 45 20 54 4F 20 43 41  |SUBROUTINE TO CA|
000028E0: 4C 4C 20 49 54 53 45 4C  46 20 42 55 54 20 54 4F  |LL ITSELF BUT TO|
000028F0: 20 4B 45 45 50 20 53 4F  4D 45 20 56 41 4C 55 45  | KEEP SOME VALUE|
00002900: 20 46 4F 52 20 55 53 45  20 41 46 54 45 52 20 54  | FOR USE AFTER T|
00002910: 48 45 20 45 4E 44 20 4F  46 20 54 48 45 20 53 55  |HE END OF THE SU|
00002920: 42 52 4F 55 54 49 4E 45  2E 20 61 44 56 41 4E 43  |BROUTINE. aDVANC|
00002930: 45 44 2C 20 42 55 54 20  55 53 45 46 55 4C 2E 0D  |ED, BUT USEFUL..|
00002940: 0D 20 20 74 48 45 20 52  45 4D 41 49 4E 49 4E 47  |.  tHE REMAINING|
00002950: 20 54 57 4F 20 49 4E 53  54 52 55 43 54 49 4F 4E  | TWO INSTRUCTION|
00002960: 53 20 57 48 49 43 48 20  20 41 46 46 45 43 54 20  |S WHICH  AFFECT |
00002970: 54 48 45 20 53 54 41 43  4B 20 41 52 45 20 50 48  |THE STACK ARE PH|
00002980: 50 20 28 70 55 53 68 20  70 20 20 20 20 20 20 20  |P (pUSh p       |
00002990: 20 52 45 47 49 53 54 45  52 29 20 41 4E 44 20 50  | REGISTER) AND P|
000029A0: 4C 50 20 28 70 55 6C 4C  20 70 20 52 45 47 49 53  |LP (pUlL p REGIS|
000029B0: 54 45 52 29 2C 20 20 20  20 57 48 49 43 48 20 41  |TER),    WHICH A|
000029C0: 4C 4C 4F 57 20 59 4F 55  20 54 4F 20 4B 45 45 50  |LLOW YOU TO KEEP|
000029D0: 20 41 4C 4C 20 54 48 45  20 46 4C 41 47 53 20 20  | ALL THE FLAGS  |
000029E0: 20 53 41 46 45 20 4F 4E  20 54 48 45 20 53 54 41  | SAFE ON THE STA|
000029F0: 43 4B 20 46 4F 52 20 41  20 57 48 49 4C 45 2E 20  |CK FOR A WHILE. |
00002A00: 70 48 50 20 50 4C 41 20  20 49 53 20 41 4C 53 4F  |pHP PLA  IS ALSO|
00002A10: 20 54 48 45 20 4F 4E 4C  59 20 57 41 59 20 54 4F  | THE ONLY WAY TO|
00002A20: 20 4C 4F 4F 4B 20 41 54  20 53 4F 4D 45 20 20 20  | LOOK AT SOME   |
00002A30: 20 46 4C 41 47 53 2C 4E  4F 54 41 42 4C 59 20 54  | FLAGS,NOTABLY T|
00002A40: 48 45 20 31 20 46 4C 41  47 20 41 4E 44 20 54 48  |HE 1 FLAG AND TH|
00002A50: 45 20 62 20 46 4C 41 47  2E 0D 20 20 6C 49 4B 45  |E b FLAG..  lIKE|
00002A60: 20 50 48 41 2C 20 41 20  50 48 50 20 4D 55 53 54  | PHA, A PHP MUST|
00002A70: 20 42 45 20 42 41 4C 41  4E 43 45 44 20 42 59 20  | BE BALANCED BY |
00002A80: 41 20 50 4C 50 20 42 45  46 4F 52 45 20 41 4E 20  |A PLP BEFORE AN |
00002A90: 52 54 53 20 41 54 54 45  4D 50 54 53 20 54 4F 20  |RTS ATTEMPTS TO |
00002AA0: 55 53 45 20 54 48 45 20  20 20 53 54 4F 52 45 44  |USE THE   STORED|
00002AB0: 20 50 20 52 45 47 49 53  54 45 52 20 41 53 20 50  | P REGISTER AS P|
00002AC0: 41 52 54 20 4F 46 20 41  4E 20 41 44 44 52 45 53  |ART OF AN ADDRES|
00002AD0: 53 2E 5E 0D 0D 20 20 20  20 20 20 20 74 48 45 20  |S.^..       tHE |
00002AE0: 73 54 41 43 4B 20 28 63  4F 4E 54 49 4E 55 45 44  |sTACK (cONTINUED|
00002AF0: 29 0D 0D 20 20 74 48 49  53 20 43 41 4E 20 42 45  |)..  tHIS CAN BE|
00002B00: 20 55 53 45 44 20 54 4F  20 59 4F 55 52 20 41 44  | USED TO YOUR AD|
00002B10: 56 41 4E 54 41 47 45 20  49 46 20 59 4F 55 20 57  |VANTAGE IF YOU W|
00002B20: 41 4E 54 20 54 4F 2C 20  52 54 53 20 54 4F 2C 20  |ANT TO, RTS TO, |
00002B30: 53 41 59 2C 20 54 48 45  20 4A 53 52 20 54 57 4F  |SAY, THE JSR TWO|
00002B40: 20 20 20 53 54 45 50 53  20 42 41 43 4B 2C 20 49  |   STEPS BACK, I|
00002B50: 4E 53 54 45 41 44 20 4F  46 20 54 48 45 20 20 55  |NSTEAD OF THE  U|
00002B60: 53 55 41 4C 20 4F 4E 45  2E 20 20 22 70 4C 41 20  |SUAL ONE.  "pLA |
00002B70: 20 50 4C 41 22 20 57 49  4C 4C 20 52 45 4D 4F 56  | PLA" WILL REMOV|
00002B80: 45 20 54 48 45 20 4D 4F  53 54 20 52 45 43 45 4E  |E THE MOST RECEN|
00002B90: 54 20 20 41 44 44 52 45  53 53 20 46 52 4F 4D 20  |T  ADDRESS FROM |
00002BA0: 54 48 45 20 53 54 41 43  4B 2C 20 4C 45 41 56 49  |THE STACK, LEAVI|
00002BB0: 4E 47 20 54 48 45 20 4E  45 58 54 4F 4E 45 20 44  |NG THE NEXTONE D|
00002BC0: 4F 57 4E 20 4F 4E 20 54  4F 50 2E 0D 0D 20 20 79  |OWN ON TOP...  y|
00002BD0: 4F 55 20 43 41 4E 20 41  4C 53 4F 20 46 4F 4F 4C  |OU CAN ALSO FOOL|
00002BE0: 20 52 54 53 20 49 4E 54  4F 20 52 45 54 55 52 4E  | RTS INTO RETURN|
00002BF0: 49 4E 47 20 20 54 4F 20  41 20 44 49 46 46 45 52  |ING  TO A DIFFER|
00002C00: 45 4E 54 20 41 44 44 52  45 53 53 20 46 52 4F 4D  |ENT ADDRESS FROM|
00002C10: 20 54 48 45 20 4F 4E 45  20 4A 53 52 2D 45 44 20  | THE ONE JSR-ED |
00002C20: 46 52 4F 4D 2E 20 70 48  41 20 54 48 45 20 41 44  |FROM. pHA THE AD|
00002C30: 44 52 45 53 53 20 4F 4E  54 4F 20 54 48 45 20 53  |DRESS ONTO THE S|
00002C40: 54 41 43 4B 20 41 4E 44  20 4A 4D 50 20 54 4F 20  |TACK AND JMP TO |
00002C50: 54 48 45 20 53 55 42 52  4F 55 54 49 4E 45 2E 20  |THE SUBROUTINE. |
00002C60: 61 43 54 55 41 4C 4C 59  20 59 4F 55 20 53 48 4F  |aCTUALLY YOU SHO|
00002C70: 55 4C 44 20 50 48 41 20  54 48 45 20 41 44 44 52  |ULD PHA THE ADDR|
00002C80: 45 53 53 2D 31 20 28 4D  49 4E 55 53 20 4F 4E 45  |ESS-1 (MINUS ONE|
00002C90: 29 20 20 20 20 4F 4E 54  4F 20 54 48 45 20 53 54  |)    ONTO THE ST|
00002CA0: 41 43 4B 2C 20 48 49 47  48 20 42 59 54 45 20 28  |ACK, HIGH BYTE (|
00002CB0: 54 48 45 20 24 41 42 20  49 4E 20 20 20 24 41 42  |THE $AB IN   $AB|
00002CC0: 43 44 29 20 46 49 52 53  54 2E 0D 0D 20 20 74 48  |CD) FIRST...  tH|
00002CD0: 49 53 20 49 53 20 47 45  54 54 49 4E 47 20 50 52  |IS IS GETTING PR|
00002CE0: 45 54 54 59 20 41 42 54  52 55 53 45 2C 20 41 4E  |ETTY ABTRUSE, AN|
00002CF0: 44 20 20 20 49 54 20 57  49 4C 4C 20 50 52 4F 42  |D   IT WILL PROB|
00002D00: 41 42 4C 59 20 42 45 20  41 20 57 48 49 4C 45 20  |ABLY BE A WHILE |
00002D10: 42 45 46 4F 52 45 20 59  4F 55 20 20 53 54 41 52  |BEFORE YOU  STAR|
00002D20: 54 20 50 4C 41 59 49 4E  47 20 57 49 54 48 20 54  |T PLAYING WITH T|
00002D30: 48 45 20 53 54 41 43 4B  2E 20 62 55 54 20 49 54  |HE STACK. bUT IT|
00002D40: 20 49 53 20 57 4F 52 54  48 20 4B 4E 4F 57 49 4E  | IS WORTH KNOWIN|
00002D50: 47 20 57 48 41 54 20 54  48 45 20 53 54 41 43 4B  |G WHAT THE STACK|
00002D60: 20 43 41 4E 20 44 4F 2E  0D 5E 0D 20 20 20 20 20  | CAN DO..^.     |
00002D70: 20 20 20 75 53 49 4E 47  20 62 41 53 49 43 20 46  |   uSING bASIC F|
00002D80: 52 4F 4D 20 6D 6C 0D 0D  20 20 61 53 20 59 4F 55  |ROM ml..  aS YOU|
00002D90: 20 4B 4E 4F 57 2C 20 62  41 53 49 43 20 49 53 20  | KNOW, bASIC IS |
00002DA0: 41 4E 20 6D 6C 20 50 52  4F 47 52 41 4D 2E 20 20  |AN ml PROGRAM.  |
00002DB0: 73 4F 4D 45 20 42 49 54  53 20 4F 46 20 49 54 20  |sOME BITS OF IT |
00002DC0: 44 4F 20 55 53 45 46 55  4C 20 54 48 49 4E 47 53  |DO USEFUL THINGS|
00002DD0: 20 53 55 43 48 20 41 53  43 4C 45 41 52 49 4E 47  | SUCH ASCLEARING|
00002DE0: 20 54 48 45 20 53 43 52  45 45 4E 2C 20 50 52 49  | THE SCREEN, PRI|
00002DF0: 4E 54 49 4E 47 20 43 48  41 52 41 43 54 45 52 53  |NTING CHARACTERS|
00002E00: 54 4F 20 54 48 45 20 53  43 52 45 45 4E 20 28 45  |TO THE SCREEN (E|
00002E10: 41 53 59 2C 20 45 48 3F  20 54 52 59 20 22 44 45  |ASY, EH? TRY "DE|
00002E20: 4C 45 54 45 22 2E 29 20  41 4E 44 20 43 4F 4D 4D  |LETE".) AND COMM|
00002E30: 55 4E 49 43 41 54 49 4E  47 20 57 49 54 48 20 54  |UNICATING WITH T|
00002E40: 48 45 20 44 49 53 4B 20  44 52 49 56 45 2E 0D 0D  |HE DISK DRIVE...|
00002E50: 20 20 6F 4E 20 54 48 45  20 4E 45 58 54 20 50 41  |  oN THE NEXT PA|
00002E60: 47 45 20 41 52 45 20 4A  55 53 54 20 41 20 46 45  |GE ARE JUST A FE|
00002E70: 57 20 4F 46 20 54 48 45  45 41 53 49 45 52 20 52  |W OF THEEASIER R|
00002E80: 4F 55 54 49 4E 45 53 20  54 4F 20 55 53 45 2E 20  |OUTINES TO USE. |
00002E90: 74 48 45 52 45 20 41 52  45 20 4F 56 45 52 20 20  |tHERE ARE OVER  |
00002EA0: 31 30 30 20 41 56 41 49  4C 41 42 4C 45 2C 20 41  |100 AVAILABLE, A|
00002EB0: 4E 44 20 54 48 45 20 55  53 45 20 4F 46 20 41 20  |ND THE USE OF A |
00002EC0: 47 4F 4F 44 0D 52 45 46  45 52 45 4E 43 45 20 42  |GOOD.REFERENCE B|
00002ED0: 4F 4F 4B 20 49 53 20 52  45 43 4F 4D 4D 45 4E 44  |OOK IS RECOMMEND|
00002EE0: 45 44 2E 0D 5E 0D 0D 63  68 72 6F 75 74 20 24 46  |ED..^..chrout $F|
00002EF0: 46 44 32 20 20 74 48 49  53 20 52 4F 55 54 49 4E  |FD2  tHIS ROUTIN|
00002F00: 45 20 50 52 49 4E 54 53  20 54 48 45 20 20 20 20  |E PRINTS THE    |
00002F10: 20 43 48 41 52 41 43 54  45 52 20 49 4E 20 54 48  | CHARACTER IN TH|
00002F20: 45 20 41 43 43 55 4D 55  4C 41 54 4F 52 2E 0D 63  |E ACCUMULATOR..c|
00002F30: 68 72 69 6E 20 20 24 46  46 43 46 20 72 45 54 55  |hrin  $FFCF rETU|
00002F40: 52 4E 53 20 41 20 43 48  41 52 41 43 54 45 52 20  |RNS A CHARACTER |
00002F50: 46 52 4F 4D 20 20 20 20  20 54 48 45 20 49 4E 50  |FROM     THE INP|
00002F60: 55 54 20 42 55 46 46 45  52 20 49 4E 20 54 48 45  |UT BUFFER IN THE|
00002F70: 20 41 43 43 55 4D 55 4C  41 54 4F 52 2E 20 20 20  | ACCUMULATOR.   |
00002F80: 20 69 46 20 54 48 45 20  42 55 46 46 45 52 27 53  | iF THE BUFFER'S|
00002F90: 20 45 4D 50 54 59 2C 20  46 49 4C 4C 53 20 49 54  | EMPTY, FILLS IT|
00002FA0: 20 42 59 20 20 20 20 20  20 41 43 43 45 50 54 49  | BY      ACCEPTI|
00002FB0: 4E 47 20 41 20 4C 49 4E  45 20 55 4E 54 49 4C 20  |NG A LINE UNTIL |
00002FC0: 41 20 72 65 74 75 72 6E  2E 0D 67 65 74 69 6E 20  |A return..getin |
00002FD0: 20 24 46 46 45 34 20 6C  49 4B 45 20 62 41 53 49  | $FFE4 lIKE bASI|
00002FE0: 43 20 67 65 74 2E 20 72  45 54 55 52 4E 53 20 20  |C get. rETURNS  |
00002FF0: 20 20 20 20 44 41 54 41  20 49 4E 20 54 48 45 20  |    DATA IN THE |
00003000: 41 43 43 55 4D 55 4C 41  54 4F 52 2C 20 4F 52 20  |ACCUMULATOR, OR |
00003010: 30 20 49 46 20 4E 4F 20  20 20 20 20 4B 45 59 20  |0 IF NO     KEY |
00003020: 48 41 53 20 42 45 45 4E  20 50 52 45 53 53 45 44  |HAS BEEN PRESSED|
00003030: 2E 0D 20 20 20 20 20 20  20 24 42 44 43 44 20 70  |..       $BDCD p|
00003040: 52 49 4E 54 53 20 28 49  4E 20 44 45 43 49 4D 41  |RINTS (IN DECIMA|
00003050: 4C 29 20 54 48 45 20 32  2D 20 20 20 42 59 54 45  |L) THE 2-   BYTE|
00003060: 20 4E 55 4D 42 45 52 20  49 4E 20 54 48 45 20 41  | NUMBER IN THE A|
00003070: 43 43 55 4D 55 4C 41 54  4F 52 20 41 4E 44 20 58  |CCUMULATOR AND X|
00003080: 20 20 20 20 52 45 47 49  53 54 45 52 20 28 4C 4F  |    REGISTER (LO|
00003090: 57 20 48 41 4C 46 20 49  4E 20 58 29 2E 0D 70 6C  |W HALF IN X)..pl|
000030A0: 6F 74 20 20 20 24 46 46  46 30 20 63 55 52 53 4F  |ot   $FFF0 cURSO|
000030B0: 52 20 43 4F 4C 55 4D 4E  20 49 4E 20 58 20 41 4E  |R COLUMN IN X AN|
000030C0: 44 20 20 20 20 20 20 20  43 55 52 53 4F 52 20 52  |D       CURSOR R|
000030D0: 4F 57 20 49 4E 20 59 2E  20 69 46 20 63 20 49 53  |OW IN Y. iF c IS|
000030E0: 20 53 45 54 2C 20 52 45  54 55 52 4E 53 20 20 20  | SET, RETURNS   |
000030F0: 54 48 45 20 43 55 52 52  45 4E 54 20 56 41 4C 55  |THE CURRENT VALU|
00003100: 45 53 2E 20 69 46 20 63  3D 30 2C 20 53 45 54 53  |ES. iF c=0, SETS|
00003110: 20 54 48 45 20 20 20 20  43 55 52 53 4F 52 20 54  | THE    CURSOR T|
00003120: 4F 20 54 48 45 20 53 50  45 43 49 46 49 45 44 20  |O THE SPECIFIED |
00003130: 50 4F 53 49 54 49 4F 4E  2E 0D 20 20 20 20 20 20  |POSITION..      |
00003140: 20 24 41 34 37 34 20 74  48 49 53 20 48 41 53 20  | $A474 tHIS HAS |
00003150: 54 48 45 20 53 41 4D 45  20 45 46 46 45 43 54 20  |THE SAME EFFECT |
00003160: 41 53 20 20 20 48 49 54  54 49 4E 47 20 73 74 6F  |AS   HITTING sto|
00003170: 70 2F 72 65 73 74 6F 72  65 2E 0D 20 20 20 20 20  |p/restore..     |
00003180: 20 20 24 46 43 45 32 20  74 48 49 53 20 49 53 20  |  $FCE2 tHIS IS |
00003190: 54 48 45 20 53 41 4D 45  20 41 53 20 54 55 52 4E  |THE SAME AS TURN|
000031A0: 49 4E 47 20 20 20 54 48  45 20 43 4F 4D 50 55 54  |ING   THE COMPUT|
000031B0: 45 52 20 4F 46 46 20 41  4E 44 20 4F 4E 20 41 47  |ER OFF AND ON AG|
000031C0: 41 49 4E 0D 5E 0D 20 20  20 20 20 20 20 20 20 20  |AIN.^.          |
000031D0: 74 48 41 54 27 53 20 61  4C 4C 20 66 4F 4C 4B 53  |tHAT'S aLL fOLKS|
000031E0: 0D 0D 20 20 74 48 55 53  20 45 4E 44 53 20 54 48  |..  tHUS ENDS TH|
000031F0: 49 53 20 50 4F 54 50 4F  55 52 52 49 20 4F 46 20  |IS POTPOURRI OF |
00003200: 49 44 45 41 53 2E 20 20  20 20 74 48 45 20 4E 45  |IDEAS.    tHE NE|
00003210: 58 54 20 49 4E 53 54 41  4C 4D 45 4E 54 20 57 49  |XT INSTALMENT WI|
00003220: 4C 4C 20 57 52 41 50 20  55 50 20 54 48 45 20 20  |LL WRAP UP THE  |
00003230: 20 20 53 45 52 49 45 53  20 57 49 54 48 20 41 20  |  SERIES WITH A |
00003240: 4E 55 4D 42 45 52 20 4F  46 20 53 41 4D 50 4C 45  |NUMBER OF SAMPLE|
00003250: 20 6D 6C 20 20 20 20 20  20 20 50 52 4F 47 52 41  | ml       PROGRA|
00003260: 4D 53 20 54 4F 20 52 55  4E 20 54 48 52 4F 55 47  |MS TO RUN THROUG|
00003270: 48 20 41 4E 20 41 53 53  45 4D 42 4C 45 52 20 41  |H AN ASSEMBLER A|
00003280: 4E 44 4D 4F 52 45 20 49  4E 46 4F 52 4D 41 54 49  |NDMORE INFORMATI|
00003290: 4F 4E 20 41 4E 44 20 44  45 54 41 49 4C 20 4F 4E  |ON AND DETAIL ON|
000032A0: 20 6D 6C 20 41 43 43 45  53 53 54 4F 20 62 41 53  | ml ACCESSTO bAS|
000032B0: 49 43 20 46 55 4E 43 54  49 4F 4E 53 2E 20 69 46  |IC FUNCTIONS. iF|
000032C0: 20 59 4F 55 27 56 45 20  4D 41 44 45 20 49 54 20  | YOU'VE MADE IT |
000032D0: 20 20 54 48 49 53 20 46  41 52 20 54 48 52 4F 55  |  THIS FAR THROU|
000032E0: 47 48 20 54 48 45 20 4A  55 4E 47 4C 45 2C 20 59  |GH THE JUNGLE, Y|
000032F0: 4F 55 27 52 45 20 50 41  53 54 54 48 45 20 48 41  |OU'RE PASTTHE HA|
00003300: 52 44 20 50 41 52 54 2E  20 69 54 27 53 20 4A 55  |RD PART. iT'S JU|
00003310: 53 54 20 44 45 54 41 49  4C 53 20 54 48 41 54 20  |ST DETAILS THAT |
00003320: 20 20 41 52 45 20 4C 45  46 54 20 54 4F 20 57 4F  |  ARE LEFT TO WO|
00003330: 52 52 59 20 41 42 4F 55  54 2E 20 67 45 54 20 41  |RRY ABOUT. gET A|
00003340: 20 47 4F 4F 44 20 20 20  20 20 52 45 46 45 52 45  | GOOD     REFERE|
00003350: 4E 43 45 20 42 4F 4F 4B  20 41 4E 44 20 54 52 59  |NCE BOOK AND TRY|
00003360: 20 54 48 49 4E 47 53 20  4F 55 54 21 20 79 4F 55  | THINGS OUT! yOU|
00003370: 20 20 41 52 45 20 41 54  20 54 48 45 20 53 54 41  |  ARE AT THE STA|
00003380: 47 45 20 4F 46 20 6D 6C  20 45 51 55 49 56 41 4C  |GE OF ml EQUIVAL|
00003390: 45 4E 54 20 54 4F 20 20  20 20 59 4F 55 52 20 46  |ENT TO    YOUR F|
000033A0: 49 52 53 54 20 45 46 46  4F 52 54 53 20 49 4E 20  |IRST EFFORTS IN |
000033B0: 62 41 53 49 43 2E 20 79  4F 55 20 4B 4E 4F 57 20  |bASIC. yOU KNOW |
000033C0: 20 20 54 48 45 20 46 41  43 54 53 2C 20 41 4E 44  |  THE FACTS, AND|
000033D0: 20 50 52 41 43 54 49 53  45 20 57 49 4C 4C 20 45  | PRACTISE WILL E|
000033E0: 4E 41 42 4C 45 20 59 4F  55 20 54 4F 20 44 4F 20  |NABLE YOU TO DO |
000033F0: 53 4F 4D 45 54 48 49 4E  47 20 57 49 54 48 20 57  |SOMETHING WITH W|
00003400: 48 41 54 20 59 4F 55 20  4B 4E 4F 57 2E 0D 0D 20  |HAT YOU KNOW... |
00003410: 20 72 45 4D 45 4D 42 45  52 3A 20 54 48 45 52 45  | rEMEMBER: THERE|
00003420: 27 53 20 34 6B 20 4F 46  20 4D 45 4D 4F 52 59 20  |'S 4k OF MEMORY |
00003430: 46 52 4F 4D 20 20 20 24  43 30 30 30 20 4F 4E 20  |FROM   $C000 ON |
00003440: 4A 55 53 54 20 57 41 49  54 49 4E 47 20 54 4F 20  |JUST WAITING TO |
00003450: 42 45 20 46 49 4C 4C 45  44 20 57 49 54 48 20 6D  |BE FILLED WITH m|
00003460: 6C 20 4F 46 20 59 4F 55  52 20 44 45 56 49 53 49  |l OF YOUR DEVISI|
00003470: 4E 47 2E 0D 5E 5E 5E 5E  5E 5E 5E 5E 5E 5E 5E 5E  |NG..^^^^^^^^^^^^|
00003480: 5E 5E 5E 5E                                       |^^^^            |
JK^..  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 CHARACTERS ARE REPRESEN
TED BY.VALUES FROM %00000000 TO %0111111
1, WITHTHEIR REVERSE FIELD EQUIVALENTS U
SING   VALUES FROM %10000000 TO %1111111
1...  THUS SWITCHING ONE BIT (BIT 7, IN 
THE 128'S POSITION) ON (TO A 1) WILL REV
ERSEA CHARACTER ON THE SCREEN. FOR EXAMP
LE:..LDA 1024.ORA #%10000000.STA 1024..W
ILL 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...  U
SING "EOR %10000000" INSTEAD OF "ORA %10
000000" WOULD FLIP BIT 7, INVERTING  A "
NORMAL" CHARACTER AND RENDERING AN   INV
ERTED CHARACTER NORMAL...  THESE INSTRUC
TIONS ARE USED ANY TIME  YOU NEED TO SET
, CLEAR, OR FLIP ONE OR AGROUP OF BITS. 
THIS HAPPENS A LOT WITH  THE C-64'S SPEC
IAL SOUND AND VIDEO      CAPABILITIES, I
F YOU GET INTO THEM...  THESE INSTRUCTIO
NS CAN USE ANY        ADDRESSING MODES A
VAILABLE TO LDA AND   ALL TAKE THE SAME 
AMOUNT OF TIME AS LDA.^..        MORE BI
T-JUGGLING..  SOME OTHER INSTRUCTIONS US
ED TO       MANIPULATE THE BITS IN A BYT
E ARE ASL   (ARITHMETIC SHIFT LEFT), LSR
 (LOGICAL   SHIFT RIGHT), ROL (ROTATE LE
FT) AND ROR (ROTATE RIGHT). THESE INSTRU
CTIONS MOVE ALL THE BITS IN A BYTE LEFT 
OR RIGHT,   MULTIPLYING OR DIVIDING THE 
BYTE'S VALUEBY 2...  ALL THESE INSTRUCTI
ONS SET THE Z AND NFLAGS ACCORDING TO TH
E VALUE LEFT IN THEBYTE, AND THE BIT SHI
FTED OFF THE END OFTHE BYTE IS PLACED IN
 THE C FLAG...  ASL AND LSR ALWAYS SHIFT
 A 0 INTO THE APPLICABLE END OF THE BYTE
, WHILE ROL   AND ROR USE THE VALUE OF T
HE CARRY FLAG BEFORE THE OPERATION..^.. 
   MORE BIT-JUGGLING (CONTINUED)..THUS, 
TO MULTIPLY A TWO-BYTE NUMBER BY  2, USE
 THE CARRY BIT TO HOLD THE BIT    THAT J
UMPS THE BORDER BETWEEN BYTES:..LSR [LOW
 BYTE OF NUMBER].ROL [HIGH BYTE OF NUMBE
R]..  ADDING MORE ROL'S ALLOWS YOU TO US
E   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...  IN 
THE ACCUMULATOR ADDRESSING MODE,   THE A
CCUMULATOR IS SHIFTED INSTEAD OF A SPECI
FIED MEMORY LOCATION..^..    MORE BIT-JU
GGLING (CONTINUED)..  SOME ASSEMBLERS US
E THE FORMAT "ASL", WITHOUT ANY FOLLOWIN
G ADDRESS TO        INDICATE THAT THE AC
CUMULATOR MODE      IS TO BE USED BY THE
 ASL INSTRUCTION.   SOME OTHER ASSEMBLER
S REQUIRE "ASL A",  SPECIFYING THE ACCUM
ULATOR. THE GOLD    DISK ASSEMBLER IN VO
LUME 11, WHICH YOU  MAY BE USING, DOES N
OT REQUIRE THE EXTRA"A". SIMILARLY FOR L
SR, ROL AND ROR...  AS AN ASIDE, OTHER I
NSTRUCTIONS SUCH  AS TXA, PHP, ETC., WHI
CH "DON'T REALLY  HAVE" ADDRESSING MODES
 ARE SAID TO USE  THE "IMPLIED" ADDRESSI
NG MODE IN ORDER  TO GIVE ALL INSTRUCTIO
NS ADDRESSING     MODES. THE DISTINCTION
 FROM ACCUMULATOR MODE IS THAT OPCODES L
IKE ASL CAN.SPECIFY SEVERAL MODES, INCLU
DING.ACCUMULATOR..^..    MORE BIT-JUGGLI
NG (CONTINUED)..  THESE INSTRUCTIONS ARE
 USUALLY USED TOMULTIPLY NUMBERS TOGETHE
R. TO MULTIPLY  BY THREE, FOR EXAMPLE, T
AKE THE NUMBER  TO BE MULTIPLIED, ASL IT
, STORING THE   RESULT OF THE SHIFT TEMP
ORARILY, AND ADDTHE UNDISTURBED ORIGINAL
 NUMBER TO IT.  [NUMBER]+[2XNUMBER]=[3XN
UMBER]. ANY     NUMBER CAN BE USED IN SU
CH A PROCEDURE. TO MULTIPLY BY 6, SHIFT 
THE RESULT OVER AGAIN...  A GENERAL PROC
EDURE TO MULTIPLY ANY   TWO VALUES TOGET
HER IS SOMEWHAT MORE.COMPLEX, BUT USES T
HE SAME IDEAS. ON THENEXT SCREEN IS A PR
OGRAM WHICH WILL DO  THIS. IT WORKS RATH
ER LIKE THE LONG     MULTIPLICATION YOU 
LEARNED IN SCHOOL,   TAKING TWO 1-BYTE N
UMBERS TO PRODUCE A  2-BYTE RESULT. WHY?
 255*255=65025..^..     NUM1=$FB    ;OR 
ANYPLACE HANDY.     NUM2=$FC.     PRODUC
T=$FD ;$FE WILL BE USED ALSO.     LDA #$
00    ;CLEAR RESULT AREA.     STA PRODUC
T.     STA PRODUCT+1.     LDX #$08    ;C
OUNT # OF BITS.LOOP ASL NUM2 ;ISOLATE LE
FT-HAND BIT.     BCC ZERO ;IF ZERO, DON'
T ADD NUM1.     CLC      ;PREPARE FOR AD
DITION.     LDA NUM1 ;ADD NUM1 TO PRODUC
T.     ADC PRODUCT.     STA PRODUCT.    
 BCC ZERO      ;TAKE CARE OF CARRY.     
INC PRODUCT+1 ;IF TWO BYTES NEEDED.ZERO 
DEX           ;DO IT 8 TIMES.     BNE OU
T       ;IF FINISHED, LEAVE.     ASL PRO
DUCT   ;PRODUCT=PRODUCT*2.     ROL PRODU
CT+1.     JMP LOOP.OUT  .....^..    MORE
 BIT-JUGGLING (CONTINUED)..  USING THE E
QUIVALENT STEPS IN DECIMAL AS EXAMPLES, 
MULTIPLICATION BY A SINGLE            DI
GIT IS VERY EASY WHEN IT'S F      716 ON
LY POSSIBLE VALUES ARE 0.I     X342 AND 
1. ALSO, INSTEAD OF.G  ------- WAITING U
NTIL THE END TO ADD,U     1432 THE BINAR
Y METHOD FINDS      R    2864  3X716, BU
MPS THE RESULT OVER E  +2142   ONE COLUM
N, ADDS 4X716, BUMPS   ------- THE RESUL
T OVER ONE COLUMN,  1   244272 ADDS 4X71
6, BUMPS THAT OVER,            THEN ADDS
 2X716 AND QUITS.   THIS PARTICULAR SYST
EM SAVES TIME AND   MEMORY. ANOTHER TRIC
K USED IS THE "BCC  ZERO   INC PRODUCT+1
"  PART OF THE      PROGRAM, WHICH SAVES
 AN ADDITION. IF YOUCAN UNDERSTAND THIS 
MULTIPLICATION, YOU CAN CALL YOURSELF LI
TERATE IN ML. JOLLY GOOD SHOW, MATE! ON 
TO LITERATURE.....^..           THE STAC
K..  WHEN THE 6510 EXECUTES A JSR COMMAN
D, IT HAS TO REMEMBER WHERE IT'S JSR-ING
   FROM, SO IT CAN GO BACK THERE WHEN IT
   HITS THE NEXT RTS. BUT IT ALSO LETS Y
OU HAVE A SECOND, OR A THIRD,OR ANY NUMB
ER OF JSR'S WITHIN EACH OTHER BEFORE THE
   FIRST RTS. IT MANAGES THIS BY LEAVING
   EACH ADDRESS JSR-ED FROM ON TOP OF A 
   STACK IT KEEPS IN PAGE 1 OF MEMORY (F
ROM$0100 TO $01FF). WHEN IT COMES TO A R
TS,IT PULLS THE ADDRESS TO RETURN TO OFF
   THE TOP OF THE STACK, LEAVING THE NEX
T  ADDRESS DOWN FOR THE NEXT RTS...  THE
 STACK STARTS AT $01FF AND GROWS   DOWNW
ARDS TOWARDS $0100. SINCE ONE      ADDRE
SS IS TWO BYTES LONG, ONLY 128     ADDRE
SSES CAN BE KEPT ON THE STACK..^..      
 THE STACK (CONTINUED)..  IF YOU TRY TO 
PUT MORE ON THE STACK,  IT "WRAPS AROUND
" AND STARTS OVER AT    $01FF, DESTROYIN
G THE FIRST FEW BITS OF INFORMATION THER
E. NORMALLY, THIS IS NOTA PROBLEM. THE S
TACK IS BIG ENOUGH...  THE 6510 KEEPS TR
ACK OF THE TOP OF THESTACK WITH THE SP R
EGISTER, THE STACK   POINTER. WHEN IT PU
TS SOMETHING ON OR   TAKES SOMETHING OFF
 THE STACK, IT       ADJUSTS THE STACK P
OINTER SO IT ALWAYS  POINTS TO THE ADDRE
SS OF THE TOP ITEM   ON THE STACK. IF YO
U NEED TO KNOW WHAT'SIN THE STACK POINTE
R (FEW PEOPLE DO),   TXS AND TSX TRANSFE
R THE X REGISTER TO  THE STACK POINTER A
ND VICE VERSA. THE   $01 AT THE START OF
 THE ADDRESS IS NOT  TRANSFERRED, BUT SI
MPLY ASSUMED..^..       THE STACK (CONTI
NUED)..  MORE USEFUL STACK INSTRUCTIONS 
ARE PHA("PUSH ACCUMULATOR ONTO STACK") A
ND PLA ("PULL ACCUMULATOR OFF STACK"), W
HICH   ALLOW THE ACCUMULATOR TO BE GOTTE
N OUT  OF THE WAY TEMPORARILY WITHOUT HA
VING TOSPECIALLY RESERVE A PLACE IN MEMO
RY FOR IT. SOMETIMES YOU WILL SEE "PHA  
TXA    PHA  TYA  PHA" USED TO STORE ALL 
THE    6510'S REGISTERS OUT OF HARM'S WA
Y...  NOTE THAT THIS CAN ONLY BE USED   
    TEMPORARILY, BECAUSE IF AN RTS IS   
    EXECUTED BEFORE THE VALUE IS REMOVED
    AGAIN (BY PLA), THEN THE 6510 WILL T
AKE THE ACCUMULATOR'S STORED VALUE AND T
HE  WRONG HALF OF THE ADDRESS BELOW IT A
S ANADDRESS, AND RTS TO NEVER-NEVER LAND
. BECAREFUL!.^..       THE STACK (CONTIN
UED).. YOU CAN, HOWEVER, LEAVE A NUMBER 
ON THESTACK, DO A JSR, AND RETRIEVE IT A
FTER  THE RTS. THIS IS VERY USEFUL IF YO
U WANTA SUBROUTINE TO CALL ITSELF BUT TO
 KEEP SOME VALUE FOR USE AFTER THE END O
F THE SUBROUTINE. ADVANCED, BUT USEFUL..
.  THE REMAINING TWO INSTRUCTIONS WHICH 
 AFFECT THE STACK ARE PHP (PUSH P       
 REGISTER) AND PLP (PULL P REGISTER),   
 WHICH ALLOW YOU TO KEEP ALL THE FLAGS  
 SAFE ON THE STACK FOR A WHILE. PHP PLA 
 IS ALSO THE ONLY 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 REGISTER AS PART OF AN ADDRES
S.^..       THE STACK (CONTINUED)..  THI
S CAN BE USED TO YOUR ADVANTAGE IF YOU W
ANT TO, RTS TO, SAY, THE JSR TWO   STEPS
 BACK, INSTEAD OF THE  USUAL ONE.  "PLA 
 PLA" WILL REMOVE THE MOST RECENT  ADDRE
SS FROM THE STACK, LEAVING THE NEXTONE D
OWN ON TOP...  YOU CAN ALSO FOOL RTS INT
O RETURNING  TO A DIFFERENT ADDRESS FROM
 THE ONE JSR-ED FROM. PHA THE ADDRESS ON
TO THE STACK AND JMP TO THE SUBROUTINE. 
ACTUALLY YOU SHOULD PHA THE ADDRESS-1 (M
INUS ONE)    ONTO THE STACK, HIGH BYTE (
THE $AB IN   $ABCD) FIRST...  THIS IS GE
TTING PRETTY ABTRUSE, AND   IT WILL PROB
ABLY BE A WHILE BEFORE YOU  START PLAYIN
G WITH THE STACK. BUT IT IS WORTH KNOWIN
G WHAT THE STACK CAN DO..^.        USING
 BASIC FROM ML..  AS YOU KNOW, BASIC IS 
AN ML PROGRAM.  SOME BITS OF IT DO USEFU
L THINGS SUCH ASCLEARING THE SCREEN, PRI
NTING CHARACTERSTO THE SCREEN (EASY, EH?
 TRY "DELETE".) AND COMMUNICATING WITH T
HE DISK DRIVE...  ON THE NEXT PAGE ARE J
UST A FEW OF THEEASIER ROUTINES TO USE. 
THERE ARE OVER  100 AVAILABLE, AND THE U
SE OF A GOOD.REFERENCE BOOK IS RECOMMEND
ED..^..CHROUT $FFD2  THIS ROUTINE PRINTS
 THE     CHARACTER IN THE ACCUMULATOR..C
HRIN  $FFCF RETURNS A CHARACTER FROM    
 THE INPUT BUFFER IN THE ACCUMULATOR.   
 IF THE BUFFER'S EMPTY, FILLS IT BY     
 ACCEPTING A LINE UNTIL A RETURN..GETIN 
 $FFE4 LIKE BASIC GET. RETURNS      DATA
 IN THE ACCUMULATOR, OR 0 IF NO     KEY 
HAS BEEN PRESSED..       $BDCD PRINTS (I
N DECIMAL) THE 2-   BYTE NUMBER IN THE A
CCUMULATOR AND X    REGISTER (LOW HALF I
N X)..PLOT   $FFF0 CURSOR COLUMN IN X AN
D       CURSOR ROW IN Y. IF C IS SET, RE
TURNS   THE CURRENT VALUES. IF C=0, SETS
 THE    CURSOR TO THE SPECIFIED POSITION
..       $A474 THIS HAS THE SAME EFFECT 
AS   HITTING STOP/RESTORE..       $FCE2 
THIS IS THE SAME AS TURNING   THE COMPUT
ER OFF AND ON AGAIN.^.          THAT'S A
LL FOLKS..  THUS ENDS THIS POTPOURRI OF 
IDEAS.    THE NEXT INSTALMENT WILL WRAP 
UP THE    SERIES WITH A NUMBER OF SAMPLE
 ML       PROGRAMS TO RUN THROUGH AN ASS
EMBLER ANDMORE INFORMATION AND DETAIL ON
 ML ACCESSTO BASIC FUNCTIONS. IF YOU'VE 
MADE IT   THIS FAR THROUGH THE JUNGLE, Y
OU'RE PASTTHE HARD PART. IT'S JUST DETAI
LS THAT   ARE LEFT TO WORRY ABOUT. GET A
 GOOD     REFERENCE BOOK AND TRY THINGS 
OUT! YOU  ARE AT THE STAGE OF ML EQUIVAL
ENT TO    YOUR FIRST EFFORTS IN BASIC. Y
OU KNOW   THE FACTS, AND PRACTISE WILL E
NABLE YOU TO DO SOMETHING WITH WHAT YOU 
KNOW...  REMEMBER: THERE'S 4K OF MEMORY 
FROM   $C000 ON JUST WAITING TO BE FILLE
D WITH ML OF YOUR DEVISING..^^^^^^^^^^^^
^^^^
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL