|
|
| version 1.4, 2004/02/02 01:40:59 | version 1.5, 2004/02/18 02:03:36 |
|---|---|
| Line 609 eosb_callsub: jmp dword [egcsft_proc + | Line 609 eosb_callsub: jmp dword [egcsft_proc + |
| egc_mod: mov ax, [_egc + egc_t.mask] | egc_mod: mov ax, [_egc + egc_t.mask] |
| mov [_egc + egc_t.mask2], ax | mov [_egc + egc_t.mask2], ax |
| mov al, [_egc + egc_t.ope + 1] | mov al, [_egc + egc_t.ope + 1] |
| mov ah, al | |
| and al, 18h | and al, 18h |
| jpe short eow_setdat | jpe short eow_setdat |
| cmp al, 10h | cmp al, 10h |
| je short eow_setpat | je short eow_setpat |
| eow_setsrc: mov al, [_egc + egc_t.ope + 1] | eow_setsrc: test ah, 4 |
| test al, 4 | |
| je short eow_srcnf | je short eow_srcnf |
| call egcope_shift | call egcope_shift |
| eow_srcnf: mov ax, [_egc + egc_t.srcmask] | eow_srcnf: mov ax, [_egc + egc_t.srcmask] |
| Line 635 eow_setpat: mov al, [_egc + egc_t.fgbg | Line 635 eow_setpat: mov al, [_egc + egc_t.fgbg |
| mov edx, _egc + egc_t.fgc | mov edx, _egc + egc_t.fgc |
| jmp short eow_store | jmp short eow_store |
| eow_setpatsft: call egcope_shift | eow_setpatsft: test ah, 4 |
| mov ax, [_egc + egc_t.srcmask] | je short eow_patnf |
| call egcope_shift | |
| eow_patnf: mov ax, [_egc + egc_t.srcmask] | |
| and [_egc + egc_t.mask2], ax | and [_egc + egc_t.mask2], ax |
| mov edx, _egc_src | mov edx, _egc_src |
| eow_store: mov esi, [edx + 0] | eow_store: mov esi, [edx + 0] |
| Line 676 eo_opesrc: mov al, [_egc + egc_t.ope + | Line 678 eo_opesrc: mov al, [_egc + egc_t.ope + |
| je short eo_loadvram | je short eo_loadvram |
| mov edx, _egc + egc_t.patreg | mov edx, _egc + egc_t.patreg |
| eo_loadvram: mov eax, [edx + 0] | eo_loadvram: mov ax, [VIDEOMEMORY + ebp + VRAM_R] |
| mov [_egc_pat + 0], eax | |
| mov eax, [edx + 4] | |
| mov [_egc_pat + 4], eax | |
| and ebp, 0fffffffeh | |
| mov ax, [VIDEOMEMORY + ebp + VRAM_R] | |
| shl eax, 16 | shl eax, 16 |
| mov ax, [VIDEOMEMORY + ebp + VRAM_B] | mov ax, [VIDEOMEMORY + ebp + VRAM_B] |
| mov [_egc_dst + 0], eax | mov [_egc_dst + 0], eax |
| Line 900 egcw_setpat: mov al, [_egc + egc_t.ope | Line 896 egcw_setpat: mov al, [_egc + egc_t.ope |
| mov [_egc + egc_t.patreg + ebx + 6], al | mov [_egc + egc_t.patreg + ebx + 6], al |
| egcw_calc: mov esi, [_egc + egc_t.func] | egcw_calc: mov esi, [_egc + egc_t.func] |
| add esi, byte 6 | add esi, byte 6 |
| sub ebp, ebx | |
| call egc_mod | call egc_mod |
| mov ah, [_egc + egc_t.mask2 + ebx] | mov ah, [_egc + egc_t.mask2 + ebx] |
| test ah, ah | test ah, ah |
| Line 907 egcw_calc: mov esi, [_egc + egc_t.func | Line 904 egcw_calc: mov esi, [_egc + egc_t.func |
| mov dh, ah | mov dh, ah |
| not dh | not dh |
| add ecx, ebx | add ecx, ebx |
| add ebp, ebx | |
| mov dl, [_egc + egc_t.access] | mov dl, [_egc + egc_t.access] |
| egcw_wb: shr dl, 1 | egcw_wb: shr dl, 1 |
| jc short egcw_wr | jc short egcw_wr |
| and [VIDEOMEMORY + ebx + VRAM_B], dh | and [VIDEOMEMORY + ebp + VRAM_B], dh |
| mov al, [ecx] | mov al, [ecx] |
| and al, ah | and al, ah |
| or [VIDEOMEMORY + ebx + VRAM_B], al | or [VIDEOMEMORY + ebp + VRAM_B], al |
| egcw_wr: shr dl, 1 | egcw_wr: shr dl, 1 |
| jc short egcw_wg | jc short egcw_wg |
| and [VIDEOMEMORY + ebx + VRAM_R], dh | and [VIDEOMEMORY + ebp + VRAM_R], dh |
| mov al, [ecx + 2] | mov al, [ecx + 2] |
| and al, ah | and al, ah |
| or [VIDEOMEMORY + ebx + VRAM_R], al | or [VIDEOMEMORY + ebp + VRAM_R], al |
| egcw_wg: shr dl, 1 | egcw_wg: shr dl, 1 |
| jc short egcw_we | jc short egcw_we |
| and [VIDEOMEMORY + ebx + VRAM_G], dh | and [VIDEOMEMORY + ebp + VRAM_G], dh |
| mov al, [ecx + 4] | mov al, [ecx + 4] |
| and al, ah | and al, ah |
| or [VIDEOMEMORY + ebx + VRAM_G], al | or [VIDEOMEMORY + ebp + VRAM_G], al |
| egcw_we: shr dl, 1 | egcw_we: shr dl, 1 |
| jc short egcw_ed | jc short egcw_ed |
| and [VIDEOMEMORY + ebx + VRAM_E], dh | and [VIDEOMEMORY + ebp + VRAM_E], dh |
| mov al, [ecx + 6] | mov al, [ecx + 6] |
| and al, ah | and al, ah |
| or [VIDEOMEMORY + ebx + VRAM_E], al | or [VIDEOMEMORY + ebp + VRAM_E], al |
| egcw_ed: popad | egcw_ed: popad |
| ret | ret |