Milowork Wiki 3 / Zh / FC资料

6502 指令表

 4C141C08101821A
00    BRKPHPBPL dCLC  
20BIT dBIT a  JSRPLPBMI dSEC  
40 JMP a  RTIPHABVC dCLI  
60 JMP (a)  RTSPLABVS dSEI  
80STY dSTY aSTY d,x  DEYBCC dTYA TXS
A0LDY dLDY aLDY d,xLDY a,xLDY #iTAYBCS dCLVLDX #iTSX
C0CPY dCPY a  CPY #iINYBNE dCLD  
E0CPX dCPX a  CPX #iINXBEQ dSED  
 5D151D1911196E161EA
00ORA dORA aORA d,xORA a,xORA (d,x)ORA #iORA (d),yORA a,yASL dASL aASL d,xASL a,xASL
20AND dAND aAND d,xAND a,xAND (d,x)AND #iAND (d),yAND a,yROL dROL aROL d,xROL a,xROL
40EOR dEOR aEOR d,xEOR a,xEOR (d,x)EOR #iEOR (d),yEOR a,yLSR dLSR aLSR d,xLSR a,xLSR
60ADC dADC aADC d,xADC a,xADC (d,x)ADC #iADC (d),yADC a,yROR dROR aROR d,xROR a,xROR
80STA dSTA aSTA d,xSTA a,xSTA (d,x) STA (d),ySTA a,ySTX dSTX aSTX d,y TXA
A0LDA dLDA aLDA d,xLDA a,xLDA (d,x)LDA #iLDA (d),yLDA a,yLDX dLDX aLDX d,yLDX a,yTAX
C0CMP dCMP aCMP d,xCMP a,xCMP (d,x)CMP #iCMP (d),yCMP a,yDEC dDEC aDEC d,xDEC a,xDEX
E0SBC dSBC aSBC d,xSBC a,xSBC (d,x)SBC #iSBC (d),ySBC a,yINC dINC aINC d,xINC a,xNOP

指令含义

  • ADC:带进位加法 A←A+M+C C←256≤A+M+C V←A[7]==M[7]&&A[7]!=(A+M+C)[7] (NZ)
  • AND:按位与 A←A&M (NZ)
  • ASL:算术左移 C←A[7..0]←0 (NZ)
  • BCC/BCS:无进位或有借位则跳转、有进位或无借位则跳转(条件跳转均为相对跳转)
  • BEQ/BNE:为零或等于则跳转、不为零或不等于则跳转
  • BIT:位测试 N←(A&M)[7] V←(A&M)[6] Z←(A&M)==0
  • BPL/BMI:正数则跳转、负数则跳转
  • BRK:制造一个中断
  • BVC/BVS:未溢出则跳转、溢出则跳转
  • CLC/SEC:清除进位或设置借位、设置进位或清除借位 (C)
  • CLD/SED:禁用十进制模式、启用十进制模式(在 FC 上无效) (D)
  • CLI/SEI:启用中断、禁用中断 (I)
  • CLV:清除溢出 (V)
  • CMP/CPX/CPY:比较 C←A≥M Z←A==M N==A[7]
  • DEC/DEX/DEY:减一 M←M-1 (NZ)
  • EOR:按位异或 A←A^M (NZ)
  • INC/INX/INY:加一 M←M-1 (NZ)
  • JMP:跳转 PC←M
  • JSR:调用 ST←PC+2 PC←M
  • LDA/LDX/LDY:加载寄存器 A←M (NZ)
  • LSR:逻辑右移 0→A[7..0]→C (NZ)
  • NOP:空指令
  • ORA:按位或 A←A|M (NZ)
  • PHA:出栈到寄存器 A←ST
  • PHP:出栈到符号位 [NV.BDIZC]←ST
  • PLA:寄存器入栈 ST←A
  • PLP:符号位入栈 ST←[NV0BDIZC]
  • ROL:循环左移 C←A[7..0]←C (NZ)
  • ROR:循环右移 C→A[7..0]→C (NZ)
  • RTI:中断返回 [NV..DIZC]←ST PC←ST
  • RTS:子程序返回 PC←ST+1
  • SBC:带进位减法 A←A-M-1+C C←A<M+1-C V←A[7]==M[7]&&A[7]!=(A-M-1+C)[7] (NZ)
  • STA/STX/STY:储存寄存器 M←A
  • TAX/TAY:累加器传送至 X、Y 寄存器 A→X (NZ)
  • TSX:栈指针传送至 X 寄存器 S→X (NZ)
  • TXA/TYA:X、Y 寄存器传送至累加器 X→A (NZ)
  • TXS:X 寄存器传送至栈指针 X→S (NZ)

