regs.inc

来自「linux下的任天堂模拟器代码。供大家参考。」· INC 代码 · 共 1,261 行 · 第 1/3 页

INC
1,261
字号
    mov byte[ebx],0EAh    mov byte[ebx+1],0EAh.notfound    xor byte[sndrot],01h    mov al,[xa+1]    test byte[sndrot],01h    jz .n    mov al,[xa].n    ret; Sound Reg #3reg2142r:    cmp byte[spcon],0    je .nosound    inc dword[SPC700read]    mov al,[reg3read]    mov byte[spcnumread],0    ret.nosound    ; Find for D0    mov ebx,esi    mov al,3.tryagain    cmp byte[ebx],0D0h    je .foundit    inc ebx    dec al    jnz .tryagain    jmp .notfound.foundit    mov byte[ebx],0EAh    mov byte[ebx+1],0EAh.notfound    mov al,[xa]    test byte[sndrot],01h    jz .n    mov al,[xa+1].n    ret; Sound Reg #4reg2143r:    cmp byte[spcon],0    je .nosound    inc dword[SPC700read]    mov al,[reg4read]    mov byte[spcnumread],0    ret.nosound    ; Find for D0    mov ebx,esi    mov al,3.tryagain    cmp byte[ebx],0D0h    je .foundit    inc ebx    dec al    jnz .tryagain    jmp .notfound.foundit    mov byte[ebx],0EAh    mov byte[ebx+1],0EAh.notfound    mov al,[xa+1]    retreg2144r:    xor al,al    ret; WRAM Readreg2180r:    mov ebx,[wramrwadr]    add ebx,[wramdata]    mov al,[ebx]    inc dword[wramrwadr]    and dword[wramrwadr],01FFFFh    ret; Unknown register, used by test cartreg21C2r:reg21C3r:    mov al,21h    ret; Joystick Data for controller 1 and 2reg4016r:    xor al,al    test dword[JoyANow],80000000h    jz .noal    mov al,1.noal    rol dword[JoyANow],1    retSECTION .bssNEWSYM MultiTap, resb 1SECTION .text; Joystick Data for controller 2 and 4reg4017r:    mov al,28    cmp byte[device2],0    jne .nomultitap    cmp byte[MultiTap],1    je .multitap.nomultitap;    cmp byte[device2],1;    je .mouse2;    test byte[JoyBNow],0FFh;    jnz .reset;.mouse2    test dword[JoyBNow],80000000h    jz .noal;.reset    or al,1.noal    rol dword[JoyBNow],1    ret.multitap    test byte[MultiTapStat],1    jz .no1    or al,3    ret.no1    test byte[MultiTapStat],80h    jz .contr45    test dword[JoyBNow],80000000h    jz .nojb    or al,1.nojb    test dword[JoyCNow],80000000h    jz .nojc    or al,2.nojc    rol dword[JoyBNow],1    rol dword[JoyCNow],1    ret.contr45    test dword[JoyDNow],80000000h    jz .nojd    or al,1.nojd    test dword[JoyENow],80000000h    jz .noje    or al,2.noje    rol dword[JoyDNow],1    rol dword[JoyENow],1    retreg4100r:   xor al,al   cmp byte[nssdip1],1   jne .nodip1   mov al,1.nodip1   cmp byte[nssdip2],1   jne .nodip2   or al,02h.nodip2   cmp byte[nssdip3],1   jne .nodip3   or al,04h.nodip3   cmp byte[nssdip4],1   jne .nodip4   or al,08h.nodip4   cmp byte[nssdip5],1   jne .nodip5   or al,10h.nodip5   cmp byte[nssdip6],1   jne .nodip6   or al,20h.nodip6   retreg420Ar:reg420Br:reg420Cr:reg420Dr:reg420Er:reg420Fr:    ;Should be Openbus    xor al,al    ret; NMI Check Registerreg4210r:    mov al,[NMIEnab]    cmp byte[curnmi],0    jne .nmi    mov byte[NMIEnab],01h.nmi    mov byte[curnmi],0    ret; Video IRQ Registerreg4211r:    mov al,[irqon]    mov byte[irqon],0    cmp dh,[cycphb]    jae .nohblank    or al,40h.nohblank    retSECTION .bssNEWSYM hblank, resb 1SECTION .text; H/V Blank Flag & Joystick Controller Enable Flag; bit 7 = vblank, 0=out,1=in, bit 6 = hblank, 0=out,1=in, bit 0 = joystick onreg4212r:    xor al,al    cmp byte[joycontren],25    jb .nojoyc.yesjoy    mov al,1.nojoyc    inc byte[joycontren]    cmp byte[joycontren],50    jne .n    mov byte[joycontren],0.n%ifndef NO_DEBUGGER    cmp byte[debuggeron],1    je .debugger%endif    mov bx,[resolutn]    cmp word[curypos],bx    jne .notres    cmp byte[nmistatus],2    je .vblank.notres    inc bx    cmp word[curypos],bx    jb .novbl    mov bx,[totlines]    dec bx    cmp word[curypos],bx    jae .novbl.vblank    or al,80h;    jmp .nohblank.novbl    mov byte[hblank],0    cmp dh,[cycphb]    jae .nohblank    mov byte[hblank],1    or al,40h.nohblank    test byte[INTEnab],01h    jz .nojoy    mov bx,[resolutn]    add bx,2    cmp word[curypos],bx    jne .nojoy    cmp dh,5    ja .nojoy    ret.nojoy    ret.debuggerdebblah2:    push edx    mov dh,[pdh]    mov bx,[resolutn]    cmp word[curypos],bx    jne .notres    cmp byte[nmistatus],2    je .vblank.notres    inc bx    cmp word[curypos],bx    jb .novbl    mov bx,[totlines]    dec bx    cmp word[curypos],bx    jae .novbl.vblank    or al,80h;    jmp .nohblank.novbl    cmp dh,[cycphb]    jae .nohblank    or al,40h.nohblank    test byte[INTEnab],01h    jz .nojoy    mov bx,[resolutn]    add bx,2    cmp word[curypos],bx    jne .nojoy    cmp dh,5    ja .nojoy    pop edx    ret.nojoy    pop edx    ret    mov bx,[resolutn]    inc bx    cmp word[curypos],bx    jb .novbl2    or al,80h    jmp .nohblank2.novbl2    mov bl,[pdh]    cmp bl,[cycphb]    jae .nohblank2    or al,40h.nohblank2    test byte[INTEnab],01h    jz .nojoy2    mov bx,[resolutn]    add bx,2    cmp word[curypos],bx    jne .nojoy2    cmp byte[pdh],5    ja .nojoy;    or al,01h    ret.nojoy2    ret; Programmable I/O portreg4213r:    mov al,[ioportval]    ret; Quotent of Divide Result (Low)reg4214r:    mov al,[divres]    ret; Quotent of Divide Result (High)reg4215r:    mov al,[divres+1]    ret; Product of Multiplication Result or Remainder of Divide Result (Low)reg4216r:    mov al,[multres]    ret; Product of Multiplication Result or Remainder of Divide Result (High)reg4217r:    mov al,[multres+1]    ret; Joystick 1 Low; bit7=X,bit6=Y,bit5=L,bit4=Rreg4218r:    mov al,[JoyAOrig+2]    ret; Joystick 1 High; bit7=A,bit6=B,bit5=Sel,bit4=Start,bit3=up,bit2=down,bit1=left,bit0=rightreg4219r:    mov al,[JoyAOrig+3]    ret; Joystick 2 Lowreg421Ar:    mov al,[JoyBOrig+2]    ret; Joystick 2 Highreg421Br:    mov al,[JoyBOrig+3]    ret; Joystick 3 Lowreg421Cr:    mov al,[JoyDOrig+2]    ret; Joystick 3 Highreg421Dr:    mov al,[JoyDOrig+3]    ret; Joystick 4 Lowreg421Er:    mov al,[JoyCOrig+2]    ret; Joystick 4 Highreg421Fr:    mov al,[JoyCOrig+3]    ret; DMA Readerreg43XXr:    xor ebx,ebx    mov bx,cx    sub bx,4300h    mov al,[dmadata+ebx]    retregINVALID:     ; Invalid Register    cmp cx,2100h    jb .cleared    mov al,ch    cmp byte[SPC7110Enable],0    je .nospc7110.cleared    xor al,al.nospc7110;    mov byte[debstop3],1    ret

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?