📄 spc700.s
字号:
call S9xAPUGetByte__FUl movb APUBit,%cl andl $255,%eax andl $255,%ecx sarl %cl,%eax andl $1,%eax addl $4,%esp testl %eax,%eax jne .L484 movb %al,APU_Carry.L484: movl APUPC,%ecx addl $3,%ecx movl %ecx,APUPC retApuOp6A: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,%edx movl %eax,APUAddress shrl $13,%edx andl $8191,%eax movb %dl,APUBit movl %eax,APUAddress movb APU_Carry,%dl testb %dl,%dl je .L492 pushl %eax call S9xAPUGetByte__FUl xorl %edx,%edx movb %al,%dl movb APUBit,%al andl $255,%eax addl $4,%esp btl %eax,%edx jnc .L492 xorl %ecx,%ecx movb %cl,APU_Carry.L492: movl APUPC,%eax addl $3,%eax movl %eax,APUPC retApuOp8A: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,%edx movl %eax,APUAddress shrl $13,%edx andl $8191,%eax movb %dl,APUBit movl %eax,APUAddress movb APU_Carry,%dl testb %dl,%dl je .L502 pushl %eax call S9xAPUGetByte__FUl xorl %edx,%edx movb %al,%dl movb APUBit,%al andl $255,%eax addl $4,%esp btl %eax,%edx jnc .L504 xorl %ecx,%ecx movb %cl,APU_Carry jmp .L504.L502: pushl %eax call S9xAPUGetByte__FUl xorl %edx,%edx movb %al,%dl movb APUBit,%al andl $255,%eax addl $4,%esp btl %eax,%edx jnc .L504 movl $1,%eax movb %al,APU_Carry.L504: movl APUPC,%edx addl $3,%edx movl %edx,APUPC retApuOpAA: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,%edx movl %eax,APUAddress shrl $13,%edx andl $8191,%eax movb %dl,APUBit movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb APUBit,%cl andl $255,%eax andl $255,%ecx sarl %cl,%eax andl $1,%eax addl $4,%esp testb %al,%al je .L512 movl $1,%ecx movb %cl,APU_Carry jmp .L513.L512: movb %al,APU_Carry.L513: movl APUPC,%eax addl $3,%eax movl %eax,APUPC retApuOpCA: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,%edx movl %eax,APUAddress shrl $13,%edx andl $8191,%eax movb %dl,APUBit movl %eax,APUAddress movb APU_Carry,%dl testb %dl,%dl je .L520 pushl %eax pushl %eax call S9xAPUGetByte__FUl movb APUBit,%cl movb %al,%dl movl $1,%eax andl $255,%ecx sall %cl,%eax orb %dl,%al jmp .L523.L520: pushl %eax pushl %eax call S9xAPUGetByte__FUl movb APUBit,%cl movb %al,%dl movl $-2,%eax andl $255,%ecx roll %cl,%eax andb %dl,%al.L523: addl $4,%esp andl $255,%eax pushl %eax call S9xAPUSetByte__FUcUl addl $8,%esp movl APUPC,%ecx addl $3,%ecx movl %ecx,APUPC retApuOpEA: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress movl %eax,%edx andl $8191,%eax shrl $13,%edx pushl %eax movb %dl,APUBit movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb APUBit,%cl movb %al,%dl movl $1,%eax andl $255,%ecx sall %cl,%eax xorb %dl,%al addl $4,%esp andl $255,%eax pushl %eax call S9xAPUSetByte__FUcUl movl APUPC,%eax addl $3,%eax addl $8,%esp movl %eax,APUPC retApuOp0B: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc movb %al,Work8 movb %al,%dl addb %al,%al shrb $7,%dl movb %al,Work8 movb %al,APU_Zero movb %dl,APU_Carry movl APUPC,%eax movb 1(%eax),%cl xorl %eax,%eax movb %cl,%al pushl %eax movb Work8,%al andl $255,%eax pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%eax addl $2,%eax addl $12,%esp movl %eax,APUPC retApuOp0C: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb %al,%dl movb %al,Work8 shrb $7,%dl addb %al,%al movb %dl,APU_Carry movb %al,Work8 movb %al,APU_Zero movl APUAddress,%edx andl $255,%eax pushl %edx pushl %eax call S9xAPUSetByte__FUcUl movl APUPC,%ecx addl $3,%ecx addl $12,%esp movl %ecx,APUPC retApuOp1B: movl APUPC,%edx movb ApuX,%al movb 1(%edx),%cl addb %cl,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc movb %al,Work8 movb %al,%cl addb %al,%al movl APUPC,%edx shrb $7,%cl movb %al,Work8 movb %al,APU_Zero movb %cl,APU_Carry movb ApuX,%al movb 1(%edx),%cl addb %cl,%al andl $255,%eax pushl %eax movb Work8,%al andl $255,%eax pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%eax addl $2,%eax addl $12,%esp movl %eax,APUPC retApuOp1C: movb ApuA,%al movb %al,%dl shrb $7,%dl movb %dl,APU_Carry movl APUPC,%edx addb %al,%al incl %edx movb %al,ApuA movb %al,APU_Zero movl %edx,APUPC retApuOp0D: pushl %edi pushl %esi pushl %ebx movb ApuP,%cl movb APU_Zero,%dl andb $60,%cl movb %dl,%bl movb %cl,ApuP movzbl APU_Overflow,%esi andb $128,%bl movzbl APU_Carry,%edi sall $6,%esi andl $255,%ebx andl $255,%ecx testb %dl,%dl jne .L552 movl %ebx,%eax orb $2,%al orl %edi,%eax jmp .L556.L552: movl %edi,%eax orl %ebx,%eax.L556: orl %esi,%eax orl %ecx,%eax movb ApuS,%cl movl APURAM,%edx movb %al,ApuP andl $255,%ecx movb %al,256(%edx,%ecx) movb ApuS,%cl movl APUPC,%eax popl %ebx decb %cl incl %eax popl %esi movb %cl,ApuS movl %eax,APUPC popl %edi retApuOp2D: movb ApuS,%cl movl APURAM,%edx movb ApuA,%al andl $255,%ecx movb %al,256(%edx,%ecx) movb ApuS,%dl movl APUPC,%ecx decb %dl incl %ecx movb %dl,ApuS movl %ecx,APUPC retApuOp4D: movb ApuS,%cl movl APURAM,%edx movb ApuX,%al andl $255,%ecx movb %al,256(%edx,%ecx) movb ApuS,%al movl APUPC,%edx decb %al incl %edx movb %al,ApuS movl %edx,APUPC retApuOp6D: movb ApuS,%cl movl APURAM,%edx movb ApuY,%al andl $255,%ecx movb %al,256(%edx,%ecx) movb ApuS,%cl movl APUPC,%eax decb %cl incl %eax movb %cl,ApuS movl %eax,APUPC retApuOp8E: pushl %esi pushl %ebx movb ApuS,%dl incb %dl xorl %eax,%eax movl APURAM,%ebx movb %dl,%al movb %dl,ApuS movb 256(%ebx,%eax),%dl movb %dl,%al shrb $1,%al movb %dl,%cl notl %eax andb $128,%cl andl $1,%eax movl %ecx,%esi orb %al,%cl movb %cl,APU_Zero movb %dl,%al movb %dl,%cl andb $64,%al andb $1,%cl shrb $6,%al movb %dl,ApuP movb %cl,APU_Carry movb %al,APU_Overflow testb $32,%dl je .L578 addl $256,%ebx.L578: movl %ebx,APUDirectPage movl APUPC,%ecx popl %ebx incl %ecx popl %esi movl %ecx,APUPC retApuOpAE: movb ApuS,%dl incb %dl xorl %eax,%eax movb %dl,ApuS movb %dl,%al movl APURAM,%ecx movl APUPC,%edx movb 256(%ecx,%eax),%al incl %edx movb %al,ApuA movl %edx,APUPC retApuOpCE: movb ApuS,%cl incb %cl xorl %eax,%eax movl APURAM,%edx movb %cl,ApuS movb %cl,%al movb 256(%edx,%eax),%al movl APUPC,%edx incl %edx movb %al,ApuX movl %edx,APUPC retApuOpEE: movb ApuS,%cl incb %cl xorl %eax,%eax movl APURAM,%edx movb %cl,ApuS movb %cl,%al movb 256(%edx,%eax),%al movl APUPC,%edx incl %edx movb %al,ApuY movl %edx,APUPC retApuOp0E: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movl APUAddress,%ecx movb %al,%dl pushl %ecx movb ApuA,%cl orb %cl,%al andl $255,%eax movb %dl,Work8 pushl %eax call S9xAPUSetByte__FUcUl movb Work8,%al movb ApuA,%dl movl APUPC,%ecx andb %dl,%al addl $12,%esp addl $3,%ecx movb %al,Work8 movb %al,APU_Zero movl %ecx,APUPC retApuOp4E: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movl APUAddress,%ecx pushl %ecx movb %al,%dl movb ApuA,%al notb %al andb %dl,%al andl $255,%eax movb %dl,Work8 pushl %eax call S9xAPUSetByte__FUcUl movb Work8,%al movb ApuA,%cl movl APUPC,%edx andb %cl,%al addl $12,%esp addl $3,%edx movb %al,Work8 movb %al,APU_Zero movl %edx,APUPC retApuOp0F: pushl %ebp pushl %edi pushl %esi pushl %ebx movl APURAM,%edx movl %edx,%eax movb ApuS,%cl movl APUPC,%ebx decl %eax andl $255,%ecx subl %eax,%ebx movw %bx,255(%edx,%ecx) movb ApuS,%al addb $-2,%al movb APU_Zero,%dl movb %al,ApuS movb %dl,%al movb ApuP,%cl movzbl APU_Carry,%edi andb $128,%al andb $60,%cl movzbl APU_Overflow,%esi movl %eax,%ebp movb %cl,ApuP sall $6,%esi andl $255,%ebp andl $255,%ecx testb %dl,%dl jne .L603 movl %ebp,%eax orb $2,%al orl %edi,%eax jmp .L607.L603: movl %edi,%eax orl %ebp,%eax.L607: orl %esi,%eax orl %ecx,%eax movb ApuS,%cl movl APURAM,%edx movb %al,ApuP andl $255,%ecx movb %al,256(%edx,%ecx) movb ApuP,%al movb ApuS,%dl orb $16,%al decb %dl andb $251,%al movb %dl,ApuS movb %al,ApuP movl APURAM,%ecx movb APUExtraRAM+0x20,%dl movb APUExtraRAM+0x21,%al popl %ebx andl $255,%edx andl $255,%eax popl %esi addl %ecx,%edx sall $8,%eax popl %edi addl %eax,%edx popl %ebp movl %edx,APUPC retApuOpEF: movl APUPC,%edx xorl %eax,%eax incl %edx movb %al,APUExecuting movl %edx,APUPC retApuOpFF: movl APUPC,%eax xorl %ecx,%ecx incl %eax movb %cl,APUExecuting movl %eax,APUPC retApuOp10: movl APUPC,%ecx movl %ecx,%edx movb 1(%ecx),%al addl $2,%edx movb %al,Int8 subw APURAM,%dx cbtw addl %eax,%edx movw %dx,Int16 movb APU_Zero,%al testb %al,%al jl .L617 xorl %eax,%eax movw %dx,%ax movl APURAM,%ecx addl %ecx,%eax movl %eax,APUPC testb $0xff,Shutdown jz .L627 movl APUWaitAddress1,%ecx cmpl %ecx,%eax je .L619 movl APUWaitAddress2,%edx cmpl %edx,%eax jne .L627.L619: movl APUWaitCounter,%eax testl %eax,%eax jne .L620 movb CPUExecuting,%cl testb %cl,%cl jne .L621 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L621: movb %al,APUExecuting ret.L620: cmpl $1,%eax jbe .L624 movl $1,%eax movl %eax,APUWaitCounter ret.L624: decl %eax movl %eax,APUWaitCounter ret.L617: addl $2,%ecx movl %ecx,APUPC.L627: retApuOp30: movl APUPC,%ecx movl %ecx,%edx movb 1(%ecx),%al addl $2,%edx movb %al,Int8 subw APURAM,%dx cbtw addl %eax,%edx movw %dx,Int16 movb APU_Zero,%al testb %al,%al jge .L629 xorl %eax,%eax movw %dx,%ax movl APURAM,%ecx addl %ecx,%eax movl %eax,APUPC movb Shutdown,%dl testb %dl,%dl je .L639 movl APUWaitAddress1,%ecx cmpl %ecx,%eax je .L631 movl APUWaitAddress2,%edx cmpl %edx,%eax jne .L639.L631: movl APUWaitCounter,%eax testl %eax,%eax jne .L632 movb CPUExecuting,%cl testb %cl,%cl jne .L633 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L633: movb %al,APUExecuting ret.L632: cmpl $1,%eax jbe .L636 movl $1,%eax movl %eax,APUWaitCounter ret.L636: decl %eax movl %eax,APUWaitCounter ret.L629: addl $2,%ecx movl %ecx,APUPC.L639: retApuOp90: movl APUPC,%ecx movl %ecx,%edx movb 1(%ecx),%al addl $2,%edx movb %al,Int8 subw APURAM,%dx cbtw addl %eax,%edx movw %dx,Int16 movb APU_Carry,%al testb %al,%al jne .L641 xorl %eax,%eax movw %dx,%ax movl APURAM,%ecx addl %ecx,%eax movl %eax,APUPC movb Shutdown,%dl testb %dl,%dl je .L651 movl APUWaitAddress1,%ecx cmpl %ecx,%eax je .L643 movl APUWaitAddress2,%edx cmpl %edx,%eax jne .L651.L643: movl APUWaitCounter,%eax testl %eax,%eax jne .L644 movb CPUExecuting,%cl testb %cl,%cl jne .L645 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L645: movb %al,APUExecuting ret.L644: cmpl $1,%eax jbe .L648 movl $1,%eax movl %eax,APUWaitCounter ret.L648: decl %eax movl %eax,APUWaitCounter ret.L641: addl $2,%ecx movl %ecx,APUPC.L651: retApuOpB0: movl APUPC,%ecx movl %ecx,%edx movb 1(%ecx),%al addl $2,%edx movb %al,Int8 subw APURAM,%dx cbtw addl %eax,%edx movw %dx,Int16 movb APU_Carry,%al testb %al,%al je .L653 xorl %eax,%eax movw %dx,%ax movl APURAM,%ecx addl %ecx,%eax movl %eax,APUPC movb Shutdown,%dl testb %dl,%dl je .L663 movl APUWaitAddress1,%ecx cmpl %ecx,%eax je .L655 movl APUWaitAddress2,%edx cmpl %edx,%eax jne .L663.L655: movl APUWaitCounter,%eax testl %eax,%eax jne .L656 movb CPUExecuting,%cl testb %cl,%cl jne .L657 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L657: movb %al,APUExecuting ret.L656: cmpl $1,%eax jbe .L660 movl $1,%eax movl %eax,APUWaitCounter ret.L660: decl %eax movl %eax,APUWaitCounter ret.L653: addl $2,%ecx movl %ecx,APUPC.L663: retApuOpD0: movl APUPC,%ecx movl %ecx,%edx movb 1(%ecx),%al addl $2,%edx movb %al,Int8 subw APURAM,%dx cbtw addl %eax,%edx movw %dx,Int16 movb APU_Zero,%al testb %al,%al je .L665 xorl %eax,%eax movw %dx,%ax movl APURAM,%ecx addl %ecx,%eax movl %eax,APUPC movb Shutdown,%dl testb %dl,%dl je .L675 movl APUWaitAddress1,%ecx cmpl %ecx,%eax je .L667 movl APUWaitAddress2,%edx cmpl %edx,%eax jne .L675.L667: movl APUWaitCounter,%eax testl %eax,%eax jne .L668 movb CPUExecuting,%cl testb %cl,%cl jne .L669 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L669: movb %al,APUExecuting ret.L668: cmpl $1,%eax jbe .L672 movl $1,%eax movl %eax,APUWaitCounter
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -