📄 spc700.s
字号:
notw %ax shrw $15,%ax movb %al,APU_Carry addl $2,%ecx movb Int16,%al movl %ecx,APUPC movb %al,APU_Zero retApuOp5E: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb %al,%dl movb ApuY,%al movb %dl,Work8 andl $255,%eax andl $255,%edx subl %edx,%eax movw %ax,Int16 movl APUPC,%ecx addl $4,%esp notw %ax addl $3,%ecx movb Int16,%dl shrw $15,%ax movl %ecx,APUPC movb %dl,APU_Zero movb %al,APU_Carry retApuOp7E: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc movb %al,%dl movb ApuY,%al movb %dl,Work8 andl $255,%eax andl $255,%edx subl %edx,%eax movw %ax,Int16 notw %ax shrw $15,%ax movb %al,APU_Carry movl APUPC,%eax movb Int16,%cl addl $2,%eax addl $4,%esp movb %cl,APU_Zero movl %eax,APUPC retApuOpAD: movl APUPC,%ecx movb 1(%ecx),%dl movb ApuY,%al movb %dl,Work8 andl $255,%eax andl $255,%edx subl %edx,%eax movw %ax,Int16 notw %ax addl $2,%ecx movb Int16,%dl shrw $15,%ax movl %ecx,APUPC movb %dl,APU_Zero movb %al,APU_Carry retApuOp1F: pushl %ebx movl APUPC,%eax movw 1(%eax),%ax movb ApuX,%dl andl $65535,%eax andl $255,%edx movl %eax,APUAddress addl %edx,%eax pushl %eax call S9xAPUGetByte__FUl movb %al,%bl movb ApuX,%al movl APUAddress,%ecx andl $255,%eax addl %ecx,%eax incl %eax pushl %eax call S9xAPUGetByte__FUl xorl %edx,%edx movb %bl,%dl movl APURAM,%ecx andl $255,%eax addl %ecx,%edx sall $8,%eax addl $8,%esp addl %eax,%edx popl %ebx movl %edx,APUPC retApuOp5F: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl APURAM,%edx movl %eax,APUAddress addl %edx,%eax movl %eax,APUPC retApuOp20: movb ApuP,%cl movl APUPC,%edx movl APURAM,%eax andb $223,%cl incl %edx movl %eax,APUDirectPage movb %cl,ApuP movl %edx,APUPC retApuOp60: movl APUPC,%eax xorl %ecx,%ecx incl %eax movb %cl,APU_Carry movl %eax,APUPC retApuOpE0: movb ApuP,%dl movl APUPC,%eax xorl %ecx,%ecx andb $247,%dl incl %eax movb %cl,APU_Overflow movb %dl,ApuP movl %eax,APUPC retApuOp24: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc movb ApuA,%cl movl APUPC,%edx andb %cl,%al addl $4,%esp addl $2,%edx movb %al,ApuA movb %al,APU_Zero movl %edx,APUPC retApuOp25: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb ApuA,%cl movl APUPC,%edx andb %cl,%al addl $4,%esp addl $3,%edx movb %al,ApuA movb %al,APU_Zero movl %edx,APUPC retApuOp26: movb ApuX,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc movb ApuA,%cl movl APUPC,%edx andb %cl,%al addl $4,%esp incl %edx movb %al,ApuA movb %al,APU_Zero movl %edx,APUPC retApuOp27: movb ApuX,%al movl APUPC,%edx andl $255,%eax movb 1(%edx),%cl addb %cl,%al xorl %edx,%edx movb %al,%dl movl APUDirectPage,%eax movw (%edx,%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb ApuA,%dl movl APUPC,%ecx andb %dl,%al addl $4,%esp addl $2,%ecx movb %al,ApuA movb %al,APU_Zero movl %ecx,APUPC retApuOp28: movl APUPC,%edx movb ApuA,%al movb 1(%edx),%cl addl $2,%edx andb %cl,%al movl %edx,APUPC movb %al,ApuA movb %al,APU_Zero retApuOp29: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc movb %al,Work8 movl APUPC,%eax movb 2(%eax),%cl xorl %eax,%eax movb %cl,%al pushl %eax call S9xAPUGetByteZ__FUc movb Work8,%dl andb %al,%dl movb %dl,Work8 movl APUPC,%eax movb 2(%eax),%cl xorl %eax,%eax movb %cl,%al pushl %eax xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%edx movb Work8,%al addl $3,%edx addl $16,%esp movb %al,APU_Zero movl %edx,APUPC retApuOp34: movl APUPC,%edx movb ApuX,%al movb 1(%edx),%cl addb %cl,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc movb ApuA,%dl movl APUPC,%ecx andb %dl,%al addl $4,%esp addl $2,%ecx movb %al,ApuA movb %al,APU_Zero movl %ecx,APUPC retApuOp35: movl APUPC,%eax movb ApuX,%dl movw 1(%eax),%ax andl $255,%edx andl $65535,%eax addl %edx,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb ApuA,%dl movl APUPC,%ecx andb %dl,%al addl $4,%esp addl $3,%ecx movb %al,ApuA movb %al,APU_Zero movl %ecx,APUPC retApuOp36: movl APUPC,%eax movb ApuY,%dl movw 1(%eax),%ax andl $255,%edx andl $65535,%eax addl %edx,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb ApuA,%dl movl APUPC,%ecx andb %dl,%al addl $4,%esp addl $3,%ecx movb %al,ApuA movb %al,APU_Zero movl %ecx,APUPC retApuOp37: movl APUPC,%eax movb 1(%eax),%dl movl APUDirectPage,%eax andl $255,%edx movw (%edx,%eax),%ax movb ApuY,%dl andl $65535,%eax andl $255,%edx addl %edx,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb ApuA,%dl movl APUPC,%ecx andb %dl,%al addl $4,%esp addl $2,%ecx movb %al,ApuA movb %al,APU_Zero movl %ecx,APUPC retApuOp38: movl APUPC,%edx movb 1(%edx),%al movb %al,Work8 movb 2(%edx),%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc movb Work8,%dl andb %al,%dl movb %dl,Work8 movl APUPC,%eax movb 2(%eax),%cl xorl %eax,%eax movb %cl,%al pushl %eax xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%edx movb Work8,%al addl $3,%edx addl $12,%esp movb %al,APU_Zero movl %edx,APUPC retApuOp39: pushl %ebx movb ApuX,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc movb %al,%bl movb ApuY,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc andb %bl,%al movb %al,Work8 movb %al,APU_Zero movb ApuX,%al andl $255,%eax pushl %eax movb Work8,%al andl $255,%eax pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%ecx addl $16,%esp incl %ecx popl %ebx movl %ecx,APUPC retApuOp2B: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc movb %al,Work8 movb APU_Carry,%dl andl $255,%eax andl $255,%edx addw %ax,%ax orl %edx,%eax movw %ax,Work16 cmpw $255,%ax seta %al movb %al,APU_Carry movb Work16,%al movl APUPC,%ecx movb %al,Work8 movb %al,APU_Zero movb 1(%ecx),%al addl $4,%esp andl $255,%eax pushl %eax movb Work8,%al andl $255,%eax pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%eax addl $2,%eax addl $8,%esp movl %eax,APUPC retApuOp2C: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl movb %al,Work8 movb APU_Carry,%dl andl $255,%eax andl $255,%edx addw %ax,%ax orl %edx,%eax movw %ax,Work16 cmpw $255,%ax seta %al movb %al,APU_Carry movb Work16,%al movb %al,Work8 movb %al,APU_Zero addl $4,%esp movl APUAddress,%edx movb Work8,%al pushl %edx andl $255,%eax pushl %eax call S9xAPUSetByte__FUcUl movl APUPC,%ecx addl $3,%ecx addl $8,%esp movl %ecx,APUPC retApuOp3B: 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 APU_Carry,%dl andl $255,%eax andl $255,%edx addw %ax,%ax orl %edx,%eax movw %ax,Work16 cmpw $255,%ax seta %al movb %al,APU_Carry movb Work16,%al movb %al,Work8 movb %al,APU_Zero movl APUPC,%edx movb ApuX,%al movb 1(%edx),%cl addb %cl,%al addl $4,%esp andl $255,%eax pushl %eax movb Work8,%al andl $255,%eax pushl %eax call S9xAPUSetByteZ__FUcUc movl APUPC,%eax addl $2,%eax addl $8,%esp movl %eax,APUPC retApuOp3C: movb ApuA,%al movb APU_Carry,%dl andl $255,%eax andl $255,%edx addw %ax,%ax orl %edx,%eax movw %ax,Work16 cmpw $255,%ax seta %al movl APUPC,%edx movb %al,APU_Carry incl %edx movb Work16,%al movl %edx,APUPC movb %al,ApuA movb %al,APU_Zero retApuOp2E: movl APUPC,%eax movb 1(%eax),%cl movb %cl,Work8 movb 2(%eax),%dl addl $3,%eax movb %dl,Int8 subw APURAM,%ax movsbw %dl,%dx addl %edx,%eax movw %ax,Int16 xorl %eax,%eax movb %cl,%al pushl %eax call S9xAPUGetByteZ__FUc addl $4,%esp movb ApuA,%cl cmpb %cl,%al je .L916 xorl %eax,%eax movw Int16,%ax movl APURAM,%edx addl %edx,%eax movl %eax,APUPC movb Shutdown,%cl testb %cl,%cl je .L926 movl APUWaitAddress1,%edx cmpl %edx,%eax je .L918 movl APUWaitAddress2,%ecx cmpl %ecx,%eax jne .L926.L918: movl APUWaitCounter,%eax testl %eax,%eax jne .L919 movb CPUExecuting,%dl testb %dl,%dl jne .L920 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L920: movb %al,APUExecuting ret.L919: cmpl $1,%eax jbe .L923 movl $1,%ecx movl %ecx,APUWaitCounter ret.L923: decl %eax movl %eax,APUWaitCounter ret.L916: movl APUPC,%eax addl $3,%eax movl %eax,APUPC.L926: retApuOpDE: movl APUPC,%ecx movb ApuX,%al movb 1(%ecx),%dl andl $255,%eax andl $255,%edx addl %eax,%edx movw %dx,Work16 movl APUPC,%eax movb 2(%ecx),%dl addl $3,%eax movb %dl,Int8 subw APURAM,%ax movsbw %dl,%dx addl %edx,%eax movw %ax,Int16 movb Work16,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc addl $4,%esp movb ApuA,%dl cmpb %dl,%al je .L928 xorl %eax,%eax movw Int16,%ax movl APURAM,%ecx addl %ecx,%eax movl %eax,APUPC movb Shutdown,%dl testb %dl,%dl je .L938 movl APUWaitAddress1,%ecx cmpl %ecx,%eax je .L930 movl APUWaitAddress2,%edx cmpl %edx,%eax jne .L938.L930: movl APUWaitCounter,%eax testl %eax,%eax jne .L931 movb CPUExecuting,%cl testb %cl,%cl jne .L932 movl NextEvent,%eax movl %eax,CYCLES SAVE_CYCLES ccall S9xUpdateAPUTimer ret.L932: movb %al,APUExecuting ret.L931: cmpl $1,%eax jbe .L935 movl $1,%eax movl %eax,APUWaitCounter ret.L935: decl %eax movl %eax,APUWaitCounter ret.L928: movl APUPC,%edx addl $3,%edx movl %edx,APUPC.L938: retApuOp3D: movb ApuX,%al incb %al movb %al,ApuX movb %al,APU_Zero movl APUWaitCounter,%ecx movl APUPC,%eax incl %ecx incl %eax movl %ecx,APUWaitCounter movl %eax,APUPC retApuOpFC: movb ApuY,%al movl APUWaitCounter,%edx movl APUPC,%ecx incb %al incl %edx incl %ecx movb %al,ApuY movb %al,APU_Zero movl %edx,APUWaitCounter movl %ecx,APUPC retApuOp1D: movb ApuX,%al movl APUWaitCounter,%edx movl APUPC,%ecx decb %al incl %edx incl %ecx movb %al,ApuX movb %al,APU_Zero movl %edx,APUWaitCounter movl %ecx,APUPC retApuOpDC: movb ApuY,%al movl APUWaitCounter,%edx movl APUPC,%ecx decb %al incl %edx incl %ecx movb %al,ApuY movb %al,APU_Zero movl %edx,APUWaitCounter movl %ecx,APUPC retApuOpAB: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc incb %al movb %al,Work8 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 movb Work8,%dl movl APUWaitCounter,%ecx movl APUPC,%eax addl $12,%esp incl %ecx addl $2,%eax movb %dl,APU_Zero movl %ecx,APUWaitCounter movl %eax,APUPC retApuOpAC: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl incb %al movl APUAddress,%edx movb %al,Work8 pushl %edx andl $255,%eax pushl %eax call S9xAPUSetByte__FUcUl movb Work8,%al movb %al,APU_Zero movl APUWaitCounter,%ecx movl APUPC,%eax incl %ecx addl $3,%eax addl $12,%esp movl %ecx,APUWaitCounter movl %eax,APUPC retApuOpBB: movl APUPC,%edx movb ApuX,%al movb 1(%edx),%cl addb %cl,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc incb %al movb %al,Work8 movl APUPC,%edx 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 movb Work8,%dl movl APUWaitCounter,%ecx movl APUPC,%eax addl $12,%esp incl %ecx addl $2,%eax movb %dl,APU_Zero movl %ecx,APUWaitCounter movl %eax,APUPC retApuOpBC: movb ApuA,%al movl APUWaitCounter,%edx movl APUPC,%ecx incb %al incl %edx incl %ecx movb %al,ApuA movb %al,APU_Zero movl %edx,APUWaitCounter movl %ecx,APUPC retApuOp8B: movl APUPC,%eax movb 1(%eax),%dl xorl %eax,%eax movb %dl,%al pushl %eax call S9xAPUGetByteZ__FUc decb %al movb %al,Work8 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 movb Work8,%dl movl APUWaitCounter,%ecx movl APUPC,%eax addl $12,%esp incl %ecx addl $2,%eax movb %dl,APU_Zero movl %ecx,APUWaitCounter movl %eax,APUPC retApuOp8C: movl APUPC,%eax movw 1(%eax),%ax andl $65535,%eax movl %eax,APUAddress pushl %eax call S9xAPUGetByte__FUl decb %al movl APUAddress,%edx movb %al,Work8 pushl %edx andl $255,%eax pushl %eax call S9xAPUSetByte__FUcUl movb Work8,%al movb %al,APU_Zero movl APUWaitCounter,%ecx movl APUPC,%eax incl %ecx addl $3,%eax addl $12,%esp movl %ecx,APUWaitCounter movl %eax,APUPC retApuOp9B: movl APUPC,%edx movb ApuX,%al movb 1(%edx),%cl addb %cl,%al andl $255,%eax pushl %eax call S9xAPUGetByteZ__FUc decb %al movb %al,Work8 movl APUPC,%edx movb ApuX,%al movb 1(%edx),%cl addb %cl,%al andl $255,%eax pushl %eax mov
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -