📄 e65816c.inc
字号:
;Copyright (C) 1997-2007 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach );;http://www.zsnes.com;http://sourceforge.net/projects/zsnes;https://zsnes.bountysource.com;;This program is free software; you can redistribute it and/or;modify it under the terms of the GNU General Public License;version 2 as published by the Free Software Foundation.;;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, write to the Free Software;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.EXTSYM brkv,brkv8,copv,copv8,curexecstate,curnmi,initaddrl,intrsetEXTSYM membank0r16,membank0r8,membank0w16,membank0w8EXTSYM memtabler16,memtabler8,memtablew16,memtablew8EXTSYM nmistatus,regaccessbankr8,snesmap2,snesmmap,stackand,stackorEXTSYM wramdata,xa,xd,xdb,xe,xirqb,xpb,xpc,xs,xx,xyEXTSYM UpdateDPage,DPageR8,DPageW8,DPageR16,DPageW16; B = ( or ); C = ,; L = [ or ]; I = #SECTION .textCOp61m8nd: ; ADC(d,x) addr_BdCxB_8br ADCMacro8bndCOp61m16nd: ; ADC(d,x) addr_BdCxB_16br ADCMacro16bndCOp61m8d: ; ADC(d,x) addr_BdCxB_8br ADCMacro8bdCOp61m16d: ; ADC(d,x) addr_BdCxB_16br ADCMacro16bdCOp63m8nd: ; ADC d,s addr_dCs_8br ADCMacro8bndCOp63m16nd: ; ADC d,s addr_dCs_16br ADCMacro16bndCOp63m8d: ; ADC d,s addr_dCs_8br ADCMacro8bdCOp63m16d: ; ADC d,s addr_dCs_16br ADCMacro16bdCOp65m8nd: ; ADC d addr_d_8br ADCMacro8bndCOp65m16nd: ; ADC d addr_d_16br ADCMacro16bndCOp65m8d: ; ADC d addr_d_8br ADCMacro8bdCOp65m16d: ; ADC d addr_d_16br ADCMacro16bdCOp67m8nd: ; ADC [d] addr_LdL_8br ADCMacro8bndCOp67m16nd: ; ADC [d] addr_LdL_16br ADCMacro16bndCOp67m8d: ; ADC [d] addr_LdL_8br ADCMacro8bdCOp67m16d: ; ADC [d] addr_LdL_16br ADCMacro16bdCOp69m8nd: ; ADC # addr_I_8br ADCMacro8bndCOp69m16nd: ; ADC # addr_I_16br ADCMacro16bndCOp69m8d: ; ADC # addr_I_8br ADCMacro8bdCOp69m16d: ; ADC # addr_I_16br ADCMacro16bdCOp6Dm8nd: ; ADC a addr_a_8br ADCMacro8bndCOp6Dm16nd: ; ADC a addr_a_16br ADCMacro16bndCOp6Dm8d: ; ADC a addr_a_8br ADCMacro8bdCOp6Dm16d: ; ADC a addr_a_16br ADCMacro16bdCOp6Fm8nd: ; ADC al addr_al_8br ADCMacro8bndCOp6Fm16nd: ; ADC al addr_al_16br ADCMacro16bndCOp6Fm8d: ; ADC al addr_al_8br ADCMacro8bdCOp6Fm16d: ; ADC al addr_al_16br ADCMacro16bdCOp71m8nd: ; ADC(d),y addr_BdBCy_8br ADCMacro8bndCOp71m16nd: ; ADC(d),y addr_BdBCy_16br ADCMacro16bndCOp71m8d: ; ADC(d),y addr_BdBCy_8br ADCMacro8bdCOp71m16d: ; ADC(d),y addr_BdBCy_16br ADCMacro16bdCOp72m8nd: ; ADC (d) addr_BdB_8br ADCMacro8bndCOp72m16nd: ; ADC (d) addr_BdB_16br ADCMacro16bndCOp72m8d: ; ADC (d) addr_BdB_8br ADCMacro8bdCOp72m16d: ; ADC (d) addr_BdB_16br ADCMacro16bdCOp73m8nd: ; ADC(d,s),y addr_BdCsBCy_8br ADCMacro8bndCOp73m16nd: ; ADC(d,s),y addr_BdCsBCy_16br ADCMacro16bndCOp73m8d: ; ADC(d,s),y addr_BdCsBCy_8br ADCMacro8bdCOp73m16d: ; ADC(d,s),y addr_BdCsBCy_16br ADCMacro16bdCOp75m8nd: ; ADC d,x addr_dCx_8br ADCMacro8bndCOp75m16nd: ; ADC d,x addr_dCx_16br ADCMacro16bndCOp75m8d: ; ADC d,x addr_dCx_8br ADCMacro8bdCOp75m16d: ; ADC d,x addr_dCx_16br ADCMacro16bdCOp77m8nd: ; ADC [d],y addr_LdLCy_8br ADCMacro8bndCOp77m16nd: ; ADC [d],y addr_LdLCy_16br ADCMacro16bndCOp77m8d: ; ADC [d],y addr_LdLCy_8br ADCMacro8bdCOp77m16d: ; ADC [d],y addr_LdLCy_16br ADCMacro16bdCOp79m8nd: ; ADC a,y addr_aCy_8br ADCMacro8bndCOp79m16nd: ; ADC a,y addr_aCy_16br ADCMacro16bndCOp79m8d: ; ADC a,y addr_aCy_8br ADCMacro8bdCOp79m16d: ; ADC a,y addr_aCy_16br ADCMacro16bdCOp7Dm8nd: ; ADC a,x addr_aCx_8br ADCMacro8bndCOp7Dm16nd: ; ADC a,x addr_aCx_16br ADCMacro16bndCOp7Dm8d: ; ADC a,x addr_aCx_8br ADCMacro8bdCOp7Dm16d: ; ADC a,x addr_aCx_16br ADCMacro16bdCOp7Fm8nd: ; ADC al,x addr_alCx_8br ADCMacro8bndCOp7Fm16nd: ; ADC al,x addr_alCx_16br ADCMacro16bndCOp7Fm8d: ; ADC al,x addr_alCx_8br ADCMacro8bdCOp7Fm16d: ; ADC al,x addr_alCx_16br ADCMacro16bdCOp21m8: ; AND(d,x) addr_BdCxB_8br ANDMacro8bCOp21m16:; AND(d,x) addr_BdCxB_16br ANDMacro16bCOp23m8: ; AND d,s addr_dCs_8br ANDMacro8bCOp23m16:; AND d,s addr_dCs_16br ANDMacro16bCOp25m8: ; AND d addr_d_8br ANDMacro8bCOp25m16:; AND d addr_d_16br ANDMacro16bCOp27m8: ; AND [d] addr_LdL_8br ANDMacro8bCOp27m16:; AND [d] addr_LdL_16br ANDMacro16bCOp29m8: ; AND # addr_I_8br ANDMacro8bCOp29m16:; AND # addr_I_16br ANDMacro16bCOp2Dm8: ; AND a addr_a_8br ANDMacro8bCOp2Dm16:; AND a addr_a_16br ANDMacro16bCOp2Fm8: ; AND al addr_al_8br ANDMacro8bCOp2Fm16:; AND al addr_al_16br ANDMacro16bCOp31m8: ; AND(d),y addr_BdBCy_8br ANDMacro8bCOp31m16:; AND(d),y addr_BdBCy_16br ANDMacro16bCOp32m8: ; AND (d) addr_BdB_8br ANDMacro8bCOp32m16:; AND (d) addr_BdB_16br ANDMacro16bCOp33m8: ; AND(d,s),y addr_BdCsBCy_8br ANDMacro8bCOp33m16:; AND(d,s),y addr_BdCsBCy_16br ANDMacro16bCOp35m8: ; AND d,x addr_dCx_8br ANDMacro8bCOp35m16:; AND d,x addr_dCx_16br ANDMacro16bCOp37m8: ; AND [d],y addr_LdLCy_8br ANDMacro8bCOp37m16:; AND [d],y addr_LdLCy_16br ANDMacro16bCOp39m8: ; AND a,y addr_aCy_8br ANDMacro8bCOp39m16:; AND a,y addr_aCy_16br ANDMacro16bCOp3Dm8: ; AND a,x addr_aCx_8br ANDMacro8bCOp3Dm16:; AND a,x addr_aCx_16br ANDMacro16bCOp3Fm8: ; AND al,x addr_alCx_8br ANDMacro8bCOp3Fm16:; AND al,x addr_alCx_16br ANDMacro16bCOp06m8: ; ASL d addr_d_8brni ASLMacro8b addr_d_8bw endloopCOp06m16:; ASL d addr_d_16brni ASLMacro16b addr_d_16bw endloopCOp0Am8: ; ASL A addr_A_8brni ASLMacro8b addr_A_8bw endloopCOp0Am16:; ASL A addr_A_16brni ASLMacro16b addr_A_16bw endloopCOp0Em8: ; ASL a addr_a_8brni ASLMacro8b addr_a_8bw endloopCOp0Em16:; ASL a addr_a_16brni ASLMacro16b addr_a_16bw endloopCOp16m8: ; ASL d,x addr_dCx_8brni ASLMacro8b addr_dCx_8bw endloopCOp16m16:; ASL d,x addr_dCx_16brni ASLMacro16b addr_dCx_16bw endloopCOp1Em8: ; ASL a,x addr_aCx_8brni ASLMacro8b addr_aCx_8bw endloopCOp1Em16:; ASL a,x addr_aCx_16brni ASLMacro16b addr_aCx_16bw endloopCOp90: ; BCC r test byte[flagc],01h jnz .skip JumpMacroCOpB0: ; BCS r test byte[flagc],01h jz .skip JumpMacroCOpF0: ; BEQ r test dword[flagnz],0FFFFh jnz .skip JumpMacroCOp30: ; BMI r test dword[flagnz],018000h jz .skip JumpMacroCOpD0: ; BNE r test dword[flagnz],0FFFFh jz .skip JumpMacroCOp10: ; BPL r test dword[flagnz],018000h jnz .skip JumpMacroCOp80: ; BRA r movsx eax,byte[esi] inc esi add esi,eax endloopCOp50: ; BVC r test dword[flago],0FFh jnz .skip JumpMacroCOp70: ; BVS r test dword[flago],0FFh jz .skip JumpMacro; BIT instruction does not affect N and V flags when using immediate; addressing mode. When using other addressing modes, the N and V flagsCOp89m8: ; BIT # BITMacroim8bCOp89m16:; BIT # BITMacroim16bCOp24m8: ; BIT d addr_d_8br BITMacro8bCOp24m16:; BIT d addr_d_16br BITMacro16bCOp2Cm8: ; BIT a addr_a_8br BITMacro8bCOp2Cm16:; BIT a addr_a_16br BITMacro16bCOp34m8: ; BIT d,x addr_dCx_8br BITMacro8bCOp34m16:; BIT d,x addr_dCx_16br BITMacro16bCOp3Cm8: ; BIT a,x addr_aCx_8br BITMacro8bCOp3Cm16:; BIT a,x addr_aCx_16br BITMacro16bCOp00: ; BRK s BRKMacroCOp82: ; BRL rl BRLMacroCOp18: ; CLC i mov dword[flagc],0 endloopCOpD8: ; CLD i and dl,0F7h mov bl,dl mov edi,[tableadc+ebx*4] endloopCOp58: ; CLI i and dl,0FBh endloopCOpB8: ; CLV i mov dword[flago],0 endloopCOpC1m8: ; CMP(d,x) addr_BdCxB_8br CMPMacro8bCOpC1m16:; CMP(d,x) addr_BdCxB_16br CMPMacro16bCOpC3m8: ; CMP d,s addr_dCs_8br CMPMacro8bCOpC3m16:; CMP d,s addr_dCs_16br CMPMacro16bCOpC5m8: ; CMP d addr_d_8br CMPMacro8bCOpC5m16:; CMP d addr_d_16br CMPMacro16bCOpC7m8: ; CMP [d] addr_LdL_8br CMPMacro8bCOpC7m16:; CMP [d] addr_LdL_16br CMPMacro16bCOpC9m8: ; CMP # addr_I_8br CMPMacro8bCOpC9m16:; CMP # addr_I_16br CMPMacro16bCOpCDm8: ; CMP a addr_a_8br CMPMacro8bCOpCDm16:; CMP a addr_a_16br CMPMacro16bCOpCFm8: ; CMP al addr_al_8br CMPMacro8bCOpCFm16:; CMP al addr_al_16br CMPMacro16bCOpD1m8: ; CMP(d),y addr_BdBCy_8br CMPMacro8bCOpD1m16:; CMP(d),y addr_BdBCy_16br CMPMacro16bCOpD2m8: ; CMP (d) addr_BdB_8br CMPMacro8bCOpD2m16:; CMP (d) addr_BdB_16br CMPMacro16bCOpD3m8: ; CMP(d,s),y addr_BdCsBCy_8br CMPMacro8bCOpD3m16:; CMP(d,s),y addr_BdCsBCy_16br CMPMacro16bCOpD5m8: ; CMP d,x addr_dCx_8br CMPMacro8bCOpD5m16:; CMP d,x addr_dCx_16br CMPMacro16bCOpD7m8: ; CMP [d],y addr_LdLCy_8br CMPMacro8bCOpD7m16:; CMP [d],y addr_LdLCy_16br CMPMacro16bCOpD9m8: ; CMP a,y addr_aCy_8br CMPMacro8bCOpD9m16:; CMP a,y addr_aCy_16br CMPMacro16bCOpDDm8: ; CMP a,x addr_aCx_8br CMPMacro8bCOpDDm16:; CMP a,x addr_aCx_16br CMPMacro16bCOpDFm8: ; CMP al,x addr_alCx_8br CMPMacro8bCOpDFm16:; CMP al,x addr_alCx_16br CMPMacro16bCOp02: ; COP s COPMacroCOpE0x8: ; CPX # addr_I_8br CPXMacro8bCOpE0x16:; CPX # addr_I_16br CPXMacro16bCOpE4x8: ; CPX d addr_d_8br CPXMacro8bCOpE4x16:; CPX d addr_d_16br CPXMacro16bCOpECx8: ; CPX a addr_a_8br CPXMacro8bCOpECx16:; CPX a addr_a_16br CPXMacro16bCOpC0x8: ; CPY # addr_I_8br CPYMacro8bCOpC0x16:; CPY # addr_I_16br CPYMacro16bCOpC4x8: ; CPY d addr_d_8br CPYMacro8bCOpC4x16:; CPY d addr_d_16br CPYMacro16bCOpCCx8: ; CPY a addr_a_8br CPYMacro8bCOpCCx16:; CPY a addr_a_16br CPYMacro16bCOp3Am8: ; DEC A addr_A_8brni dec al flagsetnz8bnel addr_A_8bw endloopCOp3Am16:; DEC A addr_A_16brni dec ax flagsetnz16bnel addr_A_16bw endloopCOpCEm8: ; DEC a addr_a_8brni dec al flagsetnz8bnel addr_a_8bw endloopCOpCEm16:; DEC a addr_a_16brni dec ax flagsetnz16bnel addr_a_16bw endloopCOpC6m8: ; DEC d addr_d_8brni dec al flagsetnz8bnel addr_d_8bw endloopCOpC6m16:; DEC d addr_d_16brni dec ax flagsetnz16bnel addr_d_16bw endloopCOpD6m8: ; DEC d,x addr_dCx_8brni dec al flagsetnz8bnel addr_dCx_8bw endloopCOpD6m16:; DEC d,x addr_dCx_16brni dec ax flagsetnz16bnel addr_dCx_16bw endloopCOpDEm8: ; DEC a,x addr_aCx_8brni dec al flagsetnz8bnel addr_aCx_8bw endloopCOpDEm16:; DEC a,x addr_aCx_16brni dec ax flagsetnz16bnel addr_aCx_16bw endloopCOpCAx8: ; DEX i dec byte[xx] mov al,[xx] flagsetnz8b endloopCOpCAx16:; DEX i dec word[xx] mov ax,[xx] flagsetnz16b endloopCOp88x8: ; DEY i dec byte[xy] mov al,[xy] flagsetnz8b endloopCOp88x16:; DEY i dec word[xy] mov ax,[xy] flagsetnz16b endloopCOp41m8: ; EOR(d,x)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -