[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]