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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL