📄 spr32x32_16.s
字号:
jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+12(%edi)7: movb 16+3(%esi),%al movb 16+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+14(%edi)7: movb 16+8(%esi),%al movb 16+8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+24(%edi)7: movb 16+8+1(%esi),%al movb 16+8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+26(%edi)7: movb 16+8+2(%esi),%al movb 16+8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+28(%edi)7: movb 16+8+3(%esi),%al movb 16+8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+30(%edi)7: addl $32,%esi // Next Tile Line addl $0xDEADBEEF,%edi // Next Screen Linebitw_04: cmp $0xDEADBEEF,%esiendc_04: jne 9b popl %ebx popl %esi popl %edi popl %ebp retFUNC(Draw32x32_Trans_Mapped_16_FlipY) pushl %ebp pushl %edi pushl %esi pushl %ebx movl 20(%esp),%esi // source movl 28(%esp),%eax // y movl %esi,%edx sall $2,%eax addl $32*32,%edx // tile end movl 0xDEADBEEF(%eax),%ediblin_05: movl %edx,endc_05-4 movl 32(%esp),%ebp // cmap addl 24(%esp),%edi // x addl 24(%esp),%edi // x xorl %edx,%edx xorl %ecx,%ecx xorl %ebx,%ebx xorl %eax,%eax9: movb (%esi),%al movb 4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-8(%edi)7: movb 1(%esi),%al movb 5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-2(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-10(%edi)7: movb 2(%esi),%al movb 6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-12(%edi)7: movb 3(%esi),%al movb 7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-14(%edi)7: movb 8(%esi),%al movb 8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-24(%edi)7: movb 8+1(%esi),%al movb 8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-26(%edi)7: movb 8+2(%esi),%al movb 8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-28(%edi)7: movb 8+3(%esi),%al movb 8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-30(%edi)7:// Copy... movb 16(%esi),%al movb 16+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-8(%edi)7: movb 16+1(%esi),%al movb 16+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-2(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-10(%edi)7: movb 16+2(%esi),%al movb 16+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-12(%edi)7: movb 16+3(%esi),%al movb 16+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-14(%edi)7: movb 16+8(%esi),%al movb 16+8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-24(%edi)7: movb 16+8+1(%esi),%al movb 16+8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-26(%edi)7: movb 16+8+2(%esi),%al movb 16+8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-28(%edi)7: movb 16+8+3(%esi),%al movb 16+8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-30(%edi)7: addl $32,%esi // Next Tile Line addl $0xDEADBEEF,%edi // Next Screen Linebitw_05: cmp $0xDEADBEEF,%esiendc_05: jne 9b popl %ebx popl %esi popl %edi popl %ebp retFUNC(Draw32x32_Trans_Mapped_16_FlipX) pushl %ebp pushl %edi pushl %esi pushl %ebx movl 20(%esp),%esi // source movl 28(%esp),%eax // y movl %esi,%edx sall $2,%eax addl $32*32,%edx // tile end movl 0xDEADBEEF(%eax),%ediblin_06: movl %edx,endc_06-4 movl 32(%esp),%ebp // cmap addl 24(%esp),%edi // x addl 24(%esp),%edi // x xorl %edx,%edx xorl %ecx,%ecx xorl %ebx,%ebx xorl %eax,%eax9: movb (%esi),%al movb 4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,8(%edi)7: movb 1(%esi),%al movb 5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,2(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,10(%edi)7: movb 2(%esi),%al movb 6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,12(%edi)7: movb 3(%esi),%al movb 7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,14(%edi)7: movb 8(%esi),%al movb 8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,24(%edi)7: movb 8+1(%esi),%al movb 8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,26(%edi)7: movb 8+2(%esi),%al movb 8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,28(%edi)7: movb 8+3(%esi),%al movb 8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30(%edi)7:// Copy... paste... (from the non flipping version) movb 16(%esi),%al movb 16+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+8(%edi)7: movb 16+1(%esi),%al movb 16+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+2(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+10(%edi)7: movb 16+2(%esi),%al movb 16+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+12(%edi)7: movb 16+3(%esi),%al movb 16+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+14(%edi)7: movb 16+8(%esi),%al movb 16+8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+24(%edi)7: movb 16+8+1(%esi),%al movb 16+8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+26(%edi)7: movb 16+8+2(%esi),%al movb 16+8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+28(%edi)7: movb 16+8+3(%esi),%al movb 16+8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,32+22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,32+30(%edi)7: addl $32,%esi // Next Tile Line subl $0xDEADBEEF,%edi // Next Screen Linebitw_06: cmp $0xDEADBEEF,%esiendc_06: jne 9b popl %ebx popl %esi popl %edi popl %ebp retFUNC(Draw32x32_Trans_Mapped_16_FlipXY) pushl %ebp pushl %edi pushl %esi pushl %ebx movl 20(%esp),%esi // source movl 28(%esp),%eax // y movl %esi,%edx sall $2,%eax addl $32*32,%edx // tile end movl 0xDEADBEEF(%eax),%ediblin_07: movl %edx,endc_07-4 movl 32(%esp),%ebp // cmap addl 24(%esp),%edi // x addl 24(%esp),%edi // x xorl %edx,%edx xorl %ecx,%ecx xorl %ebx,%ebx xorl %eax,%eax9:// copy all this from the FlipY version... movb (%esi),%al movb 4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-8(%edi)7: movb 1(%esi),%al movb 5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-2(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-10(%edi)7: movb 2(%esi),%al movb 6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-12(%edi)7: movb 3(%esi),%al movb 7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-14(%edi)7: movb 8(%esi),%al movb 8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-24(%edi)7: movb 8+1(%esi),%al movb 8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-26(%edi)7: movb 8+2(%esi),%al movb 8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-28(%edi)7: movb 8+3(%esi),%al movb 8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,62-22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,62-30(%edi)7:// Copy... movb 16(%esi),%al movb 16+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-8(%edi)7: movb 16+1(%esi),%al movb 16+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-2(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-10(%edi)7: movb 16+2(%esi),%al movb 16+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-4(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-12(%edi)7: movb 16+3(%esi),%al movb 16+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-6(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-14(%edi)7: movb 16+8(%esi),%al movb 16+8+4(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-16(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-24(%edi)7: movb 16+8+1(%esi),%al movb 16+8+5(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-18(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-26(%edi)7: movb 16+8+2(%esi),%al movb 16+8+6(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-20(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-28(%edi)7: movb 16+8+3(%esi),%al movb 16+8+7(%esi),%bl testb %al,%al jz 7f movw (%ebp,%eax,2),%cx movw %cx,30-22(%edi)7: testb %bl,%bl jz 7f movw (%ebp,%ebx,2),%dx movw %dx,30-30(%edi)7: addl $32,%esi // Next Tile Line subl $0xDEADBEEF,%edi // Next Screen Linebitw_07: cmp $0xDEADBEEF,%esiendc_07: jne 9b popl %ebx popl %esi popl %edi popl %ebp ret// The Draw32x32_16 functions are really uninteresting...// If someone else wants to add them, he is welcome to ! FUNC(init_spr32x32asm_16) movl GLOBL(GameBitmap),%eax movl (%eax),%eax // Width addl %eax,%eax movl %eax,bitw_00-4 movl %eax,bitw_01-4 movl %eax,bitw_02-4 movl %eax,bitw_03-4 movl %eax,bitw_04-4 movl %eax,bitw_05-4 movl %eax,bitw_06-4 movl %eax,bitw_07-4 movl GLOBL(GameBitmap),%eax addl $64,%eax // Line 0 movl %eax,blin_00-4 movl %eax,blin_01-4 movl %eax,blin_04-4 movl %eax,blin_05-4 addl $31*4,%eax // Line 31 movl %eax,blin_02-4 movl %eax,blin_03-4 movl %eax,blin_06-4 movl %eax,blin_07-4 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -