|
|
| version 1.1.2.2, 2006/12/30 17:33:26 | version 1.1.2.3, 2007/01/08 06:28:58 |
|---|---|
| Line 126 makegrph: sub rsp, byte 40 | Line 126 makegrph: sub rsp, byte 40 |
| mov [GRP_LR], eax | mov [GRP_LR], eax |
| mov ebx, [dsync + dsync_t.grph_vbp] | mov ebx, [dsync + dsync_t.grph_vbp] |
| .drawlp: movzx esi, word [GDC_S_SCROLL+ 0+0] | .drawlp: mov esi, [GDC_S_SCROLL+ 0] |
| movzx ecx, word [GDC_S_SCROLL+ 0+2] | |
| call .grphputlines | call .grphputlines |
| movzx esi, word [GDC_S_SCROLL+ 4+0] | mov esi, [GDC_S_SCROLL+ 4] |
| movzx ecx, word [GDC_S_SCROLL+ 4+2] | |
| call .grphputlines | call .grphputlines |
| cmp byte [np2cfg + np2cfg_t.uPD72020], 0 | cmp byte [np2cfg + np2cfg_t.uPD72020], 0 |
| jne short .drawlp | jne short .drawlp |
| movzx esi, word [GDC_S_SCROLL+ 8+0] | mov esi, [GDC_S_SCROLL+ 8] |
| movzx ecx, word [GDC_S_SCROLL+ 8+2] | |
| call .grphputlines | call .grphputlines |
| movzx esi, word [GDC_S_SCROLL+12+0] | mov esi, [GDC_S_SCROLL+12] |
| movzx ecx, word [GDC_S_SCROLL+12+2] | |
| call .grphputlines | call .grphputlines |
| jmp short .drawlp | jmp short .drawlp |
| .grphputlines: movzx eax, byte [GDC_S_PITCH] | .grphputlines: movzx eax, byte [GDC_S_PITCH] |
| test ecx, 4000h | test esi, 40000000h |
| jne short .storewidth | jne short .storewidth |
| add eax, eax | add eax, eax |
| .storewidth: and eax, 0000feh ; uPD72020で確認… | .storewidth: mov ecx, esi |
| mov [LINE_WIDTH+8], eax | and eax, 0000feh ; uPD72020で確認… |
| shr ecx, 4+16 | |
| and esi, 3fffh | and esi, 3fffh |
| add esi, esi | mov [LINE_WIDTH+8], eax |
| shr ecx, 4 | |
| and ecx, 03ffh | and ecx, 03ffh |
| jne short .grphlineputst | jne short .grphlineputst |
| mov ecx, 0400h | mov ecx, 0400h |
| .grphlineputst: push rcx | .grphlineputst: add esi, esi |
| push rcx | |
| .grphlineput_lp: mov ecx, [GRP_LR+16] | .grphlineput_lp: mov ecx, [GRP_LR+16] |
| .grphline1_lp: mov ebp, 79*2 | .grphline1_lp: mov ebp, 79*2 |
| Line 173 makegrph: sub rsp, byte 40 | Line 169 makegrph: sub rsp, byte 40 |
| .linelp: test [vramupdate + rsi], dl | .linelp: test [vramupdate + rsi], dl |
| je short .nodirty | je short .nodirty |
| movzx eax, byte [r8 + rsi + VRAM0_B] | movzx eax, byte [r8 + rsi + VRAM0_B] |
| movq mm0, [grph_table + rax*8 + 0*0x800] | movzx r9d, byte [r8 + rsi + VRAM0_R] |
| movzx eax, byte [r8 + rsi + VRAM0_R] | mov r10, [grph_table + rax*8 + 0*0x800] |
| por mm0, [grph_table + rax*8 + 1*0x800] | |
| movzx eax, byte [r8 + rsi + VRAM0_G] | movzx eax, byte [r8 + rsi + VRAM0_G] |
| por mm0, [grph_table + rax*8 + 2*0x800] | or r10, [grph_table + r9*8 + 1*0x800] |
| movzx eax, byte [r8 + rsi + VRAM0_E] | movzx r9d, byte [r8 + rsi + VRAM0_E] |
| por mm0, [grph_table + rax*8 + 3*0x800] | or r10, [grph_table + rax*8 + 2*0x800] |
| or r10, [grph_table + r9*8 + 3*0x800] | |
| or ebp, byte 1 | or ebp, byte 1 |
| movq [rdi], mm0 | mov [rdi], r10 |
| .nodirty: inc esi | .nodirty: inc esi |
| and esi, 07fffh | and esi, 07fffh |
| add rdi, byte 8 | add rdi, byte 8 |
| Line 189 makegrph: sub rsp, byte 40 | Line 185 makegrph: sub rsp, byte 40 |
| jns short .linelp | jns short .linelp |
| pop rsi | pop rsi |
| test ebp, 1 | test bpl, 1 |
| je short .putlineskip | je short .putlineskip |
| .linedirtyon: or [renewal_line + rbx], dl | .linedirtyon: or [renewal_line + rbx], dl |
| Line 242 makegrph: sub rsp, byte 40 | Line 238 makegrph: sub rsp, byte 40 |
| mov rdi, [rsp+24] | mov rdi, [rsp+24] |
| mov rbp, [rsp+32] | mov rbp, [rsp+32] |
| add rsp, byte 40 | add rsp, byte 40 |
| emms | |
| ret | ret |
| ends | ends |