ASM TUT 2
FILE INFORMATION
FILENAME(S): ASM TUT 2
FILE TYPE(S): PRG
FILE SIZE: 26.5K
FIRST SEEN: 2025-11-30 19:47:20
APPEARS ON: 1 disk(s)
FILE HASH
09f506f656541f67a8ef49c87adbe3b8700d0451b211fca9f39a9a6d4cac6d0c
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| THE PHANTOM | ASM TUT 2 | PRG | Curtcool, Frank | 8 | 7 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: E3 35 5E 0D 0D 20 20 61 4E 20 69 4E 54 52 4F 44 |.5^.. aN iNTROD|
00000010: 55 43 54 49 4F 4E 20 54 4F 20 6D 41 43 48 49 4E |UCTION TO mACHIN|
00000020: 45 20 6C 41 4E 47 55 41 47 45 0D 0D 20 20 74 48 |E lANGUAGE.. tH|
00000030: 49 53 20 49 53 20 54 48 45 20 53 45 43 4F 4E 44 |IS IS THE SECOND|
00000040: 20 49 4E 20 41 20 53 45 52 49 45 53 20 4F 46 20 | IN A SERIES OF |
00000050: 20 20 20 20 54 55 54 4F 52 49 41 4C 53 20 4F 4E | TUTORIALS ON|
00000060: 20 4D 41 43 48 49 4E 45 20 4C 41 4E 47 55 41 47 | MACHINE LANGUAG|
00000070: 45 2E 20 74 4F 20 4D 41 4B 45 20 20 53 45 4E 53 |E. tO MAKE SENS|
00000080: 45 20 4F 46 20 49 54 2C 20 59 4F 55 20 57 49 4C |E OF IT, YOU WIL|
00000090: 4C 20 4E 45 45 44 20 54 4F 20 4B 4E 4F 57 0D 41 |L NEED TO KNOW.A|
000000A0: 42 4F 55 54 20 42 49 4E 41 52 59 20 41 4E 44 20 |BOUT BINARY AND |
000000B0: 48 45 58 41 44 45 43 49 4D 41 4C 20 4E 55 4D 42 |HEXADECIMAL NUMB|
000000C0: 45 52 53 2C 20 20 20 54 48 45 20 42 41 53 49 43 |ERS, THE BASIC|
000000D0: 53 20 41 42 4F 55 54 20 41 53 53 45 4D 42 4C 45 |S ABOUT ASSEMBLE|
000000E0: 52 53 20 41 4E 44 20 20 20 20 20 20 20 20 20 53 |RS AND S|
000000F0: 4F 4D 45 54 48 49 4E 47 20 41 42 4F 55 54 20 54 |OMETHING ABOUT T|
00000100: 48 45 20 52 45 47 49 53 54 45 52 53 20 4F 46 20 |HE REGISTERS OF |
00000110: 54 48 45 20 20 20 20 63 70 75 2E 0D 0D 20 20 74 |THE cpu... t|
00000120: 48 49 53 20 49 53 20 51 55 49 54 45 20 41 20 44 |HIS IS QUITE A D|
00000130: 45 4E 53 45 20 4C 45 53 53 4F 4E 2C 20 41 4E 44 |ENSE LESSON, AND|
00000140: 20 59 4F 55 20 4D 41 59 20 4E 45 45 44 20 54 4F | YOU MAY NEED TO|
00000150: 20 52 45 41 44 20 41 20 53 45 43 54 49 4F 4E 20 | READ A SECTION |
00000160: 41 47 41 49 4E 20 54 4F 20 20 20 20 20 55 4E 44 |AGAIN TO UND|
00000170: 45 52 53 54 41 4E 44 20 49 54 2E 20 61 4C 53 4F |ERSTAND IT. aLSO|
00000180: 2C 20 57 48 45 4E 20 54 48 45 52 45 20 49 53 20 |, WHEN THERE IS |
00000190: 4D 4F 52 45 20 54 4F 20 43 4F 4D 45 20 4F 4E 20 |MORE TO COME ON |
000001A0: 41 20 53 55 42 4A 45 43 54 2C 20 52 45 41 44 49 |A SUBJECT, READI|
000001B0: 4E 47 20 20 20 20 20 20 20 20 20 20 20 49 4E 46 |NG INF|
000001C0: 4F 52 4D 41 54 49 4F 4E 20 41 20 42 49 54 20 46 |ORMATION A BIT F|
000001D0: 55 52 54 48 45 52 20 4F 4E 20 4D 41 59 20 48 45 |URTHER ON MAY HE|
000001E0: 4C 50 20 54 4F 4D 41 4B 45 20 49 4E 43 4F 4D 50 |LP TOMAKE INCOMP|
000001F0: 52 45 48 45 4E 53 49 42 4C 45 20 54 48 49 4E 47 |REHENSIBLE THING|
00000200: 53 20 43 4C 45 41 52 45 52 2E 0D 0D 20 20 61 4E |S CLEARER... aN|
00000210: 59 54 48 49 4E 47 20 49 4E 20 5B 53 51 55 41 52 |YTHING IN [SQUAR|
00000220: 45 20 42 52 41 43 4B 45 54 53 5D 20 49 53 20 20 |E BRACKETS] IS |
00000230: 20 20 20 20 53 4F 4D 45 54 48 49 4E 47 20 54 48 | SOMETHING TH|
00000240: 41 54 20 57 41 53 20 4C 45 46 54 20 4F 55 54 20 |AT WAS LEFT OUT |
00000250: 46 4F 52 20 54 48 45 20 53 41 4B 45 4F 46 20 43 |FOR THE SAKEOF C|
00000260: 4C 41 52 49 54 59 20 41 4E 44 20 42 52 45 56 49 |LARITY AND BREVI|
00000270: 54 59 2E 20 73 4F 4D 45 54 48 49 4E 47 20 4D 55 |TY. sOMETHING MU|
00000280: 53 54 20 20 54 41 4B 45 20 49 54 53 20 50 4C 41 |ST TAKE ITS PLA|
00000290: 43 45 20 49 4E 20 41 20 52 45 41 4C 20 50 52 4F |CE IN A REAL PRO|
000002A0: 47 52 41 4D 2E 0D 5E 0D 0D 20 20 20 20 20 20 20 |GRAM..^.. |
000002B0: 61 20 66 45 57 20 66 55 4E 44 41 4D 45 4E 54 41 |a fEW fUNDAMENTA|
000002C0: 4C 53 0D 0D 20 20 74 48 45 20 42 52 41 49 4E 20 |LS.. tHE BRAIN |
000002D0: 4F 46 20 54 48 45 20 63 4F 4D 4D 4F 44 4F 52 45 |OF THE cOMMODORE|
000002E0: 20 36 34 20 49 53 20 54 48 45 20 20 36 35 31 30 | 64 IS THE 6510|
000002F0: 20 63 70 75 2E 20 74 48 45 20 49 4E 53 54 52 55 | cpu. tHE INSTRU|
00000300: 43 54 49 4F 4E 53 20 49 54 20 55 53 45 53 20 41 |CTIONS IT USES A|
00000310: 52 45 20 20 49 44 45 4E 54 49 43 41 4C 20 54 4F |RE IDENTICAL TO|
00000320: 20 54 48 4F 53 45 20 4F 46 20 54 48 45 20 36 35 | THOSE OF THE 65|
00000330: 30 32 2C 20 41 20 56 45 52 59 20 20 43 4F 4D 4D |02, A VERY COMM|
00000340: 4F 4E 20 43 48 49 50 2E 20 74 48 55 53 2C 20 41 |ON CHIP. tHUS, A|
00000350: 4E 59 54 48 49 4E 47 20 54 48 41 54 20 41 50 50 |NYTHING THAT APP|
00000360: 4C 49 45 53 54 4F 20 54 48 45 20 36 35 30 32 20 |LIESTO THE 6502 |
00000370: 41 50 50 4C 49 45 53 20 54 4F 20 54 48 45 20 36 |APPLIES TO THE 6|
00000380: 35 31 30 20 41 53 20 57 45 4C 4C 2E 0D 20 20 69 |510 AS WELL.. i|
00000390: 4E 20 41 44 44 49 54 49 4F 4E 20 54 4F 20 54 48 |N ADDITION TO TH|
000003A0: 45 20 36 34 6B 20 4F 46 20 45 58 54 45 52 4E 41 |E 64k OF EXTERNA|
000003B0: 4C 20 20 20 20 4D 45 4D 4F 52 59 20 49 54 20 43 |L MEMORY IT C|
000003C0: 41 4E 20 55 53 45 2C 20 54 48 45 20 36 35 31 30 |AN USE, THE 6510|
000003D0: 20 41 4C 53 4F 20 48 41 53 20 41 20 20 4E 55 4D | ALSO HAS A NUM|
000003E0: 42 45 52 20 4F 46 20 49 4E 54 45 52 4E 41 4C 20 |BER OF INTERNAL |
000003F0: 52 45 47 49 53 54 45 52 53 20 46 4F 52 20 53 54 |REGISTERS FOR ST|
00000400: 4F 52 49 4E 47 4E 55 4D 42 45 52 53 2C 20 45 41 |ORINGNUMBERS, EA|
00000410: 43 48 20 4F 4E 45 20 42 59 54 45 20 4C 4F 4E 47 |CH ONE BYTE LONG|
00000420: 3A 0D 0D 74 48 45 20 61 43 43 55 4D 55 4C 41 54 |:..tHE aCCUMULAT|
00000430: 4F 52 20 28 4F 52 20 22 61 20 52 45 47 49 53 54 |OR (OR "a REGIST|
00000440: 45 52 22 29 20 49 53 20 54 48 45 50 52 49 4D 41 |ER") IS THEPRIMA|
00000450: 52 59 20 4C 4F 43 41 54 49 4F 4E 20 46 4F 52 20 |RY LOCATION FOR |
00000460: 50 52 4F 43 45 53 53 49 4E 47 20 44 41 54 41 2E |PROCESSING DATA.|
00000470: 0D 0D 74 48 45 20 78 20 41 4E 44 20 79 20 52 45 |..tHE x AND y RE|
00000480: 47 49 53 54 45 52 53 20 41 52 45 20 45 58 54 52 |GISTERS ARE EXTR|
00000490: 41 2C 20 20 20 20 20 20 20 20 4C 49 4D 49 54 45 |A, LIMITE|
000004A0: 44 2D 55 53 45 2C 20 53 54 4F 52 41 47 45 20 4C |D-USE, STORAGE L|
000004B0: 4F 43 41 54 49 4F 4E 53 2E 0D 0D 74 48 45 20 73 |OCATIONS...tHE s|
000004C0: 70 2C 70 63 20 41 4E 44 20 70 20 52 45 47 49 53 |p,pc AND p REGIS|
000004D0: 54 45 52 53 20 41 52 45 20 4D 4F 52 45 20 20 20 |TERS ARE MORE |
000004E0: 20 20 20 43 4F 4D 50 4C 45 58 20 41 4E 44 20 43 | COMPLEX AND C|
000004F0: 41 4E 27 54 20 42 45 20 44 49 53 43 55 53 53 45 |AN'T BE DISCUSSE|
00000500: 44 20 48 45 52 45 2E 0D 5E 0D 0D 20 20 74 48 45 |D HERE..^.. tHE|
00000510: 20 46 49 52 53 54 20 47 52 4F 55 50 20 4F 46 20 | FIRST GROUP OF |
00000520: 49 4E 53 54 52 55 43 54 49 4F 4E 53 20 54 4F 20 |INSTRUCTIONS TO |
00000530: 20 20 20 4C 45 41 52 4E 20 49 53 20 54 48 45 20 | LEARN IS THE |
00000540: 4E 55 4D 42 45 52 2D 4D 4F 56 49 4E 47 20 53 45 |NUMBER-MOVING SE|
00000550: 54 2E 20 74 48 45 20 20 20 20 20 53 49 4D 50 4C |T. tHE SIMPL|
00000560: 45 53 54 20 4F 46 20 54 48 45 53 45 20 41 52 45 |EST OF THESE ARE|
00000570: 20 45 58 50 4C 41 49 4E 45 44 20 42 45 4C 4F 57 | EXPLAINED BELOW|
00000580: 3A 0D 0D 20 20 20 20 20 62 41 53 49 43 0D 6D 6C |:.. bASIC.ml|
00000590: 20 65 51 55 49 56 41 4C 45 4E 54 20 20 65 58 50 | eQUIVALENT eXP|
000005A0: 4C 41 4E 41 54 49 4F 4E 0D 54 41 58 20 20 20 58 |LANATION.TAX X|
000005B0: 3D 41 20 20 20 22 74 52 41 4E 53 46 45 52 20 61 |=A "tRANSFER a|
000005C0: 43 43 55 4D 55 4C 41 54 4F 52 20 54 4F 20 20 20 |CCUMULATOR TO |
000005D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 | x |
000005E0: 52 45 47 49 53 54 45 52 22 0D 54 58 41 20 20 20 |REGISTER".TXA |
000005F0: 41 3D 58 20 20 20 22 74 52 41 4E 53 46 45 52 20 |A=X "tRANSFER |
00000600: 78 20 52 45 47 49 53 54 45 52 20 54 4F 20 20 20 |x REGISTER TO |
00000610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 | a|
00000620: 43 43 55 4D 55 4C 41 54 4F 52 22 0D 54 41 59 20 |CCUMULATOR".TAY |
00000630: 20 20 59 3D 41 20 20 20 22 74 52 41 4E 53 46 45 | Y=A "tRANSFE|
00000640: 52 20 61 43 43 55 4D 55 4C 41 54 4F 52 20 54 4F |R aCCUMULATOR TO|
00000650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000660: 20 79 20 52 45 47 49 53 54 45 52 22 0D 54 59 41 | y REGISTER".TYA|
00000670: 20 20 20 41 3D 59 20 20 20 22 74 52 41 4E 53 46 | A=Y "tRANSF|
00000680: 45 52 20 79 20 52 45 47 49 53 54 45 52 20 54 4F |ER y REGISTER TO|
00000690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000006A0: 20 20 61 43 43 55 4D 55 4C 41 54 4F 52 22 0D 0D | aCCUMULATOR"..|
000006B0: 20 20 61 53 20 59 4F 55 20 43 41 4E 20 53 45 45 | aS YOU CAN SEE|
000006C0: 2C 20 54 48 45 20 43 52 59 50 54 49 43 20 6D 6C |, THE CRYPTIC ml|
000006D0: 20 53 59 4D 42 4F 4C 53 41 52 45 20 41 43 54 55 | SYMBOLSARE ACTU|
000006E0: 41 4C 4C 59 20 43 4F 4D 50 52 45 48 45 4E 53 49 |ALLY COMPREHENSI|
000006F0: 42 4C 45 2C 20 41 4E 44 20 54 48 45 20 20 20 20 |BLE, AND THE |
00000700: 49 4E 53 54 52 55 43 54 49 4F 4E 53 20 41 43 54 |INSTRUCTIONS ACT|
00000710: 55 41 4C 4C 59 20 44 4F 20 55 53 45 46 55 4C 20 |UALLY DO USEFUL |
00000720: 54 48 49 4E 47 53 2E 0D 0D 20 20 65 41 43 48 20 |THINGS... eACH |
00000730: 4F 46 20 54 48 45 53 45 20 49 4E 53 54 52 55 43 |OF THESE INSTRUC|
00000740: 54 49 4F 4E 53 20 49 53 20 4F 4E 45 20 42 59 54 |TIONS IS ONE BYT|
00000750: 45 4C 4F 4E 47 20 41 4E 44 20 54 41 4B 45 53 20 |ELONG AND TAKES |
00000760: 32 65 2D 36 20 53 45 43 4F 4E 44 53 20 54 4F 20 |2e-6 SECONDS TO |
00000770: 45 58 45 43 55 54 45 2E 0D 5E 0D 0D 20 20 74 48 |EXECUTE..^.. tH|
00000780: 45 20 4E 45 58 54 20 53 45 54 20 4F 46 20 49 4E |E NEXT SET OF IN|
00000790: 53 54 52 55 43 54 49 4F 4E 53 20 49 53 20 4D 4F |STRUCTIONS IS MO|
000007A0: 52 45 20 20 43 4F 4D 50 4C 45 58 20 41 4E 44 20 |RE COMPLEX AND |
000007B0: 4D 4F 56 45 53 20 44 41 54 41 20 54 4F 20 41 4E |MOVES DATA TO AN|
000007C0: 44 20 46 52 4F 4D 20 20 20 20 20 20 4D 45 4D 4F |D FROM MEMO|
000007D0: 52 59 2E 20 74 48 45 59 20 41 52 45 20 41 53 20 |RY. tHEY ARE AS |
000007E0: 46 4F 4C 4C 4F 57 53 3A 0D 0D 6D 6C 20 20 20 20 |FOLLOWS:..ml |
000007F0: 20 20 65 58 50 4C 41 4E 41 54 49 4F 4E 0D 4C 44 | eXPLANATION.LD|
00000800: 41 20 20 20 22 6C 4F 41 64 20 61 43 43 55 4D 55 |A "lOAd aCCUMU|
00000810: 4C 41 54 4F 52 22 0D 4C 44 58 20 20 20 22 6C 4F |LATOR".LDX "lO|
00000820: 41 64 20 78 20 52 45 47 49 53 54 45 52 22 0D 4C |Ad x REGISTER".L|
00000830: 44 59 20 20 20 22 6C 4F 41 64 20 79 20 52 45 47 |DY "lOAd y REG|
00000840: 49 53 54 45 52 22 0D 53 54 41 20 20 20 22 73 74 |ISTER".STA "st|
00000850: 4F 52 45 20 61 43 43 55 4D 55 4C 41 54 4F 52 22 |ORE aCCUMULATOR"|
00000860: 0D 53 54 58 20 20 20 22 73 74 4F 52 45 20 78 20 |.STX "stORE x |
00000870: 52 45 47 49 53 54 45 52 22 0D 53 54 59 20 20 20 |REGISTER".STY |
00000880: 22 73 74 4F 52 45 20 79 20 52 45 47 49 53 54 45 |"stORE y REGISTE|
00000890: 52 22 0D 0D 20 20 65 41 43 48 20 4F 46 20 54 48 |R".. eACH OF TH|
000008A0: 45 53 45 20 4D 55 53 54 20 42 45 20 46 4F 4C 4C |ESE MUST BE FOLL|
000008B0: 4F 57 45 44 20 42 59 20 20 20 20 20 41 20 4E 55 |OWED BY A NU|
000008C0: 4D 42 45 52 20 57 48 49 43 48 20 49 4E 44 49 43 |MBER WHICH INDIC|
000008D0: 41 54 45 53 20 54 48 45 20 44 41 54 41 27 53 20 |ATES THE DATA'S |
000008E0: 20 20 20 20 53 4F 55 52 43 45 20 28 46 4F 52 20 | SOURCE (FOR |
000008F0: 41 20 4C 4F 41 44 20 43 4F 4D 4D 41 4E 44 29 20 |A LOAD COMMAND) |
00000900: 4F 52 20 20 20 20 20 20 20 20 20 20 44 45 53 54 |OR DEST|
00000910: 49 4E 41 54 49 4F 4E 20 28 46 4F 52 20 41 20 53 |INATION (FOR A S|
00000920: 54 4F 52 45 20 43 4F 4D 4D 41 4E 44 29 2E 0D 0D |TORE COMMAND)...|
00000930: 20 20 74 48 45 20 43 4F 4D 50 4C 45 58 49 54 59 | tHE COMPLEXITY|
00000940: 20 41 52 49 53 45 53 20 42 45 43 41 55 53 45 20 | ARISES BECAUSE |
00000950: 4D 45 4D 4F 52 59 20 20 43 41 4E 20 42 45 20 41 |MEMORY CAN BE A|
00000960: 43 43 45 53 53 45 44 20 55 53 49 4E 47 20 41 20 |CCESSED USING A |
00000970: 56 41 52 49 45 54 59 20 4F 46 20 20 20 20 20 20 |VARIETY OF |
00000980: 22 41 44 44 52 45 53 53 49 4E 47 20 4D 4F 44 45 |"ADDRESSING MODE|
00000990: 53 22 2C 20 49 4E 20 57 48 49 43 48 20 54 48 45 |S", IN WHICH THE|
000009A0: 20 4E 55 4D 42 45 52 20 52 45 46 45 52 53 20 54 | NUMBER REFERS T|
000009B0: 4F 20 44 49 46 46 45 52 45 4E 54 20 54 48 49 4E |O DIFFERENT THIN|
000009C0: 47 53 2E 0D 5E 0D 0D 20 20 20 20 20 20 20 20 20 |GS..^.. |
000009D0: 20 61 44 44 52 45 53 53 49 4E 47 20 6D 4F 44 45 | aDDRESSING mODE|
000009E0: 53 0D 0D 0D 20 20 69 4D 4D 45 44 49 41 54 45 20 |S... iMMEDIATE |
000009F0: 6D 4F 44 45 3A 0D 0D 20 20 74 48 49 53 20 4D 4F |mODE:.. tHIS MO|
00000A00: 44 45 20 53 49 4D 50 4C 59 20 4D 4F 56 45 53 20 |DE SIMPLY MOVES |
00000A10: 54 48 45 20 4E 55 4D 42 45 52 20 49 4E 54 4F 41 |THE NUMBER INTOA|
00000A20: 20 52 45 47 49 53 54 45 52 2E 20 69 54 20 49 53 | REGISTER. iT IS|
00000A30: 20 49 4E 44 49 43 41 54 45 44 20 42 59 20 41 20 | INDICATED BY A |
00000A40: 22 23 22 20 20 20 20 50 52 45 43 45 44 49 4E 47 |"#" PRECEDING|
00000A50: 20 54 48 45 20 4E 55 4D 42 45 52 2E 20 0D 0D 65 | THE NUMBER. ..e|
00000A60: 2E 47 2E 20 4C 44 41 20 23 34 35 20 20 20 50 55 |.G. LDA #45 PU|
00000A70: 54 53 20 54 48 45 20 4E 55 4D 42 45 52 20 34 35 |TS THE NUMBER 45|
00000A80: 20 49 4E 54 4F 20 20 20 20 20 20 20 20 20 20 20 | INTO |
00000A90: 20 20 20 20 20 20 54 48 45 20 41 43 43 55 4D 55 | THE ACCUMU|
00000AA0: 4C 41 54 4F 52 2E 0D 20 20 20 20 20 69 4E 20 62 |LATOR.. iN b|
00000AB0: 41 53 49 43 2C 20 41 3D 34 35 0D 0D 20 20 74 48 |ASIC, A=45.. tH|
00000AC0: 49 53 20 4D 4F 44 45 20 43 41 4E 4E 4F 54 20 42 |IS MODE CANNOT B|
00000AD0: 45 20 55 53 45 44 20 57 49 54 48 20 53 54 4F 52 |E USED WITH STOR|
00000AE0: 45 20 20 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 |E INSTRUCTIONS|
00000AF0: 2E 20 79 4F 55 20 43 41 4E 4E 4F 54 20 50 55 54 |. yOU CANNOT PUT|
00000B00: 20 54 48 45 20 20 20 20 20 20 20 20 41 43 43 55 | THE ACCU|
00000B10: 4D 55 4C 41 54 4F 52 20 49 4E 54 4F 20 54 48 45 |MULATOR INTO THE|
00000B20: 20 4E 55 4D 42 45 52 20 34 35 2E 0D 0D 20 20 69 | NUMBER 45... i|
00000B30: 4E 53 54 52 55 43 54 49 4F 4E 53 20 55 53 49 4E |NSTRUCTIONS USIN|
00000B40: 47 20 54 48 49 53 20 4D 4F 44 45 20 55 53 45 20 |G THIS MODE USE |
00000B50: 32 20 20 20 20 42 59 54 45 53 20 4F 46 20 4D 45 |2 BYTES OF ME|
00000B60: 4D 4F 52 59 20 41 4E 44 20 54 41 4B 45 20 32 65 |MORY AND TAKE 2e|
00000B70: 2D 36 20 53 45 43 4F 4E 44 53 20 20 20 54 4F 20 |-6 SECONDS TO |
00000B80: 45 58 45 43 55 54 45 2E 0D 5E 0D 0D 20 20 61 42 |EXECUTE..^.. aB|
00000B90: 53 4F 4C 55 54 45 20 6D 4F 44 45 3A 0D 0D 20 20 |SOLUTE mODE:.. |
00000BA0: 74 48 49 53 20 4D 4F 44 45 20 4D 4F 56 45 53 20 |tHIS MODE MOVES |
00000BB0: 44 41 54 41 20 42 45 54 57 45 45 4E 20 41 20 20 |DATA BETWEEN A |
00000BC0: 20 20 20 20 20 20 52 45 47 49 53 54 45 52 20 41 | REGISTER A|
00000BD0: 4E 44 20 41 20 47 49 56 45 4E 20 4D 45 4D 4F 52 |ND A GIVEN MEMOR|
00000BE0: 59 20 4C 4F 43 41 54 49 4F 4E 2E 20 20 20 6E 4F |Y LOCATION. nO|
00000BF0: 20 53 50 45 43 49 41 4C 20 53 59 4D 42 4F 4C 53 | SPECIAL SYMBOLS|
00000C00: 20 41 52 45 20 55 53 45 44 2E 0D 0D 65 2E 47 2E | ARE USED...e.G.|
00000C10: 20 4C 44 58 20 31 30 32 34 20 20 50 55 54 53 20 | LDX 1024 PUTS |
00000C20: 54 48 45 20 43 4F 4E 54 45 4E 54 53 20 4F 46 20 |THE CONTENTS OF |
00000C30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000C40: 20 20 20 4D 45 4D 4F 52 59 20 41 44 44 52 45 53 | MEMORY ADDRES|
00000C50: 53 20 31 30 32 34 20 49 4E 54 4F 20 20 20 20 20 |S 1024 INTO |
00000C60: 20 20 20 20 20 20 20 20 20 20 20 54 48 45 20 78 | THE x|
00000C70: 20 52 45 47 49 53 54 45 52 2E 0D 20 20 20 20 20 | REGISTER.. |
00000C80: 69 4E 20 62 41 53 49 43 2C 20 58 3D 50 45 45 4B |iN bASIC, X=PEEK|
00000C90: 28 31 30 32 34 29 0D 0D 20 20 20 20 20 53 54 41 |(1024).. STA|
00000CA0: 20 24 44 30 32 30 20 50 55 54 53 20 54 48 45 20 | $D020 PUTS THE |
00000CB0: 43 4F 4E 54 45 4E 54 53 20 4F 46 20 54 48 45 20 |CONTENTS OF THE |
00000CC0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 | A|
00000CD0: 43 43 55 4D 55 4C 41 54 4F 52 20 49 4E 54 4F 20 |CCUMULATOR INTO |
00000CE0: 4D 45 4D 4F 52 59 20 20 20 20 20 20 20 20 20 20 |MEMORY |
00000CF0: 20 20 20 20 20 20 20 41 44 44 52 45 53 53 20 24 | ADDRESS $|
00000D00: 44 30 32 30 2E 0D 20 20 20 20 20 69 4E 20 62 41 |D020.. iN bA|
00000D10: 53 49 43 2C 20 50 4F 4B 45 20 35 33 32 38 30 2C |SIC, POKE 53280,|
00000D20: 41 0D 0D 20 20 62 4F 54 48 20 4C 4F 41 44 20 41 |A.. bOTH LOAD A|
00000D30: 4E 44 20 53 54 4F 52 45 20 49 4E 53 54 52 55 43 |ND STORE INSTRUC|
00000D40: 54 49 4F 4E 53 20 4D 41 59 20 20 55 53 45 20 54 |TIONS MAY USE T|
00000D50: 48 49 53 20 4D 4F 44 45 2E 0D 0D 20 20 61 42 53 |HIS MODE... aBS|
00000D60: 4F 4C 55 54 45 20 4D 4F 44 45 20 49 4E 53 54 52 |OLUTE MODE INSTR|
00000D70: 55 43 54 49 4F 4E 53 20 41 52 45 20 33 20 42 59 |UCTIONS ARE 3 BY|
00000D80: 54 45 53 4C 4F 4E 47 20 41 4E 44 20 54 41 4B 45 |TESLONG AND TAKE|
00000D90: 20 34 65 2D 36 20 53 45 43 4F 4E 44 53 20 54 4F | 4e-6 SECONDS TO|
00000DA0: 20 45 58 45 43 55 54 45 2E 0D 5E 0D 0D 20 20 20 | EXECUTE..^.. |
00000DB0: 20 20 20 20 61 20 6E 4F 54 45 20 4F 4E 20 7A 45 | a nOTE ON zE|
00000DC0: 52 4F 20 70 41 47 45 0D 0D 20 20 74 48 45 20 4C |RO pAGE.. tHE L|
00000DD0: 4F 57 45 53 54 20 32 35 36 20 42 59 54 45 53 20 |OWEST 256 BYTES |
00000DE0: 4F 46 20 4D 45 4D 4F 52 59 20 28 24 30 30 30 30 |OF MEMORY ($0000|
00000DF0: 2D 24 30 30 46 46 29 20 41 52 45 20 55 53 45 44 |-$00FF) ARE USED|
00000E00: 20 49 4E 20 53 50 45 43 49 41 4C 20 57 41 59 53 | IN SPECIAL WAYS|
00000E10: 20 42 59 20 54 48 45 20 20 36 35 31 30 20 43 48 | BY THE 6510 CH|
00000E20: 49 50 2E 20 74 48 49 53 20 52 45 47 49 4F 4E 20 |IP. tHIS REGION |
00000E30: 49 53 20 43 41 4C 4C 45 44 20 22 5A 45 52 4F 20 |IS CALLED "ZERO |
00000E40: 20 50 41 47 45 22 20 41 4E 44 20 53 50 45 43 49 | PAGE" AND SPECI|
00000E50: 41 4C 20 5A 45 52 4F 20 50 41 47 45 20 41 44 44 |AL ZERO PAGE ADD|
00000E60: 52 45 53 53 49 4E 47 20 20 4D 4F 44 45 53 20 4D |RESSING MODES M|
00000E70: 41 4B 45 20 54 48 49 53 20 41 52 45 41 20 4D 4F |AKE THIS AREA MO|
00000E80: 52 45 20 56 45 52 53 41 54 49 4C 45 20 54 48 41 |RE VERSATILE THA|
00000E90: 4E 4F 54 48 45 52 20 52 45 47 49 4F 4E 53 20 4F |NOTHER REGIONS O|
00000EA0: 46 20 4D 45 4D 4F 52 59 2E 0D 0D 20 20 64 55 45 |F MEMORY... dUE|
00000EB0: 20 54 4F 20 49 54 53 20 55 53 45 46 55 4C 4E 45 | TO ITS USEFULNE|
00000EC0: 53 53 2C 20 54 48 45 20 62 41 53 49 43 20 20 20 |SS, THE bASIC |
00000ED0: 20 20 20 49 4E 54 45 52 50 52 45 54 45 52 20 4D | INTERPRETER M|
00000EE0: 41 4B 45 53 20 48 45 41 56 59 20 55 53 45 20 4F |AKES HEAVY USE O|
00000EF0: 46 20 54 48 49 53 20 20 20 20 20 41 52 45 41 2E |F THIS AREA.|
00000F00: 20 79 4F 55 20 4D 55 53 54 20 46 49 4E 44 20 41 | yOU MUST FIND A|
00000F10: 52 45 41 53 20 54 4F 20 55 53 45 20 57 48 49 43 |REAS TO USE WHIC|
00000F20: 48 20 20 57 49 4C 4C 20 4E 4F 54 20 49 4E 54 45 |H WILL NOT INTE|
00000F30: 52 46 45 52 45 20 57 49 54 48 20 49 54 53 20 57 |RFERE WITH ITS W|
00000F40: 4F 52 4B 49 4E 47 20 49 46 20 20 54 48 49 53 20 |ORKING IF THIS |
00000F50: 43 4F 4E 43 45 52 4E 53 20 59 4F 55 52 20 50 52 |CONCERNS YOUR PR|
00000F60: 4F 47 52 41 4D 2E 0D 0D 20 20 74 48 45 20 41 52 |OGRAM... tHE AR|
00000F70: 45 41 53 20 24 46 42 2D 24 46 45 20 41 4E 44 20 |EAS $FB-$FE AND |
00000F80: 24 30 32 2D 24 30 36 20 41 52 45 20 20 20 20 20 |$02-$06 ARE |
00000F90: 47 55 41 52 41 4E 54 45 45 44 20 53 41 46 45 2E |GUARANTEED SAFE.|
00000FA0: 20 61 4C 53 4F 2C 24 39 32 2C 24 39 36 2C 24 39 | aLSO,$92,$96,$9|
00000FB0: 42 2D 24 39 43 2C 20 20 24 39 45 2D 24 39 46 2C |B-$9C, $9E-$9F,|
00000FC0: 24 41 35 2D 24 41 36 2C 24 42 30 2D 24 42 33 2C |$A5-$A6,$B0-$B3,|
00000FD0: 24 42 45 2D 24 42 46 20 41 4E 44 20 24 43 33 2D |$BE-$BF AND $C3-|
00000FE0: 24 43 34 20 41 52 45 20 41 56 41 49 4C 41 42 4C |$C4 ARE AVAILABL|
00000FF0: 45 20 49 46 20 54 48 45 20 43 41 53 53 45 54 54 |E IF THE CASSETT|
00001000: 45 20 50 4C 41 59 45 52 49 53 20 4E 4F 54 20 42 |E PLAYERIS NOT B|
00001010: 45 49 4E 47 20 55 53 45 44 2E 20 6D 41 4E 59 20 |EING USED. mANY |
00001020: 4F 54 48 45 52 20 41 52 45 41 53 20 41 52 45 20 |OTHER AREAS ARE |
00001030: 41 56 41 49 4C 41 42 4C 45 20 46 4F 52 20 54 45 |AVAILABLE FOR TE|
00001040: 4D 50 4F 52 41 52 59 20 57 4F 52 4B 2E 0D 5E 0D |MPORARY WORK..^.|
00001050: 0D 20 20 7A 45 52 4F 20 70 41 47 45 20 6D 4F 44 |. zERO pAGE mOD|
00001060: 45 3A 0D 0D 20 20 74 48 49 53 20 4D 4F 44 45 20 |E:.. tHIS MODE |
00001070: 49 53 20 49 44 45 4E 54 49 43 41 4C 20 54 4F 20 |IS IDENTICAL TO |
00001080: 41 42 53 4F 4C 55 54 45 20 20 20 20 4D 4F 44 45 |ABSOLUTE MODE|
00001090: 20 45 58 43 45 50 54 20 46 4F 52 20 54 41 4B 49 | EXCEPT FOR TAKI|
000010A0: 4E 47 20 4C 45 53 53 20 4D 45 4D 4F 52 59 20 20 |NG LESS MEMORY |
000010B0: 20 20 20 20 53 50 41 43 45 20 41 4E 44 20 45 58 | SPACE AND EX|
000010C0: 45 43 55 54 49 4E 47 20 46 41 53 54 45 52 2E 0D |ECUTING FASTER..|
000010D0: 0D 20 20 6D 4F 53 54 20 41 53 53 45 4D 42 4C 45 |. mOST ASSEMBLE|
000010E0: 52 53 20 55 53 45 20 5A 45 52 4F 20 50 41 47 45 |RS USE ZERO PAGE|
000010F0: 20 4D 4F 44 45 20 20 20 20 57 48 45 4E 45 56 45 | MODE WHENEVE|
00001100: 52 20 41 50 50 4C 49 43 41 42 4C 45 2C 20 53 4F |R APPLICABLE, SO|
00001110: 20 49 54 20 49 53 20 57 52 49 54 54 45 4E 20 20 | IT IS WRITTEN |
00001120: 20 45 58 41 43 54 4C 59 20 4C 49 4B 45 20 41 42 | EXACTLY LIKE AB|
00001130: 53 4F 4C 55 54 45 20 4D 4F 44 45 2E 0D 0D 65 2E |SOLUTE MODE...e.|
00001140: 47 2E 20 53 54 59 20 24 46 43 20 20 20 53 54 4F |G. STY $FC STO|
00001150: 52 45 53 20 54 48 45 20 43 4F 4E 54 45 4E 54 53 |RES THE CONTENTS|
00001160: 20 4F 46 20 20 20 20 20 20 20 20 20 20 20 20 20 | OF |
00001170: 20 20 20 20 20 54 48 45 20 79 20 52 45 47 49 53 | THE y REGIS|
00001180: 54 45 52 20 49 4E 20 4D 45 4D 4F 52 59 20 20 20 |TER IN MEMORY |
00001190: 20 20 20 20 20 20 20 20 20 20 20 20 20 4C 4F 43 | LOC|
000011A0: 41 54 49 4F 4E 20 24 46 43 0D 20 20 20 20 20 69 |ATION $FC. i|
000011B0: 4E 20 62 41 53 49 43 2C 20 50 4F 4B 45 20 32 35 |N bASIC, POKE 25|
000011C0: 32 2C 59 2E 0D 0D 20 20 6C 44 41 2C 20 4C 44 58 |2,Y... lDA, LDX|
000011D0: 2C 20 4C 44 59 2C 20 53 54 41 2C 20 53 54 58 20 |, LDY, STA, STX |
000011E0: 41 4E 44 20 53 54 59 20 4D 41 59 20 20 20 41 4C |AND STY MAY AL|
000011F0: 4C 20 55 53 45 20 5A 45 52 4F 20 50 41 47 45 20 |L USE ZERO PAGE |
00001200: 4D 4F 44 45 2E 0D 0D 20 20 7A 45 52 4F 20 50 41 |MODE... zERO PA|
00001210: 47 45 20 4D 4F 44 45 20 49 4E 53 54 52 55 43 54 |GE MODE INSTRUCT|
00001220: 49 4F 4E 53 20 41 52 45 20 32 20 20 20 20 20 42 |IONS ARE 2 B|
00001230: 59 54 45 53 20 4C 4F 4E 47 20 41 4E 44 20 54 41 |YTES LONG AND TA|
00001240: 4B 45 20 33 65 2D 36 20 53 45 43 4F 4E 44 53 20 |KE 3e-6 SECONDS |
00001250: 54 4F 20 20 20 20 20 45 58 45 43 55 54 45 2E 0D |TO EXECUTE..|
00001260: 5E 0D 0D 20 22 61 42 53 4F 4C 55 54 45 2C 78 22 |^.. "aBSOLUTE,x"|
00001270: 20 41 4E 44 20 22 61 42 53 4F 4C 55 54 45 2C 79 | AND "aBSOLUTE,y|
00001280: 22 20 6D 4F 44 45 53 3A 0D 0D 20 20 74 48 45 53 |" mODES:.. tHES|
00001290: 45 20 4D 4F 44 45 53 20 41 52 45 20 53 49 4D 49 |E MODES ARE SIMI|
000012A0: 4C 41 52 20 54 4F 20 41 42 53 4F 4C 55 54 45 20 |LAR TO ABSOLUTE |
000012B0: 20 20 4D 4F 44 45 2C 20 42 55 54 20 54 48 45 20 | MODE, BUT THE |
000012C0: 78 20 4F 52 20 79 20 52 45 47 49 53 54 45 52 2C |x OR y REGISTER,|
000012D0: 20 41 53 20 20 20 20 20 20 20 41 50 50 4C 49 43 | AS APPLIC|
000012E0: 41 42 4C 45 2C 20 49 53 20 41 44 44 45 44 20 54 |ABLE, IS ADDED T|
000012F0: 4F 20 54 48 45 20 41 44 44 52 45 53 53 20 20 20 |O THE ADDRESS |
00001300: 20 20 47 49 56 45 4E 2C 20 42 45 46 4F 52 45 20 | GIVEN, BEFORE |
00001310: 46 45 54 43 48 49 4E 47 20 49 54 53 20 43 4F 4E |FETCHING ITS CON|
00001320: 54 45 4E 54 53 2E 20 20 20 20 74 48 45 59 20 41 |TENTS. tHEY A|
00001330: 52 45 20 57 52 49 54 54 45 4E 20 4C 49 4B 45 20 |RE WRITTEN LIKE |
00001340: 41 42 53 4F 4C 55 54 45 20 4D 4F 44 45 20 42 55 |ABSOLUTE MODE BU|
00001350: 54 20 46 4F 4C 4C 4F 57 45 44 20 42 59 20 22 2C |T FOLLOWED BY ",|
00001360: 78 22 20 4F 52 20 22 2C 79 22 2E 0D 0D 65 2E 47 |x" OR ",y"...e.G|
00001370: 2E 20 4C 44 59 20 35 31 32 2C 78 20 50 55 54 53 |. LDY 512,x PUTS|
00001380: 20 54 48 45 20 43 4F 4E 54 45 4E 54 53 20 4F 46 | THE CONTENTS OF|
00001390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000013A0: 20 20 20 20 4D 45 4D 4F 52 59 20 4C 4F 43 41 54 | MEMORY LOCAT|
000013B0: 49 4F 4E 20 28 35 31 32 2B 78 29 20 20 20 20 20 |ION (512+x) |
000013C0: 20 20 20 20 20 20 20 20 20 20 20 20 49 4E 54 4F | INTO|
000013D0: 20 54 48 45 20 79 20 52 45 47 49 53 54 45 52 2E | THE y REGISTER.|
000013E0: 0D 20 20 20 20 20 69 4E 20 62 41 53 49 43 2C 20 |. iN bASIC, |
000013F0: 59 3D 50 45 45 4B 28 35 31 32 2B 58 29 0D 0D 20 |Y=PEEK(512+X).. |
00001400: 20 74 48 45 20 79 20 52 45 47 49 53 54 45 52 20 | tHE y REGISTER |
00001410: 43 41 4E 4E 4F 54 20 55 53 45 20 54 48 45 20 20 |CANNOT USE THE |
00001420: 20 20 20 20 20 20 20 41 42 53 4F 4C 55 54 45 2C | ABSOLUTE,|
00001430: 79 20 4D 4F 44 45 20 41 4E 44 20 54 48 45 20 78 |y MODE AND THE x|
00001440: 20 52 45 47 49 53 54 45 52 20 20 20 20 20 20 43 | REGISTER C|
00001450: 41 4E 4E 4F 54 20 55 53 45 20 54 48 45 20 41 42 |ANNOT USE THE AB|
00001460: 53 4F 4C 55 54 45 2C 78 20 4D 4F 44 45 2E 0D 0D |SOLUTE,x MODE...|
00001470: 20 20 74 48 45 53 45 20 49 4E 53 54 52 55 43 54 | tHESE INSTRUCT|
00001480: 49 4F 4E 53 20 41 52 45 20 33 20 42 59 54 45 53 |IONS ARE 3 BYTES|
00001490: 20 4C 4F 4E 47 20 20 20 41 4E 44 20 54 41 4B 45 | LONG AND TAKE|
000014A0: 20 34 65 2D 36 20 4F 52 20 35 65 2D 36 20 53 45 | 4e-6 OR 5e-6 SE|
000014B0: 43 4F 4E 44 53 20 54 4F 20 20 20 20 20 20 20 20 |CONDS TO |
000014C0: 45 58 45 43 55 54 45 2C 20 44 45 50 45 4E 44 49 |EXECUTE, DEPENDI|
000014D0: 4E 47 20 4F 4E 20 54 48 45 20 56 41 4C 55 45 53 |NG ON THE VALUES|
000014E0: 20 55 53 45 44 2E 0D 5E 0D 0D 20 22 7A 45 52 4F | USED..^.. "zERO|
000014F0: 20 70 41 47 45 2C 78 22 20 6D 4F 44 45 3A 0D 0D | pAGE,x" mODE:..|
00001500: 20 20 74 48 49 53 20 4D 4F 44 45 20 49 53 20 53 | tHIS MODE IS S|
00001510: 49 4D 49 4C 41 52 20 54 4F 20 54 48 45 20 41 42 |IMILAR TO THE AB|
00001520: 53 4F 4C 55 54 45 2C 78 4D 4F 44 45 20 42 55 54 |SOLUTE,xMODE BUT|
00001530: 20 41 20 5A 45 52 4F 20 50 41 47 45 20 41 44 44 | A ZERO PAGE ADD|
00001540: 52 45 53 53 20 49 53 20 55 53 45 44 2E 0D 0D 20 |RESS IS USED... |
00001550: 20 6D 4F 53 54 20 41 53 53 45 4D 42 4C 45 52 53 | mOST ASSEMBLERS|
00001560: 20 55 53 45 20 5A 45 52 4F 20 50 41 47 45 2C 78 | USE ZERO PAGE,x|
00001570: 20 4D 4F 44 45 20 20 57 48 45 4E 45 56 45 52 20 | MODE WHENEVER |
00001580: 41 50 50 4C 49 43 41 42 4C 45 2C 20 53 4F 20 49 |APPLICABLE, SO I|
00001590: 54 20 49 53 20 57 52 49 54 54 45 4E 20 20 20 45 |T IS WRITTEN E|
000015A0: 58 41 43 54 4C 59 20 4C 49 4B 45 20 41 42 53 4F |XACTLY LIKE ABSO|
000015B0: 4C 55 54 45 2C 78 20 4D 4F 44 45 2E 0D 0D 2A 20 |LUTE,x MODE...* |
000015C0: 61 4E 20 49 4D 50 4F 52 54 41 4E 54 20 4E 4F 54 |aN IMPORTANT NOT|
000015D0: 45 3A 20 49 46 20 54 48 45 20 41 44 44 49 54 49 |E: IF THE ADDITI|
000015E0: 4F 4E 20 20 20 20 50 52 4F 44 55 43 45 53 20 41 |ON PRODUCES A|
000015F0: 20 52 45 53 55 4C 54 20 47 52 45 41 54 45 52 20 | RESULT GREATER |
00001600: 54 48 41 4E 20 24 46 46 2C 20 49 54 20 20 43 4F |THAN $FF, IT CO|
00001610: 4E 54 49 4E 55 45 53 20 43 4F 55 4E 54 49 4E 47 |NTINUES COUNTING|
00001620: 20 41 54 20 24 30 30 2C 20 4E 4F 54 20 24 31 30 | AT $00, NOT $10|
00001630: 30 0D 0D 65 2E 47 2E 20 53 54 41 20 24 46 44 2C |0..e.G. STA $FD,|
00001640: 78 20 50 55 54 53 20 54 48 45 20 43 4F 4E 54 45 |x PUTS THE CONTE|
00001650: 4E 54 53 20 4F 46 20 54 48 45 20 20 20 20 20 20 |NTS OF THE |
00001660: 20 20 20 20 20 20 20 20 20 20 41 43 43 55 4D 55 | ACCUMU|
00001670: 4C 41 54 4F 52 20 49 4E 54 4F 20 4D 45 4D 4F 52 |LATOR INTO MEMOR|
00001680: 59 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |Y |
00001690: 20 20 4C 4F 43 41 54 49 4F 4E 20 28 24 46 44 2B | LOCATION ($FD+|
000016A0: 58 29 0D 20 20 20 20 20 69 4E 20 62 41 53 49 43 |X). iN bASIC|
000016B0: 2C 20 50 4F 4B 45 28 32 35 33 2B 58 29 2C 41 0D |, POKE(253+X),A.|
000016C0: 0D 2A 20 6E 4F 54 45 3A 20 69 46 20 78 20 49 53 |.* nOTE: iF x IS|
000016D0: 20 24 31 30 2C 20 54 48 45 20 41 43 43 55 4D 55 | $10, THE ACCUMU|
000016E0: 4C 41 54 4F 52 20 20 20 20 57 49 4C 4C 20 42 45 |LATOR WILL BE|
000016F0: 20 53 54 4F 52 45 44 20 49 4E 20 24 30 44 2C 20 | STORED IN $0D, |
00001700: 6E 6F 74 20 24 31 30 44 2E 0D 0D 20 20 20 20 20 |not $10D... |
00001710: 20 20 20 20 20 28 6D 4F 52 45 20 4F 4E 20 4E 45 | (mORE ON NE|
00001720: 58 54 20 50 41 47 45 29 0D 5E 0D 0D 20 22 7A 45 |XT PAGE).^.. "zE|
00001730: 52 4F 20 70 41 47 45 2C 78 22 20 6D 4F 44 45 3A |RO pAGE,x" mODE:|
00001740: 20 20 28 63 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 | (cONTINUED).. |
00001750: 20 6C 44 58 20 41 4E 44 20 53 54 58 20 43 41 4E | lDX AND STX CAN|
00001760: 4E 4F 54 20 55 53 45 20 54 48 45 20 5A 45 52 4F |NOT USE THE ZERO|
00001770: 20 50 41 47 45 2C 78 4D 4F 44 45 2C 20 42 55 54 | PAGE,xMODE, BUT|
00001780: 20 43 41 4E 20 55 53 45 20 41 20 55 4E 49 51 55 | CAN USE A UNIQU|
00001790: 45 20 5A 45 52 4F 20 50 41 47 45 2C 79 20 20 4D |E ZERO PAGE,y M|
000017A0: 4F 44 45 2C 20 57 48 49 43 48 20 4F 50 45 52 41 |ODE, WHICH OPERA|
000017B0: 54 45 53 20 53 49 4D 49 4C 41 52 4C 59 2E 0D 0D |TES SIMILARLY...|
000017C0: 20 20 7A 45 52 4F 20 50 41 47 45 2C 78 20 4D 4F | zERO PAGE,x MO|
000017D0: 44 45 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 20 |DE INSTRUCTIONS |
000017E0: 41 52 45 20 32 20 20 20 42 59 54 45 53 20 4C 4F |ARE 2 BYTES LO|
000017F0: 4E 47 20 41 4E 44 20 54 41 4B 45 20 34 65 2D 36 |NG AND TAKE 4e-6|
00001800: 20 53 45 43 4F 4E 44 53 20 54 4F 20 20 20 20 20 | SECONDS TO |
00001810: 45 58 45 43 55 54 45 2E 0D 0D 20 20 22 69 4E 44 |EXECUTE... "iND|
00001820: 45 58 45 44 22 20 28 61 42 53 4F 4C 55 54 45 2C |EXED" (aBSOLUTE,|
00001830: 78 3B 20 41 42 53 4F 4C 55 54 45 2C 79 3B 20 41 |x; ABSOLUTE,y; A|
00001840: 4E 44 20 5A 45 52 4F 20 50 41 47 45 2C 78 20 4D |ND ZERO PAGE,x M|
00001850: 4F 44 45 29 20 49 4E 53 54 52 55 43 54 49 4F 4E |ODE) INSTRUCTION|
00001860: 53 20 41 52 45 20 20 20 20 20 4F 46 54 45 4E 20 |S ARE OFTEN |
00001870: 55 53 45 44 20 54 4F 20 4D 4F 56 45 20 42 4C 4F |USED TO MOVE BLO|
00001880: 43 4B 53 20 4F 46 20 4D 45 4D 4F 52 59 20 20 20 |CKS OF MEMORY |
00001890: 20 20 41 42 4F 55 54 2C 20 42 59 20 45 58 45 43 | ABOUT, BY EXEC|
000018A0: 55 54 49 4E 47 20 22 4C 44 41 20 5B 53 4F 55 52 |UTING "LDA [SOUR|
000018B0: 43 45 20 41 52 45 41 5D 2C 78 53 54 41 20 5B 44 |CE AREA],xSTA [D|
000018C0: 45 53 54 49 4E 41 54 49 4F 4E 20 41 52 45 41 5D |ESTINATION AREA]|
000018D0: 2C 78 22 20 20 52 45 50 45 41 54 45 44 4C 59 20 |,x" REPEATEDLY |
000018E0: 20 20 57 49 54 48 20 41 20 52 41 4E 47 45 20 4F | WITH A RANGE O|
000018F0: 46 20 56 41 4C 55 45 53 20 46 4F 52 20 78 2E 0D |F VALUES FOR x..|
00001900: 0D 20 5B 66 4F 52 20 54 48 45 20 43 55 52 49 4F |. [fOR THE CURIO|
00001910: 55 53 3A 20 61 42 53 4F 4C 55 54 45 2C 78 20 41 |US: aBSOLUTE,x A|
00001920: 4E 44 20 2C 79 20 20 20 20 4D 4F 44 45 20 49 4E |ND ,y MODE IN|
00001930: 53 54 52 55 43 54 49 4F 4E 53 20 54 41 4B 45 20 |STRUCTIONS TAKE |
00001940: 4C 4F 4E 47 45 52 20 57 48 45 4E 20 54 48 45 20 |LONGER WHEN THE |
00001950: 20 41 44 44 49 54 49 4F 4E 20 43 41 55 53 45 53 | ADDITION CAUSES|
00001960: 20 41 20 50 41 47 45 20 42 4F 55 4E 44 41 52 59 | A PAGE BOUNDARY|
00001970: 20 28 46 52 4F 4D 20 20 20 24 58 58 46 46 20 54 | (FROM $XXFF T|
00001980: 4F 20 24 59 59 30 30 29 20 54 4F 20 42 45 20 43 |O $YY00) TO BE C|
00001990: 52 4F 53 53 45 44 2E 5D 0D 5E 0D 0D 20 20 68 45 |ROSSED.].^.. hE|
000019A0: 52 45 20 49 53 20 41 4E 20 45 58 41 4D 50 4C 45 |RE IS AN EXAMPLE|
000019B0: 20 50 52 4F 47 52 41 4D 20 54 4F 20 4D 4F 56 45 | PROGRAM TO MOVE|
000019C0: 20 41 20 20 53 43 52 45 45 4E 46 55 4C 20 4F 46 | A SCREENFUL OF|
000019D0: 20 49 4E 46 4F 52 4D 41 54 49 4F 4E 20 46 52 4F | INFORMATION FRO|
000019E0: 4D 20 34 39 31 35 32 2D 20 20 20 20 35 30 31 35 |M 49152- 5015|
000019F0: 31 20 54 4F 20 31 30 32 34 2D 32 30 32 33 2C 20 |1 TO 1024-2023, |
00001A00: 54 48 45 20 4C 4F 43 41 54 49 4F 4E 20 4F 46 20 |THE LOCATION OF |
00001A10: 54 48 45 20 56 49 44 45 4F 20 53 43 52 45 45 4E |THE VIDEO SCREEN|
00001A20: 20 49 4E 20 4D 45 4D 4F 52 59 2E 20 73 4F 4D 45 | IN MEMORY. sOME|
00001A30: 20 49 4E 53 54 52 55 43 54 2D 20 20 49 4F 4E 53 | INSTRUCT- IONS|
00001A40: 20 48 41 56 45 20 4E 4F 54 20 59 45 54 20 42 45 | HAVE NOT YET BE|
00001A50: 45 4E 20 44 45 53 43 52 49 42 45 44 2E 0D 0D 20 |EN DESCRIBED... |
00001A60: 20 20 20 20 4C 44 58 20 23 32 35 30 20 20 20 20 | LDX #250 |
00001A70: 3B 49 4E 49 54 49 41 4C 49 5A 45 20 58 20 54 4F |;INITIALIZE X TO|
00001A80: 20 32 35 30 0D 4C 4F 4F 50 20 44 45 58 20 20 20 | 250.LOOP DEX |
00001A90: 20 20 20 20 20 20 3B 64 65 43 52 45 4D 45 4E 54 | ;deCREMENT|
00001AA0: 20 78 20 28 58 3D 58 2D 31 29 0D 20 20 20 20 20 | x (X=X-1). |
00001AB0: 4C 44 41 20 34 39 31 35 32 2C 58 20 3B 4C 4F 41 |LDA 49152,X ;LOA|
00001AC0: 44 20 46 52 4F 4D 20 31 53 54 20 51 55 41 52 54 |D FROM 1ST QUART|
00001AD0: 45 52 0D 20 20 20 20 20 53 54 41 20 31 30 32 34 |ER. STA 1024|
00001AE0: 2C 58 20 20 3B 53 54 4F 52 45 20 54 4F 20 31 53 |,X ;STORE TO 1S|
00001AF0: 54 20 51 55 41 52 54 45 52 0D 20 20 20 20 20 4C |T QUARTER. L|
00001B00: 44 41 20 34 39 34 30 32 2C 58 20 3B 4C 4F 41 44 |DA 49402,X ;LOAD|
00001B10: 20 46 52 4F 4D 20 32 4E 44 20 51 55 41 52 54 45 | FROM 2ND QUARTE|
00001B20: 52 0D 20 20 20 20 20 53 54 41 20 31 32 37 34 2C |R. STA 1274,|
00001B30: 58 20 20 3B 53 54 4F 52 45 20 54 4F 20 32 4E 44 |X ;STORE TO 2ND|
00001B40: 20 51 55 41 52 54 45 52 0D 20 20 20 20 20 4C 44 | QUARTER. LD|
00001B50: 41 20 34 39 36 35 32 2C 58 20 3B 4C 4F 41 44 20 |A 49652,X ;LOAD |
00001B60: 46 52 4F 4D 20 33 52 44 20 51 55 41 52 54 45 52 |FROM 3RD QUARTER|
00001B70: 0D 20 20 20 20 20 53 54 41 20 31 35 32 34 2C 58 |. STA 1524,X|
00001B80: 20 20 3B 53 54 4F 52 45 20 54 4F 20 33 52 44 20 | ;STORE TO 3RD |
00001B90: 51 55 41 52 54 45 52 0D 20 20 20 20 20 4C 44 41 |QUARTER. LDA|
00001BA0: 20 34 39 39 30 32 2C 58 20 3B 4C 4F 41 44 20 46 | 49902,X ;LOAD F|
00001BB0: 52 4F 4D 20 34 54 48 20 51 55 41 52 54 45 52 0D |ROM 4TH QUARTER.|
00001BC0: 20 20 20 20 20 53 54 41 20 31 37 37 34 2C 58 20 | STA 1774,X |
00001BD0: 20 3B 53 54 4F 52 45 20 54 4F 20 34 54 48 20 51 | ;STORE TO 4TH Q|
00001BE0: 55 41 52 54 45 52 0D 20 20 20 20 20 43 50 58 20 |UARTER. CPX |
00001BF0: 23 30 20 20 20 20 20 20 3B 0D 20 20 20 20 20 42 |#0 ;. B|
00001C00: 4E 45 20 4C 4F 4F 50 20 20 20 20 3B 49 46 20 58 |NE LOOP ;IF X|
00001C10: 3C 3E 30 20 47 4F 54 4F 20 4C 4F 4F 50 0D 0D 20 |<>0 GOTO LOOP.. |
00001C20: 20 62 45 43 41 55 53 45 20 54 48 45 20 78 20 52 | bECAUSE THE x R|
00001C30: 45 47 49 53 54 45 52 27 53 20 56 41 4C 55 45 20 |EGISTER'S VALUE |
00001C40: 43 41 4E 4E 4F 54 20 42 45 20 47 52 45 41 54 45 |CANNOT BE GREATE|
00001C50: 52 20 54 48 41 4E 20 32 35 35 20 28 24 46 46 29 |R THAN 255 ($FF)|
00001C60: 2C 20 54 48 45 20 56 49 44 45 4F 20 20 20 20 53 |, THE VIDEO S|
00001C70: 43 52 45 45 4E 20 49 53 20 43 4F 50 49 45 44 20 |CREEN IS COPIED |
00001C80: 49 4E 20 34 20 32 35 30 2D 42 59 54 45 20 51 55 |IN 4 250-BYTE QU|
00001C90: 41 52 54 45 52 53 2E 5E 0D 0D 20 22 69 4E 44 49 |ARTERS.^.. "iNDI|
00001CA0: 52 45 43 54 2C 79 22 20 6D 4F 44 45 3A 0D 0D 20 |RECT,y" mODE:.. |
00001CB0: 20 74 48 49 53 20 41 44 44 52 45 53 53 49 4E 47 | tHIS ADDRESSING|
00001CC0: 20 4D 4F 44 45 20 53 45 45 4D 53 20 50 45 43 55 | MODE SEEMS PECU|
00001CD0: 4C 49 41 52 2C 20 20 42 55 54 20 49 53 20 45 58 |LIAR, BUT IS EX|
00001CE0: 54 52 45 4D 45 4C 59 20 55 53 45 46 55 4C 2E 20 |TREMELY USEFUL. |
00001CF0: 69 54 20 49 53 20 53 49 4D 49 4C 41 52 20 20 54 |iT IS SIMILAR T|
00001D00: 4F 20 54 48 45 20 41 42 53 4F 4C 55 54 45 2C 79 |O THE ABSOLUTE,y|
00001D10: 20 41 44 44 52 45 53 53 49 4E 47 20 4D 4F 44 45 | ADDRESSING MODE|
00001D20: 2C 20 42 55 54 20 20 54 48 45 20 4E 55 4D 42 45 |, BUT THE NUMBE|
00001D30: 52 20 54 4F 20 57 48 49 43 48 20 54 48 45 20 79 |R TO WHICH THE y|
00001D40: 20 52 45 47 49 53 54 45 52 20 49 53 20 20 20 41 | REGISTER IS A|
00001D50: 44 44 45 44 2C 20 49 4E 53 54 45 41 44 20 4F 46 |DDED, INSTEAD OF|
00001D60: 20 42 45 49 4E 47 20 46 49 58 45 44 20 41 54 20 | BEING FIXED AT |
00001D70: 54 48 45 20 20 20 20 54 49 4D 45 20 4F 46 20 57 |THE TIME OF W|
00001D80: 52 49 54 49 4E 47 20 28 65 2E 47 2E 20 53 54 58 |RITING (e.G. STX|
00001D90: 20 24 34 30 30 2C 79 29 2C 20 49 53 20 20 20 54 | $400,y), IS T|
00001DA0: 41 4B 45 4E 20 46 52 4F 4D 20 41 20 5A 45 52 4F |AKEN FROM A ZERO|
00001DB0: 20 50 41 47 45 20 41 44 44 52 45 53 53 2C 20 57 | PAGE ADDRESS, W|
00001DC0: 48 49 43 48 20 49 53 53 50 45 43 49 46 49 45 44 |HICH ISSPECIFIED|
00001DD0: 20 49 4E 20 54 48 45 20 49 4E 53 54 52 55 43 54 | IN THE INSTRUCT|
00001DE0: 49 4F 4E 2E 0D 0D 20 20 62 45 43 41 55 53 45 20 |ION... bECAUSE |
00001DF0: 41 44 44 52 45 53 53 45 53 20 28 53 41 59 2C 20 |ADDRESSES (SAY, |
00001E00: 24 30 37 46 38 29 20 41 52 45 20 31 36 20 42 49 |$07F8) ARE 16 BI|
00001E10: 54 53 20 4C 4F 4E 47 20 41 4E 44 20 4F 4E 45 20 |TS LONG AND ONE |
00001E20: 4D 45 4D 4F 52 59 20 4C 4F 43 41 54 49 4F 4E 20 |MEMORY LOCATION |
00001E30: 43 41 4E 20 20 20 4F 4E 4C 59 20 48 4F 4C 44 20 |CAN ONLY HOLD |
00001E40: 38 20 42 49 54 53 2C 20 54 48 45 59 20 41 52 45 |8 BITS, THEY ARE|
00001E50: 20 53 54 4F 52 45 44 20 49 4E 20 74 77 6F 4D 45 | STORED IN twoME|
00001E60: 4D 4F 52 59 20 4C 4F 43 41 54 49 4F 4E 53 2E 20 |MORY LOCATIONS. |
00001E70: 74 48 45 20 4F 52 44 45 52 20 49 53 20 6E 6F 74 |tHE ORDER IS not|
00001E80: 20 24 30 37 20 20 54 48 45 4E 20 24 46 38 2C 20 | $07 THEN $F8, |
00001E90: 42 55 54 20 54 48 45 20 4F 54 48 45 52 20 57 41 |BUT THE OTHER WA|
00001EA0: 59 20 41 52 4F 55 4E 44 2E 20 74 48 45 20 5A 45 |Y AROUND. tHE ZE|
00001EB0: 52 4F 20 50 41 47 45 20 4C 4F 43 41 54 49 4F 4E |RO PAGE LOCATION|
00001EC0: 20 48 4F 4C 44 53 20 54 48 45 20 4C 41 53 54 20 | HOLDS THE LAST |
00001ED0: 48 41 4C 46 20 20 4F 46 20 54 48 45 20 53 45 43 |HALF OF THE SEC|
00001EE0: 4F 4E 44 20 53 54 41 47 45 20 41 44 44 52 45 53 |OND STAGE ADDRES|
00001EF0: 53 20 28 24 46 38 29 20 41 4E 44 20 20 20 54 48 |S ($F8) AND TH|
00001F00: 45 20 4E 45 58 54 20 4C 4F 43 41 54 49 4F 4E 20 |E NEXT LOCATION |
00001F10: 49 4E 20 5A 45 52 4F 20 50 41 47 45 20 28 4C 4F |IN ZERO PAGE (LO|
00001F20: 43 41 54 49 4F 4E 2B 31 29 20 48 4F 4C 44 53 20 |CATION+1) HOLDS |
00001F30: 54 48 45 20 46 49 52 53 54 20 48 41 4C 46 20 28 |THE FIRST HALF (|
00001F40: 24 30 37 29 2E 0D 0D 20 20 20 20 20 20 20 20 20 |$07)... |
00001F50: 20 28 6D 4F 52 45 20 4F 4E 20 4E 45 58 54 20 50 | (mORE ON NEXT P|
00001F60: 41 47 45 29 0D 5E 0D 0D 20 22 69 4E 44 49 52 45 |AGE).^.. "iNDIRE|
00001F70: 43 54 2C 79 22 20 6D 4F 44 45 3A 20 20 28 63 4F |CT,y" mODE: (cO|
00001F80: 4E 54 49 4E 55 45 44 29 0D 0D 20 20 74 48 45 20 |NTINUED).. tHE |
00001F90: 49 4E 44 49 52 45 43 54 2C 79 20 4D 4F 44 45 20 |INDIRECT,y MODE |
00001FA0: 49 53 20 57 52 49 54 54 45 4E 20 57 49 54 48 20 |IS WRITTEN WITH |
00001FB0: 20 20 54 48 45 20 5A 45 52 4F 20 50 41 47 45 20 | THE ZERO PAGE |
00001FC0: 41 44 44 52 45 53 53 20 45 4E 43 4C 4F 53 45 44 |ADDRESS ENCLOSED|
00001FD0: 20 49 4E 20 20 20 20 20 20 20 50 41 52 45 4E 54 | IN PARENT|
00001FE0: 48 45 53 45 53 20 41 4E 44 20 46 4F 4C 4C 4F 57 |HESES AND FOLLOW|
00001FF0: 45 44 20 42 59 20 22 2C 79 22 2E 0D 0D 65 2E 47 |ED BY ",y"...e.G|
00002000: 2E 20 6C 4F 43 41 54 49 4F 4E 20 24 30 32 20 43 |. lOCATION $02 C|
00002010: 4F 4E 54 41 49 4E 53 20 24 46 38 2E 20 20 20 20 |ONTAINS $F8. |
00002020: 20 20 20 20 20 20 20 20 20 20 6C 4F 43 41 54 49 | lOCATI|
00002030: 4F 4E 20 24 30 33 20 43 4F 4E 54 41 49 4E 53 20 |ON $03 CONTAINS |
00002040: 24 30 37 2E 20 20 20 20 20 20 20 20 20 20 20 20 |$07. |
00002050: 20 20 74 48 45 20 79 20 52 45 47 49 53 54 45 52 | tHE y REGISTER|
00002060: 20 43 4F 4E 54 41 49 4E 53 20 32 2E 0D 0D 20 20 | CONTAINS 2... |
00002070: 20 20 20 4C 44 41 28 24 30 32 29 2C 79 20 4C 4F | LDA($02),y LO|
00002080: 41 44 53 20 54 48 45 20 41 43 43 55 4D 55 4C 41 |ADS THE ACCUMULA|
00002090: 54 4F 52 20 20 20 20 20 20 20 20 20 20 20 20 20 |TOR |
000020A0: 20 20 20 20 20 20 46 52 4F 4D 20 54 48 45 20 41 | FROM THE A|
000020B0: 44 44 52 45 53 53 20 24 30 37 46 41 2C 20 20 20 |DDRESS $07FA, |
000020C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 49 | GI|
000020D0: 56 45 4E 20 42 59 20 54 48 45 20 53 55 4D 20 4F |VEN BY THE SUM O|
000020E0: 46 20 54 48 45 20 20 20 20 20 20 20 20 20 20 20 |F THE |
000020F0: 20 20 20 20 20 20 56 41 4C 55 45 20 49 4E 20 4C | VALUE IN L|
00002100: 4F 43 41 54 49 4F 4E 53 20 24 30 32 20 20 20 20 |OCATIONS $02 |
00002110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 4F | TO|
00002120: 20 24 30 33 20 28 24 30 37 46 38 29 20 41 4E 44 | $03 ($07F8) AND|
00002130: 20 54 48 45 20 79 20 20 20 20 20 20 20 20 20 20 | THE y |
00002140: 20 20 20 20 20 20 52 45 47 49 53 54 45 52 20 28 | REGISTER (|
00002150: 24 30 32 29 2E 0D 0D 20 20 74 48 45 20 49 4E 44 |$02)... tHE IND|
00002160: 49 52 45 43 54 2C 79 20 41 44 44 52 45 53 53 49 |IRECT,y ADDRESSI|
00002170: 4E 47 20 4D 4F 44 45 20 43 41 4E 4E 4F 54 20 42 |NG MODE CANNOT B|
00002180: 45 20 55 53 45 44 20 42 59 20 54 48 45 20 4C 44 |E USED BY THE LD|
00002190: 59 20 4F 52 20 53 54 59 20 49 4E 53 54 52 55 43 |Y OR STY INSTRUC|
000021A0: 54 49 4F 4E 53 2E 0D 0D 0D 20 20 20 20 20 20 20 |TIONS.... |
000021B0: 20 20 20 28 6D 4F 52 45 20 4F 4E 20 4E 45 58 54 | (mORE ON NEXT|
000021C0: 20 50 41 47 45 29 0D 5E 0D 0D 20 22 69 4E 44 49 | PAGE).^.. "iNDI|
000021D0: 52 45 43 54 2C 79 22 20 6D 4F 44 45 3A 20 20 28 |RECT,y" mODE: (|
000021E0: 63 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 20 69 4E |cONTINUED).. iN|
000021F0: 44 49 52 45 43 54 2C 79 20 4D 4F 44 45 20 49 4E |DIRECT,y MODE IN|
00002200: 53 54 52 55 43 54 49 4F 4E 53 20 41 52 45 20 32 |STRUCTIONS ARE 2|
00002210: 20 20 20 20 42 59 54 45 53 20 4C 4F 4E 47 20 41 | BYTES LONG A|
00002220: 4E 44 20 54 41 4B 45 20 35 65 2D 36 20 4F 52 20 |ND TAKE 5e-6 OR |
00002230: 36 65 2D 36 20 53 45 43 4F 4E 44 53 54 4F 20 45 |6e-6 SECONDSTO E|
00002240: 58 45 43 55 54 45 2C 20 44 45 50 45 4E 44 49 4E |XECUTE, DEPENDIN|
00002250: 47 20 4F 4E 20 54 48 45 20 56 41 4C 55 45 53 20 |G ON THE VALUES |
00002260: 4F 46 20 20 54 48 45 20 79 20 52 45 47 49 53 54 |OF THE y REGIST|
00002270: 45 52 20 41 4E 44 20 54 48 45 20 5A 45 52 4F 20 |ER AND THE ZERO |
00002280: 50 41 47 45 20 20 20 20 20 20 20 20 4C 4F 43 41 |PAGE LOCA|
00002290: 54 49 4F 4E 2E 0D 0D 20 20 74 48 49 53 20 4D 4F |TION... tHIS MO|
000022A0: 44 45 20 49 53 20 55 53 45 44 20 4C 49 4B 45 20 |DE IS USED LIKE |
000022B0: 54 48 45 20 41 42 53 4F 4C 55 54 45 2C 79 20 41 |THE ABSOLUTE,y A|
000022C0: 4E 44 20 2C 78 20 4D 4F 44 45 53 20 54 4F 20 4D |ND ,x MODES TO M|
000022D0: 4F 56 45 20 42 4C 4F 43 4B 53 20 4F 46 20 4D 45 |OVE BLOCKS OF ME|
000022E0: 4D 4F 52 59 20 20 20 41 42 4F 55 54 2C 20 42 55 |MORY ABOUT, BU|
000022F0: 54 20 54 48 45 20 41 52 45 41 53 20 41 46 46 45 |T THE AREAS AFFE|
00002300: 43 54 45 44 20 43 41 4E 20 42 45 20 20 20 20 43 |CTED CAN BE C|
00002310: 48 41 4E 47 45 44 20 42 59 20 50 55 54 54 49 4E |HANGED BY PUTTIN|
00002320: 47 20 4E 45 57 20 56 41 4C 55 45 53 20 49 4E 54 |G NEW VALUES INT|
00002330: 4F 20 54 48 45 20 20 5A 45 52 4F 20 50 41 47 45 |O THE ZERO PAGE|
00002340: 20 4C 4F 43 41 54 49 4F 4E 53 20 52 45 46 45 52 | LOCATIONS REFER|
00002350: 45 4E 43 45 44 2C 20 52 41 54 48 45 52 20 20 54 |ENCED, RATHER T|
00002360: 48 41 4E 20 52 45 57 52 49 54 49 4E 47 20 54 48 |HAN REWRITING TH|
00002370: 45 20 50 52 4F 47 52 41 4D 2E 0D 0D 2A 20 74 4F |E PROGRAM...* tO|
00002380: 20 52 45 50 45 41 54 3A 20 79 4F 55 20 47 49 56 | REPEAT: yOU GIV|
00002390: 45 20 54 48 45 20 63 70 75 20 41 20 5A 45 52 4F |E THE cpu A ZERO|
000023A0: 20 20 20 20 50 41 47 45 20 41 44 44 52 45 53 53 | PAGE ADDRESS|
000023B0: 2E 20 66 52 4F 4D 20 54 48 45 20 54 57 4F 20 42 |. fROM THE TWO B|
000023C0: 59 54 45 53 20 20 20 20 20 20 20 20 53 54 41 52 |YTES STAR|
000023D0: 54 49 4E 47 20 41 54 20 54 48 49 53 20 41 44 44 |TING AT THIS ADD|
000023E0: 52 45 53 53 2C 20 41 20 4E 55 4D 42 45 52 20 20 |RESS, A NUMBER |
000023F0: 20 20 20 20 49 53 20 46 45 54 43 48 45 44 20 41 | IS FETCHED A|
00002400: 4E 44 20 54 48 45 20 79 20 52 45 47 49 53 54 45 |ND THE y REGISTE|
00002410: 52 20 49 53 20 41 44 44 45 44 20 20 54 4F 20 49 |R IS ADDED TO I|
00002420: 54 2E 20 74 48 49 53 20 52 45 53 55 4C 54 41 4E |T. tHIS RESULTAN|
00002430: 54 20 4E 55 4D 42 45 52 20 49 53 20 54 48 45 20 |T NUMBER IS THE |
00002440: 20 20 20 20 41 44 44 52 45 53 53 20 4C 4F 41 44 | ADDRESS LOAD|
00002450: 45 44 20 46 52 4F 4D 20 4F 52 20 53 54 4F 52 45 |ED FROM OR STORE|
00002460: 44 20 54 4F 2E 0D 5E 0D 0D 20 22 69 4E 44 49 52 |D TO..^.. "iNDIR|
00002470: 45 43 54 2C 78 22 20 6D 4F 44 45 3A 0D 0D 20 20 |ECT,x" mODE:.. |
00002480: 74 48 45 20 4E 41 4D 45 20 49 53 20 44 45 43 45 |tHE NAME IS DECE|
00002490: 49 56 49 4E 47 2E 20 74 48 45 20 49 4E 44 49 52 |IVING. tHE INDIR|
000024A0: 45 43 54 2C 78 20 41 44 44 52 45 53 53 49 4E 47 |ECT,x ADDRESSING|
000024B0: 20 4D 4F 44 45 20 49 53 20 51 55 49 54 45 20 44 | MODE IS QUITE D|
000024C0: 49 46 46 45 52 45 4E 54 20 46 52 4F 4D 20 54 48 |IFFERENT FROM TH|
000024D0: 45 20 49 4E 44 49 52 45 43 54 2C 20 79 20 41 44 |E INDIRECT, y AD|
000024E0: 44 52 45 53 53 49 4E 47 20 4D 4F 44 45 2E 20 20 |DRESSING MODE. |
000024F0: 20 20 20 20 20 20 61 53 20 54 48 49 53 20 4D 4F | aS THIS MO|
00002500: 44 45 20 49 53 20 56 45 52 59 20 52 41 52 45 4C |DE IS VERY RAREL|
00002510: 59 20 55 53 45 44 2C 20 49 54 20 20 20 20 57 49 |Y USED, IT WI|
00002520: 4C 4C 20 42 45 20 43 4F 56 45 52 45 44 20 4F 4E |LL BE COVERED ON|
00002530: 4C 59 20 42 52 49 45 46 4C 59 2E 0D 0D 20 20 69 |LY BRIEFLY... i|
00002540: 4E 53 54 45 41 44 20 4F 46 20 46 45 54 43 48 49 |NSTEAD OF FETCHI|
00002550: 4E 47 20 41 4E 20 41 44 44 52 45 53 53 20 46 52 |NG AN ADDRESS FR|
00002560: 4F 4D 20 20 20 5A 45 52 4F 20 50 41 47 45 20 41 |OM ZERO PAGE A|
00002570: 4E 44 20 41 44 44 49 4E 47 20 41 20 52 45 47 49 |ND ADDING A REGI|
00002580: 53 54 45 52 20 54 4F 20 54 48 49 53 20 53 45 43 |STER TO THIS SEC|
00002590: 4F 4E 44 20 41 44 44 52 45 53 53 2C 20 49 4E 20 |OND ADDRESS, IN |
000025A0: 54 48 45 20 49 4E 44 49 52 45 43 54 2C 78 20 4D |THE INDIRECT,x M|
000025B0: 4F 44 45 20 20 54 48 45 20 78 20 52 45 47 49 53 |ODE THE x REGIS|
000025C0: 54 45 52 20 49 53 20 41 44 44 45 44 20 54 4F 20 |TER IS ADDED TO |
000025D0: 54 48 45 20 5A 45 52 4F 20 50 41 47 45 41 44 44 |THE ZERO PAGEADD|
000025E0: 52 45 53 53 20 42 45 46 4F 52 45 20 46 45 54 43 |RESS BEFORE FETC|
000025F0: 48 49 4E 47 2E 20 6E 4F 54 48 49 4E 47 20 49 53 |HING. nOTHING IS|
00002600: 20 20 20 20 20 44 4F 4E 45 20 54 4F 20 54 48 45 | DONE TO THE|
00002610: 20 4E 55 4D 42 45 52 20 46 45 54 43 48 45 44 2E | NUMBER FETCHED.|
00002620: 20 69 54 20 49 53 20 55 53 45 44 20 20 41 53 20 | iT IS USED AS |
00002630: 54 48 45 20 41 44 44 52 45 53 53 20 57 48 49 43 |THE ADDRESS WHIC|
00002640: 48 20 49 53 20 4C 4F 41 44 45 44 20 46 52 4F 4D |H IS LOADED FROM|
00002650: 20 4F 52 20 20 53 54 4F 52 45 44 20 54 4F 2E 0D | OR STORED TO..|
00002660: 0D 20 20 69 4E 44 49 52 45 43 54 2C 78 20 49 4E |. iNDIRECT,x IN|
00002670: 53 54 52 55 43 54 49 4F 4E 53 20 41 52 45 20 57 |STRUCTIONS ARE W|
00002680: 52 49 54 54 45 4E 20 20 20 49 4E 20 54 48 45 20 |RITTEN IN THE |
00002690: 46 4F 52 4D 20 22 53 54 41 28 24 46 42 2C 78 29 |FORM "STA($FB,x)|
000026A0: 22 20 57 49 54 48 20 54 48 45 20 22 2C 78 22 20 |" WITH THE ",x" |
000026B0: 20 49 4E 53 49 44 45 20 54 48 45 20 50 41 52 45 | INSIDE THE PARE|
000026C0: 4E 54 48 45 53 45 53 2C 20 54 41 4B 45 20 32 20 |NTHESES, TAKE 2 |
000026D0: 42 59 54 45 53 20 4F 46 20 4D 45 4D 4F 52 59 20 |BYTES OF MEMORY |
000026E0: 41 4E 44 20 54 41 4B 45 20 36 65 2D 36 20 53 45 |AND TAKE 6e-6 SE|
000026F0: 43 4F 4E 44 53 20 54 4F 20 45 58 45 43 55 54 45 |CONDS TO EXECUTE|
00002700: 2E 5E 0D 0D 20 20 20 20 20 61 20 6E 4F 54 45 20 |.^.. a nOTE |
00002710: 4F 4E 20 54 48 45 20 73 54 41 54 55 53 20 72 45 |ON THE sTATUS rE|
00002720: 47 49 53 54 45 52 0D 0D 20 20 74 48 45 20 50 52 |GISTER.. tHE PR|
00002730: 4F 43 45 53 53 4F 52 20 53 54 41 54 55 53 20 52 |OCESSOR STATUS R|
00002740: 45 47 49 53 54 45 52 2C 20 28 4F 52 20 22 70 20 |EGISTER, (OR "p |
00002750: 52 45 47 49 53 54 45 52 22 29 2C 20 49 53 20 41 |REGISTER"), IS A|
00002760: 4E 20 38 2D 42 49 54 20 52 45 47 49 53 54 45 52 |N 8-BIT REGISTER|
00002770: 20 57 48 4F 53 45 20 20 56 41 52 49 4F 55 53 20 | WHOSE VARIOUS |
00002780: 42 49 54 53 20 28 43 41 4C 4C 45 44 20 22 46 4C |BITS (CALLED "FL|
00002790: 41 47 53 22 29 20 4B 45 45 50 20 54 52 41 43 4B |AGS") KEEP TRACK|
000027A0: 4F 46 20 54 48 45 20 43 55 52 52 45 4E 54 20 53 |OF THE CURRENT S|
000027B0: 54 41 54 45 20 4F 46 20 54 48 45 20 63 70 75 20 |TATE OF THE cpu |
000027C0: 41 4E 44 20 54 48 45 20 43 4F 4E 54 45 4E 54 53 |AND THE CONTENTS|
000027D0: 20 4F 46 20 49 54 53 20 52 45 47 49 53 54 45 52 | OF ITS REGISTER|
000027E0: 53 2E 0D 0D 20 20 76 41 52 49 4F 55 53 20 49 4E |S... vARIOUS IN|
000027F0: 53 54 52 55 43 54 49 4F 4E 53 20 53 45 54 20 54 |STRUCTIONS SET T|
00002800: 48 45 20 42 49 54 53 20 49 4E 20 20 44 49 46 46 |HE BITS IN DIFF|
00002810: 45 52 45 4E 54 20 57 41 59 53 2E 20 74 48 45 20 |ERENT WAYS. tHE |
00002820: 53 54 4F 52 45 20 49 4E 53 54 52 55 43 54 49 4F |STORE INSTRUCTIO|
00002830: 4E 53 20 20 44 4F 20 4E 4F 54 20 41 46 46 45 43 |NS DO NOT AFFEC|
00002840: 54 20 41 4E 59 20 42 49 54 53 2E 20 74 48 45 20 |T ANY BITS. tHE |
00002850: 4F 54 48 45 52 20 20 20 20 20 20 20 4E 55 4D 42 |OTHER NUMB|
00002860: 45 52 2D 4D 4F 56 49 4E 47 20 49 4E 53 54 52 55 |ER-MOVING INSTRU|
00002870: 43 54 49 4F 4E 53 20 43 4F 56 45 52 45 44 20 53 |CTIONS COVERED S|
00002880: 4F 20 20 20 46 41 52 20 41 4C 4C 20 41 46 46 45 |O FAR ALL AFFE|
00002890: 43 54 20 54 48 45 20 22 6E 22 20 42 49 54 2C 20 |CT THE "n" BIT, |
000028A0: 53 45 54 54 49 4E 47 20 49 54 20 20 54 4F 20 31 |SETTING IT TO 1|
000028B0: 20 49 46 20 54 48 45 20 4E 55 4D 42 45 52 20 42 | IF THE NUMBER B|
000028C0: 45 49 4E 47 20 4D 4F 56 45 44 20 49 53 20 20 20 |EING MOVED IS |
000028D0: 20 20 20 20 4E 45 47 41 54 49 56 45 20 28 4D 4F | NEGATIVE (MO|
000028E0: 52 45 20 4F 4E 20 54 48 49 53 20 4C 41 54 45 52 |RE ON THIS LATER|
000028F0: 29 2C 20 41 4E 44 20 54 48 45 20 20 22 7A 22 20 |), AND THE "z" |
00002900: 42 49 54 2C 20 53 45 54 54 49 4E 47 20 49 54 20 |BIT, SETTING IT |
00002910: 49 46 20 54 48 45 20 4E 55 4D 42 45 52 20 49 53 |IF THE NUMBER IS|
00002920: 20 20 20 20 5A 45 52 4F 2E 20 77 48 49 4C 45 20 | ZERO. wHILE |
00002930: 49 54 20 49 53 20 56 45 52 59 20 49 4D 50 4F 52 |IT IS VERY IMPOR|
00002940: 54 41 4E 54 20 54 4F 20 4B 4E 4F 57 48 4F 57 20 |TANT TO KNOWHOW |
00002950: 56 41 52 49 4F 55 53 20 49 4E 53 54 52 55 43 54 |VARIOUS INSTRUCT|
00002960: 49 4F 4E 53 20 53 45 54 20 54 48 45 20 46 4C 41 |IONS SET THE FLA|
00002970: 47 53 2C 20 54 48 45 20 45 46 46 45 43 54 53 20 |GS, THE EFFECTS |
00002980: 4F 46 20 4D 4F 53 54 20 49 4E 53 54 52 55 43 54 |OF MOST INSTRUCT|
00002990: 49 4F 4E 53 20 46 4F 4C 4C 4F 57 20 43 4F 4D 4D |IONS FOLLOW COMM|
000029A0: 4F 4E 53 45 4E 53 45 20 52 55 4C 45 53 2E 0D 0D |ONSENSE RULES...|
000029B0: 20 20 20 20 20 20 20 20 20 20 28 6D 4F 52 45 20 | (mORE |
000029C0: 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 0D 5E 0D |ON NEXT PAGE).^.|
000029D0: 0D 20 20 20 20 20 61 20 6C 49 53 54 20 4F 46 20 |. a lIST OF |
000029E0: 54 48 45 20 73 54 41 54 55 53 20 66 4C 41 47 53 |THE sTATUS fLAGS|
000029F0: 0D 0D 63 4F 4C 55 4D 4E 20 20 6E 41 4D 45 0D 20 |..cOLUMN nAME. |
00002A00: 20 20 20 73 59 4D 42 4F 4C 20 20 20 20 20 20 20 | sYMBOL |
00002A10: 66 55 4E 43 54 49 4F 4E 0D 20 20 31 29 20 63 20 |fUNCTION. 1) c |
00002A20: 63 41 52 52 59 20 46 4C 41 47 2D 54 48 49 53 20 |cARRY FLAG-THIS |
00002A30: 42 49 54 20 43 4F 4E 54 41 49 4E 53 20 54 48 45 |BIT CONTAINS THE|
00002A40: 20 20 20 20 20 20 30 20 4F 52 20 31 20 43 41 52 | 0 OR 1 CAR|
00002A50: 52 49 45 44 20 46 52 4F 4D 20 54 48 45 20 4C 45 |RIED FROM THE LE|
00002A60: 46 54 4D 4F 53 54 20 20 20 20 20 20 20 20 43 4F |FTMOST CO|
00002A70: 4C 55 4D 4E 20 4F 46 20 41 20 42 49 4E 41 52 59 |LUMN OF A BINARY|
00002A80: 20 41 44 44 49 54 49 4F 4E 20 54 4F 20 54 48 45 | ADDITION TO THE|
00002A90: 20 20 20 20 20 20 4E 4F 4E 2D 45 58 49 53 54 45 | NON-EXISTE|
00002AA0: 4E 54 20 4E 45 58 54 20 4F 4E 45 2E 20 61 4C 53 |NT NEXT ONE. aLS|
00002AB0: 4F 2C 20 53 45 54 20 20 20 20 20 20 20 20 4D 45 |O, SET ME|
00002AC0: 41 4E 53 20 22 4E 4F 20 42 4F 52 52 4F 57 22 20 |ANS "NO BORROW" |
00002AD0: 49 4E 20 41 20 53 55 42 54 52 41 43 54 49 4F 4E |IN A SUBTRACTION|
00002AE0: 2E 20 20 32 29 20 7A 20 7A 45 52 4F 20 46 4C 41 |. 2) z zERO FLA|
00002AF0: 47 2D 49 53 20 53 45 54 20 57 48 45 4E 20 54 48 |G-IS SET WHEN TH|
00002B00: 45 20 4E 55 4D 42 45 52 20 20 20 20 20 20 55 4E |E NUMBER UN|
00002B10: 44 45 52 20 43 4F 4E 53 49 44 45 52 41 54 49 4F |DER CONSIDERATIO|
00002B20: 4E 20 49 53 20 5A 45 52 4F 2E 0D 20 20 34 29 20 |N IS ZERO.. 4) |
00002B30: 69 20 69 4E 54 45 52 52 55 50 54 20 46 4C 41 47 |i iNTERRUPT FLAG|
00002B40: 2D 55 53 45 44 20 49 4E 20 41 44 56 41 4E 43 45 |-USED IN ADVANCE|
00002B50: 44 20 20 20 20 20 20 20 46 55 4E 43 54 49 4F 4E |D FUNCTION|
00002B60: 53 2C 20 54 48 49 53 20 42 49 54 20 53 48 4F 55 |S, THIS BIT SHOU|
00002B70: 4C 44 20 41 4C 57 41 59 53 20 20 20 20 20 20 20 |LD ALWAYS |
00002B80: 42 45 20 4B 45 50 54 20 43 4C 45 41 52 20 28 30 |BE KEPT CLEAR (0|
00002B90: 29 20 49 4E 20 59 4F 55 52 20 50 52 4F 47 52 41 |) IN YOUR PROGRA|
00002BA0: 4D 53 2E 20 20 38 29 20 64 20 64 45 43 49 4D 41 |MS. 8) d dECIMA|
00002BB0: 4C 20 46 4C 41 47 2D 43 41 55 53 45 53 20 41 44 |L FLAG-CAUSES AD|
00002BC0: 44 49 54 49 4F 4E 20 20 20 20 20 20 20 20 20 20 |DITION |
00002BD0: 41 4E 44 20 53 55 42 54 52 41 43 54 49 4F 4E 20 |AND SUBTRACTION |
00002BE0: 49 4E 53 54 52 55 43 54 49 4F 4E 53 20 54 4F 20 |INSTRUCTIONS TO |
00002BF0: 41 43 54 20 20 20 20 20 41 53 20 49 46 20 24 30 |ACT AS IF $0|
00002C00: 39 2B 24 30 31 3D 24 31 30 2E 20 69 54 20 4C 4F |9+$01=$10. iT LO|
00002C10: 4F 4B 53 20 4C 49 4B 45 20 20 20 20 20 20 20 20 |OKS LIKE |
00002C20: 44 45 43 49 4D 41 4C 2C 20 42 55 54 20 49 53 20 |DECIMAL, BUT IS |
00002C30: 53 54 4F 52 45 44 20 41 53 20 48 45 58 2E 20 6B |STORED AS HEX. k|
00002C40: 45 45 50 20 20 20 20 20 43 4C 45 41 52 45 44 20 |EEP CLEARED |
00002C50: 28 30 29 20 55 4E 54 49 4C 20 59 4F 55 27 52 45 |(0) UNTIL YOU'RE|
00002C60: 20 53 55 52 45 20 59 4F 55 20 20 20 20 20 20 20 | SURE YOU |
00002C70: 4B 4E 4F 57 20 57 48 41 54 20 59 4F 55 27 52 45 |KNOW WHAT YOU'RE|
00002C80: 20 44 4F 49 4E 47 2E 0D 0D 20 20 20 20 20 20 20 | DOING... |
00002C90: 20 20 20 28 6D 4F 52 45 20 4F 4E 20 4E 45 58 54 | (mORE ON NEXT|
00002CA0: 20 50 41 47 45 29 0D 5E 0D 0D 20 20 61 20 6C 49 | PAGE).^.. a lI|
00002CB0: 53 54 20 4F 46 20 54 48 45 20 73 54 41 54 55 53 |ST OF THE sTATUS|
00002CC0: 20 66 4C 41 47 53 20 28 63 4F 4E 54 49 4E 55 45 | fLAGS (cONTINUE|
00002CD0: 44 29 0D 63 4F 4C 55 4D 4E 20 20 6E 41 4D 45 0D |D).cOLUMN nAME.|
00002CE0: 20 20 20 73 59 4D 42 4F 4C 20 20 20 20 20 20 20 | sYMBOL |
00002CF0: 20 20 20 66 55 4E 43 54 49 4F 4E 0D 0D 20 31 36 | fUNCTION.. 16|
00002D00: 29 20 62 20 62 52 45 41 4B 20 46 4C 41 47 2D 55 |) b bREAK FLAG-U|
00002D10: 53 45 44 20 49 4E 20 41 44 56 41 4E 43 45 44 20 |SED IN ADVANCED |
00002D20: 20 20 20 20 20 20 20 20 20 20 46 55 4E 43 54 49 | FUNCTI|
00002D30: 4F 4E 53 2C 20 54 48 49 53 20 42 49 54 20 49 53 |ONS, THIS BIT IS|
00002D40: 20 53 45 54 20 57 48 45 4E 20 20 20 20 20 20 20 | SET WHEN |
00002D50: 20 20 41 20 42 52 45 41 4B 20 49 4E 53 54 52 55 | A BREAK INSTRU|
00002D60: 43 54 49 4F 4E 20 48 41 53 20 48 41 4C 54 45 44 |CTION HAS HALTED|
00002D70: 20 41 20 20 20 20 20 20 20 20 50 52 4F 47 52 41 | A PROGRA|
00002D80: 4D 2E 0D 20 33 32 29 20 31 20 75 4E 55 53 45 44 |M.. 32) 1 uNUSED|
00002D90: 20 46 4C 41 47 2D 54 48 49 53 20 42 49 54 20 49 | FLAG-THIS BIT I|
00002DA0: 53 20 41 4C 57 41 59 53 20 20 20 20 20 20 20 20 |S ALWAYS |
00002DB0: 53 45 54 20 54 4F 20 4F 4E 45 2C 20 41 4E 44 20 |SET TO ONE, AND |
00002DC0: 43 41 4E 4E 4F 54 20 42 45 20 43 4C 45 41 52 45 |CANNOT BE CLEARE|
00002DD0: 44 2E 0D 20 36 34 29 20 76 20 6F 56 45 52 46 4C |D.. 64) v oVERFL|
00002DE0: 4F 57 20 46 4C 41 47 2D 54 48 49 53 20 42 49 54 |OW FLAG-THIS BIT|
00002DF0: 20 49 53 20 54 48 45 20 20 20 20 20 20 20 20 20 | IS THE |
00002E00: 45 51 55 49 56 41 4C 45 4E 54 20 4F 46 20 54 48 |EQUIVALENT OF TH|
00002E10: 45 20 43 41 52 52 59 20 46 4C 41 47 20 46 4F 52 |E CARRY FLAG FOR|
00002E20: 20 20 20 20 20 20 20 20 54 48 45 20 41 44 44 49 | THE ADDI|
00002E30: 54 49 4F 4E 20 4F 46 20 53 49 47 4E 45 44 20 28 |TION OF SIGNED (|
00002E40: 50 4C 55 53 20 41 4E 44 20 20 20 20 20 20 20 20 |PLUS AND |
00002E50: 4D 49 4E 55 53 29 20 4E 55 4D 42 45 52 53 2E 20 |MINUS) NUMBERS. |
00002E60: 64 45 54 41 49 4C 53 20 4C 41 54 45 52 2E 0D 31 |dETAILS LATER..1|
00002E70: 32 38 29 20 6E 20 6E 45 47 41 54 49 56 45 20 46 |28) n nEGATIVE F|
00002E80: 4C 41 47 2D 49 53 20 53 45 54 20 57 48 45 4E 20 |LAG-IS SET WHEN |
00002E90: 54 48 45 20 20 20 20 20 20 20 20 20 4E 55 4D 42 |THE NUMB|
00002EA0: 45 52 20 55 4E 44 45 52 20 43 4F 4E 53 49 44 45 |ER UNDER CONSIDE|
00002EB0: 52 41 54 49 4F 4E 20 49 53 20 20 20 20 20 20 20 |RATION IS |
00002EC0: 20 20 20 20 4E 45 47 41 54 49 56 45 2E 20 6D 4F | NEGATIVE. mO|
00002ED0: 52 45 20 4F 4E 20 54 48 49 53 20 53 48 4F 52 54 |RE ON THIS SHORT|
00002EE0: 4C 59 2E 0D 0D 20 20 6F 4E 4C 59 20 54 48 45 20 |LY... oNLY THE |
00002EF0: 46 4C 41 47 53 27 20 45 58 49 53 54 45 4E 43 45 |FLAGS' EXISTENCE|
00002F00: 20 49 53 20 49 4D 50 4F 52 54 41 4E 54 54 4F 20 | IS IMPORTANTTO |
00002F10: 52 45 4D 45 4D 42 45 52 20 46 4F 52 20 54 48 45 |REMEMBER FOR THE|
00002F20: 20 54 49 4D 45 20 42 45 49 4E 47 2E 0D 5E 0D 0D | TIME BEING..^..|
00002F30: 20 20 20 20 20 20 20 61 52 49 54 48 4D 45 54 49 | aRITHMETI|
00002F40: 43 20 69 4E 53 54 52 55 43 54 49 4F 4E 53 0D 0D |C iNSTRUCTIONS..|
00002F50: 20 20 74 48 45 20 4E 45 58 54 20 53 45 54 20 4F | tHE NEXT SET O|
00002F60: 46 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 20 44 |F INSTRUCTIONS D|
00002F70: 4F 45 53 20 57 48 41 54 43 4F 4D 50 55 54 45 52 |OES WHATCOMPUTER|
00002F80: 53 20 41 52 45 20 53 55 50 50 4F 53 45 44 20 54 |S ARE SUPPOSED T|
00002F90: 4F 20 44 4F 3A 20 41 44 44 49 54 49 4F 4E 20 20 |O DO: ADDITION |
00002FA0: 41 4E 44 20 53 55 42 54 52 41 43 54 49 4F 4E 2E |AND SUBTRACTION.|
00002FB0: 20 74 48 45 20 49 4E 53 54 52 55 43 54 49 4F 4E | tHE INSTRUCTION|
00002FC0: 53 20 41 52 45 20 20 20 41 53 20 46 4F 4C 4C 4F |S ARE AS FOLLO|
00002FD0: 57 53 3A 0D 0D 41 44 43 20 20 20 22 61 64 44 20 |WS:..ADC "adD |
00002FE0: 57 49 54 48 20 63 41 52 52 59 22 0D 53 42 43 20 |WITH cARRY".SBC |
00002FF0: 20 20 22 73 55 62 54 52 41 43 54 20 57 49 54 48 | "sUbTRACT WITH|
00003000: 20 63 41 52 52 59 22 0D 0D 20 20 74 48 45 53 45 | cARRY".. tHESE|
00003010: 20 54 57 4F 20 49 4E 53 54 52 55 43 54 49 4F 4E | TWO INSTRUCTION|
00003020: 53 20 41 52 45 20 53 4F 4D 45 57 48 41 54 20 20 |S ARE SOMEWHAT |
00003030: 20 53 49 4D 49 4C 41 52 20 54 4F 20 4C 44 41 20 | SIMILAR TO LDA |
00003040: 49 4E 20 54 48 41 54 20 54 48 45 59 20 43 41 4E |IN THAT THEY CAN|
00003050: 20 55 53 45 20 41 4C 4C 20 54 48 45 20 53 41 4D | USE ALL THE SAM|
00003060: 45 20 41 44 44 52 45 53 53 49 4E 47 20 4D 4F 44 |E ADDRESSING MOD|
00003070: 45 53 2C 20 54 41 4B 45 20 41 53 20 4D 55 43 48 |ES, TAKE AS MUCH|
00003080: 20 54 49 4D 45 20 41 4E 44 20 53 50 41 43 45 2C | TIME AND SPACE,|
00003090: 20 41 4E 44 20 55 53 45 20 54 48 45 20 41 43 43 | AND USE THE ACC|
000030A0: 55 4D 55 4C 41 54 4F 52 3B 42 55 54 20 49 4E 53 |UMULATOR;BUT INS|
000030B0: 54 45 41 44 20 4F 46 20 4C 4F 41 44 49 4E 47 20 |TEAD OF LOADING |
000030C0: 41 20 4E 55 4D 42 45 52 20 49 4E 54 4F 20 54 48 |A NUMBER INTO TH|
000030D0: 45 41 43 43 55 4D 55 4C 41 54 4F 52 2C 20 54 48 |EACCUMULATOR, TH|
000030E0: 45 59 20 41 44 44 20 49 54 20 54 4F 20 4F 52 20 |EY ADD IT TO OR |
000030F0: 53 55 42 54 52 41 43 54 20 49 54 20 46 52 4F 4D |SUBTRACT IT FROM|
00003100: 20 54 48 45 20 4E 55 4D 42 45 52 20 41 4C 52 45 | THE NUMBER ALRE|
00003110: 41 44 59 20 54 48 45 52 45 2E 0D 0D 2A 20 64 4F |ADY THERE...* dO|
00003120: 4E 27 54 20 46 4F 52 47 45 54 20 54 48 41 54 20 |N'T FORGET THAT |
00003130: 53 42 43 20 53 55 42 54 52 41 43 54 53 20 66 72 |SBC SUBTRACTS fr|
00003140: 6F 6D 20 20 54 48 45 20 4E 55 4D 42 45 52 20 41 |om THE NUMBER A|
00003150: 4C 52 45 41 44 59 20 49 4E 20 54 48 45 20 41 43 |LREADY IN THE AC|
00003160: 43 55 4D 55 4C 41 54 4F 52 2E 0D 0D 20 20 20 20 |CUMULATOR... |
00003170: 20 20 20 20 20 20 28 6D 4F 52 45 20 4F 4E 20 4E | (mORE ON N|
00003180: 45 58 54 20 50 41 47 45 29 0D 5E 0D 0D 20 20 61 |EXT PAGE).^.. a|
00003190: 52 49 54 48 4D 45 54 49 43 20 69 4E 53 54 52 55 |RITHMETIC iNSTRU|
000031A0: 43 54 49 4F 4E 53 20 28 63 4F 4E 54 49 4E 55 45 |CTIONS (cONTINUE|
000031B0: 44 29 0D 0D 20 20 62 55 54 20 53 41 59 20 59 4F |D).. bUT SAY YO|
000031C0: 55 20 57 41 4E 54 20 54 4F 20 41 44 44 20 54 57 |U WANT TO ADD TW|
000031D0: 4F 20 4E 55 4D 42 45 52 53 20 20 20 4C 41 52 47 |O NUMBERS LARG|
000031E0: 45 52 20 54 48 41 4E 20 4F 4E 45 20 42 59 54 45 |ER THAN ONE BYTE|
000031F0: 2C 20 54 48 45 20 4C 49 4D 49 54 20 4F 46 20 54 |, THE LIMIT OF T|
00003200: 48 45 20 20 41 43 43 55 4D 55 4C 41 54 4F 52 2E |HE ACCUMULATOR.|
00003210: 20 77 48 41 54 20 54 48 45 4E 3F 20 74 4F 20 4B | wHAT THEN? tO K|
00003220: 45 45 50 20 54 52 41 43 4B 20 4F 46 43 41 52 52 |EEP TRACK OFCARR|
00003230: 49 45 53 20 44 4F 4E 45 20 46 52 4F 4D 20 4F 4E |IES DONE FROM ON|
00003240: 45 20 42 59 54 45 20 49 4E 54 4F 20 41 4E 4F 54 |E BYTE INTO ANOT|
00003250: 48 45 52 2C 54 48 45 20 36 35 31 30 20 48 41 53 |HER,THE 6510 HAS|
00003260: 20 41 20 43 41 52 52 59 20 46 4C 41 47 2C 20 57 | A CARRY FLAG, W|
00003270: 48 49 43 48 20 48 4F 4C 44 53 20 20 54 48 45 20 |HICH HOLDS THE |
00003280: 30 20 4F 52 20 31 20 54 4F 20 42 45 20 43 41 52 |0 OR 1 TO BE CAR|
00003290: 52 49 45 44 2E 20 74 48 45 20 41 44 43 20 41 44 |RIED. tHE ADC AD|
000032A0: 44 53 20 20 54 48 45 20 43 41 52 52 59 20 46 4C |DS THE CARRY FL|
000032B0: 41 47 27 53 20 56 41 4C 55 45 20 49 4E 54 4F 20 |AG'S VALUE INTO |
000032C0: 54 48 45 20 52 49 47 48 54 20 20 20 43 4F 4C 55 |THE RIGHT COLU|
000032D0: 4D 4E 20 4F 46 20 54 48 45 20 41 44 44 49 54 49 |MN OF THE ADDITI|
000032E0: 4F 4E 20 49 54 27 53 20 50 45 52 46 4F 52 4D 49 |ON IT'S PERFORMI|
000032F0: 4E 47 2E 20 73 4F 20 49 46 20 57 45 20 57 41 4E |NG. sO IF WE WAN|
00003300: 54 20 54 4F 20 41 44 44 20 54 57 4F 20 31 36 2D |T TO ADD TWO 16-|
00003310: 42 49 54 20 4E 55 4D 42 45 52 53 2C 48 45 52 45 |BIT NUMBERS,HERE|
00003320: 27 53 20 54 48 45 20 50 52 4F 43 45 44 55 52 45 |'S THE PROCEDURE|
00003330: 3A 0D 0D 4C 44 41 20 5B 41 44 44 52 45 53 53 3A |:..LDA [ADDRESS:|
00003340: 4C 41 53 54 20 38 20 42 49 54 53 20 4F 46 20 53 |LAST 8 BITS OF S|
00003350: 4F 55 52 43 45 20 31 5D 0D 41 44 43 20 5B 41 44 |OURCE 1].ADC [AD|
00003360: 44 52 45 53 53 3A 4C 41 53 54 20 38 20 42 49 54 |DRESS:LAST 8 BIT|
00003370: 53 20 4F 46 20 53 4F 55 52 43 45 20 32 5D 0D 53 |S OF SOURCE 2].S|
00003380: 54 41 20 5B 41 44 44 52 45 53 53 3A 4C 41 53 54 |TA [ADDRESS:LAST|
00003390: 20 38 20 42 49 54 53 20 4F 46 20 44 45 53 54 49 | 8 BITS OF DESTI|
000033A0: 4E 41 54 49 4F 4E 5D 20 3B 20 69 46 20 53 4F 55 |NATION] ; iF SOU|
000033B0: 52 43 45 20 31 2B 53 4F 55 52 43 45 20 32 3E 24 |RCE 1+SOURCE 2>$|
000033C0: 46 46 20 54 48 45 4E 20 63 3D 31 0D 4C 44 41 20 |FF THEN c=1.LDA |
000033D0: 5B 41 44 44 52 45 53 53 3A 46 49 52 53 54 20 38 |[ADDRESS:FIRST 8|
000033E0: 20 42 49 54 53 20 4F 46 20 53 4F 55 52 43 45 20 | BITS OF SOURCE |
000033F0: 31 5D 0D 41 44 43 20 5B 41 44 44 52 45 53 53 3A |1].ADC [ADDRESS:|
00003400: 46 49 52 53 54 20 38 20 42 49 54 53 20 4F 46 20 |FIRST 8 BITS OF |
00003410: 53 4F 55 52 43 45 20 32 5D 0D 53 54 41 20 5B 41 |SOURCE 2].STA [A|
00003420: 44 44 52 45 53 53 3A 46 49 52 53 54 20 38 20 42 |DDRESS:FIRST 8 B|
00003430: 49 54 53 20 4F 46 20 44 45 53 54 2E 5D 0D 0D 20 |ITS OF DEST.].. |
00003440: 20 20 20 20 20 20 20 20 20 28 6D 4F 52 45 20 4F | (mORE O|
00003450: 4E 20 4E 45 58 54 20 50 41 47 45 29 0D 5E 0D 0D |N NEXT PAGE).^..|
00003460: 20 20 61 52 49 54 48 4D 45 54 49 43 20 69 4E 53 | aRITHMETIC iNS|
00003470: 54 52 55 43 54 49 4F 4E 53 20 28 63 4F 4E 54 49 |TRUCTIONS (cONTI|
00003480: 4E 55 45 44 29 0D 0D 20 20 65 58 41 4D 50 4C 45 |NUED).. eXAMPLE|
00003490: 3A 20 20 20 20 20 20 20 20 20 20 20 63 41 52 52 |: cARR|
000034A0: 59 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |Y. |
000034B0: 20 20 20 20 20 20 20 20 46 4C 41 47 0D 69 4E 54 | FLAG.iNT|
000034C0: 45 52 4E 41 4C 20 20 20 20 20 20 20 20 20 20 20 |ERNAL |
000034D0: 31 20 3C 3C 3C 3C 3C 20 31 0D 63 41 52 52 49 45 |1 <<<<< 1.cARRIE|
000034E0: 53 3A 20 20 20 20 20 20 20 20 20 31 31 20 20 20 |S: 11 |
000034F0: 20 20 20 20 20 20 20 31 20 20 20 20 31 0D 73 4F | 1 1.sO|
00003500: 55 52 43 45 20 31 20 20 20 25 30 31 31 30 30 31 |URCE 1 %011001|
00003510: 31 31 20 20 20 20 20 20 20 20 20 31 31 30 30 30 |11 11000|
00003520: 31 31 30 20 20 20 73 4F 55 52 43 45 20 32 20 2B |110 sOURCE 2 +|
00003530: 20 25 31 30 30 30 30 31 31 30 20 20 20 20 20 20 | %10000110 |
00003540: 20 20 20 31 31 31 30 30 30 31 31 20 20 20 20 20 | 11100011 |
00003550: 20 20 20 20 20 20 20 20 20 2D 2D 2D 2D 2D 2D 2D | -------|
00003560: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00003570: 2D 2D 2D 20 20 20 20 20 20 20 20 20 20 20 20 20 |--- |
00003580: 20 25 31 31 31 30 31 31 31 30 20 20 20 20 20 20 | %11101110 |
00003590: 28 31 29 31 30 31 30 31 30 30 31 0D 0D 20 20 20 |(1)10101001.. |
000035A0: 20 20 20 20 20 20 20 20 20 73 54 45 50 20 32 20 | sTEP 2 |
000035B0: 20 20 20 20 20 20 20 20 20 20 73 54 45 50 20 31 | sTEP 1|
000035C0: 0D 0D 20 20 74 48 45 20 52 49 47 48 54 2D 48 41 |.. tHE RIGHT-HA|
000035D0: 4E 44 20 41 44 44 49 54 49 4F 4E 20 28 57 48 49 |ND ADDITION (WHI|
000035E0: 43 48 20 49 53 20 20 20 20 20 50 45 52 46 4F 52 |CH IS PERFOR|
000035F0: 4D 45 44 20 46 49 52 53 54 29 20 48 41 53 20 41 |MED FIRST) HAS A|
00003600: 20 43 41 52 52 59 20 46 52 4F 4D 20 54 48 45 20 | CARRY FROM THE |
00003610: 20 20 31 32 38 27 53 20 43 4F 4C 55 4D 4E 20 49 | 128'S COLUMN I|
00003620: 4E 54 4F 20 54 48 45 20 32 35 36 27 53 20 43 4F |NTO THE 256'S CO|
00003630: 4C 55 4D 4E 2C 20 20 20 20 20 57 48 49 43 48 20 |LUMN, WHICH |
00003640: 55 4E 46 4F 52 54 55 4E 41 54 45 4C 59 20 44 4F |UNFORTUNATELY DO|
00003650: 45 53 4E 27 54 20 45 58 49 53 54 2E 20 73 4F 20 |ESN'T EXIST. sO |
00003660: 20 20 54 48 45 20 42 49 54 20 49 53 20 50 55 54 | THE BIT IS PUT|
00003670: 20 49 4E 54 4F 20 54 48 45 20 43 41 52 52 59 20 | INTO THE CARRY |
00003680: 46 4C 41 47 2C 20 41 4E 44 20 41 44 44 45 44 20 |FLAG, AND ADDED |
00003690: 49 4E 54 4F 20 54 48 45 20 4E 45 58 54 20 41 44 |INTO THE NEXT AD|
000036A0: 44 49 54 49 4F 4E 2E 20 69 46 20 54 48 45 20 20 |DITION. iF THE |
000036B0: 20 20 53 45 43 4F 4E 44 20 41 44 44 49 54 49 4F | SECOND ADDITIO|
000036C0: 4E 20 52 45 51 55 49 52 45 44 20 41 20 43 41 52 |N REQUIRED A CAR|
000036D0: 52 59 2C 20 49 54 20 20 20 20 57 4F 55 4C 44 20 |RY, IT WOULD |
000036E0: 42 45 20 50 55 54 20 49 4E 54 4F 20 54 48 45 20 |BE PUT INTO THE |
000036F0: 43 41 52 52 59 20 46 4C 41 47 20 49 4E 20 20 20 |CARRY FLAG IN |
00003700: 20 20 54 55 52 4E 2E 20 61 53 20 49 53 2C 20 30 | TURN. aS IS, 0|
00003710: 20 49 53 20 50 55 54 20 54 48 45 52 45 2E 0D 5E | IS PUT THERE..^|
00003720: 0D 0D 20 20 61 52 49 54 48 4D 45 54 49 43 20 69 |.. aRITHMETIC i|
00003730: 4E 53 54 52 55 43 54 49 4F 4E 53 20 28 63 4F 4E |NSTRUCTIONS (cON|
00003740: 54 49 4E 55 45 44 29 0D 0D 2A 20 69 46 20 54 48 |TINUED)..* iF TH|
00003750: 45 20 63 20 46 4C 41 47 20 49 53 20 53 45 54 20 |E c FLAG IS SET |
00003760: 42 45 46 4F 52 45 20 54 48 45 20 46 49 52 53 54 |BEFORE THE FIRST|
00003770: 20 41 44 44 49 54 49 4F 4E 2C 20 54 48 45 20 41 | ADDITION, THE A|
00003780: 44 43 20 57 49 4C 4C 20 41 44 44 20 31 20 54 4F |DC WILL ADD 1 TO|
00003790: 20 54 48 45 20 53 55 4D 20 2D 20 41 20 4D 49 53 | THE SUM - A MIS|
000037A0: 54 41 4B 45 2E 20 79 4F 55 20 4D 55 53 54 20 47 |TAKE. yOU MUST G|
000037B0: 55 41 52 41 4E 54 45 45 20 54 48 45 20 20 20 20 |UARANTEE THE |
000037C0: 20 43 41 52 52 59 20 49 53 20 5A 45 52 4F 20 42 | CARRY IS ZERO B|
000037D0: 59 20 41 44 44 49 4E 47 20 41 20 43 4C 43 20 28 |Y ADDING A CLC (|
000037E0: 63 6C 45 41 52 20 20 20 20 63 41 52 52 59 29 20 |clEAR cARRY) |
000037F0: 49 4E 53 54 52 55 43 54 49 4F 4E 20 54 4F 20 54 |INSTRUCTION TO T|
00003800: 48 45 20 42 45 47 49 4E 4E 49 4E 47 20 4F 46 20 |HE BEGINNING OF |
00003810: 20 54 48 45 20 52 4F 55 54 49 4E 45 2E 20 74 48 | THE ROUTINE. tH|
00003820: 49 53 20 49 53 20 41 20 31 2D 42 59 54 45 20 20 |IS IS A 1-BYTE |
00003830: 20 20 20 20 20 20 20 20 20 49 4E 53 54 52 55 43 | INSTRUC|
00003840: 54 49 4F 4E 20 54 48 41 54 20 54 41 4B 45 53 20 |TION THAT TAKES |
00003850: 32 65 2D 36 20 53 45 43 4F 4E 44 53 20 54 4F 0D |2e-6 SECONDS TO.|
00003860: 45 58 45 43 55 54 45 2E 0D 0D 20 20 69 46 20 59 |EXECUTE... iF Y|
00003870: 4F 55 20 50 52 45 46 45 52 2C 20 54 48 45 20 43 |OU PREFER, THE C|
00003880: 41 52 52 59 20 46 4C 41 47 20 43 41 4E 20 42 45 |ARRY FLAG CAN BE|
00003890: 20 20 54 48 4F 55 47 48 54 20 4F 46 20 41 53 20 | THOUGHT OF AS |
000038A0: 41 4E 20 45 58 54 52 41 20 32 35 36 27 53 20 43 |AN EXTRA 256'S C|
000038B0: 4F 4C 55 4D 4E 20 49 4E 20 20 54 48 45 20 41 44 |OLUMN IN THE AD|
000038C0: 44 49 54 49 4F 4E 20 50 52 4F 43 45 53 53 2E 20 |DITION PROCESS. |
000038D0: 0D 0D 20 20 74 48 45 20 43 41 52 52 59 20 46 4C |.. tHE CARRY FL|
000038E0: 41 47 20 49 53 20 55 53 45 44 20 54 57 49 43 45 |AG IS USED TWICE|
000038F0: 20 49 4E 20 41 4E 59 20 20 20 38 20 42 49 54 20 | IN ANY 8 BIT |
00003900: 41 44 44 49 54 49 4F 4E 2E 20 66 49 52 53 54 20 |ADDITION. fIRST |
00003910: 54 4F 20 48 4F 4C 44 20 54 48 45 20 4E 55 4D 42 |TO HOLD THE NUMB|
00003920: 45 52 54 4F 20 42 45 20 43 41 52 52 49 45 44 20 |ERTO BE CARRIED |
00003930: 49 4E 54 4F 20 54 48 45 20 41 44 44 49 54 49 4F |INTO THE ADDITIO|
00003940: 4E 20 41 4E 44 20 54 48 45 4E 54 4F 20 48 4F 4C |N AND THENTO HOL|
00003950: 44 20 54 48 45 20 4E 55 4D 42 45 52 20 54 4F 20 |D THE NUMBER TO |
00003960: 42 45 20 43 41 52 52 49 45 44 20 4F 55 54 2E 0D |BE CARRIED OUT..|
00003970: 0D 20 20 20 20 20 20 20 20 20 20 28 6D 4F 52 45 |. (mORE|
00003980: 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 0D 5E | ON NEXT PAGE).^|
00003990: 0D 0D 20 20 61 52 49 54 48 4D 45 54 49 43 20 69 |.. aRITHMETIC i|
000039A0: 4E 53 54 52 55 43 54 49 4F 4E 53 20 28 63 4F 4E |NSTRUCTIONS (cON|
000039B0: 54 49 4E 55 45 44 29 0D 0D BA 20 73 42 43 20 55 |TINUED)... sBC U|
000039C0: 53 45 53 20 54 48 45 20 43 41 52 52 59 20 46 4C |SES THE CARRY FL|
000039D0: 41 47 20 53 49 4D 49 4C 41 52 4C 59 2C 20 42 55 |AG SIMILARLY, BU|
000039E0: 54 54 48 45 20 46 4C 41 47 20 49 53 20 53 45 54 |TTHE FLAG IS SET|
000039F0: 20 54 4F 20 30 20 57 48 45 4E 20 41 20 22 42 4F | TO 0 WHEN A "BO|
00003A00: 52 52 4F 57 22 20 49 53 20 44 4F 4E 45 20 46 52 |RROW" IS DONE FR|
00003A10: 4F 4D 20 54 48 45 20 4E 4F 4E 2D 45 58 49 53 54 |OM THE NON-EXIST|
00003A20: 45 4E 54 20 32 35 36 27 53 20 43 4F 4C 55 4D 4E |ENT 256'S COLUMN|
00003A30: 2C 41 4E 44 20 31 20 4F 54 48 45 52 57 49 53 45 |,AND 1 OTHERWISE|
00003A40: 2E 20 73 42 43 20 41 4C 53 4F 20 53 55 42 54 52 |. sBC ALSO SUBTR|
00003A50: 41 43 54 53 20 4F 4E 45 20 46 52 4F 4D 20 54 48 |ACTS ONE FROM TH|
00003A60: 45 20 52 45 53 55 4C 54 20 49 54 20 49 53 20 43 |E RESULT IT IS C|
00003A70: 4F 4D 50 55 54 49 4E 47 20 49 46 20 54 48 45 20 |OMPUTING IF THE |
00003A80: 20 43 41 52 52 59 20 57 41 53 20 43 4C 45 41 52 | CARRY WAS CLEAR|
00003A90: 20 42 45 46 4F 52 45 20 54 48 45 20 49 4E 53 54 | BEFORE THE INST|
00003AA0: 52 55 43 54 49 4F 4E 2C 20 49 4E 44 49 43 41 54 |RUCTION, INDICAT|
00003AB0: 49 4E 47 20 41 20 42 4F 52 52 4F 57 20 46 52 4F |ING A BORROW FRO|
00003AC0: 4D 20 54 48 45 20 42 59 54 45 20 42 45 49 4E 47 |M THE BYTE BEING|
00003AD0: 20 43 4F 4D 50 55 54 45 44 2E 20 74 4F 20 41 53 | COMPUTED. tO AS|
00003AE0: 53 55 52 45 20 54 48 45 20 46 49 52 53 54 20 53 |SURE THE FIRST S|
00003AF0: 42 43 20 20 20 20 20 20 20 44 4F 45 53 4E 27 54 |BC DOESN'T|
00003B00: 20 44 4F 20 54 48 49 53 20 57 48 45 4E 20 59 4F | DO THIS WHEN YO|
00003B10: 55 20 44 4F 4E 27 54 20 57 41 4E 54 20 49 54 20 |U DON'T WANT IT |
00003B20: 20 54 4F 2C 20 41 4C 57 41 59 53 20 55 53 45 20 | TO, ALWAYS USE |
00003B30: 53 45 43 20 28 73 65 54 20 63 41 52 52 59 29 20 |SEC (seT cARRY) |
00003B40: 42 45 46 4F 52 45 20 41 20 53 55 42 54 52 41 43 |BEFORE A SUBTRAC|
00003B50: 54 49 4F 4E 20 4F 50 45 52 41 54 49 4F 4E 2E 0D |TION OPERATION..|
00003B60: 0D 20 20 61 54 20 54 48 49 53 20 50 4F 49 4E 54 |. aT THIS POINT|
00003B70: 20 49 54 20 49 53 20 50 52 55 44 45 4E 54 20 54 | IT IS PRUDENT T|
00003B80: 4F 20 44 49 53 43 55 53 53 41 20 50 4F 49 4E 54 |O DISCUSSA POINT|
00003B90: 20 4D 45 4E 54 49 4F 4E 45 44 20 50 52 45 56 49 | MENTIONED PREVI|
00003BA0: 4F 55 53 4C 59 20 4F 4E 4C 59 20 49 4E 20 20 20 |OUSLY ONLY IN |
00003BB0: 20 50 41 53 53 49 4E 47 3A 20 4E 45 47 41 54 49 | PASSING: NEGATI|
00003BC0: 56 45 20 4E 55 4D 42 45 52 53 2E 20 61 53 20 54 |VE NUMBERS. aS T|
00003BD0: 48 45 52 45 20 49 53 20 20 4E 4F 20 53 55 43 48 |HERE IS NO SUCH|
00003BE0: 20 54 48 49 4E 47 20 41 53 20 41 20 4D 49 4E 55 | THING AS A MINU|
00003BF0: 53 20 53 49 47 4E 20 49 4E 20 41 20 42 59 54 45 |S SIGN IN A BYTE|
00003C00: 2C 59 4F 55 20 48 41 56 45 20 54 4F 20 4C 45 54 |,YOU HAVE TO LET|
00003C10: 20 53 4F 4D 45 20 50 4F 53 49 54 49 56 45 20 4E | SOME POSITIVE N|
00003C20: 55 4D 42 45 52 53 20 20 20 53 54 41 4E 44 20 46 |UMBERS STAND F|
00003C30: 4F 52 20 4E 45 47 41 54 49 56 45 20 4F 4E 45 53 |OR NEGATIVE ONES|
00003C40: 2E 0D 0D 20 20 20 20 20 20 20 20 20 20 28 6D 4F |... (mO|
00003C50: 52 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 |RE ON NEXT PAGE)|
00003C60: 0D 5E 0D 0D 20 20 61 52 49 54 48 4D 45 54 49 43 |.^.. aRITHMETIC|
00003C70: 20 69 4E 53 54 52 55 43 54 49 4F 4E 53 20 28 63 | iNSTRUCTIONS (c|
00003C80: 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 20 74 48 49 |ONTINUED).. tHI|
00003C90: 53 20 49 53 4E 27 54 20 52 45 41 4C 4C 59 20 54 |S ISN'T REALLY T|
00003CA0: 48 41 54 20 48 41 52 44 2E 20 69 46 20 59 4F 55 |HAT HARD. iF YOU|
00003CB0: 20 20 20 52 45 57 49 4E 44 20 41 20 54 41 50 45 | REWIND A TAPE|
00003CC0: 20 59 4F 55 20 53 4F 4D 45 54 49 4D 45 53 20 53 | YOU SOMETIMES S|
00003CD0: 45 45 20 54 48 45 20 20 20 20 20 43 4F 55 4E 54 |EE THE COUNT|
00003CE0: 45 52 20 47 4F 49 4E 47 20 2E 2E 2E 30 30 32 2C |ER GOING ...002,|
00003CF0: 30 30 31 2C 30 30 30 2C 39 39 39 2C 39 39 38 2E |001,000,999,998.|
00003D00: 2E 2E 2E 69 4E 20 54 48 49 53 20 53 59 53 54 45 |...iN THIS SYSTE|
00003D10: 4D 2C 20 39 39 39 20 72 65 61 6C 6C 79 20 4D 45 |M, 999 really ME|
00003D20: 41 4E 53 20 2D 31 20 28 4F 4E 45 54 55 52 4E 20 |ANS -1 (ONETURN |
00003D30: 42 45 46 4F 52 45 20 30 30 30 29 2E 20 77 48 45 |BEFORE 000). wHE|
00003D40: 4E 20 50 52 4F 47 52 41 4D 4D 49 4E 47 20 54 48 |N PROGRAMMING TH|
00003D50: 45 20 20 36 35 31 30 2C 20 54 48 45 20 53 41 4D |E 6510, THE SAM|
00003D60: 45 20 53 59 53 54 45 4D 20 49 53 20 55 53 45 44 |E SYSTEM IS USED|
00003D70: 20 49 46 20 59 4F 55 20 20 20 20 4E 45 45 44 20 | IF YOU NEED |
00003D80: 54 4F 20 55 53 45 20 4E 45 47 41 54 49 56 45 20 |TO USE NEGATIVE |
00003D90: 4E 55 4D 42 45 52 53 2E 20 32 35 35 20 28 4F 52 |NUMBERS. 255 (OR|
00003DA0: 20 20 20 24 46 46 20 4F 52 20 25 31 31 31 31 31 | $FF OR %11111|
00003DB0: 31 31 31 29 20 72 65 61 6C 6C 79 20 4D 45 41 4E |111) really MEAN|
00003DC0: 53 20 2D 31 2E 20 20 32 35 34 20 28 24 46 45 29 |S -1. 254 ($FE)|
00003DD0: 20 72 65 61 6C 6C 79 20 4D 45 41 4E 53 20 2D 32 | really MEANS -2|
00003DE0: 2C 20 20 32 35 33 20 28 24 46 44 29 20 72 65 61 |, 253 ($FD) rea|
00003DF0: 6C 6C 79 4D 45 41 4E 53 20 2D 33 2C 20 45 54 43 |llyMEANS -3, ETC|
00003E00: 2E 0D 0D 20 20 79 4F 55 20 44 4F 2C 20 48 4F 57 |... yOU DO, HOW|
00003E10: 45 56 45 52 2C 20 48 41 56 45 20 54 4F 20 52 45 |EVER, HAVE TO RE|
00003E20: 4D 45 4D 42 45 52 20 49 46 20 20 54 48 45 20 4E |MEMBER IF THE N|
00003E30: 55 4D 42 45 52 20 59 4F 55 27 52 45 20 57 4F 52 |UMBER YOU'RE WOR|
00003E40: 4B 49 4E 47 20 57 49 54 48 20 49 53 20 4F 4E 45 |KING WITH IS ONE|
00003E50: 20 20 20 54 48 41 54 20 55 53 45 53 20 54 48 45 | THAT USES THE|
00003E60: 20 52 45 47 55 4C 41 52 20 4E 55 4D 42 45 52 20 | REGULAR NUMBER |
00003E70: 53 59 53 54 45 4D 20 28 30 2D 20 32 35 35 29 20 |SYSTEM (0- 255) |
00003E80: 4F 52 20 49 46 20 49 54 20 55 53 45 53 20 54 48 |OR IF IT USES TH|
00003E90: 45 20 53 49 47 4E 45 44 20 4E 55 4D 42 45 52 20 |E SIGNED NUMBER |
00003EA0: 20 20 20 53 59 53 54 45 4D 2C 20 43 41 4C 4C 45 | SYSTEM, CALLE|
00003EB0: 44 20 22 54 57 4F 53 20 43 4F 4D 50 4C 45 4D 45 |D "TWOS COMPLEME|
00003EC0: 4E 54 22 2C 20 41 4E 44 20 20 20 32 35 35 20 72 |NT", AND 255 r|
00003ED0: 65 61 6C 6C 79 20 4D 45 41 4E 53 20 2D 31 2C 20 |eally MEANS -1, |
00003EE0: 45 54 43 2E 0D 0D 20 20 20 20 28 6D 4F 52 45 20 |ETC... (mORE |
00003EF0: 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 0D 5E 0D |ON NEXT PAGE).^.|
00003F00: 0D 20 20 61 52 49 54 48 4D 45 54 49 43 20 69 4E |. aRITHMETIC iN|
00003F10: 53 54 52 55 43 54 49 4F 4E 53 20 28 63 4F 4E 54 |STRUCTIONS (cONT|
00003F20: 49 4E 55 45 44 29 0D 0D 20 20 74 4F 20 53 45 45 |INUED).. tO SEE|
00003F30: 20 54 48 45 20 55 53 45 46 55 4C 4E 45 53 53 20 | THE USEFULNESS |
00003F40: 4F 46 20 54 48 49 53 20 4D 45 54 48 4F 44 2C 20 |OF THIS METHOD, |
00003F50: 43 4F 4E 53 49 44 45 52 20 41 44 44 49 4E 47 20 |CONSIDER ADDING |
00003F60: 31 20 54 4F 20 54 48 45 20 4F 4E 45 2D 42 59 54 |1 TO THE ONE-BYT|
00003F70: 45 20 56 41 4C 55 45 20 2D 31 20 28 24 46 46 29 |E VALUE -1 ($FF)|
00003F80: 20 55 53 49 4E 47 20 41 44 43 2E 20 74 48 49 53 | USING ADC. tHIS|
00003F90: 20 4C 45 41 56 45 53 20 24 30 30 20 49 4E 20 20 | LEAVES $00 IN |
00003FA0: 54 48 45 20 41 43 43 55 4D 55 4C 41 54 4F 52 2C |THE ACCUMULATOR,|
00003FB0: 20 54 48 45 20 41 4E 53 57 45 52 20 59 4F 55 20 | THE ANSWER YOU |
00003FC0: 57 41 4E 54 2E 20 69 54 41 4C 53 4F 20 4C 45 41 |WANT. iTALSO LEA|
00003FD0: 56 45 53 20 54 48 45 20 43 41 52 52 59 20 46 4C |VES THE CARRY FL|
00003FE0: 41 47 20 53 45 54 2C 20 57 48 49 43 48 20 20 20 |AG SET, WHICH |
00003FF0: 59 4F 55 20 4D 55 53 54 20 49 47 4E 4F 52 45 2E |YOU MUST IGNORE.|
00004000: 20 74 48 45 20 36 35 31 30 20 44 4F 45 53 4E 27 | tHE 6510 DOESN'|
00004010: 54 20 4B 4E 4F 57 20 20 49 46 20 54 48 45 20 4E |T KNOW IF THE N|
00004020: 55 4D 42 45 52 53 20 59 4F 55 20 41 52 45 20 41 |UMBERS YOU ARE A|
00004030: 44 44 49 4E 47 20 41 52 45 20 53 49 47 4E 45 44 |DDING ARE SIGNED|
00004040: 4F 52 20 4E 4F 54 2E 20 74 48 41 54 27 53 20 54 |OR NOT. tHAT'S T|
00004050: 48 45 20 50 52 4F 47 52 41 4D 4D 45 52 27 53 20 |HE PROGRAMMER'S |
00004060: 4A 4F 42 2E 20 69 54 20 4A 55 53 54 20 53 45 54 |JOB. iT JUST SET|
00004070: 53 20 54 48 45 20 43 41 52 52 59 20 46 4C 41 47 |S THE CARRY FLAG|
00004080: 20 42 45 43 41 55 53 45 20 20 20 20 20 20 20 20 | BECAUSE |
00004090: 55 4E 53 49 47 4E 45 44 20 4E 55 4D 42 45 52 53 |UNSIGNED NUMBERS|
000040A0: 20 57 4F 55 4C 44 20 4E 45 45 44 20 54 48 45 20 | WOULD NEED THE |
000040B0: 46 4C 41 47 2E 0D 0D 20 20 69 46 20 59 4F 55 20 |FLAG... iF YOU |
000040C0: 57 41 4E 54 20 54 4F 20 4B 4E 4F 57 20 49 46 20 |WANT TO KNOW IF |
000040D0: 54 48 45 20 52 45 53 55 4C 54 20 4F 46 20 41 53 |THE RESULT OF AS|
000040E0: 49 47 4E 45 44 20 41 44 44 49 54 49 4F 4E 20 4F |IGNED ADDITION O|
000040F0: 52 20 53 55 42 54 52 41 43 54 49 4F 4E 20 49 53 |R SUBTRACTION IS|
00004100: 20 4F 55 54 20 4F 46 52 41 4E 47 45 2C 20 59 4F | OUT OFRANGE, YO|
00004110: 55 20 4D 55 53 54 20 4C 4F 4F 4B 20 41 54 20 54 |U MUST LOOK AT T|
00004120: 48 45 20 76 20 46 4C 41 47 2C 20 20 20 20 20 57 |HE v FLAG, W|
00004130: 48 49 43 48 20 54 48 45 20 36 35 31 30 20 53 45 |HICH THE 6510 SE|
00004140: 54 53 20 49 46 20 54 48 49 53 20 49 53 20 54 48 |TS IF THIS IS TH|
00004150: 45 20 43 41 53 45 2E 61 47 41 49 4E 2C 20 49 54 |E CASE.aGAIN, IT|
00004160: 20 44 4F 45 53 4E 27 54 20 4B 4E 4F 57 20 49 46 | DOESN'T KNOW IF|
00004170: 20 54 48 45 20 4E 55 4D 42 45 52 53 20 20 20 52 | THE NUMBERS R|
00004180: 45 41 4C 4C 59 20 41 52 45 20 53 49 47 4E 45 44 |EALLY ARE SIGNED|
00004190: 2C 20 53 4F 20 49 46 20 54 48 45 59 20 41 52 45 |, SO IF THEY ARE|
000041A0: 4E 27 54 2C 20 20 20 59 4F 55 20 4D 55 53 54 20 |N'T, YOU MUST |
000041B0: 52 45 4D 45 4D 42 45 52 20 54 4F 20 49 47 4E 4F |REMEMBER TO IGNO|
000041C0: 52 45 20 54 48 49 53 20 46 4C 41 47 2E 0D 0D 20 |RE THIS FLAG... |
000041D0: 20 20 20 20 20 20 20 20 20 28 6D 4F 52 45 20 4F | (mORE O|
000041E0: 4E 20 4E 45 58 54 20 50 41 47 45 29 0D 5E 0D 0D |N NEXT PAGE).^..|
000041F0: 20 20 61 52 49 54 48 4D 45 54 49 43 20 69 4E 53 | aRITHMETIC iNS|
00004200: 54 52 55 43 54 49 4F 4E 53 20 28 63 4F 4E 54 49 |TRUCTIONS (cONTI|
00004210: 4E 55 45 44 29 0D 0D 20 20 73 4F 2E 2E 2E 54 48 |NUED).. sO...TH|
00004220: 45 20 36 35 31 30 20 53 45 54 53 20 54 48 45 20 |E 6510 SETS THE |
00004230: 43 41 52 52 59 20 46 4C 41 47 20 41 53 20 20 49 |CARRY FLAG AS I|
00004240: 46 20 59 4F 55 20 41 52 45 20 55 53 49 4E 47 20 |F YOU ARE USING |
00004250: 55 4E 53 49 47 4E 45 44 20 4E 55 4D 42 45 52 53 |UNSIGNED NUMBERS|
00004260: 2E 20 20 20 20 20 20 61 54 20 54 48 45 20 53 41 |. aT THE SA|
00004270: 4D 45 20 54 49 4D 45 2C 20 49 54 20 53 45 54 53 |ME TIME, IT SETS|
00004280: 20 54 48 45 20 4F 56 45 52 46 4C 4F 57 20 20 28 | THE OVERFLOW (|
00004290: 76 29 20 46 4C 41 47 20 41 53 20 49 46 20 59 4F |v) FLAG AS IF YO|
000042A0: 55 20 41 52 45 20 55 53 49 4E 47 20 53 49 47 4E |U ARE USING SIGN|
000042B0: 45 44 20 20 20 20 20 4E 55 4D 42 45 52 53 2E 20 |ED NUMBERS. |
000042C0: 69 54 27 53 20 59 4F 55 52 20 4A 4F 42 20 54 4F |iT'S YOUR JOB TO|
000042D0: 20 4C 4F 4F 4B 20 41 54 20 54 48 45 20 20 20 52 | LOOK AT THE R|
000042E0: 49 47 48 54 20 46 4C 41 47 20 49 4E 20 41 20 47 |IGHT FLAG IN A G|
000042F0: 49 56 45 4E 20 53 49 54 55 41 54 49 4F 4E 2E 0D |IVEN SITUATION..|
00004300: 0D 20 20 61 43 54 55 41 4C 4C 59 2C 20 54 48 49 |. aCTUALLY, THI|
00004310: 53 20 4A 4F 42 20 4F 46 20 59 4F 55 52 53 20 49 |S JOB OF YOURS I|
00004320: 53 4E 27 54 20 56 45 52 59 48 41 52 44 2E 20 74 |SN'T VERYHARD. t|
00004330: 48 49 4E 4B 20 4F 46 20 48 4F 57 20 45 41 53 59 |HINK OF HOW EASY|
00004340: 20 49 54 20 49 53 20 54 4F 20 20 20 20 20 20 20 | IT IS TO |
00004350: 20 52 45 4D 45 4D 42 45 52 20 49 46 20 41 20 47 | REMEMBER IF A G|
00004360: 49 56 45 4E 20 62 41 53 49 43 20 56 41 52 49 41 |IVEN bASIC VARIA|
00004370: 42 4C 45 20 49 53 20 41 20 53 54 52 49 4E 47 20 |BLE IS A STRING |
00004380: 4F 52 20 41 20 4E 55 4D 45 52 49 43 41 4C 20 56 |OR A NUMERICAL V|
00004390: 41 52 49 41 42 4C 45 2E 20 0D 0D 20 20 6F 4E 45 |ARIABLE. .. oNE|
000043A0: 20 4C 41 53 54 20 50 52 4F 42 4C 45 4D 3A 20 77 | LAST PROBLEM: w|
000043B0: 48 41 54 20 48 41 50 50 45 4E 53 20 57 48 45 4E |HAT HAPPENS WHEN|
000043C0: 20 20 20 54 48 45 20 50 4F 53 49 54 49 56 45 20 | THE POSITIVE |
000043D0: 4E 55 4D 42 45 52 53 2C 20 47 4F 49 4E 47 20 55 |NUMBERS, GOING U|
000043E0: 50 20 46 52 4F 4D 20 30 2C 20 20 4D 45 45 54 20 |P FROM 0, MEET |
000043F0: 54 48 45 20 4E 45 47 41 54 49 56 45 53 2C 20 47 |THE NEGATIVES, G|
00004400: 4F 49 4E 47 20 44 4F 57 4E 20 46 52 4F 4D 20 32 |OING DOWN FROM 2|
00004410: 35 35 3F 74 48 45 20 50 4C 41 43 45 20 57 48 45 |55?tHE PLACE WHE|
00004420: 52 45 20 54 48 49 53 20 48 41 50 50 45 4E 53 20 |RE THIS HAPPENS |
00004430: 49 53 20 42 45 54 57 45 45 4E 20 31 32 37 20 41 |IS BETWEEN 127 A|
00004440: 4E 44 20 31 32 38 20 28 57 48 49 43 48 20 72 65 |ND 128 (WHICH re|
00004450: 61 6C 6C 79 20 4D 45 41 4E 53 20 2D 31 32 38 29 |ally MEANS -128)|
00004460: 2E 0D 0D 20 20 20 20 20 20 20 20 20 20 28 6D 4F |... (mO|
00004470: 52 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 |RE ON NEXT PAGE)|
00004480: 0D 5E 0D 0D 20 20 61 52 49 54 48 4D 45 54 49 43 |.^.. aRITHMETIC|
00004490: 20 69 4E 53 54 52 55 43 54 49 4F 4E 53 20 28 63 | iNSTRUCTIONS (c|
000044A0: 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 20 74 48 45 |ONTINUED).. tHE|
000044B0: 20 52 45 41 53 4F 4E 20 46 4F 52 20 54 48 49 53 | REASON FOR THIS|
000044C0: 20 43 48 4F 49 43 45 20 49 53 20 54 48 41 54 20 | CHOICE IS THAT |
000044D0: 31 32 37 49 53 20 25 30 31 31 31 31 31 31 31 20 |127IS %01111111 |
000044E0: 49 4E 20 42 49 4E 41 52 59 2C 20 41 4E 44 20 31 |IN BINARY, AND 1|
000044F0: 32 38 20 28 72 65 61 6C 6C 79 20 2D 31 32 38 29 |28 (really -128)|
00004500: 20 49 53 20 25 31 30 30 30 30 30 30 30 2E 20 74 | IS %10000000. t|
00004510: 48 55 53 2C 20 41 4C 4C 20 54 48 45 20 20 20 20 |HUS, ALL THE |
00004520: 20 20 20 4E 45 47 41 54 49 56 45 20 4E 55 4D 42 | NEGATIVE NUMB|
00004530: 45 52 53 20 28 24 38 30 20 41 4E 44 20 55 50 29 |ERS ($80 AND UP)|
00004540: 20 48 41 56 45 20 54 48 45 20 20 42 49 54 20 49 | HAVE THE BIT I|
00004550: 4E 20 54 48 45 20 31 32 38 27 53 20 43 4F 4C 55 |N THE 128'S COLU|
00004560: 4D 4E 20 53 45 54 2C 20 57 48 49 4C 45 20 41 4C |MN SET, WHILE AL|
00004570: 4C 20 20 54 48 45 20 50 4F 53 49 54 49 56 45 53 |L THE POSITIVES|
00004580: 20 41 4E 44 20 5A 45 52 4F 20 28 24 37 46 20 41 | AND ZERO ($7F A|
00004590: 4E 44 20 44 4F 57 4E 29 20 20 20 48 41 56 45 20 |ND DOWN) HAVE |
000045A0: 49 54 20 43 4C 45 41 52 20 2D 20 41 20 53 49 4D |IT CLEAR - A SIM|
000045B0: 50 4C 45 20 44 49 53 54 49 4E 43 54 49 4F 4E 2E |PLE DISTINCTION.|
000045C0: 0D 0D 20 20 74 48 45 20 36 35 31 30 20 53 45 54 |.. tHE 6510 SET|
000045D0: 53 20 54 48 45 20 6E 20 28 6E 45 47 41 54 49 56 |S THE n (nEGATIV|
000045E0: 45 29 20 46 4C 41 47 20 20 20 44 45 50 45 4E 44 |E) FLAG DEPEND|
000045F0: 49 4E 47 20 4F 4E 20 54 48 49 53 20 42 49 54 2C |ING ON THIS BIT,|
00004600: 20 54 4F 20 4D 41 4B 45 20 54 45 4C 4C 49 4E 47 | TO MAKE TELLING|
00004610: 20 20 54 48 45 20 44 49 46 46 45 52 45 4E 43 45 | THE DIFFERENCE|
00004620: 20 42 45 54 57 45 45 4E 20 50 4F 53 49 54 49 56 | BETWEEN POSITIV|
00004630: 45 20 41 4E 44 20 20 20 20 20 4E 45 47 41 54 49 |E AND NEGATI|
00004640: 56 45 20 4E 55 4D 42 45 52 53 20 45 41 53 49 45 |VE NUMBERS EASIE|
00004650: 52 2E 0D 0D 20 20 69 4E 20 41 20 53 49 4D 49 4C |R... iN A SIMIL|
00004660: 41 52 20 57 41 59 2C 20 54 57 4F 2D 42 59 54 45 |AR WAY, TWO-BYTE|
00004670: 20 53 49 47 4E 45 44 20 20 20 20 20 4E 55 4D 42 | SIGNED NUMB|
00004680: 45 52 53 20 52 41 4E 47 45 20 46 52 4F 4D 20 25 |ERS RANGE FROM %|
00004690: 31 30 30 30 30 30 30 30 20 30 30 30 30 30 30 30 |10000000 0000000|
000046A0: 30 20 20 20 4F 52 20 24 38 30 30 30 20 28 2D 33 |0 OR $8000 (-3|
000046B0: 32 37 36 38 29 20 54 4F 20 25 30 31 31 31 31 31 |2768) TO %011111|
000046C0: 31 31 20 31 31 31 31 31 31 31 31 20 4F 52 20 24 |11 11111111 OR $|
000046D0: 37 46 46 46 20 28 33 32 37 36 37 29 2C 20 57 49 |7FFF (32767), WI|
000046E0: 54 48 20 54 48 45 20 4C 45 46 54 4D 4F 53 54 20 |TH THE LEFTMOST |
000046F0: 42 49 54 20 54 45 4C 4C 49 4E 47 20 54 48 45 20 |BIT TELLING THE |
00004700: 44 49 46 46 45 52 45 4E 43 45 20 42 45 54 57 45 |DIFFERENCE BETWE|
00004710: 45 4E 20 53 49 47 4E 53 2E 20 20 20 5E 0D 0D 20 |EN SIGNS. ^.. |
00004720: 20 20 20 20 20 63 4F 4E 44 49 54 49 4F 4E 41 4C | cONDITIONAL|
00004730: 20 62 52 41 4E 43 48 45 53 3A 0D 0D 20 20 69 4E | bRANCHES:.. iN|
00004740: 20 62 41 53 49 43 2C 20 41 20 43 4F 4E 44 49 54 | bASIC, A CONDIT|
00004750: 49 4F 4E 41 4C 20 42 52 41 4E 43 48 20 49 53 20 |IONAL BRANCH IS |
00004760: 4F 46 20 20 54 48 45 20 46 4F 52 4D 20 22 49 46 |OF THE FORM "IF|
00004770: 20 58 3D 30 20 54 48 45 4E 20 58 3D 58 2B 31 22 | X=0 THEN X=X+1"|
00004780: 2E 20 69 46 20 58 3C 3E 30 20 20 20 54 48 45 20 |. iF X<>0 THE |
00004790: 50 52 4F 47 52 41 4D 20 42 52 41 4E 43 48 45 53 |PROGRAM BRANCHES|
000047A0: 20 41 52 4F 55 4E 44 20 22 58 3D 58 2B 31 22 2E | AROUND "X=X+1".|
000047B0: 20 20 20 20 74 48 45 20 57 41 59 20 54 48 45 20 | tHE WAY THE |
000047C0: 36 35 31 30 20 28 41 4E 44 20 4D 4F 53 54 20 63 |6510 (AND MOST c|
000047D0: 70 75 27 53 29 20 57 4F 52 4B 20 20 49 53 20 52 |pu'S) WORK IS R|
000047E0: 41 54 48 45 52 20 44 49 46 46 45 52 45 4E 54 2E |ATHER DIFFERENT.|
000047F0: 20 69 4E 53 54 45 41 44 20 4F 46 20 55 53 49 4E | iNSTEAD OF USIN|
00004800: 47 20 20 20 4F 4E 45 20 53 50 45 43 49 41 4C 20 |G ONE SPECIAL |
00004810: 49 4E 53 54 52 55 43 54 49 4F 4E 20 54 4F 20 44 |INSTRUCTION TO D|
00004820: 4F 20 42 4F 54 48 20 54 48 45 20 20 54 45 53 54 |O BOTH THE TEST|
00004830: 49 4E 47 20 41 4E 44 20 42 52 41 4E 43 48 49 4E |ING AND BRANCHIN|
00004840: 47 2C 20 54 48 45 20 45 46 46 45 43 54 53 20 4F |G, THE EFFECTS O|
00004850: 46 20 20 20 4F 54 48 45 52 20 49 4E 53 54 52 55 |F OTHER INSTRU|
00004860: 43 54 49 4F 4E 53 20 4F 4E 20 54 48 45 20 46 4C |CTIONS ON THE FL|
00004870: 41 47 53 20 44 4F 20 54 48 45 20 20 54 45 53 54 |AGS DO THE TEST|
00004880: 49 4E 47 20 41 4E 44 20 41 20 53 4D 41 4C 4C 20 |ING AND A SMALL |
00004890: 47 52 4F 55 50 20 4F 46 20 20 20 20 20 20 20 20 |GROUP OF |
000048A0: 20 20 20 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 | INSTRUCTIONS|
000048B0: 20 42 52 41 4E 43 48 20 43 4F 4E 44 49 54 49 4F | BRANCH CONDITIO|
000048C0: 4E 41 4C 4C 59 20 20 20 20 20 20 20 44 45 50 45 |NALLY DEPE|
000048D0: 4E 44 49 4E 47 20 4F 4E 20 54 48 45 20 53 54 41 |NDING ON THE STA|
000048E0: 54 45 53 20 4F 46 20 54 48 45 20 46 4C 41 47 53 |TES OF THE FLAGS|
000048F0: 2E 0D 0D 20 20 61 4C 4C 20 54 48 45 20 36 35 31 |... aLL THE 651|
00004900: 30 27 53 20 43 4F 4E 44 49 54 49 4F 4E 41 4C 20 |0'S CONDITIONAL |
00004910: 42 52 41 4E 43 48 45 53 20 20 20 55 53 45 20 54 |BRANCHES USE T|
00004920: 48 45 20 52 45 4C 41 54 49 56 45 20 41 44 44 52 |HE RELATIVE ADDR|
00004930: 45 53 53 49 4E 47 20 4D 4F 44 45 20 54 4F 20 20 |ESSING MODE TO |
00004940: 20 20 20 49 44 45 4E 54 49 46 59 20 54 48 45 20 | IDENTIFY THE |
00004950: 42 52 41 4E 43 48 27 53 20 44 45 53 54 49 4E 41 |BRANCH'S DESTINA|
00004960: 54 49 4F 4E 2E 20 61 20 20 20 20 53 49 47 4E 45 |TION. a SIGNE|
00004970: 44 20 38 2D 42 49 54 20 56 41 4C 55 45 20 49 4E |D 8-BIT VALUE IN|
00004980: 44 49 43 41 54 45 53 20 48 4F 57 20 4D 41 4E 59 |DICATES HOW MANY|
00004990: 20 20 20 42 59 54 45 53 20 46 4F 52 57 41 52 44 | BYTES FORWARD|
000049A0: 53 20 4F 52 20 42 41 43 4B 20 54 4F 20 4A 55 4D |S OR BACK TO JUM|
000049B0: 50 2E 20 61 20 5A 45 52 4F 20 20 47 49 56 45 53 |P. a ZERO GIVES|
000049C0: 20 54 48 45 20 53 41 4D 45 20 52 45 53 55 4C 54 | THE SAME RESULT|
000049D0: 20 41 53 20 4E 4F 54 20 4A 55 4D 50 49 4E 47 2E | AS NOT JUMPING.|
000049E0: 0D 0D 20 20 20 20 20 20 20 20 20 20 28 6D 4F 52 |.. (mOR|
000049F0: 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 0D |E ON NEXT PAGE).|
00004A00: 5E 0D 20 20 63 4F 4E 44 49 54 49 4F 4E 41 4C 20 |^. cONDITIONAL |
00004A10: 62 52 41 4E 43 48 45 53 3A 20 28 63 4F 4E 54 49 |bRANCHES: (cONTI|
00004A20: 4E 55 45 44 29 0D 0D 20 20 68 45 52 45 20 41 52 |NUED).. hERE AR|
00004A30: 45 20 54 48 45 20 38 20 43 4F 4E 44 49 54 49 4F |E THE 8 CONDITIO|
00004A40: 4E 41 4C 20 42 52 41 4E 43 48 45 53 3A 0D 0D 6D |NAL BRANCHES:..m|
00004A50: 6C 20 20 20 20 20 20 6D 45 41 4E 49 4E 47 0D 42 |l mEANING.B|
00004A60: 43 43 20 20 20 22 62 52 41 4E 43 48 20 49 46 20 |CC "bRANCH IF |
00004A70: 63 41 52 52 59 20 63 4C 45 41 52 22 20 4F 42 56 |cARRY cLEAR" OBV|
00004A80: 49 4F 55 53 2E 0D 42 43 53 20 20 20 22 62 52 41 |IOUS..BCS "bRA|
00004A90: 4E 43 48 20 49 46 20 63 41 52 52 59 20 73 45 54 |NCH IF cARRY sET|
00004AA0: 22 20 4F 42 56 49 4F 55 53 2E 0D 42 45 51 20 20 |" OBVIOUS..BEQ |
00004AB0: 20 22 62 52 41 4E 43 48 20 49 46 20 65 71 55 41 | "bRANCH IF eqUA|
00004AC0: 4C 22 20 42 52 41 4E 43 48 20 49 46 20 54 48 45 |L" BRANCH IF THE|
00004AD0: 20 7A 20 20 20 20 20 20 20 46 4C 41 47 20 49 53 | z FLAG IS|
00004AE0: 20 53 45 54 2E 20 74 48 45 20 52 45 41 53 4F 4E | SET. tHE REASON|
00004AF0: 20 46 4F 52 20 54 48 45 20 20 20 20 20 20 20 20 | FOR THE |
00004B00: 20 4E 41 4D 45 20 43 4F 4D 45 53 20 41 20 42 49 | NAME COMES A BI|
00004B10: 54 20 4C 41 54 45 52 2E 0D 42 4E 45 20 20 20 22 |T LATER..BNE "|
00004B20: 62 52 41 4E 43 48 20 49 46 20 6E 4F 54 20 65 51 |bRANCH IF nOT eQ|
00004B30: 55 41 4C 22 20 42 52 41 4E 43 48 20 49 46 20 20 |UAL" BRANCH IF |
00004B40: 20 20 20 20 20 20 20 54 48 45 20 7A 20 46 4C 41 | THE z FLA|
00004B50: 47 20 49 53 20 43 4C 45 41 52 2E 0D 42 4D 49 20 |G IS CLEAR..BMI |
00004B60: 20 20 22 62 52 41 4E 43 48 20 49 46 20 6D 69 4E | "bRANCH IF miN|
00004B70: 55 53 22 20 42 52 41 4E 43 48 20 49 46 20 54 48 |US" BRANCH IF TH|
00004B80: 45 20 6E 20 20 20 20 20 20 20 28 6E 45 47 41 54 |E n (nEGAT|
00004B90: 49 56 45 29 20 46 4C 41 47 20 49 53 20 53 45 54 |IVE) FLAG IS SET|
00004BA0: 2E 0D 42 50 4C 20 20 20 22 62 52 41 4E 43 48 20 |..BPL "bRANCH |
00004BB0: 49 46 20 70 6C 55 53 22 20 42 52 41 4E 43 48 20 |IF plUS" BRANCH |
00004BC0: 49 46 20 54 48 45 20 6E 20 20 20 20 20 20 20 20 |IF THE n |
00004BD0: 46 4C 41 47 20 49 53 20 43 4C 45 41 52 2E 0D 42 |FLAG IS CLEAR..B|
00004BE0: 56 53 20 20 20 22 62 52 41 4E 43 48 20 49 46 20 |VS "bRANCH IF |
00004BF0: 4F 76 45 52 46 4C 4F 57 20 73 45 54 22 20 42 52 |OvERFLOW sET" BR|
00004C00: 41 4E 43 48 20 49 46 20 20 20 20 20 20 54 48 45 |ANCH IF THE|
00004C10: 20 76 20 46 4C 41 47 20 49 53 20 53 45 54 2E 0D | v FLAG IS SET..|
00004C20: 42 56 43 20 20 20 22 62 52 41 4E 43 48 20 49 46 |BVC "bRANCH IF|
00004C30: 20 4F 76 45 52 46 4C 4F 57 20 63 4C 45 41 52 22 | OvERFLOW cLEAR"|
00004C40: 20 42 52 41 4E 43 48 20 20 20 20 20 20 20 49 46 | BRANCH IF|
00004C50: 20 54 48 45 20 76 20 46 4C 41 47 20 49 53 20 43 | THE v FLAG IS C|
00004C60: 4C 45 41 52 2E 0D 0D 20 20 20 20 20 20 20 20 20 |LEAR... |
00004C70: 20 28 6D 4F 52 45 20 4F 4E 20 4E 45 58 54 20 50 | (mORE ON NEXT P|
00004C80: 41 47 45 29 0D 5E 0D 0D 20 20 63 4F 4E 44 49 54 |AGE).^.. cONDIT|
00004C90: 49 4F 4E 41 4C 20 62 52 41 4E 43 48 45 53 3A 20 |IONAL bRANCHES: |
00004CA0: 28 63 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 20 6F |(cONTINUED).. o|
00004CB0: 4E 45 20 50 4F 49 4E 54 20 57 4F 52 54 48 20 52 |NE POINT WORTH R|
00004CC0: 45 50 45 41 54 49 4E 47 20 49 53 20 48 4F 57 20 |EPEATING IS HOW |
00004CD0: 54 48 45 20 20 52 45 4C 41 54 49 56 45 20 41 44 |THE RELATIVE AD|
00004CE0: 44 52 45 53 53 49 4E 47 20 4D 4F 44 45 20 57 4F |DRESSING MODE WO|
00004CF0: 52 4B 53 2E 20 20 20 20 20 20 20 20 20 74 48 45 |RKS. tHE|
00004D00: 20 42 52 41 4E 43 48 20 49 4E 53 54 52 55 43 54 | BRANCH INSTRUCT|
00004D10: 49 4F 4E 53 20 55 53 45 20 41 20 4F 4E 45 20 42 |IONS USE A ONE B|
00004D20: 59 54 45 20 20 53 49 47 4E 45 44 20 56 41 4C 55 |YTE SIGNED VALU|
00004D30: 45 20 28 54 48 41 54 20 49 53 2C 20 46 52 4F 4D |E (THAT IS, FROM|
00004D40: 20 2D 31 32 38 20 54 4F 20 31 32 37 29 54 4F 20 | -128 TO 127)TO |
00004D50: 49 4E 44 49 43 41 54 45 20 48 4F 57 20 46 41 52 |INDICATE HOW FAR|
00004D60: 20 54 4F 20 42 52 41 4E 43 48 20 46 52 4F 4D 20 | TO BRANCH FROM |
00004D70: 54 48 45 20 20 43 55 52 52 45 4E 54 20 50 4F 53 |THE CURRENT POS|
00004D80: 49 54 49 4F 4E 2E 20 69 46 20 59 4F 55 20 47 49 |ITION. iF YOU GI|
00004D90: 56 45 20 41 20 42 52 41 4E 43 48 20 20 49 4E 53 |VE A BRANCH INS|
00004DA0: 54 52 55 43 54 49 4F 4E 20 41 20 56 41 4C 55 45 |TRUCTION A VALUE|
00004DB0: 20 4F 46 20 30 2C 20 59 4F 55 20 41 52 45 20 42 | OF 0, YOU ARE B|
00004DC0: 52 41 4E 43 48 49 4E 47 20 54 4F 20 54 48 45 20 |RANCHING TO THE |
00004DD0: 49 4E 53 54 52 55 43 54 49 4F 4E 20 4A 55 53 54 |INSTRUCTION JUST|
00004DE0: 20 50 41 53 54 20 54 48 45 20 20 20 20 42 52 41 | PAST THE BRA|
00004DF0: 4E 43 48 20 49 4E 53 54 52 55 43 54 49 4F 4E 20 |NCH INSTRUCTION |
00004E00: 2D 20 57 48 45 52 45 20 54 48 45 20 63 70 75 20 |- WHERE THE cpu |
00004E10: 20 20 20 20 20 43 4F 4E 54 49 4E 55 45 53 20 49 | CONTINUES I|
00004E20: 46 20 54 48 45 20 42 52 41 4E 43 48 20 49 53 4E |F THE BRANCH ISN|
00004E30: 27 54 20 54 41 4B 45 4E 2E 0D 0D 20 20 74 48 45 |'T TAKEN... tHE|
00004E40: 20 52 45 41 53 4F 4E 20 46 4F 52 20 54 48 49 53 | REASON FOR THIS|
00004E50: 20 31 2D 42 59 54 45 20 4F 46 46 53 45 54 20 49 | 1-BYTE OFFSET I|
00004E60: 53 20 20 54 48 41 54 20 43 4F 4E 44 49 54 49 4F |S THAT CONDITIO|
00004E70: 4E 41 4C 20 42 52 41 4E 43 48 45 53 20 54 45 4E |NAL BRANCHES TEN|
00004E80: 44 20 54 4F 20 42 45 20 20 20 20 53 48 4F 52 54 |D TO BE SHORT|
00004E90: 2C 20 41 4E 44 20 54 48 49 53 20 53 41 56 45 53 |, AND THIS SAVES|
00004EA0: 20 4D 45 4D 4F 52 59 20 53 50 41 43 45 20 4F 56 | MEMORY SPACE OV|
00004EB0: 45 52 20 41 20 53 59 53 54 45 4D 20 57 48 45 52 |ER A SYSTEM WHER|
00004EC0: 45 20 54 48 45 20 57 48 4F 4C 45 20 32 2D 42 59 |E THE WHOLE 2-BY|
00004ED0: 54 45 20 54 41 52 47 45 54 20 20 4F 46 20 54 48 |TE TARGET OF TH|
00004EE0: 45 20 42 52 41 4E 43 48 20 4D 55 53 54 20 42 45 |E BRANCH MUST BE|
00004EF0: 20 53 50 45 43 49 46 49 45 44 2E 0D 0D 20 20 20 | SPECIFIED... |
00004F00: 20 20 20 20 20 20 20 28 6D 4F 52 45 20 4F 4E 20 | (mORE ON |
00004F10: 4E 45 58 54 20 50 41 47 45 29 0D 5E 0D 0D 20 20 |NEXT PAGE).^.. |
00004F20: 63 4F 4E 44 49 54 49 4F 4E 41 4C 20 62 52 41 4E |cONDITIONAL bRAN|
00004F30: 43 48 45 53 3A 20 28 63 4F 4E 54 49 4E 55 45 44 |CHES: (cONTINUED|
00004F40: 29 0D 0D 20 20 61 53 53 45 4D 42 4C 45 52 53 20 |).. aSSEMBLERS |
00004F50: 4E 4F 52 4D 41 4C 4C 59 20 44 4F 20 54 48 45 20 |NORMALLY DO THE |
00004F60: 4A 4F 42 20 4F 46 20 20 20 20 20 43 4F 55 4E 54 |JOB OF COUNT|
00004F70: 49 4E 47 20 42 59 54 45 53 20 46 52 4F 4D 20 54 |ING BYTES FROM T|
00004F80: 48 45 20 43 55 52 52 45 4E 54 20 41 44 44 52 45 |HE CURRENT ADDRE|
00004F90: 53 53 20 46 4F 52 20 52 45 4C 41 54 49 56 45 20 |SS FOR RELATIVE |
00004FA0: 42 52 41 4E 43 48 45 53 20 46 4F 52 20 59 4F 55 |BRANCHES FOR YOU|
00004FB0: 2E 20 79 4F 55 20 4A 55 53 54 20 47 49 56 45 20 |. yOU JUST GIVE |
00004FC0: 54 48 45 20 41 53 53 45 4D 42 4C 45 52 20 54 48 |THE ASSEMBLER TH|
00004FD0: 45 20 41 44 44 52 45 53 53 20 28 4F 52 20 54 48 |E ADDRESS (OR TH|
00004FE0: 45 20 20 4C 41 42 45 4C 29 20 59 4F 55 20 57 49 |E LABEL) YOU WI|
00004FF0: 53 48 20 54 4F 20 42 52 41 4E 43 48 20 54 4F 2C |SH TO BRANCH TO,|
00005000: 20 41 4E 44 20 49 54 20 20 20 20 44 4F 45 53 20 | AND IT DOES |
00005010: 54 48 45 20 52 45 53 54 2E 0D 0D 20 20 20 20 20 |THE REST... |
00005020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 41 | bA|
00005030: 53 49 43 0D 20 20 20 20 20 20 6D 6C 20 20 20 20 |SIC. ml |
00005040: 20 20 20 20 20 65 51 55 49 56 41 4C 45 4E 54 0D | eQUIVALENT.|
00005050: 65 2E 47 2E 20 42 56 53 20 4C 41 42 45 4C 20 20 |e.G. BVS LABEL |
00005060: 49 46 20 56 3D 31 20 47 4F 54 4F 20 4C 41 42 45 |IF V=1 GOTO LABE|
00005070: 4C 0D 20 20 20 20 20 42 4E 45 20 24 43 32 30 33 |L. BNE $C203|
00005080: 20 20 49 46 20 5A 3D 30 20 47 4F 54 4F 20 24 43 | IF Z=0 GOTO $C|
00005090: 32 30 33 0D 20 20 20 20 20 42 4D 49 20 54 45 53 |203. BMI TES|
000050A0: 54 20 20 20 49 46 20 4E 3D 31 20 47 4F 54 4F 20 |T IF N=1 GOTO |
000050B0: 54 45 53 54 0D 20 20 20 20 20 42 43 43 20 34 39 |TEST. BCC 49|
000050C0: 33 35 37 20 20 49 46 20 43 3D 30 20 47 4F 54 4F |357 IF C=0 GOTO|
000050D0: 20 34 39 33 35 37 0D 0D 20 20 63 4F 4E 44 49 54 | 49357.. cONDIT|
000050E0: 49 4F 4E 41 4C 20 42 52 41 4E 43 48 45 53 20 41 |IONAL BRANCHES A|
000050F0: 52 45 20 32 20 42 59 54 45 53 20 4C 4F 4E 47 20 |RE 2 BYTES LONG |
00005100: 41 4E 44 20 54 41 4B 45 20 32 65 2D 36 20 53 45 |AND TAKE 2e-6 SE|
00005110: 43 4F 4E 44 53 20 54 4F 20 45 58 45 43 55 54 45 |CONDS TO EXECUTE|
00005120: 2C 20 2B 31 65 2D 36 20 53 45 43 4F 4E 44 20 49 |, +1e-6 SECOND I|
00005130: 46 20 54 48 45 20 42 52 41 4E 43 48 20 49 53 20 |F THE BRANCH IS |
00005140: 54 41 4B 45 4E 2C 20 2B 31 65 2D 36 20 20 20 20 |TAKEN, +1e-6 |
00005150: 53 45 43 4F 4E 44 20 49 46 20 54 48 45 20 42 52 |SECOND IF THE BR|
00005160: 41 4E 43 48 20 43 52 4F 53 53 45 53 20 41 20 50 |ANCH CROSSES A P|
00005170: 41 47 45 20 20 20 20 20 42 4F 55 4E 44 41 52 59 |AGE BOUNDARY|
00005180: 20 28 54 48 45 20 24 58 58 46 46 20 54 4F 20 24 | (THE $XXFF TO $|
00005190: 59 59 30 30 20 47 41 50 29 2E 0D 5E 0D 0D 20 20 |YY00 GAP)..^.. |
000051A0: 20 61 20 53 50 45 43 49 41 4C 20 49 4E 53 54 52 | a SPECIAL INSTR|
000051B0: 55 43 54 49 4F 4E 3A 0D 0D 20 20 74 48 45 52 45 |UCTION:.. tHERE|
000051C0: 20 49 53 20 4F 4E 45 20 49 4E 53 54 52 55 43 54 | IS ONE INSTRUCT|
000051D0: 49 4F 4E 20 53 50 45 43 49 41 4C 4C 59 20 20 20 |ION SPECIALLY |
000051E0: 20 44 45 53 49 47 4E 45 44 20 54 4F 20 57 4F 52 | DESIGNED TO WOR|
000051F0: 4B 20 57 49 54 48 20 54 48 45 20 42 52 41 4E 43 |K WITH THE BRANC|
00005200: 48 20 20 20 20 20 20 20 20 49 4E 53 54 52 55 43 |H INSTRUC|
00005210: 54 49 4F 4E 53 3A 20 43 4D 50 2E 20 28 22 63 4F |TIONS: CMP. ("cO|
00005220: 6D 70 41 52 45 22 29 0D 0D 20 20 63 4D 50 20 44 |mpARE").. cMP D|
00005230: 4F 45 53 20 49 54 53 20 57 4F 52 4B 20 42 59 20 |OES ITS WORK BY |
00005240: 50 45 52 46 4F 52 4D 49 4E 47 20 53 42 43 27 53 |PERFORMING SBC'S|
00005250: 20 46 55 4E 43 54 49 4F 4E 53 20 28 53 45 54 54 | FUNCTIONS (SETT|
00005260: 49 4E 47 20 54 48 45 20 63 2C 20 7A 20 41 4E 44 |ING THE c, z AND|
00005270: 20 6E 20 46 4C 41 47 53 20 44 45 50 45 4E 44 49 | n FLAGS DEPENDI|
00005280: 4E 47 20 4F 4E 20 54 48 45 20 53 55 42 54 52 41 |NG ON THE SUBTRA|
00005290: 43 54 49 4F 4E 27 53 20 52 45 53 55 4C 54 53 29 |CTION'S RESULTS)|
000052A0: 20 65 78 63 65 70 74 3A 0D 0D 20 20 31 29 20 63 | except:.. 1) c|
000052B0: 4D 50 20 49 47 4E 4F 52 45 53 20 54 48 45 20 43 |MP IGNORES THE C|
000052C0: 41 52 52 59 20 46 4C 41 47 20 2D 20 49 54 20 20 |ARRY FLAG - IT |
000052D0: 20 20 20 20 20 20 20 42 45 48 41 56 45 53 20 41 | BEHAVES A|
000052E0: 53 20 49 46 20 43 41 52 52 59 20 49 53 20 41 4C |S IF CARRY IS AL|
000052F0: 57 41 59 53 20 53 45 54 2E 0D 20 20 32 29 20 63 |WAYS SET.. 2) c|
00005300: 4D 50 20 44 4F 45 53 20 4E 4F 54 20 41 46 46 45 |MP DOES NOT AFFE|
00005310: 43 54 20 54 48 45 20 76 20 46 4C 41 47 2E 0D BA |CT THE v FLAG...|
00005320: 20 33 29 20 63 4D 50 20 44 4F 45 53 20 6E 6F 74 | 3) cMP DOES not|
00005330: 20 41 46 46 45 43 54 20 54 48 45 20 56 41 4C 55 | AFFECT THE VALU|
00005340: 45 20 49 4E 20 20 20 20 20 20 20 20 54 48 45 20 |E IN THE |
00005350: 41 43 43 55 4D 55 4C 41 54 4F 52 20 2D 20 6F 6E |ACCUMULATOR - on|
00005360: 6C 79 20 54 48 45 20 46 4C 41 47 53 2E 0D 0D 20 |ly THE FLAGS... |
00005370: 20 74 48 49 53 20 4C 41 53 54 20 49 53 20 56 45 | tHIS LAST IS VE|
00005380: 52 59 20 49 4D 50 4F 52 54 41 4E 54 2C 20 41 53 |RY IMPORTANT, AS|
00005390: 20 49 54 20 20 20 20 41 4C 4C 4F 57 53 20 41 20 | IT ALLOWS A |
000053A0: 4E 55 4D 42 45 52 20 54 4F 20 42 45 20 43 4F 4D |NUMBER TO BE COM|
000053B0: 50 41 52 45 44 20 20 20 20 20 20 20 20 20 20 52 |PARED R|
000053C0: 45 50 45 41 54 45 44 4C 59 2C 20 57 49 54 48 20 |EPEATEDLY, WITH |
000053D0: 53 45 56 45 52 41 4C 20 4F 54 48 45 52 20 56 41 |SEVERAL OTHER VA|
000053E0: 4C 55 45 53 2E 0D 0D 20 20 20 20 20 20 20 20 20 |LUES... |
000053F0: 20 28 6D 4F 52 45 20 4F 4E 20 4E 45 58 54 20 50 | (mORE ON NEXT P|
00005400: 41 47 45 29 0D 5E 0D 0D 20 20 61 20 73 50 45 43 |AGE).^.. a sPEC|
00005410: 49 41 4C 20 69 4E 53 54 52 55 43 54 49 4F 4E 3A |IAL iNSTRUCTION:|
00005420: 20 28 63 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 20 | (cONTINUED).. |
00005430: 79 4F 55 20 57 49 4C 4C 20 46 49 4E 44 20 43 4D |yOU WILL FIND CM|
00005440: 50 20 42 45 49 4E 47 20 55 53 45 44 20 41 20 6C |P BEING USED A l|
00005450: 6F 74 20 49 4E 20 6D 6C 20 50 52 4F 47 52 41 4D |ot IN ml PROGRAM|
00005460: 53 2C 20 45 53 50 45 43 49 41 4C 4C 59 20 49 4E |S, ESPECIALLY IN|
00005470: 20 54 48 45 20 49 4D 4D 45 44 49 41 54 45 4D 4F | THE IMMEDIATEMO|
00005480: 44 45 2E 20 69 54 20 43 41 4E 2C 20 48 4F 57 45 |DE. iT CAN, HOWE|
00005490: 56 45 52 2C 20 55 53 45 20 41 4E 59 20 4F 46 20 |VER, USE ANY OF |
000054A0: 54 48 45 20 20 20 41 44 44 52 45 53 53 49 4E 47 |THE ADDRESSING|
000054B0: 20 4D 4F 44 45 53 20 41 56 41 49 4C 41 42 4C 45 | MODES AVAILABLE|
000054C0: 20 54 4F 20 4C 44 41 2E 0D 0D 20 20 62 45 43 41 | TO LDA... bECA|
000054D0: 55 53 45 20 54 48 45 20 4D 4F 53 54 20 43 4F 4D |USE THE MOST COM|
000054E0: 4D 4F 4E 20 57 41 59 20 54 48 45 20 7A 20 46 4C |MON WAY THE z FL|
000054F0: 41 47 49 53 20 53 45 54 20 49 53 20 42 59 20 41 |AGIS SET IS BY A|
00005500: 20 43 4F 4D 50 41 52 49 53 4F 4E 20 57 49 54 48 | COMPARISON WITH|
00005510: 20 41 20 4E 55 4D 42 45 52 20 45 51 55 41 4C 20 | A NUMBER EQUAL |
00005520: 54 4F 20 54 48 41 54 20 49 4E 20 54 48 45 20 41 |TO THAT IN THE A|
00005530: 43 43 55 4D 55 4C 41 54 4F 52 2C 20 54 48 45 20 |CCUMULATOR, THE |
00005540: 20 20 49 4E 53 54 52 55 43 54 49 4F 4E 20 54 48 | INSTRUCTION TH|
00005550: 41 54 20 42 52 41 4E 43 48 45 53 20 49 46 20 54 |AT BRANCHES IF T|
00005560: 48 45 20 7A 20 46 4C 41 47 20 49 53 20 53 45 54 |HE z FLAG IS SET|
00005570: 20 49 53 20 43 41 4C 4C 45 44 20 42 45 51 20 28 | IS CALLED BEQ (|
00005580: 62 52 41 4E 43 48 20 49 46 20 65 71 55 41 4C 29 |bRANCH IF eqUAL)|
00005590: 20 20 41 4E 44 20 4E 4F 54 2C 20 53 41 59 2C 20 | AND NOT, SAY, |
000055A0: 42 52 5A 20 28 62 72 41 4E 43 48 20 49 46 20 7A |BRZ (brANCH IF z|
000055B0: 45 52 4F 29 2E 20 74 48 45 20 53 41 4D 45 20 4C |ERO). tHE SAME L|
000055C0: 4F 47 49 43 20 41 50 50 4C 49 45 53 20 54 4F 20 |OGIC APPLIES TO |
000055D0: 42 4E 45 20 28 6E 4F 54 20 65 51 55 41 4C 29 2E |BNE (nOT eQUAL).|
000055E0: 0D 0D 20 20 61 4E 4F 54 48 45 52 20 43 4F 4D 4D |.. aNOTHER COMM|
000055F0: 4F 4E 20 55 53 45 20 4F 46 20 43 4D 50 20 49 53 |ON USE OF CMP IS|
00005600: 20 54 4F 20 54 45 53 54 20 20 57 48 49 43 48 20 | TO TEST WHICH |
00005610: 4F 46 20 54 57 4F 20 4E 55 4D 42 45 52 53 20 49 |OF TWO NUMBERS I|
00005620: 53 20 47 52 45 41 54 45 52 2E 20 20 20 20 20 20 |S GREATER. |
00005630: 20 20 72 45 4D 45 4D 42 45 52 20 54 48 41 54 20 | rEMEMBER THAT |
00005640: 54 41 4B 49 4E 47 20 41 20 47 52 45 41 54 45 52 |TAKING A GREATER|
00005650: 20 4E 55 4D 42 45 52 20 20 20 46 52 4F 4D 20 41 | NUMBER FROM A|
00005660: 20 4C 45 53 53 45 52 20 4C 45 41 56 45 53 20 54 | LESSER LEAVES T|
00005670: 48 45 20 43 41 52 52 59 20 43 4C 45 41 52 2E 0D |HE CARRY CLEAR..|
00005680: 6F 54 48 45 52 57 49 53 45 2C 20 54 48 45 20 43 |oTHERWISE, THE C|
00005690: 41 52 52 59 20 46 4C 41 47 20 49 53 20 53 45 54 |ARRY FLAG IS SET|
000056A0: 2E 0D 0D 20 20 20 20 20 20 20 20 20 20 28 6D 4F |... (mO|
000056B0: 52 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 |RE ON NEXT PAGE)|
000056C0: 0D 5E 0D 0D 20 20 61 20 73 50 45 43 49 41 4C 20 |.^.. a sPECIAL |
000056D0: 69 4E 53 54 52 55 43 54 49 4F 4E 3A 20 28 63 4F |iNSTRUCTION: (cO|
000056E0: 4E 54 49 4E 55 45 44 29 0D 0D 65 58 41 4D 50 4C |NTINUED)..eXAMPL|
000056F0: 45 3A 20 20 61 20 53 41 4D 50 4C 45 20 49 4E 50 |E: a SAMPLE INP|
00005700: 55 54 20 52 4F 55 54 49 4E 45 0D 20 20 20 20 20 |UT ROUTINE. |
00005710: 20 20 20 20 2D 61 43 43 45 50 54 53 20 4F 4E 4C | -aCCEPTS ONL|
00005720: 59 20 4E 55 4D 42 45 52 53 2C 20 3C 52 45 54 55 |Y NUMBERS, <RETU|
00005730: 52 4E 3E 20 20 20 20 20 20 20 20 20 20 41 4E 44 |RN> AND|
00005740: 20 3C 44 45 4C 45 54 45 3E 0D 0D 47 45 54 20 4A | <DELETE>..GET J|
00005750: 53 52 20 24 46 46 43 46 20 3B 54 48 49 53 20 47 |SR $FFCF ;THIS G|
00005760: 45 54 53 20 41 20 43 48 41 52 41 43 54 45 52 27 |ETS A CHARACTER'|
00005770: 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |S |
00005780: 20 3B 41 53 43 49 49 20 46 52 4F 4D 20 54 48 45 | ;ASCII FROM THE|
00005790: 20 4B 45 59 42 4F 41 52 44 20 20 20 20 20 20 20 | KEYBOARD |
000057A0: 20 20 20 20 20 20 20 20 20 3B 49 4E 54 4F 20 54 | ;INTO T|
000057B0: 48 45 20 41 43 43 55 4D 55 4C 41 54 4F 52 0D 20 |HE ACCUMULATOR. |
000057C0: 20 20 20 43 4D 50 20 23 31 33 20 20 20 3B 43 48 | CMP #13 ;CH|
000057D0: 52 24 28 31 33 29 3D 3C 52 45 54 55 52 4E 3E 0D |R$(13)=<RETURN>.|
000057E0: 20 20 20 20 42 4E 45 20 41 31 20 20 20 20 3B 49 | BNE A1 ;I|
000057F0: 46 20 4E 4F 54 20 45 51 55 41 4C 2C 20 47 4F 20 |F NOT EQUAL, GO |
00005800: 4F 4E 0D 20 20 20 20 5B 57 48 41 54 20 54 4F 20 |ON. [WHAT TO |
00005810: 44 4F 20 49 4E 20 43 41 53 45 20 4F 46 20 41 20 |DO IN CASE OF A |
00005820: 52 45 54 55 52 4E 5D 0D 41 31 20 20 43 4D 50 20 |RETURN].A1 CMP |
00005830: 23 32 30 20 20 20 3B 43 48 52 24 28 32 30 29 3D |#20 ;CHR$(20)=|
00005840: 3C 44 45 4C 45 54 45 3E 0D 20 20 20 20 42 4E 45 |<DELETE>. BNE|
00005850: 20 41 32 20 20 20 20 3B 49 46 20 4E 4F 54 20 45 | A2 ;IF NOT E|
00005860: 51 55 41 4C 2C 20 47 4F 20 4F 4E 0D 20 20 20 20 |QUAL, GO ON. |
00005870: 5B 57 48 41 54 20 54 4F 20 44 4F 20 49 4E 20 43 |[WHAT TO DO IN C|
00005880: 41 53 45 20 4F 46 20 41 20 44 45 4C 45 54 45 5D |ASE OF A DELETE]|
00005890: 0D 41 32 20 20 43 4D 50 20 23 34 38 20 20 20 3B |.A2 CMP #48 ;|
000058A0: 43 48 52 24 28 34 38 29 3D 22 30 22 0D 20 20 20 |CHR$(48)="0". |
000058B0: 20 42 43 43 20 47 45 54 20 20 20 3B 49 46 20 41 | BCC GET ;IF A|
000058C0: 3C 34 38 2C 52 45 50 45 41 54 20 4C 4F 4F 50 0D |<48,REPEAT LOOP.|
000058D0: 20 20 20 20 43 4D 50 20 23 35 38 20 20 20 3B 43 | CMP #58 ;C|
000058E0: 48 52 24 28 35 37 29 3D 22 39 22 0D 20 20 20 20 |HR$(57)="9". |
000058F0: 42 43 53 20 47 45 54 20 20 20 3B 49 46 20 41 3E |BCS GET ;IF A>|
00005900: 3D 35 38 2C 20 52 45 50 45 41 54 20 4C 4F 4F 50 |=58, REPEAT LOOP|
00005910: 0D 20 20 20 20 5B 57 48 41 54 20 54 4F 20 44 4F |. [WHAT TO DO|
00005920: 20 57 49 54 48 20 41 20 4E 55 4D 42 45 52 20 4B | WITH A NUMBER K|
00005930: 45 59 5D 0D 0D 20 20 20 20 20 20 20 20 20 20 28 |EY].. (|
00005940: 6D 4F 52 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 |mORE ON NEXT PAG|
00005950: 45 29 0D 5E 0D 0D 20 20 61 20 73 50 45 43 49 41 |E).^.. a sPECIA|
00005960: 4C 20 69 4E 53 54 52 55 43 54 49 4F 4E 3A 20 28 |L iNSTRUCTION: (|
00005970: 63 4F 4E 54 49 4E 55 45 44 29 0D 0D 20 20 62 45 |cONTINUED).. bE|
00005980: 20 43 41 52 45 46 55 4C 20 57 49 54 48 20 42 43 | CAREFUL WITH BC|
00005990: 43 20 41 4E 44 20 42 43 53 20 41 46 54 45 52 20 |C AND BCS AFTER |
000059A0: 41 20 20 20 43 4F 4D 50 41 52 45 2E 20 74 48 45 |A COMPARE. tHE|
000059B0: 59 27 52 45 20 45 41 53 59 20 54 4F 20 4D 49 58 |Y'RE EASY TO MIX|
000059C0: 20 55 50 2E 0D 20 20 62 43 43 20 42 52 41 4E 43 | UP.. bCC BRANC|
000059D0: 48 45 53 20 49 46 20 54 48 45 20 4E 55 4D 42 45 |HES IF THE NUMBE|
000059E0: 52 20 49 4E 20 54 48 45 20 20 20 20 20 41 43 43 |R IN THE ACC|
000059F0: 55 4D 55 4C 41 54 4F 52 20 49 53 20 4C 45 53 53 |UMULATOR IS LESS|
00005A00: 20 54 48 41 4E 20 54 48 45 20 4E 55 4D 42 45 52 | THAN THE NUMBER|
00005A10: 20 49 54 20 20 49 53 20 42 45 49 4E 47 20 43 4F | IT IS BEING CO|
00005A20: 4D 50 41 52 45 44 20 54 4F 2E 0D 20 20 62 43 53 |MPARED TO.. bCS|
00005A30: 20 42 52 41 4E 43 48 45 53 20 49 46 20 54 48 45 | BRANCHES IF THE|
00005A40: 20 4E 55 4D 42 45 52 20 49 4E 20 54 48 45 20 20 | NUMBER IN THE |
00005A50: 20 20 20 41 43 43 55 4D 55 4C 41 54 4F 52 20 49 | ACCUMULATOR I|
00005A60: 53 20 47 52 45 41 54 45 52 20 54 48 41 4E 20 4F |S GREATER THAN O|
00005A70: 52 20 45 51 55 41 4C 20 54 4F 20 54 48 45 20 4E |R EQUAL TO THE N|
00005A80: 55 4D 42 45 52 20 49 54 20 49 53 20 42 45 49 4E |UMBER IT IS BEIN|
00005A90: 47 20 43 4F 4D 50 41 52 45 44 20 54 4F 2E 0D 0D |G COMPARED TO...|
00005AA0: 20 20 61 20 43 4D 50 20 49 4E 53 54 52 55 43 54 | a CMP INSTRUCT|
00005AB0: 49 4F 4E 20 54 41 4B 45 53 20 41 53 20 4D 55 43 |ION TAKES AS MUC|
00005AC0: 48 20 54 49 4D 45 20 20 41 4E 44 20 4D 45 4D 4F |H TIME AND MEMO|
00005AD0: 52 59 20 41 53 20 54 48 45 20 45 51 55 49 56 41 |RY AS THE EQUIVA|
00005AE0: 4C 45 4E 54 20 4C 44 41 2E 0D 0D 20 20 6F 54 48 |LENT LDA... oTH|
00005AF0: 45 52 20 48 41 4E 44 59 20 49 4E 53 54 52 55 43 |ER HANDY INSTRUC|
00005B00: 54 49 4F 4E 53 20 41 52 45 20 54 48 45 20 43 50 |TIONS ARE THE CP|
00005B10: 58 20 20 41 4E 44 20 43 50 59 20 49 4E 53 54 52 |X AND CPY INSTR|
00005B20: 55 43 54 49 4F 4E 53 2C 20 57 48 49 43 48 20 42 |UCTIONS, WHICH B|
00005B30: 45 48 41 56 45 20 4C 49 4B 45 20 43 4D 50 20 42 |EHAVE LIKE CMP B|
00005B40: 55 54 20 52 45 46 45 52 20 54 4F 20 54 48 45 20 |UT REFER TO THE |
00005B50: 78 20 41 4E 44 20 79 20 52 45 47 49 53 54 45 52 |x AND y REGISTER|
00005B60: 53 20 20 52 41 54 48 45 52 20 54 48 41 4E 20 54 |S RATHER THAN T|
00005B70: 48 45 20 41 43 43 55 4D 55 4C 41 54 4F 52 2E 20 |HE ACCUMULATOR. |
00005B80: 74 48 45 59 20 4D 41 59 20 20 20 4F 4E 4C 59 20 |tHEY MAY ONLY |
00005B90: 55 53 45 20 54 48 45 20 49 4D 4D 45 44 49 41 54 |USE THE IMMEDIAT|
00005BA0: 45 2C 20 41 42 53 4F 4C 55 54 45 2C 20 41 4E 44 |E, ABSOLUTE, AND|
00005BB0: 20 20 20 5A 45 52 4F 20 50 41 47 45 20 41 44 44 | ZERO PAGE ADD|
00005BC0: 52 45 53 53 49 4E 47 20 4D 4F 44 45 53 2C 20 54 |RESSING MODES, T|
00005BD0: 41 4B 49 4E 47 20 54 48 45 20 20 53 41 4D 45 20 |AKING THE SAME |
00005BE0: 54 49 4D 45 20 41 4E 44 20 4D 45 4D 4F 52 59 20 |TIME AND MEMORY |
00005BF0: 41 53 20 4C 44 41 20 54 4F 20 55 53 45 2E 0D 5E |AS LDA TO USE..^|
00005C00: 0D 0D 20 20 6C 4F 4F 50 49 4E 47 20 69 4E 53 54 |.. lOOPING iNST|
00005C10: 52 55 43 54 49 4F 4E 53 0D 0D 20 20 61 20 4C 4F |RUCTIONS.. a LO|
00005C20: 4F 50 20 49 53 20 41 20 53 45 52 49 45 53 20 4F |OP IS A SERIES O|
00005C30: 46 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 20 54 |F INSTRUCTIONS T|
00005C40: 4F 20 42 45 20 45 58 45 43 55 54 45 44 20 52 45 |O BE EXECUTED RE|
00005C50: 50 45 41 54 45 44 4C 59 2E 20 74 48 45 20 49 4E |PEATEDLY. tHE IN|
00005C60: 53 54 52 55 43 54 49 4F 4E 53 4E 45 43 45 53 53 |STRUCTIONSNECESS|
00005C70: 41 52 59 20 46 4F 52 20 53 4F 4D 45 20 54 59 50 |ARY FOR SOME TYP|
00005C80: 45 53 20 4F 46 20 4C 4F 4F 50 20 48 41 56 45 20 |ES OF LOOP HAVE |
00005C90: 20 20 41 4C 52 45 41 44 59 20 42 45 45 4E 20 43 | ALREADY BEEN C|
00005CA0: 4F 56 45 52 45 44 2E 20 65 58 41 4D 50 4C 45 3A |OVERED. eXAMPLE:|
00005CB0: 0D 0D 4C 41 42 45 4C 20 5B 54 52 59 20 54 4F 20 |..LABEL [TRY TO |
00005CC0: 44 4F 20 53 4F 4D 45 54 48 49 4E 47 5D 0D 20 20 |DO SOMETHING]. |
00005CD0: 20 20 20 20 43 4D 50 20 5B 53 55 43 43 45 53 53 | CMP [SUCCESS|
00005CE0: 5D 20 3B 44 49 44 20 49 54 20 53 55 43 43 45 45 |] ;DID IT SUCCEE|
00005CF0: 44 3F 0D 20 20 20 20 20 20 42 4E 45 20 4C 41 42 |D?. BNE LAB|
00005D00: 45 4C 20 20 20 20 20 3B 49 46 20 4E 4F 54 2C 20 |EL ;IF NOT, |
00005D10: 54 52 59 20 41 47 41 49 4E 0D 0D 20 20 74 48 45 |TRY AGAIN.. tHE|
00005D20: 20 4E 45 58 54 20 53 45 54 20 4F 46 20 49 4E 53 | NEXT SET OF INS|
00005D30: 54 52 55 43 54 49 4F 4E 53 20 49 53 20 55 53 45 |TRUCTIONS IS USE|
00005D40: 44 20 20 54 4F 20 50 45 52 46 4F 52 4D 20 54 48 |D TO PERFORM TH|
00005D50: 45 20 6D 6C 20 45 51 55 49 56 41 4C 45 4E 54 20 |E ml EQUIVALENT |
00005D60: 4F 46 20 41 20 46 4F 52 2D 20 20 4E 45 58 54 20 |OF A FOR- NEXT |
00005D70: 4C 4F 4F 50 2E 0D 0D 6D 6C 20 20 62 41 53 49 43 |LOOP...ml bASIC|
00005D80: 20 20 6D 45 41 4E 49 4E 47 0D 49 4E 58 20 58 3D | mEANING.INX X=|
00005D90: 58 2B 31 20 20 22 69 6E 43 52 45 4D 45 4E 54 20 |X+1 "inCREMENT |
00005DA0: 78 22 20 28 42 59 20 4F 4E 45 29 0D 49 4E 59 20 |x" (BY ONE).INY |
00005DB0: 59 3D 59 2B 31 20 20 22 69 6E 43 52 45 4D 45 4E |Y=Y+1 "inCREMEN|
00005DC0: 54 20 79 22 20 28 42 59 20 4F 4E 45 29 0D 44 45 |T y" (BY ONE).DE|
00005DD0: 58 20 58 3D 58 2D 31 20 20 22 64 65 43 52 45 4D |X X=X-1 "deCREM|
00005DE0: 45 4E 54 20 78 22 20 28 42 59 20 4F 4E 45 29 0D |ENT x" (BY ONE).|
00005DF0: 44 45 59 20 59 3D 59 2D 31 20 20 22 64 65 43 52 |DEY Y=Y-1 "deCR|
00005E00: 45 4D 45 4E 54 20 79 22 20 28 42 59 20 4F 4E 45 |EMENT y" (BY ONE|
00005E10: 29 0D 0D 20 20 20 20 20 20 20 20 20 20 28 6D 4F |).. (mO|
00005E20: 52 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 29 |RE ON NEXT PAGE)|
00005E30: 0D 5E 0D 0D 20 20 6C 4F 4F 50 49 4E 47 20 69 4E |.^.. lOOPING iN|
00005E40: 53 54 52 55 43 54 49 4F 4E 53 20 28 63 4F 4E 54 |STRUCTIONS (cONT|
00005E50: 49 4E 55 45 44 29 0D 0D 20 20 75 53 49 4E 47 20 |INUED).. uSING |
00005E60: 54 48 45 53 45 2C 20 54 48 45 20 6D 6C 20 45 51 |THESE, THE ml EQ|
00005E70: 55 49 56 41 4C 45 4E 54 20 4F 46 20 20 20 20 20 |UIVALENT OF |
00005E80: 22 46 4F 52 20 58 3D 31 54 4F 31 30 3A 5B 64 4F |"FOR X=1TO10:[dO|
00005E90: 20 73 4F 4D 45 54 48 49 4E 47 5D 3A 4E 45 58 54 | sOMETHING]:NEXT|
00005EA0: 58 22 20 49 53 3A 0D 0D 20 20 20 20 20 4C 44 58 |X" IS:.. LDX|
00005EB0: 20 23 30 20 20 20 3B 53 54 41 52 54 20 58 20 41 | #0 ;START X A|
00005EC0: 54 20 30 0D 4C 4F 4F 50 20 49 4E 58 20 20 20 20 |T 0.LOOP INX |
00005ED0: 20 20 3B 41 44 44 20 31 20 54 4F 20 58 0D 20 20 | ;ADD 1 TO X. |
00005EE0: 20 20 20 5B 64 4F 20 73 4F 4D 45 54 48 49 4E 47 | [dO sOMETHING|
00005EF0: 5D 0D 20 20 20 20 20 43 50 58 20 23 31 30 20 20 |]. CPX #10 |
00005F00: 3B 43 4F 4D 50 41 52 45 20 58 20 54 4F 20 31 30 |;COMPARE X TO 10|
00005F10: 0D 20 20 20 20 20 42 43 43 20 4C 4F 4F 50 20 3B |. BCC LOOP ;|
00005F20: 49 46 20 58 3C 31 30 20 54 48 45 4E 20 44 4F 20 |IF X<10 THEN DO |
00005F30: 49 54 20 41 47 41 49 4E 0D 0D 20 20 61 4C 54 45 |IT AGAIN.. aLTE|
00005F40: 52 4E 41 54 45 20 4C 41 53 54 20 49 4E 53 54 52 |RNATE LAST INSTR|
00005F50: 55 43 54 49 4F 4E 3A 0D 0D 20 20 20 20 20 42 4E |UCTION:.. BN|
00005F60: 45 20 4C 4F 4F 50 20 3B 49 46 20 58 3C 3E 31 30 |E LOOP ;IF X<>10|
00005F70: 20 54 48 45 4E 20 44 4F 20 49 54 20 41 47 41 49 | THEN DO IT AGAI|
00005F80: 4E 0D 20 20 74 48 45 20 46 49 52 53 54 20 45 4E |N. tHE FIRST EN|
00005F90: 44 49 4E 47 20 49 53 20 50 52 45 46 45 52 52 45 |DING IS PREFERRE|
00005FA0: 44 2C 20 42 45 43 41 55 53 45 49 54 20 57 49 4C |D, BECAUSEIT WIL|
00005FB0: 4C 20 53 54 4F 50 20 54 48 45 20 4C 4F 4F 50 20 |L STOP THE LOOP |
00005FC0: 49 46 20 53 4F 4D 45 54 48 49 4E 47 20 20 20 20 |IF SOMETHING |
00005FD0: 20 20 4D 41 4B 45 53 20 54 48 45 20 58 20 52 45 | MAKES THE X RE|
00005FE0: 47 49 53 54 45 52 20 53 41 59 2C 20 31 31 2C 20 |GISTER SAY, 11, |
00005FF0: 52 41 54 48 45 52 20 20 20 20 54 48 41 4E 20 4C |RATHER THAN L|
00006000: 45 54 54 49 4E 47 20 49 54 20 47 4F 20 2E 2E 2E |ETTING IT GO ...|
00006010: 32 35 34 2C 20 32 35 35 2C 20 30 2E 2E 2E 20 4F |254, 255, 0... O|
00006020: 4E 20 54 4F 20 31 30 20 41 47 41 49 4E 2C 20 50 |N TO 10 AGAIN, P|
00006030: 4F 53 53 49 42 4C 59 20 46 4F 55 4C 49 4E 47 20 |OSSIBLY FOULING |
00006040: 54 48 49 4E 47 53 20 55 50 20 4F 4E 20 54 48 45 |THINGS UP ON THE|
00006050: 20 57 41 59 2E 20 69 4E 20 53 49 4D 50 4C 45 20 | WAY. iN SIMPLE |
00006060: 54 45 52 4D 53 2C 20 49 54 27 53 20 53 41 46 45 |TERMS, IT'S SAFE|
00006070: 52 2E 5E 0D 0D 20 20 20 20 20 20 75 4E 43 4F 4E |R.^.. uNCON|
00006080: 44 49 54 49 4F 4E 41 4C 20 6A 55 4D 50 53 0D 0D |DITIONAL jUMPS..|
00006090: 20 20 74 48 45 20 4A 4D 50 20 28 22 6A 55 6D 70 | tHE JMP ("jUmp|
000060A0: 22 29 20 43 4F 4D 4D 41 4E 44 20 49 53 20 54 48 |") COMMAND IS TH|
000060B0: 45 20 6D 6C 20 20 20 20 45 51 55 49 56 41 4C 45 |E ml EQUIVALE|
000060C0: 4E 54 20 4F 46 20 47 4F 54 4F 2E 20 6A 4D 50 20 |NT OF GOTO. jMP |
000060D0: 24 41 34 37 34 20 43 41 55 53 45 53 20 54 48 45 |$A474 CAUSES THE|
000060E0: 63 70 75 20 54 4F 20 53 54 41 52 54 20 4C 4F 4F |cpu TO START LOO|
000060F0: 4B 49 4E 47 20 46 4F 52 20 49 4E 53 54 52 55 43 |KING FOR INSTRUC|
00006100: 54 49 4F 4E 53 20 41 54 4D 45 4D 4F 52 59 20 4C |TIONS ATMEMORY L|
00006110: 4F 43 41 54 49 4F 4E 20 24 41 34 37 34 2E 20 74 |OCATION $A474. t|
00006120: 48 49 53 20 49 4E 53 54 52 55 43 54 49 4F 4E 20 |HIS INSTRUCTION |
00006130: 49 53 20 33 20 42 59 54 45 53 20 4C 4F 4E 47 20 |IS 3 BYTES LONG |
00006140: 41 4E 44 20 54 41 4B 45 53 20 33 65 2D 36 20 53 |AND TAKES 3e-6 S|
00006150: 45 43 4F 4E 44 53 20 20 54 4F 20 45 58 45 43 55 |ECONDS TO EXECU|
00006160: 54 45 2E 0D 0D 20 20 74 48 45 20 4A 53 52 20 28 |TE... tHE JSR (|
00006170: 22 6A 55 4D 50 20 54 4F 20 73 55 42 72 4F 55 54 |"jUMP TO sUBrOUT|
00006180: 49 4E 45 22 29 20 20 20 20 20 20 20 20 43 4F 4D |INE") COM|
00006190: 4D 41 4E 44 20 49 53 20 6D 6C 27 53 20 47 4F 53 |MAND IS ml'S GOS|
000061A0: 55 42 2E 20 69 54 20 49 53 20 55 53 45 44 20 4C |UB. iT IS USED L|
000061B0: 49 4B 45 20 20 4A 4D 50 2E 20 74 48 49 53 20 49 |IKE JMP. tHIS I|
000061C0: 4E 53 54 52 55 43 54 49 4F 4E 20 49 53 20 33 20 |NSTRUCTION IS 3 |
000061D0: 42 59 54 45 53 20 4C 4F 4E 47 20 20 20 41 4E 44 |BYTES LONG AND|
000061E0: 20 54 41 4B 45 53 20 36 65 2D 36 20 53 45 43 4F | TAKES 6e-6 SECO|
000061F0: 4E 44 53 20 54 4F 20 45 58 45 43 55 54 45 2E 0D |NDS TO EXECUTE..|
00006200: 0D 20 20 72 54 53 20 28 22 72 45 74 55 52 4E 20 |. rTS ("rEtURN |
00006210: 46 52 4F 4D 20 73 55 42 52 4F 55 54 49 4E 45 22 |FROM sUBROUTINE"|
00006220: 29 20 49 53 20 54 48 45 20 6D 6C 20 45 51 55 49 |) IS THE ml EQUI|
00006230: 56 41 4C 45 4E 54 20 4F 46 20 52 45 54 55 52 4E |VALENT OF RETURN|
00006240: 20 49 4E 20 62 41 53 49 43 2E 20 69 54 20 49 53 | IN bASIC. iT IS|
00006250: 20 31 20 42 59 54 45 20 4C 4F 4E 47 20 41 4E 44 | 1 BYTE LONG AND|
00006260: 20 54 41 4B 45 53 20 36 65 2D 36 20 53 45 43 4F | TAKES 6e-6 SECO|
00006270: 4E 44 53 20 54 4F 20 20 20 45 58 45 43 55 54 45 |NDS TO EXECUTE|
00006280: 2E 20 0D 0D 20 20 74 48 45 20 46 4C 41 47 53 20 |. .. tHE FLAGS |
00006290: 41 52 45 20 4E 4F 54 20 44 49 53 54 55 52 42 45 |ARE NOT DISTURBE|
000062A0: 44 2E 0D 0D 20 20 20 20 20 20 20 20 20 20 28 6D |D... (m|
000062B0: 4F 52 45 20 4F 4E 20 4E 45 58 54 20 50 41 47 45 |ORE ON NEXT PAGE|
000062C0: 29 0D 5E 0D 0D 20 20 75 4E 43 4F 4E 44 49 54 49 |).^.. uNCONDITI|
000062D0: 4F 4E 41 4C 20 6A 55 4D 50 53 3A 20 28 63 4F 4E |ONAL jUMPS: (cON|
000062E0: 54 49 4E 55 45 44 29 0D 0D 20 20 6A 4D 50 20 43 |TINUED).. jMP C|
000062F0: 41 4E 20 55 53 45 20 41 20 53 45 43 4F 4E 44 20 |AN USE A SECOND |
00006300: 41 44 44 52 45 53 53 49 4E 47 20 4D 4F 44 45 3A |ADDRESSING MODE:|
00006310: 20 49 4E 44 49 52 45 43 54 2E 20 61 4E 20 41 44 | INDIRECT. aN AD|
00006320: 44 52 45 53 53 20 46 52 4F 4D 20 24 30 30 30 30 |DRESS FROM $0000|
00006330: 20 54 4F 20 24 46 46 46 46 49 53 20 54 48 45 20 | TO $FFFFIS THE |
00006340: 4C 4F 43 41 54 49 4F 4E 20 4F 46 20 41 20 54 57 |LOCATION OF A TW|
00006350: 4F 2D 42 59 54 45 20 4E 55 4D 42 45 52 20 20 20 |O-BYTE NUMBER |
00006360: 20 54 48 41 54 20 49 53 20 54 48 45 20 41 44 44 | THAT IS THE ADD|
00006370: 52 45 53 53 20 4F 46 20 54 48 45 20 4A 55 4D 50 |RESS OF THE JUMP|
00006380: 2E 20 69 54 27 53 20 20 20 4C 49 4B 45 20 49 4E |. iT'S LIKE IN|
00006390: 44 49 52 45 43 54 2C 79 2C 20 42 55 54 20 59 4F |DIRECT,y, BUT YO|
000063A0: 55 20 41 52 45 20 4E 4F 54 20 4C 49 4D 49 54 45 |U ARE NOT LIMITE|
000063B0: 44 54 4F 20 5A 45 52 4F 20 50 41 47 45 20 41 4E |DTO ZERO PAGE AN|
000063C0: 44 20 4E 4F 20 52 45 47 49 53 54 45 52 53 20 41 |D NO REGISTERS A|
000063D0: 52 45 20 41 44 44 45 44 20 49 4E 2E 20 69 54 20 |RE ADDED IN. iT |
000063E0: 49 53 20 57 52 49 54 54 45 4E 20 4C 49 4B 45 20 |IS WRITTEN LIKE |
000063F0: 22 4A 4D 50 28 24 30 33 30 36 29 22 2E 0D 0D 20 |"JMP($0306)"... |
00006400: 20 74 48 49 53 20 43 41 4E 20 42 45 20 55 53 45 | tHIS CAN BE USE|
00006410: 46 55 4C 20 49 46 20 59 4F 55 20 57 41 4E 54 20 |FUL IF YOU WANT |
00006420: 54 4F 20 4D 4F 56 45 4F 4E 45 20 42 49 54 20 4F |TO MOVEONE BIT O|
00006430: 46 20 41 20 50 52 4F 47 52 41 4D 20 41 52 4F 55 |F A PROGRAM AROU|
00006440: 4E 44 20 57 49 54 48 4F 55 54 20 20 20 20 20 52 |ND WITHOUT R|
00006450: 45 57 52 49 54 49 4E 47 20 41 20 4C 4F 54 20 4F |EWRITING A LOT O|
00006460: 46 20 4A 55 4D 50 53 20 54 4F 20 49 54 2E 20 79 |F JUMPS TO IT. y|
00006470: 4F 55 20 4A 55 53 54 43 48 41 4E 47 45 20 54 48 |OU JUSTCHANGE TH|
00006480: 45 20 54 57 4F 20 42 59 54 45 53 20 54 48 41 54 |E TWO BYTES THAT|
00006490: 20 45 56 45 52 59 54 48 49 4E 47 20 20 20 20 45 | EVERYTHING E|
000064A0: 4C 53 45 20 4A 55 4D 50 53 20 54 4F 20 49 4E 44 |LSE JUMPS TO IND|
000064B0: 49 52 45 43 54 4C 59 2E 0D 0D BA 20 62 75 74 2E |IRECTLY.... but.|
000064C0: 2E 2E 4A 4D 50 20 49 4E 44 49 52 45 43 54 20 48 |..JMP INDIRECT H|
000064D0: 41 53 20 41 20 48 41 52 44 57 41 52 45 20 62 75 |AS A HARDWARE bu|
000064E0: 67 2E 6A 4D 50 20 28 24 58 58 46 46 29 20 57 49 |g.jMP ($XXFF) WI|
000064F0: 4C 4C 20 6E 6F 74 20 47 45 54 20 54 48 45 20 41 |LL not GET THE A|
00006500: 44 44 52 45 53 53 20 54 4F 20 4A 55 4D 50 20 54 |DDRESS TO JUMP T|
00006510: 4F 20 46 52 4F 4D 20 24 58 58 46 46 20 41 4E 44 |O FROM $XXFF AND|
00006520: 20 24 59 59 30 30 2C 20 42 55 54 20 46 52 4F 4D | $YY00, BUT FROM|
00006530: 20 20 24 58 58 46 46 20 41 4E 44 20 24 58 58 30 | $XXFF AND $XX0|
00006540: 30 21 20 28 59 59 3D 58 58 2B 31 29 20 64 4F 4E |0! (YY=XX+1) dON|
00006550: 27 54 20 49 47 4E 4F 52 45 20 54 48 49 53 20 55 |'T IGNORE THIS U|
00006560: 53 45 46 55 4C 20 4D 4F 44 45 2C 20 42 55 54 20 |SEFUL MODE, BUT |
00006570: 42 45 20 57 41 52 59 20 4F 46 20 49 54 2E 0D 5E |BE WARY OF IT..^|
00006580: 0D 0D 20 20 20 20 20 20 20 20 20 20 74 48 45 20 |.. tHE |
00006590: 65 4E 44 20 28 66 4F 52 20 6E 4F 57 29 0D 0D 20 |eND (fOR nOW).. |
000065A0: 20 74 48 49 53 20 49 53 20 49 54 20 46 4F 52 20 | tHIS IS IT FOR |
000065B0: 54 48 49 53 20 4C 45 53 53 4F 4E 2C 20 42 55 54 |THIS LESSON, BUT|
000065C0: 20 43 4F 4D 49 4E 47 55 50 20 49 4E 20 46 55 54 | COMINGUP IN FUT|
000065D0: 55 52 45 20 49 4E 53 54 41 4C 4D 45 4E 54 53 20 |URE INSTALMENTS |
000065E0: 41 52 45 20 4C 4F 54 53 20 4F 46 20 20 20 20 47 |ARE LOTS OF G|
000065F0: 4F 4F 44 49 45 53 3A 0D 0D 2D 20 6D 4F 52 45 20 |OODIES:..- mORE |
00006600: 6D 6C 20 49 4E 53 54 52 55 43 54 49 4F 4E 53 0D |ml INSTRUCTIONS.|
00006610: 2D 20 77 48 41 54 20 4B 49 4E 44 20 4F 46 20 54 |- wHAT KIND OF T|
00006620: 48 49 4E 47 53 20 54 4F 20 44 4F 20 49 4E 20 6D |HINGS TO DO IN m|
00006630: 6C 0D 2D 20 61 43 54 55 41 4C 20 6D 6C 20 50 52 |l.- aCTUAL ml PR|
00006640: 4F 47 52 41 4D 53 0D 2D 20 68 4F 57 20 54 4F 20 |OGRAMS.- hOW TO |
00006650: 55 53 45 20 57 48 41 54 27 53 20 41 4C 52 45 41 |USE WHAT'S ALREA|
00006660: 44 59 20 49 4E 20 62 41 53 49 43 0D 2D 20 68 4F |DY IN bASIC.- hO|
00006670: 57 20 54 4F 20 55 53 45 20 6B 45 52 4E 41 4C 20 |W TO USE kERNAL |
00006680: 52 4F 55 54 49 4E 45 53 0D 2D 20 68 4F 57 20 54 |ROUTINES.- hOW T|
00006690: 4F 20 57 52 49 54 45 20 52 45 41 4C 4C 59 20 62 |O WRITE REALLY b|
000066A0: 69 67 20 6D 6C 20 50 52 4F 47 52 41 4D 53 0D 2D |ig ml PROGRAMS.-|
000066B0: 20 69 4E 54 45 52 52 55 50 54 20 52 4F 55 54 49 | iNTERRUPT ROUTI|
000066C0: 4E 45 53 0D 0D 20 20 79 4F 55 20 53 48 4F 55 4C |NES.. yOU SHOUL|
000066D0: 44 20 4E 4F 57 20 48 41 56 45 20 45 4E 4F 55 47 |D NOW HAVE ENOUG|
000066E0: 48 20 6D 6C 20 55 4E 44 45 52 20 20 20 59 4F 55 |H ml UNDER YOU|
000066F0: 52 20 42 45 4C 54 20 54 4F 20 57 52 49 54 45 20 |R BELT TO WRITE |
00006700: 53 4F 4D 45 20 50 52 4F 47 52 41 4D 53 20 57 48 |SOME PROGRAMS WH|
00006710: 49 43 48 20 20 41 54 20 4C 45 41 53 54 20 64 6F |ICH AT LEAST do|
00006720: 20 53 4F 4D 45 54 48 49 4E 47 2E 20 66 49 44 44 | SOMETHING. fIDD|
00006730: 4C 45 20 57 49 54 48 20 54 48 45 20 20 41 53 53 |LE WITH THE ASS|
00006740: 45 4D 42 4C 45 52 20 41 4E 44 20 47 45 54 20 41 |EMBLER AND GET A|
00006750: 20 47 52 49 50 20 4F 4E 20 57 48 49 43 48 20 20 | GRIP ON WHICH |
00006760: 20 20 20 20 20 49 4E 53 54 52 55 43 54 49 4F 4E | INSTRUCTION|
00006770: 53 20 54 4F 20 55 53 45 20 54 4F 20 44 4F 20 57 |S TO USE TO DO W|
00006780: 48 41 54 20 54 48 49 4E 47 53 2E 20 20 74 48 45 |HAT THINGS. tHE|
00006790: 20 4E 45 58 54 20 28 41 4E 44 20 52 45 41 4C 4C | NEXT (AND REALL|
000067A0: 59 20 54 48 45 20 4C 41 53 54 29 20 50 41 47 45 |Y THE LAST) PAGE|
000067B0: 20 48 41 53 20 53 4F 4D 45 20 49 44 45 41 53 20 | HAS SOME IDEAS |
000067C0: 59 4F 55 20 4D 49 47 48 54 20 54 52 59 20 54 4F |YOU MIGHT TRY TO|
000067D0: 20 45 58 50 4C 4F 52 45 2E 0D 5E 0D 0D 20 20 20 | EXPLORE..^.. |
000067E0: 20 20 20 20 20 20 20 74 48 49 4E 47 53 20 54 4F | tHINGS TO|
000067F0: 20 54 52 59 3A 0D 0D 2D 74 48 45 20 41 52 45 41 | TRY:..-tHE AREA|
00006800: 20 4F 46 20 4D 45 4D 4F 52 59 20 46 52 4F 4D 20 | OF MEMORY FROM |
00006810: 31 30 32 34 20 54 4F 20 32 30 32 33 20 20 20 20 |1024 TO 2023 |
00006820: 28 24 34 30 30 20 54 4F 20 24 37 45 37 29 20 49 |($400 TO $7E7) I|
00006830: 53 20 57 48 41 54 27 53 20 44 49 53 50 4C 41 59 |S WHAT'S DISPLAY|
00006840: 45 44 20 4F 4E 20 20 20 54 48 45 20 53 43 52 45 |ED ON THE SCRE|
00006850: 45 4E 2E 20 74 52 59 20 57 52 49 54 49 4E 47 20 |EN. tRY WRITING |
00006860: 50 52 4F 47 52 41 4D 53 20 54 4F 20 20 20 20 20 |PROGRAMS TO |
00006870: 50 4C 41 59 20 57 49 54 48 20 54 48 49 53 20 41 |PLAY WITH THIS A|
00006880: 52 45 41 2E 0D 0D 2D 69 46 20 54 48 45 20 53 43 |REA...-iF THE SC|
00006890: 52 45 45 4E 20 49 53 20 46 55 4C 4C 2C 20 54 52 |REEN IS FULL, TR|
000068A0: 59 20 50 4C 41 59 49 4E 47 20 20 20 20 20 20 57 |Y PLAYING W|
000068B0: 49 54 48 20 4D 45 4D 4F 52 59 20 46 52 4F 4D 20 |ITH MEMORY FROM |
000068C0: 35 35 32 39 36 20 54 4F 20 35 36 32 39 35 20 28 |55296 TO 56295 (|
000068D0: 24 44 38 30 30 20 20 54 4F 20 24 44 42 45 37 2C |$D800 TO $DBE7,|
000068E0: 20 57 48 49 43 48 20 43 4F 4E 54 52 4F 4C 53 20 | WHICH CONTROLS |
000068F0: 54 48 45 20 43 4F 4C 4F 55 52 53 20 4F 46 20 54 |THE COLOURS OF T|
00006900: 48 45 20 53 43 52 45 45 4E 20 43 48 41 52 41 43 |HE SCREEN CHARAC|
00006910: 54 45 52 53 2E 0D 0D 2D 61 6C 77 61 79 73 20 6B |TERS...-always k|
00006920: 65 65 70 20 61 20 63 6F 70 79 20 6F 66 20 6D 6C |eep a copy of ml|
00006930: 20 70 72 6F 67 72 61 6D 73 20 20 20 20 20 20 20 | programs |
00006940: 6F 6E 20 64 69 73 6B 20 4F 52 20 53 4F 4D 45 20 |on disk OR SOME |
00006950: 4F 54 48 45 52 20 53 41 46 45 20 50 4C 41 43 45 |OTHER SAFE PLACE|
00006960: 2E 20 6D 6C 20 20 20 20 50 52 4F 47 52 41 4D 53 |. ml PROGRAMS|
00006970: 20 48 41 56 45 20 41 20 48 41 42 49 54 20 4F 46 | HAVE A HABIT OF|
00006980: 20 4B 49 4C 4C 49 4E 47 20 20 20 20 20 20 20 20 | KILLING |
00006990: 54 48 45 4D 53 45 4C 56 45 53 20 41 4E 44 20 54 |THEMSELVES AND T|
000069A0: 48 45 20 43 4F 4D 50 55 54 45 52 2E 20 62 45 20 |HE COMPUTER. bE |
000069B0: 52 45 41 44 59 20 20 20 46 4F 52 20 41 20 46 45 |READY FOR A FE|
000069C0: 57 20 45 41 52 4C 59 20 44 49 53 41 50 50 4F 49 |W EARLY DISAPPOI|
000069D0: 4E 54 4D 45 4E 54 53 2E 0D 0D 2D 72 45 41 44 20 |NTMENTS...-rEAD |
000069E0: 53 4F 4D 45 20 47 4F 4F 44 20 42 4F 4F 4B 53 20 |SOME GOOD BOOKS |
000069F0: 4F 4E 20 54 48 45 20 53 55 42 4A 45 43 54 2E 20 |ON THE SUBJECT. |
00006A00: 20 20 5E 5E 5E 5E 5E 5E 5E 5E 5E | ^^^^^^^^^ |
.5^.. AN INTRODUCTION TO MACHINE LANGUA
GE.. THIS IS THE SECOND IN A SERIES OF
TUTORIALS ON MACHINE LANGUAGE. TO MA
KE SENSE OF IT, YOU WILL NEED TO KNOW.A
BOUT BINARY AND HEXADECIMAL NUMBERS, T
HE BASICS ABOUT ASSEMBLERS AND S
OMETHING ABOUT THE REGISTERS OF THE C
PU... THIS IS QUITE A DENSE LESSON, AND
YOU MAY NEED TO READ A SECTION AGAIN TO
UNDERSTAND IT. ALSO, WHEN THERE IS
MORE TO COME ON A SUBJECT, READING
INFORMATION A BIT FURTHER ON MAY HE
LP TOMAKE INCOMPREHENSIBLE THINGS CLEARE
R... ANYTHING IN [SQUARE BRACKETS] IS
SOMETHING THAT WAS LEFT OUT FOR THE
SAKEOF CLARITY AND BREVITY. SOMETHING MU
ST TAKE ITS PLACE IN A REAL PROGRAM..^.
. A FEW FUNDAMENTALS.. THE BRAIN
OF THE COMMODORE 64 IS THE 6510 CPU. TH
E INSTRUCTIONS IT USES ARE IDENTICAL TO
THOSE OF THE 6502, A VERY COMMON CHIP.
THUS, ANYTHING THAT APPLIESTO THE 6502
APPLIES TO THE 6510 AS WELL.. IN ADDITI
ON TO THE 64K OF EXTERNAL MEMORY IT C
AN USE, THE 6510 ALSO HAS A NUMBER OF I
NTERNAL REGISTERS FOR STORINGNUMBERS, EA
CH ONE BYTE LONG:..THE ACCUMULATOR (OR "
A REGISTER") IS THEPRIMARY LOCATION FOR
PROCESSING DATA...THE X AND Y REGISTERS
ARE EXTRA, LIMITED-USE, STORAGE L
OCATIONS...THE SP,PC AND P REGISTERS ARE
MORE COMPLEX AND CAN'T BE DISCUSSE
D HERE..^.. THE FIRST GROUP OF INSTRUCT
IONS TO LEARN IS THE NUMBER-MOVING SE
T. THE SIMPLEST OF THESE ARE EXPLAIN
ED BELOW:.. BASIC.ML EQUIVALENT EXP
LANATION.TAX X=A "TRANSFER ACCUMULAT
OR TO X REGISTER".TXA
A=X "TRANSFER X REGISTER TO
ACCUMULATOR".TAY Y=A "TRANSFE
R ACCUMULATOR TO Y REGIS
TER".TYA A=Y "TRANSFER Y REGISTER TO
ACCUMULATOR".. AS YOU
CAN SEE, THE CRYPTIC ML SYMBOLSARE ACTU
ALLY COMPREHENSIBLE, AND THE INSTRUCT
IONS ACTUALLY DO USEFUL THINGS... EACH
OF THESE INSTRUCTIONS IS ONE BYTELONG AN
D TAKES 2E-6 SECONDS TO EXECUTE..^.. TH
E NEXT SET OF INSTRUCTIONS IS MORE COMP
LEX AND MOVES DATA TO AND FROM MEMO
RY. THEY ARE AS FOLLOWS:..ML EXPLAN
ATION.LDA "LOAD ACCUMULATOR".LDX "LO
AD X REGISTER".LDY "LOAD Y REGISTER".S
TA "STORE ACCUMULATOR".STX "STORE X
REGISTER".STY "STORE Y REGISTER".. EA
CH OF THESE MUST BE FOLLOWED BY A NU
MBER WHICH INDICATES THE DATA'S SOUR
CE (FOR A LOAD COMMAND) OR DEST
INATION (FOR A STORE COMMAND)... THE CO
MPLEXITY ARISES BECAUSE MEMORY CAN BE A
CCESSED USING A VARIETY OF "ADDRESS
ING MODES", IN WHICH THE NUMBER REFERS T
O DIFFERENT THINGS..^.. ADDRESS
ING MODES... IMMEDIATE MODE:.. THIS MO
DE SIMPLY MOVES THE NUMBER INTOA REGISTE
R. IT IS INDICATED BY A "#" PRECEDING
THE NUMBER. ..E.G. LDA #45 PUTS THE N
UMBER 45 INTO THE ACCUMU
LATOR.. IN BASIC, A=45.. THIS MODE
CANNOT BE USED WITH STORE INSTRUCTIONS
. YOU CANNOT PUT THE ACCUMULATOR
INTO THE NUMBER 45... INSTRUCTIONS USIN
G THIS MODE USE 2 BYTES OF MEMORY AND
TAKE 2E-6 SECONDS TO EXECUTE..^.. AB
SOLUTE MODE:.. THIS MODE MOVES DATA BET
WEEN A REGISTER AND A GIVEN MEMOR
Y LOCATION. NO SPECIAL SYMBOLS ARE USE
D...E.G. LDX 1024 PUTS THE CONTENTS OF
MEMORY ADDRESS 1024 I
NTO THE X REGISTER..
IN BASIC, X=PEEK(1024).. STA $D020 P
UTS THE CONTENTS OF THE A
CCUMULATOR INTO MEMORY A
DDRESS $D020.. IN BASIC, POKE 53280,
A.. BOTH LOAD AND STORE INSTRUCTIONS MA
Y USE THIS MODE... ABSOLUTE MODE INSTR
UCTIONS ARE 3 BYTESLONG AND TAKE 4E-6 SE
CONDS TO EXECUTE..^.. A NOTE ON ZE
RO PAGE.. THE LOWEST 256 BYTES OF MEMOR
Y ($0000-$00FF) ARE USED IN SPECIAL WAYS
BY THE 6510 CHIP. THIS REGION IS CALLE
D "ZERO PAGE" AND SPECIAL ZERO PAGE ADD
RESSING MODES MAKE THIS AREA MORE VERSA
TILE THANOTHER REGIONS OF MEMORY... DUE
TO ITS USEFULNESS, THE BASIC INTER
PRETER MAKES HEAVY USE OF THIS AREA.
YOU MUST FIND AREAS TO USE WHICH WILL
NOT INTERFERE WITH ITS WORKING IF THIS
CONCERNS YOUR PROGRAM... THE AREAS $FB-
$FE AND $02-$06 ARE GUARANTEED SAFE.
ALSO,$92,$96,$9B-$9C, $9E-$9F,$A5-$A6,
$B0-$B3,$BE-$BF AND $C3-$C4 ARE AVAILABL
E IF THE CASSETTE PLAYERIS NOT BEING USE
D. MANY OTHER AREAS ARE AVAILABLE FOR TE
MPORARY WORK..^.. ZERO PAGE MODE:.. TH
IS MODE IS IDENTICAL TO ABSOLUTE MODE
EXCEPT FOR TAKING LESS MEMORY SPAC
E AND EXECUTING FASTER... MOST ASSEMBLE
RS USE ZERO PAGE MODE WHENEVER APPLIC
ABLE, SO IT IS WRITTEN EXACTLY LIKE AB
SOLUTE MODE...E.G. STY $FC STORES THE
CONTENTS OF THE Y REGIS
TER IN MEMORY LOCATION $F
C. IN BASIC, POKE 252,Y... LDA, LDX
, LDY, STA, STX AND STY MAY ALL USE ZE
RO PAGE MODE... ZERO PAGE MODE INSTRUCT
IONS ARE 2 BYTES LONG AND TAKE 3E-6
SECONDS TO EXECUTE..^.. "ABSOLUTE,X"
AND "ABSOLUTE,Y" MODES:.. THESE MODES
ARE SIMILAR TO ABSOLUTE MODE, BUT THE
X OR Y REGISTER, AS APPLICABLE, IS
ADDED TO THE ADDRESS GIVEN, BEFORE
FETCHING ITS CONTENTS. THEY ARE WRITT
EN LIKE ABSOLUTE MODE BUT FOLLOWED BY ",
X" OR ",Y"...E.G. LDY 512,X PUTS THE CON
TENTS OF MEMORY LOCAT
ION (512+X) INTO THE Y R
EGISTER.. IN BASIC, Y=PEEK(512+X)..
THE Y REGISTER CANNOT USE THE A
BSOLUTE,Y MODE AND THE X REGISTER C
ANNOT USE THE ABSOLUTE,X MODE... THESE
INSTRUCTIONS ARE 3 BYTES LONG AND TAKE
4E-6 OR 5E-6 SECONDS TO EXECUTE,
DEPENDING ON THE VALUES USED..^.. "ZERO
PAGE,X" MODE:.. THIS MODE IS SIMILAR T
O THE ABSOLUTE,XMODE BUT A ZERO PAGE ADD
RESS IS USED... MOST ASSEMBLERS USE ZER
O PAGE,X MODE WHENEVER APPLICABLE, SO I
T IS WRITTEN EXACTLY LIKE ABSOLUTE,X M
ODE...* AN IMPORTANT NOTE: IF THE ADDITI
ON PRODUCES A RESULT GREATER THAN $FF
, IT CONTINUES COUNTING AT $00, NOT $10
0..E.G. STA $FD,X PUTS THE CONTENTS OF T
HE ACCUMULATOR INTO MEMOR
Y LOCATION ($FD+X).
IN BASIC, POKE(253+X),A..* NOTE: IF X IS
$10, THE ACCUMULATOR WILL BE STORED
IN $0D, NOT $10D... (MORE ON NE
XT PAGE).^.. "ZERO PAGE,X" MODE: (CONTI
NUED).. LDX AND STX CANNOT USE THE ZERO
PAGE,XMODE, BUT CAN USE A UNIQUE ZERO P
AGE,Y MODE, WHICH OPERATES SIMILARLY...
ZERO PAGE,X MODE INSTRUCTIONS ARE 2
BYTES LONG AND TAKE 4E-6 SECONDS TO
EXECUTE... "INDEXED" (ABSOLUTE,X; ABSOL
UTE,Y; AND ZERO PAGE,X MODE) INSTRUCTION
S ARE OFTEN USED TO MOVE BLOCKS OF M
EMORY ABOUT, BY EXECUTING "LDA [SOUR
CE AREA],XSTA [DESTINATION AREA],X" REP
EATEDLY WITH A RANGE OF VALUES FOR X..
. [FOR THE CURIOUS: ABSOLUTE,X AND ,Y
MODE INSTRUCTIONS TAKE LONGER WHEN THE
ADDITION CAUSES A PAGE BOUNDARY (FROM
$XXFF TO $YY00) TO BE CROSSED.].^.. HE
RE IS AN EXAMPLE PROGRAM TO MOVE A SCRE
ENFUL OF INFORMATION FROM 49152- 5015
1 TO 1024-2023, THE LOCATION OF THE VIDE
O SCREEN IN MEMORY. SOME INSTRUCT- IONS
HAVE NOT YET BEEN DESCRIBED... LDX
#250 ;INITIALIZE X TO 250.LOOP DEX
;DECREMENT X (X=X-1). LDA 4915
2,X ;LOAD FROM 1ST QUARTER. STA 1024
,X ;STORE TO 1ST QUARTER. LDA 49402
,X ;LOAD FROM 2ND QUARTER. STA 1274,
X ;STORE TO 2ND QUARTER. LDA 49652,
X ;LOAD FROM 3RD QUARTER. STA 1524,X
;STORE TO 3RD QUARTER. LDA 49902,X
;LOAD FROM 4TH QUARTER. STA 1774,X
;STORE TO 4TH QUARTER. CPX #0
;. BNE LOOP ;IF X<>0 GOTO LOOP..
BECAUSE THE X REGISTER'S VALUE CANNOT B
E GREATER THAN 255 ($FF), THE VIDEO S
CREEN IS COPIED IN 4 250-BYTE QUARTERS.^
.. "INDIRECT,Y" MODE:.. THIS ADDRESSING
MODE SEEMS PECULIAR, BUT IS EXTREMELY
USEFUL. IT IS SIMILAR TO THE ABSOLUTE,Y
ADDRESSING MODE, BUT THE NUMBER TO WHI
CH THE Y REGISTER IS ADDED, INSTEAD OF
BEING FIXED AT THE TIME OF WRITING (
E.G. STX $400,Y), IS TAKEN FROM A ZERO
PAGE ADDRESS, WHICH ISSPECIFIED IN THE
INSTRUCTION... BECAUSE ADDRESSES (SAY,
$07F8) ARE 16 BITS LONG AND ONE MEMORY L
OCATION CAN ONLY HOLD 8 BITS, THEY ARE
STORED IN TWOMEMORY LOCATIONS. THE ORDE
R IS NOT $07 THEN $F8, BUT THE OTHER WA
Y AROUND. THE ZERO PAGE LOCATION HOLDS T
HE LAST HALF OF THE SECOND STAGE ADDRES
S ($F8) AND THE NEXT LOCATION IN ZERO
PAGE (LOCATION+1) HOLDS THE FIRST HALF (
$07)... (MORE ON NEXT PAGE).^..
"INDIRECT,Y" MODE: (CONTINUED).. THE
INDIRECT,Y MODE IS WRITTEN WITH THE ZE
RO PAGE ADDRESS ENCLOSED IN PARENT
HESES AND FOLLOWED BY ",Y"...E.G. LOCATI
ON $02 CONTAINS $F8. LOCATI
ON $03 CONTAINS $07. THE Y
REGISTER CONTAINS 2... LDA($02),Y LO
ADS THE ACCUMULATOR FR
OM THE ADDRESS $07FA, GI
VEN BY THE SUM OF THE VA
LUE IN LOCATIONS $02 TO
$03 ($07F8) AND THE Y RE
GISTER ($02)... THE INDIRECT,Y ADDRESSI
NG MODE CANNOT BE USED BY THE LDY OR STY
INSTRUCTIONS.... (MORE ON NEXT
PAGE).^.. "INDIRECT,Y" MODE: (CONTINUE
D).. INDIRECT,Y MODE INSTRUCTIONS ARE 2
BYTES LONG AND TAKE 5E-6 OR 6E-6 SEC
ONDSTO EXECUTE, DEPENDING ON THE VALUES
OF THE Y REGISTER AND THE ZERO PAGE
LOCATION... THIS MODE IS USED LIKE
THE ABSOLUTE,Y AND ,X MODES TO MOVE BLOC
KS OF MEMORY ABOUT, BUT THE AREAS AFFE
CTED CAN BE CHANGED BY PUTTING NEW VA
LUES INTO THE ZERO PAGE LOCATIONS REFER
ENCED, RATHER THAN REWRITING THE PROGRA
M...* TO REPEAT: YOU GIVE THE CPU A ZERO
PAGE ADDRESS. FROM THE TWO BYTES
STARTING AT THIS ADDRESS, A NUMBER
IS FETCHED AND THE Y REGISTER IS ADD
ED TO IT. THIS RESULTANT NUMBER IS THE
ADDRESS LOADED FROM OR STORED TO..^.
. "INDIRECT,X" MODE:.. THE NAME IS DECE
IVING. THE INDIRECT,X ADDRESSING MODE IS
QUITE DIFFERENT FROM THE INDIRECT, Y AD
DRESSING MODE. AS THIS MODE IS VE
RY RARELY USED, IT WILL BE COVERED ON
LY BRIEFLY... INSTEAD OF FETCHING AN AD
DRESS FROM ZERO PAGE AND ADDING A REGI
STER TO THIS SECOND ADDRESS, IN THE INDI
RECT,X MODE THE X REGISTER IS ADDED TO
THE ZERO PAGEADDRESS BEFORE FETCHING. NO
THING IS DONE TO THE NUMBER FETCHED.
IT IS USED AS THE ADDRESS WHICH IS LOA
DED FROM OR STORED TO... INDIRECT,X IN
STRUCTIONS ARE WRITTEN IN THE FORM "ST
A($FB,X)" WITH THE ",X" INSIDE THE PARE
NTHESES, TAKE 2 BYTES OF MEMORY AND TAKE
6E-6 SECONDS TO EXECUTE.^.. A NOTE
ON THE STATUS REGISTER.. THE PROCESSOR
STATUS REGISTER, (OR "P REGISTER"), IS A
N 8-BIT REGISTER WHOSE VARIOUS BITS (CA
LLED "FLAGS") KEEP TRACKOF THE CURRENT S
TATE OF THE CPU AND THE CONTENTS OF ITS
REGISTERS... VARIOUS INSTRUCTIONS SET T
HE BITS IN DIFFERENT WAYS. THE STORE IN
STRUCTIONS DO NOT AFFECT ANY BITS. THE
OTHER NUMBER-MOVING INSTRUCTIONS C
OVERED SO FAR ALL AFFECT THE "N" BIT,
SETTING IT TO 1 IF THE NUMBER BEING MOV
ED IS NEGATIVE (MORE ON THIS LATER
), AND THE "Z" BIT, SETTING IT IF THE N
UMBER IS ZERO. WHILE IT IS VERY IMPOR
TANT TO KNOWHOW VARIOUS INSTRUCTIONS SET
THE FLAGS, THE EFFECTS OF MOST INSTRUCT
IONS FOLLOW COMMONSENSE RULES...
(MORE ON NEXT PAGE).^.. A LIST OF
THE STATUS FLAGS..COLUMN NAME. SYMBO
L FUNCTION. 1) C CARRY FLAG-THIS
BIT CONTAINS THE 0 OR 1 CARRIED FRO
M THE LEFTMOST COLUMN OF A BINARY
ADDITION TO THE NON-EXISTENT NEXT
ONE. ALSO, SET MEANS "NO BORROW"
IN A SUBTRACTION. 2) Z ZERO FLAG-IS SET
WHEN THE NUMBER UNDER CONSIDERATIO
N IS ZERO.. 4) I INTERRUPT FLAG-USED IN
ADVANCED FUNCTIONS, THIS BIT SHOU
LD ALWAYS BE KEPT CLEAR (0) IN YOU
R PROGRAMS. 8) D DECIMAL FLAG-CAUSES AD
DITION AND SUBTRACTION INSTRUCT
IONS TO ACT AS IF $09+$01=$10. IT LO
OKS LIKE DECIMAL, BUT IS STORED A
S HEX. KEEP CLEARED (0) UNTIL YOU'RE
SURE YOU KNOW WHAT YOU'RE DOING..
. (MORE ON NEXT PAGE).^.. A LI
ST OF THE STATUS FLAGS (CONTINUED).COLUM
N NAME. SYMBOL FUNCTION.. 16
) B BREAK FLAG-USED IN ADVANCED
FUNCTIONS, THIS BIT IS SET WHEN
A BREAK INSTRUCTION HAS HALTED A
PROGRAM.. 32) 1 UNUSED FLAG-THIS BIT I
S ALWAYS SET TO ONE, AND CANNOT B
E CLEARED.. 64) V OVERFLOW FLAG-THIS BIT
IS THE EQUIVALENT OF THE CARRY
FLAG FOR THE ADDITION OF SIGNED (
PLUS AND MINUS) NUMBERS. DETAILS
LATER..128) N NEGATIVE FLAG-IS SET WHEN
THE NUMBER UNDER CONSIDERATION I
S NEGATIVE. MORE ON THIS SHORT
LY... ONLY THE FLAGS' EXISTENCE IS IMPO
RTANTTO REMEMBER FOR THE TIME BEING..^..
ARITHMETIC INSTRUCTIONS.. THE NE
XT SET OF INSTRUCTIONS DOES WHATCOMPUTER
S ARE SUPPOSED TO DO: ADDITION AND SUBT
RACTION. THE INSTRUCTIONS ARE AS FOLLO
WS:..ADC "ADD WITH CARRY".SBC "SUBTR
ACT WITH CARRY".. THESE TWO INSTRUCTION
S ARE SOMEWHAT SIMILAR TO LDA IN THAT
THEY CAN USE ALL THE SAME ADDRESSING MOD
ES, TAKE AS MUCH TIME AND SPACE, AND USE
THE ACCUMULATOR;BUT INSTEAD OF LOADING
A NUMBER INTO THEACCUMULATOR, THEY ADD I
T TO OR SUBTRACT IT FROM THE NUMBER ALRE
ADY THERE...* DON'T FORGET THAT SBC SUBT
RACTS FROM THE NUMBER ALREADY IN THE AC
CUMULATOR... (MORE ON NEXT PAGE
).^.. ARITHMETIC INSTRUCTIONS (CONTINUE
D).. BUT SAY YOU WANT TO ADD TWO NUMBER
S LARGER THAN ONE BYTE, THE LIMIT OF T
HE ACCUMULATOR. WHAT THEN? TO KEEP TRAC
K OFCARRIES DONE FROM ONE BYTE INTO ANOT
HER,THE 6510 HAS A CARRY FLAG, WHICH HOL
DS THE 0 OR 1 TO BE CARRIED. THE ADC AD
DS THE CARRY FLAG'S VALUE INTO THE RIGH
T COLUMN OF THE ADDITION IT'S PERFORMI
NG. SO IF WE WANT TO ADD TWO 16-BIT NUMB
ERS,HERE'S THE PROCEDURE:..LDA [ADDRESS:
LAST 8 BITS OF SOURCE 1].ADC [ADDRESS:LA
ST 8 BITS OF SOURCE 2].STA [ADDRESS:LAST
8 BITS OF DESTINATION] ; IF SOURCE 1+SO
URCE 2>$FF THEN C=1.LDA [ADDRESS:FIRST 8
BITS OF SOURCE 1].ADC [ADDRESS:FIRST 8
BITS OF SOURCE 2].STA [ADDRESS:FIRST 8 B
ITS OF DEST.].. (MORE ON NEXT P
AGE).^.. ARITHMETIC INSTRUCTIONS (CONTI
NUED).. EXAMPLE: CARRY.
FLAG.INTERNAL
1 <<<<< 1.CARRIES: 11 1
1.SOURCE 1 %01100111 11000
110 SOURCE 2 + %10000110 11100
011 -----------------------
--- %11101110 (1)10101
001.. STEP 2 STEP 1
.. THE RIGHT-HAND ADDITION (WHICH IS
PERFORMED FIRST) HAS A CARRY FROM THE
128'S COLUMN INTO THE 256'S COLUMN,
WHICH UNFORTUNATELY DOESN'T EXIST. SO
THE BIT IS PUT INTO THE CARRY FLAG, AN
D ADDED INTO THE NEXT ADDITION. IF THE
SECOND ADDITION REQUIRED A CARRY, IT
WOULD BE PUT INTO THE CARRY FLAG IN
TURN. AS IS, 0 IS PUT THERE..^.. ARIT
HMETIC INSTRUCTIONS (CONTINUED)..* IF TH
E C FLAG IS SET BEFORE THE FIRST ADDITIO
N, THE ADC WILL ADD 1 TO THE SUM - A MIS
TAKE. YOU MUST GUARANTEE THE CARRY I
S ZERO BY ADDING A CLC (CLEAR CARRY)
INSTRUCTION TO THE BEGINNING OF THE ROU
TINE. THIS IS A 1-BYTE INSTRUC
TION THAT TAKES 2E-6 SECONDS TO.EXECUTE.
.. IF YOU PREFER, THE CARRY FLAG CAN BE
THOUGHT OF AS AN EXTRA 256'S COLUMN IN
THE ADDITION PROCESS. .. THE CARRY FL
AG IS USED TWICE IN ANY 8 BIT ADDITION
. FIRST TO HOLD THE NUMBERTO BE CARRIED
INTO THE ADDITION AND THENTO HOLD THE NU
MBER TO BE CARRIED OUT... (MORE
ON NEXT PAGE).^.. ARITHMETIC INSTRUCTI
ONS (CONTINUED)... SBC USES THE CARRY FL
AG SIMILARLY, BUTTHE FLAG IS SET TO 0 WH
EN A "BORROW" IS DONE FROM THE NON-EXIST
ENT 256'S COLUMN,AND 1 OTHERWISE. SBC AL
SO SUBTRACTS ONE FROM THE RESULT IT IS C
OMPUTING IF THE CARRY WAS CLEAR BEFORE
THE INSTRUCTION, INDICATING A BORROW FRO
M THE BYTE BEING COMPUTED. TO ASSURE THE
FIRST SBC DOESN'T DO THIS WHEN YO
U DON'T WANT IT TO, ALWAYS USE SEC (SET
CARRY) BEFORE A SUBTRACTION OPERATION..
. AT THIS POINT IT IS PRUDENT TO DISCUS
SA POINT MENTIONED PREVIOUSLY ONLY IN
PASSING: NEGATIVE NUMBERS. AS THERE IS
NO SUCH THING AS A MINUS SIGN IN A BYTE
,YOU HAVE TO LET SOME POSITIVE NUMBERS
STAND FOR NEGATIVE ONES... (MO
RE ON NEXT PAGE).^.. ARITHMETIC INSTRUC
TIONS (CONTINUED).. THIS ISN'T REALLY T
HAT HARD. IF YOU REWIND A TAPE YOU SOM
ETIMES SEE THE COUNTER GOING ...002,
001,000,999,998....IN THIS SYSTEM, 999 R
EALLY MEANS -1 (ONETURN BEFORE 000). WHE
N PROGRAMMING THE 6510, THE SAME SYSTEM
IS USED IF YOU NEED TO USE NEGATIVE
NUMBERS. 255 (OR $FF OR %11111111) REA
LLY MEANS -1. 254 ($FE) REALLY MEANS -2
, 253 ($FD) REALLYMEANS -3, ETC... YOU
DO, HOWEVER, HAVE TO REMEMBER IF THE N
UMBER YOU'RE WORKING WITH IS ONE THAT
USES THE REGULAR NUMBER SYSTEM (0- 255)
OR IF IT USES THE SIGNED NUMBER SYSTE
M, CALLED "TWOS COMPLEMENT", AND 255 R
EALLY MEANS -1, ETC... (MORE ON NEXT
PAGE).^.. ARITHMETIC INSTRUCTIONS (CONT
INUED).. TO SEE THE USEFULNESS OF THIS
METHOD, CONSIDER ADDING 1 TO THE ONE-BYT
E VALUE -1 ($FF) USING ADC. THIS LEAVES
$00 IN THE ACCUMULATOR, THE ANSWER YOU
WANT. ITALSO LEAVES THE CARRY FLAG SET,
WHICH YOU MUST IGNORE. THE 6510 DOESN'
T KNOW IF THE NUMBERS YOU ARE ADDING AR
E SIGNEDOR NOT. THAT'S THE PROGRAMMER'S
JOB. IT JUST SETS THE CARRY FLAG BECAUSE
UNSIGNED NUMBERS WOULD NEED THE
FLAG... IF YOU WANT TO KNOW IF THE RESU
LT OF ASIGNED ADDITION OR SUBTRACTION IS
OUT OFRANGE, YOU MUST LOOK AT THE V FLA
G, WHICH THE 6510 SETS IF THIS IS TH
E CASE.AGAIN, IT DOESN'T KNOW IF THE NUM
BERS REALLY ARE SIGNED, SO IF THEY ARE
N'T, YOU MUST REMEMBER TO IGNORE THIS
FLAG... (MORE ON NEXT PAGE).^..
ARITHMETIC INSTRUCTIONS (CONTINUED)..
SO...THE 6510 SETS THE CARRY FLAG AS I
F YOU ARE USING UNSIGNED NUMBERS. A
T THE SAME TIME, IT SETS THE OVERFLOW (
V) FLAG AS IF YOU ARE USING SIGNED N
UMBERS. IT'S YOUR JOB TO LOOK AT THE R
IGHT FLAG IN A GIVEN SITUATION... ACTUA
LLY, THIS JOB OF YOURS ISN'T VERYHARD. T
HINK OF HOW EASY IT IS TO REMEMBE
R IF A GIVEN BASIC VARIABLE IS A STRING
OR A NUMERICAL VARIABLE. .. ONE LAST PR
OBLEM: WHAT HAPPENS WHEN THE POSITIVE
NUMBERS, GOING UP FROM 0, MEET THE NEGA
TIVES, GOING DOWN FROM 255?THE PLACE WHE
RE THIS HAPPENS IS BETWEEN 127 AND 128 (
WHICH REALLY MEANS -128)... (MO
RE ON NEXT PAGE).^.. ARITHMETIC INSTRUC
TIONS (CONTINUED).. THE REASON FOR THIS
CHOICE IS THAT 127IS %01111111 IN BINAR
Y, AND 128 (REALLY -128) IS %10000000. T
HUS, ALL THE NEGATIVE NUMBERS ($80
AND UP) HAVE THE BIT IN THE 128'S COLU
MN SET, WHILE ALL THE POSITIVES AND ZER
O ($7F AND DOWN) HAVE IT CLEAR - A SIM
PLE DISTINCTION... THE 6510 SETS THE N
(NEGATIVE) FLAG DEPENDING ON THIS BIT,
TO MAKE TELLING THE DIFFERENCE BETWEEN
POSITIVE AND NEGATIVE NUMBERS EASIE
R... IN A SIMILAR WAY, TWO-BYTE SIGNED
NUMBERS RANGE FROM %10000000 0000000
0 OR $8000 (-32768) TO %01111111 11111
111 OR $7FFF (32767), WITH THE LEFTMOST
BIT TELLING THE DIFFERENCE BETWEEN SIGNS
. ^.. CONDITIONAL BRANCHES:.. IN
BASIC, A CONDITIONAL BRANCH IS OF THE
FORM "IF X=0 THEN X=X+1". IF X<>0 THE
PROGRAM BRANCHES AROUND "X=X+1". THE
WAY THE 6510 (AND MOST CPU'S) WORK IS R
ATHER DIFFERENT. INSTEAD OF USING ONE
SPECIAL INSTRUCTION TO DO BOTH THE TEST
ING AND BRANCHING, THE EFFECTS OF OTHE
R INSTRUCTIONS ON THE FLAGS DO THE TEST
ING AND A SMALL GROUP OF INST
RUCTIONS BRANCH CONDITIONALLY DEPE
NDING ON THE STATES OF THE FLAGS... ALL
THE 6510'S CONDITIONAL BRANCHES USE T
HE RELATIVE ADDRESSING MODE TO IDENT
IFY THE BRANCH'S DESTINATION. A SIGNE
D 8-BIT VALUE INDICATES HOW MANY BYTES
FORWARDS OR BACK TO JUMP. A ZERO GIVES
THE SAME RESULT AS NOT JUMPING...
(MORE ON NEXT PAGE).^. CONDITIONAL
BRANCHES: (CONTINUED).. HERE ARE THE 8
CONDITIONAL BRANCHES:..ML MEANING.B
CC "BRANCH IF CARRY CLEAR" OBVIOUS..BC
S "BRANCH IF CARRY SET" OBVIOUS..BEQ
"BRANCH IF EQUAL" BRANCH IF THE Z
FLAG IS SET. THE REASON FOR THE
NAME COMES A BIT LATER..BNE "BRANCH I
F NOT EQUAL" BRANCH IF THE Z FLA
G IS CLEAR..BMI "BRANCH IF MINUS" BRAN
CH IF THE N (NEGATIVE) FLAG IS SET
..BPL "BRANCH IF PLUS" BRANCH IF THE N
FLAG IS CLEAR..BVS "BRANCH IF
OVERFLOW SET" BRANCH IF THE V FLAG
IS SET..BVC "BRANCH IF OVERFLOW CLEAR"
BRANCH IF THE V FLAG IS CLEAR...
(MORE ON NEXT PAGE).^.. CONDIT
IONAL BRANCHES: (CONTINUED).. ONE POINT
WORTH REPEATING IS HOW THE RELATIVE AD
DRESSING MODE WORKS. THE BRANCH
INSTRUCTIONS USE A ONE BYTE SIGNED VALU
E (THAT IS, FROM -128 TO 127)TO INDICATE
HOW FAR TO BRANCH FROM THE CURRENT POS
ITION. IF YOU GIVE A BRANCH INSTRUCTION
A VALUE OF 0, YOU ARE BRANCHING TO THE
INSTRUCTION JUST PAST THE BRANCH INST
RUCTION - WHERE THE CPU CONTINUES I
F THE BRANCH ISN'T TAKEN... THE REASON
FOR THIS 1-BYTE OFFSET IS THAT CONDITIO
NAL BRANCHES TEND TO BE SHORT, AND TH
IS SAVES MEMORY SPACE OVER A SYSTEM WHER
E THE WHOLE 2-BYTE TARGET OF THE BRANCH
MUST BE SPECIFIED... (MORE ON
NEXT PAGE).^.. CONDITIONAL BRANCHES: (C
ONTINUED).. ASSEMBLERS NORMALLY DO THE
JOB OF COUNTING BYTES FROM THE CURRE
NT ADDRESS FOR RELATIVE BRANCHES FOR YOU
. YOU JUST GIVE THE ASSEMBLER THE ADDRES
S (OR THE LABEL) YOU WISH TO BRANCH TO,
AND IT DOES THE REST...
BASIC. ML EQUIVALENT.
E.G. BVS LABEL IF V=1 GOTO LABEL. B
NE $C203 IF Z=0 GOTO $C203. BMI TES
T IF N=1 GOTO TEST. BCC 49357 IF
C=0 GOTO 49357.. CONDITIONAL BRANCHES A
RE 2 BYTES LONG AND TAKE 2E-6 SECONDS TO
EXECUTE, +1E-6 SECOND IF THE BRANCH IS
TAKEN, +1E-6 SECOND IF THE BRANCH CRO
SSES A PAGE BOUNDARY (THE $XXFF TO $
YY00 GAP)..^.. A SPECIAL INSTRUCTION:.
. THERE IS ONE INSTRUCTION SPECIALLY
DESIGNED TO WORK WITH THE BRANCH
INSTRUCTIONS: CMP. ("COMPARE").. CMP D
OES ITS WORK BY PERFORMING SBC'S FUNCTIO
NS (SETTING THE C, Z AND N FLAGS DEPENDI
NG ON THE SUBTRACTION'S RESULTS) EXCEPT:
.. 1) CMP IGNORES THE CARRY FLAG - IT
BEHAVES AS IF CARRY IS ALWAYS SET
.. 2) CMP DOES NOT AFFECT THE V FLAG...
3) CMP DOES NOT AFFECT THE VALUE IN
THE ACCUMULATOR - ONLY THE FLAGS...
THIS LAST IS VERY IMPORTANT, AS IT A
LLOWS A NUMBER TO BE COMPARED R
EPEATEDLY, WITH SEVERAL OTHER VALUES...
(MORE ON NEXT PAGE).^.. A SPEC
IAL INSTRUCTION: (CONTINUED).. YOU WILL
FIND CMP BEING USED A LOT IN ML PROGRAM
S, ESPECIALLY IN THE IMMEDIATEMODE. IT C
AN, HOWEVER, USE ANY OF THE ADDRESSING
MODES AVAILABLE TO LDA... BECAUSE THE
MOST COMMON WAY THE Z FLAGIS SET IS BY A
COMPARISON WITH A NUMBER EQUAL TO THAT
IN THE ACCUMULATOR, THE INSTRUCTION TH
AT BRANCHES IF THE Z FLAG IS SET IS CALL
ED BEQ (BRANCH IF EQUAL) AND NOT, SAY,
BRZ (BRANCH IF ZERO). THE SAME LOGIC APP
LIES TO BNE (NOT EQUAL)... ANOTHER COMM
ON USE OF CMP IS TO TEST WHICH OF TWO N
UMBERS IS GREATER. REMEMBER THAT
TAKING A GREATER NUMBER FROM A LESSER
LEAVES THE CARRY CLEAR..OTHERWISE, THE C
ARRY FLAG IS SET... (MORE ON NE
XT PAGE).^.. A SPECIAL INSTRUCTION: (CO
NTINUED)..EXAMPLE: A SAMPLE INPUT ROUTI
NE. -ACCEPTS ONLY NUMBERS, <RETU
RN> AND <DELETE>..GET JSR $FFCF
;THIS GETS A CHARACTER'S
;ASCII FROM THE KEYBOARD
;INTO THE ACCUMULATOR. CMP #13 ;CH
R$(13)=<RETURN>. BNE A1 ;IF NOT EQ
UAL, GO ON. [WHAT TO DO IN CASE OF A
RETURN].A1 CMP #20 ;CHR$(20)=<DELETE>
. BNE A2 ;IF NOT EQUAL, GO ON.
[WHAT TO DO IN CASE OF A DELETE].A2 CMP
#48 ;CHR$(48)="0". BCC GET ;IF A
<48,REPEAT LOOP. CMP #58 ;CHR$(57)=
"9". BCS GET ;IF A>=58, REPEAT LOOP
. [WHAT TO DO WITH A NUMBER KEY]..
(MORE ON NEXT PAGE).^.. A SPECIA
L INSTRUCTION: (CONTINUED).. BE CAREFUL
WITH BCC AND BCS AFTER A COMPARE. THE
Y'RE EASY TO MIX UP.. BCC BRANCHES IF T
HE NUMBER IN THE ACCUMULATOR IS LESS
THAN THE NUMBER IT IS BEING COMPARED T
O.. BCS BRANCHES IF THE NUMBER IN THE
ACCUMULATOR IS GREATER THAN OR EQUAL
TO THE NUMBER IT IS BEING COMPARED TO...
A CMP INSTRUCTION TAKES AS MUCH TIME
AND MEMORY AS THE EQUIVALENT LDA... OTH
ER HANDY INSTRUCTIONS ARE THE CPX AND C
PY INSTRUCTIONS, WHICH BEHAVE LIKE CMP B
UT REFER TO THE X AND Y REGISTERS RATHE
R THAN THE ACCUMULATOR. THEY MAY ONLY
USE THE IMMEDIATE, ABSOLUTE, AND ZERO
PAGE ADDRESSING MODES, TAKING THE SAME
TIME AND MEMORY AS LDA TO USE..^.. LOOP
ING INSTRUCTIONS.. A LOOP IS A SERIES O
F INSTRUCTIONS TO BE EXECUTED REPEATEDLY
. THE INSTRUCTIONSNECESSARY FOR SOME TYP
ES OF LOOP HAVE ALREADY BEEN COVERED.
EXAMPLE:..LABEL [TRY TO DO SOMETHING].
CMP [SUCCESS] ;DID IT SUCCEED?.
BNE LABEL ;IF NOT, TRY AGAIN.. THE
NEXT SET OF INSTRUCTIONS IS USED TO PE
RFORM THE ML EQUIVALENT OF A FOR- NEXT
LOOP...ML BASIC MEANING.INX X=X+1 "IN
CREMENT X" (BY ONE).INY Y=Y+1 "INCREMEN
T Y" (BY ONE).DEX X=X-1 "DECREMENT X" (
BY ONE).DEY Y=Y-1 "DECREMENT Y" (BY ONE
).. (MORE ON NEXT PAGE).^.. LO
OPING INSTRUCTIONS (CONTINUED).. USING
THESE, THE ML EQUIVALENT OF "FOR X=1
TO10:[DO SOMETHING]:NEXTX" IS:.. LDX
#0 ;START X AT 0.LOOP INX ;ADD 1
TO X. [DO SOMETHING]. CPX #10
;COMPARE X TO 10. BCC LOOP ;IF X<10
THEN DO IT AGAIN.. ALTERNATE LAST INSTR
UCTION:.. BNE LOOP ;IF X<>10 THEN DO
IT AGAIN. THE FIRST ENDING IS PREFERRE
D, BECAUSEIT WILL STOP THE LOOP IF SOMET
HING MAKES THE X REGISTER SAY, 11,
RATHER THAN LETTING IT GO ...254, 255
, 0... ON TO 10 AGAIN, POSSIBLY FOULING
THINGS UP ON THE WAY. IN SIMPLE TERMS, I
T'S SAFER.^.. UNCONDITIONAL JUMPS..
THE JMP ("JUMP") COMMAND IS THE ML
EQUIVALENT OF GOTO. JMP $A474 CAUSES THE
CPU TO START LOOKING FOR INSTRUCTIONS AT
MEMORY LOCATION $A474. THIS INSTRUCTION
IS 3 BYTES LONG AND TAKES 3E-6 SECONDS
TO EXECUTE... THE JSR ("JUMP TO SUBROUT
INE") COMMAND IS ML'S GOSUB. IT I
S USED LIKE JMP. THIS INSTRUCTION IS 3
BYTES LONG AND TAKES 6E-6 SECONDS TO E
XECUTE... RTS ("RETURN FROM SUBROUTINE"
) IS THE ML EQUIVALENT OF RETURN IN BASI
C. IT IS 1 BYTE LONG AND TAKES 6E-6 SECO
NDS TO EXECUTE. .. THE FLAGS ARE NOT
DISTURBED... (MORE ON NEXT PAGE
).^.. UNCONDITIONAL JUMPS: (CONTINUED).
. JMP CAN USE A SECOND ADDRESSING MODE:
INDIRECT. AN ADDRESS FROM $0000 TO $FFF
FIS THE LOCATION OF A TWO-BYTE NUMBER
THAT IS THE ADDRESS OF THE JUMP. IT'S
LIKE INDIRECT,Y, BUT YOU ARE NOT LIMITE
DTO ZERO PAGE AND NO REGISTERS ARE ADDED
IN. IT IS WRITTEN LIKE "JMP($0306)"...
THIS CAN BE USEFUL IF YOU WANT TO MOVEO
NE BIT OF A PROGRAM AROUND WITHOUT R
EWRITING A LOT OF JUMPS TO IT. YOU JUSTC
HANGE THE TWO BYTES THAT EVERYTHING E
LSE JUMPS TO INDIRECTLY.... BUT...JMP IN
DIRECT HAS A HARDWARE BUG.JMP ($XXFF) WI
LL NOT GET THE ADDRESS TO JUMP TO FROM $
XXFF AND $YY00, BUT FROM $XXFF AND $XX0
0! (YY=XX+1) DON'T IGNORE THIS USEFUL MO
DE, BUT BE WARY OF IT..^.. THE
END (FOR NOW).. THIS IS IT FOR THIS LES
SON, BUT COMINGUP IN FUTURE INSTALMENTS
ARE LOTS OF GOODIES:..- MORE ML INSTR
UCTIONS.- WHAT KIND OF THINGS TO DO IN M
L.- ACTUAL ML PROGRAMS.- HOW TO USE WHAT
'S ALREADY IN BASIC.- HOW TO USE KERNAL
ROUTINES.- HOW TO WRITE REALLY BIG ML PR
OGRAMS.- INTERRUPT ROUTINES.. YOU SHOUL
D NOW HAVE ENOUGH ML UNDER YOUR BELT T
O WRITE SOME PROGRAMS WHICH AT LEAST DO
SOMETHING. FIDDLE WITH THE ASSEMBLER A
ND GET A GRIP ON WHICH INSTRUCTION
S TO USE TO DO WHAT THINGS. THE NEXT (A
ND REALLY THE LAST) PAGE HAS SOME IDEAS
YOU MIGHT TRY TO EXPLORE..^.. T
HINGS TO TRY:..-THE AREA OF MEMORY FROM
1024 TO 2023 ($400 TO $7E7) IS WHAT'S
DISPLAYED ON THE SCREEN. TRY WRITING
PROGRAMS TO PLAY WITH THIS AREA...-I
F THE SCREEN IS FULL, TRY PLAYING W
ITH MEMORY FROM 55296 TO 56295 ($D800 T
O $DBE7, WHICH CONTROLS THE COLOURS OF T
HE SCREEN CHARACTERS...-ALWAYS KEEP A CO
PY OF ML PROGRAMS ON DISK OR SOME
OTHER SAFE PLACE. ML PROGRAMS HAVE A
HABIT OF KILLING THEMSELVES AND T
HE COMPUTER. BE READY FOR A FEW EARLY
DISAPPOINTMENTS...-READ SOME GOOD BOOKS
ON THE SUBJECT. ^^^^^^^^^
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL