URL
https://opencores.org/ocsvn/m65c02/m65c02/trunk
Subversion Repositories m65c02
[/] [m65c02/] [trunk/] [Src/] [M65C02-Test-Programs/] [Klaus2m5_Functional_Tests/] [65c02_ft.lst] - Rev 3
Compare with Previous | Blame | View Log
AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 1---------------------------------------------------------- 65c02_ft.a65 --------------------------------------------------------------------------------------------------------------------- Symbol Table -----------------------------------------------------------Symbol Value DecimalabsAN : $023f 575absANa : $024b 587absANa_ : $3ed6 16086absAN_ : $3eca 16074absEO : $0243 579absEOa : $024f 591absEOa_ : $3eda 16090absEO_ : $3ece 16078absflo : $0257 599absflo_ : $3ee2 16098absOR : $023b 571absORa : $0247 583absORa_ : $3ed2 16082absOR_ : $3ec6 16070absrlo : $0253 595absrlo_ : $3ede 16094abst : $0203 515abs1 : $0208 520abs1_ : $3e93 16019abs7f : $020c 524abs7f_ : $3e97 16023ada2 : $0203 515adfc : $00b2 178adiy2 : $00fc 252adiy2_ : $3e8f 16015adi2 : $00f8 248adi2_ : $3e8b 16011adrf : $00b7 183adrh : $00b6 182adrl : $00b5 181ad1 : $00b3 179ad2 : $00b4 180bin_test : $38fc 14588break : $0010 16brk_ret : $09bb 2491br1 : $0613 1555br11 : $065d 1629br12 : $0661 1633br13 : $0665 1637br14 : $0671 1649br2 : $0617 1559br3 : $061b 1563br4 : $0627 1575carry : $0001 1check_ram : <macro>chkadd : $3b90 15248chkadi : $3c0b 15371 *chkdad : $3a1f 14879chkdadi : $3a82 14978 *chkdsbi : $3a9d 15005 *chksbi : $3c26 15398 *AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 2---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------ckad1 : $3ba5 15269cmp_flag : <macro>code_segment : $0400 1024 *data_bss : $0208 520data_bss_end : $025b 603data_end : $3ee6 16102data_init : $3e93 16019data_segment : $0200 512 *decmode : $0008 8dec_test : $3968 14696eor_flag : <macro>fASL : $0221 545fASL_ : $3eac 16044fai : $0034 52fao : $0030 48far_ret : $08a8 2216fc : $0001 1fINC : $0236 566fINC_ : $3ec1 16065fLDx : $020d 525fLDx_ : $3e98 16024fLSR : $0229 553fLSR_ : $3eb4 16052fn : $0080 128fnc : $0081 129fnv : $00c0 192fnz : $0082 130fnzc : $0083 131fROL : $0221 545fROLc : $0225 549fROLc_ : $3eb0 16048fROL_ : $3eac 16044fROR : $0229 553fRORc : $022d 557fRORc_ : $3eb8 16056fROR_ : $3eb4 16052fv : $0040 64fvz : $0042 66fz : $0002 2fzc : $0003 3I_flag : $0003 3 *indAN : $00e0 224indAN_ : $3e73 15987indEO : $00e8 232indEO_ : $3e7b 15995indOR : $00f0 240indOR_ : $3e83 16003indt : $00d6 214indt_ : $3e69 15977ind1 : $00ca 202ind1_ : $3e5d 15965ind_ret : $091f 2335intdis : $0004 4inwt : $00de 222inwt_ : $3e71 15985AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 3---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------inw1 : $00d4 212inw1_ : $3e67 15975irq_a : $00b0 176irq_trap : $3dfa 15866irq_x : $00b1 177jsr_ret : $0967 2407 *ld_data : $0412 1042ld_zp : $0408 1032load_data_direct : $0000 0 *load_flag : <macro>minus : $0080 128m8 : $00ff 255m8i : $00fb 251nbr1 : $061f 1567nbr11 : $0669 1641nbr12 : $066b 1643nbr13 : $066d 1645nbr14 : $066f 1647nbr2 : $0621 1569nbr3 : $0623 1571nbr4 : $0625 1573next_test : <macro>nmi_trap : $3df4 15860overfl : $0040 64ptr_ind_ret : $3d5c 15708ptr_tst_ind : $3d5a 15706ROM_vectors : $0000 0 *rASL : $0211 529rASL_ : $3e9c 16028ram_chksm : $0201 513ram_top : $ffff -1 *range_adr : $04bc 1212 *range_end : $0547 1351range_fw : $0433 1075range_loop : $042b 1067range_ok : $0540 1344range_op : $04bb 1211reserv : $0020 32res_trap : $3df6 15862rINC : $0231 561rINC_ : $3ebc 16060rLSR : $0219 537rLSR_ : $3ea4 16036rROL : $0211 529rROLc : $0215 533rROLc_ : $3ea0 16032rROL_ : $3e9c 16028rROR : $0219 537rRORc : $021d 541rRORc_ : $3ea8 16040rROR_ : $3ea4 16036sba2 : $0204 516sbiy2 : $00fe 254sbiy2_ : $3e91 16017sbi2 : $00fa 250AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 4---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------sbi2_ : $3e8d 16013sb2 : $00b8 184set_a : <macro>set_abs : <macro>set_absx : <macro>set_ax : <macro>set_ay : <macro>set_stat : <macro>set_x : <macro>set_y : <macro>set_z : <macro>set_zx : <macro>skip0002 : $0424 1060skip0006 : $0550 1360skip0009 : $0563 1379skip0011 : $0567 1383skip0013 : $056b 1387skip0015 : $0571 1393skip0017 : $0575 1397skip0019 : $0579 1401skip0021 : $0580 1408skip0023 : $0584 1412skip0025 : $0588 1416skip0027 : $058e 1422skip0029 : $0592 1426skip0031 : $0596 1430skip0033 : $059d 1437skip0035 : $05a1 1441skip0037 : $05a5 1445skip0039 : $05ab 1451skip0041 : $05af 1455skip0043 : $05b3 1459skip0046 : $05bc 1468skip0048 : $05d1 1489skip0050 : $05d9 1497skip0052 : $05e0 1504skip0054 : $05e7 1511skip0056 : $05ee 1518skip0058 : $05f5 1525skip0061 : $05fe 1534skip0073 : $062f 1583skip0076 : $0636 1590skip0078 : $063d 1597skip0082 : $064d 1613skip0084 : $0651 1617skip0086 : $0655 1621skip0088 : $0659 1625skip0099 : $0679 1657skip0103 : $0681 1665skip0107 : $0689 1673skip0111 : $0691 1681skip0115 : $0699 1689skip0119 : $06a1 1697skip0123 : $06a9 1705skip0127 : $06b1 1713AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 5---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip0131 : $06b9 1721skip0134 : $06c2 1730skip0139 : $06da 1754skip0142 : $06e1 1761skip0147 : $06f1 1777skip0150 : $06f8 1784skip0155 : $0708 1800skip0158 : $070f 1807skip0163 : $071f 1823skip0166 : $0726 1830skip0171 : $0736 1846skip0174 : $073d 1853skip0179 : $074d 1869skip0182 : $0754 1876skip0187 : $0764 1892skip0190 : $076b 1899skip0195 : $077b 1915skip0198 : $0782 1922skip0203 : $0792 1938skip0206 : $0799 1945skip0211 : $07a9 1961skip0214 : $07b0 1968skip0219 : $07c0 1984skip0222 : $07c7 1991skip0227 : $07d7 2007skip0230 : $07de 2014skip0232 : $07e5 2021skip0234 : $07eb 2027skip0237 : $07f4 2036skip0242 : $0809 2057skip0245 : $0810 2064skip0250 : $0821 2081skip0253 : $0828 2088skip0256 : $0832 2098skip0261 : $084a 2122skip0264 : $0851 2129skip0266 : $0858 2136skip0268 : $085e 2142skip0273 : $0871 2161skip0276 : $0878 2168skip0278 : $087f 2175skip0280 : $0885 2181skip0283 : $088e 2190skip0287 : $08a6 2214skip0289 : $08ac 2220skip0291 : $08b0 2224skip0293 : $08b4 2228skip0295 : $08b8 2232skip0297 : $08be 2238skip0299 : $08c4 2244skip0301 : $08ca 2250skip0303 : $08d9 2265skip0305 : $08df 2271skip0307 : $08e3 2275skip0309 : $08e7 2279AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 6---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip0311 : $08eb 2283skip0313 : $08f1 2289skip0315 : $08f7 2295skip0317 : $08fd 2301skip0320 : $0906 2310skip0324 : $091d 2333skip0326 : $0928 2344skip0328 : $092c 2348skip0330 : $0930 2352skip0332 : $0934 2356skip0334 : $093a 2362skip0336 : $0940 2368skip0338 : $0946 2374skip0340 : $094d 2381skip0343 : $0956 2390skip0347 : $0971 2417skip0349 : $0975 2421skip0351 : $0979 2425skip0353 : $097d 2429skip0355 : $0983 2435skip0357 : $0989 2441skip0359 : $098f 2447skip0361 : $0996 2454skip0364 : $099f 2463skip0368 : $09c5 2501skip0370 : $09cb 2507skip0372 : $09d1 2513skip0375 : $09d8 2520skip0377 : $09df 2527skip0380 : $09e8 2536skip0386 : $09fb 2555skip0390 : $0a06 2566skip0394 : $0a11 2577skip0398 : $0a1c 2588skip0402 : $0a27 2599skip0406 : $0a32 2610skip0410 : $0a3d 2621skip0416 : $0a4b 2635skip0420 : $0a56 2646skip0424 : $0a61 2657skip0428 : $0a6c 2668skip0432 : $0a77 2679skip0436 : $0a82 2690skip0440 : $0a8d 2701skip0446 : $0a9b 2715skip0450 : $0aa6 2726skip0453 : $0ab0 2736skip0458 : $0ac4 2756skip0461 : $0acb 2763skip0464 : $0ad5 2773skip0467 : $0adc 2780skip0470 : $0ae6 2790skip0473 : $0aed 2797skip0476 : $0af7 2807skip0479 : $0afe 2814AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 7---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip0482 : $0b08 2824skip0485 : $0b0f 2831skip0490 : $0b1e 2846skip0493 : $0b25 2853skip0496 : $0b2f 2863skip0499 : $0b36 2870skip0502 : $0b40 2880skip0505 : $0b47 2887skip0508 : $0b51 2897skip0511 : $0b58 2904skip0514 : $0b62 2914skip0517 : $0b69 2921skip0522 : $0b79 2937skip0525 : $0b80 2944skip0528 : $0b8a 2954skip0531 : $0b91 2961skip0534 : $0b9b 2971skip0537 : $0ba2 2978skip0540 : $0bac 2988skip0543 : $0bb3 2995skip0546 : $0bbd 3005skip0549 : $0bc4 3012skip0554 : $0bd3 3027skip0557 : $0bda 3034skip0560 : $0be4 3044skip0563 : $0beb 3051skip0566 : $0bf5 3061skip0569 : $0bfc 3068skip0572 : $0c06 3078skip0575 : $0c0d 3085skip0578 : $0c17 3095skip0581 : $0c1e 3102skip0586 : $0c2e 3118skip0589 : $0c35 3125skip0592 : $0c42 3138skip0595 : $0c49 3145skip0598 : $0c56 3158skip0601 : $0c5d 3165skip0606 : $0c6b 3179skip0609 : $0c72 3186skip0612 : $0c7f 3199skip0615 : $0c86 3206skip0618 : $0c93 3219skip0621 : $0c9a 3226skip0626 : $0caa 3242skip0629 : $0cb1 3249skip0632 : $0cbe 3262skip0635 : $0cc5 3269skip0638 : $0cd2 3282skip0641 : $0cd9 3289skip0646 : $0ce7 3303skip0649 : $0cee 3310skip0652 : $0cfb 3323skip0655 : $0d02 3330skip0658 : $0d0f 3343AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 8---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip0661 : $0d16 3350skip0665 : $0d27 3367skip0668 : $0d2e 3374skip0671 : $0d3c 3388skip0674 : $0d43 3395skip0677 : $0d51 3409skip0680 : $0d58 3416skip0684 : $0d69 3433skip0687 : $0d70 3440skip0690 : $0d7e 3454skip0693 : $0d85 3461skip0696 : $0d93 3475skip0699 : $0d9a 3482skip0703 : $0dab 3499skip0706 : $0db2 3506skip0709 : $0dc0 3520skip0712 : $0dc7 3527skip0715 : $0dd5 3541skip0718 : $0ddc 3548skip0722 : $0ded 3565skip0725 : $0df4 3572skip0728 : $0e02 3586skip0731 : $0e09 3593skip0734 : $0e17 3607skip0737 : $0e1e 3614skip0740 : $0e28 3624skip0745 : $0e3e 3646skip0750 : $0e4d 3661skip0755 : $0e5d 3677skip0760 : $0e6c 3692skip0765 : $0e7c 3708skip0772 : $0e96 3734skip0775 : $0e9f 3743skip0779 : $0eab 3755skip0782 : $0eb4 3764skip0786 : $0ec0 3776skip0789 : $0ec9 3785skip0793 : $0ed8 3800skip0796 : $0ee1 3809skip0800 : $0eed 3821skip0803 : $0ef6 3830skip0807 : $0f02 3842skip0810 : $0f0b 3851skip0813 : $0f15 3861skip0817 : $0f34 3892skip0820 : $0f3e 3902skip0824 : $0f5b 3931skip0827 : $0f65 3941skip0831 : $0f83 3971skip0834 : $0f8d 3981skip0838 : $0fab 4011skip0841 : $0fb5 4021skip0843 : $0fc8 4040skip0845 : $0fd6 4054skip0848 : $0fe6 4070AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 9---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip0850 : $1012 4114skip0852 : $101e 4126skip0855 : $102e 4142skip0859 : $104d 4173skip0862 : $1057 4183skip0866 : $1074 4212skip0869 : $107e 4222skip0873 : $109b 4251skip0876 : $10a5 4261skip0880 : $10c2 4290skip0883 : $10cc 4300skip0885 : $10dd 4317skip0887 : $10eb 4331skip0890 : $10fb 4347skip0892 : $1125 4389skip0894 : $1131 4401skip0897 : $1141 4417skip0901 : $115f 4447skip0904 : $1169 4457skip0908 : $1182 4482skip0911 : $118c 4492skip0915 : $11a5 4517skip0918 : $11af 4527skip0922 : $11c8 4552skip0925 : $11d2 4562skip0929 : $11eb 4587skip0932 : $11f5 4597skip0936 : $120e 4622skip0939 : $1218 4632skip0943 : $1231 4657skip0946 : $123b 4667skip0950 : $1254 4692skip0953 : $125e 4702skip0957 : $1276 4726skip0960 : $1280 4736skip0964 : $1298 4760skip0967 : $12a2 4770skip0971 : $12ba 4794skip0974 : $12c4 4804skip0978 : $12dc 4828skip0981 : $12e6 4838skip0985 : $12ff 4863skip0988 : $1309 4873skip0992 : $1322 4898skip0995 : $132c 4908skip0999 : $1345 4933skip1002 : $134f 4943skip1006 : $1368 4968skip1009 : $1372 4978skip1013 : $1380 4992skip1016 : $138a 5002skip1020 : $1398 5016skip1023 : $13a2 5026skip1027 : $13b0 5040skip1030 : $13ba 5050AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 10---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip1034 : $13c8 5064skip1037 : $13d2 5074skip1041 : $13e0 5088skip1044 : $13ea 5098skip1048 : $13f8 5112skip1051 : $1402 5122skip1055 : $1410 5136skip1058 : $141a 5146skip1062 : $1428 5160skip1065 : $1432 5170skip1067 : $143e 5182skip1069 : $144c 5196skip1071 : $1459 5209skip1073 : $1467 5223skip1075 : $1474 5236skip1077 : $1482 5250skip1079 : $148f 5263skip1081 : $149d 5277skip1084 : $14a9 5289skip1088 : $14c7 5319skip1091 : $14d1 5329skip1095 : $14ea 5354skip1098 : $14f4 5364skip1102 : $150d 5389skip1105 : $1517 5399skip1109 : $1530 5424skip1112 : $153a 5434skip1116 : $1553 5459skip1119 : $155d 5469skip1123 : $1576 5494skip1126 : $1580 5504skip1130 : $1599 5529skip1133 : $15a3 5539skip1137 : $15bc 5564skip1140 : $15c6 5574skip1144 : $15df 5599skip1147 : $15e9 5609skip1151 : $1602 5634skip1154 : $160c 5644skip1158 : $1625 5669skip1161 : $162f 5679skip1165 : $1648 5704skip1168 : $1652 5714skip1172 : $166b 5739skip1175 : $1675 5749skip1179 : $168e 5774skip1182 : $1698 5784skip1186 : $16b1 5809skip1189 : $16bb 5819skip1193 : $16d4 5844skip1196 : $16de 5854skip1200 : $16ec 5868skip1203 : $16f6 5878skip1207 : $1704 5892skip1210 : $170e 5902AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 11---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip1214 : $171c 5916skip1217 : $1726 5926skip1221 : $1734 5940skip1224 : $173e 5950skip1228 : $174c 5964skip1231 : $1756 5974skip1235 : $1764 5988skip1238 : $176e 5998skip1242 : $177c 6012skip1245 : $1786 6022skip1249 : $1794 6036skip1252 : $179e 6046skip1254 : $17aa 6058skip1256 : $17b8 6072skip1258 : $17c5 6085skip1260 : $17d3 6099skip1262 : $17e0 6112skip1264 : $17ee 6126skip1266 : $17fb 6139skip1268 : $1809 6153skip1271 : $1815 6165skip1275 : $1833 6195skip1278 : $183d 6205skip1282 : $1859 6233skip1285 : $1863 6243skip1289 : $187e 6270skip1292 : $1888 6280skip1296 : $18a3 6307skip1299 : $18ad 6317skip1301 : $18be 6334skip1303 : $18cc 6348skip1306 : $18dc 6364skip1310 : $18fa 6394skip1313 : $1904 6404skip1317 : $1920 6432skip1320 : $192a 6442skip1322 : $193d 6461skip1326 : $195c 6492skip1329 : $1966 6502skip1333 : $1981 6529skip1336 : $198b 6539skip1338 : $199e 6558skip1342 : $19bf 6591skip1345 : $19c9 6601skip1349 : $19e8 6632skip1352 : $19f2 6642skip1354 : $1a07 6663skip1357 : $1a17 6679skip1359 : $1a40 6720skip1361 : $1a4c 6732skip1363 : $1a71 6769skip1365 : $1a92 6802skip1367 : $1ab6 6838skip1370 : $1ac6 6854skip1374 : $1ae1 6881AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 12---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip1377 : $1aeb 6891skip1381 : $1b01 6913skip1384 : $1b0b 6923skip1388 : $1b21 6945skip1391 : $1b2b 6955skip1395 : $1b41 6977skip1398 : $1b4b 6987skip1402 : $1b61 7009skip1405 : $1b6b 7019skip1409 : $1b81 7041skip1412 : $1b8b 7051skip1416 : $1ba1 7073skip1419 : $1bab 7083skip1423 : $1bc1 7105skip1426 : $1bcb 7115skip1430 : $1be1 7137skip1433 : $1beb 7147skip1437 : $1c01 7169skip1440 : $1c0b 7179skip1444 : $1c21 7201skip1447 : $1c2b 7211skip1451 : $1c41 7233skip1454 : $1c4b 7243skip1458 : $1c61 7265skip1461 : $1c6b 7275skip1465 : $1c81 7297skip1468 : $1c8b 7307skip1472 : $1ca1 7329skip1475 : $1cab 7339skip1479 : $1cc1 7361skip1482 : $1ccb 7371skip1486 : $1cd9 7385skip1489 : $1ce3 7395skip1493 : $1cf1 7409skip1496 : $1cfb 7419skip1500 : $1d09 7433skip1503 : $1d13 7443skip1507 : $1d21 7457skip1510 : $1d2b 7467skip1514 : $1d39 7481skip1517 : $1d43 7491skip1521 : $1d51 7505skip1524 : $1d5b 7515skip1528 : $1d69 7529skip1531 : $1d73 7539skip1535 : $1d81 7553skip1538 : $1d8b 7563skip1540 : $1d97 7575skip1542 : $1da5 7589skip1544 : $1db2 7602skip1546 : $1dc0 7616skip1548 : $1dcd 7629skip1550 : $1ddb 7643skip1552 : $1de8 7656skip1554 : $1df6 7670AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 13---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip1557 : $1e02 7682skip1562 : $1e17 7703skip1565 : $1e1e 7710skip1570 : $1e2f 7727skip1573 : $1e36 7734skip1578 : $1e47 7751skip1581 : $1e4e 7758skip1586 : $1e5f 7775skip1589 : $1e66 7782skip1594 : $1e77 7799skip1597 : $1e7e 7806skip1602 : $1e8f 7823skip1605 : $1e96 7830skip1610 : $1ea7 7847skip1613 : $1eae 7854skip1618 : $1ebf 7871skip1621 : $1ec6 7878skip1626 : $1ed8 7896skip1629 : $1edf 7903skip1634 : $1ef1 7921skip1637 : $1ef8 7928skip1642 : $1f0a 7946skip1645 : $1f11 7953skip1650 : $1f23 7971skip1653 : $1f2a 7978skip1658 : $1f3c 7996skip1661 : $1f43 8003skip1666 : $1f55 8021skip1669 : $1f5c 8028skip1674 : $1f6e 8046skip1677 : $1f75 8053skip1682 : $1f87 8071skip1685 : $1f8e 8078skip1688 : $1f98 8088skip1694 : $1fae 8110skip1698 : $1fbb 8123skip1701 : $1fc7 8135skip1704 : $1fce 8142skip1710 : $1fe0 8160skip1714 : $1fed 8173skip1717 : $1ff9 8185skip1720 : $2000 8192skip1726 : $2013 8211skip1730 : $2021 8225skip1733 : $202e 8238skip1736 : $2035 8245skip1742 : $2048 8264skip1746 : $2056 8278skip1749 : $2063 8291skip1752 : $206a 8298skip1758 : $207c 8316skip1762 : $2089 8329skip1765 : $2095 8341skip1768 : $209c 8348skip1774 : $20ae 8366AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 14---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip1778 : $20bb 8379skip1781 : $20c7 8391skip1784 : $20ce 8398skip1787 : $20d8 8408skip1793 : $20ee 8430skip1797 : $20fb 8443skip1800 : $2107 8455skip1803 : $210e 8462skip1809 : $2120 8480skip1813 : $212d 8493skip1816 : $2139 8505skip1819 : $2140 8512skip1825 : $2153 8531skip1829 : $2161 8545skip1832 : $216e 8558skip1835 : $2175 8565skip1841 : $2188 8584skip1845 : $2196 8598skip1848 : $21a3 8611skip1851 : $21aa 8618skip1857 : $21bc 8636skip1861 : $21c9 8649skip1864 : $21d5 8661skip1867 : $21dc 8668skip1873 : $21ee 8686skip1877 : $21fb 8699skip1880 : $2207 8711skip1883 : $220e 8718skip1886 : $2218 8728skip1891 : $222d 8749skip1894 : $2234 8756skip1899 : $2245 8773skip1902 : $224c 8780skip1907 : $225d 8797skip1910 : $2264 8804skip1915 : $2275 8821skip1918 : $227c 8828skip1923 : $228d 8845skip1926 : $2294 8852skip1931 : $22a5 8869skip1934 : $22ac 8876skip1939 : $22be 8894skip1942 : $22c5 8901skip1947 : $22d7 8919skip1950 : $22de 8926skip1955 : $22f0 8944skip1958 : $22f7 8951skip1963 : $2309 8969skip1966 : $2310 8976skip1971 : $2322 8994skip1974 : $2329 9001skip1979 : $233b 9019skip1982 : $2342 9026skip1987 : $2353 9043skip1990 : $235a 9050AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 15---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip1995 : $236b 9067skip1998 : $2372 9074skip2003 : $2383 9091skip2006 : $238a 9098skip2011 : $239b 9115skip2014 : $23a2 9122skip2019 : $23b3 9139skip2022 : $23ba 9146skip2027 : $23cb 9163skip2030 : $23d2 9170skip2035 : $23e5 9189skip2038 : $23ec 9196skip2043 : $23fd 9213skip2046 : $2404 9220skip2051 : $2415 9237skip2054 : $241c 9244skip2059 : $242d 9261skip2062 : $2434 9268skip2067 : $2445 9285skip2070 : $244c 9292skip2075 : $245d 9309skip2078 : $2464 9316skip2083 : $2476 9334skip2086 : $247d 9341skip2091 : $248f 9359skip2094 : $2496 9366skip2099 : $24a8 9384skip2102 : $24af 9391skip2107 : $24c1 9409skip2110 : $24c8 9416skip2115 : $24da 9434skip2118 : $24e1 9441skip2123 : $24f3 9459skip2126 : $24fa 9466skip2131 : $2510 9488skip2134 : $2517 9495skip2139 : $2529 9513skip2142 : $2530 9520skip2147 : $2542 9538skip2150 : $2549 9545skip2155 : $255b 9563skip2158 : $2562 9570skip2163 : $2574 9588skip2166 : $257b 9595skip2171 : $258d 9613skip2174 : $2594 9620skip2179 : $25a5 9637skip2182 : $25ac 9644skip2187 : $25bd 9661skip2190 : $25c4 9668skip2195 : $25d5 9685skip2198 : $25dc 9692skip2203 : $25ed 9709skip2206 : $25f4 9716skip2211 : $2605 9733AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 16---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip2214 : $260c 9740skip2219 : $261d 9757skip2222 : $2624 9764skip2227 : $2635 9781skip2230 : $263c 9788skip2235 : $264d 9805skip2238 : $2654 9812skip2243 : $2665 9829skip2246 : $266c 9836skip2251 : $267d 9853skip2254 : $2684 9860skip2259 : $2695 9877skip2262 : $269c 9884skip2267 : $26ad 9901skip2270 : $26b4 9908skip2273 : $26be 9918skip2278 : $26d4 9940skip2281 : $26de 9950skip2286 : $26f2 9970skip2289 : $26fc 9980skip2294 : $2710 10000skip2297 : $271a 10010skip2302 : $272e 10030skip2305 : $2738 10040skip2310 : $274c 10060skip2313 : $2756 10070skip2318 : $276a 10090skip2321 : $2774 10100skip2326 : $2788 10120skip2329 : $2792 10130skip2334 : $27a6 10150skip2337 : $27b0 10160skip2342 : $27c4 10180skip2345 : $27ce 10190skip2350 : $27e2 10210skip2353 : $27ec 10220skip2358 : $2800 10240skip2361 : $280a 10250skip2366 : $281e 10270skip2369 : $2828 10280skip2372 : $2834 10292skip2377 : $284f 10319skip2380 : $2859 10329skip2385 : $2872 10354skip2388 : $287c 10364skip2393 : $2895 10389skip2396 : $289f 10399skip2401 : $28b8 10424skip2404 : $28c2 10434skip2409 : $28db 10459skip2412 : $28e5 10469skip2417 : $28fe 10494skip2420 : $2908 10504skip2425 : $2921 10529skip2428 : $292b 10539AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 17---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip2433 : $2944 10564skip2436 : $294e 10574skip2441 : $2967 10599skip2444 : $2971 10609skip2449 : $298a 10634skip2452 : $2994 10644skip2457 : $29ad 10669skip2460 : $29b7 10679skip2465 : $29d0 10704skip2468 : $29da 10714skip2471 : $29e6 10726skip2476 : $2a04 10756skip2479 : $2a0e 10766skip2484 : $2a2a 10794skip2487 : $2a34 10804skip2492 : $2a50 10832skip2495 : $2a5a 10842skip2500 : $2a76 10870skip2503 : $2a80 10880skip2508 : $2a9c 10908skip2511 : $2aa6 10918skip2516 : $2ac2 10946skip2519 : $2acc 10956skip2524 : $2ae8 10984skip2527 : $2af2 10994skip2532 : $2b0e 11022skip2535 : $2b18 11032skip2540 : $2b34 11060skip2543 : $2b3e 11070skip2548 : $2b5a 11098skip2551 : $2b64 11108skip2556 : $2b80 11136skip2559 : $2b8a 11146skip2564 : $2ba6 11174skip2567 : $2bb0 11184skip2570 : $2bbc 11196skip2575 : $2bd7 11223skip2578 : $2be1 11233skip2583 : $2bfa 11258skip2586 : $2c04 11268skip2591 : $2c1d 11293skip2594 : $2c27 11303skip2599 : $2c40 11328skip2602 : $2c4a 11338skip2607 : $2c63 11363skip2610 : $2c6d 11373skip2615 : $2c86 11398skip2618 : $2c90 11408skip2623 : $2ca9 11433skip2626 : $2cb3 11443skip2631 : $2ccc 11468skip2634 : $2cd6 11478skip2639 : $2cef 11503skip2642 : $2cf9 11513skip2647 : $2d12 11538AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 18---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip2650 : $2d1c 11548skip2655 : $2d35 11573skip2658 : $2d3f 11583skip2663 : $2d58 11608skip2666 : $2d62 11618skip2669 : $2d6e 11630skip2674 : $2d8c 11660skip2677 : $2d96 11670skip2682 : $2db2 11698skip2685 : $2dbc 11708skip2690 : $2dd8 11736skip2693 : $2de2 11746skip2698 : $2dfe 11774skip2701 : $2e08 11784skip2706 : $2e24 11812skip2709 : $2e2e 11822skip2714 : $2e4a 11850skip2717 : $2e54 11860skip2722 : $2e70 11888skip2725 : $2e7a 11898skip2730 : $2e96 11926skip2733 : $2ea0 11936skip2738 : $2ebc 11964skip2741 : $2ec6 11974skip2746 : $2ee2 12002skip2749 : $2eec 12012skip2754 : $2f08 12040skip2757 : $2f12 12050skip2762 : $2f2e 12078skip2765 : $2f38 12088skip2768 : $2f44 12100skip2773 : $2f5f 12127skip2776 : $2f69 12137skip2781 : $2f89 12169skip2784 : $2f93 12179skip2789 : $2fb6 12214skip2792 : $2fc0 12224skip2797 : $2fe0 12256skip2800 : $2fea 12266skip2803 : $3000 12288skip2808 : $301e 12318skip2811 : $3028 12328skip2816 : $304c 12364skip2819 : $3056 12374skip2824 : $307d 12413skip2827 : $3087 12423skip2832 : $30ab 12459skip2835 : $30b5 12469skip2838 : $30cc 12492skip2843 : $30e7 12519skip2846 : $30f1 12529skip2851 : $3113 12563skip2854 : $311d 12573skip2859 : $3140 12608skip2862 : $314a 12618AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 19---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip2867 : $316c 12652skip2870 : $3176 12662skip2873 : $318c 12684skip2878 : $31aa 12714skip2881 : $31b4 12724skip2886 : $31da 12762skip2889 : $31e4 12772skip2894 : $320b 12811skip2897 : $3215 12821skip2902 : $323b 12859skip2905 : $3245 12869skip2908 : $325c 12892skip2913 : $3279 12921skip2916 : $3283 12931skip2921 : $329e 12958skip2924 : $32a8 12968skip2929 : $32c2 12994skip2932 : $32cc 13004skip2937 : $32e6 13030skip2940 : $32f0 13040skip2945 : $330c 13068skip2948 : $3316 13078skip2953 : $3332 13106skip2956 : $333c 13116skip2961 : $3352 13138skip2964 : $335c 13148skip2969 : $3372 13170skip2972 : $337c 13180skip2977 : $3393 13203skip2980 : $339d 13213skip2985 : $33b4 13236skip2988 : $33be 13246skip2993 : $33d5 13269skip2996 : $33df 13279skip3001 : $33f6 13302skip3004 : $3400 13312skip3009 : $3418 13336skip3012 : $3422 13346skip3017 : $343c 13372skip3020 : $3446 13382skip3025 : $345e 13406skip3028 : $3468 13416skip3033 : $347e 13438skip3036 : $3488 13448skip3039 : $3494 13460skip3044 : $34b1 13489skip3047 : $34bb 13499skip3052 : $34d6 13526skip3055 : $34e0 13536skip3060 : $34fa 13562skip3063 : $3504 13572skip3068 : $351e 13598skip3071 : $3528 13608skip3076 : $3544 13636skip3079 : $354e 13646AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 20---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip3084 : $356a 13674skip3087 : $3574 13684skip3092 : $358a 13706skip3095 : $3594 13716skip3100 : $35aa 13738skip3103 : $35b4 13748skip3108 : $35cb 13771skip3111 : $35d5 13781skip3116 : $35ec 13804skip3119 : $35f6 13814skip3124 : $360d 13837skip3127 : $3617 13847skip3132 : $362e 13870skip3135 : $3638 13880skip3140 : $3650 13904skip3143 : $365a 13914skip3148 : $3674 13940skip3151 : $367e 13950skip3156 : $3696 13974skip3159 : $36a0 13984skip3164 : $36b6 14006skip3167 : $36c0 14016skip3170 : $36cc 14028skip3175 : $36e9 14057skip3178 : $36f3 14067skip3183 : $370e 14094skip3186 : $3718 14104skip3191 : $3732 14130skip3194 : $373c 14140skip3199 : $3756 14166skip3202 : $3760 14176skip3207 : $377c 14204skip3210 : $3786 14214skip3215 : $37a2 14242skip3218 : $37ac 14252skip3223 : $37c2 14274skip3226 : $37cc 14284skip3231 : $37e2 14306skip3234 : $37ec 14316skip3239 : $3803 14339skip3242 : $380d 14349skip3247 : $3824 14372skip3250 : $382e 14382skip3255 : $3845 14405skip3258 : $384f 14415skip3263 : $3866 14438skip3266 : $3870 14448skip3271 : $3888 14472skip3274 : $3892 14482skip3279 : $38ac 14508skip3282 : $38b6 14518skip3287 : $38ce 14542skip3290 : $38d8 14552skip3295 : $38ee 14574skip3298 : $38f8 14584AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 21---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip3301 : $390a 14602skip3304 : $3976 14710skip3306 : $3a1d 14877skip3310 : $3a2b 14891skip3312 : $3a34 14900skip3314 : $3a41 14913skip3316 : $3a4a 14922skip3318 : $3a58 14936skip3320 : $3a61 14945skip3322 : $3a6f 14959skip3324 : $3a78 14968skip3326 : $3a8a 14986skip3328 : $3a93 14995skip3330 : $3aa5 15013skip3332 : $3aae 15022skip3334 : $3abb 15035skip3336 : $3ac4 15044skip3338 : $3ad1 15057skip3340 : $3ada 15066skip3342 : $3ae8 15080skip3344 : $3af1 15089skip3346 : $3aff 15103skip3348 : $3b08 15112skip3350 : $3b16 15126skip3352 : $3b1f 15135skip3354 : $3b2d 15149skip3356 : $3b36 15158skip3358 : $3b43 15171skip3360 : $3b4c 15180skip3362 : $3b59 15193skip3364 : $3b62 15202skip3366 : $3b6f 15215skip3368 : $3b78 15224skip3370 : $3b85 15237skip3372 : $3b8e 15246skip3374 : $3bb4 15284skip3376 : $3bbd 15293skip3378 : $3bca 15306skip3380 : $3bd3 15315skip3382 : $3be1 15329skip3384 : $3bea 15338skip3386 : $3bf8 15352skip3388 : $3c01 15361skip3390 : $3c13 15379skip3392 : $3c1c 15388skip3394 : $3c2e 15406skip3396 : $3c37 15415skip3398 : $3c44 15428skip3400 : $3c4d 15437skip3402 : $3c5a 15450skip3404 : $3c63 15459skip3406 : $3c71 15473skip3408 : $3c7a 15482skip3410 : $3c88 15496skip3412 : $3c91 15505AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 22---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip3414 : $3c9f 15519skip3416 : $3ca8 15528skip3418 : $3cb6 15542skip3420 : $3cbf 15551skip3422 : $3ccc 15564skip3424 : $3cd5 15573skip3426 : $3ce2 15586skip3428 : $3ceb 15595skip3430 : $3cf8 15608skip3432 : $3d01 15617skip3434 : $3d0e 15630skip3436 : $3d17 15639skip3438 : $3d24 15652skip3440 : $3d28 15656skip3442 : $3d2c 15660skip3444 : $3d30 15664skip3446 : $3d36 15670skip3448 : $3d3c 15676skip3450 : $3d42 15682skip3452 : $3d4c 15692skip3457 : $3d6b 15723skip3459 : $3d6f 15727skip3461 : $3d73 15731skip3463 : $3d77 15735skip3465 : $3d7d 15741skip3467 : $3d83 15747skip3469 : $3d89 15753skip3471 : $3d93 15763skip3476 : $3dad 15789skip3478 : $3db1 15793skip3480 : $3db5 15797skip3482 : $3db9 15801skip3484 : $3dbf 15807skip3486 : $3dc5 15813skip3488 : $3dcb 15819skip3490 : $3dd5 15829skip3492 : $3dde 15838skip3494 : $3de7 15847skip3501 : $3e04 15876skip3503 : $3e0a 15882skip3505 : $3e10 15888skip3508 : $3e1e 15902skip3510 : $3e25 15909skip3512 : $3e2c 15916skip3514 : $3e35 15925skip3516 : $3e3e 15934skip_bin_test : $0000 0 *skip_dec_test : $0000 0 *skip_part_1 : $0000 0 *stack_top : $01ff 511 *start : $0400 1024success : <macro>tadd : $392e 14638tadd1 : $3940 14656tand : $3263 12899AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 23---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tandi1 : $3270 12912tandi2 : $3295 12949tand1 : $3288 12936tand10 : $33c3 13251tand11 : $33e4 13284tand12 : $3407 13319tand13 : $342b 13355tand14 : $344d 13389tand15 : $346d 13421tand2 : $32ad 12973tand3 : $32d1 13009tand4 : $32f5 13045tand5 : $331b 13083tand6 : $3341 13121tand7 : $3361 13153tand8 : $3381 13185tand9 : $33a2 13218tasl : $26c5 9925tasl1 : $26e3 9955tasl2 : $283b 10299tasl3 : $285e 10334tasl4 : $29ed 10733tasl5 : $2a13 10771tasl6 : $2bc3 11203tasl7 : $2be6 11238tasl8 : $2d75 11637tasl9 : $2d9b 11675tdad : $3998 14744tdad1 : $39aa 14762tdad2 : $39ba 14778tdad3 : $39bc 14780tdad4 : $39d6 14806tdad5 : $39db 14811tdad6 : $39ff 14847tdad7 : $3a13 14867tdec : $2f79 12153tdec1 : $2fa0 12192tdec10 : $2fd0 12240tdec11 : $2ff7 12279tdec12 : $3099 12441tdec13 : $30c3 12483tdec14 : $315a 12634tdec15 : $3183 12675tdec16 : $3226 12838tdec17 : $3253 12883tdec2 : $303a 12346tdec3 : $3064 12388tdec4 : $3101 12545tdec5 : $312a 12586tdec6 : $31c5 12741tdec7 : $31f2 12786teor : $349b 13467teori1 : $34a8 13480teori2 : $34cd 13517teor1 : $34c0 13504AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 24---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------teor10 : $35fb 13819teor11 : $361c 13852teor12 : $363f 13887teor13 : $3663 13923teor14 : $3685 13957teor15 : $36a5 13989teor2 : $34e5 13541teor3 : $3509 13577teor4 : $352d 13613teor5 : $3553 13651teor6 : $3579 13689teor7 : $3599 13721teor8 : $35b9 13753teor9 : $35da 13786test_bne : $055b 1371test_case : $0200 512test_far : $3d1b 15643test_ind : $3d62 15714test_jsr : $3da4 15780test_near : $08db 2267test_num : $002a 42 *tinc : $2f4f 12111tinc1 : $2f72 12146tinc10 : $2fa6 12198tinc11 : $2fc9 12233tinc12 : $306b 12395tinc13 : $3091 12433tinc14 : $312e 12590tinc15 : $3153 12627tinc16 : $31f6 12790tinc17 : $321f 12831tinc2 : $300c 12300tinc3 : $3032 12338tinc4 : $30d5 12501tinc5 : $30fa 12538tinc6 : $3195 12693tinc7 : $31be 12734tldax : $181c 6172tldax1 : $1842 6210tldax2 : $1868 6248tldax3 : $188d 6285tldax4 : $19a9 6569tldax5 : $19d2 6610tldax6 : $1a1e 6686tldax7 : $1a2a 6698tlday : $18e3 6371tlday1 : $1909 6409tlday2 : $1946 6470tlday3 : $196b 6507tlday4 : $1a57 6743tlday5 : $1a7a 6778tlday6 : $1a9d 6813tldx : $0f1c 3868tldx1 : $0f43 3907tldx2 : $0f6a 3946AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 25---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tldx3 : $0f92 3986tldx4 : $0fed 4077tldx5 : $0ffa 4090tldy : $1035 4149tldy1 : $105c 4188tldy2 : $1083 4227tldy3 : $10aa 4266tldy4 : $1102 4354tldy5 : $110f 4367tlsr : $2701 9985tlsr1 : $271f 10015tlsr2 : $2881 10369tlsr3 : $28a4 10404tlsr4 : $2a39 10809tlsr5 : $2a5f 10847tlsr6 : $2c09 11273tlsr7 : $2c2c 11308tlsr8 : $2dc1 11713tlsr9 : $2de7 11751tora : $36d3 14035torai1 : $36e0 14048torai2 : $3705 14085tora1 : $36f8 14072tora10 : $3833 14387tora11 : $3854 14420tora12 : $3877 14455tora13 : $389b 14491tora14 : $38bd 14525tora15 : $38dd 14557tora2 : $371d 14109tora3 : $3741 14145tora4 : $3765 14181tora5 : $378b 14219tora6 : $37b1 14257tora7 : $37d1 14289tora8 : $37f1 14321tora9 : $3812 14354trap : <macro>trap_cc : <macro>trap_cs : <macro>trap_eq : <macro>trap_mi : <macro>trap_ne : <macro>trap_pl : <macro>trap_vc : <macro>trap_vs : <macro>trol : $273d 10045trolc : $2779 10105trolc1 : $2797 10135trolc2 : $290d 10509trolc3 : $2930 10544trolc4 : $2ad1 10961trolc5 : $2af7 10999trolc6 : $2c95 11413trolc7 : $2cb8 11448AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 26---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trolc8 : $2e59 11865trolc9 : $2e7f 11903trol1 : $275b 10075trol2 : $28c7 10439trol3 : $28ea 10474trol4 : $2a85 10885trol5 : $2aab 10923trol6 : $2c4f 11343trol7 : $2c72 11378trol8 : $2e0d 11789trol9 : $2e33 11827tror : $27b5 10165trorc : $27f1 10225trorc1 : $280f 10255trorc2 : $2999 10649trorc3 : $29bc 10684trorc4 : $2b69 11113trorc5 : $2b8f 11151trorc6 : $2d21 11553trorc7 : $2d44 11588trorc8 : $2ef1 12017trorc9 : $2f17 12055tror1 : $27d3 10195tror2 : $2953 10579tror3 : $2976 10614tror4 : $2b1d 11037tror5 : $2b43 11075tror6 : $2cdb 11483tror7 : $2cfe 11518tror8 : $2ea5 11941tror9 : $2ecb 11979tstax : $18b4 6324tstax1 : $1a38 6712tstay : $1931 6449tstay1 : $1992 6546tstay2 : $19fb 6651tstay4 : $1a67 6759tstay5 : $1a88 6792tstay6 : $1aac 6828tstx : $0fbc 4028tstx1 : $1008 4104tsty : $10d3 4307tsty1 : $111d 4381tst_a : <macro>tst_abs : <macro>tst_absx : <macro>tst_ax : <macro>tst_ay : <macro>tst_stat : <macro>tst_x : <macro>tst_y : <macro>tst_z : <macro>tst_zx : <macro>vec_bss : $fffa 65530vec_init : $3ffa 16378AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 27---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------zero : $0002 2zero_page : $00b0 176 *zpAN : $00c2 194zpAN_ : $3e55 15957zpEO : $00c6 198zpEO_ : $3e59 15961zpOR : $00be 190zpOR_ : $3e51 15953zpt : $00b2 178zp1 : $00b9 185zp1_ : $3e4c 15948zp7f : $00bd 189zp7f_ : $3e50 15952zp_bss : $00b9 185zp_bss_end : $0100 256zp_end : $3e93 16019zp_init : $3e4c 15948__6502__ : $0001 11409 labels used5937 lines read, no errors in pass 1.AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 28---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------;; 6 5 0 2 F U N C T I O N A L T E S T;; Copyright (C) 2012-2013 Klaus Dormann;; This program is free software: you can redistribute it and/or modify; it under the terms of the GNU General Public License as published by; the Free Software Foundation, either version 3 of the License, or; (at your option) any later version.;; This program is distributed in the hope that it will be useful,; but WITHOUT ANY WARRANTY; without even the implied warranty of; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License; along with this program. If not, see <http://www.gnu.org/licenses/>.;;; This program is designed to test all opcodes of a 6502 emulator using all; addressing modes with focus on propper setting of the processor status; register bits.;; version 23-jul-2013; contact info at http://2m5.de or email K@2m5.de;; assembled with AS65 from http://www.kingswood-consulting.co.uk/assemblers/; command line switches: -l -m -s2 -w -h0; | | | | no page headers in listing; | | | wide listing (133 char/col); | | write intel hex file instead of binary; | expand macros in listing; generate pass2 listing;; No IO - should be run from a monitor with access to registers.; To run load intel hex image with a load command, than alter PC to 400 hex; (code_segment) and enter a go command.; Loop on program counter determines error or successful completion of test.; Check listing for relevant traps (jump/branch *).; Please note that in early tests some instructions will have to be used before; they are actually tested!;; RESET, NMI or IRQ should not occur and will be trapped if vectors are enabled.; Tests documented behavior of the original NMOS 6502 only! No unofficial; opcodes. Additional opcodes of newer versions of the CPU (65C02, 65816) will; not be tested. Decimal ops will only be tested with valid BCD operands and; N V Z flags will be ignored.;; Debugging hints:; Most of the code is written sequentially. if you hit a trap, check the; immediately preceeding code for the instruction to be tested. Results are; tested first, flags are checked second by pushing them onto the stack and; pulling them to the accumulator after the result was checked. The "real"; flags are no longer valid for the tested instruction at this time!; If the tested instruction was indexed, the relevant index (X or Y) mustAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 29---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; also be checked. Opposed to the flags, X and Y registers are still valid.;; versions:; 28-jul-2012 1st version distributed for testing; 29-jul-2012 fixed references to location 0, now #0; added license - GPLv3; 30-jul-2012 added configuration options; 01-aug-2012 added trap macro to allow user to change error handling; 01-dec-2012 fixed trap in branch field must be a branch; 02-mar-2013 fixed PLA flags not tested; 19-jul-2013 allowed ROM vectors to be loaded when load_data_direct = 0; added test sequence check to detect if tests jump their fence; 23-jul-2013 added RAM integrity check;; 30-Aug-2013 Modified by Michael A. Morris to allow selection of tests; 04-Jan-2014 Modified trap vectors to use sbc2oslite BRK handler for error; trapping. Enabled success macro, which returns to the monitor.; Disabled BRK trap test in order to trap out to the monitor.; 30-Jan-2014 Modified success macro to issue brk instruction instead of rts.; 27-Nov-2014 Modified success macro to use stp instruction instead of brk; 07-Dec-2014 Modified success macro to use brk instruction instead of stp;; C O N F I G U R A T I O N;;ROM_vectors writable (0=no, 1=yes);; if ROM vectors can not be used interrupts will not be trapped; as a consequence BRK can not be tested but will be emulated to test RTI;0000 = ROM_vectors = 0;;load_data_direct (0=move from code segment, 1=load directly);loading directly is preferred but may not be supported by your platform;0 produces only consecutive object code, 1 is not suitable for a binary image;0000 = load_data_direct = 0;;I_flag behavior (0=force enabled, 1=force disabled, 2=prohibit change, 3=allow;change) 2 requires extra code and is not recommended. SEI & CLI can only be;tested if you allow changing the interrupt status (I_flag = 3);0003 = I_flag = 3;;configure memory - try to stay away from memory used by the system;zero_page memory start address, $50 (80) consecutive Bytes required; add 2 if I_flag = 2;00b0 = zero_page = $B0;;data_segment memory start address, $5B (91) consecutive Bytes required;0200 = data_segment = $200if (data_segment & $ff) != 0ERROR ERROR ERROR low byte of data_segment MUST be $00 !!endifAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 30---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------;;code_segment memory start address, 13kB of consecutive space required; add 2.5 kB if I_flag = 2;parts of the code are self modifying and must reside in RAM;0400 = code_segment = $400;;RAM integrity test option. Checks for undesired RAM writes.;set lowest non RAM or RAM mirror address page (-1=disable, 0=64k, $40=16k);leave disabled if a monitor, OS or background interrupt is allowed to alter RAM;ffff = ram_top = -1;ram_top = $40;; Define the top of stack location;01ff = stack_top = $1FF;;Skip to ADC/SBC tests;0000 = skip_part_1 = 0;;Skip Binary or Decimal mode ADC/SBC instruction tests;0000 = skip_bin_test = 00000 = skip_dec_test = 0;noopt ;do not take shortcuts;;macros for error & success traps to allow user modification;example:;;trap macro; jsr my_error_handler; endm;;trap_eq macro; bne skip\?; trap ;failed equal (zero);skip\?; endm;; my_error_handler should pop the calling address from the stack and report it.; putting larger portions of code (more than 3 bytes) inside the trap macro; may lead to branch range problems for some tests.trap macro; db $db ; M65C02/M65C02A SToP instructionbrk ; Use BRK to return to the monitordb test_numendmtrap_eq macrobne skip\?trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 31---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------skip\?endmtrap_ne macrobeq skip\?trap ;failed equal (zero)skip\?endmtrap_cs macrobcc skip\?trap ;failed equal (zero)skip\?endmtrap_cc macrobcs skip\?trap ;failed equal (zero)skip\?endmtrap_mi macrobpl skip\?trap ;failed equal (zero)skip\?endmtrap_pl macrobmi skip\?trap ;failed equal (zero)skip\?endmtrap_vs macrobvc skip\?trap ;failed equal (zero)skip\?endmtrap_vc macrobvs skip\?trap ;failed equal (zero)skip\?endmsuccess macrobrkdb test_num+1endm0001 = carry equ %00000001 ;flag bits in status0002 = zero equ %000000100004 = intdis equ %000001000008 = decmode equ %000010000010 = break equ %00010000AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 32---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0020 = reserv equ %001000000040 = overfl equ %010000000080 = minus equ %100000000001 = fc equ carry0002 = fz equ zero0003 = fzc equ carry+zero0040 = fv equ overfl0042 = fvz equ overfl+zero0080 = fn equ minus0081 = fnc equ minus+carry0082 = fnz equ minus+zero0083 = fnzc equ minus+zero+carry00c0 = fnv equ minus+overfl0030 = fao equ break+reserv ;bits always on after PHP, BRK0034 = fai equ fao+intdis ;+ forced interrupt disable00ff = m8 equ $ff ;8 bit mask00fb = m8i equ $ff&~intdis ;8 bit mask - interrupt disable;macros to allow masking of status bits.;masking of interrupt enable/disable on load and compare;masking of always on bits after PHP or BRK (unused & break) on compareif I_flag = 0load_flag macrolda #\1&m8i ;force enable interrupts (mask I)endmcmp_flag macrocmp #(\1|fao)&m8i ;I_flag is always enabled + always on bitsendmeor_flag macroeor #(\1&m8i|fao) ;mask I, invert expected flags + always on bitsendmendifif I_flag = 1load_flag macrolda #\1|intdis ;force disable interruptsendmcmp_flag macrocmp #(\1|fai)&m8 ;I_flag is always disabled + always on bitsendmeor_flag macroeor #(\1|fai) ;invert expected flags + always on bits + IendmendifAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 33---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------if I_flag = 2load_flag macrolda #\1ora flag_I_on ;restore I-flagand flag_I_offendmcmp_flag macroeor flag_I_on ;I_flag is never changedcmp #(\1|fao)&m8i ;expected flags + always on bits, mask Iendmeor_flag macroeor flag_I_on ;I_flag is never changedeor #(\1&m8i|fao) ;mask I, invert expected flags + always on bitsendmendifif I_flag = 3load_flag macrolda #\1 ;allow test to change I-flag (no mask)endmcmp_flag macrocmp #(\1|fao)&m8 ;expected flags + always on bitsendmeor_flag macroeor #\1|fao ;invert expected flags + always on bitsendmendif;macros to set (register|memory|zeropage) & statusset_stat macro ;setting flags in the processor status registerload_flag \1pha ;use stack to load statusplpendmset_a macro ;precharging accu & statusload_flag \2pha ;use stack to load statuslda #\1 ;precharge accuplpendmset_x macro ;precharging index & statusload_flag \2pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 34---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------ldx #\1 ;precharge index xplpendmset_y macro ;precharging index & statusload_flag \2pha ;use stack to load statusldy #\1 ;precharge index yplpendmset_ax macro ;precharging indexed accu & immediate statusload_flag \2pha ;use stack to load statuslda \1,x ;precharge accuplpendmset_ay macro ;precharging indexed accu & immediate statusload_flag \2pha ;use stack to load statuslda \1,y ;precharge accuplpendmset_z macro ;precharging indexed zp & immediate statusload_flag \2pha ;use stack to load statuslda \1,x ;load to zeropagesta zptplpendmset_zx macro ;precharging zp,x & immediate statusload_flag \2pha ;use stack to load statuslda \1,x ;load to indexed zeropagesta zpt,xplpendmset_abs macro ;precharging indexed memory & immediate statusload_flag \2pha ;use stack to load statuslda \1,x ;load to memorysta abstplpendmset_absx macro ;precharging abs,x & immediate statusload_flag \2pha ;use stack to load statuslda \1,x ;load to indexed memorysta abst,xplpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 35---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------endm;macros to test (register|memory|zeropage) & status & (mask)tst_stat macro ;testing flags in the processor status registerphp ;save statusphp ;use stack to retrieve statusplacmp_flag \1trap_neplp ;restore statusendmtst_a macro ;testing result in accu & flagsphp ;save flagsphpcmp #\1 ;test resulttrap_nepla ;load statuscmp_flag \2trap_neplp ;restore statusendmtst_x macro ;testing result in x index & flagsphp ;save flagsphpcpx #\1 ;test resulttrap_nepla ;load statuscmp_flag \2trap_neplp ;restore statusendmtst_y macro ;testing result in y index & flagsphp ;save flagsphpcpy #\1 ;test resulttrap_nepla ;load statuscmp_flag \2trap_neplp ;restore statusendmtst_ax macro ;indexed testing result in accu & flagsphp ;save flagscmp \1,x ;test resulttrap_nepla ;load statuseor_flag \3cmp \2,x ;test flagstrap_ne ;endmAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 36---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tst_ay macro ;indexed testing result in accu & flagsphp ;save flagscmp \1,y ;test resulttrap_ne ;pla ;load statuseor_flag \3cmp \2,y ;test flagstrap_neendmtst_z macro ;indexed testing result in zp & flagsphp ;save flagslda zptcmp \1,x ;test resulttrap_nepla ;load statuseor_flag \3cmp \2,x ;test flagstrap_neendmtst_zx macro ;testing result in zp,x & flagsphp ;save flagslda zpt,xcmp \1,x ;test resulttrap_nepla ;load statuseor_flag \3cmp \2,x ;test flagstrap_neendmtst_abs macro ;indexed testing result in memory & flagsphp ;save flagslda abstcmp \1,x ;test resulttrap_nepla ;load statuseor_flag \3cmp \2,x ;test flagstrap_neendmtst_absx macro ;testing result in abs,x & flagsphp ;save flagslda abst,xcmp \1,x ;test resulttrap_nepla ;load statuseor_flag \3cmp \2,x ;test flagstrap_neendmAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 37---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; RAM integrity test; verifies that none of the previous tests has altered RAM outside of the; designated write areas.; uses zpt word as indirect pointer, zpt+2 word as checksumif ram_top > -1check_ram macrocldlda #0sta zpt ;set low byte of indirect pointersta zpt+3 ;checksum high bytesta range_adr ;reset self modifying codesta tandi1sta tandi2sta teori1sta teori2sta torai1sta torai2sta chkdadista chkdsbista chkadista chksbiclcldx #zp_bss-zero_page ;zeropage - write test areaccs3\? adc zero_page,xbcc ccs2\?inc zpt+3 ;carry to high byteclcccs2\? inxbne ccs3\?ldx #hi(data_segment) ;set high byte of indirect pointerstx zpt+1ldy #lo(data_bss) ;data after write test areaccs5\? adc (zpt),ybcc ccs4\?inc zpt+3 ;carry to high byteclcccs4\? inybne ccs5\?inx ;advance RAM high addressstx zpt+1cpx #ram_topbne ccs5\?sta zpt+2 ;checksum low iscmp ram_chksm ;checksum low expectedtrap_ne ;checksum mismatchlda zpt+3 ;checksum high iscmp ram_chksm+1 ;checksum high expectedtrap_ne ;checksum mismatchendmelsecheck_ram macroAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 38---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------;RAM check disabled - RAM size not setendmendifnext_test macro ;make sure, tests don't jump the fencelda test_case ;previous testcmp #test_numtrap_ne ;test is out of sequencetest_num = test_num + 1lda #test_num ;*** this tests' numbersta test_case;check_ram ;uncomment to find altered RAM after each testendmif load_data_direct = 1dataelse; bss ;uninitialized segment, copy of data at end of code!code0000 = org 00000 : 00000000000000.. ds zero_pageendif;00b0 = org zero_page;; org 0; ds zero_page;;break test interrupt save;00b0 : 00 irq_a ds 1 ;a register00b1 : 00 irq_x ds 1 ;x registerif I_flag = 2;masking for I bit in statusflag_I_on ds 1 ;or mask to load flagsflag_I_off ds 1 ;and mask to load flagsendif00b2 : zpt ;5 bytes store/modify test area;add/subtract operand generation and result/flag prediction00b2 : 00 adfc ds 1 ;carry flag before op00b3 : 00 ad1 ds 1 ;operand 1 - accumulator00b4 : 00 ad2 ds 1 ;operand 2 - memory / immediateAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 39---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------00b5 : 00 adrl ds 1 ;expected result bits 0-700b6 : 00 adrh ds 1 ;expected result bit 8 (carry)00b7 : 00 adrf ds 1 ;expected flags NV0000ZC (-V in decimal mode)00b8 : 00 sb2 ds 1 ;operand 2 complemented for subtract00b9 : zp_bss00b9 : c3824100 zp1 db $c3,$82,$41,0 ;test patterns for LDx BIT ROL ROR ASL LSR00bd : 7f zp7f db $7f ;test pattern for compare;logical zeropage operands00be : 001f7180 zpOR db 0,$1f,$71,$80 ;test pattern for OR00c2 : 0fff7f80 zpAN db $0f,$ff,$7f,$80 ;test pattern for AND00c6 : ff0f8f8f zpEO db $ff,$0f,$8f,$8f ;test pattern for EOR;indirect addressing pointers00ca : 0802 ind1 dw abs1 ;indirect pointer to pattern in absolute memory00cc : 0902 dw abs1+100ce : 0a02 dw abs1+200d0 : 0b02 dw abs1+300d2 : 0c02 dw abs7f00d4 : 1001 inw1 dw abs1-$f8 ;indirect pointer for wrap-test pattern00d6 : 0302 indt dw abst ;indirect pointer to store area in absolute memory00d8 : 0402 dw abst+100da : 0502 dw abst+200dc : 0602 dw abst+300de : 0b01 inwt dw abst-$f8 ;indirect pointer for wrap-test store00e0 : 3f02 indAN dw absAN ;indirect pointer to AND pattern in absolute memory00e2 : 4002 dw absAN+100e4 : 4102 dw absAN+200e6 : 4202 dw absAN+300e8 : 4302 indEO dw absEO ;indirect pointer to EOR pattern in absolute memory00ea : 4402 dw absEO+100ec : 4502 dw absEO+200ee : 4602 dw absEO+300f0 : 3b02 indOR dw absOR ;indirect pointer to OR pattern in absolute memory00f2 : 3c02 dw absOR+100f4 : 3d02 dw absOR+200f6 : 3e02 dw absOR+3;add/subtract indirect pointers00f8 : 0302 adi2 dw ada2 ;indirect pointer to operand 2 in absolute memory00fa : 0402 sbi2 dw sba2 ;indirect pointer to complemented operand 2 (SBC)00fc : 0401 adiy2 dw ada2-$ff ;with offset for indirect indexed00fe : 0501 sbiy2 dw sba2-$ff0100 : zp_bss_end0200 = org data_segment0200 : 00 test_case ds 1 ;current test number0201 : 0000 ram_chksm ds 2 ;checksum for RAM integrity testAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 40---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------;add/subtract operand copy - abs tests write area0203 : abst ;5 bytes store/modify test area0203 : 00 ada2 ds 1 ;operand 20204 : 00 sba2 ds 1 ;operand 2 complemented for subtract0205 : 000000 ds 3 ;fill remaining bytes0208 : data_bss0208 : c3824100 abs1 db $c3,$82,$41,0 ;test patterns for LDx BIT ROL ROR ASL LSR020c : 7f abs7f db $7f ;test pattern for compare;loads020d : 80800002 fLDx db fn,fn,0,fz ;expected flags for load;shifts0211 : rASL ;expected result ASL & ROL -carry0211 : 86048200 rROL db $86,$04,$82,0 ; "0215 : 87058301 rROLc db $87,$05,$83,1 ;expected result ROL +carry0219 : rLSR ;expected result LSR & ROR -carry0219 : 61412000 rROR db $61,$41,$20,0 ; "021d : e1c1a080 rRORc db $e1,$c1,$a0,$80 ;expected result ROR +carry0221 : fASL ;expected flags for shifts0221 : 81018002 fROL db fnc,fc,fn,fz ;no carry in0225 : 81018000 fROLc db fnc,fc,fn,0 ;carry in0229 : fLSR0229 : 01000102 fROR db fc,0,fc,fz ;no carry in022d : 81808180 fRORc db fnc,fn,fnc,fn ;carry in;increments (decrements)0231 : 7f80ff0001 rINC db $7f,$80,$ff,0,1 ;expected result for INC/DEC0236 : 0080800200 fINC db 0,fn,fn,fz,0 ;expected flags for INC/DEC;logical memory operand023b : 001f7180 absOR db 0,$1f,$71,$80 ;test pattern for OR023f : 0fff7f80 absAN db $0f,$ff,$7f,$80 ;test pattern for AND0243 : ff0f8f8f absEO db $ff,$0f,$8f,$8f ;test pattern for EOR;logical accu operand0247 : 00f11f00 absORa db 0,$f1,$1f,0 ;test pattern for OR024b : f0ffffff absANa db $f0,$ff,$ff,$ff ;test pattern for AND024f : fff0f00f absEOa db $ff,$f0,$f0,$0f ;test pattern for EOR;logical results0253 : 00ff7f80 absrlo db 0,$ff,$7f,$800257 : 02800080 absflo db fz,fn,0,fn025b : data_bss_endAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 41---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------code0400 = org code_segment0400 : d8 [ 2] start cld0401 : a900 [ 2] lda #0 ;*** test 0 = initialize0403 : 8d0002 [ 4] sta test_case0000 = test_num = 0;stop interrupts before initializing BSSif I_flag = 1seiendif;initialize BSS segmentif load_data_direct != 10406 : a246 [ 2] ldx #zp_end-zp_init-10408 : bd4c3e [ 4] ld_zp lda zp_init,x040b : 95b9 [ 4] sta zp_bss,x040d : ca [ 2] dex040e : 10f8 [ 3] bpl ld_zp0410 : a252 [ 2] ldx #data_end-data_init-10412 : bd933e [ 4] ld_data lda data_init,x0415 : 9d0802 [ 5] sta data_bss,x0418 : ca [ 2] dex0419 : 10f7 [ 3] bpl ld_dataif ROM_vectors = 1ldx #5ld_vect lda vec_init,xsta vec_bss,xdexbpl ld_vectendifendif;retain status of interrupt flagif I_flag = 2phpplaand #4 ;isolate flagsta flag_I_on ;or maskeor #lo(~4) ;reversesta flag_I_off ;and maskendifAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 42---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------;generate checksum for RAM integrity testif ram_top > -1lda #0sta zpt ;set low byte of indirect pointersta ram_chksm+1 ;checksum high bytesta range_adr ;reset self modifying codesta tandi1sta tandi2sta teori1sta teori2sta torai1sta torai2sta chkdadista chkdsbista chkadista chksbiclcldx #zp_bss-zero_page ;zeropage - write test areagcs3 adc zero_page,xbcc gcs2inc ram_chksm+1 ;carry to high byteclcgcs2 inxbne gcs3ldx #hi(data_segment) ;set high byte of indirect pointerstx zpt+1ldy #lo(data_bss) ;data after write test areagcs5 adc (zpt),ybcc gcs4inc ram_chksm+1 ;carry to high byteclcgcs4 inybne gcs5inx ;advance RAM high addressstx zpt+1cpx #ram_topbne gcs5sta ram_chksm ;checksum completeendifif skip_part_1 = 1jmp bin_testendifnext_test041b : ad0002 [ 4]> lda test_case ;previous test041e : c900 [ 2]> cmp #test_num> trap_ne ;test is out of sequence0420 : f002 [ 3]> beq skip0002> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 43---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0422 : 00 [ 7]> brk ; Use BRK to return to the monitor0423 : 00 > db test_num>0424 : >skip0002>0001 = >test_num = test_num + 10424 : a901 [ 2]> lda #test_num ;*** this tests' number0426 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test;testing relative addressing with BEQ0429 : a0fe [ 2] ldy #$fe ;testing maximum range, not -1/-2 (invalid/self adr)042b : range_loop042b : 88 [ 2] dey ;next relative address042c : 98 [ 2] tya042d : aa [ 2] tax ;precharge count to end of loop042e : 1003 [ 3] bpl range_fw ;calculate relative address0430 : 18 [ 2] clc ;avoid branch self or to relative address of branch0431 : 6902 [ 2] adc #20433 : range_fw0433 : 497f [ 2] eor #$7f ;complement except sign0435 : 8dbc04 [ 4] sta range_adr ;load into test target0438 : a900 [ 2] lda #0 ;should set zero flag in status register043a : 4cbb04 [ 3] jmp range_op;relative address target field with branch under test in the middle043d : ca [ 2] dex ;-128 - max backward043e : ca [ 2] dex043f : ca [ 2] dex0440 : ca [ 2] dex0441 : ca [ 2] dex0442 : ca [ 2] dex0443 : ca [ 2] dex0444 : ca [ 2] dex0445 : ca [ 2] dex ;-1200446 : ca [ 2] dex0447 : ca [ 2] dex0448 : ca [ 2] dex0449 : ca [ 2] dex044a : ca [ 2] dex044b : ca [ 2] dex044c : ca [ 2] dex044d : ca [ 2] dex044e : ca [ 2] dex044f : ca [ 2] dex ;-1100450 : ca [ 2] dex0451 : ca [ 2] dex0452 : ca [ 2] dex0453 : ca [ 2] dex0454 : ca [ 2] dex0455 : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 44---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0456 : ca [ 2] dex0457 : ca [ 2] dex0458 : ca [ 2] dex0459 : ca [ 2] dex ;-100045a : ca [ 2] dex045b : ca [ 2] dex045c : ca [ 2] dex045d : ca [ 2] dex045e : ca [ 2] dex045f : ca [ 2] dex0460 : ca [ 2] dex0461 : ca [ 2] dex0462 : ca [ 2] dex0463 : ca [ 2] dex ;-900464 : ca [ 2] dex0465 : ca [ 2] dex0466 : ca [ 2] dex0467 : ca [ 2] dex0468 : ca [ 2] dex0469 : ca [ 2] dex046a : ca [ 2] dex046b : ca [ 2] dex046c : ca [ 2] dex046d : ca [ 2] dex ;-80046e : ca [ 2] dex046f : ca [ 2] dex0470 : ca [ 2] dex0471 : ca [ 2] dex0472 : ca [ 2] dex0473 : ca [ 2] dex0474 : ca [ 2] dex0475 : ca [ 2] dex0476 : ca [ 2] dex0477 : ca [ 2] dex ;-700478 : ca [ 2] dex0479 : ca [ 2] dex047a : ca [ 2] dex047b : ca [ 2] dex047c : ca [ 2] dex047d : ca [ 2] dex047e : ca [ 2] dex047f : ca [ 2] dex0480 : ca [ 2] dex0481 : ca [ 2] dex ;-600482 : ca [ 2] dex0483 : ca [ 2] dex0484 : ca [ 2] dex0485 : ca [ 2] dex0486 : ca [ 2] dex0487 : ca [ 2] dex0488 : ca [ 2] dex0489 : ca [ 2] dex048a : ca [ 2] dex048b : ca [ 2] dex ;-50048c : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 45---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------048d : ca [ 2] dex048e : ca [ 2] dex048f : ca [ 2] dex0490 : ca [ 2] dex0491 : ca [ 2] dex0492 : ca [ 2] dex0493 : ca [ 2] dex0494 : ca [ 2] dex0495 : ca [ 2] dex ;-400496 : ca [ 2] dex0497 : ca [ 2] dex0498 : ca [ 2] dex0499 : ca [ 2] dex049a : ca [ 2] dex049b : ca [ 2] dex049c : ca [ 2] dex049d : ca [ 2] dex049e : ca [ 2] dex049f : ca [ 2] dex ;-3004a0 : ca [ 2] dex04a1 : ca [ 2] dex04a2 : ca [ 2] dex04a3 : ca [ 2] dex04a4 : ca [ 2] dex04a5 : ca [ 2] dex04a6 : ca [ 2] dex04a7 : ca [ 2] dex04a8 : ca [ 2] dex04a9 : ca [ 2] dex ;-2004aa : ca [ 2] dex04ab : ca [ 2] dex04ac : ca [ 2] dex04ad : ca [ 2] dex04ae : ca [ 2] dex04af : ca [ 2] dex04b0 : ca [ 2] dex04b1 : ca [ 2] dex04b2 : ca [ 2] dex04b3 : ca [ 2] dex ;-1004b4 : ca [ 2] dex04b5 : ca [ 2] dex04b6 : ca [ 2] dex04b7 : ca [ 2] dex04b8 : ca [ 2] dex04b9 : ca [ 2] dex04ba : ca [ 2] dex ;-304bb : range_op ;test target with zero flag=0, z=1 if previous dex04bc = range_adr = *+1 ;modifiable relative address04bb : f03e [ 3] beq *+64 ;if called without modification04bd : ca [ 2] dex ;+004be : ca [ 2] dex04bf : ca [ 2] dex04c0 : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 46---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------04c1 : ca [ 2] dex04c2 : ca [ 2] dex04c3 : ca [ 2] dex04c4 : ca [ 2] dex04c5 : ca [ 2] dex04c6 : ca [ 2] dex04c7 : ca [ 2] dex ;+1004c8 : ca [ 2] dex04c9 : ca [ 2] dex04ca : ca [ 2] dex04cb : ca [ 2] dex04cc : ca [ 2] dex04cd : ca [ 2] dex04ce : ca [ 2] dex04cf : ca [ 2] dex04d0 : ca [ 2] dex04d1 : ca [ 2] dex ;+2004d2 : ca [ 2] dex04d3 : ca [ 2] dex04d4 : ca [ 2] dex04d5 : ca [ 2] dex04d6 : ca [ 2] dex04d7 : ca [ 2] dex04d8 : ca [ 2] dex04d9 : ca [ 2] dex04da : ca [ 2] dex04db : ca [ 2] dex ;+3004dc : ca [ 2] dex04dd : ca [ 2] dex04de : ca [ 2] dex04df : ca [ 2] dex04e0 : ca [ 2] dex04e1 : ca [ 2] dex04e2 : ca [ 2] dex04e3 : ca [ 2] dex04e4 : ca [ 2] dex04e5 : ca [ 2] dex ;+4004e6 : ca [ 2] dex04e7 : ca [ 2] dex04e8 : ca [ 2] dex04e9 : ca [ 2] dex04ea : ca [ 2] dex04eb : ca [ 2] dex04ec : ca [ 2] dex04ed : ca [ 2] dex04ee : ca [ 2] dex04ef : ca [ 2] dex ;+5004f0 : ca [ 2] dex04f1 : ca [ 2] dex04f2 : ca [ 2] dex04f3 : ca [ 2] dex04f4 : ca [ 2] dex04f5 : ca [ 2] dex04f6 : ca [ 2] dex04f7 : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 47---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------04f8 : ca [ 2] dex04f9 : ca [ 2] dex ;+6004fa : ca [ 2] dex04fb : ca [ 2] dex04fc : ca [ 2] dex04fd : ca [ 2] dex04fe : ca [ 2] dex04ff : ca [ 2] dex0500 : ca [ 2] dex0501 : ca [ 2] dex0502 : ca [ 2] dex0503 : ca [ 2] dex ;+700504 : ca [ 2] dex0505 : ca [ 2] dex0506 : ca [ 2] dex0507 : ca [ 2] dex0508 : ca [ 2] dex0509 : ca [ 2] dex050a : ca [ 2] dex050b : ca [ 2] dex050c : ca [ 2] dex050d : ca [ 2] dex ;+80050e : ca [ 2] dex050f : ca [ 2] dex0510 : ca [ 2] dex0511 : ca [ 2] dex0512 : ca [ 2] dex0513 : ca [ 2] dex0514 : ca [ 2] dex0515 : ca [ 2] dex0516 : ca [ 2] dex0517 : ca [ 2] dex ;+900518 : ca [ 2] dex0519 : ca [ 2] dex051a : ca [ 2] dex051b : ca [ 2] dex051c : ca [ 2] dex051d : ca [ 2] dex051e : ca [ 2] dex051f : ca [ 2] dex0520 : ca [ 2] dex0521 : ca [ 2] dex ;+1000522 : ca [ 2] dex0523 : ca [ 2] dex0524 : ca [ 2] dex0525 : ca [ 2] dex0526 : ca [ 2] dex0527 : ca [ 2] dex0528 : ca [ 2] dex0529 : ca [ 2] dex052a : ca [ 2] dex052b : ca [ 2] dex ;+110052c : ca [ 2] dex052d : ca [ 2] dex052e : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 48---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------052f : ca [ 2] dex0530 : ca [ 2] dex0531 : ca [ 2] dex0532 : ca [ 2] dex0533 : ca [ 2] dex0534 : ca [ 2] dex0535 : ca [ 2] dex ;+1200536 : ca [ 2] dex0537 : ca [ 2] dex0538 : ca [ 2] dex0539 : ca [ 2] dex053a : ca [ 2] dex053b : ca [ 2] dex053c : f002 [ 3] beq range_ok ;+127 - max forwardtrap ; bad range>; db $db ; M65C02/M65C02A SToP instruction053e : 00 [ 7]> brk ; Use BRK to return to the monitor053f : 01 > db test_num0540 : range_ok0540 : c000 [ 2] cpy #00542 : f003 [ 3] beq range_end0544 : 4c2b04 [ 3] jmp range_loop0547 : range_end ;range test successfulnext_test0547 : ad0002 [ 4]> lda test_case ;previous test054a : c901 [ 2]> cmp #test_num> trap_ne ;test is out of sequence054c : f002 [ 3]> beq skip0006> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction054e : 00 [ 7]> brk ; Use BRK to return to the monitor054f : 01 > db test_num>0550 : >skip0006>0002 = >test_num = test_num + 10550 : a902 [ 2]> lda #test_num ;*** this tests' number0552 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test;partial test BNE & CMP, CPX, CPY immediate0555 : c001 [ 2] cpy #1 ;testing BNE true0557 : d002 [ 3] bne test_bnetrap>; db $db ; M65C02/M65C02A SToP instruction0559 : 00 [ 7]> brk ; Use BRK to return to the monitor055a : 02 > db test_num055b : test_bne055b : a900 [ 2] lda #0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 49---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------055d : c900 [ 2] cmp #0 ;test compare immediatetrap_ne055f : f002 [ 3]> beq skip0009> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0561 : 00 [ 7]> brk ; Use BRK to return to the monitor0562 : 02 > db test_num>0563 : >skip0009trap_cc0563 : b002 [ 3]> bcs skip0011> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0565 : 00 [ 7]> brk ; Use BRK to return to the monitor0566 : 02 > db test_num>0567 : >skip0011trap_mi0567 : 1002 [ 3]> bpl skip0013> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0569 : 00 [ 7]> brk ; Use BRK to return to the monitor056a : 02 > db test_num>056b : >skip0013056b : c901 [ 2] cmp #1trap_eq056d : d002 [ 3]> bne skip0015> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction056f : 00 [ 7]> brk ; Use BRK to return to the monitor0570 : 02 > db test_num>0571 : >skip0015trap_cs0571 : 9002 [ 3]> bcc skip0017> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0573 : 00 [ 7]> brk ; Use BRK to return to the monitor0574 : 02 > db test_num>0575 : >skip0017trap_pl0575 : 3002 [ 3]> bmi skip0019> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0577 : 00 [ 7]> brk ; Use BRK to return to the monitor0578 : 02 > db test_num>0579 : >skip0019AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 50---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0579 : aa [ 2] tax057a : e000 [ 2] cpx #0 ;test compare x immediatetrap_ne057c : f002 [ 3]> beq skip0021> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction057e : 00 [ 7]> brk ; Use BRK to return to the monitor057f : 02 > db test_num>0580 : >skip0021trap_cc0580 : b002 [ 3]> bcs skip0023> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0582 : 00 [ 7]> brk ; Use BRK to return to the monitor0583 : 02 > db test_num>0584 : >skip0023trap_mi0584 : 1002 [ 3]> bpl skip0025> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0586 : 00 [ 7]> brk ; Use BRK to return to the monitor0587 : 02 > db test_num>0588 : >skip00250588 : e001 [ 2] cpx #1trap_eq058a : d002 [ 3]> bne skip0027> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction058c : 00 [ 7]> brk ; Use BRK to return to the monitor058d : 02 > db test_num>058e : >skip0027trap_cs058e : 9002 [ 3]> bcc skip0029> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0590 : 00 [ 7]> brk ; Use BRK to return to the monitor0591 : 02 > db test_num>0592 : >skip0029trap_pl0592 : 3002 [ 3]> bmi skip0031> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0594 : 00 [ 7]> brk ; Use BRK to return to the monitor0595 : 02 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 51---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->0596 : >skip00310596 : a8 [ 2] tay0597 : c000 [ 2] cpy #0 ;test compare y immediatetrap_ne0599 : f002 [ 3]> beq skip0033> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction059b : 00 [ 7]> brk ; Use BRK to return to the monitor059c : 02 > db test_num>059d : >skip0033trap_cc059d : b002 [ 3]> bcs skip0035> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction059f : 00 [ 7]> brk ; Use BRK to return to the monitor05a0 : 02 > db test_num>05a1 : >skip0035trap_mi05a1 : 1002 [ 3]> bpl skip0037> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05a3 : 00 [ 7]> brk ; Use BRK to return to the monitor05a4 : 02 > db test_num>05a5 : >skip003705a5 : c001 [ 2] cpy #1trap_eq05a7 : d002 [ 3]> bne skip0039> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05a9 : 00 [ 7]> brk ; Use BRK to return to the monitor05aa : 02 > db test_num>05ab : >skip0039trap_cs05ab : 9002 [ 3]> bcc skip0041> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05ad : 00 [ 7]> brk ; Use BRK to return to the monitor05ae : 02 > db test_num>05af : >skip0041trap_pl05af : 3002 [ 3]> bmi skip0043> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 52---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------05b1 : 00 [ 7]> brk ; Use BRK to return to the monitor05b2 : 02 > db test_num>05b3 : >skip0043next_test05b3 : ad0002 [ 4]> lda test_case ;previous test05b6 : c902 [ 2]> cmp #test_num> trap_ne ;test is out of sequence05b8 : f002 [ 3]> beq skip0046> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05ba : 00 [ 7]> brk ; Use BRK to return to the monitor05bb : 02 > db test_num>05bc : >skip0046>0003 = >test_num = test_num + 105bc : a903 [ 2]> lda #test_num ;*** this tests' number05be : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test;testing stack operations PHA PHP PLA PLP05c1 : a2ff [ 2] ldx #$ff ;initialize stack05c3 : 9a [ 2] txs05c4 : a955 [ 2] lda #$5505c6 : 48 [ 3] pha05c7 : a9aa [ 2] lda #$aa05c9 : 48 [ 3] pha05ca : cdfe01 [ 4] cmp $1fe ;on stack ?trap_ne05cd : f002 [ 3]> beq skip0048> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05cf : 00 [ 7]> brk ; Use BRK to return to the monitor05d0 : 03 > db test_num>05d1 : >skip004805d1 : ba [ 2] tsx05d2 : 8a [ 2] txa ;overwrite accu05d3 : c9fd [ 2] cmp #$fd ;sp decremented?trap_ne05d5 : f002 [ 3]> beq skip0050> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05d7 : 00 [ 7]> brk ; Use BRK to return to the monitor05d8 : 03 > db test_num>05d9 : >skip005005d9 : 68 [ 4] pla05da : c9aa [ 2] cmp #$aa ;successful retreived from stack?AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 53---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne05dc : f002 [ 3]> beq skip0052> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05de : 00 [ 7]> brk ; Use BRK to return to the monitor05df : 03 > db test_num>05e0 : >skip005205e0 : 68 [ 4] pla05e1 : c955 [ 2] cmp #$55trap_ne05e3 : f002 [ 3]> beq skip0054> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05e5 : 00 [ 7]> brk ; Use BRK to return to the monitor05e6 : 03 > db test_num>05e7 : >skip005405e7 : cdff01 [ 4] cmp $1ff ;remains on stack?trap_ne05ea : f002 [ 3]> beq skip0056> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05ec : 00 [ 7]> brk ; Use BRK to return to the monitor05ed : 03 > db test_num>05ee : >skip005605ee : ba [ 2] tsx05ef : e0ff [ 2] cpx #$ff ;sp incremented?trap_ne05f1 : f002 [ 3]> beq skip0058> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05f3 : 00 [ 7]> brk ; Use BRK to return to the monitor05f4 : 03 > db test_num>05f5 : >skip0058next_test05f5 : ad0002 [ 4]> lda test_case ;previous test05f8 : c903 [ 2]> cmp #test_num> trap_ne ;test is out of sequence05fa : f002 [ 3]> beq skip0061> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction05fc : 00 [ 7]> brk ; Use BRK to return to the monitor05fd : 03 > db test_num>05fe : >skip0061>0004 = >test_num = test_num + 105fe : a904 [ 2]> lda #test_num ;*** this tests' numberAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 54---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0600 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test;testing branch decisions BPL BMI BVC BVS BCC BCS BNE BEQset_stat $ff ;all on> load_flag $ff0603 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0605 : 48 [ 3]> pha ;use stack to load status0606 : 28 [ 4]> plp0607 : 1016 [ 3] bpl nbr1 ;branches should not be taken0609 : 5016 [ 3] bvc nbr2060b : 9016 [ 3] bcc nbr3060d : d016 [ 3] bne nbr4060f : 3002 [ 3] bmi br1 ;branches should be takentrap>; db $db ; M65C02/M65C02A SToP instruction0611 : 00 [ 7]> brk ; Use BRK to return to the monitor0612 : 04 > db test_num0613 : 7002 [ 3] br1 bvs br2trap>; db $db ; M65C02/M65C02A SToP instruction0615 : 00 [ 7]> brk ; Use BRK to return to the monitor0616 : 04 > db test_num0617 : b002 [ 3] br2 bcs br3trap>; db $db ; M65C02/M65C02A SToP instruction0619 : 00 [ 7]> brk ; Use BRK to return to the monitor061a : 04 > db test_num061b : f00a [ 3] br3 beq br4trap>; db $db ; M65C02/M65C02A SToP instruction061d : 00 [ 7]> brk ; Use BRK to return to the monitor061e : 04 > db test_num061f : nbr1trap ;previous bpl taken>; db $db ; M65C02/M65C02A SToP instruction061f : 00 [ 7]> brk ; Use BRK to return to the monitor0620 : 04 > db test_num0621 : nbr2trap ;previous bvc taken>; db $db ; M65C02/M65C02A SToP instruction0621 : 00 [ 7]> brk ; Use BRK to return to the monitor0622 : 04 > db test_num0623 : nbr3trap ;previous bcc takenAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 55---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0623 : 00 [ 7]> brk ; Use BRK to return to the monitor0624 : 04 > db test_num0625 : nbr4trap ;previous bne taken>; db $db ; M65C02/M65C02A SToP instruction0625 : 00 [ 7]> brk ; Use BRK to return to the monitor0626 : 04 > db test_num0627 : 08 [ 3] br4 php0628 : ba [ 2] tsx0629 : e0fe [ 2] cpx #$fe ;sp after php?trap_ne062b : f002 [ 3]> beq skip0073> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction062d : 00 [ 7]> brk ; Use BRK to return to the monitor062e : 04 > db test_num>062f : >skip0073062f : 68 [ 4] placmp_flag $ff ;returned all flags on?0630 : c9ff [ 2]> cmp #($ff |fao)&m8 ;expected flags + always on bitstrap_ne0632 : f002 [ 3]> beq skip0076> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0634 : 00 [ 7]> brk ; Use BRK to return to the monitor0635 : 04 > db test_num>0636 : >skip00760636 : ba [ 2] tsx0637 : e0ff [ 2] cpx #$ff ;sp after php?trap_ne0639 : f002 [ 3]> beq skip0078> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction063b : 00 [ 7]> brk ; Use BRK to return to the monitor063c : 04 > db test_num>063d : >skip0078set_stat 0 ;all off> load_flag 0063d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>063f : 48 [ 3]> pha ;use stack to load status0640 : 28 [ 4]> plp0641 : 3026 [ 3] bmi nbr11 ;branches should not be taken0643 : 7026 [ 3] bvs nbr12AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 56---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0645 : b026 [ 3] bcs nbr130647 : f026 [ 3] beq nbr14trap_mi0649 : 1002 [ 3]> bpl skip0082> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction064b : 00 [ 7]> brk ; Use BRK to return to the monitor064c : 04 > db test_num>064d : >skip0082trap_vs064d : 5002 [ 3]> bvc skip0084> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction064f : 00 [ 7]> brk ; Use BRK to return to the monitor0650 : 04 > db test_num>0651 : >skip0084trap_cs0651 : 9002 [ 3]> bcc skip0086> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0653 : 00 [ 7]> brk ; Use BRK to return to the monitor0654 : 04 > db test_num>0655 : >skip0086trap_eq0655 : d002 [ 3]> bne skip0088> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0657 : 00 [ 7]> brk ; Use BRK to return to the monitor0658 : 04 > db test_num>0659 : >skip00880659 : 1002 [ 3] bpl br11 ;branches should be takentrap>; db $db ; M65C02/M65C02A SToP instruction065b : 00 [ 7]> brk ; Use BRK to return to the monitor065c : 04 > db test_num065d : 5002 [ 3] br11 bvc br12trap>; db $db ; M65C02/M65C02A SToP instruction065f : 00 [ 7]> brk ; Use BRK to return to the monitor0660 : 04 > db test_num0661 : 9002 [ 3] br12 bcc br13trap>; db $db ; M65C02/M65C02A SToP instruction0663 : 00 [ 7]> brk ; Use BRK to return to the monitor0664 : 04 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 57---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0665 : d00a [ 3] br13 bne br14trap>; db $db ; M65C02/M65C02A SToP instruction0667 : 00 [ 7]> brk ; Use BRK to return to the monitor0668 : 04 > db test_num0669 : nbr11trap ;previous bmi taken>; db $db ; M65C02/M65C02A SToP instruction0669 : 00 [ 7]> brk ; Use BRK to return to the monitor066a : 04 > db test_num066b : nbr12trap ;previous bvs taken>; db $db ; M65C02/M65C02A SToP instruction066b : 00 [ 7]> brk ; Use BRK to return to the monitor066c : 04 > db test_num066d : nbr13trap ;previous bcs taken>; db $db ; M65C02/M65C02A SToP instruction066d : 00 [ 7]> brk ; Use BRK to return to the monitor066e : 04 > db test_num066f : nbr14trap ;previous beq taken>; db $db ; M65C02/M65C02A SToP instruction066f : 00 [ 7]> brk ; Use BRK to return to the monitor0670 : 04 > db test_num0671 : 08 [ 3] br14 php0672 : 68 [ 4] placmp_flag 0 ;flags off except break (pushed by sw) + reserved?0673 : c930 [ 2]> cmp #(0 |fao)&m8 ;expected flags + always on bitstrap_ne0675 : f002 [ 3]> beq skip0099> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0677 : 00 [ 7]> brk ; Use BRK to return to the monitor0678 : 04 > db test_num>0679 : >skip0099;crosscheck flagsset_stat carry> load_flag carry0679 : a901 [ 2]> lda #carry ;allow test to change I-flag (no mask)>067b : 48 [ 3]> pha ;use stack to load status067c : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 58---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_cc067d : b002 [ 3]> bcs skip0103> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction067f : 00 [ 7]> brk ; Use BRK to return to the monitor0680 : 04 > db test_num>0681 : >skip0103set_stat zero> load_flag zero0681 : a902 [ 2]> lda #zero ;allow test to change I-flag (no mask)>0683 : 48 [ 3]> pha ;use stack to load status0684 : 28 [ 4]> plptrap_ne0685 : f002 [ 3]> beq skip0107> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0687 : 00 [ 7]> brk ; Use BRK to return to the monitor0688 : 04 > db test_num>0689 : >skip0107set_stat overfl> load_flag overfl0689 : a940 [ 2]> lda #overfl ;allow test to change I-flag (no mask)>068b : 48 [ 3]> pha ;use stack to load status068c : 28 [ 4]> plptrap_vc068d : 7002 [ 3]> bvs skip0111> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction068f : 00 [ 7]> brk ; Use BRK to return to the monitor0690 : 04 > db test_num>0691 : >skip0111set_stat minus> load_flag minus0691 : a980 [ 2]> lda #minus ;allow test to change I-flag (no mask)>0693 : 48 [ 3]> pha ;use stack to load status0694 : 28 [ 4]> plptrap_pl0695 : 3002 [ 3]> bmi skip0115> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0697 : 00 [ 7]> brk ; Use BRK to return to the monitor0698 : 04 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 59---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0699 : >skip0115set_stat $ff-carry> load_flag $ff-carry0699 : a9fe [ 2]> lda #$ff-carry ;allow test to change I-flag (no mask)>069b : 48 [ 3]> pha ;use stack to load status069c : 28 [ 4]> plptrap_cs069d : 9002 [ 3]> bcc skip0119> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction069f : 00 [ 7]> brk ; Use BRK to return to the monitor06a0 : 04 > db test_num>06a1 : >skip0119set_stat $ff-zero> load_flag $ff-zero06a1 : a9fd [ 2]> lda #$ff-zero ;allow test to change I-flag (no mask)>06a3 : 48 [ 3]> pha ;use stack to load status06a4 : 28 [ 4]> plptrap_eq06a5 : d002 [ 3]> bne skip0123> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06a7 : 00 [ 7]> brk ; Use BRK to return to the monitor06a8 : 04 > db test_num>06a9 : >skip0123set_stat $ff-overfl> load_flag $ff-overfl06a9 : a9bf [ 2]> lda #$ff-overfl ;allow test to change I-flag (no mask)>06ab : 48 [ 3]> pha ;use stack to load status06ac : 28 [ 4]> plptrap_vs06ad : 5002 [ 3]> bvc skip0127> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06af : 00 [ 7]> brk ; Use BRK to return to the monitor06b0 : 04 > db test_num>06b1 : >skip0127set_stat $ff-minus> load_flag $ff-minus06b1 : a97f [ 2]> lda #$ff-minus ;allow test to change I-flag (no mask)>06b3 : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 60---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------06b4 : 28 [ 4]> plptrap_mi06b5 : 1002 [ 3]> bpl skip0131> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06b7 : 00 [ 7]> brk ; Use BRK to return to the monitor06b8 : 04 > db test_num>06b9 : >skip0131next_test06b9 : ad0002 [ 4]> lda test_case ;previous test06bc : c904 [ 2]> cmp #test_num> trap_ne ;test is out of sequence06be : f002 [ 3]> beq skip0134> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06c0 : 00 [ 7]> brk ; Use BRK to return to the monitor06c1 : 04 > db test_num>06c2 : >skip0134>0005 = >test_num = test_num + 106c2 : a905 [ 2]> lda #test_num ;*** this tests' number06c4 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; test PHA does not alter flags or accumulator but PLA does06c7 : a255 [ 2] ldx #$55 ;x & y protected06c9 : a0aa [ 2] ldy #$aaset_a 1,$ff ;push> load_flag $ff06cb : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>06cd : 48 [ 3]> pha ;use stack to load status06ce : a901 [ 2]> lda #1 ;precharge accu06d0 : 28 [ 4]> plp06d1 : 48 [ 3] phatst_a 1,$ff06d2 : 08 [ 3]> php ;save flags06d3 : 08 [ 3]> php06d4 : c901 [ 2]> cmp #1 ;test result> trap_ne06d6 : f002 [ 3]> beq skip0139> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06d8 : 00 [ 7]> brk ; Use BRK to return to the monitor06d9 : 05 > db test_num>06da : >skip0139>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 61---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------06da : 68 [ 4]> pla ;load status> cmp_flag $ff06db : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne06dd : f002 [ 3]> beq skip0142> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06df : 00 [ 7]> brk ; Use BRK to return to the monitor06e0 : 05 > db test_num>06e1 : >skip0142>06e1 : 28 [ 4]> plp ;restore statusset_a 0,0> load_flag 006e2 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>06e4 : 48 [ 3]> pha ;use stack to load status06e5 : a900 [ 2]> lda #0 ;precharge accu06e7 : 28 [ 4]> plp06e8 : 48 [ 3] phatst_a 0,006e9 : 08 [ 3]> php ;save flags06ea : 08 [ 3]> php06eb : c900 [ 2]> cmp #0 ;test result> trap_ne06ed : f002 [ 3]> beq skip0147> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06ef : 00 [ 7]> brk ; Use BRK to return to the monitor06f0 : 05 > db test_num>06f1 : >skip0147>06f1 : 68 [ 4]> pla ;load status> cmp_flag 006f2 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne06f4 : f002 [ 3]> beq skip0150> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction06f6 : 00 [ 7]> brk ; Use BRK to return to the monitor06f7 : 05 > db test_num>06f8 : >skip0150>06f8 : 28 [ 4]> plp ;restore statusset_a $ff,$ff> load_flag $ff06f9 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 62---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->06fb : 48 [ 3]> pha ;use stack to load status06fc : a9ff [ 2]> lda #$ff ;precharge accu06fe : 28 [ 4]> plp06ff : 48 [ 3] phatst_a $ff,$ff0700 : 08 [ 3]> php ;save flags0701 : 08 [ 3]> php0702 : c9ff [ 2]> cmp #$ff ;test result> trap_ne0704 : f002 [ 3]> beq skip0155> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0706 : 00 [ 7]> brk ; Use BRK to return to the monitor0707 : 05 > db test_num>0708 : >skip0155>0708 : 68 [ 4]> pla ;load status> cmp_flag $ff0709 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne070b : f002 [ 3]> beq skip0158> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction070d : 00 [ 7]> brk ; Use BRK to return to the monitor070e : 05 > db test_num>070f : >skip0158>070f : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 00710 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0712 : 48 [ 3]> pha ;use stack to load status0713 : a901 [ 2]> lda #1 ;precharge accu0715 : 28 [ 4]> plp0716 : 48 [ 3] phatst_a 1,00717 : 08 [ 3]> php ;save flags0718 : 08 [ 3]> php0719 : c901 [ 2]> cmp #1 ;test result> trap_ne071b : f002 [ 3]> beq skip0163> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction071d : 00 [ 7]> brk ; Use BRK to return to the monitor071e : 05 > db test_num>071f : >skip0163AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 63---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->071f : 68 [ 4]> pla ;load status> cmp_flag 00720 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0722 : f002 [ 3]> beq skip0166> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0724 : 00 [ 7]> brk ; Use BRK to return to the monitor0725 : 05 > db test_num>0726 : >skip0166>0726 : 28 [ 4]> plp ;restore statusset_a 0,$ff> load_flag $ff0727 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0729 : 48 [ 3]> pha ;use stack to load status072a : a900 [ 2]> lda #0 ;precharge accu072c : 28 [ 4]> plp072d : 48 [ 3] phatst_a 0,$ff072e : 08 [ 3]> php ;save flags072f : 08 [ 3]> php0730 : c900 [ 2]> cmp #0 ;test result> trap_ne0732 : f002 [ 3]> beq skip0171> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0734 : 00 [ 7]> brk ; Use BRK to return to the monitor0735 : 05 > db test_num>0736 : >skip0171>0736 : 68 [ 4]> pla ;load status> cmp_flag $ff0737 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne0739 : f002 [ 3]> beq skip0174> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction073b : 00 [ 7]> brk ; Use BRK to return to the monitor073c : 05 > db test_num>073d : >skip0174>073d : 28 [ 4]> plp ;restore statusset_a $ff,0> load_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 64---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------073e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0740 : 48 [ 3]> pha ;use stack to load status0741 : a9ff [ 2]> lda #$ff ;precharge accu0743 : 28 [ 4]> plp0744 : 48 [ 3] phatst_a $ff,00745 : 08 [ 3]> php ;save flags0746 : 08 [ 3]> php0747 : c9ff [ 2]> cmp #$ff ;test result> trap_ne0749 : f002 [ 3]> beq skip0179> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction074b : 00 [ 7]> brk ; Use BRK to return to the monitor074c : 05 > db test_num>074d : >skip0179>074d : 68 [ 4]> pla ;load status> cmp_flag 0074e : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0750 : f002 [ 3]> beq skip0182> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0752 : 00 [ 7]> brk ; Use BRK to return to the monitor0753 : 05 > db test_num>0754 : >skip0182>0754 : 28 [ 4]> plp ;restore statusset_a 0,$ff ;pull> load_flag $ff0755 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0757 : 48 [ 3]> pha ;use stack to load status0758 : a900 [ 2]> lda #0 ;precharge accu075a : 28 [ 4]> plp075b : 68 [ 4] platst_a $ff,$ff-zero075c : 08 [ 3]> php ;save flags075d : 08 [ 3]> php075e : c9ff [ 2]> cmp #$ff ;test result> trap_ne0760 : f002 [ 3]> beq skip0187> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0762 : 00 [ 7]> brk ; Use BRK to return to the monitor0763 : 05 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 65---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0764 : >skip0187>0764 : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0765 : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0767 : f002 [ 3]> beq skip0190> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0769 : 00 [ 7]> brk ; Use BRK to return to the monitor076a : 05 > db test_num>076b : >skip0190>076b : 28 [ 4]> plp ;restore statusset_a $ff,0> load_flag 0076c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>076e : 48 [ 3]> pha ;use stack to load status076f : a9ff [ 2]> lda #$ff ;precharge accu0771 : 28 [ 4]> plp0772 : 68 [ 4] platst_a 0,zero0773 : 08 [ 3]> php ;save flags0774 : 08 [ 3]> php0775 : c900 [ 2]> cmp #0 ;test result> trap_ne0777 : f002 [ 3]> beq skip0195> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0779 : 00 [ 7]> brk ; Use BRK to return to the monitor077a : 05 > db test_num>077b : >skip0195>077b : 68 [ 4]> pla ;load status> cmp_flag zero077c : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne077e : f002 [ 3]> beq skip0198> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0780 : 00 [ 7]> brk ; Use BRK to return to the monitor0781 : 05 > db test_num>0782 : >skip0198>0782 : 28 [ 4]> plp ;restore statusset_a $fe,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 66---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff0783 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0785 : 48 [ 3]> pha ;use stack to load status0786 : a9fe [ 2]> lda #$fe ;precharge accu0788 : 28 [ 4]> plp0789 : 68 [ 4] platst_a 1,$ff-zero-minus078a : 08 [ 3]> php ;save flags078b : 08 [ 3]> php078c : c901 [ 2]> cmp #1 ;test result> trap_ne078e : f002 [ 3]> beq skip0203> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0790 : 00 [ 7]> brk ; Use BRK to return to the monitor0791 : 05 > db test_num>0792 : >skip0203>0792 : 68 [ 4]> pla ;load status> cmp_flag $ff-zero-minus0793 : c97d [ 2]> cmp #($ff-zero-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0795 : f002 [ 3]> beq skip0206> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0797 : 00 [ 7]> brk ; Use BRK to return to the monitor0798 : 05 > db test_num>0799 : >skip0206>0799 : 28 [ 4]> plp ;restore statusset_a 0,0> load_flag 0079a : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>079c : 48 [ 3]> pha ;use stack to load status079d : a900 [ 2]> lda #0 ;precharge accu079f : 28 [ 4]> plp07a0 : 68 [ 4] platst_a $ff,minus07a1 : 08 [ 3]> php ;save flags07a2 : 08 [ 3]> php07a3 : c9ff [ 2]> cmp #$ff ;test result> trap_ne07a5 : f002 [ 3]> beq skip0211> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07a7 : 00 [ 7]> brk ; Use BRK to return to the monitor07a8 : 05 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 67---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->07a9 : >skip0211>07a9 : 68 [ 4]> pla ;load status> cmp_flag minus07aa : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne07ac : f002 [ 3]> beq skip0214> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07ae : 00 [ 7]> brk ; Use BRK to return to the monitor07af : 05 > db test_num>07b0 : >skip0214>07b0 : 28 [ 4]> plp ;restore statusset_a $ff,$ff> load_flag $ff07b1 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>07b3 : 48 [ 3]> pha ;use stack to load status07b4 : a9ff [ 2]> lda #$ff ;precharge accu07b6 : 28 [ 4]> plp07b7 : 68 [ 4] platst_a 0,$ff-minus07b8 : 08 [ 3]> php ;save flags07b9 : 08 [ 3]> php07ba : c900 [ 2]> cmp #0 ;test result> trap_ne07bc : f002 [ 3]> beq skip0219> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07be : 00 [ 7]> brk ; Use BRK to return to the monitor07bf : 05 > db test_num>07c0 : >skip0219>07c0 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus07c1 : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne07c3 : f002 [ 3]> beq skip0222> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07c5 : 00 [ 7]> brk ; Use BRK to return to the monitor07c6 : 05 > db test_num>07c7 : >skip0222>07c7 : 28 [ 4]> plp ;restore statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 68---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------set_a $fe,0> load_flag 007c8 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>07ca : 48 [ 3]> pha ;use stack to load status07cb : a9fe [ 2]> lda #$fe ;precharge accu07cd : 28 [ 4]> plp07ce : 68 [ 4] platst_a 1,007cf : 08 [ 3]> php ;save flags07d0 : 08 [ 3]> php07d1 : c901 [ 2]> cmp #1 ;test result> trap_ne07d3 : f002 [ 3]> beq skip0227> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07d5 : 00 [ 7]> brk ; Use BRK to return to the monitor07d6 : 05 > db test_num>07d7 : >skip0227>07d7 : 68 [ 4]> pla ;load status> cmp_flag 007d8 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne07da : f002 [ 3]> beq skip0230> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07dc : 00 [ 7]> brk ; Use BRK to return to the monitor07dd : 05 > db test_num>07de : >skip0230>07de : 28 [ 4]> plp ;restore status07df : e055 [ 2] cpx #$55 ;x & y unchanged?trap_ne07e1 : f002 [ 3]> beq skip0232> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07e3 : 00 [ 7]> brk ; Use BRK to return to the monitor07e4 : 05 > db test_num>07e5 : >skip023207e5 : c0aa [ 2] cpy #$aatrap_ne07e7 : f002 [ 3]> beq skip0234> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07e9 : 00 [ 7]> brk ; Use BRK to return to the monitor07ea : 05 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 69---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------07eb : >skip0234next_test07eb : ad0002 [ 4]> lda test_case ;previous test07ee : c905 [ 2]> cmp #test_num> trap_ne ;test is out of sequence07f0 : f002 [ 3]> beq skip0237> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction07f2 : 00 [ 7]> brk ; Use BRK to return to the monitor07f3 : 05 > db test_num>07f4 : >skip0237>0006 = >test_num = test_num + 107f4 : a906 [ 2]> lda #test_num ;*** this tests' number07f6 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; partial pretest EOR #set_a $3c,0> load_flag 007f9 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>07fb : 48 [ 3]> pha ;use stack to load status07fc : a93c [ 2]> lda #$3c ;precharge accu07fe : 28 [ 4]> plp07ff : 49c3 [ 2] eor #$c3tst_a $ff,fn0801 : 08 [ 3]> php ;save flags0802 : 08 [ 3]> php0803 : c9ff [ 2]> cmp #$ff ;test result> trap_ne0805 : f002 [ 3]> beq skip0242> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0807 : 00 [ 7]> brk ; Use BRK to return to the monitor0808 : 06 > db test_num>0809 : >skip0242>0809 : 68 [ 4]> pla ;load status> cmp_flag fn080a : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne080c : f002 [ 3]> beq skip0245> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction080e : 00 [ 7]> brk ; Use BRK to return to the monitor080f : 06 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 70---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0810 : >skip0245>0810 : 28 [ 4]> plp ;restore statusset_a $c3,0> load_flag 00811 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0813 : 48 [ 3]> pha ;use stack to load status0814 : a9c3 [ 2]> lda #$c3 ;precharge accu0816 : 28 [ 4]> plp0817 : 49c3 [ 2] eor #$c3tst_a 0,fz0819 : 08 [ 3]> php ;save flags081a : 08 [ 3]> php081b : c900 [ 2]> cmp #0 ;test result> trap_ne081d : f002 [ 3]> beq skip0250> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction081f : 00 [ 7]> brk ; Use BRK to return to the monitor0820 : 06 > db test_num>0821 : >skip0250>0821 : 68 [ 4]> pla ;load status> cmp_flag fz0822 : c932 [ 2]> cmp #(fz|fao)&m8 ;expected flags + always on bits>> trap_ne0824 : f002 [ 3]> beq skip0253> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0826 : 00 [ 7]> brk ; Use BRK to return to the monitor0827 : 06 > db test_num>0828 : >skip0253>0828 : 28 [ 4]> plp ;restore statusnext_test0829 : ad0002 [ 4]> lda test_case ;previous test082c : c906 [ 2]> cmp #test_num> trap_ne ;test is out of sequence082e : f002 [ 3]> beq skip0256> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0830 : 00 [ 7]> brk ; Use BRK to return to the monitor0831 : 06 > db test_num>0832 : >skip0256>0007 = >test_num = test_num + 10832 : a907 [ 2]> lda #test_num ;*** this tests' numberAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 71---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0834 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; PC modifying instructions except branches (NOP, JMP, JSR, RTS, BRK, RTI); testing NOP0837 : a224 [ 2] ldx #$240839 : a042 [ 2] ldy #$42set_a $18,0> load_flag 0083b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>083d : 48 [ 3]> pha ;use stack to load status083e : a918 [ 2]> lda #$18 ;precharge accu0840 : 28 [ 4]> plp0841 : ea [ 2] noptst_a $18,00842 : 08 [ 3]> php ;save flags0843 : 08 [ 3]> php0844 : c918 [ 2]> cmp #$18 ;test result> trap_ne0846 : f002 [ 3]> beq skip0261> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0848 : 00 [ 7]> brk ; Use BRK to return to the monitor0849 : 07 > db test_num>084a : >skip0261>084a : 68 [ 4]> pla ;load status> cmp_flag 0084b : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne084d : f002 [ 3]> beq skip0264> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction084f : 00 [ 7]> brk ; Use BRK to return to the monitor0850 : 07 > db test_num>0851 : >skip0264>0851 : 28 [ 4]> plp ;restore status0852 : e024 [ 2] cpx #$24trap_ne0854 : f002 [ 3]> beq skip0266> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0856 : 00 [ 7]> brk ; Use BRK to return to the monitor0857 : 07 > db test_num>0858 : >skip0266AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 72---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0858 : c042 [ 2] cpy #$42trap_ne085a : f002 [ 3]> beq skip0268> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction085c : 00 [ 7]> brk ; Use BRK to return to the monitor085d : 07 > db test_num>085e : >skip0268085e : a2db [ 2] ldx #$db0860 : a0bd [ 2] ldy #$bdset_a $e7,$ff> load_flag $ff0862 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0864 : 48 [ 3]> pha ;use stack to load status0865 : a9e7 [ 2]> lda #$e7 ;precharge accu0867 : 28 [ 4]> plp0868 : ea [ 2] noptst_a $e7,$ff0869 : 08 [ 3]> php ;save flags086a : 08 [ 3]> php086b : c9e7 [ 2]> cmp #$e7 ;test result> trap_ne086d : f002 [ 3]> beq skip0273> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction086f : 00 [ 7]> brk ; Use BRK to return to the monitor0870 : 07 > db test_num>0871 : >skip0273>0871 : 68 [ 4]> pla ;load status> cmp_flag $ff0872 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne0874 : f002 [ 3]> beq skip0276> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0876 : 00 [ 7]> brk ; Use BRK to return to the monitor0877 : 07 > db test_num>0878 : >skip0276>0878 : 28 [ 4]> plp ;restore status0879 : e0db [ 2] cpx #$dbtrap_ne087b : f002 [ 3]> beq skip0278> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 73---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------087d : 00 [ 7]> brk ; Use BRK to return to the monitor087e : 07 > db test_num>087f : >skip0278087f : c0bd [ 2] cpy #$bdtrap_ne0881 : f002 [ 3]> beq skip0280> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0883 : 00 [ 7]> brk ; Use BRK to return to the monitor0884 : 07 > db test_num>0885 : >skip0280next_test0885 : ad0002 [ 4]> lda test_case ;previous test0888 : c907 [ 2]> cmp #test_num> trap_ne ;test is out of sequence088a : f002 [ 3]> beq skip0283> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction088c : 00 [ 7]> brk ; Use BRK to return to the monitor088d : 07 > db test_num>088e : >skip0283>0008 = >test_num = test_num + 1088e : a908 [ 2]> lda #test_num ;*** this tests' number0890 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; jump absoluteset_stat $0> load_flag $00893 : a900 [ 2]> lda #$0 ;allow test to change I-flag (no mask)>0895 : 48 [ 3]> pha ;use stack to load status0896 : 28 [ 4]> plp0897 : a946 [ 2] lda #'F'0899 : a241 [ 2] ldx #'A'089b : a052 [ 2] ldy #'R' ;N=0, V=0, Z=0, C=0089d : 4c1b3d [ 3] jmp test_far08a0 : ea [ 2] nop08a1 : ea [ 2] noptrap_ne ;runover protection08a2 : f002 [ 3]> beq skip0287> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08a4 : 00 [ 7]> brk ; Use BRK to return to the monitor08a5 : 08 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 74---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------08a6 : >skip028708a6 : e8 [ 2] inx08a7 : e8 [ 2] inx08a8 : far_rettrap_eq ;returned flags OK?08a8 : d002 [ 3]> bne skip0289> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08aa : 00 [ 7]> brk ; Use BRK to return to the monitor08ab : 08 > db test_num>08ac : >skip0289trap_pl08ac : 3002 [ 3]> bmi skip0291> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08ae : 00 [ 7]> brk ; Use BRK to return to the monitor08af : 08 > db test_num>08b0 : >skip0291trap_cc08b0 : b002 [ 3]> bcs skip0293> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08b2 : 00 [ 7]> brk ; Use BRK to return to the monitor08b3 : 08 > db test_num>08b4 : >skip0293trap_vc08b4 : 7002 [ 3]> bvs skip0295> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08b6 : 00 [ 7]> brk ; Use BRK to return to the monitor08b7 : 08 > db test_num>08b8 : >skip029508b8 : c9ec [ 2] cmp #('F'^$aa) ;returned registers OK?trap_ne08ba : f002 [ 3]> beq skip0297> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08bc : 00 [ 7]> brk ; Use BRK to return to the monitor08bd : 08 > db test_num>08be : >skip029708be : e042 [ 2] cpx #('A'+1)trap_ne08c0 : f002 [ 3]> beq skip0299> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 75---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction08c2 : 00 [ 7]> brk ; Use BRK to return to the monitor08c3 : 08 > db test_num>08c4 : >skip029908c4 : c04f [ 2] cpy #('R'-3)trap_ne08c6 : f002 [ 3]> beq skip0301> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08c8 : 00 [ 7]> brk ; Use BRK to return to the monitor08c9 : 08 > db test_num>08ca : >skip030108ca : ca [ 2] dex08cb : c8 [ 2] iny08cc : c8 [ 2] iny08cd : c8 [ 2] iny08ce : 49aa [ 2] eor #$aa ;N=0, V=1, Z=0, C=108d0 : 4cdb08 [ 3] jmp test_near08d3 : ea [ 2] nop08d4 : ea [ 2] noptrap_ne ;runover protection08d5 : f002 [ 3]> beq skip0303> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08d7 : 00 [ 7]> brk ; Use BRK to return to the monitor08d8 : 08 > db test_num>08d9 : >skip030308d9 : e8 [ 2] inx08da : e8 [ 2] inx08db : test_neartrap_eq ;passed flags OK?08db : d002 [ 3]> bne skip0305> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08dd : 00 [ 7]> brk ; Use BRK to return to the monitor08de : 08 > db test_num>08df : >skip0305trap_mi08df : 1002 [ 3]> bpl skip0307> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08e1 : 00 [ 7]> brk ; Use BRK to return to the monitor08e2 : 08 > db test_num>08e3 : >skip0307trap_ccAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 76---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------08e3 : b002 [ 3]> bcs skip0309> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08e5 : 00 [ 7]> brk ; Use BRK to return to the monitor08e6 : 08 > db test_num>08e7 : >skip0309trap_vc08e7 : 7002 [ 3]> bvs skip0311> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08e9 : 00 [ 7]> brk ; Use BRK to return to the monitor08ea : 08 > db test_num>08eb : >skip031108eb : c946 [ 2] cmp #'F' ;passed registers OK?trap_ne08ed : f002 [ 3]> beq skip0313> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08ef : 00 [ 7]> brk ; Use BRK to return to the monitor08f0 : 08 > db test_num>08f1 : >skip031308f1 : e041 [ 2] cpx #'A'trap_ne08f3 : f002 [ 3]> beq skip0315> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08f5 : 00 [ 7]> brk ; Use BRK to return to the monitor08f6 : 08 > db test_num>08f7 : >skip031508f7 : c052 [ 2] cpy #'R'trap_ne08f9 : f002 [ 3]> beq skip0317> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction08fb : 00 [ 7]> brk ; Use BRK to return to the monitor08fc : 08 > db test_num>08fd : >skip0317next_test08fd : ad0002 [ 4]> lda test_case ;previous test0900 : c908 [ 2]> cmp #test_num> trap_ne ;test is out of sequence0902 : f002 [ 3]> beq skip0320> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0904 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 77---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0905 : 08 > db test_num>0906 : >skip0320>0009 = >test_num = test_num + 10906 : a909 [ 2]> lda #test_num ;*** this tests' number0908 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; jump indirectset_stat 0> load_flag 0090b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>090d : 48 [ 3]> pha ;use stack to load status090e : 28 [ 4]> plp090f : a949 [ 2] lda #'I'0911 : a24e [ 2] ldx #'N'0913 : a044 [ 2] ldy #'D' ;N=0, V=0, Z=0, C=00915 : 6c5a3d [ 6] jmp (ptr_tst_ind)0918 : ea [ 2] noptrap_ne ;runover protection0919 : f002 [ 3]> beq skip0324> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction091b : 00 [ 7]> brk ; Use BRK to return to the monitor091c : 09 > db test_num>091d : >skip0324091d : 88 [ 2] dey091e : 88 [ 2] dey091f : ind_ret091f : 08 [ 3] php ;either SP or Y count will fail, if we do not hit0920 : 88 [ 2] dey0921 : 88 [ 2] dey0922 : 88 [ 2] dey0923 : 28 [ 4] plptrap_eq ;returned flags OK?0924 : d002 [ 3]> bne skip0326> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0926 : 00 [ 7]> brk ; Use BRK to return to the monitor0927 : 09 > db test_num>0928 : >skip0326trap_pl0928 : 3002 [ 3]> bmi skip0328> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction092a : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 78---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------092b : 09 > db test_num>092c : >skip0328trap_cc092c : b002 [ 3]> bcs skip0330> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction092e : 00 [ 7]> brk ; Use BRK to return to the monitor092f : 09 > db test_num>0930 : >skip0330trap_vc0930 : 7002 [ 3]> bvs skip0332> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0932 : 00 [ 7]> brk ; Use BRK to return to the monitor0933 : 09 > db test_num>0934 : >skip03320934 : c9e3 [ 2] cmp #('I'^$aa) ;returned registers OK?trap_ne0936 : f002 [ 3]> beq skip0334> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0938 : 00 [ 7]> brk ; Use BRK to return to the monitor0939 : 09 > db test_num>093a : >skip0334093a : e04f [ 2] cpx #('N'+1)trap_ne093c : f002 [ 3]> beq skip0336> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction093e : 00 [ 7]> brk ; Use BRK to return to the monitor093f : 09 > db test_num>0940 : >skip03360940 : c03e [ 2] cpy #('D'-6)trap_ne0942 : f002 [ 3]> beq skip0338> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0944 : 00 [ 7]> brk ; Use BRK to return to the monitor0945 : 09 > db test_num>0946 : >skip03380946 : ba [ 2] tsx ;SP check0947 : e0ff [ 2] cpx #$fftrap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 79---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0949 : f002 [ 3]> beq skip0340> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction094b : 00 [ 7]> brk ; Use BRK to return to the monitor094c : 09 > db test_num>094d : >skip0340next_test094d : ad0002 [ 4]> lda test_case ;previous test0950 : c909 [ 2]> cmp #test_num> trap_ne ;test is out of sequence0952 : f002 [ 3]> beq skip0343> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0954 : 00 [ 7]> brk ; Use BRK to return to the monitor0955 : 09 > db test_num>0956 : >skip0343>000a = >test_num = test_num + 10956 : a90a [ 2]> lda #test_num ;*** this tests' number0958 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; jump subroutine & return from subroutineset_stat 0> load_flag 0095b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>095d : 48 [ 3]> pha ;use stack to load status095e : 28 [ 4]> plp095f : a94a [ 2] lda #'J'0961 : a253 [ 2] ldx #'S'0963 : a052 [ 2] ldy #'R' ;N=0, V=0, Z=0, C=00965 : 20a43d [ 6] jsr test_jsr0967 = jsr_ret = *-1 ;last address of jsr = return address0968 : 08 [ 3] php ;either SP or Y count will fail, if we do not hit0969 : 88 [ 2] dey096a : 88 [ 2] dey096b : 88 [ 2] dey096c : 28 [ 4] plptrap_eq ;returned flags OK?096d : d002 [ 3]> bne skip0347> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction096f : 00 [ 7]> brk ; Use BRK to return to the monitor0970 : 0a > db test_num>0971 : >skip0347trap_plAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 80---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0971 : 3002 [ 3]> bmi skip0349> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0973 : 00 [ 7]> brk ; Use BRK to return to the monitor0974 : 0a > db test_num>0975 : >skip0349trap_cc0975 : b002 [ 3]> bcs skip0351> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0977 : 00 [ 7]> brk ; Use BRK to return to the monitor0978 : 0a > db test_num>0979 : >skip0351trap_vc0979 : 7002 [ 3]> bvs skip0353> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction097b : 00 [ 7]> brk ; Use BRK to return to the monitor097c : 0a > db test_num>097d : >skip0353097d : c9e0 [ 2] cmp #('J'^$aa) ;returned registers OK?trap_ne097f : f002 [ 3]> beq skip0355> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0981 : 00 [ 7]> brk ; Use BRK to return to the monitor0982 : 0a > db test_num>0983 : >skip03550983 : e054 [ 2] cpx #('S'+1)trap_ne0985 : f002 [ 3]> beq skip0357> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0987 : 00 [ 7]> brk ; Use BRK to return to the monitor0988 : 0a > db test_num>0989 : >skip03570989 : c04c [ 2] cpy #('R'-6)trap_ne098b : f002 [ 3]> beq skip0359> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction098d : 00 [ 7]> brk ; Use BRK to return to the monitor098e : 0a > db test_num>098f : >skip0359AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 81---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------098f : ba [ 2] tsx ;sp?0990 : e0ff [ 2] cpx #$fftrap_ne0992 : f002 [ 3]> beq skip0361> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0994 : 00 [ 7]> brk ; Use BRK to return to the monitor0995 : 0a > db test_num>0996 : >skip0361next_test0996 : ad0002 [ 4]> lda test_case ;previous test0999 : c90a [ 2]> cmp #test_num> trap_ne ;test is out of sequence099b : f002 [ 3]> beq skip0364> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction099d : 00 [ 7]> brk ; Use BRK to return to the monitor099e : 0a > db test_num>099f : >skip0364>000b = >test_num = test_num + 1099f : a90b [ 2]> lda #test_num ;*** this tests' number09a1 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; break & return from interruptif ROM_vectors = 1set_stat 0lda #'B'ldx #'R'ldy #'K' ;N=0, V=0, Z=0, C=0brkelse09a4 : a909 [ 2] lda #hi(brk_ret) ;emulated break09a6 : 48 [ 3] pha09a7 : a9ba [ 2] lda #lo(brk_ret-1) ; M65C02 pushes BRK+1 not BRK+209a9 : 48 [ 3] pha09aa : a930 [ 2] lda #fao ;set break & unused on stack09ac : 48 [ 3] phaset_stat intdis> load_flag intdis09ad : a904 [ 2]> lda #intdis ;allow test to change I-flag (no mask)>09af : 48 [ 3]> pha ;use stack to load status09b0 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 82---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------09b1 : a942 [ 2] lda #'B'09b3 : a252 [ 2] ldx #'R'09b5 : a04b [ 2] ldy #'K' ;N=0, V=0, Z=0, C=009b7 : 4cfa3d [ 3] jmp irq_trapendif09ba : 88 [ 2] dey ;should not be executed09bb : brk_ret ;address of break return09bb : 08 [ 3] php ;either SP or Y count will fail, if we do not hit09bc : 88 [ 2] dey09bd : 88 [ 2] dey09be : 88 [ 2] dey09bf : c9e8 [ 2] cmp #('B'^$aa) ;returned registers OK?trap_ne09c1 : f002 [ 3]> beq skip0368> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09c3 : 00 [ 7]> brk ; Use BRK to return to the monitor09c4 : 0b > db test_num>09c5 : >skip036809c5 : e053 [ 2] cpx #('R'+1)trap_ne09c7 : f002 [ 3]> beq skip0370> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09c9 : 00 [ 7]> brk ; Use BRK to return to the monitor09ca : 0b > db test_num>09cb : >skip037009cb : c045 [ 2] cpy #('K'-6)trap_ne09cd : f002 [ 3]> beq skip0372> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09cf : 00 [ 7]> brk ; Use BRK to return to the monitor09d0 : 0b > db test_num>09d1 : >skip037209d1 : 68 [ 4] pla ;returned flags OK (unchanged)?cmp_flag 009d2 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bitstrap_ne09d4 : f002 [ 3]> beq skip0375> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09d6 : 00 [ 7]> brk ; Use BRK to return to the monitor09d7 : 0b > db test_num>09d8 : >skip0375AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 83---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------09d8 : ba [ 2] tsx ;sp?09d9 : e0ff [ 2] cpx #$fftrap_ne09db : f002 [ 3]> beq skip0377> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09dd : 00 [ 7]> brk ; Use BRK to return to the monitor09de : 0b > db test_num>09df : >skip0377next_test09df : ad0002 [ 4]> lda test_case ;previous test09e2 : c90b [ 2]> cmp #test_num> trap_ne ;test is out of sequence09e4 : f002 [ 3]> beq skip0380> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09e6 : 00 [ 7]> brk ; Use BRK to return to the monitor09e7 : 0b > db test_num>09e8 : >skip0380>000c = >test_num = test_num + 109e8 : a90c [ 2]> lda #test_num ;*** this tests' number09ea : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; test set and clear flags CLC CLI CLD CLV SEC SEI SEDset_stat $ff> load_flag $ff09ed : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>09ef : 48 [ 3]> pha ;use stack to load status09f0 : 28 [ 4]> plp09f1 : 18 [ 2] clctst_stat $ff-carry09f2 : 08 [ 3]> php ;save status09f3 : 08 [ 3]> php ;use stack to retrieve status09f4 : 68 [ 4]> pla> cmp_flag $ff-carry09f5 : c9fe [ 2]> cmp #($ff-carry|fao)&m8 ;expected flags + always on bits>> trap_ne09f7 : f002 [ 3]> beq skip0386> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction09f9 : 00 [ 7]> brk ; Use BRK to return to the monitor09fa : 0c > db test_num>09fb : >skip0386AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 84---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->09fb : 28 [ 4]> plp ;restore status09fc : 38 [ 2] sectst_stat $ff09fd : 08 [ 3]> php ;save status09fe : 08 [ 3]> php ;use stack to retrieve status09ff : 68 [ 4]> pla> cmp_flag $ff0a00 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne0a02 : f002 [ 3]> beq skip0390> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a04 : 00 [ 7]> brk ; Use BRK to return to the monitor0a05 : 0c > db test_num>0a06 : >skip0390>0a06 : 28 [ 4]> plp ;restore statusif I_flag = 30a07 : 58 [ 2] clitst_stat $ff-intdis0a08 : 08 [ 3]> php ;save status0a09 : 08 [ 3]> php ;use stack to retrieve status0a0a : 68 [ 4]> pla> cmp_flag $ff-intdis0a0b : c9fb [ 2]> cmp #($ff-intdis|fao)&m8 ;expected flags + always on bits>> trap_ne0a0d : f002 [ 3]> beq skip0394> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a0f : 00 [ 7]> brk ; Use BRK to return to the monitor0a10 : 0c > db test_num>0a11 : >skip0394>0a11 : 28 [ 4]> plp ;restore status0a12 : 78 [ 2] seitst_stat $ff0a13 : 08 [ 3]> php ;save status0a14 : 08 [ 3]> php ;use stack to retrieve status0a15 : 68 [ 4]> pla> cmp_flag $ff0a16 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne0a18 : f002 [ 3]> beq skip0398> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 85---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0a1a : 00 [ 7]> brk ; Use BRK to return to the monitor0a1b : 0c > db test_num>0a1c : >skip0398>0a1c : 28 [ 4]> plp ;restore statusendif0a1d : d8 [ 2] cldtst_stat $ff-decmode0a1e : 08 [ 3]> php ;save status0a1f : 08 [ 3]> php ;use stack to retrieve status0a20 : 68 [ 4]> pla> cmp_flag $ff-decmode0a21 : c9f7 [ 2]> cmp #($ff-decmode|fao)&m8 ;expected flags + always on bits>> trap_ne0a23 : f002 [ 3]> beq skip0402> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a25 : 00 [ 7]> brk ; Use BRK to return to the monitor0a26 : 0c > db test_num>0a27 : >skip0402>0a27 : 28 [ 4]> plp ;restore status0a28 : f8 [ 2] sedtst_stat $ff0a29 : 08 [ 3]> php ;save status0a2a : 08 [ 3]> php ;use stack to retrieve status0a2b : 68 [ 4]> pla> cmp_flag $ff0a2c : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bits>> trap_ne0a2e : f002 [ 3]> beq skip0406> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a30 : 00 [ 7]> brk ; Use BRK to return to the monitor0a31 : 0c > db test_num>0a32 : >skip0406>0a32 : 28 [ 4]> plp ;restore status0a33 : b8 [ 2] clvtst_stat $ff-overfl0a34 : 08 [ 3]> php ;save status0a35 : 08 [ 3]> php ;use stack to retrieve status0a36 : 68 [ 4]> pla> cmp_flag $ff-overflAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 86---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0a37 : c9bf [ 2]> cmp #($ff-overfl|fao)&m8 ;expected flags + always on bits>> trap_ne0a39 : f002 [ 3]> beq skip0410> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a3b : 00 [ 7]> brk ; Use BRK to return to the monitor0a3c : 0c > db test_num>0a3d : >skip0410>0a3d : 28 [ 4]> plp ;restore statusset_stat 0> load_flag 00a3e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0a40 : 48 [ 3]> pha ;use stack to load status0a41 : 28 [ 4]> plptst_stat 00a42 : 08 [ 3]> php ;save status0a43 : 08 [ 3]> php ;use stack to retrieve status0a44 : 68 [ 4]> pla> cmp_flag 00a45 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0a47 : f002 [ 3]> beq skip0416> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a49 : 00 [ 7]> brk ; Use BRK to return to the monitor0a4a : 0c > db test_num>0a4b : >skip0416>0a4b : 28 [ 4]> plp ;restore status0a4c : 38 [ 2] sectst_stat carry0a4d : 08 [ 3]> php ;save status0a4e : 08 [ 3]> php ;use stack to retrieve status0a4f : 68 [ 4]> pla> cmp_flag carry0a50 : c931 [ 2]> cmp #(carry|fao)&m8 ;expected flags + always on bits>> trap_ne0a52 : f002 [ 3]> beq skip0420> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a54 : 00 [ 7]> brk ; Use BRK to return to the monitor0a55 : 0c > db test_num>0a56 : >skip0420>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 87---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0a56 : 28 [ 4]> plp ;restore status0a57 : 18 [ 2] clctst_stat 00a58 : 08 [ 3]> php ;save status0a59 : 08 [ 3]> php ;use stack to retrieve status0a5a : 68 [ 4]> pla> cmp_flag 00a5b : c930 [ 2]> cmp #(0 |fao)&m8 ;expected flags + always on bits>> trap_ne0a5d : f002 [ 3]> beq skip0424> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a5f : 00 [ 7]> brk ; Use BRK to return to the monitor0a60 : 0c > db test_num>0a61 : >skip0424>0a61 : 28 [ 4]> plp ;restore statusif I_flag = 30a62 : 78 [ 2] seitst_stat intdis0a63 : 08 [ 3]> php ;save status0a64 : 08 [ 3]> php ;use stack to retrieve status0a65 : 68 [ 4]> pla> cmp_flag intdis0a66 : c934 [ 2]> cmp #(intdis|fao)&m8 ;expected flags + always on bits>> trap_ne0a68 : f002 [ 3]> beq skip0428> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a6a : 00 [ 7]> brk ; Use BRK to return to the monitor0a6b : 0c > db test_num>0a6c : >skip0428>0a6c : 28 [ 4]> plp ;restore status0a6d : 58 [ 2] clitst_stat 00a6e : 08 [ 3]> php ;save status0a6f : 08 [ 3]> php ;use stack to retrieve status0a70 : 68 [ 4]> pla> cmp_flag 00a71 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0a73 : f002 [ 3]> beq skip0432> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 88---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0a75 : 00 [ 7]> brk ; Use BRK to return to the monitor0a76 : 0c > db test_num>0a77 : >skip0432>0a77 : 28 [ 4]> plp ;restore statusendif0a78 : f8 [ 2] sedtst_stat decmode0a79 : 08 [ 3]> php ;save status0a7a : 08 [ 3]> php ;use stack to retrieve status0a7b : 68 [ 4]> pla> cmp_flag decmode0a7c : c938 [ 2]> cmp #(decmode|fao)&m8 ;expected flags + always on bits>> trap_ne0a7e : f002 [ 3]> beq skip0436> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a80 : 00 [ 7]> brk ; Use BRK to return to the monitor0a81 : 0c > db test_num>0a82 : >skip0436>0a82 : 28 [ 4]> plp ;restore status0a83 : d8 [ 2] cldtst_stat 00a84 : 08 [ 3]> php ;save status0a85 : 08 [ 3]> php ;use stack to retrieve status0a86 : 68 [ 4]> pla> cmp_flag 00a87 : c930 [ 2]> cmp #(0 |fao)&m8 ;expected flags + always on bits>> trap_ne0a89 : f002 [ 3]> beq skip0440> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a8b : 00 [ 7]> brk ; Use BRK to return to the monitor0a8c : 0c > db test_num>0a8d : >skip0440>0a8d : 28 [ 4]> plp ;restore statusset_stat overfl> load_flag overfl0a8e : a940 [ 2]> lda #overfl ;allow test to change I-flag (no mask)>0a90 : 48 [ 3]> pha ;use stack to load status0a91 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 89---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tst_stat overfl0a92 : 08 [ 3]> php ;save status0a93 : 08 [ 3]> php ;use stack to retrieve status0a94 : 68 [ 4]> pla> cmp_flag overfl0a95 : c970 [ 2]> cmp #(overfl|fao)&m8 ;expected flags + always on bits>> trap_ne0a97 : f002 [ 3]> beq skip0446> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0a99 : 00 [ 7]> brk ; Use BRK to return to the monitor0a9a : 0c > db test_num>0a9b : >skip0446>0a9b : 28 [ 4]> plp ;restore status0a9c : b8 [ 2] clvtst_stat 00a9d : 08 [ 3]> php ;save status0a9e : 08 [ 3]> php ;use stack to retrieve status0a9f : 68 [ 4]> pla> cmp_flag 00aa0 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0aa2 : f002 [ 3]> beq skip0450> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0aa4 : 00 [ 7]> brk ; Use BRK to return to the monitor0aa5 : 0c > db test_num>0aa6 : >skip0450>0aa6 : 28 [ 4]> plp ;restore statusnext_test0aa7 : ad0002 [ 4]> lda test_case ;previous test0aaa : c90c [ 2]> cmp #test_num> trap_ne ;test is out of sequence0aac : f002 [ 3]> beq skip0453> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0aae : 00 [ 7]> brk ; Use BRK to return to the monitor0aaf : 0c > db test_num>0ab0 : >skip0453>000d = >test_num = test_num + 10ab0 : a90d [ 2]> lda #test_num ;*** this tests' number0ab2 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each testAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 90---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; testing index register increment/decrement and transfer; INX INY DEX DEY TAX TXA TAY TYA0ab5 : a2fe [ 2] ldx #$feset_stat $ff> load_flag $ff0ab7 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0ab9 : 48 [ 3]> pha ;use stack to load status0aba : 28 [ 4]> plp0abb : e8 [ 2] inx ;fftst_x $ff,$ff-zero0abc : 08 [ 3]> php ;save flags0abd : 08 [ 3]> php0abe : e0ff [ 2]> cpx #$ff ;test result> trap_ne0ac0 : f002 [ 3]> beq skip0458> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ac2 : 00 [ 7]> brk ; Use BRK to return to the monitor0ac3 : 0d > db test_num>0ac4 : >skip0458>0ac4 : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0ac5 : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0ac7 : f002 [ 3]> beq skip0461> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ac9 : 00 [ 7]> brk ; Use BRK to return to the monitor0aca : 0d > db test_num>0acb : >skip0461>0acb : 28 [ 4]> plp ;restore status0acc : e8 [ 2] inx ;00tst_x 0,$ff-minus0acd : 08 [ 3]> php ;save flags0ace : 08 [ 3]> php0acf : e000 [ 2]> cpx #0 ;test result> trap_ne0ad1 : f002 [ 3]> beq skip0464> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ad3 : 00 [ 7]> brk ; Use BRK to return to the monitor0ad4 : 0d > db test_num>0ad5 : >skip0464>0ad5 : 68 [ 4]> pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 91---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> cmp_flag $ff-minus0ad6 : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0ad8 : f002 [ 3]> beq skip0467> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ada : 00 [ 7]> brk ; Use BRK to return to the monitor0adb : 0d > db test_num>0adc : >skip0467>0adc : 28 [ 4]> plp ;restore status0add : e8 [ 2] inx ;01tst_x 1,$ff-minus-zero0ade : 08 [ 3]> php ;save flags0adf : 08 [ 3]> php0ae0 : e001 [ 2]> cpx #1 ;test result> trap_ne0ae2 : f002 [ 3]> beq skip0470> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ae4 : 00 [ 7]> brk ; Use BRK to return to the monitor0ae5 : 0d > db test_num>0ae6 : >skip0470>0ae6 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus-zero0ae7 : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0ae9 : f002 [ 3]> beq skip0473> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0aeb : 00 [ 7]> brk ; Use BRK to return to the monitor0aec : 0d > db test_num>0aed : >skip0473>0aed : 28 [ 4]> plp ;restore status0aee : ca [ 2] dex ;00tst_x 0,$ff-minus0aef : 08 [ 3]> php ;save flags0af0 : 08 [ 3]> php0af1 : e000 [ 2]> cpx #0 ;test result> trap_ne0af3 : f002 [ 3]> beq skip0476> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0af5 : 00 [ 7]> brk ; Use BRK to return to the monitor0af6 : 0d > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 92---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0af7 : >skip0476>0af7 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0af8 : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0afa : f002 [ 3]> beq skip0479> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0afc : 00 [ 7]> brk ; Use BRK to return to the monitor0afd : 0d > db test_num>0afe : >skip0479>0afe : 28 [ 4]> plp ;restore status0aff : ca [ 2] dex ;fftst_x $ff,$ff-zero0b00 : 08 [ 3]> php ;save flags0b01 : 08 [ 3]> php0b02 : e0ff [ 2]> cpx #$ff ;test result> trap_ne0b04 : f002 [ 3]> beq skip0482> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b06 : 00 [ 7]> brk ; Use BRK to return to the monitor0b07 : 0d > db test_num>0b08 : >skip0482>0b08 : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0b09 : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0b0b : f002 [ 3]> beq skip0485> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b0d : 00 [ 7]> brk ; Use BRK to return to the monitor0b0e : 0d > db test_num>0b0f : >skip0485>0b0f : 28 [ 4]> plp ;restore status0b10 : ca [ 2] dex ;feset_stat 0> load_flag 00b11 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0b13 : 48 [ 3]> pha ;use stack to load status0b14 : 28 [ 4]> plp0b15 : e8 [ 2] inx ;ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 93---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tst_x $ff,minus0b16 : 08 [ 3]> php ;save flags0b17 : 08 [ 3]> php0b18 : e0ff [ 2]> cpx #$ff ;test result> trap_ne0b1a : f002 [ 3]> beq skip0490> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b1c : 00 [ 7]> brk ; Use BRK to return to the monitor0b1d : 0d > db test_num>0b1e : >skip0490>0b1e : 68 [ 4]> pla ;load status> cmp_flag minus0b1f : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne0b21 : f002 [ 3]> beq skip0493> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b23 : 00 [ 7]> brk ; Use BRK to return to the monitor0b24 : 0d > db test_num>0b25 : >skip0493>0b25 : 28 [ 4]> plp ;restore status0b26 : e8 [ 2] inx ;00tst_x 0,zero0b27 : 08 [ 3]> php ;save flags0b28 : 08 [ 3]> php0b29 : e000 [ 2]> cpx #0 ;test result> trap_ne0b2b : f002 [ 3]> beq skip0496> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b2d : 00 [ 7]> brk ; Use BRK to return to the monitor0b2e : 0d > db test_num>0b2f : >skip0496>0b2f : 68 [ 4]> pla ;load status> cmp_flag zero0b30 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0b32 : f002 [ 3]> beq skip0499> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b34 : 00 [ 7]> brk ; Use BRK to return to the monitor0b35 : 0d > db test_num>0b36 : >skip0499>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 94---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0b36 : 28 [ 4]> plp ;restore status0b37 : e8 [ 2] inx ;01tst_x 1,00b38 : 08 [ 3]> php ;save flags0b39 : 08 [ 3]> php0b3a : e001 [ 2]> cpx #1 ;test result> trap_ne0b3c : f002 [ 3]> beq skip0502> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b3e : 00 [ 7]> brk ; Use BRK to return to the monitor0b3f : 0d > db test_num>0b40 : >skip0502>0b40 : 68 [ 4]> pla ;load status> cmp_flag 00b41 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0b43 : f002 [ 3]> beq skip0505> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b45 : 00 [ 7]> brk ; Use BRK to return to the monitor0b46 : 0d > db test_num>0b47 : >skip0505>0b47 : 28 [ 4]> plp ;restore status0b48 : ca [ 2] dex ;00tst_x 0,zero0b49 : 08 [ 3]> php ;save flags0b4a : 08 [ 3]> php0b4b : e000 [ 2]> cpx #0 ;test result> trap_ne0b4d : f002 [ 3]> beq skip0508> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b4f : 00 [ 7]> brk ; Use BRK to return to the monitor0b50 : 0d > db test_num>0b51 : >skip0508>0b51 : 68 [ 4]> pla ;load status> cmp_flag zero0b52 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0b54 : f002 [ 3]> beq skip0511> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b56 : 00 [ 7]> brk ; Use BRK to return to the monitor0b57 : 0d > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 95---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->0b58 : >skip0511>0b58 : 28 [ 4]> plp ;restore status0b59 : ca [ 2] dex ;fftst_x $ff,minus0b5a : 08 [ 3]> php ;save flags0b5b : 08 [ 3]> php0b5c : e0ff [ 2]> cpx #$ff ;test result> trap_ne0b5e : f002 [ 3]> beq skip0514> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b60 : 00 [ 7]> brk ; Use BRK to return to the monitor0b61 : 0d > db test_num>0b62 : >skip0514>0b62 : 68 [ 4]> pla ;load status> cmp_flag minus0b63 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne0b65 : f002 [ 3]> beq skip0517> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b67 : 00 [ 7]> brk ; Use BRK to return to the monitor0b68 : 0d > db test_num>0b69 : >skip0517>0b69 : 28 [ 4]> plp ;restore status0b6a : a0fe [ 2] ldy #$feset_stat $ff> load_flag $ff0b6c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0b6e : 48 [ 3]> pha ;use stack to load status0b6f : 28 [ 4]> plp0b70 : c8 [ 2] iny ;fftst_y $ff,$ff-zero0b71 : 08 [ 3]> php ;save flags0b72 : 08 [ 3]> php0b73 : c0ff [ 2]> cpy #$ff ;test result> trap_ne0b75 : f002 [ 3]> beq skip0522> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b77 : 00 [ 7]> brk ; Use BRK to return to the monitor0b78 : 0d > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 96---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0b79 : >skip0522>0b79 : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0b7a : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0b7c : f002 [ 3]> beq skip0525> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b7e : 00 [ 7]> brk ; Use BRK to return to the monitor0b7f : 0d > db test_num>0b80 : >skip0525>0b80 : 28 [ 4]> plp ;restore status0b81 : c8 [ 2] iny ;00tst_y 0,$ff-minus0b82 : 08 [ 3]> php ;save flags0b83 : 08 [ 3]> php0b84 : c000 [ 2]> cpy #0 ;test result> trap_ne0b86 : f002 [ 3]> beq skip0528> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b88 : 00 [ 7]> brk ; Use BRK to return to the monitor0b89 : 0d > db test_num>0b8a : >skip0528>0b8a : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0b8b : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0b8d : f002 [ 3]> beq skip0531> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0b8f : 00 [ 7]> brk ; Use BRK to return to the monitor0b90 : 0d > db test_num>0b91 : >skip0531>0b91 : 28 [ 4]> plp ;restore status0b92 : c8 [ 2] iny ;01tst_y 1,$ff-minus-zero0b93 : 08 [ 3]> php ;save flags0b94 : 08 [ 3]> php0b95 : c001 [ 2]> cpy #1 ;test result> trap_ne0b97 : f002 [ 3]> beq skip0534> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 97---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0b99 : 00 [ 7]> brk ; Use BRK to return to the monitor0b9a : 0d > db test_num>0b9b : >skip0534>0b9b : 68 [ 4]> pla ;load status> cmp_flag $ff-minus-zero0b9c : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0b9e : f002 [ 3]> beq skip0537> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ba0 : 00 [ 7]> brk ; Use BRK to return to the monitor0ba1 : 0d > db test_num>0ba2 : >skip0537>0ba2 : 28 [ 4]> plp ;restore status0ba3 : 88 [ 2] dey ;00tst_y 0,$ff-minus0ba4 : 08 [ 3]> php ;save flags0ba5 : 08 [ 3]> php0ba6 : c000 [ 2]> cpy #0 ;test result> trap_ne0ba8 : f002 [ 3]> beq skip0540> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0baa : 00 [ 7]> brk ; Use BRK to return to the monitor0bab : 0d > db test_num>0bac : >skip0540>0bac : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0bad : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0baf : f002 [ 3]> beq skip0543> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0bb1 : 00 [ 7]> brk ; Use BRK to return to the monitor0bb2 : 0d > db test_num>0bb3 : >skip0543>0bb3 : 28 [ 4]> plp ;restore status0bb4 : 88 [ 2] dey ;fftst_y $ff,$ff-zero0bb5 : 08 [ 3]> php ;save flags0bb6 : 08 [ 3]> php0bb7 : c0ff [ 2]> cpy #$ff ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 98---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0bb9 : f002 [ 3]> beq skip0546> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0bbb : 00 [ 7]> brk ; Use BRK to return to the monitor0bbc : 0d > db test_num>0bbd : >skip0546>0bbd : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0bbe : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0bc0 : f002 [ 3]> beq skip0549> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0bc2 : 00 [ 7]> brk ; Use BRK to return to the monitor0bc3 : 0d > db test_num>0bc4 : >skip0549>0bc4 : 28 [ 4]> plp ;restore status0bc5 : 88 [ 2] dey ;feset_stat 0> load_flag 00bc6 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0bc8 : 48 [ 3]> pha ;use stack to load status0bc9 : 28 [ 4]> plp0bca : c8 [ 2] iny ;fftst_y $ff,0+minus0bcb : 08 [ 3]> php ;save flags0bcc : 08 [ 3]> php0bcd : c0ff [ 2]> cpy #$ff ;test result> trap_ne0bcf : f002 [ 3]> beq skip0554> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0bd1 : 00 [ 7]> brk ; Use BRK to return to the monitor0bd2 : 0d > db test_num>0bd3 : >skip0554>0bd3 : 68 [ 4]> pla ;load status> cmp_flag 0+minus0bd4 : c9b0 [ 2]> cmp #(0+minus|fao)&m8 ;expected flags + always on bits>> trap_ne0bd6 : f002 [ 3]> beq skip0557> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0bd8 : 00 [ 7]> brk ; Use BRK to return to the monitor0bd9 : 0d > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 99---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->0bda : >skip0557>0bda : 28 [ 4]> plp ;restore status0bdb : c8 [ 2] iny ;00tst_y 0,zero0bdc : 08 [ 3]> php ;save flags0bdd : 08 [ 3]> php0bde : c000 [ 2]> cpy #0 ;test result> trap_ne0be0 : f002 [ 3]> beq skip0560> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0be2 : 00 [ 7]> brk ; Use BRK to return to the monitor0be3 : 0d > db test_num>0be4 : >skip0560>0be4 : 68 [ 4]> pla ;load status> cmp_flag zero0be5 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0be7 : f002 [ 3]> beq skip0563> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0be9 : 00 [ 7]> brk ; Use BRK to return to the monitor0bea : 0d > db test_num>0beb : >skip0563>0beb : 28 [ 4]> plp ;restore status0bec : c8 [ 2] iny ;01tst_y 1,00bed : 08 [ 3]> php ;save flags0bee : 08 [ 3]> php0bef : c001 [ 2]> cpy #1 ;test result> trap_ne0bf1 : f002 [ 3]> beq skip0566> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0bf3 : 00 [ 7]> brk ; Use BRK to return to the monitor0bf4 : 0d > db test_num>0bf5 : >skip0566>0bf5 : 68 [ 4]> pla ;load status> cmp_flag 00bf6 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0bf8 : f002 [ 3]> beq skip0569> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 100---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0bfa : 00 [ 7]> brk ; Use BRK to return to the monitor0bfb : 0d > db test_num>0bfc : >skip0569>0bfc : 28 [ 4]> plp ;restore status0bfd : 88 [ 2] dey ;00tst_y 0,zero0bfe : 08 [ 3]> php ;save flags0bff : 08 [ 3]> php0c00 : c000 [ 2]> cpy #0 ;test result> trap_ne0c02 : f002 [ 3]> beq skip0572> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c04 : 00 [ 7]> brk ; Use BRK to return to the monitor0c05 : 0d > db test_num>0c06 : >skip0572>0c06 : 68 [ 4]> pla ;load status> cmp_flag zero0c07 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0c09 : f002 [ 3]> beq skip0575> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c0b : 00 [ 7]> brk ; Use BRK to return to the monitor0c0c : 0d > db test_num>0c0d : >skip0575>0c0d : 28 [ 4]> plp ;restore status0c0e : 88 [ 2] dey ;fftst_y $ff,minus0c0f : 08 [ 3]> php ;save flags0c10 : 08 [ 3]> php0c11 : c0ff [ 2]> cpy #$ff ;test result> trap_ne0c13 : f002 [ 3]> beq skip0578> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c15 : 00 [ 7]> brk ; Use BRK to return to the monitor0c16 : 0d > db test_num>0c17 : >skip0578>0c17 : 68 [ 4]> pla ;load status> cmp_flag minus0c18 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 101---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne0c1a : f002 [ 3]> beq skip0581> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c1c : 00 [ 7]> brk ; Use BRK to return to the monitor0c1d : 0d > db test_num>0c1e : >skip0581>0c1e : 28 [ 4]> plp ;restore status0c1f : a2ff [ 2] ldx #$ffset_stat $ff> load_flag $ff0c21 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0c23 : 48 [ 3]> pha ;use stack to load status0c24 : 28 [ 4]> plp0c25 : 8a [ 2] txatst_a $ff,$ff-zero0c26 : 08 [ 3]> php ;save flags0c27 : 08 [ 3]> php0c28 : c9ff [ 2]> cmp #$ff ;test result> trap_ne0c2a : f002 [ 3]> beq skip0586> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c2c : 00 [ 7]> brk ; Use BRK to return to the monitor0c2d : 0d > db test_num>0c2e : >skip0586>0c2e : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0c2f : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0c31 : f002 [ 3]> beq skip0589> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c33 : 00 [ 7]> brk ; Use BRK to return to the monitor0c34 : 0d > db test_num>0c35 : >skip0589>0c35 : 28 [ 4]> plp ;restore status0c36 : 08 [ 3] php0c37 : e8 [ 2] inx ;000c38 : 28 [ 4] plp0c39 : 8a [ 2] txatst_a 0,$ff-minus0c3a : 08 [ 3]> php ;save flagsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 102---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0c3b : 08 [ 3]> php0c3c : c900 [ 2]> cmp #0 ;test result> trap_ne0c3e : f002 [ 3]> beq skip0592> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c40 : 00 [ 7]> brk ; Use BRK to return to the monitor0c41 : 0d > db test_num>0c42 : >skip0592>0c42 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0c43 : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0c45 : f002 [ 3]> beq skip0595> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c47 : 00 [ 7]> brk ; Use BRK to return to the monitor0c48 : 0d > db test_num>0c49 : >skip0595>0c49 : 28 [ 4]> plp ;restore status0c4a : 08 [ 3] php0c4b : e8 [ 2] inx ;010c4c : 28 [ 4] plp0c4d : 8a [ 2] txatst_a 1,$ff-minus-zero0c4e : 08 [ 3]> php ;save flags0c4f : 08 [ 3]> php0c50 : c901 [ 2]> cmp #1 ;test result> trap_ne0c52 : f002 [ 3]> beq skip0598> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c54 : 00 [ 7]> brk ; Use BRK to return to the monitor0c55 : 0d > db test_num>0c56 : >skip0598>0c56 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus-zero0c57 : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0c59 : f002 [ 3]> beq skip0601> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c5b : 00 [ 7]> brk ; Use BRK to return to the monitor0c5c : 0d > db test_num>0c5d : >skip0601AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 103---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->0c5d : 28 [ 4]> plp ;restore statusset_stat 0> load_flag 00c5e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0c60 : 48 [ 3]> pha ;use stack to load status0c61 : 28 [ 4]> plp0c62 : 8a [ 2] txatst_a 1,00c63 : 08 [ 3]> php ;save flags0c64 : 08 [ 3]> php0c65 : c901 [ 2]> cmp #1 ;test result> trap_ne0c67 : f002 [ 3]> beq skip0606> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c69 : 00 [ 7]> brk ; Use BRK to return to the monitor0c6a : 0d > db test_num>0c6b : >skip0606>0c6b : 68 [ 4]> pla ;load status> cmp_flag 00c6c : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0c6e : f002 [ 3]> beq skip0609> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c70 : 00 [ 7]> brk ; Use BRK to return to the monitor0c71 : 0d > db test_num>0c72 : >skip0609>0c72 : 28 [ 4]> plp ;restore status0c73 : 08 [ 3] php0c74 : ca [ 2] dex ;000c75 : 28 [ 4] plp0c76 : 8a [ 2] txatst_a 0,zero0c77 : 08 [ 3]> php ;save flags0c78 : 08 [ 3]> php0c79 : c900 [ 2]> cmp #0 ;test result> trap_ne0c7b : f002 [ 3]> beq skip0612> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c7d : 00 [ 7]> brk ; Use BRK to return to the monitor0c7e : 0d > db test_num>0c7f : >skip0612AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 104---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->0c7f : 68 [ 4]> pla ;load status> cmp_flag zero0c80 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0c82 : f002 [ 3]> beq skip0615> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c84 : 00 [ 7]> brk ; Use BRK to return to the monitor0c85 : 0d > db test_num>0c86 : >skip0615>0c86 : 28 [ 4]> plp ;restore status0c87 : 08 [ 3] php0c88 : ca [ 2] dex ;ff0c89 : 28 [ 4] plp0c8a : 8a [ 2] txatst_a $ff,minus0c8b : 08 [ 3]> php ;save flags0c8c : 08 [ 3]> php0c8d : c9ff [ 2]> cmp #$ff ;test result> trap_ne0c8f : f002 [ 3]> beq skip0618> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c91 : 00 [ 7]> brk ; Use BRK to return to the monitor0c92 : 0d > db test_num>0c93 : >skip0618>0c93 : 68 [ 4]> pla ;load status> cmp_flag minus0c94 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne0c96 : f002 [ 3]> beq skip0621> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0c98 : 00 [ 7]> brk ; Use BRK to return to the monitor0c99 : 0d > db test_num>0c9a : >skip0621>0c9a : 28 [ 4]> plp ;restore status0c9b : a0ff [ 2] ldy #$ffset_stat $ff> load_flag $ff0c9d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0c9f : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 105---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0ca0 : 28 [ 4]> plp0ca1 : 98 [ 2] tyatst_a $ff,$ff-zero0ca2 : 08 [ 3]> php ;save flags0ca3 : 08 [ 3]> php0ca4 : c9ff [ 2]> cmp #$ff ;test result> trap_ne0ca6 : f002 [ 3]> beq skip0626> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ca8 : 00 [ 7]> brk ; Use BRK to return to the monitor0ca9 : 0d > db test_num>0caa : >skip0626>0caa : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0cab : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0cad : f002 [ 3]> beq skip0629> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0caf : 00 [ 7]> brk ; Use BRK to return to the monitor0cb0 : 0d > db test_num>0cb1 : >skip0629>0cb1 : 28 [ 4]> plp ;restore status0cb2 : 08 [ 3] php0cb3 : c8 [ 2] iny ;000cb4 : 28 [ 4] plp0cb5 : 98 [ 2] tyatst_a 0,$ff-minus0cb6 : 08 [ 3]> php ;save flags0cb7 : 08 [ 3]> php0cb8 : c900 [ 2]> cmp #0 ;test result> trap_ne0cba : f002 [ 3]> beq skip0632> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0cbc : 00 [ 7]> brk ; Use BRK to return to the monitor0cbd : 0d > db test_num>0cbe : >skip0632>0cbe : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0cbf : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0cc1 : f002 [ 3]> beq skip0635> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 106---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0cc3 : 00 [ 7]> brk ; Use BRK to return to the monitor0cc4 : 0d > db test_num>0cc5 : >skip0635>0cc5 : 28 [ 4]> plp ;restore status0cc6 : 08 [ 3] php0cc7 : c8 [ 2] iny ;010cc8 : 28 [ 4] plp0cc9 : 98 [ 2] tyatst_a 1,$ff-minus-zero0cca : 08 [ 3]> php ;save flags0ccb : 08 [ 3]> php0ccc : c901 [ 2]> cmp #1 ;test result> trap_ne0cce : f002 [ 3]> beq skip0638> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0cd0 : 00 [ 7]> brk ; Use BRK to return to the monitor0cd1 : 0d > db test_num>0cd2 : >skip0638>0cd2 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus-zero0cd3 : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0cd5 : f002 [ 3]> beq skip0641> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0cd7 : 00 [ 7]> brk ; Use BRK to return to the monitor0cd8 : 0d > db test_num>0cd9 : >skip0641>0cd9 : 28 [ 4]> plp ;restore statusset_stat 0> load_flag 00cda : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0cdc : 48 [ 3]> pha ;use stack to load status0cdd : 28 [ 4]> plp0cde : 98 [ 2] tyatst_a 1,00cdf : 08 [ 3]> php ;save flags0ce0 : 08 [ 3]> php0ce1 : c901 [ 2]> cmp #1 ;test result> trap_ne0ce3 : f002 [ 3]> beq skip0646> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 107---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0ce5 : 00 [ 7]> brk ; Use BRK to return to the monitor0ce6 : 0d > db test_num>0ce7 : >skip0646>0ce7 : 68 [ 4]> pla ;load status> cmp_flag 00ce8 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0cea : f002 [ 3]> beq skip0649> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0cec : 00 [ 7]> brk ; Use BRK to return to the monitor0ced : 0d > db test_num>0cee : >skip0649>0cee : 28 [ 4]> plp ;restore status0cef : 08 [ 3] php0cf0 : 88 [ 2] dey ;000cf1 : 28 [ 4] plp0cf2 : 98 [ 2] tyatst_a 0,zero0cf3 : 08 [ 3]> php ;save flags0cf4 : 08 [ 3]> php0cf5 : c900 [ 2]> cmp #0 ;test result> trap_ne0cf7 : f002 [ 3]> beq skip0652> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0cf9 : 00 [ 7]> brk ; Use BRK to return to the monitor0cfa : 0d > db test_num>0cfb : >skip0652>0cfb : 68 [ 4]> pla ;load status> cmp_flag zero0cfc : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0cfe : f002 [ 4]> beq skip0655> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d00 : 00 [ 7]> brk ; Use BRK to return to the monitor0d01 : 0d > db test_num>0d02 : >skip0655>0d02 : 28 [ 4]> plp ;restore status0d03 : 08 [ 3] php0d04 : 88 [ 2] dey ;ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 108---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0d05 : 28 [ 4] plp0d06 : 98 [ 2] tyatst_a $ff,minus0d07 : 08 [ 3]> php ;save flags0d08 : 08 [ 3]> php0d09 : c9ff [ 2]> cmp #$ff ;test result> trap_ne0d0b : f002 [ 3]> beq skip0658> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d0d : 00 [ 7]> brk ; Use BRK to return to the monitor0d0e : 0d > db test_num>0d0f : >skip0658>0d0f : 68 [ 4]> pla ;load status> cmp_flag minus0d10 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne0d12 : f002 [ 3]> beq skip0661> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d14 : 00 [ 7]> brk ; Use BRK to return to the monitor0d15 : 0d > db test_num>0d16 : >skip0661>0d16 : 28 [ 4]> plp ;restore statusload_flag $ff0d17 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)0d19 : 48 [ 3] pha0d1a : a2ff [ 2] ldx #$ff ;ff0d1c : 8a [ 2] txa0d1d : 28 [ 4] plp0d1e : a8 [ 2] taytst_y $ff,$ff-zero0d1f : 08 [ 3]> php ;save flags0d20 : 08 [ 3]> php0d21 : c0ff [ 2]> cpy #$ff ;test result> trap_ne0d23 : f002 [ 3]> beq skip0665> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d25 : 00 [ 7]> brk ; Use BRK to return to the monitor0d26 : 0d > db test_num>0d27 : >skip0665>0d27 : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0d28 : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 109---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->> trap_ne0d2a : f002 [ 3]> beq skip0668> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d2c : 00 [ 7]> brk ; Use BRK to return to the monitor0d2d : 0d > db test_num>0d2e : >skip0668>0d2e : 28 [ 4]> plp ;restore status0d2f : 08 [ 3] php0d30 : e8 [ 2] inx ;000d31 : 8a [ 2] txa0d32 : 28 [ 4] plp0d33 : a8 [ 2] taytst_y 0,$ff-minus0d34 : 08 [ 3]> php ;save flags0d35 : 08 [ 3]> php0d36 : c000 [ 2]> cpy #0 ;test result> trap_ne0d38 : f002 [ 3]> beq skip0671> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d3a : 00 [ 7]> brk ; Use BRK to return to the monitor0d3b : 0d > db test_num>0d3c : >skip0671>0d3c : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0d3d : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0d3f : f002 [ 3]> beq skip0674> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d41 : 00 [ 7]> brk ; Use BRK to return to the monitor0d42 : 0d > db test_num>0d43 : >skip0674>0d43 : 28 [ 4]> plp ;restore status0d44 : 08 [ 3] php0d45 : e8 [ 2] inx ;010d46 : 8a [ 2] txa0d47 : 28 [ 4] plp0d48 : a8 [ 2] taytst_y 1,$ff-minus-zero0d49 : 08 [ 3]> php ;save flags0d4a : 08 [ 3]> php0d4b : c001 [ 2]> cpy #1 ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 110---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0d4d : f002 [ 3]> beq skip0677> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d4f : 00 [ 7]> brk ; Use BRK to return to the monitor0d50 : 0d > db test_num>0d51 : >skip0677>0d51 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus-zero0d52 : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0d54 : f002 [ 3]> beq skip0680> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d56 : 00 [ 7]> brk ; Use BRK to return to the monitor0d57 : 0d > db test_num>0d58 : >skip0680>0d58 : 28 [ 4]> plp ;restore statusload_flag 00d59 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)0d5b : 48 [ 3] pha0d5c : a900 [ 2] lda #00d5e : 8a [ 2] txa0d5f : 28 [ 4] plp0d60 : a8 [ 2] taytst_y 1,00d61 : 08 [ 3]> php ;save flags0d62 : 08 [ 3]> php0d63 : c001 [ 2]> cpy #1 ;test result> trap_ne0d65 : f002 [ 3]> beq skip0684> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d67 : 00 [ 7]> brk ; Use BRK to return to the monitor0d68 : 0d > db test_num>0d69 : >skip0684>0d69 : 68 [ 4]> pla ;load status> cmp_flag 00d6a : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0d6c : f002 [ 3]> beq skip0687> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d6e : 00 [ 7]> brk ; Use BRK to return to the monitor0d6f : 0d > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 111---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0d70 : >skip0687>0d70 : 28 [ 4]> plp ;restore status0d71 : 08 [ 3] php0d72 : ca [ 2] dex ;000d73 : 8a [ 2] txa0d74 : 28 [ 4] plp0d75 : a8 [ 2] taytst_y 0,zero0d76 : 08 [ 3]> php ;save flags0d77 : 08 [ 3]> php0d78 : c000 [ 2]> cpy #0 ;test result> trap_ne0d7a : f002 [ 3]> beq skip0690> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d7c : 00 [ 7]> brk ; Use BRK to return to the monitor0d7d : 0d > db test_num>0d7e : >skip0690>0d7e : 68 [ 4]> pla ;load status> cmp_flag zero0d7f : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0d81 : f002 [ 3]> beq skip0693> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d83 : 00 [ 7]> brk ; Use BRK to return to the monitor0d84 : 0d > db test_num>0d85 : >skip0693>0d85 : 28 [ 4]> plp ;restore status0d86 : 08 [ 3] php0d87 : ca [ 2] dex ;ff0d88 : 8a [ 2] txa0d89 : 28 [ 4] plp0d8a : a8 [ 2] taytst_y $ff,minus0d8b : 08 [ 3]> php ;save flags0d8c : 08 [ 3]> php0d8d : c0ff [ 2]> cpy #$ff ;test result> trap_ne0d8f : f002 [ 3]> beq skip0696> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d91 : 00 [ 7]> brk ; Use BRK to return to the monitor0d92 : 0d > db test_num>0d93 : >skip0696>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 112---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0d93 : 68 [ 4]> pla ;load status> cmp_flag minus0d94 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne0d96 : f002 [ 3]> beq skip0699> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0d98 : 00 [ 7]> brk ; Use BRK to return to the monitor0d99 : 0d > db test_num>0d9a : >skip0699>0d9a : 28 [ 4]> plp ;restore statusload_flag $ff0d9b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)0d9d : 48 [ 3] pha0d9e : a0ff [ 2] ldy #$ff ;ff0da0 : 98 [ 2] tya0da1 : 28 [ 4] plp0da2 : aa [ 2] taxtst_x $ff,$ff-zero0da3 : 08 [ 3]> php ;save flags0da4 : 08 [ 3]> php0da5 : e0ff [ 2]> cpx #$ff ;test result> trap_ne0da7 : f002 [ 3]> beq skip0703> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0da9 : 00 [ 7]> brk ; Use BRK to return to the monitor0daa : 0d > db test_num>0dab : >skip0703>0dab : 68 [ 4]> pla ;load status> cmp_flag $ff-zero0dac : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0dae : f002 [ 3]> beq skip0706> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0db0 : 00 [ 7]> brk ; Use BRK to return to the monitor0db1 : 0d > db test_num>0db2 : >skip0706>0db2 : 28 [ 4]> plp ;restore status0db3 : 08 [ 3] php0db4 : c8 [ 2] iny ;00AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 113---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0db5 : 98 [ 2] tya0db6 : 28 [ 4] plp0db7 : aa [ 2] taxtst_x 0,$ff-minus0db8 : 08 [ 3]> php ;save flags0db9 : 08 [ 3]> php0dba : e000 [ 2]> cpx #0 ;test result> trap_ne0dbc : f002 [ 3]> beq skip0709> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0dbe : 00 [ 7]> brk ; Use BRK to return to the monitor0dbf : 0d > db test_num>0dc0 : >skip0709>0dc0 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus0dc1 : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bits>> trap_ne0dc3 : f002 [ 3]> beq skip0712> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0dc5 : 00 [ 7]> brk ; Use BRK to return to the monitor0dc6 : 0d > db test_num>0dc7 : >skip0712>0dc7 : 28 [ 4]> plp ;restore status0dc8 : 08 [ 3] php0dc9 : c8 [ 2] iny ;010dca : 98 [ 2] tya0dcb : 28 [ 4] plp0dcc : aa [ 2] taxtst_x 1,$ff-minus-zero0dcd : 08 [ 3]> php ;save flags0dce : 08 [ 3]> php0dcf : e001 [ 2]> cpx #1 ;test result> trap_ne0dd1 : f002 [ 3]> beq skip0715> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0dd3 : 00 [ 7]> brk ; Use BRK to return to the monitor0dd4 : 0d > db test_num>0dd5 : >skip0715>0dd5 : 68 [ 4]> pla ;load status> cmp_flag $ff-minus-zero0dd6 : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bits>> trap_ne0dd8 : f002 [ 3]> beq skip0718AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 114---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0dda : 00 [ 7]> brk ; Use BRK to return to the monitor0ddb : 0d > db test_num>0ddc : >skip0718>0ddc : 28 [ 4]> plp ;restore statusload_flag 00ddd : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)0ddf : 48 [ 3] pha0de0 : a900 [ 2] lda #0 ;preset status0de2 : 98 [ 2] tya0de3 : 28 [ 4] plp0de4 : aa [ 2] taxtst_x 1,00de5 : 08 [ 3]> php ;save flags0de6 : 08 [ 3]> php0de7 : e001 [ 2]> cpx #1 ;test result> trap_ne0de9 : f002 [ 3]> beq skip0722> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0deb : 00 [ 7]> brk ; Use BRK to return to the monitor0dec : 0d > db test_num>0ded : >skip0722>0ded : 68 [ 4]> pla ;load status> cmp_flag 00dee : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits>> trap_ne0df0 : f002 [ 3]> beq skip0725> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0df2 : 00 [ 7]> brk ; Use BRK to return to the monitor0df3 : 0d > db test_num>0df4 : >skip0725>0df4 : 28 [ 4]> plp ;restore status0df5 : 08 [ 3] php0df6 : 88 [ 2] dey ;000df7 : 98 [ 2] tya0df8 : 28 [ 4] plp0df9 : aa [ 2] taxtst_x 0,zero0dfa : 08 [ 3]> php ;save flags0dfb : 08 [ 3]> php0dfc : e000 [ 2]> cpx #0 ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 115---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0dfe : f002 [ 4]> beq skip0728> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e00 : 00 [ 7]> brk ; Use BRK to return to the monitor0e01 : 0d > db test_num>0e02 : >skip0728>0e02 : 68 [ 4]> pla ;load status> cmp_flag zero0e03 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bits>> trap_ne0e05 : f002 [ 3]> beq skip0731> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e07 : 00 [ 7]> brk ; Use BRK to return to the monitor0e08 : 0d > db test_num>0e09 : >skip0731>0e09 : 28 [ 4]> plp ;restore status0e0a : 08 [ 3] php0e0b : 88 [ 2] dey ;ff0e0c : 98 [ 2] tya0e0d : 28 [ 4] plp0e0e : aa [ 2] taxtst_x $ff,minus0e0f : 08 [ 3]> php ;save flags0e10 : 08 [ 3]> php0e11 : e0ff [ 2]> cpx #$ff ;test result> trap_ne0e13 : f002 [ 3]> beq skip0734> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e15 : 00 [ 7]> brk ; Use BRK to return to the monitor0e16 : 0d > db test_num>0e17 : >skip0734>0e17 : 68 [ 4]> pla ;load status> cmp_flag minus0e18 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bits>> trap_ne0e1a : f002 [ 3]> beq skip0737> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e1c : 00 [ 7]> brk ; Use BRK to return to the monitor0e1d : 0d > db test_num>0e1e : >skip0737>0e1e : 28 [ 4]> plp ;restore statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 116---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------next_test0e1f : ad0002 [ 4]> lda test_case ;previous test0e22 : c90d [ 2]> cmp #test_num> trap_ne ;test is out of sequence0e24 : f002 [ 3]> beq skip0740> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e26 : 00 [ 7]> brk ; Use BRK to return to the monitor0e27 : 0d > db test_num>0e28 : >skip0740>000e = >test_num = test_num + 10e28 : a90e [ 2]> lda #test_num ;*** this tests' number0e2a : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test;TSX sets NZ - TXS does not0e2d : a201 [ 2] ldx #1 ;01set_stat $ff> load_flag $ff0e2f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0e31 : 48 [ 3]> pha ;use stack to load status0e32 : 28 [ 4]> plp0e33 : 9a [ 2] txs0e34 : 08 [ 3] php0e35 : ad0101 [ 4] lda $101cmp_flag $ff0e38 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bitstrap_ne0e3a : f002 [ 3]> beq skip0745> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e3c : 00 [ 7]> brk ; Use BRK to return to the monitor0e3d : 0e > db test_num>0e3e : >skip0745set_stat 0> load_flag 00e3e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0e40 : 48 [ 3]> pha ;use stack to load status0e41 : 28 [ 4]> plp0e42 : 9a [ 2] txs0e43 : 08 [ 3] php0e44 : ad0101 [ 4] lda $101cmp_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 117---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0e47 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bitstrap_ne0e49 : f002 [ 3]> beq skip0750> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e4b : 00 [ 7]> brk ; Use BRK to return to the monitor0e4c : 0e > db test_num>0e4d : >skip07500e4d : ca [ 2] dex ;00set_stat $ff> load_flag $ff0e4e : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0e50 : 48 [ 3]> pha ;use stack to load status0e51 : 28 [ 4]> plp0e52 : 9a [ 2] txs0e53 : 08 [ 3] php0e54 : ad0001 [ 4] lda $100cmp_flag $ff0e57 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bitstrap_ne0e59 : f002 [ 3]> beq skip0755> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e5b : 00 [ 7]> brk ; Use BRK to return to the monitor0e5c : 0e > db test_num>0e5d : >skip0755set_stat 0> load_flag 00e5d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0e5f : 48 [ 3]> pha ;use stack to load status0e60 : 28 [ 4]> plp0e61 : 9a [ 2] txs0e62 : 08 [ 3] php0e63 : ad0001 [ 4] lda $100cmp_flag 00e66 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bitstrap_ne0e68 : f002 [ 3]> beq skip0760> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e6a : 00 [ 7]> brk ; Use BRK to return to the monitor0e6b : 0e > db test_num>0e6c : >skip0760AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 118---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0e6c : ca [ 2] dex ;ffset_stat $ff> load_flag $ff0e6d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0e6f : 48 [ 3]> pha ;use stack to load status0e70 : 28 [ 4]> plp0e71 : 9a [ 2] txs0e72 : 08 [ 3] php0e73 : adff01 [ 4] lda $1ffcmp_flag $ff0e76 : c9ff [ 2]> cmp #($ff|fao)&m8 ;expected flags + always on bitstrap_ne0e78 : f002 [ 3]> beq skip0765> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e7a : 00 [ 7]> brk ; Use BRK to return to the monitor0e7b : 0e > db test_num>0e7c : >skip0765set_stat 0> load_flag 00e7c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0e7e : 48 [ 3]> pha ;use stack to load status0e7f : 28 [ 4]> plp0e80 : 9a [ 2] txs0e81 : 08 [ 3] php0e82 : adff01 [ 4] lda $1ffcmp_flag 00e85 : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bits0e87 : a201 [ 2] ldx #10e89 : 9a [ 2] txs ;sp=01set_stat $ff> load_flag $ff0e8a : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0e8c : 48 [ 3]> pha ;use stack to load status0e8d : 28 [ 4]> plp0e8e : ba [ 2] tsx ;clears Z, N0e8f : 08 [ 3] php ;sp=000e90 : e001 [ 2] cpx #1trap_ne0e92 : f002 [ 3]> beq skip0772> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e94 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 119---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0e95 : 0e > db test_num>0e96 : >skip07720e96 : ad0101 [ 4] lda $101cmp_flag $ff-minus-zero0e99 : c97d [ 2]> cmp #($ff-minus-zero|fao)&m8 ;expected flags + always on bitstrap_ne0e9b : f002 [ 3]> beq skip0775> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0e9d : 00 [ 7]> brk ; Use BRK to return to the monitor0e9e : 0e > db test_num>0e9f : >skip0775set_stat $ff> load_flag $ff0e9f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0ea1 : 48 [ 3]> pha ;use stack to load status0ea2 : 28 [ 4]> plp0ea3 : ba [ 2] tsx ;clears N, sets Z0ea4 : 08 [ 3] php ;sp=ff0ea5 : e000 [ 2] cpx #0trap_ne0ea7 : f002 [ 3]> beq skip0779> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ea9 : 00 [ 7]> brk ; Use BRK to return to the monitor0eaa : 0e > db test_num>0eab : >skip07790eab : ad0001 [ 4] lda $100cmp_flag $ff-minus0eae : c97f [ 2]> cmp #($ff-minus|fao)&m8 ;expected flags + always on bitstrap_ne0eb0 : f002 [ 3]> beq skip0782> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0eb2 : 00 [ 7]> brk ; Use BRK to return to the monitor0eb3 : 0e > db test_num>0eb4 : >skip0782set_stat $ff> load_flag $ff0eb4 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0eb6 : 48 [ 3]> pha ;use stack to load status0eb7 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 120---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0eb8 : ba [ 2] tsx ;clears N, sets Z0eb9 : 08 [ 3] php ;sp=fe0eba : e0ff [ 2] cpx #$fftrap_ne0ebc : f002 [ 3]> beq skip0786> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ebe : 00 [ 7]> brk ; Use BRK to return to the monitor0ebf : 0e > db test_num>0ec0 : >skip07860ec0 : adff01 [ 4] lda $1ffcmp_flag $ff-zero0ec3 : c9fd [ 2]> cmp #($ff-zero|fao)&m8 ;expected flags + always on bitstrap_ne0ec5 : f002 [ 3]> beq skip0789> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ec7 : 00 [ 7]> brk ; Use BRK to return to the monitor0ec8 : 0e > db test_num>0ec9 : >skip07890ec9 : a201 [ 2] ldx #10ecb : 9a [ 2] txs ;sp=01set_stat 0> load_flag 00ecc : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0ece : 48 [ 3]> pha ;use stack to load status0ecf : 28 [ 4]> plp0ed0 : ba [ 2] tsx ;clears Z, N0ed1 : 08 [ 3] php ;sp=000ed2 : e001 [ 2] cpx #1trap_ne0ed4 : f002 [ 3]> beq skip0793> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ed6 : 00 [ 7]> brk ; Use BRK to return to the monitor0ed7 : 0e > db test_num>0ed8 : >skip07930ed8 : ad0101 [ 4] lda $101cmp_flag 00edb : c930 [ 2]> cmp #(0|fao)&m8 ;expected flags + always on bitstrap_ne0edd : f002 [ 3]> beq skip0796> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 121---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction0edf : 00 [ 7]> brk ; Use BRK to return to the monitor0ee0 : 0e > db test_num>0ee1 : >skip0796set_stat 0> load_flag 00ee1 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0ee3 : 48 [ 3]> pha ;use stack to load status0ee4 : 28 [ 4]> plp0ee5 : ba [ 2] tsx ;clears N, sets Z0ee6 : 08 [ 3] php ;sp=ff0ee7 : e000 [ 2] cpx #0trap_ne0ee9 : f002 [ 3]> beq skip0800> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0eeb : 00 [ 7]> brk ; Use BRK to return to the monitor0eec : 0e > db test_num>0eed : >skip08000eed : ad0001 [ 4] lda $100cmp_flag zero0ef0 : c932 [ 2]> cmp #(zero|fao)&m8 ;expected flags + always on bitstrap_ne0ef2 : f002 [ 3]> beq skip0803> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0ef4 : 00 [ 7]> brk ; Use BRK to return to the monitor0ef5 : 0e > db test_num>0ef6 : >skip0803set_stat 0> load_flag 00ef6 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0ef8 : 48 [ 3]> pha ;use stack to load status0ef9 : 28 [ 4]> plp0efa : ba [ 2] tsx ;clears N, sets Z0efb : 08 [ 3] php ;sp=fe0efc : e0ff [ 2] cpx #$fftrap_ne0efe : f002 [ 4]> beq skip0807> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f00 : 00 [ 7]> brk ; Use BRK to return to the monitor0f01 : 0e > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 122---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0f02 : >skip08070f02 : adff01 [ 4] lda $1ffcmp_flag minus0f05 : c9b0 [ 2]> cmp #(minus|fao)&m8 ;expected flags + always on bitstrap_ne0f07 : f002 [ 3]> beq skip0810> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f09 : 00 [ 7]> brk ; Use BRK to return to the monitor0f0a : 0e > db test_num>0f0b : >skip08100f0b : 68 [ 4] pla ;sp=ffnext_test0f0c : ad0002 [ 4]> lda test_case ;previous test0f0f : c90e [ 2]> cmp #test_num> trap_ne ;test is out of sequence0f11 : f002 [ 3]> beq skip0813> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f13 : 00 [ 7]> brk ; Use BRK to return to the monitor0f14 : 0e > db test_num>0f15 : >skip0813>000f = >test_num = test_num + 10f15 : a90f [ 2]> lda #test_num ;*** this tests' number0f17 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; testing index register load & store LDY LDX STY STX all addressing modes; LDX / STX - zp,y / abs,y0f1a : a003 [ 2] ldy #30f1c : tldxset_stat 0> load_flag 00f1c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0f1e : 48 [ 3]> pha ;use stack to load status0f1f : 28 [ 4]> plp0f20 : b6b9 [ 4] ldx zp1,y0f22 : 08 [ 3] php ;test stores do not alter flags0f23 : 8a [ 2] txa0f24 : 49c3 [ 2] eor #$c30f26 : 28 [ 4] plp0f27 : 990302 [ 5] sta abst,y0f2a : 08 [ 3] php ;flags after load/store sequence0f2b : 49c3 [ 2] eor #$c30f2d : d90802 [ 4] cmp abs1,y ;test resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 123---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne0f30 : f002 [ 3]> beq skip0817> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f32 : 00 [ 7]> brk ; Use BRK to return to the monitor0f33 : 0f > db test_num>0f34 : >skip08170f34 : 68 [ 4] pla ;load statuseor_flag 00f35 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits0f37 : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne0f3a : f002 [ 3]> beq skip0820> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f3c : 00 [ 7]> brk ; Use BRK to return to the monitor0f3d : 0f > db test_num>0f3e : >skip08200f3e : 88 [ 2] dey0f3f : 10db [ 3] bpl tldx0f41 : a003 [ 2] ldy #30f43 : tldx1set_stat $ff> load_flag $ff0f43 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0f45 : 48 [ 3]> pha ;use stack to load status0f46 : 28 [ 4]> plp0f47 : b6b9 [ 4] ldx zp1,y0f49 : 08 [ 3] php ;test stores do not alter flags0f4a : 8a [ 2] txa0f4b : 49c3 [ 2] eor #$c30f4d : 28 [ 4] plp0f4e : 990302 [ 5] sta abst,y0f51 : 08 [ 3] php ;flags after load/store sequence0f52 : 49c3 [ 2] eor #$c30f54 : d90802 [ 4] cmp abs1,y ;test resulttrap_ne0f57 : f002 [ 3]> beq skip0824> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f59 : 00 [ 7]> brk ; Use BRK to return to the monitor0f5a : 0f > db test_num>0f5b : >skip08240f5b : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not alteredAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 124---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0f5c : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits0f5e : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne0f61 : f002 [ 3]> beq skip0827> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f63 : 00 [ 7]> brk ; Use BRK to return to the monitor0f64 : 0f > db test_num>0f65 : >skip08270f65 : 88 [ 2] dey0f66 : 10db [ 3] bpl tldx10f68 : a003 [ 2] ldy #30f6a : tldx2set_stat 0> load_flag 00f6a : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>0f6c : 48 [ 3]> pha ;use stack to load status0f6d : 28 [ 4]> plp0f6e : be0802 [ 4] ldx abs1,y0f71 : 08 [ 3] php ;test stores do not alter flags0f72 : 8a [ 2] txa0f73 : 49c3 [ 2] eor #$c30f75 : aa [ 2] tax0f76 : 28 [ 4] plp0f77 : 96b2 [ 4] stx zpt,y0f79 : 08 [ 3] php ;flags after load/store sequence0f7a : 49c3 [ 2] eor #$c30f7c : d9b900 [ 4] cmp zp1,y ;test resulttrap_ne0f7f : f002 [ 3]> beq skip0831> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f81 : 00 [ 7]> brk ; Use BRK to return to the monitor0f82 : 0f > db test_num>0f83 : >skip08310f83 : 68 [ 4] pla ;load statuseor_flag 00f84 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits0f86 : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne0f89 : f002 [ 3]> beq skip0834> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0f8b : 00 [ 7]> brk ; Use BRK to return to the monitor0f8c : 0f > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 125---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0f8d : >skip08340f8d : 88 [ 2] dey0f8e : 10da [ 3] bpl tldx20f90 : a003 [ 2] ldy #30f92 : tldx3set_stat $ff> load_flag $ff0f92 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>0f94 : 48 [ 3]> pha ;use stack to load status0f95 : 28 [ 4]> plp0f96 : be0802 [ 4] ldx abs1,y0f99 : 08 [ 3] php ;test stores do not alter flags0f9a : 8a [ 2] txa0f9b : 49c3 [ 2] eor #$c30f9d : aa [ 2] tax0f9e : 28 [ 4] plp0f9f : 96b2 [ 4] stx zpt,y0fa1 : 08 [ 3] php ;flags after load/store sequence0fa2 : 49c3 [ 2] eor #$c30fa4 : d9b900 [ 4] cmp zp1,y ;test resulttrap_ne0fa7 : f002 [ 3]> beq skip0838> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0fa9 : 00 [ 7]> brk ; Use BRK to return to the monitor0faa : 0f > db test_num>0fab : >skip08380fab : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered0fac : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits0fae : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne0fb1 : f002 [ 3]> beq skip0841> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0fb3 : 00 [ 7]> brk ; Use BRK to return to the monitor0fb4 : 0f > db test_num>0fb5 : >skip08410fb5 : 88 [ 2] dey0fb6 : 10da [ 3] bpl tldx30fb8 : a003 [ 2] ldy #3 ;testing store result0fba : a200 [ 2] ldx #00fbc : b9b200 [ 4] tstx lda zpt,y0fbf : 49c3 [ 2] eor #$c30fc1 : d9b900 [ 4] cmp zp1,yAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 126---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne ;store to zp data0fc4 : f002 [ 3]> beq skip0843> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0fc6 : 00 [ 7]> brk ; Use BRK to return to the monitor0fc7 : 0f > db test_num>0fc8 : >skip08430fc8 : 96b2 [ 4] stx zpt,y ;clear0fca : b90302 [ 4] lda abst,y0fcd : 49c3 [ 2] eor #$c30fcf : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data0fd2 : f002 [ 3]> beq skip0845> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0fd4 : 00 [ 7]> brk ; Use BRK to return to the monitor0fd5 : 0f > db test_num>0fd6 : >skip08450fd6 : 8a [ 2] txa0fd7 : 990302 [ 5] sta abst,y ;clear0fda : 88 [ 2] dey0fdb : 10df [ 3] bpl tstxnext_test0fdd : ad0002 [ 4]> lda test_case ;previous test0fe0 : c90f [ 2]> cmp #test_num> trap_ne ;test is out of sequence0fe2 : f002 [ 3]> beq skip0848> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction0fe4 : 00 [ 7]> brk ; Use BRK to return to the monitor0fe5 : 0f > db test_num>0fe6 : >skip0848>0010 = >test_num = test_num + 10fe6 : a910 [ 2]> lda #test_num ;*** this tests' number0fe8 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; indexed wraparound test (only zp should wrap)0feb : a0fd [ 2] ldy #3+$fa0fed : b6bf [ 4] tldx4 ldx zp1-$fa&$ff,y ;wrap on indexed zp0fef : 8a [ 2] txa0ff0 : 990901 [ 5] sta abst-$fa,y ;no STX abs,y!0ff3 : 88 [ 2] dey0ff4 : c0fa [ 2] cpy #$fa0ff6 : b0f5 [ 3] bcs tldx40ff8 : a0fd [ 2] ldy #3+$fa0ffa : be0e01 [ 4] tldx5 ldx abs1-$fa,y ;no wrap on indexed absAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 127---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------0ffd : 96b8 [ 4] stx zpt-$fa&$ff,y0fff : 88 [ 2] dey1000 : c0fa [ 2] cpy #$fa1002 : b0f6 [ 4] bcs tldx51004 : a003 [ 2] ldy #3 ;testing wraparound result1006 : a200 [ 2] ldx #01008 : b9b200 [ 4] tstx1 lda zpt,y100b : d9b900 [ 4] cmp zp1,ytrap_ne ;store to zp data100e : f002 [ 3]> beq skip0850> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1010 : 00 [ 7]> brk ; Use BRK to return to the monitor1011 : 10 > db test_num>1012 : >skip08501012 : 96b2 [ 4] stx zpt,y ;clear1014 : b90302 [ 4] lda abst,y1017 : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data101a : f002 [ 3]> beq skip0852> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction101c : 00 [ 7]> brk ; Use BRK to return to the monitor101d : 10 > db test_num>101e : >skip0852101e : 8a [ 2] txa101f : 990302 [ 5] sta abst,y ;clear1022 : 88 [ 2] dey1023 : 10e3 [ 3] bpl tstx1next_test1025 : ad0002 [ 4]> lda test_case ;previous test1028 : c910 [ 2]> cmp #test_num> trap_ne ;test is out of sequence102a : f002 [ 3]> beq skip0855> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction102c : 00 [ 7]> brk ; Use BRK to return to the monitor102d : 10 > db test_num>102e : >skip0855>0011 = >test_num = test_num + 1102e : a911 [ 2]> lda #test_num ;*** this tests' number1030 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; LDY / STY - zp,x / abs,x1033 : a203 [ 2] ldx #31035 : tldyAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 128---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------set_stat 0> load_flag 01035 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1037 : 48 [ 3]> pha ;use stack to load status1038 : 28 [ 4]> plp1039 : b4b9 [ 4] ldy zp1,x103b : 08 [ 3] php ;test stores do not alter flags103c : 98 [ 2] tya103d : 49c3 [ 2] eor #$c3103f : 28 [ 4] plp1040 : 9d0302 [ 5] sta abst,x1043 : 08 [ 3] php ;flags after load/store sequence1044 : 49c3 [ 2] eor #$c31046 : dd0802 [ 4] cmp abs1,x ;test resulttrap_ne1049 : f002 [ 3]> beq skip0859> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction104b : 00 [ 7]> brk ; Use BRK to return to the monitor104c : 11 > db test_num>104d : >skip0859104d : 68 [ 4] pla ;load statuseor_flag 0104e : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1050 : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_ne1053 : f002 [ 3]> beq skip0862> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1055 : 00 [ 7]> brk ; Use BRK to return to the monitor1056 : 11 > db test_num>1057 : >skip08621057 : ca [ 2] dex1058 : 10db [ 3] bpl tldy105a : a203 [ 2] ldx #3105c : tldy1set_stat $ff> load_flag $ff105c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>105e : 48 [ 3]> pha ;use stack to load status105f : 28 [ 4]> plp1060 : b4b9 [ 4] ldy zp1,x1062 : 08 [ 3] php ;test stores do not alter flags1063 : 98 [ 2] tya1064 : 49c3 [ 2] eor #$c3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 129---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1066 : 28 [ 4] plp1067 : 9d0302 [ 5] sta abst,x106a : 08 [ 3] php ;flags after load/store sequence106b : 49c3 [ 2] eor #$c3106d : dd0802 [ 4] cmp abs1,x ;test resulttrap_ne1070 : f002 [ 3]> beq skip0866> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1072 : 00 [ 7]> brk ; Use BRK to return to the monitor1073 : 11 > db test_num>1074 : >skip08661074 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1075 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1077 : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_ne107a : f002 [ 3]> beq skip0869> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction107c : 00 [ 7]> brk ; Use BRK to return to the monitor107d : 11 > db test_num>107e : >skip0869107e : ca [ 2] dex107f : 10db [ 3] bpl tldy11081 : a203 [ 2] ldx #31083 : tldy2set_stat 0> load_flag 01083 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1085 : 48 [ 3]> pha ;use stack to load status1086 : 28 [ 4]> plp1087 : bc0802 [ 4] ldy abs1,x108a : 08 [ 3] php ;test stores do not alter flags108b : 98 [ 2] tya108c : 49c3 [ 2] eor #$c3108e : a8 [ 2] tay108f : 28 [ 4] plp1090 : 94b2 [ 4] sty zpt,x1092 : 08 [ 3] php ;flags after load/store sequence1093 : 49c3 [ 2] eor #$c31095 : d5b9 [ 4] cmp zp1,x ;test resulttrap_ne1097 : f002 [ 3]> beq skip0873> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1099 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 130---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------109a : 11 > db test_num>109b : >skip0873109b : 68 [ 4] pla ;load statuseor_flag 0109c : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits109e : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_ne10a1 : f002 [ 3]> beq skip0876> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction10a3 : 00 [ 7]> brk ; Use BRK to return to the monitor10a4 : 11 > db test_num>10a5 : >skip087610a5 : ca [ 2] dex10a6 : 10db [ 3] bpl tldy210a8 : a203 [ 2] ldx #310aa : tldy3set_stat $ff> load_flag $ff10aa : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>10ac : 48 [ 3]> pha ;use stack to load status10ad : 28 [ 4]> plp10ae : bc0802 [ 4] ldy abs1,x10b1 : 08 [ 3] php ;test stores do not alter flags10b2 : 98 [ 2] tya10b3 : 49c3 [ 2] eor #$c310b5 : a8 [ 2] tay10b6 : 28 [ 4] plp10b7 : 94b2 [ 4] sty zpt,x10b9 : 08 [ 3] php ;flags after load/store sequence10ba : 49c3 [ 2] eor #$c310bc : d5b9 [ 4] cmp zp1,x ;test resulttrap_ne10be : f002 [ 3]> beq skip0880> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction10c0 : 00 [ 7]> brk ; Use BRK to return to the monitor10c1 : 11 > db test_num>10c2 : >skip088010c2 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered10c3 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits10c5 : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 131---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------10c8 : f002 [ 3]> beq skip0883> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction10ca : 00 [ 7]> brk ; Use BRK to return to the monitor10cb : 11 > db test_num>10cc : >skip088310cc : ca [ 2] dex10cd : 10db [ 3] bpl tldy310cf : a203 [ 2] ldx #3 ;testing store result10d1 : a000 [ 2] ldy #010d3 : b5b2 [ 4] tsty lda zpt,x10d5 : 49c3 [ 2] eor #$c310d7 : d5b9 [ 4] cmp zp1,xtrap_ne ;store to zp,x data10d9 : f002 [ 3]> beq skip0885> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction10db : 00 [ 7]> brk ; Use BRK to return to the monitor10dc : 11 > db test_num>10dd : >skip088510dd : 94b2 [ 4] sty zpt,x ;clear10df : bd0302 [ 4] lda abst,x10e2 : 49c3 [ 2] eor #$c310e4 : dd0802 [ 4] cmp abs1,xtrap_ne ;store to abs,x data10e7 : f002 [ 3]> beq skip0887> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction10e9 : 00 [ 7]> brk ; Use BRK to return to the monitor10ea : 11 > db test_num>10eb : >skip088710eb : 8a [ 2] txa10ec : 9d0302 [ 5] sta abst,x ;clear10ef : ca [ 2] dex10f0 : 10e1 [ 3] bpl tstynext_test10f2 : ad0002 [ 4]> lda test_case ;previous test10f5 : c911 [ 2]> cmp #test_num> trap_ne ;test is out of sequence10f7 : f002 [ 3]> beq skip0890> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction10f9 : 00 [ 7]> brk ; Use BRK to return to the monitor10fa : 11 > db test_num>10fb : >skip0890>0012 = >test_num = test_num + 1AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 132---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------10fb : a912 [ 2]> lda #test_num ;*** this tests' number10fd : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; indexed wraparound test (only zp should wrap)1100 : a2fd [ 2] ldx #3+$fa1102 : b4bf [ 4] tldy4 ldy zp1-$fa&$ff,x ;wrap on indexed zp1104 : 98 [ 2] tya1105 : 9d0901 [ 5] sta abst-$fa,x ;no STX abs,x!1108 : ca [ 2] dex1109 : e0fa [ 2] cpx #$fa110b : b0f5 [ 3] bcs tldy4110d : a2fd [ 2] ldx #3+$fa110f : bc0e01 [ 4] tldy5 ldy abs1-$fa,x ;no wrap on indexed abs1112 : 94b8 [ 4] sty zpt-$fa&$ff,x1114 : ca [ 2] dex1115 : e0fa [ 2] cpx #$fa1117 : b0f6 [ 3] bcs tldy51119 : a203 [ 2] ldx #3 ;testing wraparound result111b : a000 [ 2] ldy #0111d : b5b2 [ 4] tsty1 lda zpt,x111f : d5b9 [ 4] cmp zp1,xtrap_ne ;store to zp,x data1121 : f002 [ 3]> beq skip0892> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1123 : 00 [ 7]> brk ; Use BRK to return to the monitor1124 : 12 > db test_num>1125 : >skip08921125 : 94b2 [ 4] sty zpt,x ;clear1127 : bd0302 [ 4] lda abst,x112a : dd0802 [ 4] cmp abs1,xtrap_ne ;store to abs,x data112d : f002 [ 3]> beq skip0894> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction112f : 00 [ 7]> brk ; Use BRK to return to the monitor1130 : 12 > db test_num>1131 : >skip08941131 : 8a [ 2] txa1132 : 9d0302 [ 5] sta abst,x ;clear1135 : ca [ 2] dex1136 : 10e5 [ 3] bpl tsty1next_test1138 : ad0002 [ 4]> lda test_case ;previous test113b : c912 [ 2]> cmp #test_num> trap_ne ;test is out of sequence113d : f002 [ 3]> beq skip0897> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 133---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction113f : 00 [ 7]> brk ; Use BRK to return to the monitor1140 : 12 > db test_num>1141 : >skip0897>0013 = >test_num = test_num + 11141 : a913 [ 2]> lda #test_num ;*** this tests' number1143 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; LDX / STX - zp / abs / #set_stat 0> load_flag 01146 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1148 : 48 [ 3]> pha ;use stack to load status1149 : 28 [ 4]> plp114a : a6b9 [ 3] ldx zp1114c : 08 [ 3] php ;test stores do not alter flags114d : 8a [ 2] txa114e : 49c3 [ 2] eor #$c31150 : aa [ 2] tax1151 : 28 [ 4] plp1152 : 8e0302 [ 4] stx abst1155 : 08 [ 3] php ;flags after load/store sequence1156 : 49c3 [ 2] eor #$c31158 : aa [ 2] tax1159 : e0c3 [ 2] cpx #$c3 ;test resulttrap_ne115b : f002 [ 3]> beq skip0901> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction115d : 00 [ 7]> brk ; Use BRK to return to the monitor115e : 13 > db test_num>115f : >skip0901115f : 68 [ 4] pla ;load statuseor_flag 01160 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1162 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1165 : f002 [ 3]> beq skip0904> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1167 : 00 [ 7]> brk ; Use BRK to return to the monitor1168 : 13 > db test_num>1169 : >skip0904AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 134---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------set_stat 0> load_flag 01169 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>116b : 48 [ 3]> pha ;use stack to load status116c : 28 [ 4]> plp116d : a6ba [ 3] ldx zp1+1116f : 08 [ 3] php ;test stores do not alter flags1170 : 8a [ 2] txa1171 : 49c3 [ 2] eor #$c31173 : aa [ 2] tax1174 : 28 [ 4] plp1175 : 8e0402 [ 4] stx abst+11178 : 08 [ 3] php ;flags after load/store sequence1179 : 49c3 [ 2] eor #$c3117b : aa [ 2] tax117c : e082 [ 2] cpx #$82 ;test resulttrap_ne117e : f002 [ 3]> beq skip0908> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1180 : 00 [ 7]> brk ; Use BRK to return to the monitor1181 : 13 > db test_num>1182 : >skip09081182 : 68 [ 4] pla ;load statuseor_flag 01183 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1185 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1188 : f002 [ 3]> beq skip0911> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction118a : 00 [ 7]> brk ; Use BRK to return to the monitor118b : 13 > db test_num>118c : >skip0911set_stat 0> load_flag 0118c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>118e : 48 [ 3]> pha ;use stack to load status118f : 28 [ 4]> plp1190 : a6bb [ 3] ldx zp1+21192 : 08 [ 3] php ;test stores do not alter flags1193 : 8a [ 2] txa1194 : 49c3 [ 2] eor #$c31196 : aa [ 2] tax1197 : 28 [ 4] plp1198 : 8e0502 [ 4] stx abst+2AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 135---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------119b : 08 [ 3] php ;flags after load/store sequence119c : 49c3 [ 2] eor #$c3119e : aa [ 2] tax119f : e041 [ 2] cpx #$41 ;test resulttrap_ne11a1 : f002 [ 3]> beq skip0915> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction11a3 : 00 [ 7]> brk ; Use BRK to return to the monitor11a4 : 13 > db test_num>11a5 : >skip091511a5 : 68 [ 4] pla ;load statuseor_flag 011a6 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits11a8 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne11ab : f002 [ 3]> beq skip0918> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction11ad : 00 [ 7]> brk ; Use BRK to return to the monitor11ae : 13 > db test_num>11af : >skip0918set_stat 0> load_flag 011af : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>11b1 : 48 [ 3]> pha ;use stack to load status11b2 : 28 [ 4]> plp11b3 : a6bc [ 3] ldx zp1+311b5 : 08 [ 3] php ;test stores do not alter flags11b6 : 8a [ 2] txa11b7 : 49c3 [ 2] eor #$c311b9 : aa [ 2] tax11ba : 28 [ 4] plp11bb : 8e0602 [ 4] stx abst+311be : 08 [ 3] php ;flags after load/store sequence11bf : 49c3 [ 2] eor #$c311c1 : aa [ 2] tax11c2 : e000 [ 2] cpx #0 ;test resulttrap_ne11c4 : f002 [ 3]> beq skip0922> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction11c6 : 00 [ 7]> brk ; Use BRK to return to the monitor11c7 : 13 > db test_num>11c8 : >skip092211c8 : 68 [ 4] pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 136---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------eor_flag 011c9 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits11cb : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne11ce : f002 [ 3]> beq skip0925> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction11d0 : 00 [ 7]> brk ; Use BRK to return to the monitor11d1 : 13 > db test_num>11d2 : >skip0925set_stat $ff> load_flag $ff11d2 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>11d4 : 48 [ 3]> pha ;use stack to load status11d5 : 28 [ 4]> plp11d6 : a6b9 [ 3] ldx zp111d8 : 08 [ 3] php ;test stores do not alter flags11d9 : 8a [ 2] txa11da : 49c3 [ 2] eor #$c311dc : aa [ 2] tax11dd : 28 [ 4] plp11de : 8e0302 [ 4] stx abst11e1 : 08 [ 3] php ;flags after load/store sequence11e2 : 49c3 [ 2] eor #$c311e4 : aa [ 2] tax11e5 : e0c3 [ 2] cpx #$c3 ;test resulttrap_ne ;11e7 : f002 [ 3]> beq skip0929> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction11e9 : 00 [ 7]> brk ; Use BRK to return to the monitor11ea : 13 > db test_num>11eb : >skip092911eb : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered11ec : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits11ee : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne11f1 : f002 [ 3]> beq skip0932> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction11f3 : 00 [ 7]> brk ; Use BRK to return to the monitor11f4 : 13 > db test_num>11f5 : >skip0932AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 137---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------set_stat $ff> load_flag $ff11f5 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>11f7 : 48 [ 3]> pha ;use stack to load status11f8 : 28 [ 4]> plp11f9 : a6ba [ 3] ldx zp1+111fb : 08 [ 3] php ;test stores do not alter flags11fc : 8a [ 2] txa11fd : 49c3 [ 2] eor #$c311ff : aa [ 2] tax1200 : 28 [ 4] plp1201 : 8e0402 [ 4] stx abst+11204 : 08 [ 3] php ;flags after load/store sequence1205 : 49c3 [ 2] eor #$c31207 : aa [ 2] tax1208 : e082 [ 2] cpx #$82 ;test resulttrap_ne120a : f002 [ 3]> beq skip0936> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction120c : 00 [ 7]> brk ; Use BRK to return to the monitor120d : 13 > db test_num>120e : >skip0936120e : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered120f : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1211 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1214 : f002 [ 3]> beq skip0939> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1216 : 00 [ 7]> brk ; Use BRK to return to the monitor1217 : 13 > db test_num>1218 : >skip0939set_stat $ff> load_flag $ff1218 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>121a : 48 [ 3]> pha ;use stack to load status121b : 28 [ 4]> plp121c : a6bb [ 3] ldx zp1+2121e : 08 [ 3] php ;test stores do not alter flags121f : 8a [ 2] txa1220 : 49c3 [ 2] eor #$c31222 : aa [ 2] tax1223 : 28 [ 4] plp1224 : 8e0502 [ 4] stx abst+2AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 138---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1227 : 08 [ 3] php ;flags after load/store sequence1228 : 49c3 [ 2] eor #$c3122a : aa [ 2] tax122b : e041 [ 2] cpx #$41 ;test resulttrap_ne ;122d : f002 [ 3]> beq skip0943> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction122f : 00 [ 7]> brk ; Use BRK to return to the monitor1230 : 13 > db test_num>1231 : >skip09431231 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1232 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1234 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1237 : f002 [ 3]> beq skip0946> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1239 : 00 [ 7]> brk ; Use BRK to return to the monitor123a : 13 > db test_num>123b : >skip0946set_stat $ff> load_flag $ff123b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>123d : 48 [ 3]> pha ;use stack to load status123e : 28 [ 4]> plp123f : a6bc [ 3] ldx zp1+31241 : 08 [ 3] php ;test stores do not alter flags1242 : 8a [ 2] txa1243 : 49c3 [ 2] eor #$c31245 : aa [ 2] tax1246 : 28 [ 4] plp1247 : 8e0602 [ 4] stx abst+3124a : 08 [ 3] php ;flags after load/store sequence124b : 49c3 [ 2] eor #$c3124d : aa [ 2] tax124e : e000 [ 2] cpx #0 ;test resulttrap_ne1250 : f002 [ 3]> beq skip0950> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1252 : 00 [ 7]> brk ; Use BRK to return to the monitor1253 : 13 > db test_num>1254 : >skip09501254 : 68 [ 4] pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 139---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------eor_flag lo~fnz ;mask bits not altered1255 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1257 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne125a : f002 [ 3]> beq skip0953> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction125c : 00 [ 7]> brk ; Use BRK to return to the monitor125d : 13 > db test_num>125e : >skip0953set_stat 0> load_flag 0125e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1260 : 48 [ 3]> pha ;use stack to load status1261 : 28 [ 4]> plp1262 : ae0802 [ 4] ldx abs11265 : 08 [ 3] php ;test stores do not alter flags1266 : 8a [ 2] txa1267 : 49c3 [ 2] eor #$c31269 : aa [ 2] tax126a : 28 [ 4] plp126b : 86b2 [ 3] stx zpt126d : 08 [ 3] php ;flags after load/store sequence126e : 49c3 [ 2] eor #$c31270 : c5b9 [ 3] cmp zp1 ;test resulttrap_ne1272 : f002 [ 3]> beq skip0957> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1274 : 00 [ 7]> brk ; Use BRK to return to the monitor1275 : 13 > db test_num>1276 : >skip09571276 : 68 [ 4] pla ;load statuseor_flag 01277 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1279 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne127c : f002 [ 3]> beq skip0960> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction127e : 00 [ 7]> brk ; Use BRK to return to the monitor127f : 13 > db test_num>1280 : >skip0960set_stat 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 140---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag 01280 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1282 : 48 [ 3]> pha ;use stack to load status1283 : 28 [ 4]> plp1284 : ae0902 [ 4] ldx abs1+11287 : 08 [ 3] php ;test stores do not alter flags1288 : 8a [ 2] txa1289 : 49c3 [ 2] eor #$c3128b : aa [ 2] tax128c : 28 [ 4] plp128d : 86b3 [ 3] stx zpt+1128f : 08 [ 3] php ;flags after load/store sequence1290 : 49c3 [ 2] eor #$c31292 : c5ba [ 3] cmp zp1+1 ;test resulttrap_ne1294 : f002 [ 3]> beq skip0964> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1296 : 00 [ 7]> brk ; Use BRK to return to the monitor1297 : 13 > db test_num>1298 : >skip09641298 : 68 [ 4] pla ;load statuseor_flag 01299 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits129b : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne129e : f002 [ 3]> beq skip0967> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction12a0 : 00 [ 7]> brk ; Use BRK to return to the monitor12a1 : 13 > db test_num>12a2 : >skip0967set_stat 0> load_flag 012a2 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>12a4 : 48 [ 3]> pha ;use stack to load status12a5 : 28 [ 4]> plp12a6 : ae0a02 [ 4] ldx abs1+212a9 : 08 [ 3] php ;test stores do not alter flags12aa : 8a [ 2] txa12ab : 49c3 [ 2] eor #$c312ad : aa [ 2] tax12ae : 28 [ 4] plp12af : 86b4 [ 3] stx zpt+212b1 : 08 [ 3] php ;flags after load/store sequence12b2 : 49c3 [ 2] eor #$c3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 141---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------12b4 : c5bb [ 3] cmp zp1+2 ;test resulttrap_ne12b6 : f002 [ 3]> beq skip0971> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction12b8 : 00 [ 7]> brk ; Use BRK to return to the monitor12b9 : 13 > db test_num>12ba : >skip097112ba : 68 [ 4] pla ;load statuseor_flag 012bb : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits12bd : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne12c0 : f002 [ 3]> beq skip0974> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction12c2 : 00 [ 7]> brk ; Use BRK to return to the monitor12c3 : 13 > db test_num>12c4 : >skip0974set_stat 0> load_flag 012c4 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>12c6 : 48 [ 3]> pha ;use stack to load status12c7 : 28 [ 4]> plp12c8 : ae0b02 [ 4] ldx abs1+312cb : 08 [ 3] php ;test stores do not alter flags12cc : 8a [ 2] txa12cd : 49c3 [ 2] eor #$c312cf : aa [ 2] tax12d0 : 28 [ 4] plp12d1 : 86b5 [ 3] stx zpt+312d3 : 08 [ 3] php ;flags after load/store sequence12d4 : 49c3 [ 2] eor #$c312d6 : c5bc [ 3] cmp zp1+3 ;test resulttrap_ne12d8 : f002 [ 3]> beq skip0978> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction12da : 00 [ 7]> brk ; Use BRK to return to the monitor12db : 13 > db test_num>12dc : >skip097812dc : 68 [ 4] pla ;load statuseor_flag 012dd : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits12df : cd1002 [ 4] cmp fLDx+3 ;test flagsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 142---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne12e2 : f002 [ 3]> beq skip0981> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction12e4 : 00 [ 7]> brk ; Use BRK to return to the monitor12e5 : 13 > db test_num>12e6 : >skip0981set_stat $ff> load_flag $ff12e6 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>12e8 : 48 [ 3]> pha ;use stack to load status12e9 : 28 [ 4]> plp12ea : ae0802 [ 4] ldx abs112ed : 08 [ 3] php ;test stores do not alter flags12ee : 8a [ 2] txa12ef : 49c3 [ 2] eor #$c312f1 : aa [ 2] tax12f2 : 28 [ 4] plp12f3 : 86b2 [ 3] stx zpt12f5 : 08 [ 3] php ;flags after load/store sequence12f6 : 49c3 [ 2] eor #$c312f8 : aa [ 2] tax12f9 : e4b9 [ 3] cpx zp1 ;test resulttrap_ne12fb : f002 [ 3]> beq skip0985> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction12fd : 00 [ 7]> brk ; Use BRK to return to the monitor12fe : 13 > db test_num>12ff : >skip098512ff : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1300 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1302 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1305 : f002 [ 3]> beq skip0988> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1307 : 00 [ 7]> brk ; Use BRK to return to the monitor1308 : 13 > db test_num>1309 : >skip0988set_stat $ff> load_flag $ff1309 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 143---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------130b : 48 [ 3]> pha ;use stack to load status130c : 28 [ 4]> plp130d : ae0902 [ 4] ldx abs1+11310 : 08 [ 3] php ;test stores do not alter flags1311 : 8a [ 2] txa1312 : 49c3 [ 2] eor #$c31314 : aa [ 2] tax1315 : 28 [ 4] plp1316 : 86b3 [ 3] stx zpt+11318 : 08 [ 3] php ;flags after load/store sequence1319 : 49c3 [ 2] eor #$c3131b : aa [ 2] tax131c : e4ba [ 3] cpx zp1+1 ;test resulttrap_ne131e : f002 [ 3]> beq skip0992> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1320 : 00 [ 7]> brk ; Use BRK to return to the monitor1321 : 13 > db test_num>1322 : >skip09921322 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1323 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1325 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1328 : f002 [ 3]> beq skip0995> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction132a : 00 [ 7]> brk ; Use BRK to return to the monitor132b : 13 > db test_num>132c : >skip0995set_stat $ff> load_flag $ff132c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>132e : 48 [ 3]> pha ;use stack to load status132f : 28 [ 4]> plp1330 : ae0a02 [ 4] ldx abs1+21333 : 08 [ 3] php ;test stores do not alter flags1334 : 8a [ 2] txa1335 : 49c3 [ 2] eor #$c31337 : aa [ 2] tax1338 : 28 [ 4] plp1339 : 86b4 [ 3] stx zpt+2133b : 08 [ 3] php ;flags after load/store sequence133c : 49c3 [ 2] eor #$c3133e : aa [ 2] tax133f : e4bb [ 3] cpx zp1+2 ;test resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 144---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne1341 : f002 [ 3]> beq skip0999> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1343 : 00 [ 7]> brk ; Use BRK to return to the monitor1344 : 13 > db test_num>1345 : >skip09991345 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1346 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1348 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne134b : f002 [ 3]> beq skip1002> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction134d : 00 [ 7]> brk ; Use BRK to return to the monitor134e : 13 > db test_num>134f : >skip1002set_stat $ff> load_flag $ff134f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1351 : 48 [ 3]> pha ;use stack to load status1352 : 28 [ 4]> plp1353 : ae0b02 [ 4] ldx abs1+31356 : 08 [ 3] php ;test stores do not alter flags1357 : 8a [ 2] txa1358 : 49c3 [ 2] eor #$c3135a : aa [ 2] tax135b : 28 [ 4] plp135c : 86b5 [ 3] stx zpt+3135e : 08 [ 3] php ;flags after load/store sequence135f : 49c3 [ 2] eor #$c31361 : aa [ 2] tax1362 : e4bc [ 3] cpx zp1+3 ;test resulttrap_ne1364 : f002 [ 3]> beq skip1006> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1366 : 00 [ 7]> brk ; Use BRK to return to the monitor1367 : 13 > db test_num>1368 : >skip10061368 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1369 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits136b : cd1002 [ 4] cmp fLDx+3 ;test flagsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 145---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne136e : f002 [ 3]> beq skip1009> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1370 : 00 [ 7]> brk ; Use BRK to return to the monitor1371 : 13 > db test_num>1372 : >skip1009set_stat 0> load_flag 01372 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1374 : 48 [ 3]> pha ;use stack to load status1375 : 28 [ 4]> plp1376 : a2c3 [ 2] ldx #$c31378 : 08 [ 3] php1379 : ec0802 [ 4] cpx abs1 ;test resulttrap_ne137c : f002 [ 3]> beq skip1013> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction137e : 00 [ 7]> brk ; Use BRK to return to the monitor137f : 13 > db test_num>1380 : >skip10131380 : 68 [ 4] pla ;load statuseor_flag 01381 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1383 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1386 : f002 [ 3]> beq skip1016> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1388 : 00 [ 7]> brk ; Use BRK to return to the monitor1389 : 13 > db test_num>138a : >skip1016set_stat 0> load_flag 0138a : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>138c : 48 [ 3]> pha ;use stack to load status138d : 28 [ 4]> plp138e : a282 [ 2] ldx #$821390 : 08 [ 3] php1391 : ec0902 [ 4] cpx abs1+1 ;test resulttrap_ne1394 : f002 [ 3]> beq skip1020AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 146---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1396 : 00 [ 7]> brk ; Use BRK to return to the monitor1397 : 13 > db test_num>1398 : >skip10201398 : 68 [ 4] pla ;load statuseor_flag 01399 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits139b : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne139e : f002 [ 3]> beq skip1023> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13a0 : 00 [ 7]> brk ; Use BRK to return to the monitor13a1 : 13 > db test_num>13a2 : >skip1023set_stat 0> load_flag 013a2 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>13a4 : 48 [ 3]> pha ;use stack to load status13a5 : 28 [ 4]> plp13a6 : a241 [ 2] ldx #$4113a8 : 08 [ 3] php13a9 : ec0a02 [ 4] cpx abs1+2 ;test resulttrap_ne13ac : f002 [ 3]> beq skip1027> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13ae : 00 [ 7]> brk ; Use BRK to return to the monitor13af : 13 > db test_num>13b0 : >skip102713b0 : 68 [ 4] pla ;load statuseor_flag 013b1 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits13b3 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne13b6 : f002 [ 3]> beq skip1030> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13b8 : 00 [ 7]> brk ; Use BRK to return to the monitor13b9 : 13 > db test_num>13ba : >skip1030set_stat 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 147---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag 013ba : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>13bc : 48 [ 3]> pha ;use stack to load status13bd : 28 [ 4]> plp13be : a200 [ 2] ldx #013c0 : 08 [ 3] php13c1 : ec0b02 [ 4] cpx abs1+3 ;test resulttrap_ne13c4 : f002 [ 3]> beq skip1034> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13c6 : 00 [ 7]> brk ; Use BRK to return to the monitor13c7 : 13 > db test_num>13c8 : >skip103413c8 : 68 [ 4] pla ;load statuseor_flag 013c9 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits13cb : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne13ce : f002 [ 3]> beq skip1037> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13d0 : 00 [ 7]> brk ; Use BRK to return to the monitor13d1 : 13 > db test_num>13d2 : >skip1037set_stat $ff> load_flag $ff13d2 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>13d4 : 48 [ 3]> pha ;use stack to load status13d5 : 28 [ 4]> plp13d6 : a2c3 [ 2] ldx #$c313d8 : 08 [ 3] php13d9 : ec0802 [ 4] cpx abs1 ;test resulttrap_ne13dc : f002 [ 3]> beq skip1041> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13de : 00 [ 7]> brk ; Use BRK to return to the monitor13df : 13 > db test_num>13e0 : >skip104113e0 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered13e1 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 148---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------13e3 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne13e6 : f002 [ 3]> beq skip1044> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13e8 : 00 [ 7]> brk ; Use BRK to return to the monitor13e9 : 13 > db test_num>13ea : >skip1044set_stat $ff> load_flag $ff13ea : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>13ec : 48 [ 3]> pha ;use stack to load status13ed : 28 [ 4]> plp13ee : a282 [ 2] ldx #$8213f0 : 08 [ 3] php13f1 : ec0902 [ 4] cpx abs1+1 ;test resulttrap_ne13f4 : f002 [ 3]> beq skip1048> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction13f6 : 00 [ 7]> brk ; Use BRK to return to the monitor13f7 : 13 > db test_num>13f8 : >skip104813f8 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered13f9 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits13fb : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne13fe : f002 [ 4]> beq skip1051> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1400 : 00 [ 7]> brk ; Use BRK to return to the monitor1401 : 13 > db test_num>1402 : >skip1051set_stat $ff> load_flag $ff1402 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1404 : 48 [ 3]> pha ;use stack to load status1405 : 28 [ 4]> plp1406 : a241 [ 2] ldx #$411408 : 08 [ 3] php1409 : ec0a02 [ 4] cpx abs1+2 ;test resulttrap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 149---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------140c : f002 [ 3]> beq skip1055> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction140e : 00 [ 7]> brk ; Use BRK to return to the monitor140f : 13 > db test_num>1410 : >skip10551410 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1411 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1413 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1416 : f002 [ 3]> beq skip1058> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1418 : 00 [ 7]> brk ; Use BRK to return to the monitor1419 : 13 > db test_num>141a : >skip1058set_stat $ff> load_flag $ff141a : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>141c : 48 [ 3]> pha ;use stack to load status141d : 28 [ 4]> plp141e : a200 [ 2] ldx #01420 : 08 [ 3] php1421 : ec0b02 [ 4] cpx abs1+3 ;test resulttrap_ne1424 : f002 [ 3]> beq skip1062> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1426 : 00 [ 7]> brk ; Use BRK to return to the monitor1427 : 13 > db test_num>1428 : >skip10621428 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1429 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits142b : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne142e : f002 [ 3]> beq skip1065> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1430 : 00 [ 7]> brk ; Use BRK to return to the monitor1431 : 13 > db test_num>1432 : >skip1065AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 150---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1432 : a200 [ 2] ldx #01434 : a5b2 [ 3] lda zpt1436 : 49c3 [ 2] eor #$c31438 : c5b9 [ 3] cmp zp1trap_ne ;store to zp data143a : f002 [ 3]> beq skip1067> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction143c : 00 [ 7]> brk ; Use BRK to return to the monitor143d : 13 > db test_num>143e : >skip1067143e : 86b2 [ 3] stx zpt ;clear1440 : ad0302 [ 4] lda abst1443 : 49c3 [ 2] eor #$c31445 : cd0802 [ 4] cmp abs1trap_ne ;store to abs data1448 : f002 [ 3]> beq skip1069> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction144a : 00 [ 7]> brk ; Use BRK to return to the monitor144b : 13 > db test_num>144c : >skip1069144c : 8e0302 [ 4] stx abst ;clear144f : a5b3 [ 3] lda zpt+11451 : 49c3 [ 2] eor #$c31453 : c5ba [ 3] cmp zp1+1trap_ne ;store to zp data1455 : f002 [ 3]> beq skip1071> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1457 : 00 [ 7]> brk ; Use BRK to return to the monitor1458 : 13 > db test_num>1459 : >skip10711459 : 86b3 [ 3] stx zpt+1 ;clear145b : ad0402 [ 4] lda abst+1145e : 49c3 [ 2] eor #$c31460 : cd0902 [ 4] cmp abs1+1trap_ne ;store to abs data1463 : f002 [ 3]> beq skip1073> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1465 : 00 [ 7]> brk ; Use BRK to return to the monitor1466 : 13 > db test_num>1467 : >skip10731467 : 8e0402 [ 4] stx abst+1 ;clear146a : a5b4 [ 3] lda zpt+2AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 151---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------146c : 49c3 [ 2] eor #$c3146e : c5bb [ 3] cmp zp1+2trap_ne ;store to zp data1470 : f002 [ 3]> beq skip1075> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1472 : 00 [ 7]> brk ; Use BRK to return to the monitor1473 : 13 > db test_num>1474 : >skip10751474 : 86b4 [ 3] stx zpt+2 ;clear1476 : ad0502 [ 4] lda abst+21479 : 49c3 [ 2] eor #$c3147b : cd0a02 [ 4] cmp abs1+2trap_ne ;store to abs data147e : f002 [ 3]> beq skip1077> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1480 : 00 [ 7]> brk ; Use BRK to return to the monitor1481 : 13 > db test_num>1482 : >skip10771482 : 8e0502 [ 4] stx abst+2 ;clear1485 : a5b5 [ 3] lda zpt+31487 : 49c3 [ 2] eor #$c31489 : c5bc [ 3] cmp zp1+3trap_ne ;store to zp data148b : f002 [ 3]> beq skip1079> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction148d : 00 [ 7]> brk ; Use BRK to return to the monitor148e : 13 > db test_num>148f : >skip1079148f : 86b5 [ 3] stx zpt+3 ;clear1491 : ad0602 [ 4] lda abst+31494 : 49c3 [ 2] eor #$c31496 : cd0b02 [ 4] cmp abs1+3trap_ne ;store to abs data1499 : f002 [ 3]> beq skip1081> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction149b : 00 [ 7]> brk ; Use BRK to return to the monitor149c : 13 > db test_num>149d : >skip1081149d : 8e0602 [ 4] stx abst+3 ;clearnext_test14a0 : ad0002 [ 4]> lda test_case ;previous test14a3 : c913 [ 2]> cmp #test_num> trap_ne ;test is out of sequenceAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 152---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------14a5 : f002 [ 3]> beq skip1084> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction14a7 : 00 [ 7]> brk ; Use BRK to return to the monitor14a8 : 13 > db test_num>14a9 : >skip1084>0014 = >test_num = test_num + 114a9 : a914 [ 2]> lda #test_num ;*** this tests' number14ab : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; LDY / STY - zp / abs / #set_stat 0> load_flag 014ae : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>14b0 : 48 [ 3]> pha ;use stack to load status14b1 : 28 [ 4]> plp14b2 : a4b9 [ 3] ldy zp114b4 : 08 [ 3] php ;test stores do not alter flags14b5 : 98 [ 2] tya14b6 : 49c3 [ 2] eor #$c314b8 : a8 [ 2] tay14b9 : 28 [ 4] plp14ba : 8c0302 [ 4] sty abst14bd : 08 [ 3] php ;flags after load/store sequence14be : 49c3 [ 2] eor #$c314c0 : a8 [ 2] tay14c1 : c0c3 [ 2] cpy #$c3 ;test resulttrap_ne14c3 : f002 [ 3]> beq skip1088> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction14c5 : 00 [ 7]> brk ; Use BRK to return to the monitor14c6 : 14 > db test_num>14c7 : >skip108814c7 : 68 [ 4] pla ;load statuseor_flag 014c8 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits14ca : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne14cd : f002 [ 3]> beq skip1091> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction14cf : 00 [ 7]> brk ; Use BRK to return to the monitor14d0 : 14 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 153---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------14d1 : >skip1091set_stat 0> load_flag 014d1 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>14d3 : 48 [ 3]> pha ;use stack to load status14d4 : 28 [ 4]> plp14d5 : a4ba [ 3] ldy zp1+114d7 : 08 [ 3] php ;test stores do not alter flags14d8 : 98 [ 2] tya14d9 : 49c3 [ 2] eor #$c314db : a8 [ 2] tay14dc : 28 [ 4] plp14dd : 8c0402 [ 4] sty abst+114e0 : 08 [ 3] php ;flags after load/store sequence14e1 : 49c3 [ 2] eor #$c314e3 : a8 [ 2] tay14e4 : c082 [ 2] cpy #$82 ;test resulttrap_ne14e6 : f002 [ 3]> beq skip1095> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction14e8 : 00 [ 7]> brk ; Use BRK to return to the monitor14e9 : 14 > db test_num>14ea : >skip109514ea : 68 [ 4] pla ;load statuseor_flag 014eb : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits14ed : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne14f0 : f002 [ 3]> beq skip1098> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction14f2 : 00 [ 7]> brk ; Use BRK to return to the monitor14f3 : 14 > db test_num>14f4 : >skip1098set_stat 0> load_flag 014f4 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>14f6 : 48 [ 3]> pha ;use stack to load status14f7 : 28 [ 4]> plp14f8 : a4bb [ 3] ldy zp1+214fa : 08 [ 3] php ;test stores do not alter flags14fb : 98 [ 2] tya14fc : 49c3 [ 2] eor #$c314fe : a8 [ 2] tayAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 154---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------14ff : 28 [ 4] plp1500 : 8c0502 [ 4] sty abst+21503 : 08 [ 3] php ;flags after load/store sequence1504 : 49c3 [ 2] eor #$c31506 : a8 [ 2] tay1507 : c041 [ 2] cpy #$41 ;test resulttrap_ne1509 : f002 [ 3]> beq skip1102> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction150b : 00 [ 7]> brk ; Use BRK to return to the monitor150c : 14 > db test_num>150d : >skip1102150d : 68 [ 4] pla ;load statuseor_flag 0150e : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1510 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1513 : f002 [ 3]> beq skip1105> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1515 : 00 [ 7]> brk ; Use BRK to return to the monitor1516 : 14 > db test_num>1517 : >skip1105set_stat 0> load_flag 01517 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1519 : 48 [ 3]> pha ;use stack to load status151a : 28 [ 4]> plp151b : a4bc [ 3] ldy zp1+3151d : 08 [ 3] php ;test stores do not alter flags151e : 98 [ 2] tya151f : 49c3 [ 2] eor #$c31521 : a8 [ 2] tay1522 : 28 [ 4] plp1523 : 8c0602 [ 4] sty abst+31526 : 08 [ 3] php ;flags after load/store sequence1527 : 49c3 [ 2] eor #$c31529 : a8 [ 2] tay152a : c000 [ 2] cpy #0 ;test resulttrap_ne152c : f002 [ 3]> beq skip1109> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction152e : 00 [ 7]> brk ; Use BRK to return to the monitor152f : 14 > db test_num>1530 : >skip1109AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 155---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1530 : 68 [ 4] pla ;load statuseor_flag 01531 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1533 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1536 : f002 [ 3]> beq skip1112> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1538 : 00 [ 7]> brk ; Use BRK to return to the monitor1539 : 14 > db test_num>153a : >skip1112set_stat $ff> load_flag $ff153a : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>153c : 48 [ 3]> pha ;use stack to load status153d : 28 [ 4]> plp153e : a4b9 [ 3] ldy zp11540 : 08 [ 3] php ;test stores do not alter flags1541 : 98 [ 2] tya1542 : 49c3 [ 2] eor #$c31544 : a8 [ 2] tay1545 : 28 [ 4] plp1546 : 8c0302 [ 4] sty abst1549 : 08 [ 3] php ;flags after load/store sequence154a : 49c3 [ 2] eor #$c3154c : a8 [ 2] tay154d : c0c3 [ 2] cpy #$c3 ;test resulttrap_ne154f : f002 [ 3]> beq skip1116> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1551 : 00 [ 7]> brk ; Use BRK to return to the monitor1552 : 14 > db test_num>1553 : >skip11161553 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1554 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1556 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1559 : f002 [ 3]> beq skip1119> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction155b : 00 [ 7]> brk ; Use BRK to return to the monitor155c : 14 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 156---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------155d : >skip1119set_stat $ff> load_flag $ff155d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>155f : 48 [ 3]> pha ;use stack to load status1560 : 28 [ 4]> plp1561 : a4ba [ 3] ldy zp1+11563 : 08 [ 3] php ;test stores do not alter flags1564 : 98 [ 2] tya1565 : 49c3 [ 2] eor #$c31567 : a8 [ 2] tay1568 : 28 [ 4] plp1569 : 8c0402 [ 4] sty abst+1156c : 08 [ 3] php ;flags after load/store sequence156d : 49c3 [ 2] eor #$c3156f : a8 [ 2] tay1570 : c082 [ 2] cpy #$82 ;test resulttrap_ne1572 : f002 [ 3]> beq skip1123> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1574 : 00 [ 7]> brk ; Use BRK to return to the monitor1575 : 14 > db test_num>1576 : >skip11231576 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1577 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1579 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne157c : f002 [ 3]> beq skip1126> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction157e : 00 [ 7]> brk ; Use BRK to return to the monitor157f : 14 > db test_num>1580 : >skip1126set_stat $ff> load_flag $ff1580 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1582 : 48 [ 3]> pha ;use stack to load status1583 : 28 [ 4]> plp1584 : a4bb [ 3] ldy zp1+21586 : 08 [ 3] php ;test stores do not alter flags1587 : 98 [ 2] tya1588 : 49c3 [ 2] eor #$c3158a : a8 [ 2] tayAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 157---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------158b : 28 [ 4] plp158c : 8c0502 [ 4] sty abst+2158f : 08 [ 3] php ;flags after load/store sequence1590 : 49c3 [ 2] eor #$c31592 : a8 [ 2] tay1593 : c041 [ 2] cpy #$41 ;test resulttrap_ne1595 : f002 [ 3]> beq skip1130> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1597 : 00 [ 7]> brk ; Use BRK to return to the monitor1598 : 14 > db test_num>1599 : >skip11301599 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered159a : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits159c : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne159f : f002 [ 3]> beq skip1133> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction15a1 : 00 [ 7]> brk ; Use BRK to return to the monitor15a2 : 14 > db test_num>15a3 : >skip1133set_stat $ff> load_flag $ff15a3 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>15a5 : 48 [ 3]> pha ;use stack to load status15a6 : 28 [ 4]> plp15a7 : a4bc [ 3] ldy zp1+315a9 : 08 [ 3] php ;test stores do not alter flags15aa : 98 [ 2] tya15ab : 49c3 [ 2] eor #$c315ad : a8 [ 2] tay15ae : 28 [ 4] plp15af : 8c0602 [ 4] sty abst+315b2 : 08 [ 3] php ;flags after load/store sequence15b3 : 49c3 [ 2] eor #$c315b5 : a8 [ 2] tay15b6 : c000 [ 2] cpy #0 ;test resulttrap_ne15b8 : f002 [ 3]> beq skip1137> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction15ba : 00 [ 7]> brk ; Use BRK to return to the monitor15bb : 14 > db test_num>15bc : >skip1137AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 158---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------15bc : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered15bd : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits15bf : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne15c2 : f002 [ 3]> beq skip1140> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction15c4 : 00 [ 7]> brk ; Use BRK to return to the monitor15c5 : 14 > db test_num>15c6 : >skip1140set_stat 0> load_flag 015c6 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>15c8 : 48 [ 3]> pha ;use stack to load status15c9 : 28 [ 4]> plp15ca : ac0802 [ 4] ldy abs115cd : 08 [ 3] php ;test stores do not alter flags15ce : 98 [ 2] tya15cf : 49c3 [ 2] eor #$c315d1 : a8 [ 2] tay15d2 : 28 [ 4] plp15d3 : 84b2 [ 3] sty zpt15d5 : 08 [ 3] php ;flags after load/store sequence15d6 : 49c3 [ 2] eor #$c315d8 : a8 [ 2] tay15d9 : c4b9 [ 3] cpy zp1 ;test resulttrap_ne15db : f002 [ 3]> beq skip1144> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction15dd : 00 [ 7]> brk ; Use BRK to return to the monitor15de : 14 > db test_num>15df : >skip114415df : 68 [ 4] pla ;load statuseor_flag 015e0 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits15e2 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne15e5 : f002 [ 3]> beq skip1147> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction15e7 : 00 [ 7]> brk ; Use BRK to return to the monitor15e8 : 14 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 159---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------15e9 : >skip1147set_stat 0> load_flag 015e9 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>15eb : 48 [ 3]> pha ;use stack to load status15ec : 28 [ 4]> plp15ed : ac0902 [ 4] ldy abs1+115f0 : 08 [ 3] php ;test stores do not alter flags15f1 : 98 [ 2] tya15f2 : 49c3 [ 2] eor #$c315f4 : a8 [ 2] tay15f5 : 28 [ 4] plp15f6 : 84b3 [ 3] sty zpt+115f8 : 08 [ 3] php ;flags after load/store sequence15f9 : 49c3 [ 2] eor #$c315fb : a8 [ 2] tay15fc : c4ba [ 3] cpy zp1+1 ;test resulttrap_ne15fe : f002 [ 4]> beq skip1151> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1600 : 00 [ 7]> brk ; Use BRK to return to the monitor1601 : 14 > db test_num>1602 : >skip11511602 : 68 [ 4] pla ;load statuseor_flag 01603 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1605 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1608 : f002 [ 3]> beq skip1154> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction160a : 00 [ 7]> brk ; Use BRK to return to the monitor160b : 14 > db test_num>160c : >skip1154set_stat 0> load_flag 0160c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>160e : 48 [ 3]> pha ;use stack to load status160f : 28 [ 4]> plp1610 : ac0a02 [ 4] ldy abs1+21613 : 08 [ 3] php ;test stores do not alter flags1614 : 98 [ 2] tya1615 : 49c3 [ 2] eor #$c31617 : a8 [ 2] tayAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 160---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1618 : 28 [ 4] plp1619 : 84b4 [ 3] sty zpt+2161b : 08 [ 3] php ;flags after load/store sequence161c : 49c3 [ 2] eor #$c3161e : a8 [ 2] tay161f : c4bb [ 3] cpy zp1+2 ;test resulttrap_ne1621 : f002 [ 3]> beq skip1158> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1623 : 00 [ 7]> brk ; Use BRK to return to the monitor1624 : 14 > db test_num>1625 : >skip11581625 : 68 [ 4] pla ;load statuseor_flag 01626 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1628 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne162b : f002 [ 3]> beq skip1161> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction162d : 00 [ 7]> brk ; Use BRK to return to the monitor162e : 14 > db test_num>162f : >skip1161set_stat 0> load_flag 0162f : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1631 : 48 [ 3]> pha ;use stack to load status1632 : 28 [ 4]> plp1633 : ac0b02 [ 4] ldy abs1+31636 : 08 [ 3] php ;test stores do not alter flags1637 : 98 [ 2] tya1638 : 49c3 [ 2] eor #$c3163a : a8 [ 2] tay163b : 28 [ 4] plp163c : 84b5 [ 3] sty zpt+3163e : 08 [ 3] php ;flags after load/store sequence163f : 49c3 [ 2] eor #$c31641 : a8 [ 2] tay1642 : c4bc [ 3] cpy zp1+3 ;test resulttrap_ne1644 : f002 [ 3]> beq skip1165> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1646 : 00 [ 7]> brk ; Use BRK to return to the monitor1647 : 14 > db test_num>1648 : >skip1165AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 161---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1648 : 68 [ 4] pla ;load statuseor_flag 01649 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits164b : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne164e : f002 [ 3]> beq skip1168> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1650 : 00 [ 7]> brk ; Use BRK to return to the monitor1651 : 14 > db test_num>1652 : >skip1168set_stat $ff> load_flag $ff1652 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1654 : 48 [ 3]> pha ;use stack to load status1655 : 28 [ 4]> plp1656 : ac0802 [ 4] ldy abs11659 : 08 [ 3] php ;test stores do not alter flags165a : 98 [ 2] tya165b : 49c3 [ 2] eor #$c3165d : a8 [ 2] tay165e : 28 [ 4] plp165f : 84b2 [ 3] sty zpt1661 : 08 [ 3] php ;flags after load/store sequence1662 : 49c3 [ 2] eor #$c31664 : a8 [ 2] tay1665 : c5b9 [ 3] cmp zp1 ;test resulttrap_ne1667 : f002 [ 3]> beq skip1172> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1669 : 00 [ 7]> brk ; Use BRK to return to the monitor166a : 14 > db test_num>166b : >skip1172166b : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered166c : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits166e : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1671 : f002 [ 3]> beq skip1175> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1673 : 00 [ 7]> brk ; Use BRK to return to the monitor1674 : 14 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 162---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1675 : >skip1175set_stat $ff> load_flag $ff1675 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1677 : 48 [ 3]> pha ;use stack to load status1678 : 28 [ 4]> plp1679 : ac0902 [ 4] ldy abs1+1167c : 08 [ 3] php ;test stores do not alter flags167d : 98 [ 2] tya167e : 49c3 [ 2] eor #$c31680 : a8 [ 2] tay1681 : 28 [ 4] plp1682 : 84b3 [ 3] sty zpt+11684 : 08 [ 3] php ;flags after load/store sequence1685 : 49c3 [ 2] eor #$c31687 : a8 [ 2] tay1688 : c5ba [ 3] cmp zp1+1 ;test resulttrap_ne168a : f002 [ 3]> beq skip1179> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction168c : 00 [ 7]> brk ; Use BRK to return to the monitor168d : 14 > db test_num>168e : >skip1179168e : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered168f : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1691 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1694 : f002 [ 3]> beq skip1182> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1696 : 00 [ 7]> brk ; Use BRK to return to the monitor1697 : 14 > db test_num>1698 : >skip1182set_stat $ff> load_flag $ff1698 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>169a : 48 [ 3]> pha ;use stack to load status169b : 28 [ 4]> plp169c : ac0a02 [ 4] ldy abs1+2169f : 08 [ 3] php ;test stores do not alter flags16a0 : 98 [ 2] tya16a1 : 49c3 [ 2] eor #$c316a3 : a8 [ 2] tayAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 163---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------16a4 : 28 [ 4] plp16a5 : 84b4 [ 3] sty zpt+216a7 : 08 [ 3] php ;flags after load/store sequence16a8 : 49c3 [ 2] eor #$c316aa : a8 [ 2] tay16ab : c5bb [ 3] cmp zp1+2 ;test resulttrap_ne16ad : f002 [ 3]> beq skip1186> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction16af : 00 [ 7]> brk ; Use BRK to return to the monitor16b0 : 14 > db test_num>16b1 : >skip118616b1 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered16b2 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits16b4 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne16b7 : f002 [ 3]> beq skip1189> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction16b9 : 00 [ 7]> brk ; Use BRK to return to the monitor16ba : 14 > db test_num>16bb : >skip1189set_stat $ff> load_flag $ff16bb : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>16bd : 48 [ 3]> pha ;use stack to load status16be : 28 [ 4]> plp16bf : ac0b02 [ 4] ldy abs1+316c2 : 08 [ 3] php ;test stores do not alter flags16c3 : 98 [ 2] tya16c4 : 49c3 [ 2] eor #$c316c6 : a8 [ 2] tay16c7 : 28 [ 4] plp16c8 : 84b5 [ 3] sty zpt+316ca : 08 [ 3] php ;flags after load/store sequence16cb : 49c3 [ 2] eor #$c316cd : a8 [ 2] tay16ce : c5bc [ 3] cmp zp1+3 ;test resulttrap_ne16d0 : f002 [ 3]> beq skip1193> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction16d2 : 00 [ 7]> brk ; Use BRK to return to the monitor16d3 : 14 > db test_num>16d4 : >skip1193AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 164---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------16d4 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered16d5 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits16d7 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne16da : f002 [ 3]> beq skip1196> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction16dc : 00 [ 7]> brk ; Use BRK to return to the monitor16dd : 14 > db test_num>16de : >skip1196set_stat 0> load_flag 016de : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>16e0 : 48 [ 3]> pha ;use stack to load status16e1 : 28 [ 4]> plp16e2 : a0c3 [ 2] ldy #$c316e4 : 08 [ 3] php16e5 : cc0802 [ 4] cpy abs1 ;test resulttrap_ne16e8 : f002 [ 3]> beq skip1200> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction16ea : 00 [ 7]> brk ; Use BRK to return to the monitor16eb : 14 > db test_num>16ec : >skip120016ec : 68 [ 4] pla ;load statuseor_flag 016ed : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits16ef : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne16f2 : f002 [ 3]> beq skip1203> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction16f4 : 00 [ 7]> brk ; Use BRK to return to the monitor16f5 : 14 > db test_num>16f6 : >skip1203set_stat 0> load_flag 016f6 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>16f8 : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 165---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------16f9 : 28 [ 4]> plp16fa : a082 [ 2] ldy #$8216fc : 08 [ 3] php16fd : cc0902 [ 4] cpy abs1+1 ;test resulttrap_ne1700 : f002 [ 3]> beq skip1207> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1702 : 00 [ 7]> brk ; Use BRK to return to the monitor1703 : 14 > db test_num>1704 : >skip12071704 : 68 [ 4] pla ;load statuseor_flag 01705 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1707 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne170a : f002 [ 3]> beq skip1210> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction170c : 00 [ 7]> brk ; Use BRK to return to the monitor170d : 14 > db test_num>170e : >skip1210set_stat 0> load_flag 0170e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1710 : 48 [ 3]> pha ;use stack to load status1711 : 28 [ 4]> plp1712 : a041 [ 2] ldy #$411714 : 08 [ 3] php1715 : cc0a02 [ 4] cpy abs1+2 ;test resulttrap_ne1718 : f002 [ 3]> beq skip1214> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction171a : 00 [ 7]> brk ; Use BRK to return to the monitor171b : 14 > db test_num>171c : >skip1214171c : 68 [ 4] pla ;load statuseor_flag 0171d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits171f : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1722 : f002 [ 3]> beq skip1217> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 166---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction1724 : 00 [ 7]> brk ; Use BRK to return to the monitor1725 : 14 > db test_num>1726 : >skip1217set_stat 0> load_flag 01726 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1728 : 48 [ 3]> pha ;use stack to load status1729 : 28 [ 4]> plp172a : a000 [ 2] ldy #0172c : 08 [ 3] php172d : cc0b02 [ 4] cpy abs1+3 ;test resulttrap_ne1730 : f002 [ 3]> beq skip1221> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1732 : 00 [ 7]> brk ; Use BRK to return to the monitor1733 : 14 > db test_num>1734 : >skip12211734 : 68 [ 4] pla ;load statuseor_flag 01735 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1737 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne173a : f002 [ 3]> beq skip1224> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction173c : 00 [ 7]> brk ; Use BRK to return to the monitor173d : 14 > db test_num>173e : >skip1224set_stat $ff> load_flag $ff173e : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1740 : 48 [ 3]> pha ;use stack to load status1741 : 28 [ 4]> plp1742 : a0c3 [ 2] ldy #$c31744 : 08 [ 3] php1745 : cc0802 [ 4] cpy abs1 ;test resulttrap_ne1748 : f002 [ 3]> beq skip1228> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction174a : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 167---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------174b : 14 > db test_num>174c : >skip1228174c : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered174d : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits174f : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1752 : f002 [ 3]> beq skip1231> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1754 : 00 [ 7]> brk ; Use BRK to return to the monitor1755 : 14 > db test_num>1756 : >skip1231set_stat $ff> load_flag $ff1756 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1758 : 48 [ 3]> pha ;use stack to load status1759 : 28 [ 4]> plp175a : a082 [ 2] ldy #$82175c : 08 [ 3] php175d : cc0902 [ 4] cpy abs1+1 ;test resulttrap_ne1760 : f002 [ 3]> beq skip1235> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1762 : 00 [ 7]> brk ; Use BRK to return to the monitor1763 : 14 > db test_num>1764 : >skip12351764 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1765 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1767 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne176a : f002 [ 3]> beq skip1238> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction176c : 00 [ 7]> brk ; Use BRK to return to the monitor176d : 14 > db test_num>176e : >skip1238set_stat $ff> load_flag $ff176e : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 168---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1770 : 48 [ 3]> pha ;use stack to load status1771 : 28 [ 4]> plp1772 : a041 [ 2] ldy #$411774 : 08 [ 3] php1775 : cc0a02 [ 4] cpy abs1+2 ;test resulttrap_ne1778 : f002 [ 3]> beq skip1242> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction177a : 00 [ 7]> brk ; Use BRK to return to the monitor177b : 14 > db test_num>177c : >skip1242177c : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered177d : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits177f : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1782 : f002 [ 3]> beq skip1245> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1784 : 00 [ 7]> brk ; Use BRK to return to the monitor1785 : 14 > db test_num>1786 : >skip1245set_stat $ff> load_flag $ff1786 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1788 : 48 [ 3]> pha ;use stack to load status1789 : 28 [ 4]> plp178a : a000 [ 2] ldy #0178c : 08 [ 3] php178d : cc0b02 [ 4] cpy abs1+3 ;test resulttrap_ne1790 : f002 [ 3]> beq skip1249> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1792 : 00 [ 7]> brk ; Use BRK to return to the monitor1793 : 14 > db test_num>1794 : >skip12491794 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1795 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1797 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne179a : f002 [ 3]> beq skip1252AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 169---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction179c : 00 [ 7]> brk ; Use BRK to return to the monitor179d : 14 > db test_num>179e : >skip1252179e : a000 [ 2] ldy #017a0 : a5b2 [ 3] lda zpt17a2 : 49c3 [ 2] eor #$c317a4 : c5b9 [ 3] cmp zp1trap_ne ;store to zp data17a6 : f002 [ 3]> beq skip1254> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction17a8 : 00 [ 7]> brk ; Use BRK to return to the monitor17a9 : 14 > db test_num>17aa : >skip125417aa : 84b2 [ 3] sty zpt ;clear17ac : ad0302 [ 4] lda abst17af : 49c3 [ 2] eor #$c317b1 : cd0802 [ 4] cmp abs1trap_ne ;store to abs data17b4 : f002 [ 3]> beq skip1256> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction17b6 : 00 [ 7]> brk ; Use BRK to return to the monitor17b7 : 14 > db test_num>17b8 : >skip125617b8 : 8c0302 [ 4] sty abst ;clear17bb : a5b3 [ 3] lda zpt+117bd : 49c3 [ 2] eor #$c317bf : c5ba [ 3] cmp zp1+1trap_ne ;store to zp+1 data17c1 : f002 [ 3]> beq skip1258> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction17c3 : 00 [ 7]> brk ; Use BRK to return to the monitor17c4 : 14 > db test_num>17c5 : >skip125817c5 : 84b3 [ 3] sty zpt+1 ;clear17c7 : ad0402 [ 4] lda abst+117ca : 49c3 [ 2] eor #$c317cc : cd0902 [ 4] cmp abs1+1trap_ne ;store to abs+1 data17cf : f002 [ 3]> beq skip1260> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 170---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------17d1 : 00 [ 7]> brk ; Use BRK to return to the monitor17d2 : 14 > db test_num>17d3 : >skip126017d3 : 8c0402 [ 4] sty abst+1 ;clear17d6 : a5b4 [ 3] lda zpt+217d8 : 49c3 [ 2] eor #$c317da : c5bb [ 3] cmp zp1+2trap_ne ;store to zp+2 data17dc : f002 [ 3]> beq skip1262> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction17de : 00 [ 7]> brk ; Use BRK to return to the monitor17df : 14 > db test_num>17e0 : >skip126217e0 : 84b4 [ 3] sty zpt+2 ;clear17e2 : ad0502 [ 4] lda abst+217e5 : 49c3 [ 2] eor #$c317e7 : cd0a02 [ 4] cmp abs1+2trap_ne ;store to abs+2 data17ea : f002 [ 3]> beq skip1264> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction17ec : 00 [ 7]> brk ; Use BRK to return to the monitor17ed : 14 > db test_num>17ee : >skip126417ee : 8c0502 [ 4] sty abst+2 ;clear17f1 : a5b5 [ 3] lda zpt+317f3 : 49c3 [ 2] eor #$c317f5 : c5bc [ 3] cmp zp1+3trap_ne ;store to zp+3 data17f7 : f002 [ 3]> beq skip1266> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction17f9 : 00 [ 7]> brk ; Use BRK to return to the monitor17fa : 14 > db test_num>17fb : >skip126617fb : 84b5 [ 3] sty zpt+3 ;clear17fd : ad0602 [ 4] lda abst+31800 : 49c3 [ 2] eor #$c31802 : cd0b02 [ 4] cmp abs1+3trap_ne ;store to abs+3 data1805 : f002 [ 3]> beq skip1268> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1807 : 00 [ 7]> brk ; Use BRK to return to the monitor1808 : 14 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 171---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1809 : >skip12681809 : 8c0602 [ 4] sty abst+3 ;clearnext_test180c : ad0002 [ 4]> lda test_case ;previous test180f : c914 [ 2]> cmp #test_num> trap_ne ;test is out of sequence1811 : f002 [ 3]> beq skip1271> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1813 : 00 [ 7]> brk ; Use BRK to return to the monitor1814 : 14 > db test_num>1815 : >skip1271>0015 = >test_num = test_num + 11815 : a915 [ 2]> lda #test_num ;*** this tests' number1817 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; testing load / store accumulator LDA / STA all addressing modes; LDA / STA - zp,x / abs,x181a : a203 [ 2] ldx #3181c : tldaxset_stat 0> load_flag 0181c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>181e : 48 [ 3]> pha ;use stack to load status181f : 28 [ 4]> plp1820 : b5b9 [ 4] lda zp1,x1822 : 08 [ 3] php ;test stores do not alter flags1823 : 49c3 [ 2] eor #$c31825 : 28 [ 4] plp1826 : 9d0302 [ 5] sta abst,x1829 : 08 [ 3] php ;flags after load/store sequence182a : 49c3 [ 2] eor #$c3182c : dd0802 [ 4] cmp abs1,x ;test resulttrap_ne182f : f002 [ 3]> beq skip1275> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1831 : 00 [ 7]> brk ; Use BRK to return to the monitor1832 : 15 > db test_num>1833 : >skip12751833 : 68 [ 4] pla ;load statuseor_flag 01834 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1836 : dd0d02 [ 4] cmp fLDx,x ;test flagsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 172---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne1839 : f002 [ 3]> beq skip1278> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction183b : 00 [ 7]> brk ; Use BRK to return to the monitor183c : 15 > db test_num>183d : >skip1278183d : ca [ 2] dex183e : 10dc [ 3] bpl tldax1840 : a203 [ 2] ldx #31842 : tldax1set_stat $ff> load_flag $ff1842 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1844 : 48 [ 3]> pha ;use stack to load status1845 : 28 [ 4]> plp1846 : b5b9 [ 4] lda zp1,x1848 : 08 [ 3] php ;test stores do not alter flags1849 : 49c3 [ 2] eor #$c3184b : 28 [ 4] plp184c : 9d0302 [ 5] sta abst,x184f : 08 [ 3] php ;flags after load/store sequence1850 : 49c3 [ 2] eor #$c31852 : dd0802 [ 4] cmp abs1,x ;test resulttrap_ne1855 : f002 [ 3]> beq skip1282> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1857 : 00 [ 7]> brk ; Use BRK to return to the monitor1858 : 15 > db test_num>1859 : >skip12821859 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered185a : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits185c : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_ne185f : f002 [ 3]> beq skip1285> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1861 : 00 [ 7]> brk ; Use BRK to return to the monitor1862 : 15 > db test_num>1863 : >skip12851863 : ca [ 2] dex1864 : 10dc [ 3] bpl tldax1AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 173---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1866 : a203 [ 2] ldx #31868 : tldax2set_stat 0> load_flag 01868 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>186a : 48 [ 3]> pha ;use stack to load status186b : 28 [ 4]> plp186c : bd0802 [ 4] lda abs1,x186f : 08 [ 3] php ;test stores do not alter flags1870 : 49c3 [ 2] eor #$c31872 : 28 [ 4] plp1873 : 95b2 [ 4] sta zpt,x1875 : 08 [ 3] php ;flags after load/store sequence1876 : 49c3 [ 2] eor #$c31878 : d5b9 [ 4] cmp zp1,x ;test resulttrap_ne187a : f002 [ 3]> beq skip1289> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction187c : 00 [ 7]> brk ; Use BRK to return to the monitor187d : 15 > db test_num>187e : >skip1289187e : 68 [ 4] pla ;load statuseor_flag 0187f : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1881 : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_ne1884 : f002 [ 3]> beq skip1292> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1886 : 00 [ 7]> brk ; Use BRK to return to the monitor1887 : 15 > db test_num>1888 : >skip12921888 : ca [ 2] dex1889 : 10dd [ 3] bpl tldax2188b : a203 [ 2] ldx #3188d : tldax3set_stat $ff> load_flag $ff188d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>188f : 48 [ 3]> pha ;use stack to load status1890 : 28 [ 4]> plp1891 : bd0802 [ 4] lda abs1,x1894 : 08 [ 3] php ;test stores do not alter flags1895 : 49c3 [ 2] eor #$c3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 174---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1897 : 28 [ 4] plp1898 : 95b2 [ 4] sta zpt,x189a : 08 [ 3] php ;flags after load/store sequence189b : 49c3 [ 2] eor #$c3189d : d5b9 [ 4] cmp zp1,x ;test resulttrap_ne189f : f002 [ 3]> beq skip1296> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction18a1 : 00 [ 7]> brk ; Use BRK to return to the monitor18a2 : 15 > db test_num>18a3 : >skip129618a3 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered18a4 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits18a6 : dd0d02 [ 4] cmp fLDx,x ;test flagstrap_ne18a9 : f002 [ 3]> beq skip1299> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction18ab : 00 [ 7]> brk ; Use BRK to return to the monitor18ac : 15 > db test_num>18ad : >skip129918ad : ca [ 2] dex18ae : 10dd [ 3] bpl tldax318b0 : a203 [ 2] ldx #3 ;testing store result18b2 : a000 [ 2] ldy #018b4 : b5b2 [ 4] tstax lda zpt,x18b6 : 49c3 [ 2] eor #$c318b8 : d5b9 [ 4] cmp zp1,xtrap_ne ;store to zp,x data18ba : f002 [ 3]> beq skip1301> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction18bc : 00 [ 7]> brk ; Use BRK to return to the monitor18bd : 15 > db test_num>18be : >skip130118be : 94b2 [ 4] sty zpt,x ;clear18c0 : bd0302 [ 4] lda abst,x18c3 : 49c3 [ 2] eor #$c318c5 : dd0802 [ 4] cmp abs1,xtrap_ne ;store to abs,x data18c8 : f002 [ 3]> beq skip1303> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction18ca : 00 [ 7]> brk ; Use BRK to return to the monitor18cb : 15 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 175---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->18cc : >skip130318cc : 8a [ 2] txa18cd : 9d0302 [ 5] sta abst,x ;clear18d0 : ca [ 2] dex18d1 : 10e1 [ 3] bpl tstaxnext_test18d3 : ad0002 [ 4]> lda test_case ;previous test18d6 : c915 [ 2]> cmp #test_num> trap_ne ;test is out of sequence18d8 : f002 [ 3]> beq skip1306> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction18da : 00 [ 7]> brk ; Use BRK to return to the monitor18db : 15 > db test_num>18dc : >skip1306>0016 = >test_num = test_num + 118dc : a916 [ 2]> lda #test_num ;*** this tests' number18de : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; LDA / STA - (zp),y / abs,y / (zp,x)18e1 : a003 [ 2] ldy #318e3 : tldayset_stat 0> load_flag 018e3 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>18e5 : 48 [ 3]> pha ;use stack to load status18e6 : 28 [ 4]> plp18e7 : b1ca [ 5] lda (ind1),y18e9 : 08 [ 3] php ;test stores do not alter flags18ea : 49c3 [ 2] eor #$c318ec : 28 [ 4] plp18ed : 990302 [ 5] sta abst,y18f0 : 08 [ 3] php ;flags after load/store sequence18f1 : 49c3 [ 2] eor #$c318f3 : d90802 [ 4] cmp abs1,y ;test resulttrap_ne18f6 : f002 [ 3]> beq skip1310> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction18f8 : 00 [ 7]> brk ; Use BRK to return to the monitor18f9 : 16 > db test_num>18fa : >skip131018fa : 68 [ 4] pla ;load statuseor_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 176---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------18fb : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits18fd : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne1900 : f002 [ 3]> beq skip1313> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1902 : 00 [ 7]> brk ; Use BRK to return to the monitor1903 : 16 > db test_num>1904 : >skip13131904 : 88 [ 2] dey1905 : 10dc [ 4] bpl tlday1907 : a003 [ 2] ldy #31909 : tlday1set_stat $ff> load_flag $ff1909 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>190b : 48 [ 3]> pha ;use stack to load status190c : 28 [ 4]> plp190d : b1ca [ 5] lda (ind1),y190f : 08 [ 3] php ;test stores do not alter flags1910 : 49c3 [ 2] eor #$c31912 : 28 [ 4] plp1913 : 990302 [ 5] sta abst,y1916 : 08 [ 3] php ;flags after load/store sequence1917 : 49c3 [ 2] eor #$c31919 : d90802 [ 4] cmp abs1,y ;test resulttrap_ne191c : f002 [ 3]> beq skip1317> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction191e : 00 [ 7]> brk ; Use BRK to return to the monitor191f : 16 > db test_num>1920 : >skip13171920 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1921 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1923 : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne1926 : f002 [ 3]> beq skip1320> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1928 : 00 [ 7]> brk ; Use BRK to return to the monitor1929 : 16 > db test_num>192a : >skip1320AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 177---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------192a : 88 [ 2] dey192b : 10dc [ 3] bpl tlday1192d : a003 [ 2] ldy #3 ;testing store result192f : a200 [ 2] ldx #01931 : b90302 [ 4] tstay lda abst,y1934 : 49c3 [ 2] eor #$c31936 : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data1939 : f002 [ 3]> beq skip1322> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction193b : 00 [ 7]> brk ; Use BRK to return to the monitor193c : 16 > db test_num>193d : >skip1322193d : 8a [ 2] txa193e : 990302 [ 5] sta abst,y ;clear1941 : 88 [ 2] dey1942 : 10ed [ 3] bpl tstay1944 : a003 [ 2] ldy #31946 : tlday2set_stat 0> load_flag 01946 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1948 : 48 [ 3]> pha ;use stack to load status1949 : 28 [ 4]> plp194a : b90802 [ 4] lda abs1,y194d : 08 [ 3] php ;test stores do not alter flags194e : 49c3 [ 2] eor #$c31950 : 28 [ 4] plp1951 : 91d6 [ 5] sta (indt),y1953 : 08 [ 3] php ;flags after load/store sequence1954 : 49c3 [ 2] eor #$c31956 : d1ca [ 5] cmp (ind1),y ;test resulttrap_ne1958 : f002 [ 3]> beq skip1326> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction195a : 00 [ 7]> brk ; Use BRK to return to the monitor195b : 16 > db test_num>195c : >skip1326195c : 68 [ 4] pla ;load statuseor_flag 0195d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits195f : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne1962 : f002 [ 3]> beq skip1329AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 178---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1964 : 00 [ 7]> brk ; Use BRK to return to the monitor1965 : 16 > db test_num>1966 : >skip13291966 : 88 [ 2] dey1967 : 10dd [ 3] bpl tlday21969 : a003 [ 2] ldy #3196b : tlday3set_stat $ff> load_flag $ff196b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>196d : 48 [ 3]> pha ;use stack to load status196e : 28 [ 4]> plp196f : b90802 [ 4] lda abs1,y1972 : 08 [ 3] php ;test stores do not alter flags1973 : 49c3 [ 2] eor #$c31975 : 28 [ 4] plp1976 : 91d6 [ 5] sta (indt),y1978 : 08 [ 3] php ;flags after load/store sequence1979 : 49c3 [ 2] eor #$c3197b : d1ca [ 5] cmp (ind1),y ;test resulttrap_ne197d : f002 [ 3]> beq skip1333> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction197f : 00 [ 7]> brk ; Use BRK to return to the monitor1980 : 16 > db test_num>1981 : >skip13331981 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1982 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1984 : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne1987 : f002 [ 3]> beq skip1336> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1989 : 00 [ 7]> brk ; Use BRK to return to the monitor198a : 16 > db test_num>198b : >skip1336198b : 88 [ 2] dey198c : 10dd [ 3] bpl tlday3198e : a003 [ 2] ldy #3 ;testing store result1990 : a200 [ 2] ldx #0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 179---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1992 : b90302 [ 4] tstay1 lda abst,y1995 : 49c3 [ 2] eor #$c31997 : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data199a : f002 [ 3]> beq skip1338> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction199c : 00 [ 7]> brk ; Use BRK to return to the monitor199d : 16 > db test_num>199e : >skip1338199e : 8a [ 2] txa199f : 990302 [ 5] sta abst,y ;clear19a2 : 88 [ 2] dey19a3 : 10ed [ 3] bpl tstay119a5 : a206 [ 2] ldx #619a7 : a003 [ 2] ldy #319a9 : tldax4set_stat 0> load_flag 019a9 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>19ab : 48 [ 3]> pha ;use stack to load status19ac : 28 [ 4]> plp19ad : a1ca [ 6] lda (ind1,x)19af : 08 [ 3] php ;test stores do not alter flags19b0 : 49c3 [ 2] eor #$c319b2 : 28 [ 4] plp19b3 : 81d6 [ 6] sta (indt,x)19b5 : 08 [ 3] php ;flags after load/store sequence19b6 : 49c3 [ 2] eor #$c319b8 : d90802 [ 4] cmp abs1,y ;test resulttrap_ne19bb : f002 [ 3]> beq skip1342> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction19bd : 00 [ 7]> brk ; Use BRK to return to the monitor19be : 16 > db test_num>19bf : >skip134219bf : 68 [ 4] pla ;load statuseor_flag 019c0 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits19c2 : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne19c5 : f002 [ 3]> beq skip1345> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction19c7 : 00 [ 7]> brk ; Use BRK to return to the monitor19c8 : 16 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 180---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->19c9 : >skip134519c9 : ca [ 2] dex19ca : ca [ 2] dex19cb : 88 [ 2] dey19cc : 10db [ 3] bpl tldax419ce : a206 [ 2] ldx #619d0 : a003 [ 2] ldy #319d2 : tldax5set_stat $ff> load_flag $ff19d2 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>19d4 : 48 [ 3]> pha ;use stack to load status19d5 : 28 [ 4]> plp19d6 : a1ca [ 6] lda (ind1,x)19d8 : 08 [ 3] php ;test stores do not alter flags19d9 : 49c3 [ 2] eor #$c319db : 28 [ 4] plp19dc : 81d6 [ 6] sta (indt,x)19de : 08 [ 3] php ;flags after load/store sequence19df : 49c3 [ 2] eor #$c319e1 : d90802 [ 4] cmp abs1,y ;test resulttrap_ne19e4 : f002 [ 3]> beq skip1349> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction19e6 : 00 [ 7]> brk ; Use BRK to return to the monitor19e7 : 16 > db test_num>19e8 : >skip134919e8 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered19e9 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits19eb : d90d02 [ 4] cmp fLDx,y ;test flagstrap_ne19ee : f002 [ 3]> beq skip1352> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction19f0 : 00 [ 7]> brk ; Use BRK to return to the monitor19f1 : 16 > db test_num>19f2 : >skip135219f2 : ca [ 2] dex19f3 : ca [ 2] dex19f4 : 88 [ 2] dey19f5 : 10db [ 3] bpl tldax519f7 : a003 [ 2] ldy #3 ;testing store resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 181---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------19f9 : a200 [ 2] ldx #019fb : b90302 [ 4] tstay2 lda abst,y19fe : 49c3 [ 2] eor #$c31a00 : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data1a03 : f002 [ 3]> beq skip1354> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1a05 : 00 [ 7]> brk ; Use BRK to return to the monitor1a06 : 16 > db test_num>1a07 : >skip13541a07 : 8a [ 2] txa1a08 : 990302 [ 5] sta abst,y ;clear1a0b : 88 [ 2] dey1a0c : 10ed [ 4] bpl tstay2next_test1a0e : ad0002 [ 4]> lda test_case ;previous test1a11 : c916 [ 2]> cmp #test_num> trap_ne ;test is out of sequence1a13 : f002 [ 3]> beq skip1357> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1a15 : 00 [ 7]> brk ; Use BRK to return to the monitor1a16 : 16 > db test_num>1a17 : >skip1357>0017 = >test_num = test_num + 11a17 : a917 [ 2]> lda #test_num ;*** this tests' number1a19 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; indexed wraparound test (only zp should wrap)1a1c : a2fd [ 2] ldx #3+$fa1a1e : b5bf [ 4] tldax6 lda zp1-$fa&$ff,x ;wrap on indexed zp1a20 : 9d0901 [ 5] sta abst-$fa,x ;no STX abs,x!1a23 : ca [ 2] dex1a24 : e0fa [ 2] cpx #$fa1a26 : b0f6 [ 3] bcs tldax61a28 : a2fd [ 2] ldx #3+$fa1a2a : bd0e01 [ 4] tldax7 lda abs1-$fa,x ;no wrap on indexed abs1a2d : 95b8 [ 4] sta zpt-$fa&$ff,x1a2f : ca [ 2] dex1a30 : e0fa [ 2] cpx #$fa1a32 : b0f6 [ 3] bcs tldax71a34 : a203 [ 2] ldx #3 ;testing wraparound result1a36 : a000 [ 2] ldy #01a38 : b5b2 [ 4] tstax1 lda zpt,x1a3a : d5b9 [ 4] cmp zp1,xtrap_ne ;store to zp,x dataAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 182---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1a3c : f002 [ 3]> beq skip1359> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1a3e : 00 [ 7]> brk ; Use BRK to return to the monitor1a3f : 17 > db test_num>1a40 : >skip13591a40 : 94b2 [ 4] sty zpt,x ;clear1a42 : bd0302 [ 4] lda abst,x1a45 : dd0802 [ 4] cmp abs1,xtrap_ne ;store to abs,x data1a48 : f002 [ 3]> beq skip1361> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1a4a : 00 [ 7]> brk ; Use BRK to return to the monitor1a4b : 17 > db test_num>1a4c : >skip13611a4c : 8a [ 2] txa1a4d : 9d0302 [ 5] sta abst,x ;clear1a50 : ca [ 2] dex1a51 : 10e5 [ 3] bpl tstax11a53 : a0fb [ 2] ldy #3+$f81a55 : a2fe [ 2] ldx #6+$f81a57 : a1d2 [ 6] tlday4 lda (ind1-$f8&$ff,x) ;wrap on indexed zp indirect1a59 : 990b01 [ 5] sta abst-$f8,y1a5c : ca [ 2] dex1a5d : ca [ 2] dex1a5e : 88 [ 2] dey1a5f : c0f8 [ 2] cpy #$f81a61 : b0f4 [ 3] bcs tlday41a63 : a003 [ 2] ldy #3 ;testing wraparound result1a65 : a200 [ 2] ldx #01a67 : b90302 [ 4] tstay4 lda abst,y1a6a : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data1a6d : f002 [ 3]> beq skip1363> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1a6f : 00 [ 7]> brk ; Use BRK to return to the monitor1a70 : 17 > db test_num>1a71 : >skip13631a71 : 8a [ 2] txa1a72 : 990302 [ 5] sta abst,y ;clear1a75 : 88 [ 2] dey1a76 : 10ef [ 3] bpl tstay41a78 : a0fb [ 2] ldy #3+$f81a7a : b91001 [ 4] tlday5 lda abs1-$f8,y ;no wrap on indexed abs1a7d : 91de [ 5] sta (inwt),yAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 183---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1a7f : 88 [ 2] dey1a80 : c0f8 [ 2] cpy #$f81a82 : b0f6 [ 3] bcs tlday51a84 : a003 [ 2] ldy #3 ;testing wraparound result1a86 : a200 [ 2] ldx #01a88 : b90302 [ 4] tstay5 lda abst,y1a8b : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data1a8e : f002 [ 3]> beq skip1365> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1a90 : 00 [ 7]> brk ; Use BRK to return to the monitor1a91 : 17 > db test_num>1a92 : >skip13651a92 : 8a [ 2] txa1a93 : 990302 [ 5] sta abst,y ;clear1a96 : 88 [ 2] dey1a97 : 10ef [ 3] bpl tstay51a99 : a0fb [ 2] ldy #3+$f81a9b : a2fe [ 2] ldx #6+$f81a9d : b1d4 [ 5] tlday6 lda (inw1),y ;no wrap on zp indirect indexed1a9f : 81de [ 6] sta (indt-$f8&$ff,x)1aa1 : ca [ 2] dex1aa2 : ca [ 2] dex1aa3 : 88 [ 2] dey1aa4 : c0f8 [ 2] cpy #$f81aa6 : b0f5 [ 3] bcs tlday61aa8 : a003 [ 2] ldy #3 ;testing wraparound result1aaa : a200 [ 2] ldx #01aac : b90302 [ 4] tstay6 lda abst,y1aaf : d90802 [ 4] cmp abs1,ytrap_ne ;store to abs data1ab2 : f002 [ 3]> beq skip1367> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ab4 : 00 [ 7]> brk ; Use BRK to return to the monitor1ab5 : 17 > db test_num>1ab6 : >skip13671ab6 : 8a [ 2] txa1ab7 : 990302 [ 5] sta abst,y ;clear1aba : 88 [ 2] dey1abb : 10ef [ 3] bpl tstay6next_test1abd : ad0002 [ 4]> lda test_case ;previous test1ac0 : c917 [ 2]> cmp #test_num> trap_ne ;test is out of sequence1ac2 : f002 [ 3]> beq skip1370> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ac4 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 184---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1ac5 : 17 > db test_num>1ac6 : >skip1370>0018 = >test_num = test_num + 11ac6 : a918 [ 2]> lda #test_num ;*** this tests' number1ac8 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; LDA / STA - zp / abs / #set_stat 0> load_flag 01acb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1acd : 48 [ 3]> pha ;use stack to load status1ace : 28 [ 4]> plp1acf : a5b9 [ 3] lda zp11ad1 : 08 [ 3] php ;test stores do not alter flags1ad2 : 49c3 [ 2] eor #$c31ad4 : 28 [ 4] plp1ad5 : 8d0302 [ 4] sta abst1ad8 : 08 [ 3] php ;flags after load/store sequence1ad9 : 49c3 [ 2] eor #$c31adb : c9c3 [ 2] cmp #$c3 ;test resulttrap_ne1add : f002 [ 3]> beq skip1374> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1adf : 00 [ 7]> brk ; Use BRK to return to the monitor1ae0 : 18 > db test_num>1ae1 : >skip13741ae1 : 68 [ 4] pla ;load statuseor_flag 01ae2 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1ae4 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1ae7 : f002 [ 3]> beq skip1377> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ae9 : 00 [ 7]> brk ; Use BRK to return to the monitor1aea : 18 > db test_num>1aeb : >skip1377set_stat 0> load_flag 01aeb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1aed : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 185---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1aee : 28 [ 4]> plp1aef : a5ba [ 3] lda zp1+11af1 : 08 [ 3] php ;test stores do not alter flags1af2 : 49c3 [ 2] eor #$c31af4 : 28 [ 4] plp1af5 : 8d0402 [ 4] sta abst+11af8 : 08 [ 3] php ;flags after load/store sequence1af9 : 49c3 [ 2] eor #$c31afb : c982 [ 2] cmp #$82 ;test resulttrap_ne1afd : f002 [ 4]> beq skip1381> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1aff : 00 [ 7]> brk ; Use BRK to return to the monitor1b00 : 18 > db test_num>1b01 : >skip13811b01 : 68 [ 4] pla ;load statuseor_flag 01b02 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1b04 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1b07 : f002 [ 3]> beq skip1384> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b09 : 00 [ 7]> brk ; Use BRK to return to the monitor1b0a : 18 > db test_num>1b0b : >skip1384set_stat 0> load_flag 01b0b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1b0d : 48 [ 3]> pha ;use stack to load status1b0e : 28 [ 4]> plp1b0f : a5bb [ 3] lda zp1+21b11 : 08 [ 3] php ;test stores do not alter flags1b12 : 49c3 [ 2] eor #$c31b14 : 28 [ 4] plp1b15 : 8d0502 [ 4] sta abst+21b18 : 08 [ 3] php ;flags after load/store sequence1b19 : 49c3 [ 2] eor #$c31b1b : c941 [ 2] cmp #$41 ;test resulttrap_ne1b1d : f002 [ 3]> beq skip1388> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b1f : 00 [ 7]> brk ; Use BRK to return to the monitor1b20 : 18 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 186---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1b21 : >skip13881b21 : 68 [ 4] pla ;load statuseor_flag 01b22 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1b24 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1b27 : f002 [ 3]> beq skip1391> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b29 : 00 [ 7]> brk ; Use BRK to return to the monitor1b2a : 18 > db test_num>1b2b : >skip1391set_stat 0> load_flag 01b2b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1b2d : 48 [ 3]> pha ;use stack to load status1b2e : 28 [ 4]> plp1b2f : a5bc [ 3] lda zp1+31b31 : 08 [ 3] php ;test stores do not alter flags1b32 : 49c3 [ 2] eor #$c31b34 : 28 [ 4] plp1b35 : 8d0602 [ 4] sta abst+31b38 : 08 [ 3] php ;flags after load/store sequence1b39 : 49c3 [ 2] eor #$c31b3b : c900 [ 2] cmp #0 ;test resulttrap_ne1b3d : f002 [ 3]> beq skip1395> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b3f : 00 [ 7]> brk ; Use BRK to return to the monitor1b40 : 18 > db test_num>1b41 : >skip13951b41 : 68 [ 4] pla ;load statuseor_flag 01b42 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1b44 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1b47 : f002 [ 3]> beq skip1398> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b49 : 00 [ 7]> brk ; Use BRK to return to the monitor1b4a : 18 > db test_num>1b4b : >skip1398set_stat $ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 187---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff1b4b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1b4d : 48 [ 3]> pha ;use stack to load status1b4e : 28 [ 4]> plp1b4f : a5b9 [ 3] lda zp11b51 : 08 [ 3] php ;test stores do not alter flags1b52 : 49c3 [ 2] eor #$c31b54 : 28 [ 4] plp1b55 : 8d0302 [ 4] sta abst1b58 : 08 [ 3] php ;flags after load/store sequence1b59 : 49c3 [ 2] eor #$c31b5b : c9c3 [ 2] cmp #$c3 ;test resulttrap_ne1b5d : f002 [ 3]> beq skip1402> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b5f : 00 [ 7]> brk ; Use BRK to return to the monitor1b60 : 18 > db test_num>1b61 : >skip14021b61 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1b62 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1b64 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1b67 : f002 [ 3]> beq skip1405> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b69 : 00 [ 7]> brk ; Use BRK to return to the monitor1b6a : 18 > db test_num>1b6b : >skip1405set_stat $ff> load_flag $ff1b6b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1b6d : 48 [ 3]> pha ;use stack to load status1b6e : 28 [ 4]> plp1b6f : a5ba [ 3] lda zp1+11b71 : 08 [ 3] php ;test stores do not alter flags1b72 : 49c3 [ 2] eor #$c31b74 : 28 [ 4] plp1b75 : 8d0402 [ 4] sta abst+11b78 : 08 [ 3] php ;flags after load/store sequence1b79 : 49c3 [ 2] eor #$c31b7b : c982 [ 2] cmp #$82 ;test resulttrap_ne1b7d : f002 [ 3]> beq skip1409> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 188---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction1b7f : 00 [ 7]> brk ; Use BRK to return to the monitor1b80 : 18 > db test_num>1b81 : >skip14091b81 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1b82 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1b84 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1b87 : f002 [ 3]> beq skip1412> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b89 : 00 [ 7]> brk ; Use BRK to return to the monitor1b8a : 18 > db test_num>1b8b : >skip1412set_stat $ff> load_flag $ff1b8b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1b8d : 48 [ 3]> pha ;use stack to load status1b8e : 28 [ 4]> plp1b8f : a5bb [ 3] lda zp1+21b91 : 08 [ 3] php ;test stores do not alter flags1b92 : 49c3 [ 2] eor #$c31b94 : 28 [ 4] plp1b95 : 8d0502 [ 4] sta abst+21b98 : 08 [ 3] php ;flags after load/store sequence1b99 : 49c3 [ 2] eor #$c31b9b : c941 [ 2] cmp #$41 ;test resulttrap_ne1b9d : f002 [ 3]> beq skip1416> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1b9f : 00 [ 7]> brk ; Use BRK to return to the monitor1ba0 : 18 > db test_num>1ba1 : >skip14161ba1 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1ba2 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1ba4 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1ba7 : f002 [ 3]> beq skip1419> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ba9 : 00 [ 7]> brk ; Use BRK to return to the monitor1baa : 18 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 189---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->1bab : >skip1419set_stat $ff> load_flag $ff1bab : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1bad : 48 [ 3]> pha ;use stack to load status1bae : 28 [ 4]> plp1baf : a5bc [ 3] lda zp1+31bb1 : 08 [ 3] php ;test stores do not alter flags1bb2 : 49c3 [ 2] eor #$c31bb4 : 28 [ 4] plp1bb5 : 8d0602 [ 4] sta abst+31bb8 : 08 [ 3] php ;flags after load/store sequence1bb9 : 49c3 [ 2] eor #$c31bbb : c900 [ 2] cmp #0 ;test resulttrap_ne1bbd : f002 [ 3]> beq skip1423> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1bbf : 00 [ 7]> brk ; Use BRK to return to the monitor1bc0 : 18 > db test_num>1bc1 : >skip14231bc1 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1bc2 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1bc4 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1bc7 : f002 [ 3]> beq skip1426> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1bc9 : 00 [ 7]> brk ; Use BRK to return to the monitor1bca : 18 > db test_num>1bcb : >skip1426set_stat 0> load_flag 01bcb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1bcd : 48 [ 3]> pha ;use stack to load status1bce : 28 [ 4]> plp1bcf : ad0802 [ 4] lda abs11bd2 : 08 [ 3] php ;test stores do not alter flags1bd3 : 49c3 [ 2] eor #$c31bd5 : 28 [ 4] plp1bd6 : 85b2 [ 3] sta zpt1bd8 : 08 [ 3] php ;flags after load/store sequence1bd9 : 49c3 [ 2] eor #$c3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 190---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1bdb : c5b9 [ 3] cmp zp1 ;test resulttrap_ne1bdd : f002 [ 3]> beq skip1430> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1bdf : 00 [ 7]> brk ; Use BRK to return to the monitor1be0 : 18 > db test_num>1be1 : >skip14301be1 : 68 [ 4] pla ;load statuseor_flag 01be2 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1be4 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1be7 : f002 [ 3]> beq skip1433> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1be9 : 00 [ 7]> brk ; Use BRK to return to the monitor1bea : 18 > db test_num>1beb : >skip1433set_stat 0> load_flag 01beb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1bed : 48 [ 3]> pha ;use stack to load status1bee : 28 [ 4]> plp1bef : ad0902 [ 4] lda abs1+11bf2 : 08 [ 3] php ;test stores do not alter flags1bf3 : 49c3 [ 2] eor #$c31bf5 : 28 [ 4] plp1bf6 : 85b3 [ 3] sta zpt+11bf8 : 08 [ 3] php ;flags after load/store sequence1bf9 : 49c3 [ 2] eor #$c31bfb : c5ba [ 3] cmp zp1+1 ;test resulttrap_ne1bfd : f002 [ 4]> beq skip1437> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1bff : 00 [ 7]> brk ; Use BRK to return to the monitor1c00 : 18 > db test_num>1c01 : >skip14371c01 : 68 [ 4] pla ;load statuseor_flag 01c02 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1c04 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1c07 : f002 [ 3]> beq skip1440AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 191---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c09 : 00 [ 7]> brk ; Use BRK to return to the monitor1c0a : 18 > db test_num>1c0b : >skip1440set_stat 0> load_flag 01c0b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1c0d : 48 [ 3]> pha ;use stack to load status1c0e : 28 [ 4]> plp1c0f : ad0a02 [ 4] lda abs1+21c12 : 08 [ 3] php ;test stores do not alter flags1c13 : 49c3 [ 2] eor #$c31c15 : 28 [ 4] plp1c16 : 85b4 [ 3] sta zpt+21c18 : 08 [ 3] php ;flags after load/store sequence1c19 : 49c3 [ 2] eor #$c31c1b : c5bb [ 3] cmp zp1+2 ;test resulttrap_ne1c1d : f002 [ 3]> beq skip1444> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c1f : 00 [ 7]> brk ; Use BRK to return to the monitor1c20 : 18 > db test_num>1c21 : >skip14441c21 : 68 [ 4] pla ;load statuseor_flag 01c22 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1c24 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1c27 : f002 [ 3]> beq skip1447> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c29 : 00 [ 7]> brk ; Use BRK to return to the monitor1c2a : 18 > db test_num>1c2b : >skip1447set_stat 0> load_flag 01c2b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1c2d : 48 [ 3]> pha ;use stack to load status1c2e : 28 [ 4]> plp1c2f : ad0b02 [ 4] lda abs1+31c32 : 08 [ 3] php ;test stores do not alter flags1c33 : 49c3 [ 2] eor #$c3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 192---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1c35 : 28 [ 4] plp1c36 : 85b5 [ 3] sta zpt+31c38 : 08 [ 3] php ;flags after load/store sequence1c39 : 49c3 [ 2] eor #$c31c3b : c5bc [ 3] cmp zp1+3 ;test resulttrap_ne1c3d : f002 [ 3]> beq skip1451> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c3f : 00 [ 7]> brk ; Use BRK to return to the monitor1c40 : 18 > db test_num>1c41 : >skip14511c41 : 68 [ 4] pla ;load statuseor_flag 01c42 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1c44 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1c47 : f002 [ 3]> beq skip1454> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c49 : 00 [ 7]> brk ; Use BRK to return to the monitor1c4a : 18 > db test_num>1c4b : >skip1454set_stat $ff> load_flag $ff1c4b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1c4d : 48 [ 3]> pha ;use stack to load status1c4e : 28 [ 4]> plp1c4f : ad0802 [ 4] lda abs11c52 : 08 [ 3] php ;test stores do not alter flags1c53 : 49c3 [ 2] eor #$c31c55 : 28 [ 4] plp1c56 : 85b2 [ 3] sta zpt1c58 : 08 [ 3] php ;flags after load/store sequence1c59 : 49c3 [ 2] eor #$c31c5b : c5b9 [ 3] cmp zp1 ;test resulttrap_ne1c5d : f002 [ 3]> beq skip1458> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c5f : 00 [ 7]> brk ; Use BRK to return to the monitor1c60 : 18 > db test_num>1c61 : >skip14581c61 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1c62 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 193---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1c64 : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1c67 : f002 [ 3]> beq skip1461> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c69 : 00 [ 7]> brk ; Use BRK to return to the monitor1c6a : 18 > db test_num>1c6b : >skip1461set_stat $ff> load_flag $ff1c6b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1c6d : 48 [ 3]> pha ;use stack to load status1c6e : 28 [ 4]> plp1c6f : ad0902 [ 4] lda abs1+11c72 : 08 [ 3] php ;test stores do not alter flags1c73 : 49c3 [ 2] eor #$c31c75 : 28 [ 4] plp1c76 : 85b3 [ 3] sta zpt+11c78 : 08 [ 3] php ;flags after load/store sequence1c79 : 49c3 [ 2] eor #$c31c7b : c5ba [ 3] cmp zp1+1 ;test resulttrap_ne1c7d : f002 [ 3]> beq skip1465> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c7f : 00 [ 7]> brk ; Use BRK to return to the monitor1c80 : 18 > db test_num>1c81 : >skip14651c81 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1c82 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1c84 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1c87 : f002 [ 3]> beq skip1468> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c89 : 00 [ 7]> brk ; Use BRK to return to the monitor1c8a : 18 > db test_num>1c8b : >skip1468set_stat $ff> load_flag $ff1c8b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1c8d : 48 [ 3]> pha ;use stack to load status1c8e : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 194---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1c8f : ad0a02 [ 4] lda abs1+21c92 : 08 [ 3] php ;test stores do not alter flags1c93 : 49c3 [ 2] eor #$c31c95 : 28 [ 4] plp1c96 : 85b4 [ 3] sta zpt+21c98 : 08 [ 3] php ;flags after load/store sequence1c99 : 49c3 [ 2] eor #$c31c9b : c5bb [ 3] cmp zp1+2 ;test resulttrap_ne1c9d : f002 [ 3]> beq skip1472> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1c9f : 00 [ 7]> brk ; Use BRK to return to the monitor1ca0 : 18 > db test_num>1ca1 : >skip14721ca1 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1ca2 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1ca4 : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1ca7 : f002 [ 3]> beq skip1475> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ca9 : 00 [ 7]> brk ; Use BRK to return to the monitor1caa : 18 > db test_num>1cab : >skip1475set_stat $ff> load_flag $ff1cab : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1cad : 48 [ 3]> pha ;use stack to load status1cae : 28 [ 4]> plp1caf : ad0b02 [ 4] lda abs1+31cb2 : 08 [ 3] php ;test stores do not alter flags1cb3 : 49c3 [ 2] eor #$c31cb5 : 28 [ 4] plp1cb6 : 85b5 [ 3] sta zpt+31cb8 : 08 [ 3] php ;flags after load/store sequence1cb9 : 49c3 [ 2] eor #$c31cbb : c5bc [ 3] cmp zp1+3 ;test resulttrap_ne1cbd : f002 [ 3]> beq skip1479> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1cbf : 00 [ 7]> brk ; Use BRK to return to the monitor1cc0 : 18 > db test_num>1cc1 : >skip1479AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 195---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1cc1 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1cc2 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1cc4 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1cc7 : f002 [ 3]> beq skip1482> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1cc9 : 00 [ 7]> brk ; Use BRK to return to the monitor1cca : 18 > db test_num>1ccb : >skip1482set_stat 0> load_flag 01ccb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1ccd : 48 [ 3]> pha ;use stack to load status1cce : 28 [ 4]> plp1ccf : a9c3 [ 2] lda #$c31cd1 : 08 [ 3] php1cd2 : cd0802 [ 4] cmp abs1 ;test resulttrap_ne1cd5 : f002 [ 3]> beq skip1486> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1cd7 : 00 [ 7]> brk ; Use BRK to return to the monitor1cd8 : 18 > db test_num>1cd9 : >skip14861cd9 : 68 [ 4] pla ;load statuseor_flag 01cda : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1cdc : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1cdf : f002 [ 3]> beq skip1489> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ce1 : 00 [ 7]> brk ; Use BRK to return to the monitor1ce2 : 18 > db test_num>1ce3 : >skip1489set_stat 0> load_flag 01ce3 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1ce5 : 48 [ 3]> pha ;use stack to load status1ce6 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 196---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1ce7 : a982 [ 2] lda #$821ce9 : 08 [ 3] php1cea : cd0902 [ 4] cmp abs1+1 ;test resulttrap_ne1ced : f002 [ 3]> beq skip1493> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1cef : 00 [ 7]> brk ; Use BRK to return to the monitor1cf0 : 18 > db test_num>1cf1 : >skip14931cf1 : 68 [ 4] pla ;load statuseor_flag 01cf2 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1cf4 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1cf7 : f002 [ 3]> beq skip1496> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1cf9 : 00 [ 7]> brk ; Use BRK to return to the monitor1cfa : 18 > db test_num>1cfb : >skip1496set_stat 0> load_flag 01cfb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1cfd : 48 [ 3]> pha ;use stack to load status1cfe : 28 [ 4]> plp1cff : a941 [ 2] lda #$411d01 : 08 [ 3] php1d02 : cd0a02 [ 4] cmp abs1+2 ;test resulttrap_ne1d05 : f002 [ 3]> beq skip1500> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d07 : 00 [ 7]> brk ; Use BRK to return to the monitor1d08 : 18 > db test_num>1d09 : >skip15001d09 : 68 [ 4] pla ;load statuseor_flag 01d0a : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1d0c : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1d0f : f002 [ 3]> beq skip1503> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d11 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 197---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1d12 : 18 > db test_num>1d13 : >skip1503set_stat 0> load_flag 01d13 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1d15 : 48 [ 3]> pha ;use stack to load status1d16 : 28 [ 4]> plp1d17 : a900 [ 2] lda #01d19 : 08 [ 3] php1d1a : cd0b02 [ 4] cmp abs1+3 ;test resulttrap_ne1d1d : f002 [ 3]> beq skip1507> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d1f : 00 [ 7]> brk ; Use BRK to return to the monitor1d20 : 18 > db test_num>1d21 : >skip15071d21 : 68 [ 4] pla ;load statuseor_flag 01d22 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits1d24 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1d27 : f002 [ 3]> beq skip1510> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d29 : 00 [ 7]> brk ; Use BRK to return to the monitor1d2a : 18 > db test_num>1d2b : >skip1510set_stat $ff> load_flag $ff1d2b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1d2d : 48 [ 3]> pha ;use stack to load status1d2e : 28 [ 4]> plp1d2f : a9c3 [ 2] lda #$c31d31 : 08 [ 3] php1d32 : cd0802 [ 4] cmp abs1 ;test resulttrap_ne1d35 : f002 [ 3]> beq skip1514> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d37 : 00 [ 7]> brk ; Use BRK to return to the monitor1d38 : 18 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 198---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1d39 : >skip15141d39 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1d3a : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1d3c : cd0d02 [ 4] cmp fLDx ;test flagstrap_ne1d3f : f002 [ 3]> beq skip1517> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d41 : 00 [ 7]> brk ; Use BRK to return to the monitor1d42 : 18 > db test_num>1d43 : >skip1517set_stat $ff> load_flag $ff1d43 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1d45 : 48 [ 3]> pha ;use stack to load status1d46 : 28 [ 4]> plp1d47 : a982 [ 2] lda #$821d49 : 08 [ 3] php1d4a : cd0902 [ 4] cmp abs1+1 ;test resulttrap_ne1d4d : f002 [ 3]> beq skip1521> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d4f : 00 [ 7]> brk ; Use BRK to return to the monitor1d50 : 18 > db test_num>1d51 : >skip15211d51 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1d52 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1d54 : cd0e02 [ 4] cmp fLDx+1 ;test flagstrap_ne1d57 : f002 [ 3]> beq skip1524> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d59 : 00 [ 7]> brk ; Use BRK to return to the monitor1d5a : 18 > db test_num>1d5b : >skip1524set_stat $ff> load_flag $ff1d5b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1d5d : 48 [ 3]> pha ;use stack to load status1d5e : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 199---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1d5f : a941 [ 2] lda #$411d61 : 08 [ 3] php1d62 : cd0a02 [ 4] cmp abs1+2 ;test resulttrap_ne1d65 : f002 [ 3]> beq skip1528> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d67 : 00 [ 7]> brk ; Use BRK to return to the monitor1d68 : 18 > db test_num>1d69 : >skip15281d69 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1d6a : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1d6c : cd0f02 [ 4] cmp fLDx+2 ;test flagstrap_ne1d6f : f002 [ 3]> beq skip1531> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d71 : 00 [ 7]> brk ; Use BRK to return to the monitor1d72 : 18 > db test_num>1d73 : >skip1531set_stat $ff> load_flag $ff1d73 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1d75 : 48 [ 3]> pha ;use stack to load status1d76 : 28 [ 4]> plp1d77 : a900 [ 2] lda #01d79 : 08 [ 3] php1d7a : cd0b02 [ 4] cmp abs1+3 ;test resulttrap_ne1d7d : f002 [ 3]> beq skip1535> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d7f : 00 [ 7]> brk ; Use BRK to return to the monitor1d80 : 18 > db test_num>1d81 : >skip15351d81 : 68 [ 4] pla ;load statuseor_flag lo~fnz ;mask bits not altered1d82 : 497d [ 2]> eor #lo~fnz |fao ;invert expected flags + always on bits1d84 : cd1002 [ 4] cmp fLDx+3 ;test flagstrap_ne1d87 : f002 [ 3]> beq skip1538> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 200---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1d89 : 00 [ 7]> brk ; Use BRK to return to the monitor1d8a : 18 > db test_num>1d8b : >skip15381d8b : a200 [ 2] ldx #01d8d : a5b2 [ 3] lda zpt1d8f : 49c3 [ 2] eor #$c31d91 : c5b9 [ 3] cmp zp1trap_ne ;store to zp data1d93 : f002 [ 3]> beq skip1540> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1d95 : 00 [ 7]> brk ; Use BRK to return to the monitor1d96 : 18 > db test_num>1d97 : >skip15401d97 : 86b2 [ 3] stx zpt ;clear1d99 : ad0302 [ 4] lda abst1d9c : 49c3 [ 2] eor #$c31d9e : cd0802 [ 4] cmp abs1trap_ne ;store to abs data1da1 : f002 [ 3]> beq skip1542> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1da3 : 00 [ 7]> brk ; Use BRK to return to the monitor1da4 : 18 > db test_num>1da5 : >skip15421da5 : 8e0302 [ 4] stx abst ;clear1da8 : a5b3 [ 3] lda zpt+11daa : 49c3 [ 2] eor #$c31dac : c5ba [ 3] cmp zp1+1trap_ne ;store to zp data1dae : f002 [ 3]> beq skip1544> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1db0 : 00 [ 7]> brk ; Use BRK to return to the monitor1db1 : 18 > db test_num>1db2 : >skip15441db2 : 86b3 [ 3] stx zpt+1 ;clear1db4 : ad0402 [ 4] lda abst+11db7 : 49c3 [ 2] eor #$c31db9 : cd0902 [ 4] cmp abs1+1trap_ne ;store to abs data1dbc : f002 [ 3]> beq skip1546> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1dbe : 00 [ 7]> brk ; Use BRK to return to the monitor1dbf : 18 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 201---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->1dc0 : >skip15461dc0 : 8e0402 [ 4] stx abst+1 ;clear1dc3 : a5b4 [ 3] lda zpt+21dc5 : 49c3 [ 2] eor #$c31dc7 : c5bb [ 3] cmp zp1+2trap_ne ;store to zp data1dc9 : f002 [ 3]> beq skip1548> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1dcb : 00 [ 7]> brk ; Use BRK to return to the monitor1dcc : 18 > db test_num>1dcd : >skip15481dcd : 86b4 [ 3] stx zpt+2 ;clear1dcf : ad0502 [ 4] lda abst+21dd2 : 49c3 [ 2] eor #$c31dd4 : cd0a02 [ 4] cmp abs1+2trap_ne ;store to abs data1dd7 : f002 [ 3]> beq skip1550> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1dd9 : 00 [ 7]> brk ; Use BRK to return to the monitor1dda : 18 > db test_num>1ddb : >skip15501ddb : 8e0502 [ 4] stx abst+2 ;clear1dde : a5b5 [ 3] lda zpt+31de0 : 49c3 [ 2] eor #$c31de2 : c5bc [ 3] cmp zp1+3trap_ne ;store to zp data1de4 : f002 [ 3]> beq skip1552> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1de6 : 00 [ 7]> brk ; Use BRK to return to the monitor1de7 : 18 > db test_num>1de8 : >skip15521de8 : 86b5 [ 3] stx zpt+3 ;clear1dea : ad0602 [ 4] lda abst+31ded : 49c3 [ 2] eor #$c31def : cd0b02 [ 4] cmp abs1+3trap_ne ;store to abs data1df2 : f002 [ 3]> beq skip1554> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1df4 : 00 [ 7]> brk ; Use BRK to return to the monitor1df5 : 18 > db test_num>1df6 : >skip1554AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 202---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1df6 : 8e0602 [ 4] stx abst+3 ;clearnext_test1df9 : ad0002 [ 4]> lda test_case ;previous test1dfc : c918 [ 2]> cmp #test_num> trap_ne ;test is out of sequence1dfe : f002 [ 4]> beq skip1557> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e00 : 00 [ 7]> brk ; Use BRK to return to the monitor1e01 : 18 > db test_num>1e02 : >skip1557>0019 = >test_num = test_num + 11e02 : a919 [ 2]> lda #test_num ;*** this tests' number1e04 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; testing bit test & compares BIT CPX CPY CMP all addressing modes; BIT - zp / absset_a $ff,0> load_flag 01e07 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1e09 : 48 [ 3]> pha ;use stack to load status1e0a : a9ff [ 2]> lda #$ff ;precharge accu1e0c : 28 [ 4]> plp1e0d : 24bc [ 3] bit zp1+3 ;00 - should set Z / clear NVtst_a $ff,fz1e0f : 08 [ 3]> php ;save flags1e10 : 08 [ 3]> php1e11 : c9ff [ 2]> cmp #$ff ;test result> trap_ne1e13 : f002 [ 3]> beq skip1562> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e15 : 00 [ 7]> brk ; Use BRK to return to the monitor1e16 : 19 > db test_num>1e17 : >skip1562>1e17 : 68 [ 4]> pla ;load status> cmp_flag fz1e18 : c932 [ 2]> cmp #(fz |fao)&m8 ;expected flags + always on bits>> trap_ne1e1a : f002 [ 3]> beq skip1565> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e1c : 00 [ 7]> brk ; Use BRK to return to the monitor1e1d : 19 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 203---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1e1e : >skip1565>1e1e : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 01e1f : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1e21 : 48 [ 3]> pha ;use stack to load status1e22 : a901 [ 2]> lda #1 ;precharge accu1e24 : 28 [ 4]> plp1e25 : 24bb [ 3] bit zp1+2 ;41 - should set V (M6) / clear NZtst_a 1,fv1e27 : 08 [ 3]> php ;save flags1e28 : 08 [ 3]> php1e29 : c901 [ 2]> cmp #1 ;test result> trap_ne1e2b : f002 [ 3]> beq skip1570> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e2d : 00 [ 7]> brk ; Use BRK to return to the monitor1e2e : 19 > db test_num>1e2f : >skip1570>1e2f : 68 [ 4]> pla ;load status> cmp_flag fv1e30 : c970 [ 2]> cmp #(fv|fao)&m8 ;expected flags + always on bits>> trap_ne1e32 : f002 [ 3]> beq skip1573> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e34 : 00 [ 7]> brk ; Use BRK to return to the monitor1e35 : 19 > db test_num>1e36 : >skip1573>1e36 : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 01e37 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1e39 : 48 [ 3]> pha ;use stack to load status1e3a : a901 [ 2]> lda #1 ;precharge accu1e3c : 28 [ 4]> plp1e3d : 24ba [ 3] bit zp1+1 ;82 - should set N (M7) & Z / clear Vtst_a 1,fnz1e3f : 08 [ 3]> php ;save flags1e40 : 08 [ 3]> php1e41 : c901 [ 2]> cmp #1 ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 204---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1e43 : f002 [ 3]> beq skip1578> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e45 : 00 [ 7]> brk ; Use BRK to return to the monitor1e46 : 19 > db test_num>1e47 : >skip1578>1e47 : 68 [ 4]> pla ;load status> cmp_flag fnz1e48 : c9b2 [ 2]> cmp #(fnz|fao)&m8 ;expected flags + always on bits>> trap_ne1e4a : f002 [ 3]> beq skip1581> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e4c : 00 [ 7]> brk ; Use BRK to return to the monitor1e4d : 19 > db test_num>1e4e : >skip1581>1e4e : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 01e4f : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1e51 : 48 [ 3]> pha ;use stack to load status1e52 : a901 [ 2]> lda #1 ;precharge accu1e54 : 28 [ 4]> plp1e55 : 24b9 [ 3] bit zp1 ;c3 - should set N (M7) & V (M6) / clear Ztst_a 1,fnv1e57 : 08 [ 3]> php ;save flags1e58 : 08 [ 3]> php1e59 : c901 [ 2]> cmp #1 ;test result> trap_ne1e5b : f002 [ 3]> beq skip1586> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e5d : 00 [ 7]> brk ; Use BRK to return to the monitor1e5e : 19 > db test_num>1e5f : >skip1586>1e5f : 68 [ 4]> pla ;load status> cmp_flag fnv1e60 : c9f0 [ 2]> cmp #(fnv|fao)&m8 ;expected flags + always on bits>> trap_ne1e62 : f002 [ 3]> beq skip1589> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e64 : 00 [ 7]> brk ; Use BRK to return to the monitor1e65 : 19 > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 205---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->1e66 : >skip1589>1e66 : 28 [ 4]> plp ;restore statusset_a $ff,$ff> load_flag $ff1e67 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1e69 : 48 [ 3]> pha ;use stack to load status1e6a : a9ff [ 2]> lda #$ff ;precharge accu1e6c : 28 [ 4]> plp1e6d : 24bc [ 3] bit zp1+3 ;00 - should set Z / clear NVtst_a $ff,~fnv1e6f : 08 [ 3]> php ;save flags1e70 : 08 [ 3]> php1e71 : c9ff [ 2]> cmp #$ff ;test result> trap_ne1e73 : f002 [ 3]> beq skip1594> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e75 : 00 [ 7]> brk ; Use BRK to return to the monitor1e76 : 19 > db test_num>1e77 : >skip1594>1e77 : 68 [ 4]> pla ;load status> cmp_flag ~fnv1e78 : c93f [ 2]> cmp #(~fnv |fao)&m8 ;expected flags + always on bits>> trap_ne1e7a : f002 [ 3]> beq skip1597> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e7c : 00 [ 7]> brk ; Use BRK to return to the monitor1e7d : 19 > db test_num>1e7e : >skip1597>1e7e : 28 [ 4]> plp ;restore statusset_a 1,$ff> load_flag $ff1e7f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1e81 : 48 [ 3]> pha ;use stack to load status1e82 : a901 [ 2]> lda #1 ;precharge accu1e84 : 28 [ 4]> plp1e85 : 24bb [ 3] bit zp1+2 ;41 - should set V (M6) / clear NZtst_a 1,~fnz1e87 : 08 [ 3]> php ;save flags1e88 : 08 [ 3]> phpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 206---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1e89 : c901 [ 2]> cmp #1 ;test result> trap_ne1e8b : f002 [ 3]> beq skip1602> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e8d : 00 [ 7]> brk ; Use BRK to return to the monitor1e8e : 19 > db test_num>1e8f : >skip1602>1e8f : 68 [ 4]> pla ;load status> cmp_flag ~fnz1e90 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne1e92 : f002 [ 3]> beq skip1605> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1e94 : 00 [ 7]> brk ; Use BRK to return to the monitor1e95 : 19 > db test_num>1e96 : >skip1605>1e96 : 28 [ 4]> plp ;restore statusset_a 1,$ff> load_flag $ff1e97 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1e99 : 48 [ 3]> pha ;use stack to load status1e9a : a901 [ 2]> lda #1 ;precharge accu1e9c : 28 [ 4]> plp1e9d : 24ba [ 3] bit zp1+1 ;82 - should set N (M7) & Z / clear Vtst_a 1,~fv1e9f : 08 [ 3]> php ;save flags1ea0 : 08 [ 3]> php1ea1 : c901 [ 2]> cmp #1 ;test result> trap_ne1ea3 : f002 [ 3]> beq skip1610> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ea5 : 00 [ 7]> brk ; Use BRK to return to the monitor1ea6 : 19 > db test_num>1ea7 : >skip1610>1ea7 : 68 [ 4]> pla ;load status> cmp_flag ~fv1ea8 : c9bf [ 2]> cmp #(~fv|fao)&m8 ;expected flags + always on bits>> trap_ne1eaa : f002 [ 3]> beq skip1613> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 207---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1eac : 00 [ 7]> brk ; Use BRK to return to the monitor1ead : 19 > db test_num>1eae : >skip1613>1eae : 28 [ 4]> plp ;restore statusset_a 1,$ff> load_flag $ff1eaf : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1eb1 : 48 [ 3]> pha ;use stack to load status1eb2 : a901 [ 2]> lda #1 ;precharge accu1eb4 : 28 [ 4]> plp1eb5 : 24b9 [ 3] bit zp1 ;c3 - should set N (M7) & V (M6) / clear Ztst_a 1,~fz1eb7 : 08 [ 3]> php ;save flags1eb8 : 08 [ 3]> php1eb9 : c901 [ 2]> cmp #1 ;test result> trap_ne1ebb : f002 [ 3]> beq skip1618> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ebd : 00 [ 7]> brk ; Use BRK to return to the monitor1ebe : 19 > db test_num>1ebf : >skip1618>1ebf : 68 [ 4]> pla ;load status> cmp_flag ~fz1ec0 : c9fd [ 2]> cmp #(~fz|fao)&m8 ;expected flags + always on bits>> trap_ne1ec2 : f002 [ 3]> beq skip1621> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ec4 : 00 [ 7]> brk ; Use BRK to return to the monitor1ec5 : 19 > db test_num>1ec6 : >skip1621>1ec6 : 28 [ 4]> plp ;restore statusset_a $ff,0> load_flag 01ec7 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1ec9 : 48 [ 3]> pha ;use stack to load status1eca : a9ff [ 2]> lda #$ff ;precharge accu1ecc : 28 [ 4]> plp1ecd : 2c0b02 [ 4] bit abs1+3 ;00 - should set Z / clear NVtst_a $ff,fzAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 208---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1ed0 : 08 [ 3]> php ;save flags1ed1 : 08 [ 3]> php1ed2 : c9ff [ 2]> cmp #$ff ;test result> trap_ne1ed4 : f002 [ 3]> beq skip1626> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ed6 : 00 [ 7]> brk ; Use BRK to return to the monitor1ed7 : 19 > db test_num>1ed8 : >skip1626>1ed8 : 68 [ 4]> pla ;load status> cmp_flag fz1ed9 : c932 [ 2]> cmp #(fz |fao)&m8 ;expected flags + always on bits>> trap_ne1edb : f002 [ 3]> beq skip1629> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1edd : 00 [ 7]> brk ; Use BRK to return to the monitor1ede : 19 > db test_num>1edf : >skip1629>1edf : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 01ee0 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1ee2 : 48 [ 3]> pha ;use stack to load status1ee3 : a901 [ 2]> lda #1 ;precharge accu1ee5 : 28 [ 4]> plp1ee6 : 2c0a02 [ 4] bit abs1+2 ;41 - should set V (M6) / clear NZtst_a 1,fv1ee9 : 08 [ 3]> php ;save flags1eea : 08 [ 3]> php1eeb : c901 [ 2]> cmp #1 ;test result> trap_ne1eed : f002 [ 3]> beq skip1634> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1eef : 00 [ 7]> brk ; Use BRK to return to the monitor1ef0 : 19 > db test_num>1ef1 : >skip1634>1ef1 : 68 [ 4]> pla ;load status> cmp_flag fv1ef2 : c970 [ 2]> cmp #(fv|fao)&m8 ;expected flags + always on bits>> trap_ne1ef4 : f002 [ 3]> beq skip1637AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 209---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ef6 : 00 [ 7]> brk ; Use BRK to return to the monitor1ef7 : 19 > db test_num>1ef8 : >skip1637>1ef8 : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 01ef9 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1efb : 48 [ 3]> pha ;use stack to load status1efc : a901 [ 2]> lda #1 ;precharge accu1efe : 28 [ 4]> plp1eff : 2c0902 [ 4] bit abs1+1 ;82 - should set N (M7) & Z / clear Vtst_a 1,fnz1f02 : 08 [ 3]> php ;save flags1f03 : 08 [ 3]> php1f04 : c901 [ 2]> cmp #1 ;test result> trap_ne1f06 : f002 [ 3]> beq skip1642> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f08 : 00 [ 7]> brk ; Use BRK to return to the monitor1f09 : 19 > db test_num>1f0a : >skip1642>1f0a : 68 [ 4]> pla ;load status> cmp_flag fnz1f0b : c9b2 [ 2]> cmp #(fnz|fao)&m8 ;expected flags + always on bits>> trap_ne1f0d : f002 [ 3]> beq skip1645> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f0f : 00 [ 7]> brk ; Use BRK to return to the monitor1f10 : 19 > db test_num>1f11 : >skip1645>1f11 : 28 [ 4]> plp ;restore statusset_a 1,0> load_flag 01f12 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1f14 : 48 [ 3]> pha ;use stack to load status1f15 : a901 [ 2]> lda #1 ;precharge accu1f17 : 28 [ 4]> plp1f18 : 2c0802 [ 4] bit abs1 ;c3 - should set N (M7) & V (M6) / clear ZAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 210---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tst_a 1,fnv1f1b : 08 [ 3]> php ;save flags1f1c : 08 [ 3]> php1f1d : c901 [ 2]> cmp #1 ;test result> trap_ne1f1f : f002 [ 3]> beq skip1650> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f21 : 00 [ 7]> brk ; Use BRK to return to the monitor1f22 : 19 > db test_num>1f23 : >skip1650>1f23 : 68 [ 4]> pla ;load status> cmp_flag fnv1f24 : c9f0 [ 2]> cmp #(fnv|fao)&m8 ;expected flags + always on bits>> trap_ne1f26 : f002 [ 3]> beq skip1653> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f28 : 00 [ 7]> brk ; Use BRK to return to the monitor1f29 : 19 > db test_num>1f2a : >skip1653>1f2a : 28 [ 4]> plp ;restore statusset_a $ff,$ff> load_flag $ff1f2b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1f2d : 48 [ 3]> pha ;use stack to load status1f2e : a9ff [ 2]> lda #$ff ;precharge accu1f30 : 28 [ 4]> plp1f31 : 2c0b02 [ 4] bit abs1+3 ;00 - should set Z / clear NVtst_a $ff,~fnv1f34 : 08 [ 3]> php ;save flags1f35 : 08 [ 3]> php1f36 : c9ff [ 2]> cmp #$ff ;test result> trap_ne1f38 : f002 [ 3]> beq skip1658> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f3a : 00 [ 7]> brk ; Use BRK to return to the monitor1f3b : 19 > db test_num>1f3c : >skip1658>1f3c : 68 [ 4]> pla ;load status> cmp_flag ~fnv1f3d : c93f [ 2]> cmp #(~fnv |fao)&m8 ;expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 211---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne1f3f : f002 [ 3]> beq skip1661> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f41 : 00 [ 7]> brk ; Use BRK to return to the monitor1f42 : 19 > db test_num>1f43 : >skip1661>1f43 : 28 [ 4]> plp ;restore statusset_a 1,$ff> load_flag $ff1f44 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1f46 : 48 [ 3]> pha ;use stack to load status1f47 : a901 [ 2]> lda #1 ;precharge accu1f49 : 28 [ 4]> plp1f4a : 2c0a02 [ 4] bit abs1+2 ;41 - should set V (M6) / clear NZtst_a 1,~fnz1f4d : 08 [ 3]> php ;save flags1f4e : 08 [ 3]> php1f4f : c901 [ 2]> cmp #1 ;test result> trap_ne1f51 : f002 [ 3]> beq skip1666> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f53 : 00 [ 7]> brk ; Use BRK to return to the monitor1f54 : 19 > db test_num>1f55 : >skip1666>1f55 : 68 [ 4]> pla ;load status> cmp_flag ~fnz1f56 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne1f58 : f002 [ 3]> beq skip1669> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f5a : 00 [ 7]> brk ; Use BRK to return to the monitor1f5b : 19 > db test_num>1f5c : >skip1669>1f5c : 28 [ 4]> plp ;restore statusset_a 1,$ff> load_flag $ff1f5d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1f5f : 48 [ 3]> pha ;use stack to load status1f60 : a901 [ 2]> lda #1 ;precharge accu1f62 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 212---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1f63 : 2c0902 [ 4] bit abs1+1 ;82 - should set N (M7) & Z / clear Vtst_a 1,~fv1f66 : 08 [ 3]> php ;save flags1f67 : 08 [ 3]> php1f68 : c901 [ 2]> cmp #1 ;test result> trap_ne1f6a : f002 [ 3]> beq skip1674> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f6c : 00 [ 7]> brk ; Use BRK to return to the monitor1f6d : 19 > db test_num>1f6e : >skip1674>1f6e : 68 [ 4]> pla ;load status> cmp_flag ~fv1f6f : c9bf [ 2]> cmp #(~fv|fao)&m8 ;expected flags + always on bits>> trap_ne1f71 : f002 [ 3]> beq skip1677> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f73 : 00 [ 7]> brk ; Use BRK to return to the monitor1f74 : 19 > db test_num>1f75 : >skip1677>1f75 : 28 [ 4]> plp ;restore statusset_a 1,$ff> load_flag $ff1f76 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1f78 : 48 [ 3]> pha ;use stack to load status1f79 : a901 [ 2]> lda #1 ;precharge accu1f7b : 28 [ 4]> plp1f7c : 2c0802 [ 4] bit abs1 ;c3 - should set N (M7) & V (M6) / clear Ztst_a 1,~fz1f7f : 08 [ 3]> php ;save flags1f80 : 08 [ 3]> php1f81 : c901 [ 2]> cmp #1 ;test result> trap_ne1f83 : f002 [ 3]> beq skip1682> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f85 : 00 [ 7]> brk ; Use BRK to return to the monitor1f86 : 19 > db test_num>1f87 : >skip1682>1f87 : 68 [ 4]> pla ;load status> cmp_flag ~fz1f88 : c9fd [ 2]> cmp #(~fz|fao)&m8 ;expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 213---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->> trap_ne1f8a : f002 [ 3]> beq skip1685> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f8c : 00 [ 7]> brk ; Use BRK to return to the monitor1f8d : 19 > db test_num>1f8e : >skip1685>1f8e : 28 [ 4]> plp ;restore statusnext_test1f8f : ad0002 [ 4]> lda test_case ;previous test1f92 : c919 [ 2]> cmp #test_num> trap_ne ;test is out of sequence1f94 : f002 [ 3]> beq skip1688> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1f96 : 00 [ 7]> brk ; Use BRK to return to the monitor1f97 : 19 > db test_num>1f98 : >skip1688>001a = >test_num = test_num + 11f98 : a91a [ 2]> lda #test_num ;*** this tests' number1f9a : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; CPX - zp / abs / #set_x $80,0> load_flag 01f9d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>1f9f : 48 [ 3]> pha ;use stack to load status1fa0 : a280 [ 2]> ldx #$80 ;precharge index x1fa2 : 28 [ 4]> plp1fa3 : e4bd [ 3] cpx zp7ftst_stat fc1fa5 : 08 [ 3]> php ;save status1fa6 : 08 [ 3]> php ;use stack to retrieve status1fa7 : 68 [ 4]> pla> cmp_flag fc1fa8 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne1faa : f002 [ 3]> beq skip1694> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1fac : 00 [ 7]> brk ; Use BRK to return to the monitor1fad : 1a > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 214---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------1fae : >skip1694>1fae : 28 [ 4]> plp ;restore status1faf : ca [ 2] dex1fb0 : e4bd [ 3] cpx zp7ftst_stat fzc1fb2 : 08 [ 3]> php ;save status1fb3 : 08 [ 3]> php ;use stack to retrieve status1fb4 : 68 [ 4]> pla> cmp_flag fzc1fb5 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne1fb7 : f002 [ 3]> beq skip1698> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1fb9 : 00 [ 7]> brk ; Use BRK to return to the monitor1fba : 1a > db test_num>1fbb : >skip1698>1fbb : 28 [ 4]> plp ;restore status1fbc : ca [ 2] dex1fbd : e4bd [ 3] cpx zp7ftst_x $7e,fn1fbf : 08 [ 3]> php ;save flags1fc0 : 08 [ 3]> php1fc1 : e07e [ 2]> cpx #$7e ;test result> trap_ne1fc3 : f002 [ 3]> beq skip1701> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1fc5 : 00 [ 7]> brk ; Use BRK to return to the monitor1fc6 : 1a > db test_num>1fc7 : >skip1701>1fc7 : 68 [ 4]> pla ;load status> cmp_flag fn1fc8 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne1fca : f002 [ 3]> beq skip1704> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1fcc : 00 [ 7]> brk ; Use BRK to return to the monitor1fcd : 1a > db test_num>1fce : >skip1704>1fce : 28 [ 4]> plp ;restore statusset_x $80,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 215---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff1fcf : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>1fd1 : 48 [ 3]> pha ;use stack to load status1fd2 : a280 [ 2]> ldx #$80 ;precharge index x1fd4 : 28 [ 4]> plp1fd5 : e4bd [ 3] cpx zp7ftst_stat ~fnz1fd7 : 08 [ 3]> php ;save status1fd8 : 08 [ 3]> php ;use stack to retrieve status1fd9 : 68 [ 4]> pla> cmp_flag ~fnz1fda : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne1fdc : f002 [ 3]> beq skip1710> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1fde : 00 [ 7]> brk ; Use BRK to return to the monitor1fdf : 1a > db test_num>1fe0 : >skip1710>1fe0 : 28 [ 4]> plp ;restore status1fe1 : ca [ 2] dex1fe2 : e4bd [ 3] cpx zp7ftst_stat ~fn1fe4 : 08 [ 3]> php ;save status1fe5 : 08 [ 3]> php ;use stack to retrieve status1fe6 : 68 [ 4]> pla> cmp_flag ~fn1fe7 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne1fe9 : f002 [ 3]> beq skip1714> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1feb : 00 [ 7]> brk ; Use BRK to return to the monitor1fec : 1a > db test_num>1fed : >skip1714>1fed : 28 [ 4]> plp ;restore status1fee : ca [ 2] dex1fef : e4bd [ 3] cpx zp7ftst_x $7e,~fzc1ff1 : 08 [ 3]> php ;save flags1ff2 : 08 [ 3]> php1ff3 : e07e [ 2]> cpx #$7e ;test result> trap_ne1ff5 : f002 [ 3]> beq skip1717> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 216---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction1ff7 : 00 [ 7]> brk ; Use BRK to return to the monitor1ff8 : 1a > db test_num>1ff9 : >skip1717>1ff9 : 68 [ 4]> pla ;load status> cmp_flag ~fzc1ffa : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne1ffc : f002 [ 4]> beq skip1720> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction1ffe : 00 [ 7]> brk ; Use BRK to return to the monitor1fff : 1a > db test_num>2000 : >skip1720>2000 : 28 [ 4]> plp ;restore statusset_x $80,0> load_flag 02001 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2003 : 48 [ 3]> pha ;use stack to load status2004 : a280 [ 2]> ldx #$80 ;precharge index x2006 : 28 [ 4]> plp2007 : ec0c02 [ 4] cpx abs7ftst_stat fc200a : 08 [ 3]> php ;save status200b : 08 [ 3]> php ;use stack to retrieve status200c : 68 [ 4]> pla> cmp_flag fc200d : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne200f : f002 [ 3]> beq skip1726> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2011 : 00 [ 7]> brk ; Use BRK to return to the monitor2012 : 1a > db test_num>2013 : >skip1726>2013 : 28 [ 4]> plp ;restore status2014 : ca [ 2] dex2015 : ec0c02 [ 4] cpx abs7ftst_stat fzc2018 : 08 [ 3]> php ;save status2019 : 08 [ 3]> php ;use stack to retrieve status201a : 68 [ 4]> plaAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 217---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> cmp_flag fzc201b : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne201d : f002 [ 3]> beq skip1730> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction201f : 00 [ 7]> brk ; Use BRK to return to the monitor2020 : 1a > db test_num>2021 : >skip1730>2021 : 28 [ 4]> plp ;restore status2022 : ca [ 2] dex2023 : ec0c02 [ 4] cpx abs7ftst_x $7e,fn2026 : 08 [ 3]> php ;save flags2027 : 08 [ 3]> php2028 : e07e [ 2]> cpx #$7e ;test result> trap_ne202a : f002 [ 3]> beq skip1733> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction202c : 00 [ 7]> brk ; Use BRK to return to the monitor202d : 1a > db test_num>202e : >skip1733>202e : 68 [ 4]> pla ;load status> cmp_flag fn202f : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2031 : f002 [ 3]> beq skip1736> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2033 : 00 [ 7]> brk ; Use BRK to return to the monitor2034 : 1a > db test_num>2035 : >skip1736>2035 : 28 [ 4]> plp ;restore statusset_x $80,$ff> load_flag $ff2036 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2038 : 48 [ 3]> pha ;use stack to load status2039 : a280 [ 2]> ldx #$80 ;precharge index x203b : 28 [ 4]> plp203c : ec0c02 [ 4] cpx abs7ftst_stat ~fnz203f : 08 [ 3]> php ;save statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 218---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2040 : 08 [ 3]> php ;use stack to retrieve status2041 : 68 [ 4]> pla> cmp_flag ~fnz2042 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne2044 : f002 [ 3]> beq skip1742> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2046 : 00 [ 7]> brk ; Use BRK to return to the monitor2047 : 1a > db test_num>2048 : >skip1742>2048 : 28 [ 4]> plp ;restore status2049 : ca [ 2] dex204a : ec0c02 [ 4] cpx abs7ftst_stat ~fn204d : 08 [ 3]> php ;save status204e : 08 [ 3]> php ;use stack to retrieve status204f : 68 [ 4]> pla> cmp_flag ~fn2050 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2052 : f002 [ 3]> beq skip1746> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2054 : 00 [ 7]> brk ; Use BRK to return to the monitor2055 : 1a > db test_num>2056 : >skip1746>2056 : 28 [ 4]> plp ;restore status2057 : ca [ 2] dex2058 : ec0c02 [ 4] cpx abs7ftst_x $7e,~fzc205b : 08 [ 3]> php ;save flags205c : 08 [ 3]> php205d : e07e [ 2]> cpx #$7e ;test result> trap_ne205f : f002 [ 3]> beq skip1749> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2061 : 00 [ 7]> brk ; Use BRK to return to the monitor2062 : 1a > db test_num>2063 : >skip1749>2063 : 68 [ 4]> pla ;load status> cmp_flag ~fzc2064 : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 219---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne2066 : f002 [ 3]> beq skip1752> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2068 : 00 [ 7]> brk ; Use BRK to return to the monitor2069 : 1a > db test_num>206a : >skip1752>206a : 28 [ 4]> plp ;restore statusset_x $80,0> load_flag 0206b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>206d : 48 [ 3]> pha ;use stack to load status206e : a280 [ 2]> ldx #$80 ;precharge index x2070 : 28 [ 4]> plp2071 : e07f [ 2] cpx #$7ftst_stat fc2073 : 08 [ 3]> php ;save status2074 : 08 [ 3]> php ;use stack to retrieve status2075 : 68 [ 4]> pla> cmp_flag fc2076 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne2078 : f002 [ 3]> beq skip1758> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction207a : 00 [ 7]> brk ; Use BRK to return to the monitor207b : 1a > db test_num>207c : >skip1758>207c : 28 [ 4]> plp ;restore status207d : ca [ 2] dex207e : e07f [ 2] cpx #$7ftst_stat fzc2080 : 08 [ 3]> php ;save status2081 : 08 [ 3]> php ;use stack to retrieve status2082 : 68 [ 4]> pla> cmp_flag fzc2083 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2085 : f002 [ 3]> beq skip1762> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2087 : 00 [ 7]> brk ; Use BRK to return to the monitor2088 : 1a > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 220---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2089 : >skip1762>2089 : 28 [ 4]> plp ;restore status208a : ca [ 2] dex208b : e07f [ 2] cpx #$7ftst_x $7e,fn208d : 08 [ 3]> php ;save flags208e : 08 [ 3]> php208f : e07e [ 2]> cpx #$7e ;test result> trap_ne2091 : f002 [ 3]> beq skip1765> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2093 : 00 [ 7]> brk ; Use BRK to return to the monitor2094 : 1a > db test_num>2095 : >skip1765>2095 : 68 [ 4]> pla ;load status> cmp_flag fn2096 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2098 : f002 [ 3]> beq skip1768> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction209a : 00 [ 7]> brk ; Use BRK to return to the monitor209b : 1a > db test_num>209c : >skip1768>209c : 28 [ 4]> plp ;restore statusset_x $80,$ff> load_flag $ff209d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>209f : 48 [ 3]> pha ;use stack to load status20a0 : a280 [ 2]> ldx #$80 ;precharge index x20a2 : 28 [ 4]> plp20a3 : e07f [ 2] cpx #$7ftst_stat ~fnz20a5 : 08 [ 3]> php ;save status20a6 : 08 [ 3]> php ;use stack to retrieve status20a7 : 68 [ 4]> pla> cmp_flag ~fnz20a8 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne20aa : f002 [ 3]> beq skip1774> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20ac : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 221---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------20ad : 1a > db test_num>20ae : >skip1774>20ae : 28 [ 4]> plp ;restore status20af : ca [ 2] dex20b0 : e07f [ 2] cpx #$7ftst_stat ~fn20b2 : 08 [ 3]> php ;save status20b3 : 08 [ 3]> php ;use stack to retrieve status20b4 : 68 [ 4]> pla> cmp_flag ~fn20b5 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne20b7 : f002 [ 3]> beq skip1778> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20b9 : 00 [ 7]> brk ; Use BRK to return to the monitor20ba : 1a > db test_num>20bb : >skip1778>20bb : 28 [ 4]> plp ;restore status20bc : ca [ 2] dex20bd : e07f [ 2] cpx #$7ftst_x $7e,~fzc20bf : 08 [ 3]> php ;save flags20c0 : 08 [ 3]> php20c1 : e07e [ 2]> cpx #$7e ;test result> trap_ne20c3 : f002 [ 3]> beq skip1781> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20c5 : 00 [ 7]> brk ; Use BRK to return to the monitor20c6 : 1a > db test_num>20c7 : >skip1781>20c7 : 68 [ 4]> pla ;load status> cmp_flag ~fzc20c8 : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne20ca : f002 [ 3]> beq skip1784> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20cc : 00 [ 7]> brk ; Use BRK to return to the monitor20cd : 1a > db test_num>20ce : >skip1784>20ce : 28 [ 4]> plp ;restore statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 222---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------next_test20cf : ad0002 [ 4]> lda test_case ;previous test20d2 : c91a [ 2]> cmp #test_num> trap_ne ;test is out of sequence20d4 : f002 [ 3]> beq skip1787> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20d6 : 00 [ 7]> brk ; Use BRK to return to the monitor20d7 : 1a > db test_num>20d8 : >skip1787>001b = >test_num = test_num + 120d8 : a91b [ 2]> lda #test_num ;*** this tests' number20da : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; CPY - zp / abs / #set_y $80,0> load_flag 020dd : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>20df : 48 [ 3]> pha ;use stack to load status20e0 : a080 [ 2]> ldy #$80 ;precharge index y20e2 : 28 [ 4]> plp20e3 : c4bd [ 3] cpy zp7ftst_stat fc20e5 : 08 [ 3]> php ;save status20e6 : 08 [ 3]> php ;use stack to retrieve status20e7 : 68 [ 4]> pla> cmp_flag fc20e8 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne20ea : f002 [ 3]> beq skip1793> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20ec : 00 [ 7]> brk ; Use BRK to return to the monitor20ed : 1b > db test_num>20ee : >skip1793>20ee : 28 [ 4]> plp ;restore status20ef : 88 [ 2] dey20f0 : c4bd [ 3] cpy zp7ftst_stat fzc20f2 : 08 [ 3]> php ;save status20f3 : 08 [ 3]> php ;use stack to retrieve status20f4 : 68 [ 4]> pla> cmp_flag fzcAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 223---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------20f5 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne20f7 : f002 [ 3]> beq skip1797> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction20f9 : 00 [ 7]> brk ; Use BRK to return to the monitor20fa : 1b > db test_num>20fb : >skip1797>20fb : 28 [ 4]> plp ;restore status20fc : 88 [ 2] dey20fd : c4bd [ 3] cpy zp7ftst_y $7e,fn20ff : 08 [ 3]> php ;save flags2100 : 08 [ 3]> php2101 : c07e [ 2]> cpy #$7e ;test result> trap_ne2103 : f002 [ 3]> beq skip1800> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2105 : 00 [ 7]> brk ; Use BRK to return to the monitor2106 : 1b > db test_num>2107 : >skip1800>2107 : 68 [ 4]> pla ;load status> cmp_flag fn2108 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne210a : f002 [ 3]> beq skip1803> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction210c : 00 [ 7]> brk ; Use BRK to return to the monitor210d : 1b > db test_num>210e : >skip1803>210e : 28 [ 4]> plp ;restore statusset_y $80,$ff> load_flag $ff210f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2111 : 48 [ 3]> pha ;use stack to load status2112 : a080 [ 2]> ldy #$80 ;precharge index y2114 : 28 [ 4]> plp2115 : c4bd [ 3] cpy zp7ftst_stat ~fnz2117 : 08 [ 3]> php ;save status2118 : 08 [ 3]> php ;use stack to retrieve statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 224---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2119 : 68 [ 4]> pla> cmp_flag ~fnz211a : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne211c : f002 [ 3]> beq skip1809> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction211e : 00 [ 7]> brk ; Use BRK to return to the monitor211f : 1b > db test_num>2120 : >skip1809>2120 : 28 [ 4]> plp ;restore status2121 : 88 [ 2] dey2122 : c4bd [ 3] cpy zp7ftst_stat ~fn2124 : 08 [ 3]> php ;save status2125 : 08 [ 3]> php ;use stack to retrieve status2126 : 68 [ 4]> pla> cmp_flag ~fn2127 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2129 : f002 [ 3]> beq skip1813> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction212b : 00 [ 7]> brk ; Use BRK to return to the monitor212c : 1b > db test_num>212d : >skip1813>212d : 28 [ 4]> plp ;restore status212e : 88 [ 2] dey212f : c4bd [ 3] cpy zp7ftst_y $7e,~fzc2131 : 08 [ 3]> php ;save flags2132 : 08 [ 3]> php2133 : c07e [ 2]> cpy #$7e ;test result> trap_ne2135 : f002 [ 3]> beq skip1816> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2137 : 00 [ 7]> brk ; Use BRK to return to the monitor2138 : 1b > db test_num>2139 : >skip1816>2139 : 68 [ 4]> pla ;load status> cmp_flag ~fzc213a : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 225---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------213c : f002 [ 3]> beq skip1819> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction213e : 00 [ 7]> brk ; Use BRK to return to the monitor213f : 1b > db test_num>2140 : >skip1819>2140 : 28 [ 4]> plp ;restore statusset_y $80,0> load_flag 02141 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2143 : 48 [ 3]> pha ;use stack to load status2144 : a080 [ 2]> ldy #$80 ;precharge index y2146 : 28 [ 4]> plp2147 : cc0c02 [ 4] cpy abs7ftst_stat fc214a : 08 [ 3]> php ;save status214b : 08 [ 3]> php ;use stack to retrieve status214c : 68 [ 4]> pla> cmp_flag fc214d : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne214f : f002 [ 3]> beq skip1825> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2151 : 00 [ 7]> brk ; Use BRK to return to the monitor2152 : 1b > db test_num>2153 : >skip1825>2153 : 28 [ 4]> plp ;restore status2154 : 88 [ 2] dey2155 : cc0c02 [ 4] cpy abs7ftst_stat fzc2158 : 08 [ 3]> php ;save status2159 : 08 [ 3]> php ;use stack to retrieve status215a : 68 [ 4]> pla> cmp_flag fzc215b : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne215d : f002 [ 3]> beq skip1829> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction215f : 00 [ 7]> brk ; Use BRK to return to the monitor2160 : 1b > db test_num>2161 : >skip1829AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 226---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2161 : 28 [ 4]> plp ;restore status2162 : 88 [ 2] dey2163 : cc0c02 [ 4] cpy abs7ftst_y $7e,fn2166 : 08 [ 3]> php ;save flags2167 : 08 [ 3]> php2168 : c07e [ 2]> cpy #$7e ;test result> trap_ne216a : f002 [ 3]> beq skip1832> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction216c : 00 [ 7]> brk ; Use BRK to return to the monitor216d : 1b > db test_num>216e : >skip1832>216e : 68 [ 4]> pla ;load status> cmp_flag fn216f : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2171 : f002 [ 3]> beq skip1835> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2173 : 00 [ 7]> brk ; Use BRK to return to the monitor2174 : 1b > db test_num>2175 : >skip1835>2175 : 28 [ 4]> plp ;restore statusset_y $80,$ff> load_flag $ff2176 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2178 : 48 [ 3]> pha ;use stack to load status2179 : a080 [ 2]> ldy #$80 ;precharge index y217b : 28 [ 4]> plp217c : cc0c02 [ 4] cpy abs7ftst_stat ~fnz217f : 08 [ 3]> php ;save status2180 : 08 [ 3]> php ;use stack to retrieve status2181 : 68 [ 4]> pla> cmp_flag ~fnz2182 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne2184 : f002 [ 3]> beq skip1841> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2186 : 00 [ 7]> brk ; Use BRK to return to the monitor2187 : 1b > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 227---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2188 : >skip1841>2188 : 28 [ 4]> plp ;restore status2189 : 88 [ 2] dey218a : cc0c02 [ 4] cpy abs7ftst_stat ~fn218d : 08 [ 3]> php ;save status218e : 08 [ 3]> php ;use stack to retrieve status218f : 68 [ 4]> pla> cmp_flag ~fn2190 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2192 : f002 [ 3]> beq skip1845> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2194 : 00 [ 7]> brk ; Use BRK to return to the monitor2195 : 1b > db test_num>2196 : >skip1845>2196 : 28 [ 4]> plp ;restore status2197 : 88 [ 2] dey2198 : cc0c02 [ 4] cpy abs7ftst_y $7e,~fzc219b : 08 [ 3]> php ;save flags219c : 08 [ 3]> php219d : c07e [ 2]> cpy #$7e ;test result> trap_ne219f : f002 [ 3]> beq skip1848> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21a1 : 00 [ 7]> brk ; Use BRK to return to the monitor21a2 : 1b > db test_num>21a3 : >skip1848>21a3 : 68 [ 4]> pla ;load status> cmp_flag ~fzc21a4 : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne21a6 : f002 [ 3]> beq skip1851> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21a8 : 00 [ 7]> brk ; Use BRK to return to the monitor21a9 : 1b > db test_num>21aa : >skip1851>21aa : 28 [ 4]> plp ;restore statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 228---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------set_y $80,0> load_flag 021ab : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>21ad : 48 [ 3]> pha ;use stack to load status21ae : a080 [ 2]> ldy #$80 ;precharge index y21b0 : 28 [ 4]> plp21b1 : c07f [ 2] cpy #$7ftst_stat fc21b3 : 08 [ 3]> php ;save status21b4 : 08 [ 3]> php ;use stack to retrieve status21b5 : 68 [ 4]> pla> cmp_flag fc21b6 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne21b8 : f002 [ 3]> beq skip1857> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21ba : 00 [ 7]> brk ; Use BRK to return to the monitor21bb : 1b > db test_num>21bc : >skip1857>21bc : 28 [ 4]> plp ;restore status21bd : 88 [ 2] dey21be : c07f [ 2] cpy #$7ftst_stat fzc21c0 : 08 [ 3]> php ;save status21c1 : 08 [ 3]> php ;use stack to retrieve status21c2 : 68 [ 4]> pla> cmp_flag fzc21c3 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne21c5 : f002 [ 3]> beq skip1861> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21c7 : 00 [ 7]> brk ; Use BRK to return to the monitor21c8 : 1b > db test_num>21c9 : >skip1861>21c9 : 28 [ 4]> plp ;restore status21ca : 88 [ 2] dey21cb : c07f [ 2] cpy #$7ftst_y $7e,fn21cd : 08 [ 3]> php ;save flags21ce : 08 [ 3]> php21cf : c07e [ 2]> cpy #$7e ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 229---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------21d1 : f002 [ 3]> beq skip1864> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21d3 : 00 [ 7]> brk ; Use BRK to return to the monitor21d4 : 1b > db test_num>21d5 : >skip1864>21d5 : 68 [ 4]> pla ;load status> cmp_flag fn21d6 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne21d8 : f002 [ 3]> beq skip1867> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21da : 00 [ 7]> brk ; Use BRK to return to the monitor21db : 1b > db test_num>21dc : >skip1867>21dc : 28 [ 4]> plp ;restore statusset_y $80,$ff> load_flag $ff21dd : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>21df : 48 [ 3]> pha ;use stack to load status21e0 : a080 [ 2]> ldy #$80 ;precharge index y21e2 : 28 [ 4]> plp21e3 : c07f [ 2] cpy #$7ftst_stat ~fnz21e5 : 08 [ 3]> php ;save status21e6 : 08 [ 3]> php ;use stack to retrieve status21e7 : 68 [ 4]> pla> cmp_flag ~fnz21e8 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne21ea : f002 [ 3]> beq skip1873> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21ec : 00 [ 7]> brk ; Use BRK to return to the monitor21ed : 1b > db test_num>21ee : >skip1873>21ee : 28 [ 4]> plp ;restore status21ef : 88 [ 2] dey21f0 : c07f [ 2] cpy #$7ftst_stat ~fn21f2 : 08 [ 3]> php ;save status21f3 : 08 [ 3]> php ;use stack to retrieve statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 230---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------21f4 : 68 [ 4]> pla> cmp_flag ~fn21f5 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne21f7 : f002 [ 3]> beq skip1877> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction21f9 : 00 [ 7]> brk ; Use BRK to return to the monitor21fa : 1b > db test_num>21fb : >skip1877>21fb : 28 [ 4]> plp ;restore status21fc : 88 [ 2] dey21fd : c07f [ 2] cpy #$7ftst_y $7e,~fzc21ff : 08 [ 3]> php ;save flags2200 : 08 [ 3]> php2201 : c07e [ 2]> cpy #$7e ;test result> trap_ne2203 : f002 [ 3]> beq skip1880> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2205 : 00 [ 7]> brk ; Use BRK to return to the monitor2206 : 1b > db test_num>2207 : >skip1880>2207 : 68 [ 4]> pla ;load status> cmp_flag ~fzc2208 : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne220a : f002 [ 3]> beq skip1883> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction220c : 00 [ 7]> brk ; Use BRK to return to the monitor220d : 1b > db test_num>220e : >skip1883>220e : 28 [ 4]> plp ;restore statusnext_test220f : ad0002 [ 4]> lda test_case ;previous test2212 : c91b [ 2]> cmp #test_num> trap_ne ;test is out of sequence2214 : f002 [ 3]> beq skip1886> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2216 : 00 [ 7]> brk ; Use BRK to return to the monitor2217 : 1b > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 231---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2218 : >skip1886>001c = >test_num = test_num + 12218 : a91c [ 2]> lda #test_num ;*** this tests' number221a : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; CMP - zp / abs / #set_a $80,0> load_flag 0221d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>221f : 48 [ 3]> pha ;use stack to load status2220 : a980 [ 2]> lda #$80 ;precharge accu2222 : 28 [ 4]> plp2223 : c5bd [ 3] cmp zp7ftst_a $80,fc2225 : 08 [ 3]> php ;save flags2226 : 08 [ 3]> php2227 : c980 [ 2]> cmp #$80 ;test result> trap_ne2229 : f002 [ 3]> beq skip1891> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction222b : 00 [ 7]> brk ; Use BRK to return to the monitor222c : 1c > db test_num>222d : >skip1891>222d : 68 [ 4]> pla ;load status> cmp_flag fc222e : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne2230 : f002 [ 3]> beq skip1894> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2232 : 00 [ 7]> brk ; Use BRK to return to the monitor2233 : 1c > db test_num>2234 : >skip1894>2234 : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 02235 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2237 : 48 [ 3]> pha ;use stack to load status2238 : a97f [ 2]> lda #$7f ;precharge accu223a : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 232---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------223b : c5bd [ 3] cmp zp7ftst_a $7f,fzc223d : 08 [ 3]> php ;save flags223e : 08 [ 3]> php223f : c97f [ 2]> cmp #$7f ;test result> trap_ne2241 : f002 [ 3]> beq skip1899> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2243 : 00 [ 7]> brk ; Use BRK to return to the monitor2244 : 1c > db test_num>2245 : >skip1899>2245 : 68 [ 4]> pla ;load status> cmp_flag fzc2246 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2248 : f002 [ 3]> beq skip1902> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction224a : 00 [ 7]> brk ; Use BRK to return to the monitor224b : 1c > db test_num>224c : >skip1902>224c : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 0224d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>224f : 48 [ 3]> pha ;use stack to load status2250 : a97e [ 2]> lda #$7e ;precharge accu2252 : 28 [ 4]> plp2253 : c5bd [ 3] cmp zp7ftst_a $7e,fn2255 : 08 [ 3]> php ;save flags2256 : 08 [ 3]> php2257 : c97e [ 2]> cmp #$7e ;test result> trap_ne2259 : f002 [ 3]> beq skip1907> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction225b : 00 [ 7]> brk ; Use BRK to return to the monitor225c : 1c > db test_num>225d : >skip1907>225d : 68 [ 4]> pla ;load status> cmp_flag fn225e : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 233---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne2260 : f002 [ 3]> beq skip1910> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2262 : 00 [ 7]> brk ; Use BRK to return to the monitor2263 : 1c > db test_num>2264 : >skip1910>2264 : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff2265 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2267 : 48 [ 3]> pha ;use stack to load status2268 : a980 [ 2]> lda #$80 ;precharge accu226a : 28 [ 4]> plp226b : c5bd [ 3] cmp zp7ftst_a $80,~fnz226d : 08 [ 3]> php ;save flags226e : 08 [ 3]> php226f : c980 [ 2]> cmp #$80 ;test result> trap_ne2271 : f002 [ 3]> beq skip1915> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2273 : 00 [ 7]> brk ; Use BRK to return to the monitor2274 : 1c > db test_num>2275 : >skip1915>2275 : 68 [ 4]> pla ;load status> cmp_flag ~fnz2276 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne2278 : f002 [ 3]> beq skip1918> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction227a : 00 [ 7]> brk ; Use BRK to return to the monitor227b : 1c > db test_num>227c : >skip1918>227c : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff227d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>227f : 48 [ 3]> pha ;use stack to load status2280 : a97f [ 2]> lda #$7f ;precharge accu2282 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 234---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2283 : c5bd [ 3] cmp zp7ftst_a $7f,~fn2285 : 08 [ 3]> php ;save flags2286 : 08 [ 3]> php2287 : c97f [ 2]> cmp #$7f ;test result> trap_ne2289 : f002 [ 3]> beq skip1923> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction228b : 00 [ 7]> brk ; Use BRK to return to the monitor228c : 1c > db test_num>228d : >skip1923>228d : 68 [ 4]> pla ;load status> cmp_flag ~fn228e : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2290 : f002 [ 3]> beq skip1926> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2292 : 00 [ 7]> brk ; Use BRK to return to the monitor2293 : 1c > db test_num>2294 : >skip1926>2294 : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff2295 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2297 : 48 [ 3]> pha ;use stack to load status2298 : a97e [ 2]> lda #$7e ;precharge accu229a : 28 [ 4]> plp229b : c5bd [ 3] cmp zp7ftst_a $7e,~fzc229d : 08 [ 3]> php ;save flags229e : 08 [ 3]> php229f : c97e [ 2]> cmp #$7e ;test result> trap_ne22a1 : f002 [ 3]> beq skip1931> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22a3 : 00 [ 7]> brk ; Use BRK to return to the monitor22a4 : 1c > db test_num>22a5 : >skip1931>22a5 : 68 [ 4]> pla ;load status> cmp_flag ~fzc22a6 : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 235---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->> trap_ne22a8 : f002 [ 3]> beq skip1934> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22aa : 00 [ 7]> brk ; Use BRK to return to the monitor22ab : 1c > db test_num>22ac : >skip1934>22ac : 28 [ 4]> plp ;restore statusset_a $80,0> load_flag 022ad : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>22af : 48 [ 3]> pha ;use stack to load status22b0 : a980 [ 2]> lda #$80 ;precharge accu22b2 : 28 [ 4]> plp22b3 : cd0c02 [ 4] cmp abs7ftst_a $80,fc22b6 : 08 [ 3]> php ;save flags22b7 : 08 [ 3]> php22b8 : c980 [ 2]> cmp #$80 ;test result> trap_ne22ba : f002 [ 3]> beq skip1939> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22bc : 00 [ 7]> brk ; Use BRK to return to the monitor22bd : 1c > db test_num>22be : >skip1939>22be : 68 [ 4]> pla ;load status> cmp_flag fc22bf : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne22c1 : f002 [ 3]> beq skip1942> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22c3 : 00 [ 7]> brk ; Use BRK to return to the monitor22c4 : 1c > db test_num>22c5 : >skip1942>22c5 : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 022c6 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>22c8 : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 236---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------22c9 : a97f [ 2]> lda #$7f ;precharge accu22cb : 28 [ 4]> plp22cc : cd0c02 [ 4] cmp abs7ftst_a $7f,fzc22cf : 08 [ 3]> php ;save flags22d0 : 08 [ 3]> php22d1 : c97f [ 2]> cmp #$7f ;test result> trap_ne22d3 : f002 [ 3]> beq skip1947> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22d5 : 00 [ 7]> brk ; Use BRK to return to the monitor22d6 : 1c > db test_num>22d7 : >skip1947>22d7 : 68 [ 4]> pla ;load status> cmp_flag fzc22d8 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne22da : f002 [ 3]> beq skip1950> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22dc : 00 [ 7]> brk ; Use BRK to return to the monitor22dd : 1c > db test_num>22de : >skip1950>22de : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 022df : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>22e1 : 48 [ 3]> pha ;use stack to load status22e2 : a97e [ 2]> lda #$7e ;precharge accu22e4 : 28 [ 4]> plp22e5 : cd0c02 [ 4] cmp abs7ftst_a $7e,fn22e8 : 08 [ 3]> php ;save flags22e9 : 08 [ 3]> php22ea : c97e [ 2]> cmp #$7e ;test result> trap_ne22ec : f002 [ 3]> beq skip1955> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22ee : 00 [ 7]> brk ; Use BRK to return to the monitor22ef : 1c > db test_num>22f0 : >skip1955>22f0 : 68 [ 4]> pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 237---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> cmp_flag fn22f1 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne22f3 : f002 [ 3]> beq skip1958> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction22f5 : 00 [ 7]> brk ; Use BRK to return to the monitor22f6 : 1c > db test_num>22f7 : >skip1958>22f7 : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff22f8 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>22fa : 48 [ 3]> pha ;use stack to load status22fb : a980 [ 2]> lda #$80 ;precharge accu22fd : 28 [ 4]> plp22fe : cd0c02 [ 4] cmp abs7ftst_a $80,~fnz2301 : 08 [ 3]> php ;save flags2302 : 08 [ 3]> php2303 : c980 [ 2]> cmp #$80 ;test result> trap_ne2305 : f002 [ 3]> beq skip1963> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2307 : 00 [ 7]> brk ; Use BRK to return to the monitor2308 : 1c > db test_num>2309 : >skip1963>2309 : 68 [ 4]> pla ;load status> cmp_flag ~fnz230a : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne230c : f002 [ 3]> beq skip1966> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction230e : 00 [ 7]> brk ; Use BRK to return to the monitor230f : 1c > db test_num>2310 : >skip1966>2310 : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff2311 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 238---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2313 : 48 [ 3]> pha ;use stack to load status2314 : a97f [ 2]> lda #$7f ;precharge accu2316 : 28 [ 4]> plp2317 : cd0c02 [ 4] cmp abs7ftst_a $7f,~fn231a : 08 [ 3]> php ;save flags231b : 08 [ 3]> php231c : c97f [ 2]> cmp #$7f ;test result> trap_ne231e : f002 [ 3]> beq skip1971> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2320 : 00 [ 7]> brk ; Use BRK to return to the monitor2321 : 1c > db test_num>2322 : >skip1971>2322 : 68 [ 4]> pla ;load status> cmp_flag ~fn2323 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2325 : f002 [ 3]> beq skip1974> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2327 : 00 [ 7]> brk ; Use BRK to return to the monitor2328 : 1c > db test_num>2329 : >skip1974>2329 : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff232a : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>232c : 48 [ 3]> pha ;use stack to load status232d : a97e [ 2]> lda #$7e ;precharge accu232f : 28 [ 4]> plp2330 : cd0c02 [ 4] cmp abs7ftst_a $7e,~fzc2333 : 08 [ 3]> php ;save flags2334 : 08 [ 3]> php2335 : c97e [ 2]> cmp #$7e ;test result> trap_ne2337 : f002 [ 3]> beq skip1979> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2339 : 00 [ 7]> brk ; Use BRK to return to the monitor233a : 1c > db test_num>233b : >skip1979>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 239---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------233b : 68 [ 4]> pla ;load status> cmp_flag ~fzc233c : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne233e : f002 [ 3]> beq skip1982> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2340 : 00 [ 7]> brk ; Use BRK to return to the monitor2341 : 1c > db test_num>2342 : >skip1982>2342 : 28 [ 4]> plp ;restore statusset_a $80,0> load_flag 02343 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2345 : 48 [ 3]> pha ;use stack to load status2346 : a980 [ 2]> lda #$80 ;precharge accu2348 : 28 [ 4]> plp2349 : c97f [ 2] cmp #$7ftst_a $80,fc234b : 08 [ 3]> php ;save flags234c : 08 [ 3]> php234d : c980 [ 2]> cmp #$80 ;test result> trap_ne234f : f002 [ 3]> beq skip1987> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2351 : 00 [ 7]> brk ; Use BRK to return to the monitor2352 : 1c > db test_num>2353 : >skip1987>2353 : 68 [ 4]> pla ;load status> cmp_flag fc2354 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne2356 : f002 [ 3]> beq skip1990> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2358 : 00 [ 7]> brk ; Use BRK to return to the monitor2359 : 1c > db test_num>235a : >skip1990>235a : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 240---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------235b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>235d : 48 [ 3]> pha ;use stack to load status235e : a97f [ 2]> lda #$7f ;precharge accu2360 : 28 [ 4]> plp2361 : c97f [ 2] cmp #$7ftst_a $7f,fzc2363 : 08 [ 3]> php ;save flags2364 : 08 [ 3]> php2365 : c97f [ 2]> cmp #$7f ;test result> trap_ne2367 : f002 [ 3]> beq skip1995> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2369 : 00 [ 7]> brk ; Use BRK to return to the monitor236a : 1c > db test_num>236b : >skip1995>236b : 68 [ 4]> pla ;load status> cmp_flag fzc236c : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne236e : f002 [ 3]> beq skip1998> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2370 : 00 [ 7]> brk ; Use BRK to return to the monitor2371 : 1c > db test_num>2372 : >skip1998>2372 : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 02373 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2375 : 48 [ 3]> pha ;use stack to load status2376 : a97e [ 2]> lda #$7e ;precharge accu2378 : 28 [ 4]> plp2379 : c97f [ 2] cmp #$7ftst_a $7e,fn237b : 08 [ 3]> php ;save flags237c : 08 [ 3]> php237d : c97e [ 2]> cmp #$7e ;test result> trap_ne237f : f002 [ 3]> beq skip2003> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2381 : 00 [ 7]> brk ; Use BRK to return to the monitor2382 : 1c > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 241---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2383 : >skip2003>2383 : 68 [ 4]> pla ;load status> cmp_flag fn2384 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2386 : f002 [ 3]> beq skip2006> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2388 : 00 [ 7]> brk ; Use BRK to return to the monitor2389 : 1c > db test_num>238a : >skip2006>238a : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff238b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>238d : 48 [ 3]> pha ;use stack to load status238e : a980 [ 2]> lda #$80 ;precharge accu2390 : 28 [ 4]> plp2391 : c97f [ 2] cmp #$7ftst_a $80,~fnz2393 : 08 [ 3]> php ;save flags2394 : 08 [ 3]> php2395 : c980 [ 2]> cmp #$80 ;test result> trap_ne2397 : f002 [ 3]> beq skip2011> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2399 : 00 [ 7]> brk ; Use BRK to return to the monitor239a : 1c > db test_num>239b : >skip2011>239b : 68 [ 4]> pla ;load status> cmp_flag ~fnz239c : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne239e : f002 [ 3]> beq skip2014> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23a0 : 00 [ 7]> brk ; Use BRK to return to the monitor23a1 : 1c > db test_num>23a2 : >skip2014>23a2 : 28 [ 4]> plp ;restore statusset_a $7f,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 242---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff23a3 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>23a5 : 48 [ 3]> pha ;use stack to load status23a6 : a97f [ 2]> lda #$7f ;precharge accu23a8 : 28 [ 4]> plp23a9 : c97f [ 2] cmp #$7ftst_a $7f,~fn23ab : 08 [ 3]> php ;save flags23ac : 08 [ 3]> php23ad : c97f [ 2]> cmp #$7f ;test result> trap_ne23af : f002 [ 3]> beq skip2019> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23b1 : 00 [ 7]> brk ; Use BRK to return to the monitor23b2 : 1c > db test_num>23b3 : >skip2019>23b3 : 68 [ 4]> pla ;load status> cmp_flag ~fn23b4 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne23b6 : f002 [ 3]> beq skip2022> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23b8 : 00 [ 7]> brk ; Use BRK to return to the monitor23b9 : 1c > db test_num>23ba : >skip2022>23ba : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff23bb : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>23bd : 48 [ 3]> pha ;use stack to load status23be : a97e [ 2]> lda #$7e ;precharge accu23c0 : 28 [ 4]> plp23c1 : c97f [ 2] cmp #$7ftst_a $7e,~fzc23c3 : 08 [ 3]> php ;save flags23c4 : 08 [ 3]> php23c5 : c97e [ 2]> cmp #$7e ;test result> trap_ne23c7 : f002 [ 3]> beq skip2027> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23c9 : 00 [ 7]> brk ; Use BRK to return to the monitor23ca : 1c > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 243---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->23cb : >skip2027>23cb : 68 [ 4]> pla ;load status> cmp_flag ~fzc23cc : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne23ce : f002 [ 3]> beq skip2030> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23d0 : 00 [ 7]> brk ; Use BRK to return to the monitor23d1 : 1c > db test_num>23d2 : >skip2030>23d2 : 28 [ 4]> plp ;restore status23d3 : a204 [ 2] ldx #4 ;with indexing by Xset_a $80,0> load_flag 023d5 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>23d7 : 48 [ 3]> pha ;use stack to load status23d8 : a980 [ 2]> lda #$80 ;precharge accu23da : 28 [ 4]> plp23db : d5b9 [ 4] cmp zp1,xtst_a $80,fc23dd : 08 [ 3]> php ;save flags23de : 08 [ 3]> php23df : c980 [ 2]> cmp #$80 ;test result> trap_ne23e1 : f002 [ 3]> beq skip2035> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23e3 : 00 [ 7]> brk ; Use BRK to return to the monitor23e4 : 1c > db test_num>23e5 : >skip2035>23e5 : 68 [ 4]> pla ;load status> cmp_flag fc23e6 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne23e8 : f002 [ 3]> beq skip2038> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23ea : 00 [ 7]> brk ; Use BRK to return to the monitor23eb : 1c > db test_num>23ec : >skip2038>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 244---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------23ec : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 023ed : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>23ef : 48 [ 3]> pha ;use stack to load status23f0 : a97f [ 2]> lda #$7f ;precharge accu23f2 : 28 [ 4]> plp23f3 : d5b9 [ 4] cmp zp1,xtst_a $7f,fzc23f5 : 08 [ 3]> php ;save flags23f6 : 08 [ 3]> php23f7 : c97f [ 2]> cmp #$7f ;test result> trap_ne23f9 : f002 [ 3]> beq skip2043> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction23fb : 00 [ 7]> brk ; Use BRK to return to the monitor23fc : 1c > db test_num>23fd : >skip2043>23fd : 68 [ 4]> pla ;load status> cmp_flag fzc23fe : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2400 : f002 [ 3]> beq skip2046> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2402 : 00 [ 7]> brk ; Use BRK to return to the monitor2403 : 1c > db test_num>2404 : >skip2046>2404 : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 02405 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2407 : 48 [ 3]> pha ;use stack to load status2408 : a97e [ 2]> lda #$7e ;precharge accu240a : 28 [ 4]> plp240b : d5b9 [ 4] cmp zp1,xtst_a $7e,fn240d : 08 [ 3]> php ;save flags240e : 08 [ 3]> php240f : c97e [ 2]> cmp #$7e ;test result> trap_ne2411 : f002 [ 3]> beq skip2051> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 245---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction2413 : 00 [ 7]> brk ; Use BRK to return to the monitor2414 : 1c > db test_num>2415 : >skip2051>2415 : 68 [ 4]> pla ;load status> cmp_flag fn2416 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2418 : f002 [ 3]> beq skip2054> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction241a : 00 [ 7]> brk ; Use BRK to return to the monitor241b : 1c > db test_num>241c : >skip2054>241c : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff241d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>241f : 48 [ 3]> pha ;use stack to load status2420 : a980 [ 2]> lda #$80 ;precharge accu2422 : 28 [ 4]> plp2423 : d5b9 [ 4] cmp zp1,xtst_a $80,~fnz2425 : 08 [ 3]> php ;save flags2426 : 08 [ 3]> php2427 : c980 [ 2]> cmp #$80 ;test result> trap_ne2429 : f002 [ 3]> beq skip2059> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction242b : 00 [ 7]> brk ; Use BRK to return to the monitor242c : 1c > db test_num>242d : >skip2059>242d : 68 [ 4]> pla ;load status> cmp_flag ~fnz242e : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne2430 : f002 [ 3]> beq skip2062> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2432 : 00 [ 7]> brk ; Use BRK to return to the monitor2433 : 1c > db test_num>2434 : >skip2062AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 246---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2434 : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff2435 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2437 : 48 [ 3]> pha ;use stack to load status2438 : a97f [ 2]> lda #$7f ;precharge accu243a : 28 [ 4]> plp243b : d5b9 [ 4] cmp zp1,xtst_a $7f,~fn243d : 08 [ 3]> php ;save flags243e : 08 [ 3]> php243f : c97f [ 2]> cmp #$7f ;test result> trap_ne2441 : f002 [ 3]> beq skip2067> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2443 : 00 [ 7]> brk ; Use BRK to return to the monitor2444 : 1c > db test_num>2445 : >skip2067>2445 : 68 [ 4]> pla ;load status> cmp_flag ~fn2446 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2448 : f002 [ 3]> beq skip2070> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction244a : 00 [ 7]> brk ; Use BRK to return to the monitor244b : 1c > db test_num>244c : >skip2070>244c : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff244d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>244f : 48 [ 3]> pha ;use stack to load status2450 : a97e [ 2]> lda #$7e ;precharge accu2452 : 28 [ 4]> plp2453 : d5b9 [ 4] cmp zp1,xtst_a $7e,~fzc2455 : 08 [ 3]> php ;save flags2456 : 08 [ 3]> php2457 : c97e [ 2]> cmp #$7e ;test result> trap_ne2459 : f002 [ 3]> beq skip2075AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 247---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction245b : 00 [ 7]> brk ; Use BRK to return to the monitor245c : 1c > db test_num>245d : >skip2075>245d : 68 [ 4]> pla ;load status> cmp_flag ~fzc245e : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2460 : f002 [ 3]> beq skip2078> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2462 : 00 [ 7]> brk ; Use BRK to return to the monitor2463 : 1c > db test_num>2464 : >skip2078>2464 : 28 [ 4]> plp ;restore statusset_a $80,0> load_flag 02465 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2467 : 48 [ 3]> pha ;use stack to load status2468 : a980 [ 2]> lda #$80 ;precharge accu246a : 28 [ 4]> plp246b : dd0802 [ 4] cmp abs1,xtst_a $80,fc246e : 08 [ 3]> php ;save flags246f : 08 [ 3]> php2470 : c980 [ 2]> cmp #$80 ;test result> trap_ne2472 : f002 [ 3]> beq skip2083> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2474 : 00 [ 7]> brk ; Use BRK to return to the monitor2475 : 1c > db test_num>2476 : >skip2083>2476 : 68 [ 4]> pla ;load status> cmp_flag fc2477 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne2479 : f002 [ 3]> beq skip2086> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction247b : 00 [ 7]> brk ; Use BRK to return to the monitor247c : 1c > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 248---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->247d : >skip2086>247d : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 0247e : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2480 : 48 [ 3]> pha ;use stack to load status2481 : a97f [ 2]> lda #$7f ;precharge accu2483 : 28 [ 4]> plp2484 : dd0802 [ 4] cmp abs1,xtst_a $7f,fzc2487 : 08 [ 3]> php ;save flags2488 : 08 [ 3]> php2489 : c97f [ 2]> cmp #$7f ;test result> trap_ne248b : f002 [ 3]> beq skip2091> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction248d : 00 [ 7]> brk ; Use BRK to return to the monitor248e : 1c > db test_num>248f : >skip2091>248f : 68 [ 4]> pla ;load status> cmp_flag fzc2490 : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2492 : f002 [ 3]> beq skip2094> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2494 : 00 [ 7]> brk ; Use BRK to return to the monitor2495 : 1c > db test_num>2496 : >skip2094>2496 : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 02497 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2499 : 48 [ 3]> pha ;use stack to load status249a : a97e [ 2]> lda #$7e ;precharge accu249c : 28 [ 4]> plp249d : dd0802 [ 4] cmp abs1,xtst_a $7e,fn24a0 : 08 [ 3]> php ;save flags24a1 : 08 [ 3]> php24a2 : c97e [ 2]> cmp #$7e ;test resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 249---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne24a4 : f002 [ 3]> beq skip2099> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24a6 : 00 [ 7]> brk ; Use BRK to return to the monitor24a7 : 1c > db test_num>24a8 : >skip2099>24a8 : 68 [ 4]> pla ;load status> cmp_flag fn24a9 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne24ab : f002 [ 3]> beq skip2102> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24ad : 00 [ 7]> brk ; Use BRK to return to the monitor24ae : 1c > db test_num>24af : >skip2102>24af : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff24b0 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>24b2 : 48 [ 3]> pha ;use stack to load status24b3 : a980 [ 2]> lda #$80 ;precharge accu24b5 : 28 [ 4]> plp24b6 : dd0802 [ 4] cmp abs1,xtst_a $80,~fnz24b9 : 08 [ 3]> php ;save flags24ba : 08 [ 3]> php24bb : c980 [ 2]> cmp #$80 ;test result> trap_ne24bd : f002 [ 3]> beq skip2107> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24bf : 00 [ 7]> brk ; Use BRK to return to the monitor24c0 : 1c > db test_num>24c1 : >skip2107>24c1 : 68 [ 4]> pla ;load status> cmp_flag ~fnz24c2 : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne24c4 : f002 [ 3]> beq skip2110> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24c6 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 250---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------24c7 : 1c > db test_num>24c8 : >skip2110>24c8 : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff24c9 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>24cb : 48 [ 3]> pha ;use stack to load status24cc : a97f [ 2]> lda #$7f ;precharge accu24ce : 28 [ 4]> plp24cf : dd0802 [ 4] cmp abs1,xtst_a $7f,~fn24d2 : 08 [ 3]> php ;save flags24d3 : 08 [ 3]> php24d4 : c97f [ 2]> cmp #$7f ;test result> trap_ne24d6 : f002 [ 3]> beq skip2115> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24d8 : 00 [ 7]> brk ; Use BRK to return to the monitor24d9 : 1c > db test_num>24da : >skip2115>24da : 68 [ 4]> pla ;load status> cmp_flag ~fn24db : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne24dd : f002 [ 3]> beq skip2118> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24df : 00 [ 7]> brk ; Use BRK to return to the monitor24e0 : 1c > db test_num>24e1 : >skip2118>24e1 : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff24e2 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>24e4 : 48 [ 3]> pha ;use stack to load status24e5 : a97e [ 2]> lda #$7e ;precharge accu24e7 : 28 [ 4]> plp24e8 : dd0802 [ 4] cmp abs1,xtst_a $7e,~fzc24eb : 08 [ 3]> php ;save flags24ec : 08 [ 3]> phpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 251---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------24ed : c97e [ 2]> cmp #$7e ;test result> trap_ne24ef : f002 [ 3]> beq skip2123> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24f1 : 00 [ 7]> brk ; Use BRK to return to the monitor24f2 : 1c > db test_num>24f3 : >skip2123>24f3 : 68 [ 4]> pla ;load status> cmp_flag ~fzc24f4 : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne24f6 : f002 [ 3]> beq skip2126> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction24f8 : 00 [ 7]> brk ; Use BRK to return to the monitor24f9 : 1c > db test_num>24fa : >skip2126>24fa : 28 [ 4]> plp ;restore status24fb : a004 [ 2] ldy #4 ;with indexing by Y24fd : a208 [ 2] ldx #8 ;with indexed indirectset_a $80,0> load_flag 024ff : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2501 : 48 [ 3]> pha ;use stack to load status2502 : a980 [ 2]> lda #$80 ;precharge accu2504 : 28 [ 4]> plp2505 : d90802 [ 4] cmp abs1,ytst_a $80,fc2508 : 08 [ 3]> php ;save flags2509 : 08 [ 3]> php250a : c980 [ 2]> cmp #$80 ;test result> trap_ne250c : f002 [ 3]> beq skip2131> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction250e : 00 [ 7]> brk ; Use BRK to return to the monitor250f : 1c > db test_num>2510 : >skip2131>2510 : 68 [ 4]> pla ;load status> cmp_flag fc2511 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 252---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2513 : f002 [ 3]> beq skip2134> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2515 : 00 [ 7]> brk ; Use BRK to return to the monitor2516 : 1c > db test_num>2517 : >skip2134>2517 : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 02518 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>251a : 48 [ 3]> pha ;use stack to load status251b : a97f [ 2]> lda #$7f ;precharge accu251d : 28 [ 4]> plp251e : d90802 [ 4] cmp abs1,ytst_a $7f,fzc2521 : 08 [ 3]> php ;save flags2522 : 08 [ 3]> php2523 : c97f [ 2]> cmp #$7f ;test result> trap_ne2525 : f002 [ 3]> beq skip2139> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2527 : 00 [ 7]> brk ; Use BRK to return to the monitor2528 : 1c > db test_num>2529 : >skip2139>2529 : 68 [ 4]> pla ;load status> cmp_flag fzc252a : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne252c : f002 [ 3]> beq skip2142> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction252e : 00 [ 7]> brk ; Use BRK to return to the monitor252f : 1c > db test_num>2530 : >skip2142>2530 : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 02531 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2533 : 48 [ 3]> pha ;use stack to load status2534 : a97e [ 2]> lda #$7e ;precharge accu2536 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 253---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2537 : d90802 [ 4] cmp abs1,ytst_a $7e,fn253a : 08 [ 3]> php ;save flags253b : 08 [ 3]> php253c : c97e [ 2]> cmp #$7e ;test result> trap_ne253e : f002 [ 3]> beq skip2147> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2540 : 00 [ 7]> brk ; Use BRK to return to the monitor2541 : 1c > db test_num>2542 : >skip2147>2542 : 68 [ 4]> pla ;load status> cmp_flag fn2543 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2545 : f002 [ 3]> beq skip2150> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2547 : 00 [ 7]> brk ; Use BRK to return to the monitor2548 : 1c > db test_num>2549 : >skip2150>2549 : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff254a : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>254c : 48 [ 3]> pha ;use stack to load status254d : a980 [ 2]> lda #$80 ;precharge accu254f : 28 [ 4]> plp2550 : d90802 [ 4] cmp abs1,ytst_a $80,~fnz2553 : 08 [ 3]> php ;save flags2554 : 08 [ 3]> php2555 : c980 [ 2]> cmp #$80 ;test result> trap_ne2557 : f002 [ 3]> beq skip2155> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2559 : 00 [ 7]> brk ; Use BRK to return to the monitor255a : 1c > db test_num>255b : >skip2155>255b : 68 [ 4]> pla ;load status> cmp_flag ~fnz255c : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 254---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne255e : f002 [ 3]> beq skip2158> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2560 : 00 [ 7]> brk ; Use BRK to return to the monitor2561 : 1c > db test_num>2562 : >skip2158>2562 : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff2563 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2565 : 48 [ 3]> pha ;use stack to load status2566 : a97f [ 2]> lda #$7f ;precharge accu2568 : 28 [ 4]> plp2569 : d90802 [ 4] cmp abs1,ytst_a $7f,~fn256c : 08 [ 3]> php ;save flags256d : 08 [ 3]> php256e : c97f [ 2]> cmp #$7f ;test result> trap_ne2570 : f002 [ 3]> beq skip2163> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2572 : 00 [ 7]> brk ; Use BRK to return to the monitor2573 : 1c > db test_num>2574 : >skip2163>2574 : 68 [ 4]> pla ;load status> cmp_flag ~fn2575 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2577 : f002 [ 3]> beq skip2166> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2579 : 00 [ 7]> brk ; Use BRK to return to the monitor257a : 1c > db test_num>257b : >skip2166>257b : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff257c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>257e : 48 [ 3]> pha ;use stack to load status257f : a97e [ 2]> lda #$7e ;precharge accu2581 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 255---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2582 : d90802 [ 4] cmp abs1,ytst_a $7e,~fzc2585 : 08 [ 3]> php ;save flags2586 : 08 [ 3]> php2587 : c97e [ 2]> cmp #$7e ;test result> trap_ne2589 : f002 [ 3]> beq skip2171> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction258b : 00 [ 7]> brk ; Use BRK to return to the monitor258c : 1c > db test_num>258d : >skip2171>258d : 68 [ 4]> pla ;load status> cmp_flag ~fzc258e : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2590 : f002 [ 3]> beq skip2174> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2592 : 00 [ 7]> brk ; Use BRK to return to the monitor2593 : 1c > db test_num>2594 : >skip2174>2594 : 28 [ 4]> plp ;restore statusset_a $80,0> load_flag 02595 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2597 : 48 [ 3]> pha ;use stack to load status2598 : a980 [ 2]> lda #$80 ;precharge accu259a : 28 [ 4]> plp259b : c1ca [ 6] cmp (ind1,x)tst_a $80,fc259d : 08 [ 3]> php ;save flags259e : 08 [ 3]> php259f : c980 [ 2]> cmp #$80 ;test result> trap_ne25a1 : f002 [ 3]> beq skip2179> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25a3 : 00 [ 7]> brk ; Use BRK to return to the monitor25a4 : 1c > db test_num>25a5 : >skip2179>25a5 : 68 [ 4]> pla ;load status> cmp_flag fcAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 256---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------25a6 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne25a8 : f002 [ 3]> beq skip2182> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25aa : 00 [ 7]> brk ; Use BRK to return to the monitor25ab : 1c > db test_num>25ac : >skip2182>25ac : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 025ad : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>25af : 48 [ 3]> pha ;use stack to load status25b0 : a97f [ 2]> lda #$7f ;precharge accu25b2 : 28 [ 4]> plp25b3 : c1ca [ 6] cmp (ind1,x)tst_a $7f,fzc25b5 : 08 [ 3]> php ;save flags25b6 : 08 [ 3]> php25b7 : c97f [ 2]> cmp #$7f ;test result> trap_ne25b9 : f002 [ 3]> beq skip2187> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25bb : 00 [ 7]> brk ; Use BRK to return to the monitor25bc : 1c > db test_num>25bd : >skip2187>25bd : 68 [ 4]> pla ;load status> cmp_flag fzc25be : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne25c0 : f002 [ 3]> beq skip2190> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25c2 : 00 [ 7]> brk ; Use BRK to return to the monitor25c3 : 1c > db test_num>25c4 : >skip2190>25c4 : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 025c5 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>25c7 : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 257---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------25c8 : a97e [ 2]> lda #$7e ;precharge accu25ca : 28 [ 4]> plp25cb : c1ca [ 6] cmp (ind1,x)tst_a $7e,fn25cd : 08 [ 3]> php ;save flags25ce : 08 [ 3]> php25cf : c97e [ 2]> cmp #$7e ;test result> trap_ne25d1 : f002 [ 3]> beq skip2195> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25d3 : 00 [ 7]> brk ; Use BRK to return to the monitor25d4 : 1c > db test_num>25d5 : >skip2195>25d5 : 68 [ 4]> pla ;load status> cmp_flag fn25d6 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne25d8 : f002 [ 3]> beq skip2198> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25da : 00 [ 7]> brk ; Use BRK to return to the monitor25db : 1c > db test_num>25dc : >skip2198>25dc : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff25dd : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>25df : 48 [ 3]> pha ;use stack to load status25e0 : a980 [ 2]> lda #$80 ;precharge accu25e2 : 28 [ 4]> plp25e3 : c1ca [ 6] cmp (ind1,x)tst_a $80,~fnz25e5 : 08 [ 3]> php ;save flags25e6 : 08 [ 3]> php25e7 : c980 [ 2]> cmp #$80 ;test result> trap_ne25e9 : f002 [ 3]> beq skip2203> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25eb : 00 [ 7]> brk ; Use BRK to return to the monitor25ec : 1c > db test_num>25ed : >skip2203>25ed : 68 [ 4]> pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 258---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> cmp_flag ~fnz25ee : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne25f0 : f002 [ 3]> beq skip2206> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction25f2 : 00 [ 7]> brk ; Use BRK to return to the monitor25f3 : 1c > db test_num>25f4 : >skip2206>25f4 : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff25f5 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>25f7 : 48 [ 3]> pha ;use stack to load status25f8 : a97f [ 2]> lda #$7f ;precharge accu25fa : 28 [ 4]> plp25fb : c1ca [ 6] cmp (ind1,x)tst_a $7f,~fn25fd : 08 [ 3]> php ;save flags25fe : 08 [ 3]> php25ff : c97f [ 2]> cmp #$7f ;test result> trap_ne2601 : f002 [ 3]> beq skip2211> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2603 : 00 [ 7]> brk ; Use BRK to return to the monitor2604 : 1c > db test_num>2605 : >skip2211>2605 : 68 [ 4]> pla ;load status> cmp_flag ~fn2606 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2608 : f002 [ 3]> beq skip2214> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction260a : 00 [ 7]> brk ; Use BRK to return to the monitor260b : 1c > db test_num>260c : >skip2214>260c : 28 [ 4]> plp ;restore statusset_a $7e,$ff> load_flag $ff260d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 259---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------260f : 48 [ 3]> pha ;use stack to load status2610 : a97e [ 2]> lda #$7e ;precharge accu2612 : 28 [ 4]> plp2613 : c1ca [ 6] cmp (ind1,x)tst_a $7e,~fzc2615 : 08 [ 3]> php ;save flags2616 : 08 [ 3]> php2617 : c97e [ 2]> cmp #$7e ;test result> trap_ne2619 : f002 [ 3]> beq skip2219> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction261b : 00 [ 7]> brk ; Use BRK to return to the monitor261c : 1c > db test_num>261d : >skip2219>261d : 68 [ 4]> pla ;load status> cmp_flag ~fzc261e : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2620 : f002 [ 3]> beq skip2222> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2622 : 00 [ 7]> brk ; Use BRK to return to the monitor2623 : 1c > db test_num>2624 : >skip2222>2624 : 28 [ 4]> plp ;restore statusset_a $80,0> load_flag 02625 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2627 : 48 [ 3]> pha ;use stack to load status2628 : a980 [ 2]> lda #$80 ;precharge accu262a : 28 [ 4]> plp262b : d1ca [ 5] cmp (ind1),ytst_a $80,fc262d : 08 [ 3]> php ;save flags262e : 08 [ 3]> php262f : c980 [ 2]> cmp #$80 ;test result> trap_ne2631 : f002 [ 3]> beq skip2227> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2633 : 00 [ 7]> brk ; Use BRK to return to the monitor2634 : 1c > db test_num>2635 : >skip2227AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 260---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2635 : 68 [ 4]> pla ;load status> cmp_flag fc2636 : c931 [ 2]> cmp #(fc|fao)&m8 ;expected flags + always on bits>> trap_ne2638 : f002 [ 3]> beq skip2230> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction263a : 00 [ 7]> brk ; Use BRK to return to the monitor263b : 1c > db test_num>263c : >skip2230>263c : 28 [ 4]> plp ;restore statusset_a $7f,0> load_flag 0263d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>263f : 48 [ 3]> pha ;use stack to load status2640 : a97f [ 2]> lda #$7f ;precharge accu2642 : 28 [ 4]> plp2643 : d1ca [ 5] cmp (ind1),ytst_a $7f,fzc2645 : 08 [ 3]> php ;save flags2646 : 08 [ 3]> php2647 : c97f [ 2]> cmp #$7f ;test result> trap_ne2649 : f002 [ 3]> beq skip2235> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction264b : 00 [ 7]> brk ; Use BRK to return to the monitor264c : 1c > db test_num>264d : >skip2235>264d : 68 [ 4]> pla ;load status> cmp_flag fzc264e : c933 [ 2]> cmp #(fzc|fao)&m8 ;expected flags + always on bits>> trap_ne2650 : f002 [ 3]> beq skip2238> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2652 : 00 [ 7]> brk ; Use BRK to return to the monitor2653 : 1c > db test_num>2654 : >skip2238>2654 : 28 [ 4]> plp ;restore statusset_a $7e,0> load_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 261---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2655 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2657 : 48 [ 3]> pha ;use stack to load status2658 : a97e [ 2]> lda #$7e ;precharge accu265a : 28 [ 4]> plp265b : d1ca [ 5] cmp (ind1),ytst_a $7e,fn265d : 08 [ 3]> php ;save flags265e : 08 [ 3]> php265f : c97e [ 2]> cmp #$7e ;test result> trap_ne2661 : f002 [ 3]> beq skip2243> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2663 : 00 [ 7]> brk ; Use BRK to return to the monitor2664 : 1c > db test_num>2665 : >skip2243>2665 : 68 [ 4]> pla ;load status> cmp_flag fn2666 : c9b0 [ 2]> cmp #(fn|fao)&m8 ;expected flags + always on bits>> trap_ne2668 : f002 [ 3]> beq skip2246> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction266a : 00 [ 7]> brk ; Use BRK to return to the monitor266b : 1c > db test_num>266c : >skip2246>266c : 28 [ 4]> plp ;restore statusset_a $80,$ff> load_flag $ff266d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>266f : 48 [ 3]> pha ;use stack to load status2670 : a980 [ 2]> lda #$80 ;precharge accu2672 : 28 [ 4]> plp2673 : d1ca [ 5] cmp (ind1),ytst_a $80,~fnz2675 : 08 [ 3]> php ;save flags2676 : 08 [ 3]> php2677 : c980 [ 2]> cmp #$80 ;test result> trap_ne2679 : f002 [ 3]> beq skip2251> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction267b : 00 [ 7]> brk ; Use BRK to return to the monitor267c : 1c > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 262---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------267d : >skip2251>267d : 68 [ 4]> pla ;load status> cmp_flag ~fnz267e : c97d [ 2]> cmp #(~fnz|fao)&m8 ;expected flags + always on bits>> trap_ne2680 : f002 [ 3]> beq skip2254> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2682 : 00 [ 7]> brk ; Use BRK to return to the monitor2683 : 1c > db test_num>2684 : >skip2254>2684 : 28 [ 4]> plp ;restore statusset_a $7f,$ff> load_flag $ff2685 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2687 : 48 [ 3]> pha ;use stack to load status2688 : a97f [ 2]> lda #$7f ;precharge accu268a : 28 [ 4]> plp268b : d1ca [ 5] cmp (ind1),ytst_a $7f,~fn268d : 08 [ 3]> php ;save flags268e : 08 [ 3]> php268f : c97f [ 2]> cmp #$7f ;test result> trap_ne2691 : f002 [ 3]> beq skip2259> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2693 : 00 [ 7]> brk ; Use BRK to return to the monitor2694 : 1c > db test_num>2695 : >skip2259>2695 : 68 [ 4]> pla ;load status> cmp_flag ~fn2696 : c97f [ 2]> cmp #(~fn|fao)&m8 ;expected flags + always on bits>> trap_ne2698 : f002 [ 3]> beq skip2262> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction269a : 00 [ 7]> brk ; Use BRK to return to the monitor269b : 1c > db test_num>269c : >skip2262>269c : 28 [ 4]> plp ;restore statusset_a $7e,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 263---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff269d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>269f : 48 [ 3]> pha ;use stack to load status26a0 : a97e [ 2]> lda #$7e ;precharge accu26a2 : 28 [ 4]> plp26a3 : d1ca [ 5] cmp (ind1),ytst_a $7e,~fzc26a5 : 08 [ 3]> php ;save flags26a6 : 08 [ 3]> php26a7 : c97e [ 2]> cmp #$7e ;test result> trap_ne26a9 : f002 [ 3]> beq skip2267> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26ab : 00 [ 7]> brk ; Use BRK to return to the monitor26ac : 1c > db test_num>26ad : >skip2267>26ad : 68 [ 4]> pla ;load status> cmp_flag ~fzc26ae : c9fc [ 2]> cmp #(~fzc|fao)&m8 ;expected flags + always on bits>> trap_ne26b0 : f002 [ 3]> beq skip2270> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26b2 : 00 [ 7]> brk ; Use BRK to return to the monitor26b3 : 1c > db test_num>26b4 : >skip2270>26b4 : 28 [ 4]> plp ;restore statusnext_test26b5 : ad0002 [ 4]> lda test_case ;previous test26b8 : c91c [ 2]> cmp #test_num> trap_ne ;test is out of sequence26ba : f002 [ 3]> beq skip2273> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26bc : 00 [ 7]> brk ; Use BRK to return to the monitor26bd : 1c > db test_num>26be : >skip2273>001d = >test_num = test_num + 126be : a91d [ 2]> lda #test_num ;*** this tests' number26c0 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; testing shifts - ASL LSR ROL ROR all addressing modesAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 264---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; shifts - accumulator26c3 : a203 [ 2] ldx #326c5 : taslset_ax zp1,0> load_flag 026c5 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>26c7 : 48 [ 3]> pha ;use stack to load status26c8 : b5b9 [ 4]> lda zp1,x ;precharge accu26ca : 28 [ 4]> plp26cb : 0a [ 2] asl atst_ax rASL,fASL,026cc : 08 [ 3]> php ;save flags26cd : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne26d0 : f002 [ 3]> beq skip2278> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26d2 : 00 [ 7]> brk ; Use BRK to return to the monitor26d3 : 1d > db test_num>26d4 : >skip2278>26d4 : 68 [ 4]> pla ;load status> eor_flag 026d5 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>26d7 : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne ;26da : f002 [ 3]> beq skip2281> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26dc : 00 [ 7]> brk ; Use BRK to return to the monitor26dd : 1d > db test_num>26de : >skip2281>26de : ca [ 2] dex26df : 10e4 [ 3] bpl tasl26e1 : a203 [ 2] ldx #326e3 : tasl1set_ax zp1,$ff> load_flag $ff26e3 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>26e5 : 48 [ 3]> pha ;use stack to load status26e6 : b5b9 [ 4]> lda zp1,x ;precharge accu26e8 : 28 [ 4]> plp26e9 : 0a [ 2] asl atst_ax rASL,fASL,$ff-fnzc26ea : 08 [ 3]> php ;save flagsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 265---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------26eb : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne26ee : f002 [ 3]> beq skip2286> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26f0 : 00 [ 7]> brk ; Use BRK to return to the monitor26f1 : 1d > db test_num>26f2 : >skip2286>26f2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc26f3 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>26f5 : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne ;26f8 : f002 [ 3]> beq skip2289> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction26fa : 00 [ 7]> brk ; Use BRK to return to the monitor26fb : 1d > db test_num>26fc : >skip2289>26fc : ca [ 2] dex26fd : 10e4 [ 3] bpl tasl126ff : a203 [ 2] ldx #32701 : tlsrset_ax zp1,0> load_flag 02701 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2703 : 48 [ 3]> pha ;use stack to load status2704 : b5b9 [ 4]> lda zp1,x ;precharge accu2706 : 28 [ 4]> plp2707 : 4a [ 2] lsr atst_ax rLSR,fLSR,02708 : 08 [ 3]> php ;save flags2709 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne270c : f002 [ 3]> beq skip2294> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction270e : 00 [ 7]> brk ; Use BRK to return to the monitor270f : 1d > db test_num>2710 : >skip2294>2710 : 68 [ 4]> pla ;load status> eor_flag 02711 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 266---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2713 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne ;2716 : f002 [ 3]> beq skip2297> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2718 : 00 [ 7]> brk ; Use BRK to return to the monitor2719 : 1d > db test_num>271a : >skip2297>271a : ca [ 2] dex271b : 10e4 [ 3] bpl tlsr271d : a203 [ 2] ldx #3271f : tlsr1set_ax zp1,$ff> load_flag $ff271f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2721 : 48 [ 3]> pha ;use stack to load status2722 : b5b9 [ 4]> lda zp1,x ;precharge accu2724 : 28 [ 4]> plp2725 : 4a [ 2] lsr atst_ax rLSR,fLSR,$ff-fnzc2726 : 08 [ 3]> php ;save flags2727 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne272a : f002 [ 3]> beq skip2302> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction272c : 00 [ 7]> brk ; Use BRK to return to the monitor272d : 1d > db test_num>272e : >skip2302>272e : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc272f : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2731 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne ;2734 : f002 [ 3]> beq skip2305> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2736 : 00 [ 7]> brk ; Use BRK to return to the monitor2737 : 1d > db test_num>2738 : >skip2305>2738 : ca [ 2] dex2739 : 10e4 [ 3] bpl tlsr1273b : a203 [ 2] ldx #3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 267---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------273d : trolset_ax zp1,0> load_flag 0273d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>273f : 48 [ 3]> pha ;use stack to load status2740 : b5b9 [ 4]> lda zp1,x ;precharge accu2742 : 28 [ 4]> plp2743 : 2a [ 2] rol atst_ax rROL,fROL,02744 : 08 [ 3]> php ;save flags2745 : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2748 : f002 [ 3]> beq skip2310> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction274a : 00 [ 7]> brk ; Use BRK to return to the monitor274b : 1d > db test_num>274c : >skip2310>274c : 68 [ 4]> pla ;load status> eor_flag 0274d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>274f : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne ;2752 : f002 [ 3]> beq skip2313> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2754 : 00 [ 7]> brk ; Use BRK to return to the monitor2755 : 1d > db test_num>2756 : >skip2313>2756 : ca [ 2] dex2757 : 10e4 [ 3] bpl trol2759 : a203 [ 2] ldx #3275b : trol1set_ax zp1,$ff-fc> load_flag $ff-fc275b : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>275d : 48 [ 3]> pha ;use stack to load status275e : b5b9 [ 4]> lda zp1,x ;precharge accu2760 : 28 [ 4]> plp2761 : 2a [ 2] rol atst_ax rROL,fROL,$ff-fnzc2762 : 08 [ 3]> php ;save flags2763 : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2766 : f002 [ 3]> beq skip2318AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 268---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2768 : 00 [ 7]> brk ; Use BRK to return to the monitor2769 : 1d > db test_num>276a : >skip2318>276a : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc276b : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>276d : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne ;2770 : f002 [ 3]> beq skip2321> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2772 : 00 [ 7]> brk ; Use BRK to return to the monitor2773 : 1d > db test_num>2774 : >skip2321>2774 : ca [ 2] dex2775 : 10e4 [ 3] bpl trol12777 : a203 [ 2] ldx #32779 : trolcset_ax zp1,fc> load_flag fc2779 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>277b : 48 [ 3]> pha ;use stack to load status277c : b5b9 [ 4]> lda zp1,x ;precharge accu277e : 28 [ 4]> plp277f : 2a [ 2] rol atst_ax rROLc,fROLc,02780 : 08 [ 3]> php ;save flags2781 : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2784 : f002 [ 3]> beq skip2326> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2786 : 00 [ 7]> brk ; Use BRK to return to the monitor2787 : 1d > db test_num>2788 : >skip2326>2788 : 68 [ 4]> pla ;load status> eor_flag 02789 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>278b : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne ;278e : f002 [ 3]> beq skip2329AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 269---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2790 : 00 [ 7]> brk ; Use BRK to return to the monitor2791 : 1d > db test_num>2792 : >skip2329>2792 : ca [ 2] dex2793 : 10e4 [ 3] bpl trolc2795 : a203 [ 2] ldx #32797 : trolc1set_ax zp1,$ff> load_flag $ff2797 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2799 : 48 [ 3]> pha ;use stack to load status279a : b5b9 [ 4]> lda zp1,x ;precharge accu279c : 28 [ 4]> plp279d : 2a [ 2] rol atst_ax rROLc,fROLc,$ff-fnzc279e : 08 [ 3]> php ;save flags279f : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne27a2 : f002 [ 3]> beq skip2334> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27a4 : 00 [ 7]> brk ; Use BRK to return to the monitor27a5 : 1d > db test_num>27a6 : >skip2334>27a6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc27a7 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>27a9 : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne ;27ac : f002 [ 3]> beq skip2337> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27ae : 00 [ 7]> brk ; Use BRK to return to the monitor27af : 1d > db test_num>27b0 : >skip2337>27b0 : ca [ 2] dex27b1 : 10e4 [ 3] bpl trolc127b3 : a203 [ 2] ldx #327b5 : trorset_ax zp1,0> load_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 270---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------27b5 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>27b7 : 48 [ 3]> pha ;use stack to load status27b8 : b5b9 [ 4]> lda zp1,x ;precharge accu27ba : 28 [ 4]> plp27bb : 6a [ 2] ror atst_ax rROR,fROR,027bc : 08 [ 3]> php ;save flags27bd : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne27c0 : f002 [ 3]> beq skip2342> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27c2 : 00 [ 7]> brk ; Use BRK to return to the monitor27c3 : 1d > db test_num>27c4 : >skip2342>27c4 : 68 [ 4]> pla ;load status> eor_flag 027c5 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>27c7 : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne ;27ca : f002 [ 3]> beq skip2345> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27cc : 00 [ 7]> brk ; Use BRK to return to the monitor27cd : 1d > db test_num>27ce : >skip2345>27ce : ca [ 2] dex27cf : 10e4 [ 3] bpl tror27d1 : a203 [ 2] ldx #327d3 : tror1set_ax zp1,$ff-fc> load_flag $ff-fc27d3 : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>27d5 : 48 [ 3]> pha ;use stack to load status27d6 : b5b9 [ 4]> lda zp1,x ;precharge accu27d8 : 28 [ 4]> plp27d9 : 6a [ 2] ror atst_ax rROR,fROR,$ff-fnzc27da : 08 [ 3]> php ;save flags27db : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne27de : f002 [ 3]> beq skip2350> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27e0 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 271---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------27e1 : 1d > db test_num>27e2 : >skip2350>27e2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc27e3 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>27e5 : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne ;27e8 : f002 [ 3]> beq skip2353> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27ea : 00 [ 7]> brk ; Use BRK to return to the monitor27eb : 1d > db test_num>27ec : >skip2353>27ec : ca [ 2] dex27ed : 10e4 [ 3] bpl tror127ef : a203 [ 2] ldx #327f1 : trorcset_ax zp1,fc> load_flag fc27f1 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>27f3 : 48 [ 3]> pha ;use stack to load status27f4 : b5b9 [ 4]> lda zp1,x ;precharge accu27f6 : 28 [ 4]> plp27f7 : 6a [ 2] ror atst_ax rRORc,fRORc,027f8 : 08 [ 3]> php ;save flags27f9 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne27fc : f002 [ 4]> beq skip2358> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction27fe : 00 [ 7]> brk ; Use BRK to return to the monitor27ff : 1d > db test_num>2800 : >skip2358>2800 : 68 [ 4]> pla ;load status> eor_flag 02801 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2803 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne ;2806 : f002 [ 3]> beq skip2361> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2808 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 272---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2809 : 1d > db test_num>280a : >skip2361>280a : ca [ 2] dex280b : 10e4 [ 4] bpl trorc280d : a203 [ 2] ldx #3280f : trorc1set_ax zp1,$ff> load_flag $ff280f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2811 : 48 [ 3]> pha ;use stack to load status2812 : b5b9 [ 4]> lda zp1,x ;precharge accu2814 : 28 [ 4]> plp2815 : 6a [ 2] ror atst_ax rRORc,fRORc,$ff-fnzc2816 : 08 [ 3]> php ;save flags2817 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne281a : f002 [ 3]> beq skip2366> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction281c : 00 [ 7]> brk ; Use BRK to return to the monitor281d : 1d > db test_num>281e : >skip2366>281e : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc281f : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2821 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne ;2824 : f002 [ 3]> beq skip2369> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2826 : 00 [ 7]> brk ; Use BRK to return to the monitor2827 : 1d > db test_num>2828 : >skip2369>2828 : ca [ 2] dex2829 : 10e4 [ 3] bpl trorc1next_test282b : ad0002 [ 4]> lda test_case ;previous test282e : c91d [ 2]> cmp #test_num> trap_ne ;test is out of sequence2830 : f002 [ 3]> beq skip2372> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2832 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 273---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2833 : 1d > db test_num>2834 : >skip2372>001e = >test_num = test_num + 12834 : a91e [ 2]> lda #test_num ;*** this tests' number2836 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; shifts - zeropage2839 : a203 [ 2] ldx #3283b : tasl2set_z zp1,0> load_flag 0283b : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>283d : 48 [ 3]> pha ;use stack to load status283e : b5b9 [ 4]> lda zp1,x ;load to zeropage2840 : 85b2 [ 3]> sta zpt2842 : 28 [ 4]> plp2843 : 06b2 [ 5] asl zpttst_z rASL,fASL,02845 : 08 [ 3]> php ;save flags2846 : a5b2 [ 3]> lda zpt2848 : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne284b : f002 [ 3]> beq skip2377> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction284d : 00 [ 7]> brk ; Use BRK to return to the monitor284e : 1e > db test_num>284f : >skip2377>284f : 68 [ 4]> pla ;load status> eor_flag 02850 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2852 : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2855 : f002 [ 3]> beq skip2380> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2857 : 00 [ 7]> brk ; Use BRK to return to the monitor2858 : 1e > db test_num>2859 : >skip2380>2859 : ca [ 2] dex285a : 10df [ 3] bpl tasl2285c : a203 [ 2] ldx #3AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 274---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------285e : tasl3set_z zp1,$ff> load_flag $ff285e : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2860 : 48 [ 3]> pha ;use stack to load status2861 : b5b9 [ 4]> lda zp1,x ;load to zeropage2863 : 85b2 [ 3]> sta zpt2865 : 28 [ 4]> plp2866 : 06b2 [ 5] asl zpttst_z rASL,fASL,$ff-fnzc2868 : 08 [ 3]> php ;save flags2869 : a5b2 [ 3]> lda zpt286b : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne286e : f002 [ 3]> beq skip2385> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2870 : 00 [ 7]> brk ; Use BRK to return to the monitor2871 : 1e > db test_num>2872 : >skip2385>2872 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2873 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2875 : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2878 : f002 [ 3]> beq skip2388> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction287a : 00 [ 7]> brk ; Use BRK to return to the monitor287b : 1e > db test_num>287c : >skip2388>287c : ca [ 2] dex287d : 10df [ 3] bpl tasl3287f : a203 [ 2] ldx #32881 : tlsr2set_z zp1,0> load_flag 02881 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2883 : 48 [ 3]> pha ;use stack to load status2884 : b5b9 [ 4]> lda zp1,x ;load to zeropage2886 : 85b2 [ 3]> sta zpt2888 : 28 [ 4]> plp2889 : 46b2 [ 5] lsr zpttst_z rLSR,fLSR,0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 275---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------288b : 08 [ 3]> php ;save flags288c : a5b2 [ 3]> lda zpt288e : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2891 : f002 [ 3]> beq skip2393> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2893 : 00 [ 7]> brk ; Use BRK to return to the monitor2894 : 1e > db test_num>2895 : >skip2393>2895 : 68 [ 4]> pla ;load status> eor_flag 02896 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2898 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne289b : f002 [ 3]> beq skip2396> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction289d : 00 [ 7]> brk ; Use BRK to return to the monitor289e : 1e > db test_num>289f : >skip2396>289f : ca [ 2] dex28a0 : 10df [ 3] bpl tlsr228a2 : a203 [ 2] ldx #328a4 : tlsr3set_z zp1,$ff> load_flag $ff28a4 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>28a6 : 48 [ 3]> pha ;use stack to load status28a7 : b5b9 [ 4]> lda zp1,x ;load to zeropage28a9 : 85b2 [ 3]> sta zpt28ab : 28 [ 4]> plp28ac : 46b2 [ 5] lsr zpttst_z rLSR,fLSR,$ff-fnzc28ae : 08 [ 3]> php ;save flags28af : a5b2 [ 3]> lda zpt28b1 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne28b4 : f002 [ 3]> beq skip2401> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction28b6 : 00 [ 7]> brk ; Use BRK to return to the monitor28b7 : 1e > db test_num>28b8 : >skip2401>28b8 : 68 [ 4]> pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 276---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> eor_flag $ff-fnzc28b9 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>28bb : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne28be : f002 [ 3]> beq skip2404> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction28c0 : 00 [ 7]> brk ; Use BRK to return to the monitor28c1 : 1e > db test_num>28c2 : >skip2404>28c2 : ca [ 2] dex28c3 : 10df [ 3] bpl tlsr328c5 : a203 [ 2] ldx #328c7 : trol2set_z zp1,0> load_flag 028c7 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>28c9 : 48 [ 3]> pha ;use stack to load status28ca : b5b9 [ 4]> lda zp1,x ;load to zeropage28cc : 85b2 [ 3]> sta zpt28ce : 28 [ 4]> plp28cf : 26b2 [ 5] rol zpttst_z rROL,fROL,028d1 : 08 [ 3]> php ;save flags28d2 : a5b2 [ 3]> lda zpt28d4 : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne28d7 : f002 [ 3]> beq skip2409> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction28d9 : 00 [ 7]> brk ; Use BRK to return to the monitor28da : 1e > db test_num>28db : >skip2409>28db : 68 [ 4]> pla ;load status> eor_flag 028dc : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>28de : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne28e1 : f002 [ 3]> beq skip2412> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction28e3 : 00 [ 7]> brk ; Use BRK to return to the monitor28e4 : 1e > db test_num>28e5 : >skip2412AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 277---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->28e5 : ca [ 2] dex28e6 : 10df [ 3] bpl trol228e8 : a203 [ 2] ldx #328ea : trol3set_z zp1,$ff-fc> load_flag $ff-fc28ea : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>28ec : 48 [ 3]> pha ;use stack to load status28ed : b5b9 [ 4]> lda zp1,x ;load to zeropage28ef : 85b2 [ 3]> sta zpt28f1 : 28 [ 4]> plp28f2 : 26b2 [ 5] rol zpttst_z rROL,fROL,$ff-fnzc28f4 : 08 [ 3]> php ;save flags28f5 : a5b2 [ 3]> lda zpt28f7 : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne28fa : f002 [ 3]> beq skip2417> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction28fc : 00 [ 7]> brk ; Use BRK to return to the monitor28fd : 1e > db test_num>28fe : >skip2417>28fe : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc28ff : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2901 : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2904 : f002 [ 3]> beq skip2420> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2906 : 00 [ 7]> brk ; Use BRK to return to the monitor2907 : 1e > db test_num>2908 : >skip2420>2908 : ca [ 2] dex2909 : 10df [ 4] bpl trol3290b : a203 [ 2] ldx #3290d : trolc2set_z zp1,fc> load_flag fc290d : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>290f : 48 [ 3]> pha ;use stack to load status2910 : b5b9 [ 4]> lda zp1,x ;load to zeropageAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 278---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2912 : 85b2 [ 3]> sta zpt2914 : 28 [ 4]> plp2915 : 26b2 [ 5] rol zpttst_z rROLc,fROLc,02917 : 08 [ 3]> php ;save flags2918 : a5b2 [ 3]> lda zpt291a : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne291d : f002 [ 3]> beq skip2425> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction291f : 00 [ 7]> brk ; Use BRK to return to the monitor2920 : 1e > db test_num>2921 : >skip2425>2921 : 68 [ 4]> pla ;load status> eor_flag 02922 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2924 : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2927 : f002 [ 3]> beq skip2428> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2929 : 00 [ 7]> brk ; Use BRK to return to the monitor292a : 1e > db test_num>292b : >skip2428>292b : ca [ 2] dex292c : 10df [ 3] bpl trolc2292e : a203 [ 2] ldx #32930 : trolc3set_z zp1,$ff> load_flag $ff2930 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2932 : 48 [ 3]> pha ;use stack to load status2933 : b5b9 [ 4]> lda zp1,x ;load to zeropage2935 : 85b2 [ 3]> sta zpt2937 : 28 [ 4]> plp2938 : 26b2 [ 5] rol zpttst_z rROLc,fROLc,$ff-fnzc293a : 08 [ 3]> php ;save flags293b : a5b2 [ 3]> lda zpt293d : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2940 : f002 [ 3]> beq skip2433> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2942 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 279---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2943 : 1e > db test_num>2944 : >skip2433>2944 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2945 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2947 : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne294a : f002 [ 3]> beq skip2436> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction294c : 00 [ 7]> brk ; Use BRK to return to the monitor294d : 1e > db test_num>294e : >skip2436>294e : ca [ 2] dex294f : 10df [ 3] bpl trolc32951 : a203 [ 2] ldx #32953 : tror2set_z zp1,0> load_flag 02953 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2955 : 48 [ 3]> pha ;use stack to load status2956 : b5b9 [ 4]> lda zp1,x ;load to zeropage2958 : 85b2 [ 3]> sta zpt295a : 28 [ 4]> plp295b : 66b2 [ 5] ror zpttst_z rROR,fROR,0295d : 08 [ 3]> php ;save flags295e : a5b2 [ 3]> lda zpt2960 : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2963 : f002 [ 3]> beq skip2441> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2965 : 00 [ 7]> brk ; Use BRK to return to the monitor2966 : 1e > db test_num>2967 : >skip2441>2967 : 68 [ 4]> pla ;load status> eor_flag 02968 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>296a : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne296d : f002 [ 3]> beq skip2444> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 280---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction296f : 00 [ 7]> brk ; Use BRK to return to the monitor2970 : 1e > db test_num>2971 : >skip2444>2971 : ca [ 2] dex2972 : 10df [ 3] bpl tror22974 : a203 [ 2] ldx #32976 : tror3set_z zp1,$ff-fc> load_flag $ff-fc2976 : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2978 : 48 [ 3]> pha ;use stack to load status2979 : b5b9 [ 4]> lda zp1,x ;load to zeropage297b : 85b2 [ 3]> sta zpt297d : 28 [ 4]> plp297e : 66b2 [ 5] ror zpttst_z rROR,fROR,$ff-fnzc2980 : 08 [ 3]> php ;save flags2981 : a5b2 [ 3]> lda zpt2983 : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2986 : f002 [ 3]> beq skip2449> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2988 : 00 [ 7]> brk ; Use BRK to return to the monitor2989 : 1e > db test_num>298a : >skip2449>298a : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc298b : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>298d : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2990 : f002 [ 3]> beq skip2452> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2992 : 00 [ 7]> brk ; Use BRK to return to the monitor2993 : 1e > db test_num>2994 : >skip2452>2994 : ca [ 2] dex2995 : 10df [ 3] bpl tror32997 : a203 [ 2] ldx #32999 : trorc2set_z zp1,fcAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 281---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag fc2999 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>299b : 48 [ 3]> pha ;use stack to load status299c : b5b9 [ 4]> lda zp1,x ;load to zeropage299e : 85b2 [ 3]> sta zpt29a0 : 28 [ 4]> plp29a1 : 66b2 [ 5] ror zpttst_z rRORc,fRORc,029a3 : 08 [ 3]> php ;save flags29a4 : a5b2 [ 3]> lda zpt29a6 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne29a9 : f002 [ 3]> beq skip2457> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction29ab : 00 [ 7]> brk ; Use BRK to return to the monitor29ac : 1e > db test_num>29ad : >skip2457>29ad : 68 [ 4]> pla ;load status> eor_flag 029ae : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>29b0 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne29b3 : f002 [ 3]> beq skip2460> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction29b5 : 00 [ 7]> brk ; Use BRK to return to the monitor29b6 : 1e > db test_num>29b7 : >skip2460>29b7 : ca [ 2] dex29b8 : 10df [ 3] bpl trorc229ba : a203 [ 2] ldx #329bc : trorc3set_z zp1,$ff> load_flag $ff29bc : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>29be : 48 [ 3]> pha ;use stack to load status29bf : b5b9 [ 4]> lda zp1,x ;load to zeropage29c1 : 85b2 [ 3]> sta zpt29c3 : 28 [ 4]> plp29c4 : 66b2 [ 5] ror zpttst_z rRORc,fRORc,$ff-fnzc29c6 : 08 [ 3]> php ;save flags29c7 : a5b2 [ 3]> lda zpt29c9 : dd1d02 [ 4]> cmp rRORc,x ;test resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 282---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne29cc : f002 [ 3]> beq skip2465> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction29ce : 00 [ 7]> brk ; Use BRK to return to the monitor29cf : 1e > db test_num>29d0 : >skip2465>29d0 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc29d1 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>29d3 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne29d6 : f002 [ 3]> beq skip2468> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction29d8 : 00 [ 7]> brk ; Use BRK to return to the monitor29d9 : 1e > db test_num>29da : >skip2468>29da : ca [ 2] dex29db : 10df [ 3] bpl trorc3next_test29dd : ad0002 [ 4]> lda test_case ;previous test29e0 : c91e [ 2]> cmp #test_num> trap_ne ;test is out of sequence29e2 : f002 [ 3]> beq skip2471> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction29e4 : 00 [ 7]> brk ; Use BRK to return to the monitor29e5 : 1e > db test_num>29e6 : >skip2471>001f = >test_num = test_num + 129e6 : a91f [ 2]> lda #test_num ;*** this tests' number29e8 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; shifts - absolute29eb : a203 [ 2] ldx #329ed : tasl4set_abs zp1,0> load_flag 029ed : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>29ef : 48 [ 3]> pha ;use stack to load status29f0 : b5b9 [ 4]> lda zp1,x ;load to memory29f2 : 8d0302 [ 4]> sta abstAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 283---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------29f5 : 28 [ 4]> plp29f6 : 0e0302 [ 6] asl absttst_abs rASL,fASL,029f9 : 08 [ 3]> php ;save flags29fa : ad0302 [ 4]> lda abst29fd : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne2a00 : f002 [ 3]> beq skip2476> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a02 : 00 [ 7]> brk ; Use BRK to return to the monitor2a03 : 1f > db test_num>2a04 : >skip2476>2a04 : 68 [ 4]> pla ;load status> eor_flag 02a05 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2a07 : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2a0a : f002 [ 3]> beq skip2479> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a0c : 00 [ 7]> brk ; Use BRK to return to the monitor2a0d : 1f > db test_num>2a0e : >skip2479>2a0e : ca [ 2] dex2a0f : 10dc [ 4] bpl tasl42a11 : a203 [ 2] ldx #32a13 : tasl5set_abs zp1,$ff> load_flag $ff2a13 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2a15 : 48 [ 3]> pha ;use stack to load status2a16 : b5b9 [ 4]> lda zp1,x ;load to memory2a18 : 8d0302 [ 4]> sta abst2a1b : 28 [ 4]> plp2a1c : 0e0302 [ 6] asl absttst_abs rASL,fASL,$ff-fnzc2a1f : 08 [ 3]> php ;save flags2a20 : ad0302 [ 4]> lda abst2a23 : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne2a26 : f002 [ 3]> beq skip2484> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a28 : 00 [ 7]> brk ; Use BRK to return to the monitor2a29 : 1f > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 284---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2a2a : >skip2484>2a2a : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2a2b : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2a2d : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2a30 : f002 [ 3]> beq skip2487> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a32 : 00 [ 7]> brk ; Use BRK to return to the monitor2a33 : 1f > db test_num>2a34 : >skip2487>2a34 : ca [ 2] dex2a35 : 10dc [ 3] bpl tasl52a37 : a203 [ 2] ldx #32a39 : tlsr4set_abs zp1,0> load_flag 02a39 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2a3b : 48 [ 3]> pha ;use stack to load status2a3c : b5b9 [ 4]> lda zp1,x ;load to memory2a3e : 8d0302 [ 4]> sta abst2a41 : 28 [ 4]> plp2a42 : 4e0302 [ 6] lsr absttst_abs rLSR,fLSR,02a45 : 08 [ 3]> php ;save flags2a46 : ad0302 [ 4]> lda abst2a49 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2a4c : f002 [ 3]> beq skip2492> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a4e : 00 [ 7]> brk ; Use BRK to return to the monitor2a4f : 1f > db test_num>2a50 : >skip2492>2a50 : 68 [ 4]> pla ;load status> eor_flag 02a51 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2a53 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne2a56 : f002 [ 3]> beq skip2495> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 285---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2a58 : 00 [ 7]> brk ; Use BRK to return to the monitor2a59 : 1f > db test_num>2a5a : >skip2495>2a5a : ca [ 2] dex2a5b : 10dc [ 3] bpl tlsr42a5d : a203 [ 2] ldx #32a5f : tlsr5set_abs zp1,$ff> load_flag $ff2a5f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2a61 : 48 [ 3]> pha ;use stack to load status2a62 : b5b9 [ 4]> lda zp1,x ;load to memory2a64 : 8d0302 [ 4]> sta abst2a67 : 28 [ 4]> plp2a68 : 4e0302 [ 6] lsr absttst_abs rLSR,fLSR,$ff-fnzc2a6b : 08 [ 3]> php ;save flags2a6c : ad0302 [ 4]> lda abst2a6f : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2a72 : f002 [ 3]> beq skip2500> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a74 : 00 [ 7]> brk ; Use BRK to return to the monitor2a75 : 1f > db test_num>2a76 : >skip2500>2a76 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2a77 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2a79 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne2a7c : f002 [ 3]> beq skip2503> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a7e : 00 [ 7]> brk ; Use BRK to return to the monitor2a7f : 1f > db test_num>2a80 : >skip2503>2a80 : ca [ 2] dex2a81 : 10dc [ 3] bpl tlsr52a83 : a203 [ 2] ldx #32a85 : trol4set_abs zp1,0> load_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 286---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2a85 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2a87 : 48 [ 3]> pha ;use stack to load status2a88 : b5b9 [ 4]> lda zp1,x ;load to memory2a8a : 8d0302 [ 4]> sta abst2a8d : 28 [ 4]> plp2a8e : 2e0302 [ 6] rol absttst_abs rROL,fROL,02a91 : 08 [ 3]> php ;save flags2a92 : ad0302 [ 4]> lda abst2a95 : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2a98 : f002 [ 3]> beq skip2508> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2a9a : 00 [ 7]> brk ; Use BRK to return to the monitor2a9b : 1f > db test_num>2a9c : >skip2508>2a9c : 68 [ 4]> pla ;load status> eor_flag 02a9d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2a9f : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2aa2 : f002 [ 3]> beq skip2511> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2aa4 : 00 [ 7]> brk ; Use BRK to return to the monitor2aa5 : 1f > db test_num>2aa6 : >skip2511>2aa6 : ca [ 2] dex2aa7 : 10dc [ 3] bpl trol42aa9 : a203 [ 2] ldx #32aab : trol5set_abs zp1,$ff-fc> load_flag $ff-fc2aab : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2aad : 48 [ 3]> pha ;use stack to load status2aae : b5b9 [ 4]> lda zp1,x ;load to memory2ab0 : 8d0302 [ 4]> sta abst2ab3 : 28 [ 4]> plp2ab4 : 2e0302 [ 6] rol absttst_abs rROL,fROL,$ff-fnzc2ab7 : 08 [ 3]> php ;save flags2ab8 : ad0302 [ 4]> lda abst2abb : dd1102 [ 4]> cmp rROL,x ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 287---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2abe : f002 [ 3]> beq skip2516> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ac0 : 00 [ 7]> brk ; Use BRK to return to the monitor2ac1 : 1f > db test_num>2ac2 : >skip2516>2ac2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2ac3 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2ac5 : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2ac8 : f002 [ 3]> beq skip2519> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2aca : 00 [ 7]> brk ; Use BRK to return to the monitor2acb : 1f > db test_num>2acc : >skip2519>2acc : ca [ 2] dex2acd : 10dc [ 3] bpl trol52acf : a203 [ 2] ldx #32ad1 : trolc4set_abs zp1,fc> load_flag fc2ad1 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>2ad3 : 48 [ 3]> pha ;use stack to load status2ad4 : b5b9 [ 4]> lda zp1,x ;load to memory2ad6 : 8d0302 [ 4]> sta abst2ad9 : 28 [ 4]> plp2ada : 2e0302 [ 6] rol absttst_abs rROLc,fROLc,02add : 08 [ 3]> php ;save flags2ade : ad0302 [ 4]> lda abst2ae1 : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2ae4 : f002 [ 3]> beq skip2524> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ae6 : 00 [ 7]> brk ; Use BRK to return to the monitor2ae7 : 1f > db test_num>2ae8 : >skip2524>2ae8 : 68 [ 4]> pla ;load status> eor_flag 02ae9 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 288---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2aeb : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2aee : f002 [ 3]> beq skip2527> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2af0 : 00 [ 7]> brk ; Use BRK to return to the monitor2af1 : 1f > db test_num>2af2 : >skip2527>2af2 : ca [ 2] dex2af3 : 10dc [ 3] bpl trolc42af5 : a203 [ 2] ldx #32af7 : trolc5set_abs zp1,$ff> load_flag $ff2af7 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2af9 : 48 [ 3]> pha ;use stack to load status2afa : b5b9 [ 4]> lda zp1,x ;load to memory2afc : 8d0302 [ 4]> sta abst2aff : 28 [ 4]> plp2b00 : 2e0302 [ 6] rol absttst_abs rROLc,fROLc,$ff-fnzc2b03 : 08 [ 3]> php ;save flags2b04 : ad0302 [ 4]> lda abst2b07 : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2b0a : f002 [ 3]> beq skip2532> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b0c : 00 [ 7]> brk ; Use BRK to return to the monitor2b0d : 1f > db test_num>2b0e : >skip2532>2b0e : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2b0f : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2b11 : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2b14 : f002 [ 3]> beq skip2535> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b16 : 00 [ 7]> brk ; Use BRK to return to the monitor2b17 : 1f > db test_num>2b18 : >skip2535>2b18 : ca [ 2] dex2b19 : 10dc [ 4] bpl trolc5AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 289---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2b1b : a203 [ 2] ldx #32b1d : tror4set_abs zp1,0> load_flag 02b1d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2b1f : 48 [ 3]> pha ;use stack to load status2b20 : b5b9 [ 4]> lda zp1,x ;load to memory2b22 : 8d0302 [ 4]> sta abst2b25 : 28 [ 4]> plp2b26 : 6e0302 [ 6] ror absttst_abs rROR,fROR,02b29 : 08 [ 3]> php ;save flags2b2a : ad0302 [ 4]> lda abst2b2d : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2b30 : f002 [ 3]> beq skip2540> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b32 : 00 [ 7]> brk ; Use BRK to return to the monitor2b33 : 1f > db test_num>2b34 : >skip2540>2b34 : 68 [ 4]> pla ;load status> eor_flag 02b35 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2b37 : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2b3a : f002 [ 3]> beq skip2543> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b3c : 00 [ 7]> brk ; Use BRK to return to the monitor2b3d : 1f > db test_num>2b3e : >skip2543>2b3e : ca [ 2] dex2b3f : 10dc [ 3] bpl tror42b41 : a203 [ 2] ldx #32b43 : tror5set_abs zp1,$ff-fc> load_flag $ff-fc2b43 : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2b45 : 48 [ 3]> pha ;use stack to load status2b46 : b5b9 [ 4]> lda zp1,x ;load to memory2b48 : 8d0302 [ 4]> sta abst2b4b : 28 [ 4]> plp2b4c : 6e0302 [ 6] ror abstAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 290---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tst_abs rROR,fROR,$ff-fnzc2b4f : 08 [ 3]> php ;save flags2b50 : ad0302 [ 4]> lda abst2b53 : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2b56 : f002 [ 3]> beq skip2548> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b58 : 00 [ 7]> brk ; Use BRK to return to the monitor2b59 : 1f > db test_num>2b5a : >skip2548>2b5a : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2b5b : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2b5d : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2b60 : f002 [ 3]> beq skip2551> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b62 : 00 [ 7]> brk ; Use BRK to return to the monitor2b63 : 1f > db test_num>2b64 : >skip2551>2b64 : ca [ 2] dex2b65 : 10dc [ 3] bpl tror52b67 : a203 [ 2] ldx #32b69 : trorc4set_abs zp1,fc> load_flag fc2b69 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>2b6b : 48 [ 3]> pha ;use stack to load status2b6c : b5b9 [ 4]> lda zp1,x ;load to memory2b6e : 8d0302 [ 4]> sta abst2b71 : 28 [ 4]> plp2b72 : 6e0302 [ 6] ror absttst_abs rRORc,fRORc,02b75 : 08 [ 3]> php ;save flags2b76 : ad0302 [ 4]> lda abst2b79 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne2b7c : f002 [ 3]> beq skip2556> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b7e : 00 [ 7]> brk ; Use BRK to return to the monitor2b7f : 1f > db test_num>2b80 : >skip2556AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 291---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2b80 : 68 [ 4]> pla ;load status> eor_flag 02b81 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2b83 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne2b86 : f002 [ 3]> beq skip2559> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2b88 : 00 [ 7]> brk ; Use BRK to return to the monitor2b89 : 1f > db test_num>2b8a : >skip2559>2b8a : ca [ 2] dex2b8b : 10dc [ 3] bpl trorc42b8d : a203 [ 2] ldx #32b8f : trorc5set_abs zp1,$ff> load_flag $ff2b8f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2b91 : 48 [ 3]> pha ;use stack to load status2b92 : b5b9 [ 4]> lda zp1,x ;load to memory2b94 : 8d0302 [ 4]> sta abst2b97 : 28 [ 4]> plp2b98 : 6e0302 [ 6] ror absttst_abs rRORc,fRORc,$ff-fnzc2b9b : 08 [ 3]> php ;save flags2b9c : ad0302 [ 4]> lda abst2b9f : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne2ba2 : f002 [ 3]> beq skip2564> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ba4 : 00 [ 7]> brk ; Use BRK to return to the monitor2ba5 : 1f > db test_num>2ba6 : >skip2564>2ba6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2ba7 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2ba9 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne2bac : f002 [ 3]> beq skip2567> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2bae : 00 [ 7]> brk ; Use BRK to return to the monitor2baf : 1f > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 292---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2bb0 : >skip2567>2bb0 : ca [ 2] dex2bb1 : 10dc [ 3] bpl trorc5next_test2bb3 : ad0002 [ 4]> lda test_case ;previous test2bb6 : c91f [ 2]> cmp #test_num> trap_ne ;test is out of sequence2bb8 : f002 [ 3]> beq skip2570> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2bba : 00 [ 7]> brk ; Use BRK to return to the monitor2bbb : 1f > db test_num>2bbc : >skip2570>0020 = >test_num = test_num + 12bbc : a920 [ 2]> lda #test_num ;*** this tests' number2bbe : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; shifts - zp indexed2bc1 : a203 [ 2] ldx #32bc3 : tasl6set_zx zp1,0> load_flag 02bc3 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2bc5 : 48 [ 3]> pha ;use stack to load status2bc6 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2bc8 : 95b2 [ 4]> sta zpt,x2bca : 28 [ 4]> plp2bcb : 16b2 [ 6] asl zpt,xtst_zx rASL,fASL,02bcd : 08 [ 3]> php ;save flags2bce : b5b2 [ 4]> lda zpt,x2bd0 : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne2bd3 : f002 [ 3]> beq skip2575> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2bd5 : 00 [ 7]> brk ; Use BRK to return to the monitor2bd6 : 20 > db test_num>2bd7 : >skip2575>2bd7 : 68 [ 4]> pla ;load status> eor_flag 02bd8 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2bda : dd2102 [ 4]> cmp fASL,x ;test flagsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 293---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne2bdd : f002 [ 3]> beq skip2578> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2bdf : 00 [ 7]> brk ; Use BRK to return to the monitor2be0 : 20 > db test_num>2be1 : >skip2578>2be1 : ca [ 2] dex2be2 : 10df [ 3] bpl tasl62be4 : a203 [ 2] ldx #32be6 : tasl7set_zx zp1,$ff> load_flag $ff2be6 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2be8 : 48 [ 3]> pha ;use stack to load status2be9 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2beb : 95b2 [ 4]> sta zpt,x2bed : 28 [ 4]> plp2bee : 16b2 [ 6] asl zpt,xtst_zx rASL,fASL,$ff-fnzc2bf0 : 08 [ 3]> php ;save flags2bf1 : b5b2 [ 4]> lda zpt,x2bf3 : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne2bf6 : f002 [ 3]> beq skip2583> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2bf8 : 00 [ 7]> brk ; Use BRK to return to the monitor2bf9 : 20 > db test_num>2bfa : >skip2583>2bfa : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2bfb : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2bfd : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2c00 : f002 [ 3]> beq skip2586> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c02 : 00 [ 7]> brk ; Use BRK to return to the monitor2c03 : 20 > db test_num>2c04 : >skip2586>2c04 : ca [ 2] dex2c05 : 10df [ 4] bpl tasl7AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 294---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2c07 : a203 [ 2] ldx #32c09 : tlsr6set_zx zp1,0> load_flag 02c09 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2c0b : 48 [ 3]> pha ;use stack to load status2c0c : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2c0e : 95b2 [ 4]> sta zpt,x2c10 : 28 [ 4]> plp2c11 : 56b2 [ 6] lsr zpt,xtst_zx rLSR,fLSR,02c13 : 08 [ 3]> php ;save flags2c14 : b5b2 [ 4]> lda zpt,x2c16 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2c19 : f002 [ 3]> beq skip2591> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c1b : 00 [ 7]> brk ; Use BRK to return to the monitor2c1c : 20 > db test_num>2c1d : >skip2591>2c1d : 68 [ 4]> pla ;load status> eor_flag 02c1e : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2c20 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne2c23 : f002 [ 3]> beq skip2594> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c25 : 00 [ 7]> brk ; Use BRK to return to the monitor2c26 : 20 > db test_num>2c27 : >skip2594>2c27 : ca [ 2] dex2c28 : 10df [ 3] bpl tlsr62c2a : a203 [ 2] ldx #32c2c : tlsr7set_zx zp1,$ff> load_flag $ff2c2c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2c2e : 48 [ 3]> pha ;use stack to load status2c2f : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2c31 : 95b2 [ 4]> sta zpt,x2c33 : 28 [ 4]> plp2c34 : 56b2 [ 6] lsr zpt,xtst_zx rLSR,fLSR,$ff-fnzcAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 295---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2c36 : 08 [ 3]> php ;save flags2c37 : b5b2 [ 4]> lda zpt,x2c39 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2c3c : f002 [ 3]> beq skip2599> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c3e : 00 [ 7]> brk ; Use BRK to return to the monitor2c3f : 20 > db test_num>2c40 : >skip2599>2c40 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2c41 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2c43 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne2c46 : f002 [ 3]> beq skip2602> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c48 : 00 [ 7]> brk ; Use BRK to return to the monitor2c49 : 20 > db test_num>2c4a : >skip2602>2c4a : ca [ 2] dex2c4b : 10df [ 3] bpl tlsr72c4d : a203 [ 2] ldx #32c4f : trol6set_zx zp1,0> load_flag 02c4f : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2c51 : 48 [ 3]> pha ;use stack to load status2c52 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2c54 : 95b2 [ 4]> sta zpt,x2c56 : 28 [ 4]> plp2c57 : 36b2 [ 6] rol zpt,xtst_zx rROL,fROL,02c59 : 08 [ 3]> php ;save flags2c5a : b5b2 [ 4]> lda zpt,x2c5c : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2c5f : f002 [ 3]> beq skip2607> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c61 : 00 [ 7]> brk ; Use BRK to return to the monitor2c62 : 20 > db test_num>2c63 : >skip2607>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 296---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2c63 : 68 [ 4]> pla ;load status> eor_flag 02c64 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2c66 : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2c69 : f002 [ 3]> beq skip2610> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c6b : 00 [ 7]> brk ; Use BRK to return to the monitor2c6c : 20 > db test_num>2c6d : >skip2610>2c6d : ca [ 2] dex2c6e : 10df [ 3] bpl trol62c70 : a203 [ 2] ldx #32c72 : trol7set_zx zp1,$ff-fc> load_flag $ff-fc2c72 : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2c74 : 48 [ 3]> pha ;use stack to load status2c75 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2c77 : 95b2 [ 4]> sta zpt,x2c79 : 28 [ 4]> plp2c7a : 36b2 [ 6] rol zpt,xtst_zx rROL,fROL,$ff-fnzc2c7c : 08 [ 3]> php ;save flags2c7d : b5b2 [ 4]> lda zpt,x2c7f : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2c82 : f002 [ 3]> beq skip2615> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c84 : 00 [ 7]> brk ; Use BRK to return to the monitor2c85 : 20 > db test_num>2c86 : >skip2615>2c86 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2c87 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2c89 : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2c8c : f002 [ 3]> beq skip2618> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2c8e : 00 [ 7]> brk ; Use BRK to return to the monitor2c8f : 20 > db test_num>2c90 : >skip2618AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 297---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2c90 : ca [ 2] dex2c91 : 10df [ 3] bpl trol72c93 : a203 [ 2] ldx #32c95 : trolc6set_zx zp1,fc> load_flag fc2c95 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>2c97 : 48 [ 3]> pha ;use stack to load status2c98 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2c9a : 95b2 [ 4]> sta zpt,x2c9c : 28 [ 4]> plp2c9d : 36b2 [ 6] rol zpt,xtst_zx rROLc,fROLc,02c9f : 08 [ 3]> php ;save flags2ca0 : b5b2 [ 4]> lda zpt,x2ca2 : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2ca5 : f002 [ 3]> beq skip2623> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ca7 : 00 [ 7]> brk ; Use BRK to return to the monitor2ca8 : 20 > db test_num>2ca9 : >skip2623>2ca9 : 68 [ 4]> pla ;load status> eor_flag 02caa : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2cac : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2caf : f002 [ 3]> beq skip2626> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2cb1 : 00 [ 7]> brk ; Use BRK to return to the monitor2cb2 : 20 > db test_num>2cb3 : >skip2626>2cb3 : ca [ 2] dex2cb4 : 10df [ 3] bpl trolc62cb6 : a203 [ 2] ldx #32cb8 : trolc7set_zx zp1,$ff> load_flag $ff2cb8 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2cba : 48 [ 3]> pha ;use stack to load status2cbb : b5b9 [ 4]> lda zp1,x ;load to indexed zeropageAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 298---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2cbd : 95b2 [ 4]> sta zpt,x2cbf : 28 [ 4]> plp2cc0 : 36b2 [ 6] rol zpt,xtst_zx rROLc,fROLc,$ff-fnzc2cc2 : 08 [ 3]> php ;save flags2cc3 : b5b2 [ 4]> lda zpt,x2cc5 : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2cc8 : f002 [ 3]> beq skip2631> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2cca : 00 [ 7]> brk ; Use BRK to return to the monitor2ccb : 20 > db test_num>2ccc : >skip2631>2ccc : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2ccd : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2ccf : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2cd2 : f002 [ 3]> beq skip2634> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2cd4 : 00 [ 7]> brk ; Use BRK to return to the monitor2cd5 : 20 > db test_num>2cd6 : >skip2634>2cd6 : ca [ 2] dex2cd7 : 10df [ 3] bpl trolc72cd9 : a203 [ 2] ldx #32cdb : tror6set_zx zp1,0> load_flag 02cdb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2cdd : 48 [ 3]> pha ;use stack to load status2cde : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2ce0 : 95b2 [ 4]> sta zpt,x2ce2 : 28 [ 4]> plp2ce3 : 76b2 [ 6] ror zpt,xtst_zx rROR,fROR,02ce5 : 08 [ 3]> php ;save flags2ce6 : b5b2 [ 4]> lda zpt,x2ce8 : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2ceb : f002 [ 3]> beq skip2639> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 299---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2ced : 00 [ 7]> brk ; Use BRK to return to the monitor2cee : 20 > db test_num>2cef : >skip2639>2cef : 68 [ 4]> pla ;load status> eor_flag 02cf0 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2cf2 : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2cf5 : f002 [ 3]> beq skip2642> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2cf7 : 00 [ 7]> brk ; Use BRK to return to the monitor2cf8 : 20 > db test_num>2cf9 : >skip2642>2cf9 : ca [ 2] dex2cfa : 10df [ 3] bpl tror62cfc : a203 [ 2] ldx #32cfe : tror7set_zx zp1,$ff-fc> load_flag $ff-fc2cfe : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2d00 : 48 [ 3]> pha ;use stack to load status2d01 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2d03 : 95b2 [ 4]> sta zpt,x2d05 : 28 [ 4]> plp2d06 : 76b2 [ 6] ror zpt,xtst_zx rROR,fROR,$ff-fnzc2d08 : 08 [ 3]> php ;save flags2d09 : b5b2 [ 4]> lda zpt,x2d0b : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2d0e : f002 [ 3]> beq skip2647> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d10 : 00 [ 7]> brk ; Use BRK to return to the monitor2d11 : 20 > db test_num>2d12 : >skip2647>2d12 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2d13 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2d15 : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2d18 : f002 [ 3]> beq skip2650> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 300---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction2d1a : 00 [ 7]> brk ; Use BRK to return to the monitor2d1b : 20 > db test_num>2d1c : >skip2650>2d1c : ca [ 2] dex2d1d : 10df [ 4] bpl tror72d1f : a203 [ 2] ldx #32d21 : trorc6set_zx zp1,fc> load_flag fc2d21 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>2d23 : 48 [ 3]> pha ;use stack to load status2d24 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2d26 : 95b2 [ 4]> sta zpt,x2d28 : 28 [ 4]> plp2d29 : 76b2 [ 6] ror zpt,xtst_zx rRORc,fRORc,02d2b : 08 [ 3]> php ;save flags2d2c : b5b2 [ 4]> lda zpt,x2d2e : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne2d31 : f002 [ 3]> beq skip2655> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d33 : 00 [ 7]> brk ; Use BRK to return to the monitor2d34 : 20 > db test_num>2d35 : >skip2655>2d35 : 68 [ 4]> pla ;load status> eor_flag 02d36 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2d38 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne2d3b : f002 [ 3]> beq skip2658> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d3d : 00 [ 7]> brk ; Use BRK to return to the monitor2d3e : 20 > db test_num>2d3f : >skip2658>2d3f : ca [ 2] dex2d40 : 10df [ 3] bpl trorc62d42 : a203 [ 2] ldx #32d44 : trorc7set_zx zp1,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 301---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff2d44 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2d46 : 48 [ 3]> pha ;use stack to load status2d47 : b5b9 [ 4]> lda zp1,x ;load to indexed zeropage2d49 : 95b2 [ 4]> sta zpt,x2d4b : 28 [ 4]> plp2d4c : 76b2 [ 6] ror zpt,xtst_zx rRORc,fRORc,$ff-fnzc2d4e : 08 [ 3]> php ;save flags2d4f : b5b2 [ 4]> lda zpt,x2d51 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne2d54 : f002 [ 3]> beq skip2663> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d56 : 00 [ 7]> brk ; Use BRK to return to the monitor2d57 : 20 > db test_num>2d58 : >skip2663>2d58 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2d59 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2d5b : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne2d5e : f002 [ 3]> beq skip2666> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d60 : 00 [ 7]> brk ; Use BRK to return to the monitor2d61 : 20 > db test_num>2d62 : >skip2666>2d62 : ca [ 2] dex2d63 : 10df [ 3] bpl trorc7next_test2d65 : ad0002 [ 4]> lda test_case ;previous test2d68 : c920 [ 2]> cmp #test_num> trap_ne ;test is out of sequence2d6a : f002 [ 3]> beq skip2669> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d6c : 00 [ 7]> brk ; Use BRK to return to the monitor2d6d : 20 > db test_num>2d6e : >skip2669>0021 = >test_num = test_num + 12d6e : a921 [ 2]> lda #test_num ;*** this tests' number2d70 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each testAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 302---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; shifts - abs indexed2d73 : a203 [ 2] ldx #32d75 : tasl8set_absx zp1,0> load_flag 02d75 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2d77 : 48 [ 3]> pha ;use stack to load status2d78 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2d7a : 9d0302 [ 5]> sta abst,x2d7d : 28 [ 4]> plp2d7e : 1e0302 [ 7] asl abst,xtst_absx rASL,fASL,02d81 : 08 [ 3]> php ;save flags2d82 : bd0302 [ 4]> lda abst,x2d85 : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne2d88 : f002 [ 3]> beq skip2674> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d8a : 00 [ 7]> brk ; Use BRK to return to the monitor2d8b : 21 > db test_num>2d8c : >skip2674>2d8c : 68 [ 4]> pla ;load status> eor_flag 02d8d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2d8f : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2d92 : f002 [ 3]> beq skip2677> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2d94 : 00 [ 7]> brk ; Use BRK to return to the monitor2d95 : 21 > db test_num>2d96 : >skip2677>2d96 : ca [ 2] dex2d97 : 10dc [ 3] bpl tasl82d99 : a203 [ 2] ldx #32d9b : tasl9set_absx zp1,$ff> load_flag $ff2d9b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2d9d : 48 [ 3]> pha ;use stack to load status2d9e : b5b9 [ 4]> lda zp1,x ;load to indexed memory2da0 : 9d0302 [ 5]> sta abst,xAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 303---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2da3 : 28 [ 4]> plp2da4 : 1e0302 [ 7] asl abst,xtst_absx rASL,fASL,$ff-fnzc2da7 : 08 [ 3]> php ;save flags2da8 : bd0302 [ 4]> lda abst,x2dab : dd1102 [ 4]> cmp rASL,x ;test result> trap_ne2dae : f002 [ 3]> beq skip2682> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2db0 : 00 [ 7]> brk ; Use BRK to return to the monitor2db1 : 21 > db test_num>2db2 : >skip2682>2db2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2db3 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2db5 : dd2102 [ 4]> cmp fASL,x ;test flags> trap_ne2db8 : f002 [ 3]> beq skip2685> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2dba : 00 [ 7]> brk ; Use BRK to return to the monitor2dbb : 21 > db test_num>2dbc : >skip2685>2dbc : ca [ 2] dex2dbd : 10dc [ 3] bpl tasl92dbf : a203 [ 2] ldx #32dc1 : tlsr8set_absx zp1,0> load_flag 02dc1 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2dc3 : 48 [ 3]> pha ;use stack to load status2dc4 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2dc6 : 9d0302 [ 5]> sta abst,x2dc9 : 28 [ 4]> plp2dca : 5e0302 [ 7] lsr abst,xtst_absx rLSR,fLSR,02dcd : 08 [ 3]> php ;save flags2dce : bd0302 [ 4]> lda abst,x2dd1 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2dd4 : f002 [ 3]> beq skip2690> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2dd6 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 304---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2dd7 : 21 > db test_num>2dd8 : >skip2690>2dd8 : 68 [ 4]> pla ;load status> eor_flag 02dd9 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2ddb : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne2dde : f002 [ 3]> beq skip2693> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2de0 : 00 [ 7]> brk ; Use BRK to return to the monitor2de1 : 21 > db test_num>2de2 : >skip2693>2de2 : ca [ 2] dex2de3 : 10dc [ 3] bpl tlsr82de5 : a203 [ 2] ldx #32de7 : tlsr9set_absx zp1,$ff> load_flag $ff2de7 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2de9 : 48 [ 3]> pha ;use stack to load status2dea : b5b9 [ 4]> lda zp1,x ;load to indexed memory2dec : 9d0302 [ 5]> sta abst,x2def : 28 [ 4]> plp2df0 : 5e0302 [ 7] lsr abst,xtst_absx rLSR,fLSR,$ff-fnzc2df3 : 08 [ 3]> php ;save flags2df4 : bd0302 [ 4]> lda abst,x2df7 : dd1902 [ 4]> cmp rLSR,x ;test result> trap_ne2dfa : f002 [ 3]> beq skip2698> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2dfc : 00 [ 7]> brk ; Use BRK to return to the monitor2dfd : 21 > db test_num>2dfe : >skip2698>2dfe : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2dff : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2e01 : dd2902 [ 4]> cmp fLSR,x ;test flags> trap_ne2e04 : f002 [ 3]> beq skip2701> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 305---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2e06 : 00 [ 7]> brk ; Use BRK to return to the monitor2e07 : 21 > db test_num>2e08 : >skip2701>2e08 : ca [ 2] dex2e09 : 10dc [ 4] bpl tlsr92e0b : a203 [ 2] ldx #32e0d : trol8set_absx zp1,0> load_flag 02e0d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2e0f : 48 [ 3]> pha ;use stack to load status2e10 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2e12 : 9d0302 [ 5]> sta abst,x2e15 : 28 [ 4]> plp2e16 : 3e0302 [ 7] rol abst,xtst_absx rROL,fROL,02e19 : 08 [ 3]> php ;save flags2e1a : bd0302 [ 4]> lda abst,x2e1d : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2e20 : f002 [ 3]> beq skip2706> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e22 : 00 [ 7]> brk ; Use BRK to return to the monitor2e23 : 21 > db test_num>2e24 : >skip2706>2e24 : 68 [ 4]> pla ;load status> eor_flag 02e25 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2e27 : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2e2a : f002 [ 3]> beq skip2709> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e2c : 00 [ 7]> brk ; Use BRK to return to the monitor2e2d : 21 > db test_num>2e2e : >skip2709>2e2e : ca [ 2] dex2e2f : 10dc [ 3] bpl trol82e31 : a203 [ 2] ldx #32e33 : trol9set_absx zp1,$ff-fc> load_flag $ff-fcAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 306---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2e33 : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2e35 : 48 [ 3]> pha ;use stack to load status2e36 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2e38 : 9d0302 [ 5]> sta abst,x2e3b : 28 [ 4]> plp2e3c : 3e0302 [ 7] rol abst,xtst_absx rROL,fROL,$ff-fnzc2e3f : 08 [ 3]> php ;save flags2e40 : bd0302 [ 4]> lda abst,x2e43 : dd1102 [ 4]> cmp rROL,x ;test result> trap_ne2e46 : f002 [ 3]> beq skip2714> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e48 : 00 [ 7]> brk ; Use BRK to return to the monitor2e49 : 21 > db test_num>2e4a : >skip2714>2e4a : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2e4b : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2e4d : dd2102 [ 4]> cmp fROL,x ;test flags> trap_ne2e50 : f002 [ 3]> beq skip2717> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e52 : 00 [ 7]> brk ; Use BRK to return to the monitor2e53 : 21 > db test_num>2e54 : >skip2717>2e54 : ca [ 2] dex2e55 : 10dc [ 3] bpl trol92e57 : a203 [ 2] ldx #32e59 : trolc8set_absx zp1,fc> load_flag fc2e59 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>2e5b : 48 [ 3]> pha ;use stack to load status2e5c : b5b9 [ 4]> lda zp1,x ;load to indexed memory2e5e : 9d0302 [ 5]> sta abst,x2e61 : 28 [ 4]> plp2e62 : 3e0302 [ 7] rol abst,xtst_absx rROLc,fROLc,02e65 : 08 [ 3]> php ;save flags2e66 : bd0302 [ 4]> lda abst,x2e69 : dd1502 [ 4]> cmp rROLc,x ;test resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 307---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne2e6c : f002 [ 3]> beq skip2722> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e6e : 00 [ 7]> brk ; Use BRK to return to the monitor2e6f : 21 > db test_num>2e70 : >skip2722>2e70 : 68 [ 4]> pla ;load status> eor_flag 02e71 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2e73 : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2e76 : f002 [ 3]> beq skip2725> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e78 : 00 [ 7]> brk ; Use BRK to return to the monitor2e79 : 21 > db test_num>2e7a : >skip2725>2e7a : ca [ 2] dex2e7b : 10dc [ 3] bpl trolc82e7d : a203 [ 2] ldx #32e7f : trolc9set_absx zp1,$ff> load_flag $ff2e7f : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2e81 : 48 [ 3]> pha ;use stack to load status2e82 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2e84 : 9d0302 [ 5]> sta abst,x2e87 : 28 [ 4]> plp2e88 : 3e0302 [ 7] rol abst,xtst_absx rROLc,fROLc,$ff-fnzc2e8b : 08 [ 3]> php ;save flags2e8c : bd0302 [ 4]> lda abst,x2e8f : dd1502 [ 4]> cmp rROLc,x ;test result> trap_ne2e92 : f002 [ 3]> beq skip2730> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e94 : 00 [ 7]> brk ; Use BRK to return to the monitor2e95 : 21 > db test_num>2e96 : >skip2730>2e96 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2e97 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 308---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2e99 : dd2502 [ 4]> cmp fROLc,x ;test flags> trap_ne2e9c : f002 [ 3]> beq skip2733> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2e9e : 00 [ 7]> brk ; Use BRK to return to the monitor2e9f : 21 > db test_num>2ea0 : >skip2733>2ea0 : ca [ 2] dex2ea1 : 10dc [ 3] bpl trolc92ea3 : a203 [ 2] ldx #32ea5 : tror8set_absx zp1,0> load_flag 02ea5 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2ea7 : 48 [ 3]> pha ;use stack to load status2ea8 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2eaa : 9d0302 [ 5]> sta abst,x2ead : 28 [ 4]> plp2eae : 7e0302 [ 7] ror abst,xtst_absx rROR,fROR,02eb1 : 08 [ 3]> php ;save flags2eb2 : bd0302 [ 4]> lda abst,x2eb5 : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2eb8 : f002 [ 3]> beq skip2738> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2eba : 00 [ 7]> brk ; Use BRK to return to the monitor2ebb : 21 > db test_num>2ebc : >skip2738>2ebc : 68 [ 4]> pla ;load status> eor_flag 02ebd : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2ebf : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2ec2 : f002 [ 3]> beq skip2741> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ec4 : 00 [ 7]> brk ; Use BRK to return to the monitor2ec5 : 21 > db test_num>2ec6 : >skip2741>2ec6 : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 309---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2ec7 : 10dc [ 3] bpl tror82ec9 : a203 [ 2] ldx #32ecb : tror9set_absx zp1,$ff-fc> load_flag $ff-fc2ecb : a9fe [ 2]> lda #$ff-fc ;allow test to change I-flag (no mask)>2ecd : 48 [ 3]> pha ;use stack to load status2ece : b5b9 [ 4]> lda zp1,x ;load to indexed memory2ed0 : 9d0302 [ 5]> sta abst,x2ed3 : 28 [ 4]> plp2ed4 : 7e0302 [ 7] ror abst,xtst_absx rROR,fROR,$ff-fnzc2ed7 : 08 [ 3]> php ;save flags2ed8 : bd0302 [ 4]> lda abst,x2edb : dd1902 [ 4]> cmp rROR,x ;test result> trap_ne2ede : f002 [ 3]> beq skip2746> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ee0 : 00 [ 7]> brk ; Use BRK to return to the monitor2ee1 : 21 > db test_num>2ee2 : >skip2746>2ee2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2ee3 : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2ee5 : dd2902 [ 4]> cmp fROR,x ;test flags> trap_ne2ee8 : f002 [ 3]> beq skip2749> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2eea : 00 [ 7]> brk ; Use BRK to return to the monitor2eeb : 21 > db test_num>2eec : >skip2749>2eec : ca [ 2] dex2eed : 10dc [ 3] bpl tror92eef : a203 [ 2] ldx #32ef1 : trorc8set_absx zp1,fc> load_flag fc2ef1 : a901 [ 2]> lda #fc ;allow test to change I-flag (no mask)>2ef3 : 48 [ 3]> pha ;use stack to load status2ef4 : b5b9 [ 4]> lda zp1,x ;load to indexed memory2ef6 : 9d0302 [ 5]> sta abst,x2ef9 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 310---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2efa : 7e0302 [ 7] ror abst,xtst_absx rRORc,fRORc,02efd : 08 [ 3]> php ;save flags2efe : bd0302 [ 4]> lda abst,x2f01 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne2f04 : f002 [ 3]> beq skip2754> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f06 : 00 [ 7]> brk ; Use BRK to return to the monitor2f07 : 21 > db test_num>2f08 : >skip2754>2f08 : 68 [ 4]> pla ;load status> eor_flag 02f09 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2f0b : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne2f0e : f002 [ 3]> beq skip2757> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f10 : 00 [ 7]> brk ; Use BRK to return to the monitor2f11 : 21 > db test_num>2f12 : >skip2757>2f12 : ca [ 2] dex2f13 : 10dc [ 4] bpl trorc82f15 : a203 [ 2] ldx #32f17 : trorc9set_absx zp1,$ff> load_flag $ff2f17 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2f19 : 48 [ 3]> pha ;use stack to load status2f1a : b5b9 [ 4]> lda zp1,x ;load to indexed memory2f1c : 9d0302 [ 5]> sta abst,x2f1f : 28 [ 4]> plp2f20 : 7e0302 [ 7] ror abst,xtst_absx rRORc,fRORc,$ff-fnzc2f23 : 08 [ 3]> php ;save flags2f24 : bd0302 [ 4]> lda abst,x2f27 : dd1d02 [ 4]> cmp rRORc,x ;test result> trap_ne2f2a : f002 [ 3]> beq skip2762> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f2c : 00 [ 7]> brk ; Use BRK to return to the monitor2f2d : 21 > db test_num>2f2e : >skip2762AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 311---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->2f2e : 68 [ 4]> pla ;load status> eor_flag $ff-fnzc2f2f : 497c [ 2]> eor #$ff-fnzc|fao ;invert expected flags + always on bits>2f31 : dd2d02 [ 4]> cmp fRORc,x ;test flags> trap_ne2f34 : f002 [ 3]> beq skip2765> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f36 : 00 [ 7]> brk ; Use BRK to return to the monitor2f37 : 21 > db test_num>2f38 : >skip2765>2f38 : ca [ 2] dex2f39 : 10dc [ 3] bpl trorc9next_test2f3b : ad0002 [ 4]> lda test_case ;previous test2f3e : c921 [ 2]> cmp #test_num> trap_ne ;test is out of sequence2f40 : f002 [ 3]> beq skip2768> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f42 : 00 [ 7]> brk ; Use BRK to return to the monitor2f43 : 21 > db test_num>2f44 : >skip2768>0022 = >test_num = test_num + 12f44 : a922 [ 2]> lda #test_num ;*** this tests' number2f46 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; testing memory increment/decrement - INC DEC all addressing modes; zeropage2f49 : a200 [ 2] ldx #02f4b : a97e [ 2] lda #$7e2f4d : 85b2 [ 3] sta zpt2f4f : tincset_stat 0> load_flag 02f4f : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2f51 : 48 [ 3]> pha ;use stack to load status2f52 : 28 [ 4]> plp2f53 : e6b2 [ 5] inc zpttst_z rINC,fINC,02f55 : 08 [ 3]> php ;save flags2f56 : a5b2 [ 3]> lda zpt2f58 : dd3102 [ 4]> cmp rINC,x ;test resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 312---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap_ne2f5b : f002 [ 3]> beq skip2773> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f5d : 00 [ 7]> brk ; Use BRK to return to the monitor2f5e : 22 > db test_num>2f5f : >skip2773>2f5f : 68 [ 4]> pla ;load status> eor_flag 02f60 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2f62 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne2f65 : f002 [ 3]> beq skip2776> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f67 : 00 [ 7]> brk ; Use BRK to return to the monitor2f68 : 22 > db test_num>2f69 : >skip2776>2f69 : e8 [ 2] inx2f6a : e002 [ 2] cpx #22f6c : d004 [ 3] bne tinc12f6e : a9fe [ 2] lda #$fe2f70 : 85b2 [ 3] sta zpt2f72 : e005 [ 2] tinc1 cpx #52f74 : d0d9 [ 3] bne tinc2f76 : ca [ 2] dex2f77 : e6b2 [ 5] inc zpt2f79 : tdecset_stat 0> load_flag 02f79 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>2f7b : 48 [ 3]> pha ;use stack to load status2f7c : 28 [ 4]> plp2f7d : c6b2 [ 5] dec zpttst_z rINC,fINC,02f7f : 08 [ 3]> php ;save flags2f80 : a5b2 [ 3]> lda zpt2f82 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne2f85 : f002 [ 3]> beq skip2781> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f87 : 00 [ 7]> brk ; Use BRK to return to the monitor2f88 : 22 > db test_num>2f89 : >skip2781>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 313---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2f89 : 68 [ 4]> pla ;load status> eor_flag 02f8a : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>2f8c : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne2f8f : f002 [ 3]> beq skip2784> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2f91 : 00 [ 7]> brk ; Use BRK to return to the monitor2f92 : 22 > db test_num>2f93 : >skip2784>2f93 : ca [ 2] dex2f94 : 300a [ 3] bmi tdec12f96 : e001 [ 2] cpx #12f98 : d0df [ 3] bne tdec2f9a : a981 [ 2] lda #$812f9c : 85b2 [ 3] sta zpt2f9e : d0d9 [ 3] bne tdec2fa0 : tdec12fa0 : a200 [ 2] ldx #02fa2 : a97e [ 2] lda #$7e2fa4 : 85b2 [ 3] sta zpt2fa6 : tinc10set_stat $ff> load_flag $ff2fa6 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2fa8 : 48 [ 3]> pha ;use stack to load status2fa9 : 28 [ 4]> plp2faa : e6b2 [ 5] inc zpttst_z rINC,fINC,$ff-fnz2fac : 08 [ 3]> php ;save flags2fad : a5b2 [ 3]> lda zpt2faf : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne2fb2 : f002 [ 3]> beq skip2789> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2fb4 : 00 [ 7]> brk ; Use BRK to return to the monitor2fb5 : 22 > db test_num>2fb6 : >skip2789>2fb6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz2fb7 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>2fb9 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne2fbc : f002 [ 3]> beq skip2792AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 314---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2fbe : 00 [ 7]> brk ; Use BRK to return to the monitor2fbf : 22 > db test_num>2fc0 : >skip2792>2fc0 : e8 [ 2] inx2fc1 : e002 [ 2] cpx #22fc3 : d004 [ 3] bne tinc112fc5 : a9fe [ 2] lda #$fe2fc7 : 85b2 [ 3] sta zpt2fc9 : e005 [ 2] tinc11 cpx #52fcb : d0d9 [ 3] bne tinc102fcd : ca [ 2] dex2fce : e6b2 [ 5] inc zpt2fd0 : tdec10set_stat $ff> load_flag $ff2fd0 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>2fd2 : 48 [ 3]> pha ;use stack to load status2fd3 : 28 [ 4]> plp2fd4 : c6b2 [ 5] dec zpttst_z rINC,fINC,$ff-fnz2fd6 : 08 [ 3]> php ;save flags2fd7 : a5b2 [ 3]> lda zpt2fd9 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne2fdc : f002 [ 3]> beq skip2797> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2fde : 00 [ 7]> brk ; Use BRK to return to the monitor2fdf : 22 > db test_num>2fe0 : >skip2797>2fe0 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz2fe1 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>2fe3 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne2fe6 : f002 [ 3]> beq skip2800> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2fe8 : 00 [ 7]> brk ; Use BRK to return to the monitor2fe9 : 22 > db test_num>2fea : >skip2800>2fea : ca [ 2] dexAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 315---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------2feb : 300a [ 3] bmi tdec112fed : e001 [ 2] cpx #12fef : d0df [ 3] bne tdec102ff1 : a981 [ 2] lda #$812ff3 : 85b2 [ 3] sta zpt2ff5 : d0d9 [ 3] bne tdec102ff7 : tdec11next_test2ff7 : ad0002 [ 4]> lda test_case ;previous test2ffa : c922 [ 2]> cmp #test_num> trap_ne ;test is out of sequence2ffc : f002 [ 4]> beq skip2803> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction2ffe : 00 [ 7]> brk ; Use BRK to return to the monitor2fff : 22 > db test_num>3000 : >skip2803>0023 = >test_num = test_num + 13000 : a923 [ 2]> lda #test_num ;*** this tests' number3002 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; absolute memory3005 : a200 [ 2] ldx #03007 : a97e [ 2] lda #$7e3009 : 8d0302 [ 4] sta abst300c : tinc2set_stat 0> load_flag 0300c : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>300e : 48 [ 3]> pha ;use stack to load status300f : 28 [ 4]> plp3010 : ee0302 [ 6] inc absttst_abs rINC,fINC,03013 : 08 [ 3]> php ;save flags3014 : ad0302 [ 4]> lda abst3017 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne301a : f002 [ 3]> beq skip2808> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction301c : 00 [ 7]> brk ; Use BRK to return to the monitor301d : 23 > db test_num>301e : >skip2808>301e : 68 [ 4]> pla ;load status> eor_flag 0301f : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 316---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->3021 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3024 : f002 [ 3]> beq skip2811> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3026 : 00 [ 7]> brk ; Use BRK to return to the monitor3027 : 23 > db test_num>3028 : >skip2811>3028 : e8 [ 2] inx3029 : e002 [ 2] cpx #2302b : d005 [ 3] bne tinc3302d : a9fe [ 2] lda #$fe302f : 8d0302 [ 4] sta abst3032 : e005 [ 2] tinc3 cpx #53034 : d0d6 [ 3] bne tinc23036 : ca [ 2] dex3037 : ee0302 [ 6] inc abst303a : tdec2set_stat 0> load_flag 0303a : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>303c : 48 [ 3]> pha ;use stack to load status303d : 28 [ 4]> plp303e : ce0302 [ 6] dec absttst_abs rINC,fINC,03041 : 08 [ 3]> php ;save flags3042 : ad0302 [ 4]> lda abst3045 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne3048 : f002 [ 3]> beq skip2816> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction304a : 00 [ 7]> brk ; Use BRK to return to the monitor304b : 23 > db test_num>304c : >skip2816>304c : 68 [ 4]> pla ;load status> eor_flag 0304d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>304f : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3052 : f002 [ 3]> beq skip2819> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3054 : 00 [ 7]> brk ; Use BRK to return to the monitor3055 : 23 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 317---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3056 : >skip2819>3056 : ca [ 2] dex3057 : 300b [ 3] bmi tdec33059 : e001 [ 2] cpx #1305b : d0dd [ 3] bne tdec2305d : a981 [ 2] lda #$81305f : 8d0302 [ 4] sta abst3062 : d0d6 [ 3] bne tdec23064 : tdec33064 : a200 [ 2] ldx #03066 : a97e [ 2] lda #$7e3068 : 8d0302 [ 4] sta abst306b : tinc12set_stat $ff> load_flag $ff306b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>306d : 48 [ 3]> pha ;use stack to load status306e : 28 [ 4]> plp306f : ee0302 [ 6] inc absttst_abs rINC,fINC,$ff-fnz3072 : 08 [ 3]> php ;save flags3073 : ad0302 [ 4]> lda abst3076 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne3079 : f002 [ 3]> beq skip2824> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction307b : 00 [ 7]> brk ; Use BRK to return to the monitor307c : 23 > db test_num>307d : >skip2824>307d : 68 [ 4]> pla ;load status> eor_flag $ff-fnz307e : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3080 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3083 : f002 [ 3]> beq skip2827> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3085 : 00 [ 7]> brk ; Use BRK to return to the monitor3086 : 23 > db test_num>3087 : >skip2827>3087 : e8 [ 2] inx3088 : e002 [ 2] cpx #2308a : d005 [ 3] bne tinc13308c : a9fe [ 2] lda #$feAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 318---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------308e : 8d0302 [ 4] sta abst3091 : e005 [ 2] tinc13 cpx #53093 : d0d6 [ 3] bne tinc123095 : ca [ 2] dex3096 : ee0302 [ 6] inc abst3099 : tdec12set_stat $ff> load_flag $ff3099 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>309b : 48 [ 3]> pha ;use stack to load status309c : 28 [ 4]> plp309d : ce0302 [ 6] dec absttst_abs rINC,fINC,$ff-fnz30a0 : 08 [ 3]> php ;save flags30a1 : ad0302 [ 4]> lda abst30a4 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne30a7 : f002 [ 3]> beq skip2832> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction30a9 : 00 [ 7]> brk ; Use BRK to return to the monitor30aa : 23 > db test_num>30ab : >skip2832>30ab : 68 [ 4]> pla ;load status> eor_flag $ff-fnz30ac : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>30ae : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne30b1 : f002 [ 3]> beq skip2835> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction30b3 : 00 [ 7]> brk ; Use BRK to return to the monitor30b4 : 23 > db test_num>30b5 : >skip2835>30b5 : ca [ 2] dex30b6 : 300b [ 3] bmi tdec1330b8 : e001 [ 2] cpx #130ba : d0dd [ 3] bne tdec1230bc : a981 [ 2] lda #$8130be : 8d0302 [ 4] sta abst30c1 : d0d6 [ 3] bne tdec1230c3 : tdec13next_test30c3 : ad0002 [ 4]> lda test_case ;previous test30c6 : c923 [ 2]> cmp #test_num> trap_ne ;test is out of sequence30c8 : f002 [ 3]> beq skip2838AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 319---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction30ca : 00 [ 7]> brk ; Use BRK to return to the monitor30cb : 23 > db test_num>30cc : >skip2838>0024 = >test_num = test_num + 130cc : a924 [ 2]> lda #test_num ;*** this tests' number30ce : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; zeropage indexed30d1 : a200 [ 2] ldx #030d3 : a97e [ 2] lda #$7e30d5 : 95b2 [ 4] tinc4 sta zpt,xset_stat 0> load_flag 030d7 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>30d9 : 48 [ 3]> pha ;use stack to load status30da : 28 [ 4]> plp30db : f6b2 [ 6] inc zpt,xtst_zx rINC,fINC,030dd : 08 [ 3]> php ;save flags30de : b5b2 [ 4]> lda zpt,x30e0 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne30e3 : f002 [ 3]> beq skip2843> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction30e5 : 00 [ 7]> brk ; Use BRK to return to the monitor30e6 : 24 > db test_num>30e7 : >skip2843>30e7 : 68 [ 4]> pla ;load status> eor_flag 030e8 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>30ea : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne30ed : f002 [ 3]> beq skip2846> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction30ef : 00 [ 7]> brk ; Use BRK to return to the monitor30f0 : 24 > db test_num>30f1 : >skip2846>30f1 : b5b2 [ 4] lda zpt,xAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 320---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------30f3 : e8 [ 2] inx30f4 : e002 [ 2] cpx #230f6 : d002 [ 3] bne tinc530f8 : a9fe [ 2] lda #$fe30fa : e005 [ 2] tinc5 cpx #530fc : d0d7 [ 3] bne tinc430fe : ca [ 2] dex30ff : a902 [ 2] lda #23101 : 95b2 [ 4] tdec4 sta zpt,xset_stat 0> load_flag 03103 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3105 : 48 [ 3]> pha ;use stack to load status3106 : 28 [ 4]> plp3107 : d6b2 [ 6] dec zpt,xtst_zx rINC,fINC,03109 : 08 [ 3]> php ;save flags310a : b5b2 [ 4]> lda zpt,x310c : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne310f : f002 [ 3]> beq skip2851> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3111 : 00 [ 7]> brk ; Use BRK to return to the monitor3112 : 24 > db test_num>3113 : >skip2851>3113 : 68 [ 4]> pla ;load status> eor_flag 03114 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3116 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3119 : f002 [ 3]> beq skip2854> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction311b : 00 [ 7]> brk ; Use BRK to return to the monitor311c : 24 > db test_num>311d : >skip2854>311d : b5b2 [ 4] lda zpt,x311f : ca [ 2] dex3120 : 3008 [ 3] bmi tdec53122 : e001 [ 2] cpx #13124 : d0db [ 3] bne tdec43126 : a981 [ 2] lda #$813128 : d0d7 [ 3] bne tdec4312a : tdec5312a : a200 [ 2] ldx #0312c : a97e [ 2] lda #$7eAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 321---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------312e : 95b2 [ 4] tinc14 sta zpt,xset_stat $ff> load_flag $ff3130 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3132 : 48 [ 3]> pha ;use stack to load status3133 : 28 [ 4]> plp3134 : f6b2 [ 6] inc zpt,xtst_zx rINC,fINC,$ff-fnz3136 : 08 [ 3]> php ;save flags3137 : b5b2 [ 4]> lda zpt,x3139 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne313c : f002 [ 3]> beq skip2859> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction313e : 00 [ 7]> brk ; Use BRK to return to the monitor313f : 24 > db test_num>3140 : >skip2859>3140 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3141 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3143 : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3146 : f002 [ 3]> beq skip2862> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3148 : 00 [ 7]> brk ; Use BRK to return to the monitor3149 : 24 > db test_num>314a : >skip2862>314a : b5b2 [ 4] lda zpt,x314c : e8 [ 2] inx314d : e002 [ 2] cpx #2314f : d002 [ 3] bne tinc153151 : a9fe [ 2] lda #$fe3153 : e005 [ 2] tinc15 cpx #53155 : d0d7 [ 3] bne tinc143157 : ca [ 2] dex3158 : a902 [ 2] lda #2315a : 95b2 [ 4] tdec14 sta zpt,xset_stat $ff> load_flag $ff315c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>315e : 48 [ 3]> pha ;use stack to load status315f : 28 [ 4]> plp3160 : d6b2 [ 6] dec zpt,xAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 322---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------tst_zx rINC,fINC,$ff-fnz3162 : 08 [ 3]> php ;save flags3163 : b5b2 [ 4]> lda zpt,x3165 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne3168 : f002 [ 3]> beq skip2867> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction316a : 00 [ 7]> brk ; Use BRK to return to the monitor316b : 24 > db test_num>316c : >skip2867>316c : 68 [ 4]> pla ;load status> eor_flag $ff-fnz316d : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>316f : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3172 : f002 [ 3]> beq skip2870> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3174 : 00 [ 7]> brk ; Use BRK to return to the monitor3175 : 24 > db test_num>3176 : >skip2870>3176 : b5b2 [ 4] lda zpt,x3178 : ca [ 2] dex3179 : 3008 [ 3] bmi tdec15317b : e001 [ 2] cpx #1317d : d0db [ 3] bne tdec14317f : a981 [ 2] lda #$813181 : d0d7 [ 3] bne tdec143183 : tdec15next_test3183 : ad0002 [ 4]> lda test_case ;previous test3186 : c924 [ 2]> cmp #test_num> trap_ne ;test is out of sequence3188 : f002 [ 3]> beq skip2873> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction318a : 00 [ 7]> brk ; Use BRK to return to the monitor318b : 24 > db test_num>318c : >skip2873>0025 = >test_num = test_num + 1318c : a925 [ 2]> lda #test_num ;*** this tests' number318e : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; memory indexedAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 323---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3191 : a200 [ 2] ldx #03193 : a97e [ 2] lda #$7e3195 : 9d0302 [ 5] tinc6 sta abst,xset_stat 0> load_flag 03198 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>319a : 48 [ 3]> pha ;use stack to load status319b : 28 [ 4]> plp319c : fe0302 [ 7] inc abst,xtst_absx rINC,fINC,0319f : 08 [ 3]> php ;save flags31a0 : bd0302 [ 4]> lda abst,x31a3 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne31a6 : f002 [ 3]> beq skip2878> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction31a8 : 00 [ 7]> brk ; Use BRK to return to the monitor31a9 : 25 > db test_num>31aa : >skip2878>31aa : 68 [ 4]> pla ;load status> eor_flag 031ab : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>31ad : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne31b0 : f002 [ 3]> beq skip2881> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction31b2 : 00 [ 7]> brk ; Use BRK to return to the monitor31b3 : 25 > db test_num>31b4 : >skip2881>31b4 : bd0302 [ 4] lda abst,x31b7 : e8 [ 2] inx31b8 : e002 [ 2] cpx #231ba : d002 [ 3] bne tinc731bc : a9fe [ 2] lda #$fe31be : e005 [ 2] tinc7 cpx #531c0 : d0d3 [ 3] bne tinc631c2 : ca [ 2] dex31c3 : a902 [ 2] lda #231c5 : 9d0302 [ 5] tdec6 sta abst,xset_stat 0> load_flag 031c8 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>31ca : 48 [ 3]> pha ;use stack to load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 324---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------31cb : 28 [ 4]> plp31cc : de0302 [ 7] dec abst,xtst_absx rINC,fINC,031cf : 08 [ 3]> php ;save flags31d0 : bd0302 [ 4]> lda abst,x31d3 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne31d6 : f002 [ 3]> beq skip2886> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction31d8 : 00 [ 7]> brk ; Use BRK to return to the monitor31d9 : 25 > db test_num>31da : >skip2886>31da : 68 [ 4]> pla ;load status> eor_flag 031db : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>31dd : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne31e0 : f002 [ 3]> beq skip2889> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction31e2 : 00 [ 7]> brk ; Use BRK to return to the monitor31e3 : 25 > db test_num>31e4 : >skip2889>31e4 : bd0302 [ 4] lda abst,x31e7 : ca [ 2] dex31e8 : 3008 [ 3] bmi tdec731ea : e001 [ 2] cpx #131ec : d0d7 [ 3] bne tdec631ee : a981 [ 2] lda #$8131f0 : d0d3 [ 3] bne tdec631f2 : tdec731f2 : a200 [ 2] ldx #031f4 : a97e [ 2] lda #$7e31f6 : 9d0302 [ 5] tinc16 sta abst,xset_stat $ff> load_flag $ff31f9 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>31fb : 48 [ 3]> pha ;use stack to load status31fc : 28 [ 4]> plp31fd : fe0302 [ 7] inc abst,xtst_absx rINC,fINC,$ff-fnz3200 : 08 [ 3]> php ;save flags3201 : bd0302 [ 4]> lda abst,x3204 : dd3102 [ 4]> cmp rINC,x ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 325---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3207 : f002 [ 3]> beq skip2894> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3209 : 00 [ 7]> brk ; Use BRK to return to the monitor320a : 25 > db test_num>320b : >skip2894>320b : 68 [ 4]> pla ;load status> eor_flag $ff-fnz320c : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>320e : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3211 : f002 [ 3]> beq skip2897> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3213 : 00 [ 7]> brk ; Use BRK to return to the monitor3214 : 25 > db test_num>3215 : >skip2897>3215 : bd0302 [ 4] lda abst,x3218 : e8 [ 2] inx3219 : e002 [ 2] cpx #2321b : d002 [ 3] bne tinc17321d : a9fe [ 2] lda #$fe321f : e005 [ 2] tinc17 cpx #53221 : d0d3 [ 4] bne tinc163223 : ca [ 2] dex3224 : a902 [ 2] lda #23226 : 9d0302 [ 5] tdec16 sta abst,xset_stat $ff> load_flag $ff3229 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>322b : 48 [ 3]> pha ;use stack to load status322c : 28 [ 4]> plp322d : de0302 [ 7] dec abst,xtst_absx rINC,fINC,$ff-fnz3230 : 08 [ 3]> php ;save flags3231 : bd0302 [ 4]> lda abst,x3234 : dd3102 [ 4]> cmp rINC,x ;test result> trap_ne3237 : f002 [ 3]> beq skip2902> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3239 : 00 [ 7]> brk ; Use BRK to return to the monitor323a : 25 > db test_num>323b : >skip2902>323b : 68 [ 4]> pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 326---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> eor_flag $ff-fnz323c : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>323e : dd3602 [ 4]> cmp fINC,x ;test flags> trap_ne3241 : f002 [ 3]> beq skip2905> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3243 : 00 [ 7]> brk ; Use BRK to return to the monitor3244 : 25 > db test_num>3245 : >skip2905>3245 : bd0302 [ 4] lda abst,x3248 : ca [ 2] dex3249 : 3008 [ 3] bmi tdec17324b : e001 [ 2] cpx #1324d : d0d7 [ 3] bne tdec16324f : a981 [ 2] lda #$813251 : d0d3 [ 3] bne tdec163253 : tdec17next_test3253 : ad0002 [ 4]> lda test_case ;previous test3256 : c925 [ 2]> cmp #test_num> trap_ne ;test is out of sequence3258 : f002 [ 3]> beq skip2908> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction325a : 00 [ 7]> brk ; Use BRK to return to the monitor325b : 25 > db test_num>325c : >skip2908>0026 = >test_num = test_num + 1325c : a926 [ 2]> lda #test_num ;*** this tests' number325e : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; testing logical instructions - AND EOR ORA all addressing modes; AND3261 : a203 [ 2] ldx #3 ;immediate - self modifying code3263 : b5c2 [ 4] tand lda zpAN,x3265 : 8d7032 [ 4] sta tandi1set_ax absANa,0> load_flag 03268 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>326a : 48 [ 3]> pha ;use stack to load status326b : bd4b02 [ 4]> lda absANa,x ;precharge accu326e : 28 [ 4]> plp3270 = tandi1 equ *+1 ;target for immediate operandAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 327---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------326f : 2963 [ 2] and #99tst_ax absrlo,absflo,03271 : 08 [ 3]> php ;save flags3272 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3275 : f002 [ 3]> beq skip2913> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3277 : 00 [ 7]> brk ; Use BRK to return to the monitor3278 : 26 > db test_num>3279 : >skip2913>3279 : 68 [ 4]> pla ;load status> eor_flag 0327a : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>327c : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;327f : f002 [ 3]> beq skip2916> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3281 : 00 [ 7]> brk ; Use BRK to return to the monitor3282 : 26 > db test_num>3283 : >skip2916>3283 : ca [ 2] dex3284 : 10dd [ 3] bpl tand3286 : a203 [ 2] ldx #33288 : b5c2 [ 4] tand1 lda zpAN,x328a : 8d9532 [ 4] sta tandi2set_ax absANa,$ff> load_flag $ff328d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>328f : 48 [ 3]> pha ;use stack to load status3290 : bd4b02 [ 4]> lda absANa,x ;precharge accu3293 : 28 [ 4]> plp3295 = tandi2 equ *+1 ;target for immediate operand3294 : 2963 [ 2] and #99tst_ax absrlo,absflo,$ff-fnz3296 : 08 [ 3]> php ;save flags3297 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne329a : f002 [ 3]> beq skip2921> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction329c : 00 [ 7]> brk ; Use BRK to return to the monitor329d : 26 > db test_num>329e : >skip2921>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 328---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------329e : 68 [ 4]> pla ;load status> eor_flag $ff-fnz329f : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>32a1 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;32a4 : f002 [ 3]> beq skip2924> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction32a6 : 00 [ 7]> brk ; Use BRK to return to the monitor32a7 : 26 > db test_num>32a8 : >skip2924>32a8 : ca [ 2] dex32a9 : 10dd [ 3] bpl tand132ab : a203 [ 2] ldx #3 ;zp32ad : b5c2 [ 4] tand2 lda zpAN,x32af : 85b2 [ 3] sta zptset_ax absANa,0> load_flag 032b1 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>32b3 : 48 [ 3]> pha ;use stack to load status32b4 : bd4b02 [ 4]> lda absANa,x ;precharge accu32b7 : 28 [ 4]> plp32b8 : 25b2 [ 3] and zpttst_ax absrlo,absflo,032ba : 08 [ 3]> php ;save flags32bb : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne32be : f002 [ 3]> beq skip2929> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction32c0 : 00 [ 7]> brk ; Use BRK to return to the monitor32c1 : 26 > db test_num>32c2 : >skip2929>32c2 : 68 [ 4]> pla ;load status> eor_flag 032c3 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>32c5 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;32c8 : f002 [ 3]> beq skip2932> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction32ca : 00 [ 7]> brk ; Use BRK to return to the monitor32cb : 26 > db test_num>32cc : >skip2932AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 329---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->32cc : ca [ 2] dex32cd : 10de [ 3] bpl tand232cf : a203 [ 2] ldx #332d1 : b5c2 [ 4] tand3 lda zpAN,x32d3 : 85b2 [ 3] sta zptset_ax absANa,$ff> load_flag $ff32d5 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>32d7 : 48 [ 3]> pha ;use stack to load status32d8 : bd4b02 [ 4]> lda absANa,x ;precharge accu32db : 28 [ 4]> plp32dc : 25b2 [ 3] and zpttst_ax absrlo,absflo,$ff-fnz32de : 08 [ 3]> php ;save flags32df : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne32e2 : f002 [ 3]> beq skip2937> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction32e4 : 00 [ 7]> brk ; Use BRK to return to the monitor32e5 : 26 > db test_num>32e6 : >skip2937>32e6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz32e7 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>32e9 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;32ec : f002 [ 3]> beq skip2940> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction32ee : 00 [ 7]> brk ; Use BRK to return to the monitor32ef : 26 > db test_num>32f0 : >skip2940>32f0 : ca [ 2] dex32f1 : 10de [ 3] bpl tand332f3 : a203 [ 2] ldx #3 ;abs32f5 : b5c2 [ 4] tand4 lda zpAN,x32f7 : 8d0302 [ 4] sta abstset_ax absANa,0> load_flag 032fa : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>32fc : 48 [ 3]> pha ;use stack to load status32fd : bd4b02 [ 4]> lda absANa,x ;precharge accuAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 330---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3300 : 28 [ 4]> plp3301 : 2d0302 [ 4] and absttst_ax absrlo,absflo,03304 : 08 [ 3]> php ;save flags3305 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3308 : f002 [ 3]> beq skip2945> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction330a : 00 [ 7]> brk ; Use BRK to return to the monitor330b : 26 > db test_num>330c : >skip2945>330c : 68 [ 4]> pla ;load status> eor_flag 0330d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>330f : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3312 : f002 [ 3]> beq skip2948> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3314 : 00 [ 7]> brk ; Use BRK to return to the monitor3315 : 26 > db test_num>3316 : >skip2948>3316 : ca [ 2] dex3317 : 10dc [ 4] bpl tand43319 : a203 [ 2] ldx #3331b : b5c2 [ 4] tand5 lda zpAN,x331d : 8d0302 [ 4] sta abstset_ax absANa,$ff> load_flag $ff3320 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3322 : 48 [ 3]> pha ;use stack to load status3323 : bd4b02 [ 4]> lda absANa,x ;precharge accu3326 : 28 [ 4]> plp3327 : 2d0302 [ 4] and absttst_ax absrlo,absflo,$ff-fnz332a : 08 [ 3]> php ;save flags332b : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne332e : f002 [ 3]> beq skip2953> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3330 : 00 [ 7]> brk ; Use BRK to return to the monitor3331 : 26 > db test_num>3332 : >skip2953AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 331---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->3332 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3333 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3335 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3338 : f002 [ 3]> beq skip2956> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction333a : 00 [ 7]> brk ; Use BRK to return to the monitor333b : 26 > db test_num>333c : >skip2956>333c : ca [ 2] dex333d : 1002 [ 3] bpl tand6333f : a203 [ 2] ldx #3 ;zp,x3341 : tand6set_ax absANa,0> load_flag 03341 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3343 : 48 [ 3]> pha ;use stack to load status3344 : bd4b02 [ 4]> lda absANa,x ;precharge accu3347 : 28 [ 4]> plp3348 : 35c2 [ 4] and zpAN,xtst_ax absrlo,absflo,0334a : 08 [ 3]> php ;save flags334b : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne334e : f002 [ 3]> beq skip2961> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3350 : 00 [ 7]> brk ; Use BRK to return to the monitor3351 : 26 > db test_num>3352 : >skip2961>3352 : 68 [ 4]> pla ;load status> eor_flag 03353 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3355 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3358 : f002 [ 3]> beq skip2964> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction335a : 00 [ 7]> brk ; Use BRK to return to the monitor335b : 26 > db test_num>335c : >skip2964AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 332---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->335c : ca [ 2] dex335d : 10e2 [ 3] bpl tand6335f : a203 [ 2] ldx #33361 : tand7set_ax absANa,$ff> load_flag $ff3361 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3363 : 48 [ 3]> pha ;use stack to load status3364 : bd4b02 [ 4]> lda absANa,x ;precharge accu3367 : 28 [ 4]> plp3368 : 35c2 [ 4] and zpAN,xtst_ax absrlo,absflo,$ff-fnz336a : 08 [ 3]> php ;save flags336b : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne336e : f002 [ 3]> beq skip2969> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3370 : 00 [ 7]> brk ; Use BRK to return to the monitor3371 : 26 > db test_num>3372 : >skip2969>3372 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3373 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3375 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3378 : f002 [ 3]> beq skip2972> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction337a : 00 [ 7]> brk ; Use BRK to return to the monitor337b : 26 > db test_num>337c : >skip2972>337c : ca [ 2] dex337d : 10e2 [ 3] bpl tand7337f : a203 [ 2] ldx #3 ;abs,x3381 : tand8set_ax absANa,0> load_flag 03381 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3383 : 48 [ 3]> pha ;use stack to load status3384 : bd4b02 [ 4]> lda absANa,x ;precharge accu3387 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 333---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3388 : 3d3f02 [ 4] and absAN,xtst_ax absrlo,absflo,0338b : 08 [ 3]> php ;save flags338c : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne338f : f002 [ 3]> beq skip2977> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3391 : 00 [ 7]> brk ; Use BRK to return to the monitor3392 : 26 > db test_num>3393 : >skip2977>3393 : 68 [ 4]> pla ;load status> eor_flag 03394 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3396 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3399 : f002 [ 3]> beq skip2980> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction339b : 00 [ 7]> brk ; Use BRK to return to the monitor339c : 26 > db test_num>339d : >skip2980>339d : ca [ 2] dex339e : 10e1 [ 3] bpl tand833a0 : a203 [ 2] ldx #333a2 : tand9set_ax absANa,$ff> load_flag $ff33a2 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>33a4 : 48 [ 3]> pha ;use stack to load status33a5 : bd4b02 [ 4]> lda absANa,x ;precharge accu33a8 : 28 [ 4]> plp33a9 : 3d3f02 [ 4] and absAN,xtst_ax absrlo,absflo,$ff-fnz33ac : 08 [ 3]> php ;save flags33ad : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne33b0 : f002 [ 3]> beq skip2985> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction33b2 : 00 [ 7]> brk ; Use BRK to return to the monitor33b3 : 26 > db test_num>33b4 : >skip2985>33b4 : 68 [ 4]> pla ;load status> eor_flag $ff-fnzAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 334---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------33b5 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>33b7 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;33ba : f002 [ 3]> beq skip2988> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction33bc : 00 [ 7]> brk ; Use BRK to return to the monitor33bd : 26 > db test_num>33be : >skip2988>33be : ca [ 2] dex33bf : 10e1 [ 3] bpl tand933c1 : a003 [ 2] ldy #3 ;abs,y33c3 : tand10set_ay absANa,0> load_flag 033c3 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>33c5 : 48 [ 3]> pha ;use stack to load status33c6 : b94b02 [ 4]> lda absANa,y ;precharge accu33c9 : 28 [ 4]> plp33ca : 393f02 [ 4] and absAN,ytst_ay absrlo,absflo,033cd : 08 [ 3]> php ;save flags33ce : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;33d1 : f002 [ 3]> beq skip2993> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction33d3 : 00 [ 7]> brk ; Use BRK to return to the monitor33d4 : 26 > db test_num>33d5 : >skip2993>33d5 : 68 [ 4]> pla ;load status> eor_flag 033d6 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>33d8 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne33db : f002 [ 3]> beq skip2996> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction33dd : 00 [ 7]> brk ; Use BRK to return to the monitor33de : 26 > db test_num>33df : >skip2996>33df : 88 [ 2] deyAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 335---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------33e0 : 10e1 [ 3] bpl tand1033e2 : a003 [ 2] ldy #333e4 : tand11set_ay absANa,$ff> load_flag $ff33e4 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>33e6 : 48 [ 3]> pha ;use stack to load status33e7 : b94b02 [ 4]> lda absANa,y ;precharge accu33ea : 28 [ 4]> plp33eb : 393f02 [ 4] and absAN,ytst_ay absrlo,absflo,$ff-fnz33ee : 08 [ 3]> php ;save flags33ef : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;33f2 : f002 [ 3]> beq skip3001> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction33f4 : 00 [ 7]> brk ; Use BRK to return to the monitor33f5 : 26 > db test_num>33f6 : >skip3001>33f6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz33f7 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>33f9 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne33fc : f002 [ 4]> beq skip3004> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction33fe : 00 [ 7]> brk ; Use BRK to return to the monitor33ff : 26 > db test_num>3400 : >skip3004>3400 : 88 [ 2] dey3401 : 10e1 [ 4] bpl tand113403 : a206 [ 2] ldx #6 ;(zp,x)3405 : a003 [ 2] ldy #33407 : tand12set_ay absANa,0> load_flag 03407 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3409 : 48 [ 3]> pha ;use stack to load status340a : b94b02 [ 4]> lda absANa,y ;precharge accu340d : 28 [ 4]> plp340e : 21e0 [ 6] and (indAN,x)tst_ay absrlo,absflo,0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 336---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3410 : 08 [ 3]> php ;save flags3411 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3414 : f002 [ 3]> beq skip3009> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3416 : 00 [ 7]> brk ; Use BRK to return to the monitor3417 : 26 > db test_num>3418 : >skip3009>3418 : 68 [ 4]> pla ;load status> eor_flag 03419 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>341b : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne341e : f002 [ 3]> beq skip3012> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3420 : 00 [ 7]> brk ; Use BRK to return to the monitor3421 : 26 > db test_num>3422 : >skip3012>3422 : ca [ 2] dex3423 : ca [ 2] dex3424 : 88 [ 2] dey3425 : 10e0 [ 3] bpl tand123427 : a206 [ 2] ldx #63429 : a003 [ 2] ldy #3342b : tand13set_ay absANa,$ff> load_flag $ff342b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>342d : 48 [ 3]> pha ;use stack to load status342e : b94b02 [ 4]> lda absANa,y ;precharge accu3431 : 28 [ 4]> plp3432 : 21e0 [ 6] and (indAN,x)tst_ay absrlo,absflo,$ff-fnz3434 : 08 [ 3]> php ;save flags3435 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3438 : f002 [ 3]> beq skip3017> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction343a : 00 [ 7]> brk ; Use BRK to return to the monitor343b : 26 > db test_num>343c : >skip3017>343c : 68 [ 4]> pla ;load statusAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 337---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> eor_flag $ff-fnz343d : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>343f : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne3442 : f002 [ 3]> beq skip3020> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3444 : 00 [ 7]> brk ; Use BRK to return to the monitor3445 : 26 > db test_num>3446 : >skip3020>3446 : ca [ 2] dex3447 : ca [ 2] dex3448 : 88 [ 2] dey3449 : 10e0 [ 3] bpl tand13344b : a003 [ 2] ldy #3 ;(zp),y344d : tand14set_ay absANa,0> load_flag 0344d : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>344f : 48 [ 3]> pha ;use stack to load status3450 : b94b02 [ 4]> lda absANa,y ;precharge accu3453 : 28 [ 4]> plp3454 : 31e0 [ 5] and (indAN),ytst_ay absrlo,absflo,03456 : 08 [ 3]> php ;save flags3457 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;345a : f002 [ 3]> beq skip3025> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction345c : 00 [ 7]> brk ; Use BRK to return to the monitor345d : 26 > db test_num>345e : >skip3025>345e : 68 [ 4]> pla ;load status> eor_flag 0345f : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3461 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne3464 : f002 [ 3]> beq skip3028> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3466 : 00 [ 7]> brk ; Use BRK to return to the monitor3467 : 26 > db test_num>3468 : >skip3028AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 338---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->3468 : 88 [ 2] dey3469 : 10e2 [ 3] bpl tand14346b : a003 [ 2] ldy #3346d : tand15set_ay absANa,$ff> load_flag $ff346d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>346f : 48 [ 3]> pha ;use stack to load status3470 : b94b02 [ 4]> lda absANa,y ;precharge accu3473 : 28 [ 4]> plp3474 : 31e0 [ 5] and (indAN),ytst_ay absrlo,absflo,$ff-fnz3476 : 08 [ 3]> php ;save flags3477 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;347a : f002 [ 3]> beq skip3033> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction347c : 00 [ 7]> brk ; Use BRK to return to the monitor347d : 26 > db test_num>347e : >skip3033>347e : 68 [ 4]> pla ;load status> eor_flag $ff-fnz347f : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3481 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne3484 : f002 [ 3]> beq skip3036> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3486 : 00 [ 7]> brk ; Use BRK to return to the monitor3487 : 26 > db test_num>3488 : >skip3036>3488 : 88 [ 2] dey3489 : 10e2 [ 3] bpl tand15next_test348b : ad0002 [ 4]> lda test_case ;previous test348e : c926 [ 2]> cmp #test_num> trap_ne ;test is out of sequence3490 : f002 [ 3]> beq skip3039> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3492 : 00 [ 7]> brk ; Use BRK to return to the monitor3493 : 26 > db test_num>3494 : >skip3039AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 339---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->0027 = >test_num = test_num + 13494 : a927 [ 2]> lda #test_num ;*** this tests' number3496 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; EOR3499 : a203 [ 2] ldx #3 ;immediate - self modifying code349b : b5c6 [ 4] teor lda zpEO,x349d : 8da834 [ 4] sta teori1set_ax absEOa,0> load_flag 034a0 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>34a2 : 48 [ 3]> pha ;use stack to load status34a3 : bd4f02 [ 4]> lda absEOa,x ;precharge accu34a6 : 28 [ 4]> plp34a8 = teori1 equ *+1 ;target for immediate operand34a7 : 4963 [ 2] eor #99tst_ax absrlo,absflo,034a9 : 08 [ 3]> php ;save flags34aa : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne34ad : f002 [ 3]> beq skip3044> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction34af : 00 [ 7]> brk ; Use BRK to return to the monitor34b0 : 27 > db test_num>34b1 : >skip3044>34b1 : 68 [ 4]> pla ;load status> eor_flag 034b2 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>34b4 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;34b7 : f002 [ 3]> beq skip3047> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction34b9 : 00 [ 7]> brk ; Use BRK to return to the monitor34ba : 27 > db test_num>34bb : >skip3047>34bb : ca [ 2] dex34bc : 10dd [ 3] bpl teor34be : a203 [ 2] ldx #334c0 : b5c6 [ 4] teor1 lda zpEO,x34c2 : 8dcd34 [ 4] sta teori2set_ax absEOa,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 340---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff34c5 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>34c7 : 48 [ 3]> pha ;use stack to load status34c8 : bd4f02 [ 4]> lda absEOa,x ;precharge accu34cb : 28 [ 4]> plp34cd = teori2 equ *+1 ;target for immediate operand34cc : 4963 [ 2] eor #99tst_ax absrlo,absflo,$ff-fnz34ce : 08 [ 3]> php ;save flags34cf : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne34d2 : f002 [ 3]> beq skip3052> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction34d4 : 00 [ 7]> brk ; Use BRK to return to the monitor34d5 : 27 > db test_num>34d6 : >skip3052>34d6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz34d7 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>34d9 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;34dc : f002 [ 3]> beq skip3055> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction34de : 00 [ 7]> brk ; Use BRK to return to the monitor34df : 27 > db test_num>34e0 : >skip3055>34e0 : ca [ 2] dex34e1 : 10dd [ 3] bpl teor134e3 : a203 [ 2] ldx #3 ;zp34e5 : b5c6 [ 4] teor2 lda zpEO,x34e7 : 85b2 [ 3] sta zptset_ax absEOa,0> load_flag 034e9 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>34eb : 48 [ 3]> pha ;use stack to load status34ec : bd4f02 [ 4]> lda absEOa,x ;precharge accu34ef : 28 [ 4]> plp34f0 : 45b2 [ 3] eor zpttst_ax absrlo,absflo,034f2 : 08 [ 3]> php ;save flags34f3 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 341---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------34f6 : f002 [ 3]> beq skip3060> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction34f8 : 00 [ 7]> brk ; Use BRK to return to the monitor34f9 : 27 > db test_num>34fa : >skip3060>34fa : 68 [ 4]> pla ;load status> eor_flag 034fb : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>34fd : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3500 : f002 [ 3]> beq skip3063> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3502 : 00 [ 7]> brk ; Use BRK to return to the monitor3503 : 27 > db test_num>3504 : >skip3063>3504 : ca [ 2] dex3505 : 10de [ 4] bpl teor23507 : a203 [ 2] ldx #33509 : b5c6 [ 4] teor3 lda zpEO,x350b : 85b2 [ 3] sta zptset_ax absEOa,$ff> load_flag $ff350d : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>350f : 48 [ 3]> pha ;use stack to load status3510 : bd4f02 [ 4]> lda absEOa,x ;precharge accu3513 : 28 [ 4]> plp3514 : 45b2 [ 3] eor zpttst_ax absrlo,absflo,$ff-fnz3516 : 08 [ 3]> php ;save flags3517 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne351a : f002 [ 3]> beq skip3068> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction351c : 00 [ 7]> brk ; Use BRK to return to the monitor351d : 27 > db test_num>351e : >skip3068>351e : 68 [ 4]> pla ;load status> eor_flag $ff-fnz351f : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3521 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 342---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3524 : f002 [ 3]> beq skip3071> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3526 : 00 [ 7]> brk ; Use BRK to return to the monitor3527 : 27 > db test_num>3528 : >skip3071>3528 : ca [ 2] dex3529 : 10de [ 3] bpl teor3352b : a203 [ 2] ldx #3 ;abs352d : b5c6 [ 4] teor4 lda zpEO,x352f : 8d0302 [ 4] sta abstset_ax absEOa,0> load_flag 03532 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3534 : 48 [ 3]> pha ;use stack to load status3535 : bd4f02 [ 4]> lda absEOa,x ;precharge accu3538 : 28 [ 4]> plp3539 : 4d0302 [ 4] eor absttst_ax absrlo,absflo,0353c : 08 [ 3]> php ;save flags353d : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3540 : f002 [ 3]> beq skip3076> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3542 : 00 [ 7]> brk ; Use BRK to return to the monitor3543 : 27 > db test_num>3544 : >skip3076>3544 : 68 [ 4]> pla ;load status> eor_flag 03545 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3547 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;354a : f002 [ 3]> beq skip3079> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction354c : 00 [ 7]> brk ; Use BRK to return to the monitor354d : 27 > db test_num>354e : >skip3079>354e : ca [ 2] dex354f : 10dc [ 3] bpl teor43551 : a203 [ 2] ldx #33553 : b5c6 [ 4] teor5 lda zpEO,xAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 343---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3555 : 8d0302 [ 4] sta abstset_ax absEOa,$ff> load_flag $ff3558 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>355a : 48 [ 3]> pha ;use stack to load status355b : bd4f02 [ 4]> lda absEOa,x ;precharge accu355e : 28 [ 4]> plp355f : 4d0302 [ 4] eor absttst_ax absrlo,absflo,$ff-fnz3562 : 08 [ 3]> php ;save flags3563 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3566 : f002 [ 3]> beq skip3084> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3568 : 00 [ 7]> brk ; Use BRK to return to the monitor3569 : 27 > db test_num>356a : >skip3084>356a : 68 [ 4]> pla ;load status> eor_flag $ff-fnz356b : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>356d : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3570 : f002 [ 3]> beq skip3087> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3572 : 00 [ 7]> brk ; Use BRK to return to the monitor3573 : 27 > db test_num>3574 : >skip3087>3574 : ca [ 2] dex3575 : 1002 [ 3] bpl teor63577 : a203 [ 2] ldx #3 ;zp,x3579 : teor6set_ax absEOa,0> load_flag 03579 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>357b : 48 [ 3]> pha ;use stack to load status357c : bd4f02 [ 4]> lda absEOa,x ;precharge accu357f : 28 [ 4]> plp3580 : 55c6 [ 4] eor zpEO,xtst_ax absrlo,absflo,03582 : 08 [ 3]> php ;save flags3583 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_neAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 344---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3586 : f002 [ 3]> beq skip3092> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3588 : 00 [ 7]> brk ; Use BRK to return to the monitor3589 : 27 > db test_num>358a : >skip3092>358a : 68 [ 4]> pla ;load status> eor_flag 0358b : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>358d : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3590 : f002 [ 3]> beq skip3095> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3592 : 00 [ 7]> brk ; Use BRK to return to the monitor3593 : 27 > db test_num>3594 : >skip3095>3594 : ca [ 2] dex3595 : 10e2 [ 3] bpl teor63597 : a203 [ 2] ldx #33599 : teor7set_ax absEOa,$ff> load_flag $ff3599 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>359b : 48 [ 3]> pha ;use stack to load status359c : bd4f02 [ 4]> lda absEOa,x ;precharge accu359f : 28 [ 4]> plp35a0 : 55c6 [ 4] eor zpEO,xtst_ax absrlo,absflo,$ff-fnz35a2 : 08 [ 3]> php ;save flags35a3 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne35a6 : f002 [ 3]> beq skip3100> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction35a8 : 00 [ 7]> brk ; Use BRK to return to the monitor35a9 : 27 > db test_num>35aa : >skip3100>35aa : 68 [ 4]> pla ;load status> eor_flag $ff-fnz35ab : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>35ad : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;35b0 : f002 [ 3]> beq skip3103AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 345---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction35b2 : 00 [ 7]> brk ; Use BRK to return to the monitor35b3 : 27 > db test_num>35b4 : >skip3103>35b4 : ca [ 2] dex35b5 : 10e2 [ 3] bpl teor735b7 : a203 [ 2] ldx #3 ;abs,x35b9 : teor8set_ax absEOa,0> load_flag 035b9 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>35bb : 48 [ 3]> pha ;use stack to load status35bc : bd4f02 [ 4]> lda absEOa,x ;precharge accu35bf : 28 [ 4]> plp35c0 : 5d4302 [ 4] eor absEO,xtst_ax absrlo,absflo,035c3 : 08 [ 3]> php ;save flags35c4 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne35c7 : f002 [ 3]> beq skip3108> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction35c9 : 00 [ 7]> brk ; Use BRK to return to the monitor35ca : 27 > db test_num>35cb : >skip3108>35cb : 68 [ 4]> pla ;load status> eor_flag 035cc : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>35ce : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;35d1 : f002 [ 3]> beq skip3111> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction35d3 : 00 [ 7]> brk ; Use BRK to return to the monitor35d4 : 27 > db test_num>35d5 : >skip3111>35d5 : ca [ 2] dex35d6 : 10e1 [ 3] bpl teor835d8 : a203 [ 2] ldx #335da : teor9set_ax absEOa,$ff> load_flag $ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 346---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------35da : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>35dc : 48 [ 3]> pha ;use stack to load status35dd : bd4f02 [ 4]> lda absEOa,x ;precharge accu35e0 : 28 [ 4]> plp35e1 : 5d4302 [ 4] eor absEO,xtst_ax absrlo,absflo,$ff-fnz35e4 : 08 [ 3]> php ;save flags35e5 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne35e8 : f002 [ 3]> beq skip3116> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction35ea : 00 [ 7]> brk ; Use BRK to return to the monitor35eb : 27 > db test_num>35ec : >skip3116>35ec : 68 [ 4]> pla ;load status> eor_flag $ff-fnz35ed : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>35ef : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;35f2 : f002 [ 3]> beq skip3119> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction35f4 : 00 [ 7]> brk ; Use BRK to return to the monitor35f5 : 27 > db test_num>35f6 : >skip3119>35f6 : ca [ 2] dex35f7 : 10e1 [ 3] bpl teor935f9 : a003 [ 2] ldy #3 ;abs,y35fb : teor10set_ay absEOa,0> load_flag 035fb : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>35fd : 48 [ 3]> pha ;use stack to load status35fe : b94f02 [ 4]> lda absEOa,y ;precharge accu3601 : 28 [ 4]> plp3602 : 594302 [ 4] eor absEO,ytst_ay absrlo,absflo,03605 : 08 [ 3]> php ;save flags3606 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3609 : f002 [ 3]> beq skip3124> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 347---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------360b : 00 [ 7]> brk ; Use BRK to return to the monitor360c : 27 > db test_num>360d : >skip3124>360d : 68 [ 4]> pla ;load status> eor_flag 0360e : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3610 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne3613 : f002 [ 3]> beq skip3127> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3615 : 00 [ 7]> brk ; Use BRK to return to the monitor3616 : 27 > db test_num>3617 : >skip3127>3617 : 88 [ 2] dey3618 : 10e1 [ 4] bpl teor10361a : a003 [ 2] ldy #3361c : teor11set_ay absEOa,$ff> load_flag $ff361c : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>361e : 48 [ 3]> pha ;use stack to load status361f : b94f02 [ 4]> lda absEOa,y ;precharge accu3622 : 28 [ 4]> plp3623 : 594302 [ 4] eor absEO,ytst_ay absrlo,absflo,$ff-fnz3626 : 08 [ 3]> php ;save flags3627 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;362a : f002 [ 3]> beq skip3132> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction362c : 00 [ 7]> brk ; Use BRK to return to the monitor362d : 27 > db test_num>362e : >skip3132>362e : 68 [ 4]> pla ;load status> eor_flag $ff-fnz362f : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3631 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne3634 : f002 [ 3]> beq skip3135> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3636 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 348---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3637 : 27 > db test_num>3638 : >skip3135>3638 : 88 [ 2] dey3639 : 10e1 [ 3] bpl teor11363b : a206 [ 2] ldx #6 ;(zp,x)363d : a003 [ 2] ldy #3363f : teor12set_ay absEOa,0> load_flag 0363f : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3641 : 48 [ 3]> pha ;use stack to load status3642 : b94f02 [ 4]> lda absEOa,y ;precharge accu3645 : 28 [ 4]> plp3646 : 41e8 [ 6] eor (indEO,x)tst_ay absrlo,absflo,03648 : 08 [ 3]> php ;save flags3649 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;364c : f002 [ 3]> beq skip3140> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction364e : 00 [ 7]> brk ; Use BRK to return to the monitor364f : 27 > db test_num>3650 : >skip3140>3650 : 68 [ 4]> pla ;load status> eor_flag 03651 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3653 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne3656 : f002 [ 3]> beq skip3143> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3658 : 00 [ 7]> brk ; Use BRK to return to the monitor3659 : 27 > db test_num>365a : >skip3143>365a : ca [ 2] dex365b : ca [ 2] dex365c : 88 [ 2] dey365d : 10e0 [ 3] bpl teor12365f : a206 [ 2] ldx #63661 : a003 [ 2] ldy #33663 : teor13set_ay absEOa,$ffAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 349---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> load_flag $ff3663 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3665 : 48 [ 3]> pha ;use stack to load status3666 : b94f02 [ 4]> lda absEOa,y ;precharge accu3669 : 28 [ 4]> plp366a : 41e8 [ 6] eor (indEO,x)tst_ay absrlo,absflo,$ff-fnz366c : 08 [ 3]> php ;save flags366d : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3670 : f002 [ 3]> beq skip3148> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3672 : 00 [ 7]> brk ; Use BRK to return to the monitor3673 : 27 > db test_num>3674 : >skip3148>3674 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3675 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3677 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne367a : f002 [ 3]> beq skip3151> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction367c : 00 [ 7]> brk ; Use BRK to return to the monitor367d : 27 > db test_num>367e : >skip3151>367e : ca [ 2] dex367f : ca [ 2] dex3680 : 88 [ 2] dey3681 : 10e0 [ 3] bpl teor133683 : a003 [ 2] ldy #3 ;(zp),y3685 : teor14set_ay absEOa,0> load_flag 03685 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3687 : 48 [ 3]> pha ;use stack to load status3688 : b94f02 [ 4]> lda absEOa,y ;precharge accu368b : 28 [ 4]> plp368c : 51e8 [ 5] eor (indEO),ytst_ay absrlo,absflo,0368e : 08 [ 3]> php ;save flags368f : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 350---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3692 : f002 [ 3]> beq skip3156> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3694 : 00 [ 7]> brk ; Use BRK to return to the monitor3695 : 27 > db test_num>3696 : >skip3156>3696 : 68 [ 4]> pla ;load status> eor_flag 03697 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3699 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne369c : f002 [ 3]> beq skip3159> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction369e : 00 [ 7]> brk ; Use BRK to return to the monitor369f : 27 > db test_num>36a0 : >skip3159>36a0 : 88 [ 2] dey36a1 : 10e2 [ 3] bpl teor1436a3 : a003 [ 2] ldy #336a5 : teor15set_ay absEOa,$ff> load_flag $ff36a5 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>36a7 : 48 [ 3]> pha ;use stack to load status36a8 : b94f02 [ 4]> lda absEOa,y ;precharge accu36ab : 28 [ 4]> plp36ac : 51e8 [ 5] eor (indEO),ytst_ay absrlo,absflo,$ff-fnz36ae : 08 [ 3]> php ;save flags36af : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;36b2 : f002 [ 3]> beq skip3164> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction36b4 : 00 [ 7]> brk ; Use BRK to return to the monitor36b5 : 27 > db test_num>36b6 : >skip3164>36b6 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz36b7 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>36b9 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne36bc : f002 [ 3]> beq skip3167AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 351---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction36be : 00 [ 7]> brk ; Use BRK to return to the monitor36bf : 27 > db test_num>36c0 : >skip3167>36c0 : 88 [ 2] dey36c1 : 10e2 [ 3] bpl teor15next_test36c3 : ad0002 [ 4]> lda test_case ;previous test36c6 : c927 [ 2]> cmp #test_num> trap_ne ;test is out of sequence36c8 : f002 [ 3]> beq skip3170> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction36ca : 00 [ 7]> brk ; Use BRK to return to the monitor36cb : 27 > db test_num>36cc : >skip3170>0028 = >test_num = test_num + 136cc : a928 [ 2]> lda #test_num ;*** this tests' number36ce : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; OR36d1 : a203 [ 2] ldx #3 ;immediate - self modifying code36d3 : b5be [ 4] tora lda zpOR,x36d5 : 8de036 [ 4] sta torai1set_ax absORa,0> load_flag 036d8 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>36da : 48 [ 3]> pha ;use stack to load status36db : bd4702 [ 4]> lda absORa,x ;precharge accu36de : 28 [ 4]> plp36e0 = torai1 equ *+1 ;target for immediate operand36df : 0963 [ 2] ora #99tst_ax absrlo,absflo,036e1 : 08 [ 3]> php ;save flags36e2 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne36e5 : f002 [ 3]> beq skip3175> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction36e7 : 00 [ 7]> brk ; Use BRK to return to the monitor36e8 : 28 > db test_num>36e9 : >skip3175>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 352---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------36e9 : 68 [ 4]> pla ;load status> eor_flag 036ea : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>36ec : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;36ef : f002 [ 3]> beq skip3178> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction36f1 : 00 [ 7]> brk ; Use BRK to return to the monitor36f2 : 28 > db test_num>36f3 : >skip3178>36f3 : ca [ 2] dex36f4 : 10dd [ 3] bpl tora36f6 : a203 [ 2] ldx #336f8 : b5be [ 4] tora1 lda zpOR,x36fa : 8d0537 [ 4] sta torai2set_ax absORa,$ff> load_flag $ff36fd : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>36ff : 48 [ 3]> pha ;use stack to load status3700 : bd4702 [ 4]> lda absORa,x ;precharge accu3703 : 28 [ 4]> plp3705 = torai2 equ *+1 ;target for immediate operand3704 : 0963 [ 2] ora #99tst_ax absrlo,absflo,$ff-fnz3706 : 08 [ 3]> php ;save flags3707 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne370a : f002 [ 3]> beq skip3183> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction370c : 00 [ 7]> brk ; Use BRK to return to the monitor370d : 28 > db test_num>370e : >skip3183>370e : 68 [ 4]> pla ;load status> eor_flag $ff-fnz370f : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3711 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3714 : f002 [ 3]> beq skip3186> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3716 : 00 [ 7]> brk ; Use BRK to return to the monitor3717 : 28 > db test_num>3718 : >skip3186AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 353---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->3718 : ca [ 2] dex3719 : 10dd [ 4] bpl tora1371b : a203 [ 2] ldx #3 ;zp371d : b5be [ 4] tora2 lda zpOR,x371f : 85b2 [ 3] sta zptset_ax absORa,0> load_flag 03721 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3723 : 48 [ 3]> pha ;use stack to load status3724 : bd4702 [ 4]> lda absORa,x ;precharge accu3727 : 28 [ 4]> plp3728 : 05b2 [ 3] ora zpttst_ax absrlo,absflo,0372a : 08 [ 3]> php ;save flags372b : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne372e : f002 [ 3]> beq skip3191> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3730 : 00 [ 7]> brk ; Use BRK to return to the monitor3731 : 28 > db test_num>3732 : >skip3191>3732 : 68 [ 4]> pla ;load status> eor_flag 03733 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3735 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3738 : f002 [ 3]> beq skip3194> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction373a : 00 [ 7]> brk ; Use BRK to return to the monitor373b : 28 > db test_num>373c : >skip3194>373c : ca [ 2] dex373d : 10de [ 3] bpl tora2373f : a203 [ 2] ldx #33741 : b5be [ 4] tora3 lda zpOR,x3743 : 85b2 [ 3] sta zptset_ax absORa,$ff> load_flag $ff3745 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3747 : 48 [ 3]> pha ;use stack to load status3748 : bd4702 [ 4]> lda absORa,x ;precharge accuAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 354---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------374b : 28 [ 4]> plp374c : 05b2 [ 3] ora zpttst_ax absrlo,absflo,$ff-fnz374e : 08 [ 3]> php ;save flags374f : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3752 : f002 [ 3]> beq skip3199> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3754 : 00 [ 7]> brk ; Use BRK to return to the monitor3755 : 28 > db test_num>3756 : >skip3199>3756 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3757 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3759 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;375c : f002 [ 3]> beq skip3202> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction375e : 00 [ 7]> brk ; Use BRK to return to the monitor375f : 28 > db test_num>3760 : >skip3202>3760 : ca [ 2] dex3761 : 10de [ 3] bpl tora33763 : a203 [ 2] ldx #3 ;abs3765 : b5be [ 4] tora4 lda zpOR,x3767 : 8d0302 [ 4] sta abstset_ax absORa,0> load_flag 0376a : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>376c : 48 [ 3]> pha ;use stack to load status376d : bd4702 [ 4]> lda absORa,x ;precharge accu3770 : 28 [ 4]> plp3771 : 0d0302 [ 4] ora absttst_ax absrlo,absflo,03774 : 08 [ 3]> php ;save flags3775 : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3778 : f002 [ 3]> beq skip3207> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction377a : 00 [ 7]> brk ; Use BRK to return to the monitor377b : 28 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 355---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------377c : >skip3207>377c : 68 [ 4]> pla ;load status> eor_flag 0377d : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>377f : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3782 : f002 [ 3]> beq skip3210> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3784 : 00 [ 7]> brk ; Use BRK to return to the monitor3785 : 28 > db test_num>3786 : >skip3210>3786 : ca [ 2] dex3787 : 10dc [ 3] bpl tora43789 : a203 [ 2] ldx #3378b : b5be [ 4] tora5 lda zpOR,x378d : 8d0302 [ 4] sta abstset_ax absORa,$ff> load_flag $ff3790 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3792 : 48 [ 3]> pha ;use stack to load status3793 : bd4702 [ 4]> lda absORa,x ;precharge accu3796 : 28 [ 4]> plp3797 : 0d0302 [ 4] ora absttst_ax absrlo,absflo,$ff-fnz379a : 08 [ 3]> php ;save flags379b : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne379e : f002 [ 3]> beq skip3215> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction37a0 : 00 [ 7]> brk ; Use BRK to return to the monitor37a1 : 28 > db test_num>37a2 : >skip3215>37a2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz37a3 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>37a5 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;37a8 : f002 [ 3]> beq skip3218> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction37aa : 00 [ 7]> brk ; Use BRK to return to the monitor37ab : 28 > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 356---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------37ac : >skip3218>37ac : ca [ 2] dex37ad : 1002 [ 3] bpl tora637af : a203 [ 2] ldx #3 ;zp,x37b1 : tora6set_ax absORa,0> load_flag 037b1 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>37b3 : 48 [ 3]> pha ;use stack to load status37b4 : bd4702 [ 4]> lda absORa,x ;precharge accu37b7 : 28 [ 4]> plp37b8 : 15be [ 4] ora zpOR,xtst_ax absrlo,absflo,037ba : 08 [ 3]> php ;save flags37bb : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne37be : f002 [ 3]> beq skip3223> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction37c0 : 00 [ 7]> brk ; Use BRK to return to the monitor37c1 : 28 > db test_num>37c2 : >skip3223>37c2 : 68 [ 4]> pla ;load status> eor_flag 037c3 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>37c5 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;37c8 : f002 [ 3]> beq skip3226> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction37ca : 00 [ 7]> brk ; Use BRK to return to the monitor37cb : 28 > db test_num>37cc : >skip3226>37cc : ca [ 2] dex37cd : 10e2 [ 3] bpl tora637cf : a203 [ 2] ldx #337d1 : tora7set_ax absORa,$ff> load_flag $ff37d1 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>37d3 : 48 [ 3]> pha ;use stack to load status37d4 : bd4702 [ 4]> lda absORa,x ;precharge accu37d7 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 357---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------37d8 : 15be [ 4] ora zpOR,xtst_ax absrlo,absflo,$ff-fnz37da : 08 [ 3]> php ;save flags37db : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne37de : f002 [ 3]> beq skip3231> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction37e0 : 00 [ 7]> brk ; Use BRK to return to the monitor37e1 : 28 > db test_num>37e2 : >skip3231>37e2 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz37e3 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>37e5 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;37e8 : f002 [ 3]> beq skip3234> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction37ea : 00 [ 7]> brk ; Use BRK to return to the monitor37eb : 28 > db test_num>37ec : >skip3234>37ec : ca [ 2] dex37ed : 10e2 [ 3] bpl tora737ef : a203 [ 2] ldx #3 ;abs,x37f1 : tora8set_ax absORa,0> load_flag 037f1 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>37f3 : 48 [ 3]> pha ;use stack to load status37f4 : bd4702 [ 4]> lda absORa,x ;precharge accu37f7 : 28 [ 4]> plp37f8 : 1d3b02 [ 4] ora absOR,xtst_ax absrlo,absflo,037fb : 08 [ 3]> php ;save flags37fc : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne37ff : f002 [ 4]> beq skip3239> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3801 : 00 [ 7]> brk ; Use BRK to return to the monitor3802 : 28 > db test_num>3803 : >skip3239>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 358---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3803 : 68 [ 4]> pla ;load status> eor_flag 03804 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3806 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;3809 : f002 [ 3]> beq skip3242> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction380b : 00 [ 7]> brk ; Use BRK to return to the monitor380c : 28 > db test_num>380d : >skip3242>380d : ca [ 2] dex380e : 10e1 [ 4] bpl tora83810 : a203 [ 2] ldx #33812 : tora9set_ax absORa,$ff> load_flag $ff3812 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3814 : 48 [ 3]> pha ;use stack to load status3815 : bd4702 [ 4]> lda absORa,x ;precharge accu3818 : 28 [ 4]> plp3819 : 1d3b02 [ 4] ora absOR,xtst_ax absrlo,absflo,$ff-fnz381c : 08 [ 3]> php ;save flags381d : dd5302 [ 4]> cmp absrlo,x ;test result> trap_ne3820 : f002 [ 3]> beq skip3247> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3822 : 00 [ 7]> brk ; Use BRK to return to the monitor3823 : 28 > db test_num>3824 : >skip3247>3824 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3825 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3827 : dd5702 [ 4]> cmp absflo,x ;test flags> trap_ne ;382a : f002 [ 3]> beq skip3250> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction382c : 00 [ 7]> brk ; Use BRK to return to the monitor382d : 28 > db test_num>382e : >skip3250>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 359---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------382e : ca [ 2] dex382f : 10e1 [ 3] bpl tora93831 : a003 [ 2] ldy #3 ;abs,y3833 : tora10set_ay absORa,0> load_flag 03833 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3835 : 48 [ 3]> pha ;use stack to load status3836 : b94702 [ 4]> lda absORa,y ;precharge accu3839 : 28 [ 4]> plp383a : 193b02 [ 4] ora absOR,ytst_ay absrlo,absflo,0383d : 08 [ 3]> php ;save flags383e : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3841 : f002 [ 3]> beq skip3255> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3843 : 00 [ 7]> brk ; Use BRK to return to the monitor3844 : 28 > db test_num>3845 : >skip3255>3845 : 68 [ 4]> pla ;load status> eor_flag 03846 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>3848 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne384b : f002 [ 3]> beq skip3258> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction384d : 00 [ 7]> brk ; Use BRK to return to the monitor384e : 28 > db test_num>384f : >skip3258>384f : 88 [ 2] dey3850 : 10e1 [ 3] bpl tora103852 : a003 [ 2] ldy #33854 : tora11set_ay absORa,$ff> load_flag $ff3854 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3856 : 48 [ 3]> pha ;use stack to load status3857 : b94702 [ 4]> lda absORa,y ;precharge accu385a : 28 [ 4]> plp385b : 193b02 [ 4] ora absOR,ytst_ay absrlo,absflo,$ff-fnzAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 360---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------385e : 08 [ 3]> php ;save flags385f : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3862 : f002 [ 3]> beq skip3263> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3864 : 00 [ 7]> brk ; Use BRK to return to the monitor3865 : 28 > db test_num>3866 : >skip3263>3866 : 68 [ 4]> pla ;load status> eor_flag $ff-fnz3867 : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>3869 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne386c : f002 [ 3]> beq skip3266> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction386e : 00 [ 7]> brk ; Use BRK to return to the monitor386f : 28 > db test_num>3870 : >skip3266>3870 : 88 [ 2] dey3871 : 10e1 [ 3] bpl tora113873 : a206 [ 2] ldx #6 ;(zp,x)3875 : a003 [ 2] ldy #33877 : tora12set_ay absORa,0> load_flag 03877 : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>3879 : 48 [ 3]> pha ;use stack to load status387a : b94702 [ 4]> lda absORa,y ;precharge accu387d : 28 [ 4]> plp387e : 01f0 [ 6] ora (indOR,x)tst_ay absrlo,absflo,03880 : 08 [ 3]> php ;save flags3881 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;3884 : f002 [ 3]> beq skip3271> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3886 : 00 [ 7]> brk ; Use BRK to return to the monitor3887 : 28 > db test_num>3888 : >skip3271>3888 : 68 [ 4]> pla ;load status> eor_flag 0AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 361---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3889 : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>388b : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne388e : f002 [ 3]> beq skip3274> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3890 : 00 [ 7]> brk ; Use BRK to return to the monitor3891 : 28 > db test_num>3892 : >skip3274>3892 : ca [ 2] dex3893 : ca [ 2] dex3894 : 88 [ 2] dey3895 : 10e0 [ 3] bpl tora123897 : a206 [ 2] ldx #63899 : a003 [ 2] ldy #3389b : tora13set_ay absORa,$ff> load_flag $ff389b : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>389d : 48 [ 3]> pha ;use stack to load status389e : b94702 [ 4]> lda absORa,y ;precharge accu38a1 : 28 [ 4]> plp38a2 : 01f0 [ 6] ora (indOR,x)tst_ay absrlo,absflo,$ff-fnz38a4 : 08 [ 3]> php ;save flags38a5 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;38a8 : f002 [ 3]> beq skip3279> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction38aa : 00 [ 7]> brk ; Use BRK to return to the monitor38ab : 28 > db test_num>38ac : >skip3279>38ac : 68 [ 4]> pla ;load status> eor_flag $ff-fnz38ad : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>38af : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne38b2 : f002 [ 3]> beq skip3282> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction38b4 : 00 [ 7]> brk ; Use BRK to return to the monitor38b5 : 28 > db test_num>38b6 : >skip3282>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 362---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------38b6 : ca [ 2] dex38b7 : ca [ 2] dex38b8 : 88 [ 2] dey38b9 : 10e0 [ 3] bpl tora1338bb : a003 [ 2] ldy #3 ;(zp),y38bd : tora14set_ay absORa,0> load_flag 038bd : a900 [ 2]> lda #0 ;allow test to change I-flag (no mask)>38bf : 48 [ 3]> pha ;use stack to load status38c0 : b94702 [ 4]> lda absORa,y ;precharge accu38c3 : 28 [ 4]> plp38c4 : 11f0 [ 5] ora (indOR),ytst_ay absrlo,absflo,038c6 : 08 [ 3]> php ;save flags38c7 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;38ca : f002 [ 3]> beq skip3287> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction38cc : 00 [ 7]> brk ; Use BRK to return to the monitor38cd : 28 > db test_num>38ce : >skip3287>38ce : 68 [ 4]> pla ;load status> eor_flag 038cf : 4930 [ 2]> eor #0|fao ;invert expected flags + always on bits>38d1 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne38d4 : f002 [ 3]> beq skip3290> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction38d6 : 00 [ 7]> brk ; Use BRK to return to the monitor38d7 : 28 > db test_num>38d8 : >skip3290>38d8 : 88 [ 2] dey38d9 : 10e2 [ 3] bpl tora1438db : a003 [ 2] ldy #338dd : tora15set_ay absORa,$ff> load_flag $ff38dd : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>38df : 48 [ 3]> pha ;use stack to load status38e0 : b94702 [ 4]> lda absORa,y ;precharge accu38e3 : 28 [ 4]> plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 363---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------38e4 : 11f0 [ 5] ora (indOR),ytst_ay absrlo,absflo,$ff-fnz38e6 : 08 [ 3]> php ;save flags38e7 : d95302 [ 4]> cmp absrlo,y ;test result> trap_ne ;38ea : f002 [ 3]> beq skip3295> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction38ec : 00 [ 7]> brk ; Use BRK to return to the monitor38ed : 28 > db test_num>38ee : >skip3295>38ee : 68 [ 4]> pla ;load status> eor_flag $ff-fnz38ef : 497d [ 2]> eor #$ff-fnz|fao ;invert expected flags + always on bits>38f1 : d95702 [ 4]> cmp absflo,y ;test flags> trap_ne38f4 : f002 [ 3]> beq skip3298> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction38f6 : 00 [ 7]> brk ; Use BRK to return to the monitor38f7 : 28 > db test_num>38f8 : >skip3298>38f8 : 88 [ 2] dey38f9 : 10e2 [ 3] bpl tora15if I_flag = 338fb : 58 [ 2] cliendif38fc : bin_testif skip_bin_test = 1jmp dec_testelse38fc : a928 [ 2] lda #test_num38fe : 8d0002 [ 4] sta test_caseendifnext_test3901 : ad0002 [ 4]> lda test_case ;previous test3904 : c928 [ 2]> cmp #test_num> trap_ne ;test is out of sequence3906 : f002 [ 3]> beq skip3301AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 364---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3908 : 00 [ 7]> brk ; Use BRK to return to the monitor3909 : 28 > db test_num>390a : >skip3301>0029 = >test_num = test_num + 1390a : a929 [ 2]> lda #test_num ;*** this tests' number390c : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; full binary add/subtract test; iterates through all combinations of operands and carry input; uses increments/decrements to predict result & result flags390f : d8 [ 2] cld3910 : a2b4 [ 2] ldx #ad2 ;for indexed test3912 : a0ff [ 2] ldy #$ff ;max range3914 : a900 [ 2] lda #0 ;start with adding zeroes & no carry3916 : 85b2 [ 3] sta adfc ;carry in - for diag3918 : 85b3 [ 3] sta ad1 ;operand 1 - accumulator391a : 85b4 [ 3] sta ad2 ;operand 2 - memory or immediate391c : 8d0302 [ 4] sta ada2 ;non zp391f : 85b5 [ 3] sta adrl ;expected result bits 0-73921 : 85b6 [ 3] sta adrh ;expected result bit 8 (carry out)3923 : a9ff [ 2] lda #$ff ;complemented operand 2 for subtract3925 : 85b8 [ 3] sta sb23927 : 8d0402 [ 4] sta sba2 ;non zp392a : a902 [ 2] lda #2 ;expected Z-flag392c : 85b7 [ 3] sta adrf392e : 18 [ 2] tadd clc ;test with carry clear392f : 20903b [ 6] jsr chkadd3932 : e6b2 [ 5] inc adfc ;now with carry3934 : e6b5 [ 5] inc adrl ;result +13936 : 08 [ 3] php ;save N & Z from low result3937 : 08 [ 3] php3938 : 68 [ 4] pla ;accu holds expected flags3939 : 2982 [ 2] and #$82 ;mask N & Z393b : 28 [ 4] plp393c : d002 [ 3] bne tadd1393e : e6b6 [ 5] inc adrh ;result bit 8 - carry3940 : 05b6 [ 3] tadd1 ora adrh ;merge C to expected flags3942 : 85b7 [ 3] sta adrf ;save expected flags except overflow3944 : 38 [ 2] sec ;test with carry set3945 : 20903b [ 6] jsr chkadd3948 : c6b2 [ 5] dec adfc ;same for operand +1 but no carry394a : e6b3 [ 5] inc ad1394c : d0e0 [ 3] bne tadd ;iterate op1394e : a900 [ 2] lda #0 ;preset result to op2 when op1 = 03950 : 85b6 [ 3] sta adrh3952 : ee0302 [ 6] inc ada23955 : e6b4 [ 5] inc ad23957 : 08 [ 3] php ;save NZ as operand 2 becomes the new resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 365---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3958 : 68 [ 4] pla3959 : 2982 [ 2] and #$82 ;mask N00000Z0395b : 85b7 [ 3] sta adrf ;no need to check carry as we are adding to 0395d : c6b8 [ 5] dec sb2 ;complement subtract operand 2395f : ce0402 [ 6] dec sba23962 : a5b4 [ 3] lda ad23964 : 85b5 [ 3] sta adrl3966 : d0c6 [ 3] bne tadd ;iterate op23968 : dec_testif skip_dec_test = 1successelse3968 : a929 [ 2] lda #test_num396a : 8d0002 [ 4] sta test_caseendifnext_test396d : ad0002 [ 4]> lda test_case ;previous test3970 : c929 [ 2]> cmp #test_num> trap_ne ;test is out of sequence3972 : f002 [ 3]> beq skip3304> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3974 : 00 [ 7]> brk ; Use BRK to return to the monitor3975 : 29 > db test_num>3976 : >skip3304>002a = >test_num = test_num + 13976 : a92a [ 2]> lda #test_num ;*** this tests' number3978 : 8d0002 [ 4]> sta test_case> ;check_ram ;uncomment to find altered RAM after each test; decimal add/subtract test; *** WARNING - tests documented behavior only! ***; only valid BCD operands are tested, N V Z flags are ignored; iterates through all valid combinations of operands and carry input; uses increments/decrements to predict result & carry flag397b : f8 [ 2] sed397c : a2b4 [ 2] ldx #ad2 ;for indexed test397e : a0ff [ 2] ldy #$ff ;max range3980 : a999 [ 2] lda #$99 ;start with adding 99 to 99 with carry3982 : 85b3 [ 3] sta ad1 ;operand 1 - accumulator3984 : 85b4 [ 3] sta ad2 ;operand 2 - memory or immediate3986 : 8d0302 [ 4] sta ada2 ;non zp3989 : 85b5 [ 3] sta adrl ;expected result bits 0-7398b : a901 [ 2] lda #1 ;set carry in & outAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 366---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------398d : 85b2 [ 3] sta adfc ;carry in - for diag398f : 85b6 [ 3] sta adrh ;expected result bit 8 (carry out)3991 : a900 [ 2] lda #0 ;complemented operand 2 for subtract3993 : 85b8 [ 3] sta sb23995 : 8d0402 [ 4] sta sba2 ;non zp3998 : 38 [ 2] tdad sec ;test with carry set3999 : 201f3a [ 6] jsr chkdad399c : c6b2 [ 5] dec adfc ;now with carry clear399e : a5b5 [ 3] lda adrl ;decimal adjust result39a0 : d008 [ 3] bne tdad1 ;skip clear carry & preset result 99 (9A-1)39a2 : c6b6 [ 5] dec adrh39a4 : a999 [ 2] lda #$9939a6 : 85b5 [ 3] sta adrl39a8 : d012 [ 3] bne tdad339aa : 290f [ 2] tdad1 and #$f ;lower nibble mask39ac : d00c [ 3] bne tdad2 ;no decimal adjust needed39ae : c6b5 [ 5] dec adrl ;decimal adjust (?0-6)39b0 : c6b5 [ 5] dec adrl39b2 : c6b5 [ 5] dec adrl39b4 : c6b5 [ 5] dec adrl39b6 : c6b5 [ 5] dec adrl39b8 : c6b5 [ 5] dec adrl39ba : c6b5 [ 5] tdad2 dec adrl ;result -139bc : 18 [ 2] tdad3 clc ;test with carry clear39bd : 201f3a [ 6] jsr chkdad39c0 : e6b2 [ 5] inc adfc ;same for operand -1 but with carry39c2 : a5b3 [ 3] lda ad1 ;decimal adjust operand 139c4 : f015 [ 3] beq tdad5 ;iterate operand 239c6 : 290f [ 2] and #$f ;lower nibble mask39c8 : d00c [ 3] bne tdad4 ;skip decimal adjust39ca : c6b3 [ 5] dec ad1 ;decimal adjust (?0-6)39cc : c6b3 [ 5] dec ad139ce : c6b3 [ 5] dec ad139d0 : c6b3 [ 5] dec ad139d2 : c6b3 [ 5] dec ad139d4 : c6b3 [ 5] dec ad139d6 : c6b3 [ 5] tdad4 dec ad1 ;operand 1 -139d8 : 4c9839 [ 3] jmp tdad ;iterate op139db : a999 [ 2] tdad5 lda #$99 ;precharge op1 max39dd : 85b3 [ 3] sta ad139df : a5b4 [ 3] lda ad2 ;decimal adjust operand 239e1 : f030 [ 4] beq tdad7 ;end of iteration39e3 : 290f [ 2] and #$f ;lower nibble mask39e5 : d018 [ 3] bne tdad6 ;skip decimal adjust39e7 : c6b4 [ 5] dec ad2 ;decimal adjust (?0-6)39e9 : c6b4 [ 5] dec ad239eb : c6b4 [ 5] dec ad239ed : c6b4 [ 5] dec ad239ef : c6b4 [ 5] dec ad239f1 : c6b4 [ 5] dec ad239f3 : e6b8 [ 5] inc sb2 ;complemented decimal adjust for subtract (?9+6)39f5 : e6b8 [ 5] inc sb239f7 : e6b8 [ 5] inc sb239f9 : e6b8 [ 5] inc sb2AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 367---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------39fb : e6b8 [ 5] inc sb239fd : e6b8 [ 5] inc sb239ff : c6b4 [ 5] tdad6 dec ad2 ;operand 2 -13a01 : e6b8 [ 5] inc sb2 ;complemented operand for subtract3a03 : a5b8 [ 3] lda sb23a05 : 8d0402 [ 4] sta sba2 ;copy as non zp operand3a08 : a5b4 [ 3] lda ad23a0a : 8d0302 [ 4] sta ada2 ;copy as non zp operand3a0d : 85b5 [ 3] sta adrl ;new result since op1+carry=00+carry +op2=op23a0f : e6b6 [ 5] inc adrh ;result carry3a11 : d085 [ 4] bne tdad ;iterate op23a13 : d8 [ 2] tdad7 cld3a14 : ad0002 [ 4] lda test_case3a17 : c92a [ 2] cmp #test_numtrap_ne ;test is out of sequence3a19 : f002 [ 3]> beq skip3306> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a1b : 00 [ 7]> brk ; Use BRK to return to the monitor3a1c : 2a > db test_num>3a1d : >skip3306; final RAM integrity test; verifies that none of the previous tests has altered RAM outside of the; designated write areas.check_ram> ;RAM check disabled - RAM size not set; *** DEBUG INFO ***;; to debug checksum errors uncomment check_ram in the next_test macro to; narrow down the responsible opcode.; may give false errors when monitor, OS or other background activity is; allowed during previous tests.; S U C C E S S ************************************************; -------------;success jmp start ;if you get here everything went wellsuccess3a1d : 00 [ 7]> brk3a1e : 2b > db test_num+1; -------------; S U C C E S S ************************************************; core subroutine of the decimal add/subtract test;; *** WARNING - tests documented behavior only! ***; only valid BCD operands are tested, N V Z flags are ignoredAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 368---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; iterates through all valid combinations of operands and carry input; uses increments/decrements to predict result & carry flag3a1f : chkdad; decimal ADC / SBC zp3a1f : 08 [ 3] php ;save carry for subtract3a20 : a5b3 [ 3] lda ad13a22 : 65b4 [ 3] adc ad2 ;perform add3a24 : 08 [ 3] php3a25 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3a27 : f002 [ 3]> beq skip3310> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a29 : 00 [ 7]> brk ; Use BRK to return to the monitor3a2a : 2a > db test_num>3a2b : >skip33103a2b : 68 [ 4] pla ;check flags3a2c : 2901 [ 2] and #1 ;mask carry3a2e : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3a30 : f002 [ 3]> beq skip3312> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a32 : 00 [ 7]> brk ; Use BRK to return to the monitor3a33 : 2a > db test_num>3a34 : >skip33123a34 : 28 [ 4] plp3a35 : 08 [ 3] php ;save carry for next add3a36 : a5b3 [ 3] lda ad13a38 : e5b8 [ 3] sbc sb2 ;perform subtract3a3a : 08 [ 3] php3a3b : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3a3d : f002 [ 3]> beq skip3314> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a3f : 00 [ 7]> brk ; Use BRK to return to the monitor3a40 : 2a > db test_num>3a41 : >skip33143a41 : 68 [ 4] pla ;check flags3a42 : 2901 [ 2] and #1 ;mask carry3a44 : c5b6 [ 3] cmp adrhtrap_ne ;bad flags3a46 : f002 [ 3]> beq skip3316> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 369---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3a48 : 00 [ 7]> brk ; Use BRK to return to the monitor3a49 : 2a > db test_num>3a4a : >skip33163a4a : 28 [ 4] plp; decimal ADC / SBC abs3a4b : 08 [ 3] php ;save carry for subtract3a4c : a5b3 [ 3] lda ad13a4e : 6d0302 [ 4] adc ada2 ;perform add3a51 : 08 [ 3] php3a52 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3a54 : f002 [ 3]> beq skip3318> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a56 : 00 [ 7]> brk ; Use BRK to return to the monitor3a57 : 2a > db test_num>3a58 : >skip33183a58 : 68 [ 4] pla ;check flags3a59 : 2901 [ 2] and #1 ;mask carry3a5b : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3a5d : f002 [ 3]> beq skip3320> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a5f : 00 [ 7]> brk ; Use BRK to return to the monitor3a60 : 2a > db test_num>3a61 : >skip33203a61 : 28 [ 4] plp3a62 : 08 [ 3] php ;save carry for next add3a63 : a5b3 [ 3] lda ad13a65 : ed0402 [ 4] sbc sba2 ;perform subtract3a68 : 08 [ 3] php3a69 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3a6b : f002 [ 3]> beq skip3322> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a6d : 00 [ 7]> brk ; Use BRK to return to the monitor3a6e : 2a > db test_num>3a6f : >skip33223a6f : 68 [ 4] pla ;check flags3a70 : 2901 [ 2] and #1 ;mask carry3a72 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3a74 : f002 [ 3]> beq skip3324AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 370---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a76 : 00 [ 7]> brk ; Use BRK to return to the monitor3a77 : 2a > db test_num>3a78 : >skip33243a78 : 28 [ 4] plp; decimal ADC / SBC #3a79 : 08 [ 3] php ;save carry for subtract3a7a : a5b4 [ 3] lda ad23a7c : 8d823a [ 4] sta chkdadi ;self modify immediate3a7f : a5b3 [ 3] lda ad13a82 = chkdadi = * + 1 ;operand of the immediate ADC3a81 : 6900 [ 2] adc #0 ;perform add3a83 : 08 [ 3] php3a84 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3a86 : f002 [ 3]> beq skip3326> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a88 : 00 [ 7]> brk ; Use BRK to return to the monitor3a89 : 2a > db test_num>3a8a : >skip33263a8a : 68 [ 4] pla ;check flags3a8b : 2901 [ 2] and #1 ;mask carry3a8d : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3a8f : f002 [ 3]> beq skip3328> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3a91 : 00 [ 7]> brk ; Use BRK to return to the monitor3a92 : 2a > db test_num>3a93 : >skip33283a93 : 28 [ 4] plp3a94 : 08 [ 3] php ;save carry for next add3a95 : a5b8 [ 3] lda sb23a97 : 8d9d3a [ 4] sta chkdsbi ;self modify immediate3a9a : a5b3 [ 3] lda ad13a9d = chkdsbi = * + 1 ;operand of the immediate SBC3a9c : e900 [ 2] sbc #0 ;perform subtract3a9e : 08 [ 3] php3a9f : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3aa1 : f002 [ 3]> beq skip3330AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 371---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3aa3 : 00 [ 7]> brk ; Use BRK to return to the monitor3aa4 : 2a > db test_num>3aa5 : >skip33303aa5 : 68 [ 4] pla ;check flags3aa6 : 2901 [ 2] and #1 ;mask carry3aa8 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3aaa : f002 [ 3]> beq skip3332> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3aac : 00 [ 7]> brk ; Use BRK to return to the monitor3aad : 2a > db test_num>3aae : >skip33323aae : 28 [ 4] plp; decimal ADC / SBC zp,x3aaf : 08 [ 3] php ;save carry for subtract3ab0 : a5b3 [ 3] lda ad13ab2 : 7500 [ 4] adc 0,x ;perform add3ab4 : 08 [ 3] php3ab5 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3ab7 : f002 [ 3]> beq skip3334> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ab9 : 00 [ 7]> brk ; Use BRK to return to the monitor3aba : 2a > db test_num>3abb : >skip33343abb : 68 [ 4] pla ;check flags3abc : 2901 [ 2] and #1 ;mask carry3abe : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3ac0 : f002 [ 3]> beq skip3336> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ac2 : 00 [ 7]> brk ; Use BRK to return to the monitor3ac3 : 2a > db test_num>3ac4 : >skip33363ac4 : 28 [ 4] plp3ac5 : 08 [ 3] php ;save carry for next add3ac6 : a5b3 [ 3] lda ad13ac8 : f504 [ 4] sbc sb2-ad2,x ;perform subtract3aca : 08 [ 3] php3acb : c5b5 [ 3] cmp adrl ;check resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 372---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne ;bad result3acd : f002 [ 3]> beq skip3338> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3acf : 00 [ 7]> brk ; Use BRK to return to the monitor3ad0 : 2a > db test_num>3ad1 : >skip33383ad1 : 68 [ 4] pla ;check flags3ad2 : 2901 [ 2] and #1 ;mask carry3ad4 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3ad6 : f002 [ 3]> beq skip3340> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ad8 : 00 [ 7]> brk ; Use BRK to return to the monitor3ad9 : 2a > db test_num>3ada : >skip33403ada : 28 [ 4] plp; decimal ADC / SBC abs,x3adb : 08 [ 3] php ;save carry for subtract3adc : a5b3 [ 3] lda ad13ade : 7d4f01 [ 4] adc ada2-ad2,x ;perform add3ae1 : 08 [ 3] php3ae2 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3ae4 : f002 [ 3]> beq skip3342> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ae6 : 00 [ 7]> brk ; Use BRK to return to the monitor3ae7 : 2a > db test_num>3ae8 : >skip33423ae8 : 68 [ 4] pla ;check flags3ae9 : 2901 [ 2] and #1 ;mask carry3aeb : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3aed : f002 [ 3]> beq skip3344> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3aef : 00 [ 7]> brk ; Use BRK to return to the monitor3af0 : 2a > db test_num>3af1 : >skip33443af1 : 28 [ 4] plp3af2 : 08 [ 3] php ;save carry for next add3af3 : a5b3 [ 3] lda ad13af5 : fd5001 [ 4] sbc sba2-ad2,x ;perform subtractAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 373---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3af8 : 08 [ 3] php3af9 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3afb : f002 [ 3]> beq skip3346> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3afd : 00 [ 7]> brk ; Use BRK to return to the monitor3afe : 2a > db test_num>3aff : >skip33463aff : 68 [ 4] pla ;check flags3b00 : 2901 [ 2] and #1 ;mask carry3b02 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b04 : f002 [ 3]> beq skip3348> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b06 : 00 [ 7]> brk ; Use BRK to return to the monitor3b07 : 2a > db test_num>3b08 : >skip33483b08 : 28 [ 4] plp; decimal ADC / SBC abs,y3b09 : 08 [ 3] php ;save carry for subtract3b0a : a5b3 [ 3] lda ad13b0c : 790401 [ 4] adc ada2-$ff,y ;perform add3b0f : 08 [ 3] php3b10 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3b12 : f002 [ 3]> beq skip3350> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b14 : 00 [ 7]> brk ; Use BRK to return to the monitor3b15 : 2a > db test_num>3b16 : >skip33503b16 : 68 [ 4] pla ;check flags3b17 : 2901 [ 2] and #1 ;mask carry3b19 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b1b : f002 [ 3]> beq skip3352> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b1d : 00 [ 7]> brk ; Use BRK to return to the monitor3b1e : 2a > db test_num>3b1f : >skip33523b1f : 28 [ 4] plp3b20 : 08 [ 3] php ;save carry for next addAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 374---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3b21 : a5b3 [ 3] lda ad13b23 : f90501 [ 4] sbc sba2-$ff,y ;perform subtract3b26 : 08 [ 3] php3b27 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3b29 : f002 [ 3]> beq skip3354> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b2b : 00 [ 7]> brk ; Use BRK to return to the monitor3b2c : 2a > db test_num>3b2d : >skip33543b2d : 68 [ 4] pla ;check flags3b2e : 2901 [ 2] and #1 ;mask carry3b30 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b32 : f002 [ 3]> beq skip3356> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b34 : 00 [ 7]> brk ; Use BRK to return to the monitor3b35 : 2a > db test_num>3b36 : >skip33563b36 : 28 [ 4] plp; decimal ADC / SBC (zp,x)3b37 : 08 [ 3] php ;save carry for subtract3b38 : a5b3 [ 3] lda ad13b3a : 6144 [ 6] adc (lo adi2-ad2,x) ;perform add3b3c : 08 [ 3] php3b3d : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3b3f : f002 [ 3]> beq skip3358> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b41 : 00 [ 7]> brk ; Use BRK to return to the monitor3b42 : 2a > db test_num>3b43 : >skip33583b43 : 68 [ 4] pla ;check flags3b44 : 2901 [ 2] and #1 ;mask carry3b46 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b48 : f002 [ 3]> beq skip3360> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b4a : 00 [ 7]> brk ; Use BRK to return to the monitor3b4b : 2a > db test_num>3b4c : >skip3360AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 375---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3b4c : 28 [ 4] plp3b4d : 08 [ 3] php ;save carry for next add3b4e : a5b3 [ 3] lda ad13b50 : e146 [ 6] sbc (lo sbi2-ad2,x) ;perform subtract3b52 : 08 [ 3] php3b53 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3b55 : f002 [ 3]> beq skip3362> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b57 : 00 [ 7]> brk ; Use BRK to return to the monitor3b58 : 2a > db test_num>3b59 : >skip33623b59 : 68 [ 4] pla ;check flags3b5a : 2901 [ 2] and #1 ;mask carry3b5c : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b5e : f002 [ 3]> beq skip3364> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b60 : 00 [ 7]> brk ; Use BRK to return to the monitor3b61 : 2a > db test_num>3b62 : >skip33643b62 : 28 [ 4] plp; decimal ADC / SBC (abs),y3b63 : 08 [ 3] php ;save carry for subtract3b64 : a5b3 [ 3] lda ad13b66 : 71fc [ 5] adc (adiy2),y ;perform add3b68 : 08 [ 3] php3b69 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3b6b : f002 [ 3]> beq skip3366> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b6d : 00 [ 7]> brk ; Use BRK to return to the monitor3b6e : 2a > db test_num>3b6f : >skip33663b6f : 68 [ 4] pla ;check flags3b70 : 2901 [ 2] and #1 ;mask carry3b72 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b74 : f002 [ 3]> beq skip3368> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b76 : 00 [ 7]> brk ; Use BRK to return to the monitor3b77 : 2a > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 376---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3b78 : >skip33683b78 : 28 [ 4] plp3b79 : 08 [ 3] php ;save carry for next add3b7a : a5b3 [ 3] lda ad13b7c : f1fe [ 5] sbc (sbiy2),y ;perform subtract3b7e : 08 [ 3] php3b7f : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3b81 : f002 [ 3]> beq skip3370> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b83 : 00 [ 7]> brk ; Use BRK to return to the monitor3b84 : 2a > db test_num>3b85 : >skip33703b85 : 68 [ 4] pla ;check flags3b86 : 2901 [ 2] and #1 ;mask carry3b88 : c5b6 [ 3] cmp adrhtrap_ne ;bad carry3b8a : f002 [ 3]> beq skip3372> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3b8c : 00 [ 7]> brk ; Use BRK to return to the monitor3b8d : 2a > db test_num>3b8e : >skip33723b8e : 28 [ 4] plp3b8f : 60 [ 6] rts; core subroutine of the full binary add/subtract test; iterates through all combinations of operands and carry input; uses increments/decrements to predict result & result flags3b90 : a5b7 [ 3] chkadd lda adrf ;add V-flag if overflow3b92 : 2983 [ 2] and #$83 ;keep N-----ZC / clear V3b94 : 48 [ 3] pha3b95 : a5b3 [ 3] lda ad1 ;test sign unequal between operands3b97 : 45b4 [ 3] eor ad23b99 : 300a [ 3] bmi ckad1 ;no overflow possible - operands have different sign3b9b : a5b3 [ 3] lda ad1 ;test sign equal between operands and result3b9d : 45b5 [ 3] eor adrl3b9f : 1004 [ 3] bpl ckad1 ;no overflow occured - operand and result have same sign3ba1 : 68 [ 4] pla3ba2 : 0940 [ 2] ora #$40 ;set V3ba4 : 48 [ 3] pha3ba5 : 68 [ 4] ckad1 pla3ba6 : 85b7 [ 3] sta adrf ;save expected flags; binary ADC / SBC zp3ba8 : 08 [ 3] php ;save carry for subtract3ba9 : a5b3 [ 3] lda ad1AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 377---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3bab : 65b4 [ 3] adc ad2 ;perform add3bad : 08 [ 3] php3bae : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3bb0 : f002 [ 3]> beq skip3374> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bb2 : 00 [ 7]> brk ; Use BRK to return to the monitor3bb3 : 2a > db test_num>3bb4 : >skip33743bb4 : 68 [ 4] pla ;check flags3bb5 : 29c3 [ 2] and #$c3 ;mask NV----ZC3bb7 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3bb9 : f002 [ 3]> beq skip3376> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bbb : 00 [ 7]> brk ; Use BRK to return to the monitor3bbc : 2a > db test_num>3bbd : >skip33763bbd : 28 [ 4] plp3bbe : 08 [ 3] php ;save carry for next add3bbf : a5b3 [ 3] lda ad13bc1 : e5b8 [ 3] sbc sb2 ;perform subtract3bc3 : 08 [ 3] php3bc4 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3bc6 : f002 [ 3]> beq skip3378> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bc8 : 00 [ 7]> brk ; Use BRK to return to the monitor3bc9 : 2a > db test_num>3bca : >skip33783bca : 68 [ 4] pla ;check flags3bcb : 29c3 [ 2] and #$c3 ;mask NV----ZC3bcd : c5b7 [ 3] cmp adrftrap_ne ;bad flags3bcf : f002 [ 3]> beq skip3380> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bd1 : 00 [ 7]> brk ; Use BRK to return to the monitor3bd2 : 2a > db test_num>3bd3 : >skip33803bd3 : 28 [ 4] plp; binary ADC / SBC absAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 378---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3bd4 : 08 [ 3] php ;save carry for subtract3bd5 : a5b3 [ 3] lda ad13bd7 : 6d0302 [ 4] adc ada2 ;perform add3bda : 08 [ 3] php3bdb : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3bdd : f002 [ 3]> beq skip3382> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bdf : 00 [ 7]> brk ; Use BRK to return to the monitor3be0 : 2a > db test_num>3be1 : >skip33823be1 : 68 [ 4] pla ;check flags3be2 : 29c3 [ 2] and #$c3 ;mask NV----ZC3be4 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3be6 : f002 [ 3]> beq skip3384> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3be8 : 00 [ 7]> brk ; Use BRK to return to the monitor3be9 : 2a > db test_num>3bea : >skip33843bea : 28 [ 4] plp3beb : 08 [ 3] php ;save carry for next add3bec : a5b3 [ 3] lda ad13bee : ed0402 [ 4] sbc sba2 ;perform subtract3bf1 : 08 [ 3] php3bf2 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3bf4 : f002 [ 3]> beq skip3386> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bf6 : 00 [ 7]> brk ; Use BRK to return to the monitor3bf7 : 2a > db test_num>3bf8 : >skip33863bf8 : 68 [ 4] pla ;check flags3bf9 : 29c3 [ 2] and #$c3 ;mask NV----ZC3bfb : c5b7 [ 3] cmp adrftrap_ne ;bad flags3bfd : f002 [ 4]> beq skip3388> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3bff : 00 [ 7]> brk ; Use BRK to return to the monitor3c00 : 2a > db test_num>3c01 : >skip33883c01 : 28 [ 4] plpAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 379---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------; binary ADC / SBC #3c02 : 08 [ 3] php ;save carry for subtract3c03 : a5b4 [ 3] lda ad23c05 : 8d0b3c [ 4] sta chkadi ;self modify immediate3c08 : a5b3 [ 3] lda ad13c0b = chkadi = * + 1 ;operand of the immediate ADC3c0a : 6900 [ 2] adc #0 ;perform add3c0c : 08 [ 3] php3c0d : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c0f : f002 [ 3]> beq skip3390> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c11 : 00 [ 7]> brk ; Use BRK to return to the monitor3c12 : 2a > db test_num>3c13 : >skip33903c13 : 68 [ 4] pla ;check flags3c14 : 29c3 [ 2] and #$c3 ;mask NV----ZC3c16 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3c18 : f002 [ 3]> beq skip3392> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c1a : 00 [ 7]> brk ; Use BRK to return to the monitor3c1b : 2a > db test_num>3c1c : >skip33923c1c : 28 [ 4] plp3c1d : 08 [ 3] php ;save carry for next add3c1e : a5b8 [ 3] lda sb23c20 : 8d263c [ 4] sta chksbi ;self modify immediate3c23 : a5b3 [ 3] lda ad13c26 = chksbi = * + 1 ;operand of the immediate SBC3c25 : e900 [ 2] sbc #0 ;perform subtract3c27 : 08 [ 3] php3c28 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c2a : f002 [ 3]> beq skip3394> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c2c : 00 [ 7]> brk ; Use BRK to return to the monitor3c2d : 2a > db test_num>3c2e : >skip33943c2e : 68 [ 4] pla ;check flags3c2f : 29c3 [ 2] and #$c3 ;mask NV----ZCAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 380---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3c31 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3c33 : f002 [ 3]> beq skip3396> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c35 : 00 [ 7]> brk ; Use BRK to return to the monitor3c36 : 2a > db test_num>3c37 : >skip33963c37 : 28 [ 4] plp; binary ADC / SBC zp,x3c38 : 08 [ 3] php ;save carry for subtract3c39 : a5b3 [ 3] lda ad13c3b : 7500 [ 4] adc 0,x ;perform add3c3d : 08 [ 3] php3c3e : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c40 : f002 [ 3]> beq skip3398> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c42 : 00 [ 7]> brk ; Use BRK to return to the monitor3c43 : 2a > db test_num>3c44 : >skip33983c44 : 68 [ 4] pla ;check flags3c45 : 29c3 [ 2] and #$c3 ;mask NV----ZC3c47 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3c49 : f002 [ 3]> beq skip3400> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c4b : 00 [ 7]> brk ; Use BRK to return to the monitor3c4c : 2a > db test_num>3c4d : >skip34003c4d : 28 [ 4] plp3c4e : 08 [ 3] php ;save carry for next add3c4f : a5b3 [ 3] lda ad13c51 : f504 [ 4] sbc sb2-ad2,x ;perform subtract3c53 : 08 [ 3] php3c54 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c56 : f002 [ 3]> beq skip3402> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c58 : 00 [ 7]> brk ; Use BRK to return to the monitor3c59 : 2a > db test_num>3c5a : >skip3402AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 381---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3c5a : 68 [ 4] pla ;check flags3c5b : 29c3 [ 2] and #$c3 ;mask NV----ZC3c5d : c5b7 [ 3] cmp adrftrap_ne ;bad flags3c5f : f002 [ 3]> beq skip3404> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c61 : 00 [ 7]> brk ; Use BRK to return to the monitor3c62 : 2a > db test_num>3c63 : >skip34043c63 : 28 [ 4] plp; binary ADC / SBC abs,x3c64 : 08 [ 3] php ;save carry for subtract3c65 : a5b3 [ 3] lda ad13c67 : 7d4f01 [ 4] adc ada2-ad2,x ;perform add3c6a : 08 [ 3] php3c6b : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c6d : f002 [ 3]> beq skip3406> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c6f : 00 [ 7]> brk ; Use BRK to return to the monitor3c70 : 2a > db test_num>3c71 : >skip34063c71 : 68 [ 4] pla ;check flags3c72 : 29c3 [ 2] and #$c3 ;mask NV----ZC3c74 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3c76 : f002 [ 3]> beq skip3408> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c78 : 00 [ 7]> brk ; Use BRK to return to the monitor3c79 : 2a > db test_num>3c7a : >skip34083c7a : 28 [ 4] plp3c7b : 08 [ 3] php ;save carry for next add3c7c : a5b3 [ 3] lda ad13c7e : fd5001 [ 4] sbc sba2-ad2,x ;perform subtract3c81 : 08 [ 3] php3c82 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c84 : f002 [ 3]> beq skip3410> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c86 : 00 [ 7]> brk ; Use BRK to return to the monitor3c87 : 2a > db test_num>AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 382---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3c88 : >skip34103c88 : 68 [ 4] pla ;check flags3c89 : 29c3 [ 2] and #$c3 ;mask NV----ZC3c8b : c5b7 [ 3] cmp adrftrap_ne ;bad flags3c8d : f002 [ 3]> beq skip3412> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c8f : 00 [ 7]> brk ; Use BRK to return to the monitor3c90 : 2a > db test_num>3c91 : >skip34123c91 : 28 [ 4] plp; binary ADC / SBC abs,y3c92 : 08 [ 3] php ;save carry for subtract3c93 : a5b3 [ 3] lda ad13c95 : 790401 [ 4] adc ada2-$ff,y ;perform add3c98 : 08 [ 3] php3c99 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3c9b : f002 [ 3]> beq skip3414> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3c9d : 00 [ 7]> brk ; Use BRK to return to the monitor3c9e : 2a > db test_num>3c9f : >skip34143c9f : 68 [ 4] pla ;check flags3ca0 : 29c3 [ 2] and #$c3 ;mask NV----ZC3ca2 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3ca4 : f002 [ 3]> beq skip3416> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ca6 : 00 [ 7]> brk ; Use BRK to return to the monitor3ca7 : 2a > db test_num>3ca8 : >skip34163ca8 : 28 [ 4] plp3ca9 : 08 [ 3] php ;save carry for next add3caa : a5b3 [ 3] lda ad13cac : f90501 [ 4] sbc sba2-$ff,y ;perform subtract3caf : 08 [ 3] php3cb0 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3cb2 : f002 [ 3]> beq skip3418> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3cb4 : 00 [ 7]> brk ; Use BRK to return to the monitorAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 383---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3cb5 : 2a > db test_num>3cb6 : >skip34183cb6 : 68 [ 4] pla ;check flags3cb7 : 29c3 [ 2] and #$c3 ;mask NV----ZC3cb9 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3cbb : f002 [ 3]> beq skip3420> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3cbd : 00 [ 7]> brk ; Use BRK to return to the monitor3cbe : 2a > db test_num>3cbf : >skip34203cbf : 28 [ 4] plp; binary ADC / SBC (zp,x)3cc0 : 08 [ 3] php ;save carry for subtract3cc1 : a5b3 [ 3] lda ad13cc3 : 6144 [ 6] adc (lo adi2-ad2,x) ;perform add3cc5 : 08 [ 3] php3cc6 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3cc8 : f002 [ 3]> beq skip3422> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3cca : 00 [ 7]> brk ; Use BRK to return to the monitor3ccb : 2a > db test_num>3ccc : >skip34223ccc : 68 [ 4] pla ;check flags3ccd : 29c3 [ 2] and #$c3 ;mask NV----ZC3ccf : c5b7 [ 3] cmp adrftrap_ne ;bad flags3cd1 : f002 [ 3]> beq skip3424> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3cd3 : 00 [ 7]> brk ; Use BRK to return to the monitor3cd4 : 2a > db test_num>3cd5 : >skip34243cd5 : 28 [ 4] plp3cd6 : 08 [ 3] php ;save carry for next add3cd7 : a5b3 [ 3] lda ad13cd9 : e146 [ 6] sbc (lo sbi2-ad2,x) ;perform subtract3cdb : 08 [ 3] php3cdc : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3cde : f002 [ 3]> beq skip3426> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 384---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction3ce0 : 00 [ 7]> brk ; Use BRK to return to the monitor3ce1 : 2a > db test_num>3ce2 : >skip34263ce2 : 68 [ 4] pla ;check flags3ce3 : 29c3 [ 2] and #$c3 ;mask NV----ZC3ce5 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3ce7 : f002 [ 3]> beq skip3428> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ce9 : 00 [ 7]> brk ; Use BRK to return to the monitor3cea : 2a > db test_num>3ceb : >skip34283ceb : 28 [ 4] plp; binary ADC / SBC (abs),y3cec : 08 [ 3] php ;save carry for subtract3ced : a5b3 [ 3] lda ad13cef : 71fc [ 5] adc (adiy2),y ;perform add3cf1 : 08 [ 3] php3cf2 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad result3cf4 : f002 [ 3]> beq skip3430> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3cf6 : 00 [ 7]> brk ; Use BRK to return to the monitor3cf7 : 2a > db test_num>3cf8 : >skip34303cf8 : 68 [ 4] pla ;check flags3cf9 : 29c3 [ 2] and #$c3 ;mask NV----ZC3cfb : c5b7 [ 3] cmp adrftrap_ne ;bad flags3cfd : f002 [ 4]> beq skip3432> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3cff : 00 [ 7]> brk ; Use BRK to return to the monitor3d00 : 2a > db test_num>3d01 : >skip34323d01 : 28 [ 4] plp3d02 : 08 [ 3] php ;save carry for next add3d03 : a5b3 [ 3] lda ad13d05 : f1fe [ 5] sbc (sbiy2),y ;perform subtract3d07 : 08 [ 3] php3d08 : c5b5 [ 3] cmp adrl ;check resulttrap_ne ;bad resultAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 385---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3d0a : f002 [ 3]> beq skip3434> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d0c : 00 [ 7]> brk ; Use BRK to return to the monitor3d0d : 2a > db test_num>3d0e : >skip34343d0e : 68 [ 4] pla ;check flags3d0f : 29c3 [ 2] and #$c3 ;mask NV----ZC3d11 : c5b7 [ 3] cmp adrftrap_ne ;bad flags3d13 : f002 [ 3]> beq skip3436> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d15 : 00 [ 7]> brk ; Use BRK to return to the monitor3d16 : 2a > db test_num>3d17 : >skip34363d17 : 28 [ 4] plp3d18 : 60 [ 6] rts; target for the jump absolute test3d19 : 88 [ 2] dey3d1a : 88 [ 2] dey3d1b : test_far3d1b : 08 [ 3] php ;either SP or Y count will fail, if we do not hit3d1c : 88 [ 2] dey3d1d : 88 [ 2] dey3d1e : 88 [ 2] dey3d1f : 28 [ 4] plptrap_cs ;flags loaded?3d20 : 9002 [ 3]> bcc skip3438> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d22 : 00 [ 7]> brk ; Use BRK to return to the monitor3d23 : 2a > db test_num>3d24 : >skip3438trap_vs3d24 : 5002 [ 3]> bvc skip3440> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d26 : 00 [ 7]> brk ; Use BRK to return to the monitor3d27 : 2a > db test_num>3d28 : >skip3440trap_mi3d28 : 1002 [ 3]> bpl skip3442> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instructionAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 386---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3d2a : 00 [ 7]> brk ; Use BRK to return to the monitor3d2b : 2a > db test_num>3d2c : >skip3442trap_eq3d2c : d002 [ 3]> bne skip3444> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d2e : 00 [ 7]> brk ; Use BRK to return to the monitor3d2f : 2a > db test_num>3d30 : >skip34443d30 : c946 [ 2] cmp #'F' ;registers loaded?trap_ne3d32 : f002 [ 3]> beq skip3446> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d34 : 00 [ 7]> brk ; Use BRK to return to the monitor3d35 : 2a > db test_num>3d36 : >skip34463d36 : e041 [ 2] cpx #'A'trap_ne3d38 : f002 [ 3]> beq skip3448> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d3a : 00 [ 7]> brk ; Use BRK to return to the monitor3d3b : 2a > db test_num>3d3c : >skip34483d3c : c04f [ 2] cpy #('R'-3)trap_ne3d3e : f002 [ 3]> beq skip3450> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d40 : 00 [ 7]> brk ; Use BRK to return to the monitor3d41 : 2a > db test_num>3d42 : >skip34503d42 : 48 [ 3] pha ;save a,x3d43 : 8a [ 2] txa3d44 : 48 [ 3] pha3d45 : ba [ 2] tsx3d46 : e0fd [ 2] cpx #$fd ;check SPtrap_ne3d48 : f002 [ 3]> beq skip3452> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d4a : 00 [ 7]> brk ; Use BRK to return to the monitor3d4b : 2a > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 387---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->3d4c : >skip34523d4c : 68 [ 4] pla ;restore x3d4d : aa [ 2] taxset_stat $ff> load_flag $ff3d4e : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3d50 : 48 [ 3]> pha ;use stack to load status3d51 : 28 [ 4]> plp3d52 : 68 [ 4] pla ;restore a3d53 : e8 [ 2] inx ;return registers with modifications3d54 : 49aa [ 2] eor #$aa ;N=1, V=1, Z=0, C=13d56 : 4ca808 [ 3] jmp far_ret; target for the jump indirect test3d59 : 00 align3d5a : 623d ptr_tst_ind dw test_ind3d5c : 1f09 ptr_ind_ret dw ind_rettrap ;runover protection>; db $db ; M65C02/M65C02A SToP instruction3d5e : 00 [ 7]> brk ; Use BRK to return to the monitor3d5f : 2a > db test_num3d60 : 88 [ 2] dey3d61 : 88 [ 2] dey3d62 : test_ind3d62 : 08 [ 3] php ;either SP or Y count will fail, if we do not hit3d63 : 88 [ 2] dey3d64 : 88 [ 2] dey3d65 : 88 [ 2] dey3d66 : 28 [ 4] plptrap_cs ;flags loaded?3d67 : 9002 [ 3]> bcc skip3457> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d69 : 00 [ 7]> brk ; Use BRK to return to the monitor3d6a : 2a > db test_num>3d6b : >skip3457trap_vs3d6b : 5002 [ 3]> bvc skip3459> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d6d : 00 [ 7]> brk ; Use BRK to return to the monitor3d6e : 2a > db test_num>3d6f : >skip3459AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 388---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_mi3d6f : 1002 [ 3]> bpl skip3461> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d71 : 00 [ 7]> brk ; Use BRK to return to the monitor3d72 : 2a > db test_num>3d73 : >skip3461trap_eq3d73 : d002 [ 3]> bne skip3463> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d75 : 00 [ 7]> brk ; Use BRK to return to the monitor3d76 : 2a > db test_num>3d77 : >skip34633d77 : c949 [ 2] cmp #'I' ;registers loaded?trap_ne3d79 : f002 [ 3]> beq skip3465> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d7b : 00 [ 7]> brk ; Use BRK to return to the monitor3d7c : 2a > db test_num>3d7d : >skip34653d7d : e04e [ 2] cpx #'N'trap_ne3d7f : f002 [ 3]> beq skip3467> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d81 : 00 [ 7]> brk ; Use BRK to return to the monitor3d82 : 2a > db test_num>3d83 : >skip34673d83 : c041 [ 2] cpy #('D'-3)trap_ne3d85 : f002 [ 3]> beq skip3469> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d87 : 00 [ 7]> brk ; Use BRK to return to the monitor3d88 : 2a > db test_num>3d89 : >skip34693d89 : 48 [ 3] pha ;save a,x3d8a : 8a [ 2] txa3d8b : 48 [ 3] pha3d8c : ba [ 2] tsx3d8d : e0fd [ 2] cpx #$fd ;check SPtrap_ne3d8f : f002 [ 3]> beq skip3471AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 389---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3d91 : 00 [ 7]> brk ; Use BRK to return to the monitor3d92 : 2a > db test_num>3d93 : >skip34713d93 : 68 [ 4] pla ;restore x3d94 : aa [ 2] taxset_stat $ff> load_flag $ff3d95 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3d97 : 48 [ 3]> pha ;use stack to load status3d98 : 28 [ 4]> plp3d99 : 68 [ 4] pla ;restore a3d9a : e8 [ 2] inx ;return registers with modifications3d9b : 49aa [ 2] eor #$aa ;N=1, V=1, Z=0, C=13d9d : 6c5c3d [ 6] jmp (ptr_ind_ret)trap ;runover protection>; db $db ; M65C02/M65C02A SToP instruction3da0 : 00 [ 7]> brk ; Use BRK to return to the monitor3da1 : 2a > db test_num; target for the jump subroutine test3da2 : 88 [ 2] dey3da3 : 88 [ 2] dey3da4 : test_jsr3da4 : 08 [ 3] php ;either SP or Y count will fail, if we do not hit3da5 : 88 [ 2] dey3da6 : 88 [ 2] dey3da7 : 88 [ 2] dey3da8 : 28 [ 4] plptrap_cs ;flags loaded?3da9 : 9002 [ 3]> bcc skip3476> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3dab : 00 [ 7]> brk ; Use BRK to return to the monitor3dac : 2a > db test_num>3dad : >skip3476trap_vs3dad : 5002 [ 3]> bvc skip3478> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3daf : 00 [ 7]> brk ; Use BRK to return to the monitor3db0 : 2a > db test_num>3db1 : >skip3478trap_miAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 390---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3db1 : 1002 [ 3]> bpl skip3480> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3db3 : 00 [ 7]> brk ; Use BRK to return to the monitor3db4 : 2a > db test_num>3db5 : >skip3480trap_eq3db5 : d002 [ 3]> bne skip3482> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3db7 : 00 [ 7]> brk ; Use BRK to return to the monitor3db8 : 2a > db test_num>3db9 : >skip34823db9 : c94a [ 2] cmp #'J' ;registers loaded?trap_ne3dbb : f002 [ 3]> beq skip3484> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3dbd : 00 [ 7]> brk ; Use BRK to return to the monitor3dbe : 2a > db test_num>3dbf : >skip34843dbf : e053 [ 2] cpx #'S'trap_ne3dc1 : f002 [ 3]> beq skip3486> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3dc3 : 00 [ 7]> brk ; Use BRK to return to the monitor3dc4 : 2a > db test_num>3dc5 : >skip34863dc5 : c04f [ 2] cpy #('R'-3)trap_ne3dc7 : f002 [ 3]> beq skip3488> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3dc9 : 00 [ 7]> brk ; Use BRK to return to the monitor3dca : 2a > db test_num>3dcb : >skip34883dcb : 48 [ 3] pha ;save a,x3dcc : 8a [ 2] txa3dcd : 48 [ 3] pha3dce : ba [ 2] tsx ;sp -4? (return addr,a,x)3dcf : e0fb [ 2] cpx #$fbtrap_ne3dd1 : f002 [ 3]> beq skip3490> trap ;failed equal (zero)AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 391---------------------------------------------------------- 65c02_ft.a65 ----------------------------------------------------------->; db $db ; M65C02/M65C02A SToP instruction3dd3 : 00 [ 7]> brk ; Use BRK to return to the monitor3dd4 : 2a > db test_num>3dd5 : >skip34903dd5 : adff01 [ 4] lda $1ff ;propper return on stack3dd8 : c909 [ 2] cmp #hi(jsr_ret)trap_ne3dda : f002 [ 3]> beq skip3492> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3ddc : 00 [ 7]> brk ; Use BRK to return to the monitor3ddd : 2a > db test_num>3dde : >skip34923dde : adfe01 [ 4] lda $1fe3de1 : c967 [ 2] cmp #lo(jsr_ret)trap_ne3de3 : f002 [ 3]> beq skip3494> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3de5 : 00 [ 7]> brk ; Use BRK to return to the monitor3de6 : 2a > db test_num>3de7 : >skip3494set_stat $ff> load_flag $ff3de7 : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3de9 : 48 [ 3]> pha ;use stack to load status3dea : 28 [ 4]> plp3deb : 68 [ 4] pla ;pull x,a3dec : aa [ 2] tax3ded : 68 [ 4] pla3dee : e8 [ 2] inx ;return registers with modifications3def : 49aa [ 2] eor #$aa ;N=1, V=1, Z=0, C=13df1 : 60 [ 6] rtstrap ;runover protection>; db $db ; M65C02/M65C02A SToP instruction3df2 : 00 [ 7]> brk ; Use BRK to return to the monitor3df3 : 2a > db test_num;trap in case of unexpected IRQ, NMI, BRK, RESET - BRK test target3df4 : nmi_traptrap ;check stack for conditions at NMI>; db $db ; M65C02/M65C02A SToP instruction3df4 : 00 [ 7]> brk ; Use BRK to return to the monitor3df5 : 2a > db test_numAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 392---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3df6 : res_traptrap ;unexpected RESET>; db $db ; M65C02/M65C02A SToP instruction3df6 : 00 [ 7]> brk ; Use BRK to return to the monitor3df7 : 2a > db test_num3df8 : 88 [ 2] dey3df9 : 88 [ 2] dey3dfa : irq_trap ;BRK test or unextpected BRK or IRQ3dfa : 08 [ 3] php ;either SP or Y count will fail, if we do not hit3dfb : 88 [ 2] dey3dfc : 88 [ 2] dey3dfd : 88 [ 2] dey;next 4 traps could be caused by unexpected BRK or IRQ;check stack for BREAK and originating location;possible jump/branch into weeds (uninitialized space)3dfe : c942 [ 2] cmp #'B' ;registers loaded?trap_ne3e00 : f002 [ 3]> beq skip3501> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e02 : 00 [ 7]> brk ; Use BRK to return to the monitor3e03 : 2a > db test_num>3e04 : >skip35013e04 : e052 [ 2] cpx #'R'trap_ne3e06 : f002 [ 3]> beq skip3503> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e08 : 00 [ 7]> brk ; Use BRK to return to the monitor3e09 : 2a > db test_num>3e0a : >skip35033e0a : c048 [ 2] cpy #('K'-3)trap_ne3e0c : f002 [ 3]> beq skip3505> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e0e : 00 [ 7]> brk ; Use BRK to return to the monitor3e0f : 2a > db test_num>3e10 : >skip35053e10 : 85b0 [ 3] sta irq_a ;save registers during break test3e12 : 86b1 [ 3] stx irq_x3e14 : ba [ 2] tsx ;test break on stack3e15 : bd0201 [ 4] lda $102,xcmp_flag 0 ;break test should have B=13e18 : c930 [ 2]> cmp #(0 |fao)&m8 ;expected flags + always on bitsAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 393---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------trap_ne ; - no break flag on stack3e1a : f002 [ 3]> beq skip3508> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e1c : 00 [ 7]> brk ; Use BRK to return to the monitor3e1d : 2a > db test_num>3e1e : >skip35083e1e : 68 [ 4] pla3e1f : c934 [ 2] cmp #$34 ;should have added interrupt disabletrap_ne3e21 : f002 [ 3]> beq skip3510> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e23 : 00 [ 7]> brk ; Use BRK to return to the monitor3e24 : 2a > db test_num>3e25 : >skip35103e25 : ba [ 2] tsx3e26 : e0fc [ 2] cpx #$fc ;sp -3? (return addr, flags)trap_ne3e28 : f002 [ 3]> beq skip3512> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e2a : 00 [ 7]> brk ; Use BRK to return to the monitor3e2b : 2a > db test_num>3e2c : >skip35123e2c : adff01 [ 4] lda $1ff ;propper return on stack3e2f : c909 [ 2] cmp #hi(brk_ret)trap_ne3e31 : f002 [ 3]> beq skip3514> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e33 : 00 [ 7]> brk ; Use BRK to return to the monitor3e34 : 2a > db test_num>3e35 : >skip35143e35 : adfe01 [ 4] lda $1fe; cmp #lo(brk_ret)3e38 : c9ba [ 2] cmp #lo(brk_ret - 1) ; M65C02 treats JSR and traps (NMI, BRK/IRQ, RST) the same; add one totrap_ne3e3a : f002 [ 3]> beq skip3516> trap ;failed equal (zero)>; db $db ; M65C02/M65C02A SToP instruction3e3c : 00 [ 7]> brk ; Use BRK to return to the monitor3e3d : 2a > db test_num>3e3e : >skip3516AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 394---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------set_stat $ff> load_flag $ff3e3e : a9ff [ 2]> lda #$ff ;allow test to change I-flag (no mask)>3e40 : 48 [ 3]> pha ;use stack to load status3e41 : 28 [ 4]> plp3e42 : a6b1 [ 3] ldx irq_x3e44 : e8 [ 2] inx ;return registers with modifications3e45 : a5b0 [ 3] lda irq_a3e47 : 49aa [ 2] eor #$aa ;N=1, V=1, Z=0, C=1 but original flags should be restored3e49 : 40 [ 6] rtitrap ;runover protection>; db $db ; M65C02/M65C02A SToP instruction3e4a : 00 [ 7]> brk ; Use BRK to return to the monitor3e4b : 2a > db test_num;copy of data to initialize BSS segmentif load_data_direct != 13e4c : zp_init3e4c : c3824100 zp1_ db $c3,$82,$41,0 ;test patterns for LDx BIT ROL ROR ASL LSR3e50 : 7f zp7f_ db $7f ;test pattern for compare;logical zeropage operands3e51 : 001f7180 zpOR_ db 0,$1f,$71,$80 ;test pattern for OR3e55 : 0fff7f80 zpAN_ db $0f,$ff,$7f,$80 ;test pattern for AND3e59 : ff0f8f8f zpEO_ db $ff,$0f,$8f,$8f ;test pattern for EOR;indirect addressing pointers3e5d : 0802 ind1_ dw abs1 ;indirect pointer to pattern in absolute memory3e5f : 0902 dw abs1+13e61 : 0a02 dw abs1+23e63 : 0b02 dw abs1+33e65 : 0c02 dw abs7f3e67 : 1001 inw1_ dw abs1-$f8 ;indirect pointer for wrap-test pattern3e69 : 0302 indt_ dw abst ;indirect pointer to store area in absolute memory3e6b : 0402 dw abst+13e6d : 0502 dw abst+23e6f : 0602 dw abst+33e71 : 0b01 inwt_ dw abst-$f8 ;indirect pointer for wrap-test store3e73 : 3f02 indAN_ dw absAN ;indirect pointer to AND pattern in absolute memory3e75 : 4002 dw absAN+13e77 : 4102 dw absAN+23e79 : 4202 dw absAN+33e7b : 4302 indEO_ dw absEO ;indirect pointer to EOR pattern in absolute memory3e7d : 4402 dw absEO+13e7f : 4502 dw absEO+23e81 : 4602 dw absEO+33e83 : 3b02 indOR_ dw absOR ;indirect pointer to OR pattern in absolute memory3e85 : 3c02 dw absOR+1AS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 395---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3e87 : 3d02 dw absOR+23e89 : 3e02 dw absOR+3;add/subtract indirect pointers3e8b : 0302 adi2_ dw ada2 ;indirect pointer to operand 2 in absolute memory3e8d : 0402 sbi2_ dw sba2 ;indirect pointer to complemented operand 2 (SBC)3e8f : 0401 adiy2_ dw ada2-$ff ;with offset for indirect indexed3e91 : 0501 sbiy2_ dw sba2-$ff3e93 : zp_endif (zp_end - zp_init) != (zp_bss_end - zp_bss);force assembler error if size is differentERROR ERROR ERROR ;mismatch between bss and zeropage dataendif3e93 : data_init3e93 : c3824100 abs1_ db $c3,$82,$41,0 ;test patterns for LDx BIT ROL ROR ASL LSR3e97 : 7f abs7f_ db $7f ;test pattern for compare;loads3e98 : 80800002 fLDx_ db fn,fn,0,fz ;expected flags for load;shifts3e9c : rASL_ ;expected result ASL & ROL -carry3e9c : 86048200 rROL_ db $86,$04,$82,0 ; "3ea0 : 87058301 rROLc_ db $87,$05,$83,1 ;expected result ROL +carry3ea4 : rLSR_ ;expected result LSR & ROR -carry3ea4 : 61412000 rROR_ db $61,$41,$20,0 ; "3ea8 : e1c1a080 rRORc_ db $e1,$c1,$a0,$80 ;expected result ROR +carry3eac : fASL_ ;expected flags for shifts3eac : 81018002 fROL_ db fnc,fc,fn,fz ;no carry in3eb0 : 81018000 fROLc_ db fnc,fc,fn,0 ;carry in3eb4 : fLSR_3eb4 : 01000102 fROR_ db fc,0,fc,fz ;no carry in3eb8 : 81808180 fRORc_ db fnc,fn,fnc,fn ;carry in;increments (decrements)3ebc : 7f80ff0001 rINC_ db $7f,$80,$ff,0,1 ;expected result for INC/DEC3ec1 : 0080800200 fINC_ db 0,fn,fn,fz,0 ;expected flags for INC/DEC;logical memory operand3ec6 : 001f7180 absOR_ db 0,$1f,$71,$80 ;test pattern for OR3eca : 0fff7f80 absAN_ db $0f,$ff,$7f,$80 ;test pattern for AND3ece : ff0f8f8f absEO_ db $ff,$0f,$8f,$8f ;test pattern for EOR;logical accu operand3ed2 : 00f11f00 absORa_ db 0,$f1,$1f,0 ;test pattern for ORAS65 Assembler for R6502 [1.42]. Copyright 1994-2007, Frank A. Kingswood Page 396---------------------------------------------------------- 65c02_ft.a65 -----------------------------------------------------------3ed6 : f0ffffff absANa_ db $f0,$ff,$ff,$ff ;test pattern for AND3eda : fff0f00f absEOa_ db $ff,$f0,$f0,$0f ;test pattern for EOR;logical results3ede : 00ff7f80 absrlo_ db 0,$ff,$7f,$803ee2 : 02800080 absflo_ db fz,fn,0,fn3ee6 : data_endif (data_end - data_init) != (data_bss_end - data_bss);force assembler error if size is differentERROR ERROR ERROR ;mismatch between bss and dataendifcode3ffa = org $3FFA3ffa : vec_init3ffa : f43d dw nmi_trap3ffc : f63d dw res_trap3ffe : fa3d dw irq_trapfffa = vec_bss equ $fffaendif ;end of RAM init dataif (load_data_direct = 1) & (ROM_vectors = 1)org $fffa ;vectorsdw nmi_trapdw res_trapdw irq_trapendiffffa = end startNo errors in pass 2.Wrote binary from address $0000 through $3fff.Total size 16384 bytes.Program start address is at $0400 (1024).