寻址模式

  • #i:8 位立即数
  • d:8 位寻址
  • a:16 位寻址(小端字节序,下同)
  • d,x:8 位加 x 寄存器寻址
  • a,x:16 位加 x 寄存器寻址
  • a,y:16 位加 y 寄存器寻址
  • (d,x):8 位加 x 寄存器取 16 位地址间接寻址
  • (d),y:8 位取 16 位地址加 y 寄存器间接寻址
  • (a):16 位间接跳转(目标地址不得跨页,即 JMP ($xxFF) 是不被允许的,详见此处

FC 卡带引脚排列

GND0131+5V电源
CPU 地址线A110232M2CPU 时钟,详见原文
 A100333A12CPU 地址线
 A90434A13 
 A80535A14 
 A70636D7CPU 数据线
 A60737D6 
 A50838D5 
 A40939D4 
 A31040D3 
 A21141D2 
 A11242D1 
 A01343D0 
高电平读取,低电平写入R/W1444/ROMSELPRG ROM 选通,低电平有效,A15 和 M2 的与非
中断,低电平有效,内置上拉/IRQ1545AUDFC来自游戏机的音频,一般接 AUDRF
GND1646AUDRF发送至音频输出的音频
PPU 读取,低电平有效PPU /RD1747PPU /WRPPU 写入,低电平有效
内置显存 A10,横向卷轴接 A10,纵向卷轴接 A11CIRAM A101848CIRAM /CE内置显存选通,低电平有效
PPU 地址线PPU A61949PPU /A13翻转的 GA13,一般接 CIRAM /CE
 PPU A52050PPU A7PPU 地址线
 PPU A42151PPU A8 
 PPU A32252PPU A9 
 PPU A22353PPU A10 
 PPU A12454PPU A11 
 PPU A02555PPU A12 
PPU 数据线PPU D02656PPU A13 
 PPU D12757PPU D7PPU 数据线
 PPU D22858PPU D6 
 PPU D32959PPU D5 
电源+5V3060PPU D4 

Mapper 表

粗体意味着该 Mapper 已受到本社团产品的支持。

过于复杂、资料不足或只有盗版/合卡使用的Mapper不会列入。

分立

编号名称寄存器作用
000NROM  
002UNROM8000-FFFF....pppp(H)
003CNROM8000-FFFF....CCCC
007AxROM8000-FFFF...MPPPP(0/1)
011Color Dreams8000-FFFFCCCCLLPP(LL=NES CIC defeat)
034BNROM8000-FFFF....PPPP
066GxROM8000-FFFF..PP..CC
094UN1ROM8000-FFFF...ppp..(H)
180Crazy Climber8000-FFFF.....ppp(L)
218Magic Floor (0)(1K VRAM)
429A Mode8000-FFFF..PPPPCC
429:1A Mode8000-FFFFM.PPPPCC(0/1)

MMC

编号名称寄存器作用寄存器作用
001MMC18000-9FFF(S)CPPMM(+/+)(P/P/H/L)(0/1/H/V)A000-BFFF(S)ccccc
  C000-DFFF(S)cccccE000-FFFF(S)Rpppp(WRAMNCE)
004MMC38000-9FFECP...RRR(R0..R5)(R6..R7=LL+LH+-2+-1/-2+LH+HL+-1)
  8001-9FFF R0CCCCCCC.(LL/HL)8001-9FFF R1CCCCCCC.(LH/HH)
  8001-9FFF R2CCCCCCCC(HLL/LLL)8001-9FFF R3CCCCCCCC(HLH/LLH)
  8001-9FFF R4CCCCCCCC(HHL/LHL)8001-9FFF R5CCCCCCCC(HHH/LHH)
  8001-9FFF R6..PPPPPP(LL/HL)8001-9FFF R7..PPPPPP(LH)
  A000-BFFE.......M(V/H)A001-BFFFRW......(WRAMPCE/WRAMNWE)
  C000-DFFEDDDDDDDD(PA12RISE:D--,D=0:IRQ)C001-DFFF........(*=IRQRELOAD)
  E000-FFFE........(*=IRQOFF)E001-FFFF........(*=IRQON)

字母简写含义

  • M:镜像模式
    • 0:单屏幕,AAAA
    • 1:单屏幕,BBBB
    • H:水平滚动,垂直镜像,AABB
    • V:垂直滚动,水平镜像,ABAB
  • P/p:PRG BANK
  • C/c:CHR BANK
    • 大写的 P/C:切换整个 32K/8K
    • L:切换低 16K 或低 4K,高 16K 固定于首 BANK
    • H:切换高 16K 或高 4K,低 16K 固定于末 BANK
    • 0H:切换高 16K 或高 4K,低 16K 固定于首 BANK
  • S:移位寄存器,位0=数据,低位在前,共5位