[an error occurred while processing this directive]
Справочные данные по MSX 6502 Обозначения: P - регистр состояния P=NV0BDIZC S - указатель стека; PC - программный счетчик A,X,Y - аккумулятор, регистры X и Y Z - адрес нулевой страницы; M - адрес ОЗУ (Z,X) - ML,MH=<ZL+X>,<ZL+X+1>; (Z),Y - M=(ZL,ZH)+Y --------------------------------------------------------------- КОП|Операция, | код команды/время | |--------------------------------------------- |признаки |#{A} Z (Z,X) (Z),Y Z,X{Y} M M,X M,Y ---|-------------|--------------------------------------------- LDA|M->A; N,Z |A9/2 A5/3 A1/6 B1/5 B5/4 AD/4 BD/4 B9/4 STA|A->M; --- | - 85/3 81/6 91/5 95/4 8D/4 9D/5 99/5 LDX|M->X; N,Z |A2/2 A6/3 - - B6/4* AE/4 - BE/4 STX|X->M; --- | - 86/3 - - 96/4* 8E/4 - - LDY|M->Y; N,Z |A0/2 A4/3 - - B4/4 AC/4 BC/4 - STY|Y->M; --- | - 84/3 - - 94/4 8C/4 - - BIT|M7,M6->N,V | - 24/3 - - - 2C/4 - - |A&M->Z | ORA| N,Z |09/2 05/3 01/6 11/5 15/4 0D/4 1D/4 19/4 AND|A&M->A; N,Z |29/2 25/3 21/6 31/5 35/4 2D/4 3D/4 39/4 EOR| N,Z |49/2 45/3 41/6 51/5 55/4 4D/4 5D/4 59/4 ADC|A+M+C->A; |69/2 65/3 61/6 71/5 75/4 6D/4 7D/4 79/4 | N,Z,C,V; C=1: рез>¤FF, V=1: (++)->(-) или (--)->(+) SBC|A-M-(1-C)->A |E9/2 E5/3 E1/6 F1/5 F5/4 ED/4 FD/4 F9/4 | N,Z,C,V; C=1: рез>=0, V=1: (+-)->(-) или (-+)->(+) CMP|(A-M)->N,Z,C |C9/2 C5/3 C1/6 D1/5 D5/4 CD/4 DD/4 D9/4 CPX|(X-M)->N,Z,C |E0/2 E4/3 - - - EC/4 - - CPY|(Y-M)->N,Z,C |C0/2 C4/3 - - - CC/4 - - DEC|M-1->M; N,Z | - C6/5 - - D6/6 CE/6 DE/7 - INC|M+1->M; N,Z | - E6/5 - - F6/6 EE/6 FE/7 - ASL|C<-M<-0;N,Z,C|0A/2* 06/5 - - 16/6 0E/6 1E/7 - LSR|0->M->C;N,Z,C|4A/2* 46/5 - - 56/6 4E/6 5E/7 - ROL|C<-M<-C;N,Z,C|2A/2* 26/5 - - 36/6 2E/6 3E/7 - ROR|C->M->C;N,Z,C|6A/2* 66/5 - - 76/6 6E/6 7E/7 - --------------------------------------------------------------- * - добавить 1 такт, если пересекается граница страницы. Команды изменения признаков NOP CLC SEC CLI SEI CLV CLD SED EA/2 18/2 38/2 58/2 78/2 B8/2 D8/2 F8/2 --- 0->C 1->C 0->I 1->I 0->V 0->D 1->D Ветвления (PC+2+M->PC) BPL BMI BVC BVS BCC BCS BNE BEQ 10/2 30/2 50/2 70/2 90/2 B0/2 D0/2 F0/2 N=0 N=1 V=0 V=1 C=0 C=1 Z=0 Z=1 Лобавить 1 такт, если ветвление осуществилось; добавить еще 1 такт, если при ветвлении пересекается граница. Регистровые операции (* - формируют N,Z) PHP PLP PHA PLA* DEY* INY* DEX* INX* 08/3 28/4 48/3 68/4 88/2 C8/2 CA/2 E8/2 P->S S->P A->S S->A Y-Y->Y Y+1->Y X-1->X X+1->X Регистровые пересылки TXA TAX TXS TSX TYA TAY 8A/2 AA/2 9A/2 BA/2 98/2 A8/2 Команды управления BRK: 00/7 (PC+2)L,H -> <S>,<S-1>; P-> <S-2>; S-3->S JSR: 20/6 (PC+2)L,H -> <S>,<S-1>; S-2->S RTI: 40/6 <S+1>->P; <S+2>,<S+3>->PCL,PCH; S+3->S RTS: 60/6 <S+1>,<S+2>->PCL,PCH; PC+1->PC; S+2->S JMP: 4C/3 ML->PCL; MH->PCH JMP (M): 6C/5 <M>->PCL; <M+1>->PCH Прерывания RES: PCL,PCH -> <S>,<S-1>; FFFC,FFFD->PCL,PCH IRQ(BRK): -"- FFFA,FFFB->PCL,PCH NMI: -"- FFFE,FFFF->PCL,PCH .сс Коды команд ---------------------------------------------------------- 0 1 2 3 4 5 6 7 ---------------------------------------------------------- 00 BRK ORA (Z,X) - - - ORA Z ASL Z - 10 BPL ORA (Z),Y - - - ORA Z,X ASL Z,X - 20 JSR AND (Z,X) - - BIT Z AND Z ROL Z - 30 BMI AND (Z),Y - - - AND Z,X ROL Z,X - 40 RTI EOR (Z,X) - - - EOR Z LSR Z - 50 BVC EOR (Z),Y - - - EOR Z,X LSR Z,X - 60 RTS ADC (Z,X) - - - ADC Z ROR Z - 70 BVS ADC (Z),Y - - - ADC Z,X ROR Z,X - 80 - STA (Z,X) - - STY Z STA Z STX Z - 90 BCC STA (Z),Y - - STY Z,X STA Z,X STA Z,Y - A0 LDY# LDA (Z,X) LDX# - LDY Z LDA Z LDX Z - B0 BCS LDA (Z),Y - - LDY Z,X LDA Z,X LDX Z,Y - C0 CPY# CMP (Z,X) - - CPY Z CMP Z DEC Z - D0 BNE CMP (Z),Y - - - CMP Z,X DEC Z,X - E0 CPX# SBC (Z,X) - - CPX Z SBC Z INC Z - F0 BEQ SBC (Z),Y - - - SBC Z,X INC Z,X - ---------------------------------------------------------- ---------------------------------------------------------- 8 9 A B C D E F ---------------------------------------------------------- 08 PHP ORA # ASL - - ORA M ASL M - 18 CLC ORA M,Y - - - ORA M,X ASL M,X - 28 PLP AND # ROL - BIT M AND M ROL M - 38 SEC AND M,Y - - - AND M,X ROL M,X - 48 PHA EOR # LSR - JMP M EOR M LSR M - 58 CLI EOR M,Y - - - EOR M,X LSR M,X - 68 PLA ADC # ROR - JMP(M) ADC M ROR M - 78 SEI ADC M,Y - - - ADC M,X ROR M,X - 88 DEY - TXA - STY M STA M STY M - 98 TYA STA M,Y TXS - - STA M,X - A8 TAY LDA # TAX - LDY M LDA M LDX M - B8 CLV LDA M,Y TSX - LDY M,X LDA M,X LDX M,Y - C8 INY CMP # DEX - CMP M CMP M DEC M - D8 CLD CMP M,Y - - CMP M,X CMP M,X DEC M,X - E8 INX SBC # NOP - SBC M SBC M INC M - F8 SED SBC M,Y - - SBC M,X SBC M,X INC M,X - ---------------------------------------------------------- Знакогенератор -------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 A B C D E F -------------------------------------------------- 00| . . . . . . . . . . . . . . . . 10| . . . . . . . . . . . . . . . . 20| . . . . . . . . . . . . . . . . 30| . . . . . . . . . . . . . . . . 40| ` a b c d e f g h i j k l m n o 50| p q r s t u v w x y z { / } ~ 60| ю а б ц д е ф г х и й к л м н о 70| п я р с т у ж в ь ы з ш э щ ч ъ 80| 0ф .ф =ф F1 F2 F3 <- ПС 90| 1ф 2ф 3ф 4ф 5ф -> ВВ ВН ред6ф 7ф 8ф 9ф A0| ! " # ¤ % & ' ( ) * + , - . / B0| 0 1 2 3 4 5 6 7 8 9 : ; < = > ? C0| @ A B C D E F G H I J K L M N O D0| P Q R S T U V W X Y Z [ \ ] ^ _ E0| Ю А Б Ц Д Е Ф Г Х И Й К Л М Н О F0| П Я Р С Т У Ж В Ь Ы З Ш Э Щ Ч -------------------------------------------------- .сс[an error occurred while processing this directive]