PONZO TUTOR-5.64
FILE INFORMATION
FILENAME(S): PONZO TUTOR-5.64
FILE TYPE(S): PRG
FILE SIZE: 16.4K
FIRST SEEN: 2025-11-30 21:07:08
APPEARS ON: 1 disk(s)
FILE HASH
47d11651a8dcf25bdebd8d0b857af66dc323ea67fa421ebda85bdb4c0c3a33ae
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TUTORIALS C | PONZO TUTOR-5.64 | PRG | DuncanTwain | 25 | 9 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)
00000000: 01 08 21 08 00 00 8F 22 14 14 14 14 14 14 14 20 |..!...."....... |
00000010: 50 4F 4E 5A 4F 2A 38 33 2A 57 41 54 45 52 4C 4F |PONZO*83*WATERLO|
00000020: 4F 00 2E 08 01 00 8F 22 14 14 14 14 14 14 00 4B |O......".......K|
00000030: 08 0A 00 97 35 33 32 38 31 2C 31 35 3A 97 35 33 |....53281,15:.53|
00000040: 32 38 30 2C 31 32 3A 99 22 90 22 00 6E 08 0B 00 |280,12:.".".n...|
00000050: 99 22 93 20 20 20 20 20 20 20 20 20 20 20 20 20 |.". |
00000060: 20 12 1F 43 36 34 20 54 55 54 4F 52 2D 35 00 9E | ..C64 TUTOR-5..|
00000070: 08 0C 00 99 22 1C B0 C0 C0 C0 C0 C0 C0 C0 C0 C0 |...."...........|
00000080: C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 |................|
00000090: C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 AE 22 00 E2 |............."..|
000000A0: 08 0D 00 99 22 DD 20 12 1F 54 48 45 20 41 44 43 |....". ..THE ADC|
000000B0: 27 53 20 4F 46 20 36 35 31 30 20 4D 41 43 48 49 |'S OF 6510 MACHI|
000000C0: 4E 45 20 4C 41 4E 47 55 41 47 45 20 1C 92 20 DD |NE LANGUAGE .. .|
000000D0: 22 3A 4D 53 24 B2 22 20 57 45 4C 43 4F 4D 45 21 |":MS$." WELCOME!|
000000E0: 20 22 00 13 09 0E 00 99 22 1C AD C0 C0 C0 C0 C0 | "......".......|
000000F0: C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 |................|
00000100: C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 |................|
00000110: BD 90 22 00 2C 09 1E 00 8D 36 30 30 30 30 3A 8D |..".,....60000:.|
00000120: 36 33 31 30 30 3A 8D 36 33 30 30 30 00 5A 09 1F |63100:.63000.Z..|
00000130: 00 99 22 93 11 11 54 48 45 20 12 4D 92 49 43 52 |.."...THE .M.ICR|
00000140: 4F 12 50 92 52 4F 43 45 53 53 4F 52 20 12 55 92 |O.P.ROCESSOR .U.|
00000150: 4E 49 54 20 28 4D 50 55 29 22 00 7C 09 20 00 99 |NIT (MPU)".|. ..|
00000160: 22 11 49 4E 20 54 48 45 20 43 36 34 20 49 53 20 |".IN THE C64 IS |
00000170: 54 48 45 20 12 36 35 31 30 92 2E 22 00 A6 09 21 |THE .6510.."...!|
00000180: 00 99 22 11 48 45 20 28 53 48 45 3F 29 20 57 49 |..".HE (SHE?) WI|
00000190: 4C 4C 20 4F 42 45 59 20 59 4F 55 52 20 43 4F 4D |LL OBEY YOUR COM|
000001A0: 4D 41 4E 44 53 22 00 D2 09 22 00 99 22 11 49 46 |MANDS"..."..".IF|
000001B0: 20 59 4F 55 20 43 41 4E 20 53 50 45 41 4B 20 54 | YOU CAN SPEAK T|
000001C0: 48 45 20 52 49 47 48 54 20 4C 41 4E 47 55 41 47 |HE RIGHT LANGUAG|
000001D0: 45 22 00 FD 09 23 00 99 22 11 2E 2E 2E 41 4E 44 |E"...#.."....AND|
000001E0: 20 54 48 41 54 27 53 20 20 12 4D 41 43 48 49 4E | THAT'S .MACHIN|
000001F0: 45 20 4C 41 4E 47 55 41 47 45 92 2E 22 00 28 0A |E LANGUAGE..".(.|
00000200: 24 00 99 22 11 57 45 27 4C 4C 20 4C 45 41 52 4E |$..".WE'LL LEARN|
00000210: 20 53 4F 4D 45 20 12 4D 41 43 48 49 4E 45 20 4C | SOME .MACHINE L|
00000220: 41 4E 47 55 41 47 45 22 00 42 0A 25 00 99 22 11 |ANGUAGE".B.%..".|
00000230: 49 4E 20 54 48 49 53 20 54 55 54 4F 52 49 41 4C |IN THIS TUTORIAL|
00000240: 2E 22 00 6E 0A 26 00 99 22 11 42 55 54 20 4C 45 |.".n.&..".BUT LE|
00000250: 54 27 53 20 4C 45 54 20 54 48 45 20 12 36 35 31 |T'S LET THE .651|
00000260: 30 92 20 54 45 4C 4C 20 49 54 2E 2E 2E 22 00 79 |0. TELL IT...".y|
00000270: 0A 27 00 8D 36 33 30 30 30 00 A6 0A 28 00 99 22 |.'..63000...(.."|
00000280: 93 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 12 54 48 |..............TH|
00000290: 45 20 36 35 31 30 92 A6 A6 A6 A6 A6 A6 A6 A6 A6 |E 6510..........|
000002A0: A6 A6 A6 A6 A6 22 00 CE 0A 2D 00 99 22 11 D1 57 |....."...-.."..W|
000002B0: 45 27 56 45 20 47 4F 54 20 41 20 4E 55 4D 42 45 |E'VE GOT A NUMBE|
000002C0: 52 20 4F 46 20 49 4E 54 45 52 4E 41 4C 22 00 FA |R OF INTERNAL"..|
000002D0: 0A 32 00 99 22 11 27 52 45 47 49 53 54 45 52 53 |.2..".'REGISTERS|
000002E0: 27 20 57 48 49 43 48 20 48 4F 4C 44 20 38 2D 42 |' WHICH HOLD 8-B|
000002F0: 49 54 20 42 49 4E 41 52 59 22 00 2B 0B 3C 00 99 |IT BINARY".+.<..|
00000300: 22 11 4E 55 4D 42 45 52 53 28 42 59 54 45 53 29 |".NUMBERS(BYTES)|
00000310: 20 46 52 4F 4D 20 24 30 30 20 54 4F 20 24 46 46 | FROM $00 TO $FF|
00000320: 20 28 49 4E 20 48 45 58 29 2E 22 00 56 0B 41 00 | (IN HEX).".V.A.|
00000330: 99 22 11 D1 57 45 20 43 41 4C 4C 20 54 48 45 4D |."..WE CALL THEM|
00000340: 20 27 41 27 20 41 4E 44 20 27 58 27 20 41 4E 44 | 'A' AND 'X' AND|
00000350: 20 27 59 27 2E 22 00 7F 0B 42 00 99 22 11 28 57 | 'Y'."...B..".(W|
00000360: 45 20 48 41 56 45 20 41 20 46 45 57 20 4D 4F 52 |E HAVE A FEW MOR|
00000370: 45 2E 2E 42 55 54 20 57 41 49 54 2E 2E 29 22 00 |E..BUT WAIT..)".|
00000380: A7 0B 46 00 99 22 11 D1 59 4F 55 20 4D 41 59 20 |..F.."..YOU MAY |
00000390: 4C 4F 41 44 20 54 48 45 4D 20 57 49 54 48 20 4E |LOAD THEM WITH N|
000003A0: 55 4D 42 45 52 53 22 00 D1 0B 50 00 99 22 11 41 |UMBERS"...P..".A|
000003B0: 4E 44 20 50 45 52 46 4F 52 4D 20 41 44 44 49 54 |ND PERFORM ADDIT|
000003C0: 49 4F 4E 2C 53 55 42 54 52 41 43 54 49 4F 4E 2C |ION,SUBTRACTION,|
000003D0: 22 00 F9 0B 5A 00 99 22 11 54 45 53 54 53 20 46 |"...Z..".TESTS F|
000003E0: 4F 52 20 5A 45 52 4F 20 2C 20 3E 20 2C 20 3C 20 |OR ZERO , > , < |
000003F0: 45 54 43 2E 45 54 43 2E 22 00 28 0C 64 00 99 22 |ETC.ETC.".(.d.."|
00000400: 11 D1 4C 45 54 27 53 20 47 4F 20 54 48 52 4F 55 |..LET'S GO THROU|
00000410: 47 48 20 53 4F 4D 45 20 4F 46 20 54 48 45 53 45 |GH SOME OF THESE|
00000420: 20 12 36 35 31 30 92 22 00 43 0C 6E 00 99 22 11 | .6510.".C.n..".|
00000430: 43 4F 4D 4D 41 4E 44 53 2E 2E 2E 22 3A 8D 36 33 |COMMANDS...":.63|
00000440: 30 30 30 00 52 0C 78 00 99 22 93 22 41 24 58 24 |000.R.x.."."A$X$|
00000450: 59 24 00 7B 0C 82 00 99 53 44 24 22 48 45 52 45 |Y$.{....SD$"HERE|
00000460: 20 41 52 45 20 41 20 46 45 57 20 4F 46 20 54 48 | ARE A FEW OF TH|
00000470: 45 20 43 4F 4D 4D 41 4E 44 53 22 00 95 0C 8C 00 |E COMMANDS".....|
00000480: 99 22 11 49 4E 20 4D 59 20 52 45 50 45 52 54 4F |.".IN MY REPERTO|
00000490: 49 52 45 3A 22 00 A0 0C 96 00 8D 36 33 32 30 30 |IRE:"......63200|
000004A0: 00 B1 0C A0 00 99 22 12 4C 44 41 20 23 24 46 33 |......".LDA #$F3|
000004B0: 22 00 DE 0C AA 00 99 22 11 12 4C 92 4F 41 12 44 |"......"..L.OA.D|
000004C0: 92 20 54 48 45 20 12 41 92 43 43 55 4D 55 4C 41 |. THE .A.CCUMULA|
000004D0: 54 4F 52 20 57 49 54 48 20 20 54 48 45 22 00 FD |TOR WITH THE"..|
000004E0: 0C B4 00 99 22 11 4E 55 4D 42 45 52 20 46 33 20 |....".NUMBER F3 |
000004F0: 49 4E 20 48 45 58 2E 2E 23 24 46 33 22 00 22 0D |IN HEX..#$F3".".|
00000500: BE 00 99 22 11 54 48 49 53 20 49 53 20 41 4E 20 |...".THIS IS AN |
00000510: 12 49 4D 4D 45 44 49 41 54 45 92 20 4C 4F 41 44 |.IMMEDIATE. LOAD|
00000520: 2E 22 00 5A 0D C8 00 4D 53 24 B2 22 20 20 41 3D |.".Z...MS$." A=|
00000530: 23 24 46 33 20 20 22 3A 8D 36 33 33 30 30 3A 4E |#$F3 ":.63300:N|
00000540: 24 B2 22 31 31 31 31 30 30 31 31 22 3A 8D 34 30 |$."11110011":.40|
00000550: 31 31 30 3A 8D 36 33 32 30 30 00 83 0D D2 00 99 |110:.63200......|
00000560: 22 12 4C 44 58 20 23 24 41 42 22 3A 4D 53 24 B2 |".LDX #$AB":MS$.|
00000570: 22 20 20 58 3D 23 24 41 42 20 20 22 3A 8D 36 33 |" X=#$AB ":.63|
00000580: 33 30 30 00 A3 0D D7 00 4E 24 B2 22 31 30 31 30 |300.....N$."1010|
00000590: 31 30 31 31 22 3A 8D 34 30 31 33 30 3A 8D 36 33 |1011":.40130:.63|
000005A0: 32 30 30 00 E1 0D DC 00 99 22 12 4C 44 59 20 23 |200......".LDY #|
000005B0: 24 44 44 22 3A 4D 53 24 B2 22 20 20 59 3D 23 24 |$DD":MS$." Y=#$|
000005C0: 44 44 20 20 22 3A 8D 36 33 33 30 30 3A 4E 24 B2 |DD ":.63300:N$.|
000005D0: 22 31 31 30 31 31 31 30 31 22 3A 8D 34 30 31 34 |"11011101":.4014|
000005E0: 30 00 1B 0E E6 00 8D 36 33 32 30 30 3A 99 22 12 |0......63200:.".|
000005F0: 54 41 58 22 3A 99 22 11 12 54 92 52 41 4E 53 46 |TAX":."..T.RANSF|
00000600: 45 52 20 43 4F 4E 54 45 4E 54 53 20 4F 46 20 12 |ER CONTENTS OF .|
00000610: 41 92 20 54 4F 20 12 58 92 2E 22 00 45 0E EB 00 |A. TO .X..".E...|
00000620: 4D 53 24 B2 22 20 20 20 58 3D 41 20 20 20 20 22 |MS$." X=A "|
00000630: 3A 8D 36 33 33 30 30 3A 8D 34 31 31 33 30 3A 8D |:.63300:.41130:.|
00000640: 36 33 32 30 30 00 88 0E F0 00 99 22 12 54 59 41 |63200......".TYA|
00000650: 22 3A 99 22 11 12 54 92 52 41 4E 53 46 45 52 20 |":."..T.RANSFER |
00000660: 43 4F 4E 54 45 4E 54 53 20 4F 46 20 12 59 92 20 |CONTENTS OF .Y. |
00000670: 54 4F 20 12 41 92 2E 22 3A 4D 53 24 B2 22 20 20 |TO .A..":MS$." |
00000680: 20 41 3D 59 20 20 20 22 00 A1 0E F5 00 8D 36 33 | A=Y "......63|
00000690: 33 30 30 3A 8D 34 31 34 31 30 3A 8D 36 33 32 30 |300:.41410:.6320|
000006A0: 30 00 C7 0E FA 00 99 22 2E 2E 41 4E 44 20 54 48 |0......"..AND TH|
000006B0: 45 52 45 27 53 20 12 54 58 41 92 20 41 4E 44 20 |ERE'S .TXA. AND |
000006C0: 12 54 41 59 92 2E 22 00 ED 0E 0E 01 99 22 11 11 |.TAY.."......"..|
000006D0: 12 48 45 52 45 20 41 52 45 20 53 4F 4D 45 20 4D |.HERE ARE SOME M|
000006E0: 4F 52 45 92 3A 22 3A 8D 36 33 32 30 30 00 32 0F |ORE.:":.63200.2.|
000006F0: 18 01 99 22 12 49 4E 58 92 22 3A 99 22 11 12 49 |...".INX.":."..I|
00000700: 4E 92 43 52 45 4D 45 4E 54 20 54 48 45 20 12 58 |N.CREMENT THE .X|
00000710: 92 2D 52 45 47 49 53 54 45 52 20 42 59 20 31 2E |.-REGISTER BY 1.|
00000720: 22 3A 4D 53 24 B2 22 20 20 58 3D 58 2B 31 20 20 |":MS$." X=X+1 |
00000730: 20 22 00 59 0F 22 01 8D 36 33 33 30 30 3A 4E 24 | ".Y."..63300:N$|
00000740: B2 22 31 30 31 30 31 31 30 30 22 3A 8D 34 30 31 |."10101100":.401|
00000750: 33 30 3A 8D 36 33 32 30 30 00 9D 0F 2C 01 99 22 |30:.63200...,.."|
00000760: 12 44 45 58 92 22 3A 99 22 11 12 44 45 92 43 52 |.DEX.":."..DE.CR|
00000770: 45 4D 45 4E 54 20 54 48 45 20 12 58 92 2D 52 45 |EMENT THE .X.-RE|
00000780: 47 49 53 54 45 52 20 42 59 20 31 2E 22 3A 4D 53 |GISTER BY 1.":MS|
00000790: 24 B2 22 20 20 58 3D 58 2D 31 20 20 22 00 C4 0F |$." X=X-1 "...|
000007A0: 36 01 8D 36 33 33 30 30 3A 4E 24 B2 22 31 30 31 |6..63300:N$."101|
000007B0: 30 31 30 31 31 22 3A 8D 34 30 31 33 30 3A 8D 36 |01011":.40130:.6|
000007C0: 33 32 30 30 00 EF 0F 40 01 99 22 41 4E 44 20 54 |3200...@.."AND T|
000007D0: 48 45 52 45 27 53 20 12 49 4E 59 92 20 41 4E 44 |HERE'S .INY. AND|
000007E0: 20 12 44 45 59 92 2E 22 3A 8D 36 33 32 30 30 00 | .DEY..":.63200.|
000007F0: 23 10 4A 01 99 4D 24 3A 4E 24 B2 22 31 30 31 31 |#.J..M$:N$."1011|
00000800: 30 31 30 31 22 3A 50 50 B2 30 3A 8D 34 30 31 36 |0101":PP.0:.4016|
00000810: 30 3A 99 4D 4C 24 22 24 31 32 33 34 22 3A 50 50 |0:.ML$"$1234":PP|
00000820: B2 32 30 00 60 10 54 01 99 53 44 24 22 12 49 4E |.20.`.T..SD$".IN|
00000830: 43 20 24 31 32 33 34 92 22 3A 99 22 11 12 49 4E |C $1234.":."..IN|
00000840: 43 92 52 45 4D 45 4E 54 53 20 4D 45 4D 4F 52 59 |C.REMENTS MEMORY|
00000850: 20 4C 4F 43 41 54 49 4F 4E 20 24 31 32 33 34 22 | LOCATION $1234"|
00000860: 00 97 10 5E 01 4D 53 24 B2 22 20 20 4D 3D 4D 2B |...^.MS$." M=M+|
00000870: 31 20 20 22 3A 8D 36 33 33 30 30 3A 4E 24 B2 22 |1 ":.63300:N$."|
00000880: 31 30 31 31 30 31 31 30 22 3A 8D 34 30 31 36 30 |10110110":.40160|
00000890: 3A 8D 36 33 32 30 30 00 D1 10 68 01 99 22 12 44 |:.63200...h..".D|
000008A0: 45 43 20 24 31 32 33 34 92 22 3A 99 22 11 12 44 |EC $1234.":."..D|
000008B0: 45 43 92 52 45 4D 45 4E 54 53 20 4D 45 4D 4F 52 |EC.REMENTS MEMOR|
000008C0: 59 20 4C 4F 43 41 54 49 4F 4E 20 24 31 32 33 34 |Y LOCATION $1234|
000008D0: 22 00 09 11 72 01 4D 53 24 B2 22 20 20 20 4D 3D |"...r.MS$." M=|
000008E0: 4D 2D 31 20 20 22 3A 8D 36 33 33 30 30 3A 4E 24 |M-1 ":.63300:N$|
000008F0: B2 22 31 30 31 31 30 31 30 31 22 3A 8D 34 30 31 |."10110101":.401|
00000900: 36 30 3A 8D 36 33 32 30 30 00 36 11 7C 01 99 22 |60:.63200.6.|.."|
00000910: 12 41 53 4C 92 22 3A 99 22 11 12 41 92 52 49 54 |.ASL.":."..A.RIT|
00000920: 48 4D 45 54 49 43 20 12 53 92 48 49 46 54 20 12 |HMETIC .S.HIFT .|
00000930: 4C 92 45 46 54 22 00 66 11 86 01 99 22 11 41 4C |L.EFT".f....".AL|
00000940: 4C 20 42 49 54 53 20 4F 46 20 54 48 45 20 12 41 |L BITS OF THE .A|
00000950: 92 2D 52 45 47 49 53 54 45 52 20 4D 4F 56 45 20 |.-REGISTER MOVE |
00000960: 4C 45 46 54 2E 22 00 8D 11 90 01 99 22 11 41 20 |LEFT."......".A |
00000970: 27 30 27 20 43 4F 4D 45 53 20 49 4E 54 4F 20 54 |'0' COMES INTO T|
00000980: 48 45 20 27 4C 53 42 27 20 41 4E 44 22 00 B7 11 |HE 'LSB' AND"...|
00000990: 9A 01 99 22 11 54 48 45 20 27 4D 53 42 27 20 44 |...".THE 'MSB' D|
000009A0: 52 4F 50 53 20 49 4E 54 4F 20 54 48 45 20 27 43 |ROPS INTO THE 'C|
000009B0: 41 52 52 59 27 2E 22 00 DA 11 A4 01 99 22 11 D1 |ARRY'."......"..|
000009C0: 4C 53 42 3D 4C 45 41 53 54 20 53 49 47 4E 49 46 |LSB=LEAST SIGNIF|
000009D0: 49 43 41 4E 54 20 42 49 54 22 00 FC 11 AE 01 99 |ICANT BIT"......|
000009E0: 22 11 D1 4D 53 42 3D 4D 4F 53 54 20 53 49 47 4E |"..MSB=MOST SIGN|
000009F0: 49 46 49 43 41 4E 54 20 42 49 54 22 00 18 12 B3 |IFICANT BIT"....|
00000A00: 01 4D 53 24 B2 22 20 20 41 3D 32 2A 41 20 20 20 |.MS$." A=2*A |
00000A10: 22 3A 8D 36 33 33 30 30 00 4F 12 B8 01 99 43 24 |":.63300.O....C$|
00000A20: 3A 97 43 2C 34 39 3A 4E 24 B2 22 31 30 31 31 31 |:.C,49:N$."10111|
00000A30: 30 31 30 22 3A 50 50 B2 35 30 30 3A 8D 34 30 30 |010":PP.500:.400|
00000A40: 39 38 3A 8D 36 33 32 30 30 3A 50 50 B2 32 30 00 |98:.63200:PP.20.|
00000A50: 5E 12 C2 01 99 43 43 24 3A 97 43 2C 33 32 00 8A |^....CC$:.C,32..|
00000A60: 12 CC 01 99 53 44 24 22 11 12 53 45 43 92 22 3A |....SD$"..SEC.":|
00000A70: 99 22 11 12 53 45 92 54 20 54 48 45 20 12 43 92 |."..SE.T THE .C.|
00000A80: 41 52 52 59 20 42 49 54 2E 22 00 B8 12 D6 01 99 |ARRY BIT."......|
00000A90: 43 52 24 3A 4D 53 24 B2 22 20 20 43 41 52 52 59 |CR$:MS$." CARRY|
00000AA0: 3D 31 20 22 3A 8D 36 33 33 30 30 3A 97 43 2C 34 |=1 ":.63300:.C,4|
00000AB0: 39 3A 8D 36 33 32 30 30 00 F3 12 E0 01 99 53 44 |9:.63200......SD|
00000AC0: 24 22 11 12 43 4C 43 92 22 3A 99 22 11 12 43 4C |$"..CLC.":."..CL|
00000AD0: 92 45 41 52 20 12 43 92 41 52 52 59 20 42 49 54 |.EAR .C.ARRY BIT|
00000AE0: 2E 22 3A 4D 53 24 B2 22 20 20 43 41 52 52 59 3D |.":MS$." CARRY=|
00000AF0: 30 20 22 00 15 13 EA 01 8D 36 33 33 30 30 3A 99 |0 "......63300:.|
00000B00: 43 52 24 3A 97 43 2C 34 38 3A 8D 36 33 32 30 30 |CR$:.C,48:.63200|
00000B10: 3A 99 43 43 24 00 45 13 F4 01 99 22 12 53 54 41 |:.CC$.E....".STA|
00000B20: 20 24 31 32 33 34 92 22 3A 99 22 11 12 53 54 92 | $1234.":."..ST.|
00000B30: 4F 52 45 20 54 48 45 20 12 41 92 2D 52 45 47 49 |ORE THE .A.-REGI|
00000B40: 53 54 45 52 22 00 7E 13 FE 01 99 22 11 49 4E 20 |STER".~....".IN |
00000B50: 4D 45 4D 4F 52 59 20 4C 4F 43 41 54 49 4F 4E 20 |MEMORY LOCATION |
00000B60: 24 31 32 33 34 22 3A 4D 53 24 B2 22 20 20 20 4D |$1234":MS$." M|
00000B70: 3D 41 20 20 20 20 22 3A 8D 36 33 33 30 30 00 9E |=A ":.63300..|
00000B80: 13 08 02 4E 24 B2 22 31 30 31 31 31 30 31 30 22 |...N$."10111010"|
00000B90: 3A 8D 34 31 31 36 30 3A 8D 36 33 30 30 30 00 CE |:.41160:.63000..|
00000BA0: 13 58 02 99 22 93 54 48 41 54 27 53 20 45 4E 4F |.X..".THAT'S ENO|
00000BB0: 55 47 48 2E 20 4C 45 54 27 53 20 43 4C 45 41 52 |UGH. LET'S CLEAR|
00000BC0: 20 54 48 45 20 53 43 52 45 45 4E 2E 11 22 00 FA | THE SCREEN.."..|
00000BD0: 13 62 02 99 22 4C 44 41 20 23 24 32 30 20 20 5F |.b.."LDA #$20 _|
00000BE0: 4C 4F 41 44 20 41 20 57 49 54 48 20 23 24 32 30 |LOAD A WITH #$20|
00000BF0: 3D 27 53 50 41 43 45 27 2E 22 00 29 14 6C 02 99 |='SPACE'.".).l..|
00000C00: 22 53 54 41 20 24 30 34 30 30 20 C9 22 3A 99 22 |"STA $0400 .":."|
00000C10: 53 54 41 20 24 30 34 30 31 20 DD 5F 46 49 4C 4C |STA $0401 ._FILL|
00000C20: 53 20 53 43 52 45 45 4E 22 00 4E 14 76 02 99 22 |S SCREEN".N.v.."|
00000C30: 53 54 41 20 24 30 34 30 32 20 DD 5F 4D 45 4D 4F |STA $0402 ._MEMO|
00000C40: 52 59 20 57 49 54 48 20 23 24 32 30 2E 22 00 93 |RY WITH #$20."..|
00000C50: 14 80 02 99 22 2D 2D 2D 20 2D 2D 2D 2D 2D 20 2E |...."--- ----- .|
00000C60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00000C70: 22 3A 99 22 53 54 41 20 24 30 37 46 46 20 CB 5F |":."STA $07FF ._|
00000C80: 48 45 4E 43 45 20 43 4C 45 41 52 20 53 43 52 45 |HENCE CLEAR SCRE|
00000C90: 45 4E 22 00 CC 14 8A 02 99 22 11 42 55 54 20 57 |EN"......".BUT W|
00000CA0: 45 20 43 4C 45 41 52 4C 59 20 4E 45 45 44 20 53 |E CLEARLY NEED S|
00000CB0: 4F 4D 45 54 48 49 4E 47 20 4C 49 4B 45 3A 22 3A |OMETHING LIKE:":|
00000CC0: 99 22 11 4C 44 41 20 23 24 32 30 22 00 04 15 94 |.".LDA #$20"....|
00000CD0: 02 99 22 46 4F 52 20 58 3D 30 20 54 4F 20 23 24 |.."FOR X=0 TO #$|
00000CE0: 33 46 46 22 3A 99 22 53 54 41 20 24 30 34 30 30 |3FF":."STA $0400|
00000CF0: 2B 58 22 3A 99 22 4E 45 58 54 20 58 22 3A 8D 36 |+X":."NEXT X":.6|
00000D00: 33 30 30 30 00 3C 15 9E 02 99 22 93 4F 52 11 9D |3000.<....".OR..|
00000D10: 9D B8 B8 22 3A 99 22 42 45 47 49 4E 20 4C 44 41 |...":."BEGIN LDA|
00000D20: 20 23 24 32 30 20 5F 4E 4F 54 45 20 53 54 41 54 | #$20 _NOTE STAT|
00000D30: 45 4D 45 4E 54 20 4C 41 42 45 4C 22 00 7C 15 A8 |EMENT LABEL".|..|
00000D40: 02 99 22 20 20 20 20 20 20 4C 44 58 20 23 24 30 |.." LDX #$0|
00000D50: 30 22 3A 99 22 4C 4F 4F 50 20 20 53 54 41 20 24 |0":."LOOP STA $|
00000D60: 30 34 30 30 2C 58 20 5F 12 49 4E 44 45 58 45 44 |0400,X _.INDEXED|
00000D70: 20 41 44 44 52 45 53 53 49 4E 47 22 00 AA 15 B2 | ADDRESSING"....|
00000D80: 02 99 22 20 20 20 5E 20 20 49 4E 58 22 3A 99 22 |.." ^ INX":."|
00000D90: 20 20 20 DD 20 20 3F 43 48 45 43 4B 20 46 4F 52 | . ?CHECK FOR|
00000DA0: 20 58 3D 23 24 33 46 46 3F 22 00 CA 15 B7 02 99 | X=#$3FF?"......|
00000DB0: 22 20 20 20 AD C0 20 49 46 20 4E 4F 54 2C 47 4F |" .. IF NOT,GO|
00000DC0: 54 4F 20 27 4C 4F 4F 50 27 22 00 FE 15 BC 02 99 |TO 'LOOP'"......|
00000DD0: 22 11 11 57 45 20 48 41 56 45 20 12 43 4F 4D 50 |"..WE HAVE .COMP|
00000DE0: 41 52 45 92 20 26 20 12 42 52 41 4E 43 48 92 20 |ARE. & .BRANCH. |
00000DF0: 49 4E 53 54 52 55 43 54 49 4F 4E 53 21 22 00 3A |INSTRUCTIONS!".:|
00000E00: 16 C6 02 99 22 11 57 48 41 54 20 57 45 20 4E 45 |....".WHAT WE NE|
00000E10: 45 44 20 41 42 4F 56 45 20 49 53 3A 22 3A 99 22 |ED ABOVE IS:":."|
00000E20: 11 12 43 92 4F 4D 12 50 92 41 52 45 20 12 58 92 |..C.OM.P.ARE .X.|
00000E30: 20 54 4F 20 23 24 33 46 46 22 00 70 16 D0 02 99 | TO #$3FF".p....|
00000E40: 22 11 26 20 12 42 92 52 41 4E 43 48 20 49 46 20 |".& .B.RANCH IF |
00000E50: 12 4E 92 4F 54 20 12 45 92 51 55 41 4C 2E 2E 54 |.N.OT .E.QUAL..T|
00000E60: 4F 20 27 4C 4F 4F 50 27 22 3A 8D 36 33 30 31 30 |O 'LOOP'":.63010|
00000E70: 00 A1 16 DA 02 99 22 13 11 11 12 42 45 47 49 4E |......"....BEGIN|
00000E80: 20 4C 44 41 20 23 24 32 30 20 20 20 92 20 20 20 | LDA #$20 . |
00000E90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000EA0: 22 00 D1 16 E4 02 99 22 12 20 20 20 20 20 20 4C |"......". L|
00000EB0: 44 58 20 23 24 30 30 20 20 20 22 3A 99 22 12 4C |DX #$00 ":.".L|
00000EC0: 4F 4F 50 20 20 53 54 41 20 24 30 34 30 30 2C 58 |OOP STA $0400,X|
00000ED0: 22 00 18 17 EE 02 99 22 12 20 20 20 5E 20 20 49 |"......". ^ I|
00000EE0: 4E 58 20 20 20 20 20 20 20 20 22 3A 99 22 12 20 |NX ":.". |
00000EF0: 20 20 DD 20 20 43 50 58 20 23 24 33 46 46 20 20 | . CPX #$3FF |
00000F00: 92 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. |
00000F10: 20 20 20 20 20 20 20 22 00 49 17 F8 02 99 22 12 | ".I....".|
00000F20: 20 20 20 AD C0 20 42 4E 45 20 4C 4F 4F 50 20 20 | .. BNE LOOP |
00000F30: 20 92 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | . |
00000F40: 20 22 3A 8D 36 33 32 30 30 00 7E 17 02 03 99 22 | ":.63200.~...."|
00000F50: 4E 4F 54 45 11 9D 9D 9D 9D B8 B8 B8 B8 91 3A 57 |NOTE..........:W|
00000F60: 45 20 57 49 4C 4C 20 4E 45 56 45 52 20 12 53 54 |E WILL NEVER .ST|
00000F70: 41 92 20 49 4E 20 12 24 30 37 46 46 92 22 00 AA |A. IN .$07FF."..|
00000F80: 17 0C 03 99 22 11 49 4E 20 54 48 45 20 41 42 4F |....".IN THE ABO|
00000F90: 56 45 20 50 52 4F 47 52 41 4D 2E 2E 2E 53 4F 2E |VE PROGRAM...SO.|
00000FA0: 2E 2E 22 3A 8D 36 33 30 31 30 00 D2 17 16 03 99 |..":.63010......|
00000FB0: 22 13 11 11 11 11 11 11 12 20 20 20 DD 20 20 43 |"........ . C|
00000FC0: 50 58 20 23 24 34 30 30 20 20 22 3A 8D 36 33 32 |PX #$400 ":.632|
00000FD0: 30 30 00 FF 17 20 03 99 22 41 4C 53 4F 2C 20 57 |00... .."ALSO, W|
00000FE0: 45 20 43 41 4E 20 12 43 50 58 20 23 24 4E 92 20 |E CAN .CPX #$N. |
00000FF0: 4F 4E 4C 59 20 49 46 20 4E 20 4C 49 45 53 22 00 |ONLY IF N LIES".|
00001000: 20 18 2A 03 99 22 11 49 4E 20 54 48 45 20 52 41 | .*..".IN THE RA|
00001010: 4E 47 45 20 24 30 30 20 54 4F 20 24 46 46 2E 22 |NGE $00 TO $FF."|
00001020: 00 49 18 34 03 99 22 11 53 4F 20 57 45 20 43 48 |.I.4..".SO WE CH|
00001030: 41 4E 47 45 20 54 48 45 20 43 4F 44 45 20 54 4F |ANGE THE CODE TO|
00001040: 3A 22 3A 8D 36 33 30 31 30 00 67 18 3E 03 99 22 |:":.63010.g.>.."|
00001050: 93 11 11 12 42 45 47 49 4E 20 4C 44 41 20 23 24 |....BEGIN LDA #$|
00001060: 32 30 20 20 20 92 22 00 97 18 48 03 99 22 12 20 |20 ."...H..". |
00001070: 20 20 20 20 20 4C 44 58 20 23 24 30 30 20 20 20 | LDX #$00 |
00001080: 22 3A 99 22 12 4C 4F 4F 50 20 20 53 54 41 20 24 |":.".LOOP STA $|
00001090: 30 34 30 30 2C 58 22 00 B1 18 52 03 99 22 12 20 |0400,X"...R..". |
000010A0: 20 20 20 20 20 53 54 41 20 24 30 35 30 30 2C 58 | STA $0500,X|
000010B0: 22 00 CB 18 5C 03 99 22 12 20 20 20 20 20 20 53 |"...\..". S|
000010C0: 54 41 20 24 30 36 30 30 2C 58 22 00 E5 18 66 03 |TA $0600,X"...f.|
000010D0: 99 22 12 20 20 20 20 20 20 53 54 41 20 24 30 37 |.". STA $07|
000010E0: 30 30 2C 58 22 00 16 19 70 03 99 22 12 20 20 20 |00,X"...p..". |
000010F0: 20 20 20 49 4E 58 20 20 20 20 20 20 20 20 22 3A | INX ":|
00001100: 99 22 12 20 20 20 20 20 20 43 50 58 20 23 24 46 |.". CPX #$F|
00001110: 46 20 20 20 92 22 00 38 19 7A 03 99 22 12 20 20 |F .".8.z..". |
00001120: 20 20 20 20 42 4E 45 20 4C 4F 4F 50 20 20 20 92 | BNE LOOP .|
00001130: 22 3A 8D 36 33 30 30 30 00 63 19 84 03 99 53 44 |":.63000.c....SD|
00001140: 24 22 11 11 11 11 22 3B 3A 81 54 B2 31 A4 31 30 |$"....";:.T.1.10|
00001150: 3A 99 43 4C 24 3A 82 3A 99 53 44 24 22 11 11 11 |:.CL$:.:.SD$"...|
00001160: 11 22 3B 00 8F 19 8E 03 99 22 4F 52 2C 20 57 45 |.";......"OR, WE|
00001170: 20 43 41 4E 20 53 49 4D 50 4C 49 46 59 20 54 48 | CAN SIMPLIFY TH|
00001180: 49 53 20 41 20 4C 49 54 54 4C 45 20 42 59 22 00 |IS A LITTLE BY".|
00001190: C0 19 98 03 99 22 11 43 4F 55 4E 54 49 4E 47 20 |.....".COUNTING |
000011A0: 12 44 4F 57 4E 92 20 46 52 4F 4D 20 58 3D 24 46 |.DOWN. FROM X=$F|
000011B0: 46 20 54 4F 20 24 30 30 22 3A 8D 36 33 30 31 30 |F TO $00":.63010|
000011C0: 00 DE 19 A2 03 99 22 13 11 11 12 42 45 47 49 4E |......"....BEGIN|
000011D0: 20 4C 44 41 20 23 24 32 30 20 20 20 92 22 00 0E | LDA #$20 ."..|
000011E0: 1A AC 03 99 22 12 20 20 20 20 20 20 4C 44 58 20 |....". LDX |
000011F0: 23 24 46 46 20 20 20 22 3A 99 22 12 4C 4F 4F 50 |#$FF ":.".LOOP|
00001200: 20 20 53 54 41 20 24 30 34 30 30 2C 58 22 00 28 | STA $0400,X".(|
00001210: 1A B6 03 99 22 12 20 20 20 20 20 20 53 54 41 20 |....". STA |
00001220: 24 30 35 30 30 2C 58 22 00 42 1A C0 03 99 22 12 |$0500,X".B....".|
00001230: 20 20 20 20 20 20 53 54 41 20 24 30 36 30 30 2C | STA $0600,|
00001240: 58 22 00 5C 1A CA 03 99 22 12 20 20 20 20 20 20 |X".\....". |
00001250: 53 54 41 20 24 30 37 30 30 2C 58 22 00 76 1A D4 |STA $0700,X".v..|
00001260: 03 99 22 12 20 20 20 20 20 20 44 45 58 20 20 20 |..". DEX |
00001270: 20 20 20 20 20 22 00 AF 1A DE 03 99 22 12 20 20 | "......". |
00001280: 20 20 20 20 42 4E 45 20 4C 4F 4F 50 20 20 20 92 | BNE LOOP .|
00001290: 22 3A 99 22 20 20 20 20 20 20 20 20 20 20 20 20 |":." |
000012A0: 20 20 20 20 20 20 20 22 3A 8D 36 33 30 30 30 00 | ":.63000.|
000012B0: DA 1A DF 03 99 53 44 24 22 11 11 11 11 22 3B 3A |.....SD$"....";:|
000012C0: 81 54 B2 31 A4 31 30 3A 99 43 4C 24 3A 82 3A 99 |.T.1.10:.CL$:.:.|
000012D0: 53 44 24 22 11 11 11 11 22 3B 00 0A 1B E3 03 99 |SD$"....";......|
000012E0: 22 11 11 11 48 4F 57 20 43 41 4E 20 57 45 20 12 |"...HOW CAN WE .|
000012F0: 42 4E 45 92 20 57 48 45 4E 20 57 45 20 44 4F 4E |BNE. WHEN WE DON|
00001300: 27 54 20 44 4F 20 41 4E 59 22 00 24 1B E4 03 99 |'T DO ANY".$....|
00001310: 22 11 12 43 4F 4D 50 41 52 45 92 3F 22 3A 8D 36 |"..COMPARE.?":.6|
00001320: 33 30 30 30 00 50 1B E8 03 99 22 93 59 4F 55 20 |3000.P....".YOU |
00001330: 53 45 45 2C 20 12 42 4E 45 92 20 52 45 41 4C 4C |SEE, .BNE. REALL|
00001340: 59 20 43 48 45 43 4B 53 20 54 4F 20 53 45 45 22 |Y CHECKS TO SEE"|
00001350: 00 7E 1B F2 03 99 22 11 49 46 20 27 30 27 20 49 |.~....".IF '0' I|
00001360: 53 20 54 48 45 20 52 45 53 55 4C 54 20 4F 46 20 |S THE RESULT OF |
00001370: 41 4E 20 41 52 49 54 48 4D 45 54 49 43 22 00 A8 |AN ARITHMETIC"..|
00001380: 1B FC 03 99 22 11 4F 50 45 52 41 54 49 4F 4E 2E |....".OPERATION.|
00001390: 2E 49 4E 43 4C 55 44 49 4E 47 20 41 20 12 43 4F |.INCLUDING A .CO|
000013A0: 4D 50 41 52 45 92 2E 22 00 CD 1B 06 04 99 22 11 |MPARE.."......".|
000013B0: 49 4E 20 54 48 45 20 50 41 49 52 20 4F 46 20 49 |IN THE PAIR OF I|
000013C0: 4E 53 54 52 55 43 54 49 4F 4E 53 3A 22 00 0A 1C |NSTRUCTIONS:"...|
000013D0: 10 04 99 22 11 12 43 50 58 20 23 24 46 46 22 3A |..."..CPX #$FF":|
000013E0: 99 22 12 42 4E 45 20 4C 4F 4F 50 22 3A 99 22 11 |.".BNE LOOP":.".|
000013F0: 57 45 20 53 55 42 54 52 41 43 54 20 23 24 46 46 |WE SUBTRACT #$FF|
00001400: 20 46 52 4F 4D 20 54 48 45 22 00 35 1C 1A 04 99 | FROM THE".5....|
00001410: 22 11 56 41 4C 55 45 20 4F 46 20 58 20 41 4E 44 |".VALUE OF X AND|
00001420: 20 12 42 52 41 4E 43 48 92 20 54 4F 20 4C 4F 4F | .BRANCH. TO LOO|
00001430: 50 20 49 46 22 00 5C 1C 24 04 99 22 11 54 48 45 |P IF".\.$..".THE|
00001440: 20 52 45 53 55 4C 54 20 49 53 20 4E 4F 54 20 5A | RESULT IS NOT Z|
00001450: 45 52 4F 21 22 3A 8D 36 33 30 30 30 00 7B 1C 2E |ERO!":.63000.{..|
00001460: 04 99 22 93 12 49 4E 58 20 20 20 20 20 22 3A 99 |.."..INX ":.|
00001470: 22 12 42 4E 45 20 4C 4F 4F 50 22 00 A6 1C 38 04 |".BNE LOOP"...8.|
00001480: 99 22 11 57 45 20 42 52 41 4E 43 48 20 54 4F 20 |.".WE BRANCH TO |
00001490: 4C 4F 4F 50 20 49 46 20 54 48 45 20 52 45 53 55 |LOOP IF THE RESU|
000014A0: 4C 54 20 4F 46 22 00 D3 1C 42 04 99 22 11 49 4E |LT OF"...B..".IN|
000014B0: 43 52 45 4D 45 4E 54 49 4E 47 20 58 20 49 53 20 |CREMENTING X IS |
000014C0: 12 4E 4F 54 92 20 5A 45 52 4F 2E 22 3A 99 22 B8 |.NOT. ZERO.":.".|
000014D0: B8 B8 22 00 F4 1C 4C 04 99 22 11 12 44 45 43 20 |.."...L.."..DEC |
000014E0: 24 31 32 33 34 22 3A 99 22 12 42 4E 45 20 4C 4F |$1234":.".BNE LO|
000014F0: 4F 50 20 22 00 16 1D 56 04 99 22 11 48 45 52 45 |OP "...V..".HERE|
00001500: 20 57 45 20 42 52 41 4E 43 48 20 54 4F 20 4C 4F | WE BRANCH TO LO|
00001510: 4F 50 20 49 46 22 00 45 1D 60 04 99 22 11 44 45 |OP IF".E.`..".DE|
00001520: 43 52 45 4D 45 4E 54 49 4E 47 20 24 31 32 33 34 |CREMENTING $1234|
00001530: 20 49 53 20 4E 4F 54 20 5A 45 52 4F 2E 22 3A 99 | IS NOT ZERO.":.|
00001540: 22 B8 B8 B8 22 00 73 1D 6A 04 99 22 11 12 4E 4F |"...".s.j.."..NO|
00001550: 54 45 92 3A 20 12 43 50 58 92 20 20 49 4E 56 4F |TE.: .CPX. INVO|
00001560: 4C 56 45 53 20 41 20 53 55 42 54 52 41 43 54 49 |LVES A SUBTRACTI|
00001570: 4F 4E 22 00 96 1D 74 04 99 22 11 28 54 4F 20 43 |ON"...t..".(TO C|
00001580: 48 45 43 4B 20 46 4F 52 20 5A 45 52 4F 20 52 45 |HECK FOR ZERO RE|
00001590: 53 55 4C 54 29 22 00 D3 1D 7E 04 99 22 11 42 55 |SULT)"...~..".BU|
000015A0: 54 20 49 54 20 44 4F 45 53 20 4E 4F 54 11 9D 9D |T IT DOES NOT...|
000015B0: 9D B8 B8 B8 91 20 43 48 41 4E 47 45 20 41 4E 59 |..... CHANGE ANY|
000015C0: 20 52 45 47 49 53 54 45 52 53 21 22 3A 8D 36 33 | REGISTERS!":.63|
000015D0: 30 30 30 00 F3 1D 88 04 99 22 93 4C 45 54 27 53 |000......".LET'S|
000015E0: 20 12 52 56 53 92 20 54 48 45 20 53 43 52 45 45 | .RVS. THE SCREE|
000015F0: 4E 2E 22 00 21 1E 92 04 99 22 11 54 48 49 53 20 |N.".!....".THIS |
00001600: 52 45 51 55 49 52 45 53 20 4C 4F 4F 4B 49 4E 47 |REQUIRES LOOKING|
00001610: 20 41 54 20 45 56 45 52 59 20 53 43 52 45 45 4E | AT EVERY SCREEN|
00001620: 22 00 51 1E 9C 04 99 22 11 4D 45 4D 4F 52 59 20 |".Q....".MEMORY |
00001630: 4C 4F 43 41 54 49 4F 4E 20 41 4E 44 20 43 48 45 |LOCATION AND CHE|
00001640: 43 4B 49 4E 47 20 54 48 45 20 12 4D 53 42 92 2E |CKING THE .MSB..|
00001650: 22 00 7C 1E A6 04 99 22 11 49 46 20 49 54 27 53 |".|....".IF IT'S|
00001660: 20 12 31 92 20 54 48 45 4E 20 43 48 41 4E 47 45 | .1. THEN CHANGE|
00001670: 20 49 54 20 54 4F 20 12 30 92 2E 22 00 A7 1E B0 | IT TO .0.."....|
00001680: 04 99 22 11 49 46 20 49 54 27 53 20 12 30 92 20 |..".IF IT'S .0. |
00001690: 54 48 45 4E 20 43 48 41 4E 47 45 20 49 54 20 54 |THEN CHANGE IT T|
000016A0: 4F 20 12 31 92 2E 22 00 D4 1E 14 05 99 22 11 28 |O .1.."......".(|
000016B0: 54 48 45 20 4D 53 42 20 44 45 54 45 52 4D 49 4E |THE MSB DETERMIN|
000016C0: 45 53 20 49 46 20 54 48 45 20 43 48 41 52 41 43 |ES IF THE CHARAC|
000016D0: 54 45 52 22 00 ED 1E 1E 05 99 22 49 53 20 49 4E |TER"......"IS IN|
000016E0: 20 52 56 53 2D 46 49 45 4C 44 29 21 22 00 34 1F | RVS-FIELD)!".4.|
000016F0: 28 05 99 22 11 57 45 27 4C 4C 3A 22 3A 99 22 11 |(..".WE'LL:":.".|
00001700: 12 4C 44 41 20 24 30 34 30 30 2C 58 22 3A 99 22 |.LDA $0400,X":."|
00001710: 12 45 4F 52 20 23 24 38 30 20 20 20 92 20 5F 5F |.EOR #$80 . __|
00001720: 3F 3F 3F 22 3A 99 22 12 53 54 41 20 24 30 34 30 |???":.".STA $040|
00001730: 30 2C 58 22 00 61 1F 32 05 99 22 11 12 45 4F 52 |0,X".a.2.."..EOR|
00001740: 92 20 49 53 20 41 4E 20 12 45 92 58 43 4C 55 53 |. IS AN .E.XCLUS|
00001750: 49 56 45 20 12 4F 52 92 21 22 3A 8D 36 33 30 30 |IVE .OR.!":.6300|
00001760: 30 00 92 1F 3C 05 99 22 93 49 46 20 12 41 92 20 |0...<..".IF .A. |
00001770: 43 4F 4E 54 41 49 4E 53 20 12 31 30 31 31 30 31 |CONTAINS .101101|
00001780: 30 31 92 20 28 41 46 54 45 52 20 12 4C 44 41 92 |01. (AFTER .LDA.|
00001790: 29 22 00 BF 1F 46 05 99 22 11 54 48 45 4E 20 12 |)"...F..".THEN .|
000017A0: 45 4F 52 20 23 24 38 30 92 20 44 4F 45 53 20 41 |EOR #$80. DOES A|
000017B0: 4E 20 45 58 43 4C 55 53 49 56 45 2D 4F 52 22 00 |N EXCLUSIVE-OR".|
000017C0: E4 1F 50 05 99 22 11 57 49 54 48 20 12 31 30 30 |..P..".WITH .100|
000017D0: 30 30 30 30 30 92 20 28 24 38 30 20 49 4E 20 48 |00000. ($80 IN H|
000017E0: 45 58 29 22 00 0D 20 5A 05 99 22 11 41 4E 44 20 |EX)".. Z..".AND |
000017F0: 47 49 56 45 53 20 12 30 30 31 31 30 31 30 31 92 |GIVES .00110101.|
00001800: 2E 2E 56 45 52 59 20 4E 49 43 45 21 22 00 2B 20 |..VERY NICE!".+ |
00001810: 64 05 99 22 11 4F 55 52 20 50 52 4F 47 52 41 4D |d..".OUR PROGRAM|
00001820: 20 4D 49 47 48 54 20 47 4F 3A 22 00 5C 20 6E 05 | MIGHT GO:".\ n.|
00001830: 99 22 11 12 42 45 47 49 4E 20 4C 44 58 20 23 24 |."..BEGIN LDX #$|
00001840: 46 46 20 20 20 22 3A 99 22 12 4C 4F 4F 50 20 20 |FF ":.".LOOP |
00001850: 4C 44 41 20 24 30 34 30 30 2C 58 22 00 8C 20 78 |LDA $0400,X".. x|
00001860: 05 99 22 12 20 20 20 20 20 20 45 4F 52 20 23 24 |..". EOR #$|
00001870: 38 30 20 20 20 22 3A 99 22 12 20 20 20 20 20 20 |80 ":.". |
00001880: 53 54 41 20 24 30 34 30 30 2C 58 22 00 BC 20 82 |STA $0400,X".. .|
00001890: 05 99 22 12 20 20 20 20 20 20 4C 44 41 20 24 30 |..". LDA $0|
000018A0: 35 30 30 2C 58 22 3A 99 22 12 20 20 20 20 20 20 |500,X":.". |
000018B0: 45 4F 52 20 23 24 38 30 20 20 20 22 00 ED 20 8C |EOR #$80 ".. .|
000018C0: 05 99 22 12 20 20 20 20 20 20 53 54 41 20 24 30 |..". STA $0|
000018D0: 35 30 30 2C 58 22 3A 99 22 12 45 54 43 2E 20 45 |500,X":.".ETC. E|
000018E0: 54 43 2E 2E 55 4E 54 49 4C 2E 2E 92 22 00 07 21 |TC..UNTIL..."..!|
000018F0: 96 05 99 22 12 20 20 20 20 20 20 53 54 41 20 24 |...". STA $|
00001900: 30 37 30 30 2C 58 22 00 3E 21 A0 05 99 22 12 20 |0700,X".>!...". |
00001910: 20 20 20 20 20 44 45 58 20 20 20 20 20 20 20 20 | DEX |
00001920: 22 3A 99 22 12 20 20 20 20 20 20 42 4E 45 20 4C |":.". BNE L|
00001930: 4F 4F 50 20 20 20 22 3A 8D 36 33 30 30 30 00 6A |OOP ":.63000.j|
00001940: 21 AA 05 99 22 93 49 54 27 53 20 43 4C 45 41 52 |!...".IT'S CLEAR|
00001950: 20 54 48 41 54 20 54 48 49 53 20 57 49 4C 4C 20 | THAT THIS WILL |
00001960: 4E 4F 54 20 44 4F 20 49 46 22 00 97 21 B4 05 99 |NOT DO IF"..!...|
00001970: 22 11 57 45 20 57 41 4E 54 20 54 4F 20 47 4F 20 |".WE WANT TO GO |
00001980: 46 52 4F 4D 20 24 30 34 30 30 20 54 4F 20 24 30 |FROM $0400 TO $0|
00001990: 35 30 30 20 54 4F 22 00 C4 21 BE 05 99 22 11 2E |500 TO"..!..."..|
000019A0: 2E 54 4F 20 24 30 4E 30 30 2C 49 4E 53 54 45 41 |.TO $0N00,INSTEA|
000019B0: 44 20 4F 46 20 4A 55 53 54 20 54 4F 20 24 30 37 |D OF JUST TO $07|
000019C0: 30 30 2E 22 00 E9 21 C8 05 99 22 11 57 45 20 4E |00."..!...".WE N|
000019D0: 45 45 44 20 41 20 4C 4F 4F 50 2D 57 49 54 48 49 |EED A LOOP-WITHI|
000019E0: 4E 2D 41 2D 4C 4F 4F 50 22 00 12 22 D2 05 99 22 |N-A-LOOP".."..."|
000019F0: 11 46 4F 52 20 4C 41 52 47 45 20 4E 2E 2E 2E 53 |.FOR LARGE N...S|
00001A00: 4F 4D 45 54 48 49 4E 47 20 4C 49 4B 45 3A 11 11 |OMETHING LIKE:..|
00001A10: 11 22 00 48 22 DC 05 99 22 11 20 20 20 20 20 4D |.".H"...". M|
00001A20: 3D 24 30 34 30 30 22 3A 99 22 20 20 20 20 20 58 |=$0400":." X|
00001A30: 3D 4E 20 20 20 20 20 5F 12 4E 20 49 4E 53 54 45 |=N _.N INSTE|
00001A40: 41 44 20 4F 46 20 33 22 00 7C 22 E6 05 99 22 4C |AD OF 3".|"..."L|
00001A50: 50 31 20 20 59 3D 23 24 46 46 22 3A 99 22 4C 50 |P1 Y=#$FF":."LP|
00001A60: 32 20 20 4C 44 41 20 4D 2B 59 22 3A 99 22 20 20 |2 LDA M+Y":." |
00001A70: 20 20 20 45 4F 52 20 23 24 38 30 22 00 9E 22 E7 | EOR #$80"..".|
00001A80: 05 99 22 20 20 20 20 20 53 54 41 20 4D 2B 59 22 |.." STA M+Y"|
00001A90: 3A 99 22 20 20 20 20 20 59 3D 59 2D 31 22 00 DB |:." Y=Y-1"..|
00001AA0: 22 E8 05 99 22 20 20 20 20 20 49 46 20 59 3C 3E |"..." IF Y<>|
00001AB0: 30 20 47 4F 54 4F 20 4C 50 32 20 22 3A 99 22 20 |0 GOTO LP2 ":." |
00001AC0: 20 20 20 20 4D 3D 4D 2B 24 31 30 30 22 3A 99 22 | M=M+$100":."|
00001AD0: 20 20 20 20 20 58 3D 58 2D 31 22 00 FF 22 E9 05 | X=X-1".."..|
00001AE0: 99 22 20 20 20 20 20 49 46 58 3C 3E 30 20 47 4F |." IFX<>0 GO|
00001AF0: 54 4F 20 4C 50 31 20 22 3A 8D 36 33 30 30 30 00 |TO LP1 ":.63000.|
00001B00: 32 23 EA 05 99 22 13 11 11 11 11 11 11 11 11 11 |2#..."..........|
00001B10: 11 11 11 11 11 11 11 11 11 11 11 22 A3 32 33 29 |...........".23)|
00001B20: 22 5F 12 57 4F 4E 27 54 20 44 4F 20 59 3D 30 92 |"_.WON'T DO Y=0.|
00001B30: 21 22 00 5B 23 EB 05 99 22 11 11 22 A3 32 33 29 |!".[#..."..".23)|
00001B40: 22 5F 12 57 4F 4E 27 54 20 44 4F 20 58 3D 30 92 |"_.WON'T DO X=0.|
00001B50: 21 21 13 22 3A 8D 36 33 30 30 30 00 8E 23 EC 05 |!!.":.63000..#..|
00001B60: 99 22 13 22 3B 3A 81 49 B2 31 A4 31 30 3A 99 43 |.".";:.I.1.10:.C|
00001B70: 4C 24 3A 82 3A 99 22 13 57 45 27 4C 4C 20 12 43 |L$:.:.".WE'LL .C|
00001B80: 48 41 4E 47 45 92 20 49 54 20 54 4F 3A 22 00 CC |HANGE. IT TO:"..|
00001B90: 23 ED 05 8D 36 33 30 31 30 3A 99 22 13 11 20 20 |#...63010:.".. |
00001BA0: 20 20 20 4D 3D 24 30 34 30 30 22 3A 99 22 20 20 | M=$0400":." |
00001BB0: 20 20 20 58 3D 4E 22 20 20 20 20 20 20 20 20 20 | X=N" |
00001BC0: 20 20 20 20 20 20 20 20 20 20 20 22 00 0B 24 EE | "..$.|
00001BD0: 05 99 22 12 4C 50 31 20 20 59 3D 23 24 30 30 20 |..".LP1 Y=#$00 |
00001BE0: 20 20 20 20 20 20 20 20 20 22 3A 99 22 4C 50 32 | ":."LP2|
00001BF0: 20 20 4C 44 41 20 4D 2B 59 22 3A 99 22 20 20 20 | LDA M+Y":." |
00001C00: 20 20 45 4F 52 20 23 24 38 30 22 00 2D 24 EF 05 | EOR #$80".-$..|
00001C10: 99 22 20 20 20 20 20 53 54 41 20 4D 2B 59 22 3A |." STA M+Y":|
00001C20: 99 22 20 20 20 20 20 59 3D 59 2D 31 22 00 6A 24 |." Y=Y-1".j$|
00001C30: F0 05 99 22 20 20 20 20 20 49 46 20 59 3C 3E 30 |..." IF Y<>0|
00001C40: 20 47 4F 54 4F 20 4C 50 32 20 22 3A 99 22 20 20 | GOTO LP2 ":." |
00001C50: 20 20 20 4D 3D 4D 2B 24 31 30 30 22 3A 99 22 20 | M=M+$100":." |
00001C60: 20 20 20 20 58 3D 58 2D 31 22 00 A2 24 F1 05 99 | X=X-1"..$...|
00001C70: 22 12 20 20 20 20 20 49 46 58 3E 3D 30 20 47 4F |". IFX>=0 GO|
00001C80: 54 4F 20 4C 50 31 20 92 22 3A 8D 36 33 30 30 30 |TO LP1 .":.63000|
00001C90: 3A 99 22 13 11 11 11 11 11 11 11 11 11 11 11 11 |:.".............|
00001CA0: 22 3B 00 CC 24 F2 05 99 22 57 45 20 57 4F 52 4B |";..$..."WE WORK|
00001CB0: 20 4F 4E 20 4D 2B 30 30 20 46 49 52 53 54 2C 54 | ON M+00 FIRST,T|
00001CC0: 48 45 4E 20 12 59 3D 59 2D 31 92 22 00 F9 24 F3 |HEN .Y=Y-1."..$.|
00001CD0: 05 99 22 57 49 4C 4C 20 43 48 41 4E 47 45 20 59 |.."WILL CHANGE Y|
00001CE0: 3D 30 30 20 54 4F 20 59 3D 46 46 28 21 29 20 41 |=00 TO Y=FF(!) A|
00001CF0: 4E 44 20 57 45 27 4C 4C 22 00 26 25 F4 05 99 22 |ND WE'LL".&%..."|
00001D00: 43 4F 4E 54 49 4E 55 45 20 57 49 54 48 20 4D 2B |CONTINUE WITH M+|
00001D10: 46 46 20 54 48 45 4E 20 4D 2B 46 45 2E 2E 54 4F |FF THEN M+FE..TO|
00001D20: 20 4D 2B 30 31 22 00 4B 25 F5 05 99 22 41 4E 44 | M+01".K%..."AND|
00001D30: 20 57 45 20 53 54 4F 50 20 54 48 45 20 59 2D 4C | WE STOP THE Y-L|
00001D40: 4F 4F 50 20 54 48 45 52 45 21 22 00 76 25 F6 05 |OOP THERE!".v%..|
00001D50: 99 22 54 48 45 20 58 2D 4C 4F 4F 50 20 53 54 41 |."THE X-LOOP STA|
00001D60: 52 54 53 20 57 49 54 48 20 58 3D 4E 20 41 4E 44 |RTS WITH X=N AND|
00001D70: 20 45 41 43 48 22 00 A9 25 F7 05 99 22 12 58 3D | EACH"..%...".X=|
00001D80: 58 2D 31 92 20 43 48 41 4E 47 45 53 20 58 20 54 |X-1. CHANGES X T|
00001D90: 4F 20 4E 2D 31 2C 4E 2D 32 2C 2E 2E 32 2C 31 2C |O N-1,N-2,..2,1,|
00001DA0: 30 20 12 54 48 45 4E 92 22 00 DA 25 F8 05 99 22 |0 .THEN."..%..."|
00001DB0: 4F 4E 45 20 4D 4F 52 45 20 12 58 3D 58 2D 31 92 |ONE MORE .X=X-1.|
00001DC0: 20 43 48 41 4E 47 45 53 20 58 20 54 4F 20 46 46 | CHANGES X TO FF|
00001DD0: 28 21 29 20 57 48 49 43 48 22 00 0A 26 F9 05 99 |(!) WHICH"..&...|
00001DE0: 22 49 53 20 12 4E 45 47 41 54 49 56 45 92 28 21 |"IS .NEGATIVE.(!|
00001DF0: 29 20 41 4E 44 20 57 45 20 53 54 4F 50 20 54 48 |) AND WE STOP TH|
00001E00: 45 20 58 2D 4C 4F 4F 50 21 22 00 39 26 FA 05 99 |E X-LOOP!".9&...|
00001E10: 22 12 4E 4F 54 45 92 3A 54 48 45 20 36 35 31 30 |".NOTE.:THE 6510|
00001E20: 20 52 45 47 49 53 54 45 52 53 20 43 41 4E 20 48 | REGISTERS CAN H|
00001E30: 4F 4C 44 20 20 23 27 53 22 00 64 26 FB 05 99 22 |OLD #'S".d&..."|
00001E40: 46 52 4F 4D 20 24 30 30 20 54 4F 20 24 46 46 2E |FROM $00 TO $FF.|
00001E50: 49 46 20 57 45 20 48 41 56 45 20 12 30 30 92 20 |IF WE HAVE .00. |
00001E60: 41 4E 44 22 00 9B 26 FC 05 99 22 12 44 45 43 52 |AND"..&...".DECR|
00001E70: 45 4D 45 4E 54 92 2C 49 54 20 43 48 41 4E 47 45 |EMENT.,IT CHANGE|
00001E80: 53 20 54 4F 20 12 46 46 92 2E 2E 41 4E 44 20 12 |S TO .FF...AND .|
00001E90: 46 46 2B 31 92 3D 12 30 30 92 22 00 D6 26 FD 05 |FF+1.=.00."..&..|
00001EA0: 99 22 46 49 4E 41 4C 4C 59 2C 12 4D 53 42 3D 31 |."FINALLY,.MSB=1|
00001EB0: 92 20 53 49 47 4E 49 46 49 45 53 20 41 20 12 4E |. SIGNIFIES A .N|
00001EC0: 45 47 41 54 49 56 45 20 4E 4F 2E 92 21 22 3B 3A |EGATIVE NO..!";:|
00001ED0: 8D 36 33 30 30 30 00 F8 26 04 06 99 22 93 4C 45 |.63000..&...".LE|
00001EE0: 54 27 53 20 54 52 59 20 53 4F 4D 45 54 48 49 4E |T'S TRY SOMETHIN|
00001EF0: 47 20 4C 49 4B 45 3A 22 00 29 27 0E 06 99 22 11 |G LIKE:".)'...".|
00001F00: 12 42 45 47 49 4E 20 4C 44 41 20 23 24 30 34 30 |.BEGIN LDA #$040|
00001F10: 30 20 92 5F 3F 3F 2A 21 23 24 30 34 30 30 20 54 |0 ._??*!#$0400 T|
00001F20: 4F 4F 20 42 49 47 21 21 22 00 57 27 13 06 99 22 |OO BIG!!".W'..."|
00001F30: 12 20 20 20 20 20 20 53 54 41 20 24 42 30 20 20 |. STA $B0 |
00001F40: 20 20 92 5F 24 42 30 20 4E 4F 57 20 48 41 53 20 | ._$B0 NOW HAS |
00001F50: 23 24 30 34 30 30 22 00 87 27 18 06 99 22 12 20 |#$0400"..'...". |
00001F60: 20 20 20 20 20 4C 44 58 20 23 24 30 33 20 20 20 | LDX #$03 |
00001F70: 22 3A 99 22 12 4C 50 31 20 20 20 4C 44 59 20 23 |":.".LP1 LDY #|
00001F80: 24 30 30 20 20 20 22 00 CB 27 22 06 99 22 12 4C |$00 "..'"..".L|
00001F90: 50 32 20 20 20 4C 44 41 20 28 24 42 30 29 2C 59 |P2 LDA ($B0),Y|
00001FA0: 92 5F 20 49 4E 44 49 52 45 43 54 20 49 4E 44 45 |._ INDIRECT INDE|
00001FB0: 58 45 44 3F 22 3A 99 22 12 20 20 20 20 20 20 45 |XED?":.". E|
00001FC0: 4F 52 20 23 24 38 30 20 20 20 22 00 0F 28 2C 06 |OR #$80 "..(,.|
00001FD0: 99 22 12 20 20 20 20 20 20 53 54 41 20 28 24 42 |.". STA ($B|
00001FE0: 30 29 2C 59 92 5F 20 49 4E 44 49 52 45 43 54 20 |0),Y._ INDIRECT |
00001FF0: 49 4E 44 45 58 45 44 21 22 3A 99 22 12 20 20 20 |INDEXED!":.". |
00002000: 20 20 20 44 45 59 20 20 20 20 20 20 20 20 22 00 | DEY ".|
00002010: 50 28 36 06 99 22 12 20 20 20 20 20 20 42 4E 45 |P(6..". BNE|
00002020: 20 4C 50 32 20 20 20 20 22 3A 99 22 12 20 20 20 | LP2 ":.". |
00002030: 20 20 20 49 4E 43 20 24 42 30 20 42 59 20 23 24 | INC $B0 BY #$|
00002040: 31 30 30 92 5F 3F 3F 2A 21 21 48 4F 57 3F 3F 22 |100._??*!!HOW??"|
00002050: 00 92 28 40 06 99 22 12 20 20 20 20 20 20 44 45 |..(@..". DE|
00002060: 58 20 20 20 20 20 20 20 20 22 3A 99 22 12 20 20 |X ":.". |
00002070: 20 20 20 20 42 50 4C 20 4C 50 31 20 20 20 20 92 | BPL LP1 .|
00002080: 5F 42 52 41 4E 43 48 20 4F 4E 20 50 4C 55 53 21 |_BRANCH ON PLUS!|
00002090: 21 22 00 BE 28 4A 06 99 22 11 12 4C 44 41 20 28 |!"..(J.."..LDA (|
000020A0: 24 42 30 29 2C 59 92 20 54 41 4B 45 53 20 54 48 |$B0),Y. TAKES TH|
000020B0: 45 20 43 4F 4E 54 45 4E 54 53 20 4F 46 22 00 F2 |E CONTENTS OF"..|
000020C0: 28 54 06 99 22 11 4D 45 4D 4F 52 59 20 4C 4F 43 |(T..".MEMORY LOC|
000020D0: 27 4E 20 24 42 30 2C 20 41 44 44 53 20 59 2C 20 |'N $B0, ADDS Y, |
000020E0: 41 4E 44 20 54 48 49 53 11 9D 9D 9D 9D B8 B8 B8 |AND THIS........|
000020F0: B8 22 00 1E 29 59 06 99 22 47 49 56 45 53 20 54 |."..)Y.."GIVES T|
00002100: 48 45 20 41 44 44 52 45 53 53 20 4F 46 20 54 48 |HE ADDRESS OF TH|
00002110: 45 20 42 59 54 45 20 57 48 49 43 48 20 22 00 44 |E BYTE WHICH ".D|
00002120: 29 5A 06 99 22 11 47 45 54 53 20 4C 4F 41 44 45 |)Z..".GETS LOADE|
00002130: 44 20 49 4E 54 4F 20 27 41 27 21 21 22 3A 8D 36 |D INTO 'A'!!":.6|
00002140: 33 30 30 30 00 74 29 5E 06 99 22 93 54 48 45 52 |3000.t)^..".THER|
00002150: 45 20 41 52 45 20 53 4F 4D 45 20 4E 45 57 20 49 |E ARE SOME NEW I|
00002160: 44 45 41 53 2E 2E 41 4E 44 20 50 52 4F 42 4C 45 |DEAS..AND PROBLE|
00002170: 4D 53 21 22 00 9F 29 63 06 99 22 11 11 11 42 55 |MS!"..)c.."...BU|
00002180: 54 20 46 49 52 53 54 20 4C 45 54 27 53 20 41 47 |T FIRST LET'S AG|
00002190: 52 45 45 20 54 48 41 54 20 57 45 27 4C 4C 22 00 |REE THAT WE'LL".|
000021A0: CC 29 64 06 99 22 11 55 53 45 20 24 42 30 20 54 |.)d..".USE $B0 T|
000021B0: 4F 20 52 45 46 45 52 20 54 4F 20 54 48 45 20 4D |O REFER TO THE M|
000021C0: 45 4D 4F 52 59 20 4C 4F 43 27 4E 22 00 F8 29 65 |EMORY LOC'N"..)e|
000021D0: 06 99 22 11 41 4E 44 20 28 24 42 30 29 20 54 4F |..".AND ($B0) TO|
000021E0: 20 52 45 46 45 52 20 54 4F 20 54 48 45 20 12 43 | REFER TO THE .C|
000021F0: 4F 4E 54 45 4E 54 53 22 00 18 2A 66 06 99 22 11 |ONTENTS"..*f..".|
00002200: 4F 46 20 4D 45 4D 4F 52 59 20 4C 4F 43 41 54 49 |OF MEMORY LOCATI|
00002210: 4F 4E 20 24 42 30 2E 22 00 4B 2A 68 06 99 22 11 |ON $B0.".K*h..".|
00002220: 11 11 12 4C 45 54 27 53 20 4C 4F 4F 4B 20 41 54 |...LET'S LOOK AT|
00002230: 20 41 44 44 52 45 53 53 49 4E 47 20 4D 4F 44 45 | ADDRESSING MODE|
00002240: 53 92 3A 22 3A 8D 36 33 30 30 30 00 68 2A 72 06 |S.:":.63000.h*r.|
00002250: 99 22 93 42 41 53 49 43 22 A3 32 30 29 22 41 53 |.".BASIC".20)"AS|
00002260: 53 45 4D 42 4C 45 52 22 00 84 2A 77 06 99 22 B8 |SEMBLER"..*w..".|
00002270: B8 B8 B8 B8 22 A3 32 30 29 22 B8 B8 B8 B8 B8 B8 |....".20)"......|
00002280: B8 B8 B8 22 00 A1 2A 7C 06 99 22 12 41 3D 35 92 |..."..*|..".A=5.|
00002290: 22 A3 32 30 29 22 12 4C 44 41 20 23 24 30 35 92 |".20)".LDA #$05.|
000022A0: 22 00 CA 2A 86 06 99 22 11 D1 49 4D 4D 45 44 49 |"..*..."..IMMEDI|
000022B0: 41 54 45 20 4D 4F 44 45 2E 20 54 48 45 20 41 43 |ATE MODE. THE AC|
000022C0: 43 55 4D 55 4C 41 54 4F 52 22 00 E9 2A 90 06 99 |CUMULATOR"..*...|
000022D0: 22 49 53 20 4C 4F 41 44 45 44 20 57 49 54 48 20 |"IS LOADED WITH |
000022E0: 54 48 45 20 23 20 35 2E 22 00 09 2B 9A 06 99 22 |THE # 5."..+..."|
000022F0: 11 12 41 3D 4D 28 35 29 92 22 A3 32 30 29 22 12 |..A=M(5).".20)".|
00002300: 4C 44 41 20 24 30 35 92 22 00 2E 2B A4 06 99 22 |LDA $05."..+..."|
00002310: 11 D1 41 42 53 4F 4C 55 54 45 20 41 44 44 52 45 |..ABSOLUTE ADDRE|
00002320: 53 53 49 4E 47 2E 20 27 41 27 20 49 53 22 00 51 |SSING. 'A' IS".Q|
00002330: 2B AE 06 99 22 4C 4F 41 44 45 44 20 57 49 54 48 |+..."LOADED WITH|
00002340: 20 54 48 45 20 43 4F 4E 54 45 4E 54 53 20 4F 46 | THE CONTENTS OF|
00002350: 22 00 6B 2B B8 06 99 22 4D 45 4D 4F 52 59 20 4C |".k+..."MEMORY L|
00002360: 4F 43 41 54 49 4F 4E 20 35 2E 22 00 90 2B C2 06 |OCATION 5."..+..|
00002370: 99 22 11 12 41 3D 4D 28 35 2B 58 29 92 22 A3 32 |."..A=M(5+X).".2|
00002380: 30 29 22 12 4C 44 41 20 24 30 30 30 35 2C 58 22 |0)".LDA $0005,X"|
00002390: 00 BA 2B CC 06 99 22 11 D1 41 42 53 4F 4C 55 54 |..+..."..ABSOLUT|
000023A0: 45 20 12 49 4E 44 45 58 45 44 92 2E 20 54 48 45 |E .INDEXED.. THE|
000023B0: 20 43 4F 4E 54 45 4E 54 53 22 00 E5 2B D6 06 99 | CONTENTS"..+...|
000023C0: 22 4F 46 20 4C 4F 43 27 4E 20 28 35 2B 58 29 20 |"OF LOC'N (5+X) |
000023D0: 41 52 45 20 4C 4F 41 44 45 44 20 49 4E 54 4F 20 |ARE LOADED INTO |
000023E0: 27 41 27 2E 22 00 0F 2C E0 06 99 22 11 12 41 3D |'A'."..,..."..A=|
000023F0: 4D 28 4D 28 35 2B 58 29 29 92 22 A3 32 30 29 22 |M(M(5+X)).".20)"|
00002400: 12 4C 44 41 20 28 24 30 30 30 35 2C 58 29 22 00 |.LDA ($0005,X)".|
00002410: 39 2C EA 06 99 22 11 D1 49 4E 44 45 58 45 44 20 |9,..."..INDEXED |
00002420: 12 49 4E 44 49 52 45 43 54 92 2E 20 54 48 45 20 |.INDIRECT.. THE |
00002430: 43 4F 4E 54 45 4E 54 53 22 00 63 2C F4 06 99 22 |CONTENTS".c,..."|
00002440: 4F 46 20 4C 4F 43 27 4E 20 28 35 2B 58 29 20 47 |OF LOC'N (5+X) G|
00002450: 49 56 45 20 54 48 45 20 41 44 44 52 45 53 53 20 |IVE THE ADDRESS |
00002460: 4F 46 22 00 91 2C FE 06 99 22 54 48 45 20 42 59 |OF"..,..."THE BY|
00002470: 54 45 20 54 4F 20 42 45 20 4C 4F 41 44 45 44 20 |TE TO BE LOADED |
00002480: 49 4E 54 4F 20 27 41 27 2E 22 3A 8D 36 33 30 30 |INTO 'A'.":.6300|
00002490: 30 00 B2 2C 08 07 99 22 93 54 48 45 4E 20 54 48 |0..,...".THEN TH|
000024A0: 45 52 45 27 53 20 4F 55 52 20 46 52 49 45 4E 44 |ERE'S OUR FRIEND|
000024B0: 3A 22 00 DB 2C 12 07 99 22 11 12 41 3D 4D 28 4D |:"..,..."..A=M(M|
000024C0: 28 35 29 2B 59 29 92 22 A3 32 30 29 22 12 4C 44 |(5)+Y).".20)".LD|
000024D0: 41 20 28 24 30 35 29 2C 59 92 22 00 0C 2D 1C 07 |A ($05),Y."..-..|
000024E0: 99 22 11 D1 12 49 4E 44 49 52 45 43 54 20 49 4E |."...INDIRECT IN|
000024F0: 44 45 58 45 44 92 2E 20 46 49 52 53 54 2C 20 54 |DEXED.. FIRST, T|
00002500: 48 45 20 43 4F 4E 54 45 4E 54 53 22 00 36 2D 26 |HE CONTENTS".6-&|
00002510: 07 99 22 11 4F 46 20 4C 4F 43 27 4E 20 35 20 41 |..".OF LOC'N 5 A|
00002520: 52 45 20 45 58 54 52 41 43 54 45 44 2E 54 48 45 |RE EXTRACTED.THE|
00002530: 4E 20 27 59 27 22 00 60 2D 30 07 99 22 11 49 53 |N 'Y'".`-0..".IS|
00002540: 20 41 44 44 45 44 20 41 4E 44 20 54 48 45 20 52 | ADDED AND THE R|
00002550: 45 53 55 4C 54 20 47 49 56 45 53 20 54 48 45 22 |ESULT GIVES THE"|
00002560: 00 94 2D 3A 07 99 22 11 41 44 44 52 45 53 53 20 |..-:..".ADDRESS |
00002570: 4F 46 20 54 48 45 20 42 59 54 45 20 4C 4F 41 44 |OF THE BYTE LOAD|
00002580: 45 44 20 49 4E 54 4F 20 27 41 27 2E 22 3A 8D 36 |ED INTO 'A'.":.6|
00002590: 33 30 30 30 00 C6 2D 44 07 99 22 93 D1 12 49 4E |3000..-D.."...IN|
000025A0: 44 49 52 45 43 54 92 20 4D 45 41 4E 53 20 57 45 |DIRECT. MEANS WE|
000025B0: 20 47 4F 20 54 4F 20 41 20 4D 45 4D 4F 52 59 20 | GO TO A MEMORY |
000025C0: 4C 4F 43 27 4E 22 00 F3 2D 4E 07 99 22 11 54 4F |LOC'N"..-N..".TO|
000025D0: 20 47 45 54 20 54 48 45 20 41 44 44 52 45 53 53 | GET THE ADDRESS|
000025E0: 20 4F 46 20 54 48 45 20 42 59 54 45 20 54 4F 20 | OF THE BYTE TO |
000025F0: 42 45 22 00 18 2E 58 07 99 22 11 4C 4F 41 44 45 |BE"...X..".LOADE|
00002600: 44 20 49 4E 54 4F 20 54 48 45 20 41 43 43 55 4D |D INTO THE ACCUM|
00002610: 55 4C 41 54 4F 52 2E 22 00 45 2E 62 07 99 22 11 |ULATOR.".E.b..".|
00002620: D1 12 49 4E 44 45 58 45 44 92 20 4D 45 41 4E 53 |..INDEXED. MEANS|
00002630: 20 57 45 20 41 44 44 20 54 48 45 20 43 4F 4E 54 | WE ADD THE CONT|
00002640: 45 4E 54 53 22 00 71 2E 6C 07 99 22 11 4F 46 20 |ENTS".q.l..".OF |
00002650: 41 20 12 36 35 31 30 92 20 52 45 47 49 53 54 45 |A .6510. REGISTE|
00002660: 52 20 54 4F 20 41 4E 20 41 44 44 52 45 53 53 2E |R TO AN ADDRESS.|
00002670: 22 00 9D 2E 76 07 99 22 11 D1 49 46 20 57 45 20 |"...v.."..IF WE |
00002680: 12 49 4E 44 45 58 92 20 54 48 45 4E 20 12 49 4E |.INDEX. THEN .IN|
00002690: 44 49 52 45 43 54 92 20 49 54 27 53 22 00 CE 2E |DIRECT. IT'S"...|
000026A0: 80 07 99 22 11 12 49 4E 44 45 58 45 44 20 49 4E |..."..INDEXED IN|
000026B0: 44 49 52 45 43 54 92 2E 2E 41 53 20 49 4E 20 12 |DIRECT...AS IN .|
000026C0: 4C 44 41 20 28 24 30 34 30 30 2C 58 29 22 00 FA |LDA ($0400,X)"..|
000026D0: 2E 8A 07 99 22 11 D1 49 46 20 57 45 20 12 49 4E |...."..IF WE .IN|
000026E0: 44 49 52 45 43 54 92 20 54 48 45 4E 20 12 49 4E |DIRECT. THEN .IN|
000026F0: 44 45 58 92 20 49 54 27 53 22 00 30 2F 94 07 99 |DEX. IT'S".0/...|
00002700: 22 11 12 49 4E 44 49 52 45 43 54 20 49 4E 44 45 |"..INDIRECT INDE|
00002710: 58 45 44 92 2E 2E 41 53 20 49 4E 20 12 4C 44 41 |XED...AS IN .LDA|
00002720: 20 28 24 42 30 29 2C 59 22 3A 8D 36 33 30 30 30 | ($B0),Y":.63000|
00002730: 00 53 2F 9E 07 4D 53 24 B2 22 43 4C 45 41 52 3F |.S/..MS$."CLEAR?|
00002740: 21 2A 24 26 22 3A 8D 36 33 31 30 30 3A 8D 36 33 |!*$&":.63100:.63|
00002750: 30 30 30 00 79 2F A8 07 99 22 93 4C 45 54 27 53 |000.y/...".LET'S|
00002760: 20 45 58 50 4C 41 49 4E 20 41 42 4F 55 54 20 12 | EXPLAIN ABOUT .|
00002770: 4D 45 4D 4F 52 59 92 2E 22 00 AA 2F B2 07 99 22 |MEMORY.."../..."|
00002780: 11 12 36 35 31 30 92 20 49 4E 53 54 52 55 43 54 |..6510. INSTRUCT|
00002790: 49 4F 4E 53 20 41 52 45 20 53 54 4F 52 45 44 20 |IONS ARE STORED |
000027A0: 49 4E 20 4D 45 4D 4F 52 59 22 00 CE 2F BC 07 99 |IN MEMORY"../...|
000027B0: 22 41 53 20 31 2D 20 4F 52 20 32 2D 20 4F 52 20 |"AS 1- OR 2- OR |
000027C0: 33 2D 20 48 45 58 20 42 59 54 45 53 2E 22 00 F1 |3- HEX BYTES."..|
000027D0: 2F C6 07 99 22 11 12 49 4E 58 92 3D 12 45 38 92 |/..."..INX.=.E8.|
000027E0: 20 49 53 20 4F 4E 45 20 42 59 54 45 20 4C 4F 4E | IS ONE BYTE LON|
000027F0: 47 00 19 30 D0 07 99 22 11 12 4C 44 41 20 23 24 |G..0..."..LDA #$|
00002800: 30 35 92 3D 12 41 44 20 30 35 92 20 49 53 20 54 |05.=.AD 05. IS T|
00002810: 57 4F 20 42 59 54 45 53 22 00 4A 30 DA 07 99 22 |WO BYTES".J0..."|
00002820: 11 12 4C 44 41 20 24 31 32 33 34 2C 58 92 3D 12 |..LDA $1234,X.=.|
00002830: 42 44 20 33 34 20 31 32 92 20 49 53 20 54 48 52 |BD 34 12. IS THR|
00002840: 45 45 20 42 59 54 45 53 2E 22 00 66 30 E4 07 99 |EE BYTES.".f0...|
00002850: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |" |
00002860: 5E 5E 20 5E 5E 22 00 8E 30 EE 07 99 22 49 4E 20 |^^ ^^"..0..."IN |
00002870: 47 45 4E 45 52 41 4C 2C 20 32 2D 42 59 54 45 20 |GENERAL, 2-BYTE |
00002880: 41 44 44 52 45 53 53 45 53 20 41 52 45 22 00 B8 |ADDRESSES ARE"..|
00002890: 30 F8 07 99 22 53 54 4F 52 45 44 20 49 4E 20 4D |0..."STORED IN M|
000028A0: 45 4D 4F 52 59 20 49 4E 20 52 45 56 45 52 53 45 |EMORY IN REVERSE|
000028B0: 20 4F 52 44 45 52 3A 22 00 D9 30 02 08 99 22 12 | ORDER:"..0...".|
000028C0: 4C 4F 2D 42 59 54 45 92 20 54 48 45 4E 20 12 48 |LO-BYTE. THEN .H|
000028D0: 49 2D 42 59 54 45 92 2E 22 00 F1 30 0C 08 99 22 |I-BYTE.."..0..."|
000028E0: 11 53 4F 20 49 46 20 59 4F 55 20 48 41 56 45 3A |.SO IF YOU HAVE:|
000028F0: 22 00 1C 31 16 08 99 22 12 4C 44 41 20 28 24 42 |"..1...".LDA ($B|
00002900: 30 29 2C 59 92 3D 12 42 31 20 43 41 92 20 54 48 |0),Y.=.B1 CA. TH|
00002910: 45 20 36 35 31 30 20 57 49 4C 4C 22 00 45 31 20 |E 6510 WILL".E1 |
00002920: 08 99 22 47 45 54 20 46 52 4F 4D 20 24 42 30 20 |.."GET FROM $B0 |
00002930: 54 48 45 20 12 4C 4F 2D 42 59 54 45 92 20 4F 46 |THE .LO-BYTE. OF|
00002940: 20 54 48 45 22 00 70 31 2A 08 99 22 41 44 44 52 | THE".p1*.."ADDR|
00002950: 45 53 53 2C 41 4E 44 20 46 52 4F 4D 20 24 42 31 |ESS,AND FROM $B1|
00002960: 20 54 48 45 20 12 48 49 2D 42 59 54 45 92 21 22 | THE .HI-BYTE.!"|
00002970: 00 9E 31 34 08 99 22 11 D1 42 45 20 53 55 52 45 |..14.."..BE SURE|
00002980: 20 54 4F 20 50 55 54 20 42 4F 54 48 20 42 59 54 | TO PUT BOTH BYT|
00002990: 45 53 20 49 4E 20 24 42 30 2F 24 42 31 22 00 C3 |ES IN $B0/$B1"..|
000029A0: 31 3E 08 99 22 42 45 46 4F 52 45 20 12 4C 44 41 |1>.."BEFORE .LDA|
000029B0: 20 28 24 42 30 29 2C 59 92 21 21 22 3A 8D 36 33 | ($B0),Y.!!":.63|
000029C0: 30 30 30 00 DE 31 48 08 99 22 93 4C 45 54 27 53 |000..1H..".LET'S|
000029D0: 20 47 45 54 20 42 41 43 4B 20 54 4F 3A 22 00 0F | GET BACK TO:"..|
000029E0: 32 52 08 99 22 11 12 42 45 47 49 4E 20 4C 44 41 |2R.."..BEGIN LDA|
000029F0: 20 23 24 30 34 30 30 20 92 5F 3F 3F 2A 21 23 24 | #$0400 ._??*!#$|
00002A00: 30 34 30 30 20 54 4F 4F 20 42 49 47 21 21 22 00 |0400 TOO BIG!!".|
00002A10: 3D 32 5C 08 99 22 12 20 20 20 20 20 20 53 54 41 |=2\..". STA|
00002A20: 20 24 42 30 20 20 20 20 92 5F 24 42 30 20 4E 4F | $B0 ._$B0 NO|
00002A30: 57 20 48 41 53 20 23 24 30 34 30 30 22 00 6D 32 |W HAS #$0400".m2|
00002A40: 66 08 99 22 12 20 20 20 20 20 20 4C 44 58 20 23 |f..". LDX #|
00002A50: 24 30 33 20 20 20 22 3A 99 22 12 4C 50 31 20 20 |$03 ":.".LP1 |
00002A60: 20 4C 44 59 20 23 24 30 30 20 20 20 22 00 B1 32 | LDY #$00 "..2|
00002A70: 70 08 99 22 12 4C 50 32 20 20 20 4C 44 41 20 28 |p..".LP2 LDA (|
00002A80: 24 42 30 29 2C 59 92 5F 20 49 4E 44 49 52 45 43 |$B0),Y._ INDIREC|
00002A90: 54 20 49 4E 44 45 58 45 44 3F 22 3A 99 22 12 20 |T INDEXED?":.". |
00002AA0: 20 20 20 20 20 45 4F 52 20 23 24 38 30 20 20 20 | EOR #$80 |
00002AB0: 22 00 F5 32 7A 08 99 22 12 20 20 20 20 20 20 53 |"..2z..". S|
00002AC0: 54 41 20 28 24 42 30 29 2C 59 92 5F 20 49 4E 44 |TA ($B0),Y._ IND|
00002AD0: 49 52 45 43 54 20 49 4E 44 45 58 45 44 21 22 3A |IRECT INDEXED!":|
00002AE0: 99 22 12 20 20 20 20 20 20 44 45 59 20 20 20 20 |.". DEY |
00002AF0: 20 20 20 20 22 00 36 33 84 08 99 22 12 20 20 20 | ".63...". |
00002B00: 20 20 20 42 4E 45 20 4C 50 32 20 20 20 20 22 3A | BNE LP2 ":|
00002B10: 99 22 12 20 20 20 20 20 20 49 4E 43 20 24 42 30 |.". INC $B0|
00002B20: 20 42 59 20 23 24 31 30 30 92 5F 3F 3F 2A 21 21 | BY #$100._??*!!|
00002B30: 48 4F 57 3F 3F 22 00 78 33 8E 08 99 22 12 20 20 |HOW??".x3...". |
00002B40: 20 20 20 20 44 45 58 20 20 20 20 20 20 20 20 22 | DEX "|
00002B50: 3A 99 22 12 20 20 20 20 20 20 42 50 4C 20 4C 50 |:.". BPL LP|
00002B60: 31 20 20 20 20 92 5F 42 52 41 4E 43 48 20 4F 4E |1 ._BRANCH ON|
00002B70: 20 50 4C 55 53 21 21 22 00 A3 33 98 08 99 22 11 | PLUS!!"..3...".|
00002B80: 57 45 20 4E 4F 57 20 4D 55 53 54 20 50 55 54 20 |WE NOW MUST PUT |
00002B90: 24 30 34 30 30 20 49 4E 54 4F 20 24 42 30 2F 24 |$0400 INTO $B0/$|
00002BA0: 42 31 22 00 DA 33 A2 08 99 22 57 49 54 48 20 12 |B1"..3..."WITH .|
00002BB0: 4C 44 41 20 23 24 30 30 92 20 12 53 54 41 20 24 |LDA #$00. .STA $|
00002BC0: 42 30 92 20 12 4C 44 41 20 23 24 30 34 92 20 12 |B0. .LDA #$04. .|
00002BD0: 53 54 41 20 24 42 31 92 2E 22 00 09 34 AC 08 99 |STA $B1.."..4...|
00002BE0: 22 11 41 4C 53 4F 20 12 49 4E 43 20 24 42 30 20 |".ALSO .INC $B0 |
00002BF0: 42 59 20 23 24 31 30 30 92 20 49 53 20 43 48 41 |BY #$100. IS CHA|
00002C00: 4E 47 45 44 20 54 4F 3A 22 00 34 34 B6 08 99 22 |NGED TO:".44..."|
00002C10: 12 49 4E 43 20 24 42 31 92 2E 2E 2E 20 57 45 20 |.INC $B1.... WE |
00002C20: 4E 45 45 44 20 4F 4E 4C 59 20 12 49 4E 43 92 20 |NEED ONLY .INC. |
00002C30: 54 48 45 22 00 52 34 C0 08 99 22 48 49 2D 42 59 |THE".R4..."HI-BY|
00002C40: 54 45 20 42 59 20 27 31 27 21 22 3A 8D 36 33 30 |TE BY '1'!":.630|
00002C50: 30 30 00 77 34 CA 08 99 22 93 57 45 27 4C 4C 20 |00.w4...".WE'LL |
00002C60: 43 48 41 4E 47 45 20 4F 55 52 20 50 52 4F 47 52 |CHANGE OUR PROGR|
00002C70: 41 4D 20 54 4F 3A 22 00 A9 34 D4 08 99 22 11 12 |AM TO:"..4..."..|
00002C80: 42 45 47 49 4E 20 4C 44 41 20 23 24 30 30 20 20 |BEGIN LDA #$00 |
00002C90: 20 92 22 3A 99 22 12 20 20 20 20 20 20 53 54 41 | .":.". STA|
00002CA0: 20 24 42 30 20 20 20 20 22 00 D9 34 DE 08 99 22 | $B0 "..4..."|
00002CB0: 12 20 20 20 20 20 20 4C 44 41 20 23 24 30 34 20 |. LDA #$04 |
00002CC0: 20 20 22 3A 99 22 12 20 20 20 20 20 20 53 54 41 | ":.". STA|
00002CD0: 20 24 42 31 20 20 20 20 22 00 09 35 E8 08 99 22 | $B1 "..5..."|
00002CE0: 12 20 20 20 20 20 20 4C 44 58 20 23 24 30 33 20 |. LDX #$03 |
00002CF0: 20 20 22 3A 99 22 12 4C 50 31 20 20 20 4C 44 59 | ":.".LP1 LDY|
00002D00: 20 23 24 30 30 20 20 20 22 00 3A 35 F2 08 99 22 | #$00 ".:5..."|
00002D10: 12 4C 50 32 20 20 20 4C 44 41 20 28 24 42 30 29 |.LP2 LDA ($B0)|
00002D20: 2C 59 92 22 3A 99 22 12 20 20 20 20 20 20 45 4F |,Y.":.". EO|
00002D30: 52 20 23 24 38 30 20 20 20 22 00 6B 35 FC 08 99 |R #$80 ".k5...|
00002D40: 22 12 20 20 20 20 20 20 53 54 41 20 28 24 42 30 |". STA ($B0|
00002D50: 29 2C 59 92 22 3A 99 22 12 20 20 20 20 20 20 44 |),Y.":.". D|
00002D60: 45 59 20 20 20 20 20 20 20 20 22 00 9B 35 06 09 |EY "..5..|
00002D70: 99 22 12 20 20 20 20 20 20 42 4E 45 20 4C 50 32 |.". BNE LP2|
00002D80: 20 20 20 20 22 3A 99 22 12 20 20 20 20 20 20 49 | ":.". I|
00002D90: 4E 43 20 24 42 31 20 20 20 20 22 00 D3 35 10 09 |NC $B1 "..5..|
00002DA0: 99 22 12 20 20 20 20 20 20 44 45 58 20 20 20 20 |.". DEX |
00002DB0: 20 20 20 20 22 3A 99 22 12 20 20 20 20 20 20 42 | ":.". B|
00002DC0: 50 4C 20 4C 50 31 20 20 20 20 92 22 3A 8D 36 33 |PL LP1 .":.63|
00002DD0: 30 30 30 00 07 36 1A 09 99 22 13 11 11 11 11 11 |000..6..."......|
00002DE0: 11 11 11 11 11 11 11 11 11 11 11 11 57 45 20 4E |............WE N|
00002DF0: 45 45 44 4E 27 54 20 12 4C 44 59 20 23 24 30 30 |EEDN'T .LDY #$00|
00002E00: 92 20 45 41 43 48 22 00 3B 36 24 09 99 22 11 54 |. EACH".;6$..".T|
00002E10: 49 4D 45 20 57 45 20 12 42 50 4C 20 4C 50 31 22 |IME WE .BPL LP1"|
00002E20: 3A 99 22 11 59 3D 30 20 41 4C 52 45 41 44 59 20 |:.".Y=0 ALREADY |
00002E30: 53 4F 3A 22 3A 8D 36 33 30 31 30 00 70 36 2E 09 |SO:":.63010.p6..|
00002E40: 99 22 13 11 11 11 11 11 11 11 12 20 20 20 20 20 |."......... |
00002E50: 22 3A 99 22 12 4C 4F 4F 50 22 3A 99 22 11 11 11 |":.".LOOP":."...|
00002E60: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 12 4C 4F 4F 50 22 |...........LOOP"|
00002E70: 00 90 36 33 09 99 22 11 11 1D 1D 1D 1D 1D 1D 1D |..63..".........|
00002E80: 1D 1D 1D 12 4C 4F 4F 50 22 3A 8D 36 33 30 30 30 |....LOOP":.63000|
00002E90: 00 B7 36 38 09 99 22 13 11 11 11 11 11 11 11 11 |..68..".........|
00002EA0: 11 11 11 11 11 11 11 11 22 3A 81 49 B2 31 A4 36 |........":.I.1.6|
00002EB0: 3A 99 43 4C 24 3A 82 00 E9 36 42 09 99 22 13 11 |:.CL$:...6B.."..|
00002EC0: 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................|
00002ED0: 4E 4F 54 45 20 54 48 41 54 20 12 4C 44 58 20 23 |NOTE THAT .LDX #|
00002EE0: 24 30 33 92 20 43 41 4E 22 00 0D 37 4C 09 99 22 |$03. CAN"..7L.."|
00002EF0: 11 42 45 20 43 48 41 4E 47 45 44 20 54 4F 20 41 |.BE CHANGED TO A|
00002F00: 4E 59 54 48 49 4E 47 20 46 52 4F 4D 22 00 36 37 |NYTHING FROM".67|
00002F10: 56 09 99 22 11 12 4C 44 58 20 23 24 30 31 92 20 |V.."..LDX #$01. |
00002F20: 54 4F 20 12 4C 44 58 20 23 24 38 30 92 2E 22 3A |TO .LDX #$80..":|
00002F30: 8D 36 33 30 30 30 00 5D 37 60 09 99 22 13 11 11 |.63000.]7`.."...|
00002F40: 11 11 11 11 11 11 11 11 11 11 11 11 11 11 22 3A |..............":|
00002F50: 81 49 B2 31 A4 36 3A 99 43 4C 24 3A 82 00 9F 37 |.I.1.6:.CL$:...7|
00002F60: 6A 09 99 22 13 11 11 11 11 11 11 11 11 11 11 11 |j.."............|
00002F70: 11 11 11 11 11 11 46 4F 52 20 12 4C 44 58 20 23 |......FOR .LDX #|
00002F80: 24 30 30 92 20 57 45 27 4C 4C 20 58 2D 4C 4F 4F |$00. WE'LL X-LOO|
00002F90: 50 20 4F 4E 43 45 20 41 4E 59 57 41 59 21 22 00 |P ONCE ANYWAY!".|
00002FA0: C5 37 74 09 99 22 46 4F 52 20 12 4C 44 58 20 23 |.7t.."FOR .LDX #|
00002FB0: 24 38 31 92 2C 4F 52 20 48 49 47 48 45 52 2C 12 |$81.,OR HIGHER,.|
00002FC0: 44 45 58 92 22 00 F1 37 7E 09 99 22 57 49 4C 4C |DEX."..7~.."WILL|
00002FD0: 20 4C 45 41 56 45 20 27 4D 53 42 27 3D 31 20 49 | LEAVE 'MSB'=1 I|
00002FE0: 4E 20 54 48 45 20 58 2D 52 45 47 49 53 54 45 52 |N THE X-REGISTER|
00002FF0: 22 00 1B 38 88 09 99 22 41 4E 44 20 58 3C 30 20 |"..8..."AND X<0 |
00003000: 57 49 4C 4C 20 52 45 53 55 4C 54 20 41 4E 44 20 |WILL RESULT AND |
00003010: 12 42 50 4C 92 20 57 49 4C 4C 22 00 47 38 92 09 |.BPL. WILL".G8..|
00003020: 99 22 12 4E 4F 54 92 20 54 41 4B 45 20 55 53 20 |.".NOT. TAKE US |
00003030: 42 41 43 4B 20 54 4F 20 27 4C 4F 4F 50 27 21 22 |BACK TO 'LOOP'!"|
00003040: 3A 8D 36 33 30 30 30 00 6E 38 9C 09 99 22 13 11 |:.63000.n8..."..|
00003050: 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 22 |..............."|
00003060: 3A 81 49 B2 31 A4 36 3A 99 43 4C 24 3A 82 00 A0 |:.I.1.6:.CL$:...|
00003070: 38 A6 09 99 22 13 11 11 11 11 11 11 11 11 11 11 |8..."...........|
00003080: 11 11 11 11 11 11 11 4E 4F 54 45 20 54 48 41 54 |.......NOTE THAT|
00003090: 20 28 24 42 31 29 20 57 49 4C 4C 20 4E 4F 54 22 | ($B1) WILL NOT"|
000030A0: 00 CE 38 B0 09 99 22 12 4F 56 45 52 46 4C 4F 57 |..8...".OVERFLOW|
000030B0: 92 20 41 46 54 45 52 20 41 20 4E 55 4D 42 45 52 |. AFTER A NUMBER|
000030C0: 20 4F 46 20 12 49 4E 43 20 24 42 31 92 22 00 FA | OF .INC $B1."..|
000030D0: 38 BA 09 99 22 49 4E 53 54 52 27 4E 53 2E 20 41 |8..."INSTR'NS. A|
000030E0: 46 54 45 52 20 41 4C 4C 2C 4D 45 4D 4F 52 59 20 |FTER ALL,MEMORY |
000030F0: 4F 4E 4C 59 20 47 4F 45 53 22 00 1F 39 C4 09 99 |ONLY GOES"..9...|
00003100: 22 54 4F 20 24 46 46 46 46 2C 20 53 4F 2C 20 55 |"TO $FFFF, SO, U|
00003110: 4E 4C 45 53 53 20 59 4F 55 20 47 4F 4F 46 22 00 |NLESS YOU GOOF".|
00003120: 4C 39 CE 09 99 22 28 24 42 31 29 3C 3D 46 46 20 |L9..."($B1)<=FF |
00003130: 57 49 4C 4C 20 41 4C 57 41 59 53 20 42 45 20 54 |WILL ALWAYS BE T|
00003140: 52 55 45 21 22 3A 8D 36 33 30 30 30 00 77 39 D8 |RUE!":.63000.w9.|
00003150: 09 99 22 93 4E 4F 54 45 20 54 48 41 54 20 49 4E |..".NOTE THAT IN|
00003160: 43 52 45 4D 45 4E 54 49 4E 47 20 54 48 45 20 41 |CREMENTING THE A|
00003170: 44 44 52 45 53 53 22 00 A0 39 E2 09 99 22 49 4E |DDRESS"..9..."IN|
00003180: 20 24 42 30 2F 24 42 31 20 42 59 20 24 30 31 30 | $B0/$B1 BY $010|
00003190: 30 20 4F 4E 4C 59 20 52 45 51 55 49 52 45 53 22 |0 ONLY REQUIRES"|
000031A0: 00 CB 39 EC 09 99 22 12 49 4E 43 20 24 42 31 92 |..9...".INC $B1.|
000031B0: 2E 20 49 46 20 59 4F 55 20 57 41 4E 54 20 54 4F |. IF YOU WANT TO|
000031C0: 20 49 4E 43 52 45 4D 45 4E 54 22 00 F3 39 F6 09 | INCREMENT"..9..|
000031D0: 99 22 42 59 20 24 30 30 30 31 20 59 4F 55 20 43 |."BY $0001 YOU C|
000031E0: 41 4E 20 44 4F 20 49 54 20 54 48 49 53 20 57 41 |AN DO IT THIS WA|
000031F0: 59 3A 22 00 0A 3A 00 0A 99 22 11 12 20 20 20 20 |Y:"..:...".. |
00003200: 20 2D 2D 2D 2D 2D 2D 2D 20 22 00 44 3A 0A 0A 99 | ------- ".D:...|
00003210: 22 12 20 20 20 20 20 49 4E 43 20 24 42 30 20 22 |". INC $B0 "|
00003220: 3A 99 22 12 20 20 20 20 20 42 4E 45 20 4E 45 58 |:.". BNE NEX|
00003230: 54 22 3A 99 22 12 20 20 20 20 20 49 4E 43 20 24 |T":.". INC $|
00003240: 42 31 20 22 00 5A 3A 14 0A 99 22 12 4E 45 58 54 |B1 ".Z:...".NEXT|
00003250: 20 2D 2D 2D 2D 2D 2D 2D 20 22 00 87 3A 1E 0A 99 | ------- "..:...|
00003260: 22 11 54 48 49 53 20 41 44 44 53 20 27 31 27 20 |".THIS ADDS '1' |
00003270: 54 4F 20 28 24 42 30 29 2E 49 46 20 49 54 20 44 |TO ($B0).IF IT D|
00003280: 4F 45 53 4E 27 54 22 00 B3 3A 28 0A 99 22 12 4F |OESN'T"..:(..".O|
00003290: 56 45 52 46 4C 4F 57 92 20 46 52 4F 4D 20 46 46 |VERFLOW. FROM FF|
000032A0: 20 54 4F 20 30 30 20 57 45 20 43 4F 4E 54 49 4E | TO 00 WE CONTIN|
000032B0: 55 45 22 00 D6 3A 32 0A 99 22 57 49 54 48 20 54 |UE"..:2.."WITH T|
000032C0: 48 45 20 27 4E 45 58 54 27 20 49 4E 54 52 55 43 |HE 'NEXT' INTRUC|
000032D0: 54 49 4F 4E 2E 22 00 FA 3A 3C 0A 99 22 11 49 46 |TION."..:<..".IF|
000032E0: 20 49 54 20 44 4F 45 53 20 4F 56 45 52 46 4C 4F | IT DOES OVERFLO|
000032F0: 57 20 54 4F 20 12 30 30 92 22 00 24 3B 46 0A 99 |W TO .00.".$;F..|
00003300: 22 54 48 45 20 12 42 4E 45 20 4E 45 58 54 92 20 |"THE .BNE NEXT. |
00003310: 57 49 4C 4C 20 4E 4F 54 20 54 41 4B 45 20 55 53 |WILL NOT TAKE US|
00003320: 20 54 4F 22 00 51 3B 50 0A 99 22 27 4E 45 58 54 | TO".Q;P.."'NEXT|
00003330: 27 2C 20 41 4E 44 20 57 45 20 41 44 44 20 27 31 |', AND WE ADD '1|
00003340: 27 20 54 4F 20 54 48 45 20 48 49 2D 42 59 54 45 |' TO THE HI-BYTE|
00003350: 22 00 6F 3B 5A 0A 99 22 57 49 54 48 20 12 49 4E |".o;Z.."WITH .IN|
00003360: 43 20 24 42 31 92 2E 22 3A 8D 36 33 30 30 30 00 |C $B1..":.63000.|
00003370: 9E 3B 64 0A 99 22 93 49 46 20 59 4F 55 20 57 41 |.;d..".IF YOU WA|
00003380: 4E 54 20 54 4F 20 49 4E 43 52 45 4D 45 4E 54 20 |NT TO INCREMENT |
00003390: 42 59 20 4F 54 48 45 52 20 54 48 41 4E 22 00 CE |BY OTHER THAN"..|
000033A0: 3B 6E 0A 99 22 11 24 30 30 30 31 20 4F 52 20 24 |;n..".$0001 OR $|
000033B0: 30 31 30 30 20 28 12 49 4E 43 20 24 42 30 92 20 |0100 (.INC $B0. |
000033C0: 4F 52 20 12 49 4E 43 20 24 42 31 92 29 22 00 FC |OR .INC $B1.)"..|
000033D0: 3B 78 0A 99 22 11 54 48 45 4E 20 59 4F 55 20 4E |;x..".THEN YOU N|
000033E0: 45 45 44 20 54 4F 20 12 41 44 44 92 20 54 48 45 |EED TO .ADD. THE|
000033F0: 20 49 4E 43 52 45 4D 45 4E 54 2E 22 00 20 3C 7D | INCREMENT.". <}|
00003400: 0A 99 22 11 53 55 50 50 4F 53 45 20 57 45 20 57 |..".SUPPOSE WE W|
00003410: 41 4E 54 20 54 4F 20 41 44 44 20 24 31 46 3A 22 |ANT TO ADD $1F:"|
00003420: 00 3F 3C 82 0A 99 22 11 12 4C 44 41 20 24 42 30 |.?<..."..LDA $B0|
00003430: 20 92 5F 47 45 54 20 4C 4F 2D 42 59 54 45 22 00 | ._GET LO-BYTE".|
00003440: 65 3C 8C 0A 99 22 12 41 44 43 20 23 24 31 46 92 |e<...".ADC #$1F.|
00003450: 5F 41 44 44 20 23 24 31 46 20 54 4F 20 4C 4F 2D |_ADD #$1F TO LO-|
00003460: 42 59 54 45 22 00 83 3C 96 0A 99 22 12 53 54 41 |BYTE"..<...".STA|
00003470: 20 24 42 30 20 92 5F 50 55 54 20 49 54 20 42 41 | $B0 ._PUT IT BA|
00003480: 43 4B 22 00 A1 3C A0 0A 99 22 12 4C 44 41 20 24 |CK"..<...".LDA $|
00003490: 42 31 20 92 5F 47 45 54 20 48 49 2D 42 59 54 45 |B1 ._GET HI-BYTE|
000034A0: 22 00 DA 3C AA 0A 99 22 12 41 44 43 20 23 24 30 |"..<...".ADC #$0|
000034B0: 30 92 5F 41 44 44 20 5A 45 52 4F 28 3F 21 29 22 |0._ADD ZERO(?!)"|
000034C0: 3A 99 22 12 53 54 41 20 24 42 31 20 92 5F 50 55 |:.".STA $B1 ._PU|
000034D0: 54 20 49 54 20 42 41 43 4B 22 00 08 3D B4 0A 99 |T IT BACK"..=...|
000034E0: 22 11 59 4F 55 20 53 45 45 2E 2E 41 44 44 49 4E |".YOU SEE..ADDIN|
000034F0: 47 20 23 24 31 46 20 4D 49 47 48 54 20 4A 55 53 |G #$1F MIGHT JUS|
00003500: 54 20 43 41 55 53 45 22 00 37 3D BE 0A 99 22 54 |T CAUSE".7=..."T|
00003510: 48 45 20 43 4F 4E 54 45 4E 54 53 20 4F 46 20 24 |HE CONTENTS OF $|
00003520: 42 30 20 54 4F 20 12 4F 56 45 52 46 4C 4F 57 92 |B0 TO .OVERFLOW.|
00003530: 20 57 48 49 43 48 22 00 64 3D C8 0A 99 22 43 41 | WHICH".d=..."CA|
00003540: 55 53 45 53 20 12 43 41 52 52 59 92 3D 31 2E 20 |USES .CARRY.=1. |
00003550: 53 4F 20 57 45 20 41 44 44 20 54 48 45 20 43 41 |SO WE ADD THE CA|
00003560: 52 52 59 22 00 8F 3D D2 0A 99 22 54 4F 20 28 24 |RRY"..=..."TO ($|
00003570: 42 31 29 20 57 49 54 48 20 12 4C 44 41 20 24 42 |B1) WITH .LDA $B|
00003580: 31 92 20 26 20 12 41 44 43 20 23 24 30 30 22 00 |1. & .ADC #$00".|
00003590: CD 3D DC 0A 99 22 11 4E 4F 54 45 11 9D 9D 9D 9D |.=...".NOTE.....|
000035A0: B8 B8 B8 B8 91 3A 12 41 44 43 92 20 4D 45 41 4E |.....:.ADC. MEAN|
000035B0: 53 20 12 41 44 92 44 20 57 49 54 48 20 12 43 92 |S .AD.D WITH .C.|
000035C0: 41 52 52 59 2E 22 3A 8D 36 33 30 30 30 00 05 3E |ARRY.":.63000..>|
000035D0: E6 0A 99 22 13 11 11 11 11 11 11 11 11 11 11 11 |..."............|
000035E0: 11 11 11 22 3A 81 49 B2 31 A4 38 3A 99 43 4C 24 |...":.I.1.8:.CL$|
000035F0: 3A 82 3A 99 22 13 11 11 11 11 11 11 11 11 11 11 |:.:."...........|
00003600: 11 11 11 11 22 00 32 3E F0 0A 99 22 4F 46 20 43 |....".2>..."OF C|
00003610: 4F 55 52 53 45 20 54 48 45 20 12 43 41 52 52 59 |OURSE THE .CARRY|
00003620: 92 20 4D 41 59 20 42 45 20 12 31 92 20 57 48 45 |. MAY BE .1. WHE|
00003630: 4E 22 00 5D 3E FA 0A 99 22 11 54 48 45 20 41 42 |N".]>...".THE AB|
00003640: 4F 56 45 20 50 49 45 43 45 20 4F 46 20 43 4F 44 |OVE PIECE OF COD|
00003650: 45 20 53 54 41 52 54 53 2C 20 53 4F 22 00 A0 3E |E STARTS, SO"..>|
00003660: 04 0B 99 22 11 57 45 20 4D 55 53 54 20 41 4C 57 |...".WE MUST ALW|
00003670: 41 59 53 11 9D 9D 9D 9D 9D 9D B8 B8 B8 B8 B8 B8 |AYS.............|
00003680: 91 20 12 43 4C 43 92 20 42 45 46 4F 52 45 20 41 |. .CLC. BEFORE A|
00003690: 4E 20 12 41 44 43 92 21 22 3A 8D 36 33 30 31 30 |N .ADC.!":.63010|
000036A0: 00 C0 3E 0E 0B 99 22 13 11 11 11 11 11 11 11 12 |..>...".........|
000036B0: 43 4C 43 20 20 20 20 20 22 3A 8D 36 33 30 30 30 |CLC ":.63000|
000036C0: 00 EE 3E 18 0B 99 22 93 49 46 20 59 4F 55 20 57 |..>...".IF YOU W|
000036D0: 41 4E 54 20 54 4F 20 12 53 55 42 54 52 41 43 54 |ANT TO .SUBTRACT|
000036E0: 92 20 12 23 24 31 46 92 20 59 4F 55 3A 22 00 29 |. .#$1F. YOU:".)|
000036F0: 3F 22 0B 99 22 11 11 12 4C 44 41 20 24 42 30 20 |?".."...LDA $B0 |
00003700: 22 3A 99 22 12 53 42 43 20 23 24 31 46 92 5F 53 |":.".SBC #$1F._S|
00003710: 55 42 54 52 41 43 54 20 24 31 46 22 3A 99 22 12 |UBTRACT $1F":.".|
00003720: 53 54 41 20 24 42 30 20 22 00 64 3F 2C 0B 99 22 |STA $B0 ".d?,.."|
00003730: 12 4C 44 41 20 24 42 31 20 22 3A 99 22 12 53 42 |.LDA $B1 ":.".SB|
00003740: 43 20 23 24 30 30 92 5F 53 55 42 54 52 41 43 54 |C #$00._SUBTRACT|
00003750: 20 24 30 30 21 21 22 3A 99 22 12 53 54 41 20 24 | $00!!":.".STA $|
00003760: 42 31 20 22 00 A2 3F 36 0B 99 22 11 4E 4F 54 45 |B1 "..?6..".NOTE|
00003770: 11 9D 9D 9D 9D B8 B8 B8 B8 91 3A 12 53 42 43 92 |..........:.SBC.|
00003780: 20 4D 45 41 4E 53 20 12 53 92 55 12 42 92 54 52 | MEANS .S.U.B.TR|
00003790: 41 43 54 20 57 49 54 48 20 12 43 92 41 52 52 59 |ACT WITH .C.ARRY|
000037A0: 2E 22 00 CC 3F 40 0B 99 22 11 48 4F 57 45 56 45 |."..?@..".HOWEVE|
000037B0: 52 2C 20 57 49 54 48 20 12 53 42 43 92 20 59 4F |R, WITH .SBC. YO|
000037C0: 55 20 4D 55 53 54 20 48 41 56 45 22 00 0B 40 4A |U MUST HAVE"..@J|
000037D0: 0B 99 22 11 43 41 52 52 59 3D 31 20 54 4F 20 53 |..".CARRY=1 TO S|
000037E0: 54 41 52 54 20 57 49 54 48 21 21 22 3A 4D 53 24 |TART WITH!!":MS$|
000037F0: B2 22 2A 3F 55 47 48 21 2A 3F 21 21 22 3A 8D 36 |."*?UGH!*?!!":.6|
00003800: 33 30 30 30 3A 8D 36 33 31 30 30 00 2D 40 54 0B |3000:.63100.-@T.|
00003810: 8D 36 33 30 31 30 3A 99 22 13 11 11 12 53 45 43 |.63010:."....SEC|
00003820: 20 20 20 20 20 22 3A 8D 36 33 30 30 30 00 59 40 | ":.63000.Y@|
00003830: B8 0B 99 22 93 22 3A 4D 53 24 B2 22 12 41 55 20 |...".":MS$.".AU |
00003840: 52 45 56 4F 49 52 21 92 22 3A 8D 36 33 31 30 30 |REVOIR!.":.63100|
00003850: 3A 99 22 13 11 11 22 3A 80 00 63 40 0F 27 89 39 |:."...":..c@.'.9|
00003860: 39 39 39 00 8D 40 A2 9C 97 41 28 30 29 2C 33 32 |999..@...A(0),32|
00003870: 3A 81 54 54 B2 31 A4 50 50 3A 82 3A 81 49 B2 30 |:.TT.1.PP:.:.I.0|
00003880: A4 36 3A 97 41 28 49 AA 31 29 2C 33 32 00 C1 40 |.6:.A(I.1),32..@|
00003890: A3 9C 97 41 28 49 29 2C C5 28 CA 28 4E 24 2C 49 |...A(I),.(.(N$,I|
000038A0: AA 31 2C 31 29 29 AA 34 38 3A 81 54 54 B2 31 A4 |.1,1)).48:.TT.1.|
000038B0: 50 50 3A 82 3A 82 3A 97 41 28 37 29 2C 34 38 3A |PP:.:.:.A(7),48:|
000038C0: 8E 00 E1 40 AE 9C 81 49 B2 30 A4 37 3A 97 41 28 |...@...I.0.7:.A(|
000038D0: 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A |I),160:.TT.1.PP:|
000038E0: 82 00 01 41 AF 9C 97 41 28 49 29 2C C5 28 CA 28 |...A...A(I),.(.(|
000038F0: 4E 24 2C 49 AA 31 2C 31 29 29 AA 34 38 3A 82 3A |N$,I.1,1)).48:.:|
00003900: 8E 00 21 41 B8 9C 81 49 B2 30 A4 37 3A 97 50 28 |..!A...I.0.7:.P(|
00003910: 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A |I),160:.TT.1.PP:|
00003920: 82 00 41 41 B9 9C 97 50 28 49 29 2C C5 28 CA 28 |..AA...P(I),.(.(|
00003930: 4E 24 2C 49 AA 31 2C 31 29 29 AA 34 38 3A 82 3A |N$,I.1,1)).48:.:|
00003940: 8E 00 61 41 C2 9C 81 49 B2 30 A4 37 3A 97 58 28 |..aA...I.0.7:.X(|
00003950: 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A |I),160:.TT.1.PP:|
00003960: 82 00 81 41 C3 9C 97 58 28 49 29 2C C5 28 CA 28 |...A...X(I),.(.(|
00003970: 4E 24 2C 49 AA 31 2C 31 29 29 AA 34 38 3A 82 3A |N$,I.1,1)).48:.:|
00003980: 8E 00 A1 41 CC 9C 81 49 B2 30 A4 37 3A 97 59 28 |...A...I.0.7:.Y(|
00003990: 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A |I),160:.TT.1.PP:|
000039A0: 82 00 C1 41 CD 9C 97 59 28 49 29 2C C5 28 CA 28 |...A...Y(I),.(.(|
000039B0: 4E 24 2C 49 AA 31 2C 31 29 29 AA 34 38 3A 82 3A |N$,I.1,1)).48:.:|
000039C0: 8E 00 E1 41 E0 9C 81 49 B2 30 A4 37 3A 97 4D 28 |...A...I.0.7:.M(|
000039D0: 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A |I),160:.TT.1.PP:|
000039E0: 82 00 01 42 E1 9C 97 4D 28 49 29 2C C5 28 CA 28 |...B...M(I),.(.(|
000039F0: 4E 24 2C 49 AA 31 2C 31 29 29 AA 34 38 3A 82 3A |N$,I.1,1)).48:.:|
00003A00: 8E 00 21 42 A0 A0 81 49 B2 30 A4 37 3A 97 50 28 |..!B...I.0.7:.P(|
00003A10: 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A |I),160:.TT.1.PP:|
00003A20: 82 00 37 42 A1 A0 97 50 28 49 29 2C C2 28 41 28 |..7B...P(I),.(A(|
00003A30: 49 29 29 3A 82 3A 8E 00 57 42 AA A0 81 49 B2 30 |I)):.:..WB...I.0|
00003A40: A4 37 3A 97 58 28 49 29 2C 31 36 30 3A 81 54 54 |.7:.X(I),160:.TT|
00003A50: B2 31 A4 50 50 3A 82 00 6D 42 AB A0 97 58 28 49 |.1.PP:..mB...X(I|
00003A60: 29 2C C2 28 41 28 49 29 29 3A 82 3A 8E 00 8D 42 |),.(A(I)):.:...B|
00003A70: B4 A0 81 49 B2 30 A4 37 3A 97 59 28 49 29 2C 31 |...I.0.7:.Y(I),1|
00003A80: 36 30 3A 81 54 54 B2 31 A4 50 50 3A 82 00 A3 42 |60:.TT.1.PP:...B|
00003A90: B5 A0 97 59 28 49 29 2C C2 28 41 28 49 29 29 3A |...Y(I),.(A(I)):|
00003AA0: 82 3A 8E 00 C3 42 C8 A0 81 49 B2 30 A4 37 3A 97 |.:...B...I.0.7:.|
00003AB0: 4D 28 49 29 2C 31 36 30 3A 81 54 54 B2 31 A4 50 |M(I),160:.TT.1.P|
00003AC0: 50 3A 82 00 D9 42 C9 A0 97 4D 28 49 29 2C C2 28 |P:...B...M(I),.(|
00003AD0: 41 28 49 29 29 3A 82 3A 8E 00 F9 42 7C A1 81 49 |A(I)):.:...B|..I|
00003AE0: B2 30 A4 37 3A 97 41 28 49 29 2C 31 36 30 3A 81 |.0.7:.A(I),160:.|
00003AF0: 54 54 B2 31 A4 50 50 3A 82 00 0F 43 7D A1 97 41 |TT.1.PP:...C}..A|
00003B00: 28 49 29 2C C2 28 58 28 49 29 29 3A 82 3A 8E 00 |(I),.(X(I)):.:..|
00003B10: 2F 43 90 A1 81 49 B2 30 A4 37 3A 97 4D 28 49 29 |/C...I.0.7:.M(I)|
00003B20: 2C 31 36 30 3A 81 54 54 B2 31 A4 50 50 3A 82 00 |,160:.TT.1.PP:..|
00003B30: 45 43 91 A1 97 4D 28 49 29 2C C2 28 58 28 49 29 |EC...M(I),.(X(I)|
00003B40: 29 3A 82 3A 8E 00 65 43 C2 A1 81 49 B2 30 A4 37 |):.:..eC...I.0.7|
00003B50: 3A 97 41 28 49 29 2C 31 36 30 3A 81 54 54 B2 31 |:.A(I),160:.TT.1|
00003B60: A4 50 50 3A 82 00 7B 43 C3 A1 97 41 28 49 29 2C |.PP:..{C...A(I),|
00003B70: C2 28 59 28 49 29 29 3A 82 3A 8E 00 9B 43 F4 A1 |.(Y(I)):.:...C..|
00003B80: 81 49 B2 30 A4 37 3A 97 4D 28 49 29 2C 31 36 30 |.I.0.7:.M(I),160|
00003B90: 3A 81 54 54 B2 31 A4 50 50 3A 82 00 B1 43 F5 A1 |:.TT.1.PP:...C..|
00003BA0: 97 4D 28 49 29 2C C2 28 59 28 49 29 29 3A 82 3A |.M(I),.(Y(I)):.:|
00003BB0: 8E 00 F0 43 60 EA 52 24 B2 22 B0 C0 B2 C0 B2 C0 |...C`.R$."......|
00003BC0: B2 C0 B2 C0 B2 C0 B2 C0 B2 C0 AE 11 9D 9D 9D 9D |................|
00003BD0: 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D DD A0 DD |................|
00003BE0: A0 DD A0 DD A0 DD A0 DD A0 DD A0 DD A0 DD 11 22 |..............."|
00003BF0: 00 1F 44 61 EA 52 24 B2 52 24 AA 22 9D 9D 9D 9D |..Da.R$.R$."....|
00003C00: 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D AD C0 B1 |................|
00003C10: C0 B1 C0 B1 C0 B1 C0 B1 C0 B1 C0 B1 C0 BD 22 00 |..............".|
00003C20: 56 44 62 EA 41 24 B2 22 13 11 20 12 41 92 91 22 |VDb.A$.".. .A.."|
00003C30: AA 52 24 3A 50 24 B2 22 13 11 1D 1D 1D 1D 1D 1D |.R$:P$."........|
00003C40: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 12 50 |...............P|
00003C50: 92 91 22 AA 52 24 00 94 44 63 EA 58 24 B2 22 13 |..".R$..Dc.X$.".|
00003C60: 11 11 11 11 20 12 58 92 91 22 AA 52 24 3A 59 24 |.... .X..".R$:Y$|
00003C70: B2 22 13 11 11 11 11 1D 1D 1D 1D 1D 1D 1D 1D 1D |."..............|
00003C80: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 12 59 92 91 |.............Y..|
00003C90: 22 AA 52 24 00 C2 44 64 EA 4D 24 B2 22 13 11 11 |".R$..Dd.M$."...|
00003CA0: 11 11 11 11 11 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D |................|
00003CB0: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 12 4D 92 91 22 AA |...........M..".|
00003CC0: 52 24 00 E5 44 65 EA 43 52 24 B2 22 13 11 11 11 |R$..De.CR$."....|
00003CD0: 11 11 11 B0 C0 AE 11 9D 9D 9D DD 1D DD 11 9D 9D |................|
00003CE0: 9D AD C0 BD 22 00 25 45 66 EA 43 43 24 B2 22 13 |....".%Ef.CC$.".|
00003CF0: 11 20 12 41 92 DD 11 9D 9D 9D 20 11 9D 20 11 9D |. .A...... .. ..|
00003D00: 20 11 9D 20 11 9D 20 20 20 11 9D 9D 9D 20 20 20 | .. .. .... |
00003D10: 11 9D 9D 9D 20 20 20 91 20 20 20 20 20 20 20 20 |.... . |
00003D20: 20 20 20 20 22 00 40 45 67 EA 57 44 B2 34 30 3A | ".@Eg.WD.40:|
00003D30: 43 52 54 B2 31 30 32 34 3A 99 C7 28 31 34 32 29 |CRT.1024:..(142)|
00003D40: 00 86 45 68 EA 81 49 B2 30 A4 37 3A 41 28 49 29 |..Eh..I.0.7:A(I)|
00003D50: B2 43 52 54 AA 57 44 AA 33 AA 32 AC 49 3A 50 28 |.CRT.WD.3.2.I:P(|
00003D60: 49 29 B2 41 28 49 29 AA 32 30 3A 58 28 49 29 B2 |I).A(I).20:X(I).|
00003D70: 41 28 49 29 AA 33 AC 57 44 3A 59 28 49 29 B2 58 |A(I).3.WD:Y(I).X|
00003D80: 28 49 29 AA 32 30 00 A8 45 69 EA 4D 28 49 29 B2 |(I).20..Ei.M(I).|
00003D90: 59 28 49 29 AA 33 AC 57 44 3A 82 3A 43 B2 43 52 |Y(I).3.WD:.:C.CR|
00003DA0: 54 AA 37 AC 57 44 AA 31 00 DC 45 6A EA 53 44 24 |T.7.WD.1..Ej.SD$|
00003DB0: B2 22 13 11 11 11 11 11 11 11 11 11 22 3A 43 4C |."..........":CL|
00003DC0: 24 B2 22 22 3A 81 49 B2 31 A4 57 44 AB 32 3A 43 |$."":.I.1.WD.2:C|
00003DD0: 4C 24 B2 43 4C 24 AA 22 20 22 3A 82 00 FE 45 6B |L$.CL$." ":...Ek|
00003DE0: EA 42 54 24 B2 22 13 22 3A 81 49 B2 31 A4 32 34 |.BT$.".":.I.1.24|
00003DF0: 3A 42 54 24 B2 42 54 24 AA 22 11 22 3A 82 00 31 |:BT$.BT$.".":..1|
00003E00: 46 6C EA 43 24 B2 43 52 24 AA 22 13 11 B0 C0 B3 |Fl.C$.CR$.".....|
00003E10: 11 9D 9D 9D DD 11 9D DD 11 9D DD 11 9D DD 11 9D |................|
00003E20: AB 11 1D 1D 1D 1D 5F 43 41 52 52 59 20 42 49 54 |......_CARRY BIT|
00003E30: 22 00 61 46 73 EA 4D 4C 24 B2 22 13 11 11 11 11 |".aFs.ML$.".....|
00003E40: 11 11 11 11 11 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D |................|
00003E50: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D |................|
00003E60: 22 00 6B 46 74 EA 50 50 B2 32 30 00 8D 46 93 EA |".kFt.PP.20..F..|
00003E70: 42 54 24 B2 22 13 22 3A 81 49 B2 31 A4 32 34 3A |BT$.".":.I.1.24:|
00003E80: 42 54 24 B2 42 54 24 AA 22 11 22 3A 82 00 D7 46 |BT$.BT$.".":...F|
00003E90: 94 EA 50 54 24 B2 22 1C B0 C0 C0 C0 C0 C0 C0 C0 |..PT$.".........|
00003EA0: C0 C0 C0 AE 11 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D |................|
00003EB0: 9D DD 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D DD 11 9D 9D |................|
00003EC0: 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D AD B2 C0 C0 C0 C0 |................|
00003ED0: C0 C0 C0 C0 B2 BD 22 00 1F 47 95 EA 50 54 24 B2 |......"..G..PT$.|
00003EE0: 50 54 24 AA 22 11 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D |PT$."...........|
00003EF0: 9D 9D 9D CE A3 A3 A3 A3 A3 A3 A3 A3 A3 A3 A3 A3 |................|
00003F00: CD 11 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D |................|
00003F10: A5 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D A7 22 00 |.============.".|
00003F20: 5B 47 96 EA 50 54 24 B2 50 54 24 AA 22 11 9D 9D |[G..PT$.PT$."...|
00003F30: 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D D0 CF A3 A3 |................|
00003F40: A3 A3 A3 A3 A3 A3 A3 A3 D0 CF 91 91 91 91 9D 9D |................|
00003F50: 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 22 00 92 47 97 EA |.........."..G..|
00003F60: 50 54 24 B2 42 54 24 AA 22 91 91 91 91 91 91 1D |PT$.BT$.".......|
00003F70: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D |................|
00003F80: 1D 1D 1D 1D 1D 1D 1D 1D 1D 22 AA 50 54 24 AA 22 |.........".PT$."|
00003F90: 90 22 00 C2 47 98 EA 4D 4C 24 B2 22 13 11 11 11 |."..G..ML$."....|
00003FA0: 11 11 11 11 11 11 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D |................|
00003FB0: 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D |................|
00003FC0: 1D 22 00 DD 47 99 EA 57 44 B2 34 30 3A 43 52 54 |."..G..WD.40:CRT|
00003FD0: B2 31 30 32 34 3A 99 C7 28 31 34 32 29 00 01 48 |.1024:..(142)..H|
00003FE0: 9A EA 57 32 B2 57 44 AD 32 3A 57 33 B2 57 44 AB |..W2.WD.2:W3.WD.|
00003FF0: 31 3A 57 31 24 B2 CA 28 C4 28 57 44 29 2C 32 29 |1:W1$..(.(WD),2)|
00004000: 3A 00 23 48 9B EA 57 32 24 B2 CA 28 C4 28 57 32 |:.#H..W2$..(.(W2|
00004010: 29 2C 32 29 3A 57 33 24 B2 CA 28 C4 28 57 33 29 |),2):W3$..(.(W3)|
00004020: 2C 32 29 00 29 48 C4 EA 8E 00 36 48 18 F6 99 42 |,2).)H....6H...B|
00004030: 54 24 43 4C 24 3B 00 56 48 19 F6 99 42 54 24 22 |T$CL$;.VH...BT$"|
00004040: 12 52 45 54 55 52 4E 92 20 54 4F 20 43 4F 4E 54 |.RETURN. TO CONT|
00004050: 49 4E 55 45 22 3B 00 6C 48 1A F6 A1 5A 24 3A 8B |INUE";.lH...Z$:.|
00004060: 5A 24 B3 B1 22 22 A7 36 33 30 30 32 00 81 48 1B |Z$.."".63002..H.|
00004070: F6 A1 5A 24 3A 8B 5A 24 B2 22 22 A7 36 33 30 30 |..Z$:.Z$."".6300|
00004080: 33 00 87 48 1C F6 8E 00 94 48 22 F6 99 42 54 24 |3..H.....H"..BT$|
00004090: 43 4C 24 3B 00 C9 48 23 F6 99 42 54 24 22 A6 A6 |CL$;..H#..BT$"..|
000040A0: A6 A6 A6 A6 A6 A6 12 52 45 54 55 52 4E 20 54 4F |.......RETURN TO|
000040B0: 20 53 45 45 20 49 54 20 48 41 50 50 45 4E 92 A6 | SEE IT HAPPEN..|
000040C0: A6 A6 A6 A6 A6 A6 A6 22 3B 00 DF 48 24 F6 A1 5A |.......";..H$..Z|
000040D0: 24 3A 8B 5A 24 B3 B1 22 22 A7 36 33 30 31 32 00 |$:.Z$.."".63012.|
000040E0: F4 48 25 F6 A1 5A 24 3A 8B 5A 24 B2 22 22 A7 36 |.H%..Z$:.Z$."".6|
000040F0: 33 30 31 33 00 FA 48 26 F6 8E 00 0E 49 7C F6 81 |3013..H&....I|..|
00004100: 54 B2 31 A4 35 3A 99 50 54 24 4D 53 24 3B 00 24 |T.1.5:.PT$MS$;.$|
00004110: 49 7D F6 99 50 54 24 22 20 20 20 20 20 20 20 20 |I}..PT$" |
00004120: 20 20 22 3B 00 33 49 7E F6 99 50 54 24 4D 53 24 | ";.3I~..PT$MS$|
00004130: 3B 3A 82 00 39 49 7F F6 8E 00 44 49 E0 F6 8D 36 |;:..9I....DI...6|
00004140: 33 30 30 30 00 65 49 E1 F6 99 53 44 24 3B 3A 81 |3000.eI...SD$;:.|
00004150: 54 B2 31 A4 31 30 3A 99 43 4C 24 3A 82 3A 99 53 |T.1.10:.CL$:.:.S|
00004160: 44 24 3B 3A 8E 00 79 49 44 F7 8D 36 33 31 30 30 |D$;:..yID..63100|
00004170: 3A 8D 36 33 30 31 30 3A 8E 00 8F 49 FF F9 8D 36 |:.63010:...I...6|
00004180: 30 30 30 30 3A 99 22 93 22 3A 89 31 36 33 30 00 |0000:.".":.1630.|
00004190: 00 00 |.. |
..!...."....... PONZO*83*WATERLOO......"
.......K....53281,15:.53280,12:.".".N...
.". ..C64 TUTOR-5......"...
....................................."..
....". ..THE ADC'S OF 6510 MACHINE LANGU
AGE .. .":MS$." WELCOME! "......".......
..................................".,...
.60000:.63100:.63000.Z...."...THE .M.ICR
O.P.ROCESSOR .U.NIT (MPU)".|. ..".IN THE
C64 IS THE .6510.."...!..".HE (SHE?) WI
LL OBEY YOUR COMMANDS".R."..".IF YOU CAN
SPEAK THE RIGHT LANGUAGE"...#.."....AND
THAT'S .MACHINE LANGUAGE..".(.$..".WE'
LL LEARN SOME .MACHINE LANGUAGE".B.%..".
IN THIS TUTORIAL.".N.&..".BUT LET'S LET
THE .6510. TELL IT...".Y.'..63000...(.."
..............THE 6510...............".N
.-..".QWE'VE GOT A NUMBER OF INTERNAL"..
.2..".'REGISTERS' WHICH HOLD 8-BIT BINAR
Y".+.<..".NUMBERS(BYTES) FROM $00 TO $FF
(IN HEX).".V.A..".QWE CALL THEM 'A' AND
'X' AND 'Y'."..B..".(WE HAVE A FEW MOR
E..BUT WAIT..)"...F..".QYOU MAY LOAD THE
M WITH NUMBERS".Q.P..".AND PERFORM ADDIT
ION,SUBTRACTION,"...Z..".TESTS FOR ZERO
, > , < ETC.ETC.".(.D..".QLET'S GO THROU
GH SOME OF THESE .6510.".C.N..".COMMANDS
...":.63000.R.X.."."A$X$Y$.{....SD$"HERE
ARE A FEW OF THE COMMANDS"......".IN MY
REPERTOIRE:". ....63200... ..".LDA #$F3
"......"..L.OA.D. THE .A.CCUMULATOR WITH
THE"......".NUMBER F3 IN HEX..#$F3".".
...".THIS IS AN .IMMEDIATE. LOAD.".Z.H.M
S$." A=#$F3 ":.63300:N$."11110011":.40
110:.63200...R..".LDX #$AB":MS$." X=#$A
B ":.63300...W.N$."10101011":.40130:.63
200......".LDY #$DD":MS$." Y=#$DD ":.6
3300:N$."11011101":.40140......63200:.".
TAX":."..T.RANSFER CONTENTS OF .A. TO .X
..".E...MS$." X=A ":.63300:.41130:.
63200......".TYA":."..T.RANSFER CONTENTS
OF .Y. TO .A..":MS$." A=Y "......63
300:.41410:.63200.G...."..AND THERE'S .T
XA. AND .TAY.."......"...HERE ARE SOME M
ORE.:":.63200.2....".INX.":."..IN.CREMEN
T THE .X.-REGISTER BY 1.":MS$." X=X+1
".Y."..63300:N$."10101100":.40130:.6320
0...,..".DEX.":."..DE.CREMENT THE .X.-RE
GISTER BY 1.":MS$." X=X-1 ".D.6..63300
:N$."10101011":.40130:.63200...@.."AND T
HERE'S .INY. AND .DEY..":.63200.#.J..M$:
N$."10110101":PP.0:.40160:.ML$"$1234":PP
.20.`.T..SD$".INC $1234.":."..INC.REMENT
S MEMORY LOCATION $1234"...^.MS$." M=M+
1 ":.63300:N$."10110110":.40160:.63200.
Q.H..".DEC $1234.":."..DEC.REMENTS MEMOR
Y LOCATION $1234"...R.MS$." M=M-1 ":.
63300:N$."10110101":.40160:.63200.6.|.."
.ASL.":."..A.RITHMETIC .S.HIFT .L.EFT".F
....".ALL BITS OF THE .A.-REGISTER MOVE
LEFT."......".A '0' COMES INTO THE 'LSB'
AND"......".THE 'MSB' DROPS INTO THE 'C
ARRY'.".Z....".QLSB=LEAST SIGNIFICANT BI
T"......".QMSB=MOST SIGNIFICANT BIT"....
.MS$." A=2*A ":.63300.O....C$:.C,49:N
$."10111010":PP.500:.40098:.63200:PP.20.
^.B..CC$:.C,32...L..SD$"..SEC.":."..SE.T
THE .C.ARRY BIT."...V..CR$:MS$." CARRY
=1 ":.63300:.C,49:.63200......SD$"..CLC.
":."..CL.EAR .C.ARRY BIT.":MS$." CARRY=
0 "......63300:.CR$:.C,48:.63200:.CC$.E.
...".STA $1234.":."..ST.ORE THE .A.-REGI
STER".~....".IN MEMORY LOCATION $1234":M
S$." M=A ":.63300.....N$."10111010"
:.41160:.63000.N.X..".THAT'S ENOUGH. LET
'S CLEAR THE SCREEN.."...B.."LDA #$20 _
LOAD A WITH #$20='SPACE'.".).L.."STA $04
00 I":."STA $0401 ._FILLS SCREEN".N.V.."
STA $0402 ._MEMORY WITH #$20."......"---
----- .----------------":."STA $07FF K_
HENCE CLEAR SCREEN".L....".BUT WE CLEARL
Y NEED SOMETHING LIKE:":.".LDA #$20"....
.."FOR X=0 TO #$3FF":."STA $0400+X":."NE
XT X":.63000.<....".OR.....":."BEGIN LDA
#$20 _NOTE STATEMENT LABEL".|...."
LDX #$00":."LOOP STA $0400,X _.INDEXED
ADDRESSING"......" ^ INX":." . ?C
HECK FOR X=#$3FF?".J...." .. IF NOT,GO
TO 'LOOP'"......"..WE HAVE .COMPARE. & .
BRANCH. INSTRUCTIONS!".:.F..".WHAT WE NE
ED ABOVE IS:":."..C.OM.P.ARE .X. TO #$3F
F".P.P..".& .B.RANCH IF .N.OT .E.QUAL..T
O 'LOOP'":.63010...Z.."....BEGIN LDA #$2
0 . ".Q....". L
DX #$00 ":.".LOOP STA $0400,X"......"
. ^ INX ":.". . CPX #$3FF
. ".I....". .. BN
E LOOP . ":.63200.~...."
NOTE..........:WE WILL NEVER .STA. IN .$
07FF."......".IN THE ABOVE PROGRAM...SO.
..":.63010.R...."........ . CPX #$400
":.63200... .."ALSO, WE CAN .CPX #$N.
ONLY IF N LIES". .*..".IN THE RANGE $00
TO $FF.".I.4..".SO WE CHANGE THE CODE TO
:":.63010.G.>.."....BEGIN LDA #$20 .".
..H..". LDX #$00 ":.".LOOP STA $
0400,X"...R..". STA $0500,X".K.\.."
. STA $0600,X"...F..". STA $07
00,X"...P..". INX ":.".
CPX #$FF .".8.Z..". BNE LOOP .
":.63000.C....SD$"....";:.T.1.10:.CL$:.:
.SD$"....";......"OR, WE CAN SIMPLIFY TH
IS A LITTLE BY"......".COUNTING .DOWN. F
ROM X=$FF TO $00":.63010......"....BEGIN
LDA #$20 ."......". LDX #$FF "
:.".LOOP STA $0400,X".(....". STA
$0500,X".B....". STA $0600,X".\.J..
". STA $0700,X".V.T..". DEX
"......". BNE LOOP .":."
":.63000.Z....SD$"....";:
.T.1.10:.CL$:.:.SD$"....";......"...HOW
CAN WE .BNE. WHEN WE DON'T DO ANY".$....
"..COMPARE.?":.63000.P....".YOU SEE, .BN
E. REALLY CHECKS TO SEE".~....".IF '0' I
S THE RESULT OF AN ARITHMETIC"......".OP
ERATION..INCLUDING A .COMPARE..".M....".
IN THE PAIR OF INSTRUCTIONS:"......"..CP
X #$FF":.".BNE LOOP":.".WE SUBTRACT #$FF
FROM THE".5....".VALUE OF X AND .BRANCH
. TO LOOP IF".\.$..".THE RESULT IS NOT Z
ERO!":.63000.{...."..INX ":.".BNE LO
OP"...8..".WE BRANCH TO LOOP IF THE RESU
LT OF".S.B..".INCREMENTING X IS .NOT. ZE
RO.":."..."...L.."..DEC $1234":.".BNE LO
OP "...V..".HERE WE BRANCH TO LOOP IF".E
.`..".DECREMENTING $1234 IS NOT ZERO.":.
"...".S.J.."..NOTE.: .CPX. INVOLVES A S
UBTRACTION"...T..".(TO CHECK FOR ZERO RE
SULT)".S.~..".BUT IT DOES NOT........ CH
ANGE ANY REGISTERS!":.63000......".LET'S
.RVS. THE SCREEN.".!....".THIS REQUIRES
LOOKING AT EVERY SCREEN".Q....".MEMORY
LOCATION AND CHECKING THE .MSB..".|...."
.IF IT'S .1. THEN CHANGE IT TO .0.."....
..".IF IT'S .0. THEN CHANGE IT TO .1..".
T....".(THE MSB DETERMINES IF THE CHARAC
TER"......"IS IN RVS-FIELD)!".4.(..".WE'
LL:":."..LDA $0400,X":.".EOR #$80 . __
???":.".STA $0400,X".A.2.."..EOR. IS AN
.E.XCLUSIVE .OR.!":.63000...<..".IF .A.
CONTAINS .10110101. (AFTER .LDA.)"...F..
".THEN .EOR #$80. DOES AN EXCLUSIVE-OR".
..P..".WITH .10000000. ($80 IN HEX)".. Z
..".AND GIVES .00110101...VERY NICE!".+
D..".OUR PROGRAM MIGHT GO:".\ N.."..BEGI
N LDX #$FF ":.".LOOP LDA $0400,X".. X
..". EOR #$80 ":.". STA $040
0,X".. ...". LDA $0500,X":.".
EOR #$80 ".. ...". STA $0500,X":.
".ETC. ETC..UNTIL..."..!...". STA $
0700,X".>! ..". DEX ":.".
BNE LOOP ":.63000.J!...".IT'S CLEAR
THAT THIS WILL NOT DO IF"..!...".WE WAN
T TO GO FROM $0400 TO $0500 TO".D!..."..
.TO $0N00,INSTEAD OF JUST TO $0700."..!H
..".WE NEED A LOOP-WITHIN-A-LOOP".."R.."
.FOR LARGE N...SOMETHING LIKE:...".H"...
". M=$0400":." X=N _.N INSTE
AD OF 3".|"..."LP1 Y=#$FF":."LP2 LDA M
+Y":." EOR #$80".."..." STA M+Y"
:." Y=Y-1".."..." IF Y<>0 GOTO L
P2 ":." M=M+$100":." X=X-1".."..
." IFX<>0 GOTO LP1 ":.63000.2#..."..
...................".23)"_.WON'T DO Y=0.
!".[#..."..".23)"_.WON'T DO X=0.!!.":.63
000..#...".";:.I.1.10:.CL$:.:.".WE'LL .C
HANGE. IT TO:".L#...63010:.".. M=$04
00":." X=N" "..$.
..".LP1 Y=#$00 ":."LP2 LDA M+
Y":." EOR #$80".-$..." STA M+Y":
." Y=Y-1".J$..." IF Y<>0 GOTO LP
2 ":." M=M+$100":." X=X-1"..$...
". IFX>=0 GOTO LP1 .":.63000:.".....
........";.L$..."WE WORK ON M+00 FIRST,T
HEN .Y=Y-1."..$..."WILL CHANGE Y=00 TO Y
=FF(!) AND WE'LL".&%..."CONTINUE WITH M+
FF THEN M+FE..TO M+01".K%..."AND WE STOP
THE Y-LOOP THERE!".V%..."THE X-LOOP STA
RTS WITH X=N AND EACH"..%...".X=X-1. CHA
NGES X TO N-1,N-2,..2,1,0 .THEN.".Z%..."
ONE MORE .X=X-1. CHANGES X TO FF(!) WHIC
H"..&..."IS .NEGATIVE.(!) AND WE STOP TH
E X-LOOP!".9&...".NOTE.:THE 6510 REGISTE
RS CAN HOLD #'S".D&..."FROM $00 TO $FF.
IF WE HAVE .00. AND"..&...".DECREMENT.,I
T CHANGES TO .FF...AND .FF+1.=.00.".V&..
."FINALLY,.MSB=1. SIGNIFIES A .NEGATIVE
NO..!";:.63000..&...".LET'S TRY SOMETHIN
G LIKE:".)'..."..BEGIN LDA #$0400 ._??*!
#$0400 TOO BIG!!".W'...". STA $B0
._$B0 NOW HAS #$0400"..'...". LDX
#$03 ":.".LP1 LDY #$00 ".K'"..".L
P2 LDA ($B0),Y._ INDIRECT INDEXED?":."
. EOR #$80 "..(,..". STA ($B
0),Y._ INDIRECT INDEXED!":.". DEY
".P(6..". BNE LP2 ":.".
INC $B0 BY #$100._??*!!HOW??"..(@..".
DEX ":.". BPL LP1 .
_BRANCH ON PLUS!!"..(J.."..LDA ($B0),Y.
TAKES THE CONTENTS OF"..(T..".MEMORY LOC
'N $B0, ADDS Y, AND THIS........."..)Y..
"GIVES THE ADDRESS OF THE BYTE WHICH ".D
)Z..".GETS LOADED INTO 'A'!!":.63000.T)^
..".THERE ARE SOME NEW IDEAS..AND PROBLE
MS!"..)C.."...BUT FIRST LET'S AGREE THAT
WE'LL".L)D..".USE $B0 TO REFER TO THE M
EMORY LOC'N"..)E..".AND ($B0) TO REFER T
O THE .CONTENTS"..*F..".OF MEMORY LOCATI
ON $B0.".K*H.."....LET'S LOOK AT ADDRESS
ING MODES.:":.63000.H*R..".BASIC".20)"AS
SEMBLER"..*W..".....".20)"........."..*|
..".A=5.".20)".LDA #$05.".J*...".QIMMEDI
ATE MODE. THE ACCUMULATOR"..*..."IS LOAD
ED WITH THE # 5."..+..."..A=M(5).".20)".
LDA $05."..+...".QABSOLUTE ADDRESSING. '
A' IS".Q+..."LOADED WITH THE CONTENTS OF
".K+..."MEMORY LOCATION 5."..+B.."..A=M(
5+X).".20)".LDA $0005,X"..+L..".QABSOLUT
E .INDEXED.. THE CONTENTS"..+V.."OF LOC'
N (5+X) ARE LOADED INTO 'A'."..,..."..A=
M(M(5+X)).".20)".LDA ($0005,X)".9,...".Q
INDEXED .INDIRECT.. THE CONTENTS".C,..."
OF LOC'N (5+X) GIVE THE ADDRESS OF"..,..
."THE BYTE TO BE LOADED INTO 'A'.":.6300
0..,...".THEN THERE'S OUR FRIEND:"..,...
"..A=M(M(5)+Y).".20)".LDA ($05),Y."..-..
.".Q.INDIRECT INDEXED.. FIRST, THE CONTE
NTS".6-&..".OF LOC'N 5 ARE EXTRACTED.THE
N 'Y'".`-0..".IS ADDED AND THE RESULT GI
VES THE"..-:..".ADDRESS OF THE BYTE LOAD
ED INTO 'A'.":.63000.F-D..".Q.INDIRECT.
MEANS WE GO TO A MEMORY LOC'N"..-N..".TO
GET THE ADDRESS OF THE BYTE TO BE"...X.
.".LOADED INTO THE ACCUMULATOR.".E.B..".
Q.INDEXED. MEANS WE ADD THE CONTENTS".Q.
L..".OF A .6510. REGISTER TO AN ADDRESS.
"...V..".QIF WE .INDEX. THEN .INDIRECT.
IT'S".N...."..INDEXED INDIRECT...AS IN .
LDA ($0400,X)"......".QIF WE .INDIRECT.
THEN .INDEX. IT'S".0/..."..INDIRECT INDE
XED...AS IN .LDA ($B0),Y":.63000.S/..MS$
."CLEAR?!*$&":.63100:.63000.Y/...".LET'S
EXPLAIN ABOUT .MEMORY.."../..."..6510.
INSTRUCTIONS ARE STORED IN MEMORY".N/...
"AS 1- OR 2- OR 3- HEX BYTES."../F.."..I
NX.=.E8. IS ONE BYTE LONG..0P.."..LDA #$
05.=.AD 05. IS TWO BYTES".J0Z.."..LDA $1
234,X.=.BD 34 12. IS THREE BYTES.".F0...
" ^^ ^^"..0..."IN GENERAL,
2-BYTE ADDRESSES ARE"..0..."STORED IN M
EMORY IN REVERSE ORDER:".Y0...".LO-BYTE.
THEN .HI-BYTE.."..0...".SO IF YOU HAVE:
"..1...".LDA ($B0),Y.=.B1 CA. THE 6510 W
ILL".E1 .."GET FROM $B0 THE .LO-BYTE. OF
THE".P1*.."ADDRESS,AND FROM $B1 THE .HI
-BYTE.!"..14..".QBE SURE TO PUT BOTH BYT
ES IN $B0/$B1".C1>.."BEFORE .LDA ($B0),Y
.!!":.63000..1H..".LET'S GET BACK TO:"..
2R.."..BEGIN LDA #$0400 ._??*!#$0400 TOO
BIG!!".=2\..". STA $B0 ._$B0 NO
W HAS #$0400".M2F..". LDX #$03 ":
.".LP1 LDY #$00 "..2P..".LP2 LDA (
$B0),Y._ INDIRECT INDEXED?":.". EOR
#$80 "..2Z..". STA ($B0),Y._ IND
IRECT INDEXED!":.". DEY ".63
...". BNE LP2 ":.". INC $B0
BY #$100._??*!!HOW??".X3...". DEX
":.". BPL LP1 ._BRANCH ON
PLUS!!"..3...".WE NOW MUST PUT $0400 IN
TO $B0/$B1".Z3..."WITH .LDA #$00. .STA $
B0. .LDA #$04. .STA $B1.."..4...".ALSO .
INC $B0 BY #$100. IS CHANGED TO:".44..."
.INC $B1.... WE NEED ONLY .INC. THE".R4.
.."HI-BYTE BY '1'!":.63000.W4J..".WE'LL
CHANGE OUR PROGRAM TO:"..4T.."..BEGIN LD
A #$00 .":.". STA $B0 ".Y4..."
. LDA #$04 ":.". STA $B1
"..5...". LDX #$03 ":.".LP1 LDY
#$00 ".:5...".LP2 LDA ($B0),Y.":.".
EOR #$80 ".K5...". STA ($B0
),Y.":.". DEY "..5...".
BNE LP2 ":.". INC $B1 ".S5..
.". DEX ":.". BPL LP1
.":.63000..6..."..................WE N
EEDN'T .LDY #$00. EACH".;6$..".TIME WE .
BPL LP1":.".Y=0 ALREADY SO:":.63010.P6..
."......... ":.".LOOP":."...........
...LOOP"..63..".............LOOP":.63000
..68..".................":.I.1.6:.CL$:..
.6B.."..................NOTE THAT .LDX #
$03. CAN"..7L..".BE CHANGED TO ANYTHING
FROM".67V.."..LDX #$01. TO .LDX #$80..":
.63000.]7`..".................":.I.1.6:.
CL$:...7J.."..................FOR .LDX #
$00. WE'LL X-LOOP ONCE ANYWAY!".E7T.."FO
R .LDX #$81.,OR HIGHER,.DEX."..7~.."WILL
LEAVE 'MSB'=1 IN THE X-REGISTER"..8..."
AND X<0 WILL RESULT AND .BPL. WILL".G8..
.".NOT. TAKE US BACK TO 'LOOP'!":.63000.
N8...".................":.I.1.6:.CL$:..
8..."..................NOTE THAT ($B1) W
ILL NOT".N8...".OVERFLOW. AFTER A NUMBER
OF .INC $B1."..8..."INSTR'NS. AFTER ALL
,MEMORY ONLY GOES"..9D.."TO $FFFF, SO, U
NLESS YOU GOOF".L9N.."($B1)<=FF WILL ALW
AYS BE TRUE!":.63000.W9X..".NOTE THAT IN
CREMENTING THE ADDRESS". 9..."IN $B0/$B1
BY $0100 ONLY REQUIRES".K9...".INC $B1.
. IF YOU WANT TO INCREMENT"..9..."BY $00
01 YOU CAN DO IT THIS WAY:"..:..."..
------- ".D:...". INC $B0 ":.".
BNE NEXT":.". INC $B1 ".Z:...".NEXT
------- "..:...".THIS ADDS '1' TO ($B0)
.IF IT DOESN'T"..:(..".OVERFLOW. FROM FF
TO 00 WE CONTINUE".V:2.."WITH THE 'NEXT
' INTRUCTION."..:<..".IF IT DOES OVERFLO
W TO .00.".$;F.."THE .BNE NEXT. WILL NOT
TAKE US TO".Q;P.."'NEXT', AND WE ADD '1
' TO THE HI-BYTE".O;Z.."WITH .INC $B1.."
:.63000..;D..".IF YOU WANT TO INCREMENT
BY OTHER THAN".N;N..".$0001 OR $0100 (.I
NC $B0. OR .INC $B1.)"..;X..".THEN YOU N
EED TO .ADD. THE INCREMENT.". <}..".SUPP
OSE WE WANT TO ADD $1F:".?<..."..LDA $B0
._GET LO-BYTE".E<...".ADC #$1F._ADD #$1
F TO LO-BYTE"..<...".STA $B0 ._PUT IT BA
CK"..< ..".LDA $B1 ._GET HI-BYTE".Z<..."
.ADC #$00._ADD ZERO(?!)":.".STA $B1 ._PU
T IT BACK"..=...".YOU SEE..ADDING #$1F M
IGHT JUST CAUSE".7=..."THE CONTENTS OF $
B0 TO .OVERFLOW. WHICH".D=H.."CAUSES .CA
RRY.=1. SO WE ADD THE CARRY"..=R.."TO ($
B1) WITH .LDA $B1. & .ADC #$00".M=...".N
OTE..........:.ADC. MEANS .AD.D WITH .C.
ARRY.":.63000..>..."...............":.I.
1.8:.CL$:.:."...............".2>..."OF C
OURSE THE .CARRY. MAY BE .1. WHEN".]>...
".THE ABOVE PIECE OF CODE STARTS, SO". >
...".WE MUST ALWAYS.............. .CLC.
BEFORE AN .ADC.!":.63010..>...".........
CLC ":.63000..>...".IF YOU WANT TO .
SUBTRACT. .#$1F. YOU:".)?".."...LDA $B0
":.".SBC #$1F._SUBTRACT $1F":.".STA $B0
".D?,..".LDA $B1 ":.".SBC #$00._SUBTRACT
$00!!":.".STA $B1 "..?6..".NOTE........
..:.SBC. MEANS .S.U.B.TRACT WITH .C.ARRY
.".L?@..".HOWEVER, WITH .SBC. YOU MUST H
AVE"..@J..".CARRY=1 TO START WITH!!":MS$
."*?UGH!*?!!":.63000:.63100.-@T..63010:.
"....SEC ":.63000.Y@...".":MS$.".AU
REVOIR!.":.63100:."...":..C@.'.9999..@..
.A(0),32:.TT.1.PP:.:.I.0.6:.A(I.1),32.A@
...A(I),E(J(N$,I.1,1)).48:.TT.1.PP:.:.:.
A(7),48:...@...I.0.7:.A(I),160:.TT.1.PP:
...A...A(I),E(J(N$,I.1,1)).48:.:..!A...I
.0.7:.P(I),160:.TT.1.PP:..AA...P(I),E(J(
N$,I.1,1)).48:.:..AAB..I.0.7:.X(I),160:.
TT.1.PP:...AC..X(I),E(J(N$,I.1,1)).48:.:
...AL..I.0.7:.Y(I),160:.TT.1.PP:..AAM..Y
(I),E(J(N$,I.1,1)).48:.:...A...I.0.7:.M(
I),160:.TT.1.PP:...B...M(I),E(J(N$,I.1,1
)).48:.:..!B .I.0.7:.P(I),160:.TT.1.PP:
..7B. .P(I),B(A(I)):.:..WB. .I.0.7:.X(I)
,160:.TT.1.PP:..MB. .X(I),B(A(I)):.:...B
. .I.0.7:.Y(I),160:.TT.1.PP:...B. .Y(I),
B(A(I)):.:..CBH .I.0.7:.M(I),160:.TT.1.P
P:..YBI .M(I),B(A(I)):.:...B|..I.0.7:.A(
I),160:.TT.1.PP:...C}..A(I),B(X(I)):.:..
/C...I.0.7:.M(I),160:.TT.1.PP:..EC...M(I
),B(X(I)):.:..ECB..I.0.7:.A(I),160:.TT.1
.PP:..{CC..A(I),B(Y(I)):.:...C...I.0.7:.
M(I),160:.TT.1.PP:...C...M(I),B(Y(I)):.:
...C`.R$."..............................
...... . . . . . . . .."..DA.R$.R$."....
..............................".VDB.A$."
.. .A..".R$:P$.".......................P
..".R$..DC.X$."..... .X..".R$:Y$."......
.....................Y..".R$.BDD.M$."...
...........................M..".R$..DE.C
R$."........................".%EF.CC$.".
. .A...... .. .. .. .. .... .... .
".@EG.WD.40:CRT.1024:.G(142)
..EH..I.0.7:A(I).CRT.WD.3.2.I:P(I).A(I).
20:X(I).A(I).3.WD:Y(I).X(I).20..EI.M(I).
Y(I).3.WD:.:C.CRT.7.WD.1..EJ.SD$."......
....":CL$."":.I.1.WD.2:CL$.CL$." ":...EK
.BT$.".":.I.1.24:BT$.BT$.".":..1FL.C$.CR
$."..........................._CARRY BIT
".AFS.ML$.".............................
........".KFT.PP.20..F..BT$.".":.I.1.24:
BT$.BT$.".":..WF..PT$.".................
........................................
......"..G..PT$.PT$."..............N....
........M................============.".
[G..PT$.PT$."...............PO..........
PO................"..G..PT$.BT$.".......
.........................".PT$.".".BG..M
L$."....................................
."..G..WD.40:CRT.1024:.G(142)..H..W2.WD.
2:W3.WD.1:W1$.J(D(WD),2):.#H..W2$.J(D(W2
),2):W3$.J(D(W3),2).)HD...6H...BT$CL$;.V
H...BT$".RETURN. TO CONTINUE";.LH...Z$:.
Z$.."".63002..H...Z$:.Z$."".63003..H....
.H"..BT$CL$;.IH#..BT$".........RETURN TO
SEE IT HAPPEN.........";..H$..Z$:.Z$.."
".63012..H%..Z$:.Z$."".63013..H&....I|..
T.1.5:.PT$MS$;.$I}..PT$" ";.3I~
..PT$MS$;:..9I...DI...63000.EI...SD$;:.
T.1.10:.CL$:.:.SD$;:..YID..63100:.63010:
...I...60000:.".":.1630...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL