; ; advanced fade routines - (c) 1994 byteam - coded by blala ; for incompatibility - include version - datas in code segment! ; ; use: ; DS:SI - fade from ; ES:DI - fade to ; CX - colors*3 ; CALL FADE_INSTALL ; MOV CX,63 ; CIK: ; PUSH CX ; CALL VSYNC ; CALL FADE_STEP ; POP CX ; LOOP CIK ; fade_install: mov cs:fade_colors,cx push es di si mov ax,cs mov es,ax mov di,offset fade_buf1 mov cx,fade_colors cik1_fade: xor ax,ax lodsb sal ax,6 stosw loop cik1_fade pop si di es mov bp,offset fade_buf2 mov cx,cs:fade_colors cik2_fade: mov al,es:[di] sub al,ds:[si] cbw mov cs:[bp],ax inc si inc di add bp,2 loop cik2_fade retn fade_step: push ds mov dx,3c8h xor ax,ax out dx,al inc dx mov cx,cs:fade_colors push cs pop ds mov si,offset fade_buf1 mov di,offset fade_buf2 cik3_fade: lodsw add ax,ds:[di] add di,2 mov ds:[si-2],ax sar ax,6 out dx,al loop cik3_fade pop ds retn fade_colors dw ? fade_buf1 dw 768 dup (?) fade_buf2 dw 768 dup (?)