TurnOnFake PROC mov ax,13h int 10h ;{------ turn on 4-plane-mode ------ mov dx,3c4h mov al,4 out dx,al inc dx in al,dx and al,0F7h or al,4 out dx,al ;{--} mov dl,0D4h mov al,9 out dx,al mov al,14h out dx,al inc dx in al,dx and al,0Bfh out dx,al dec dx mov al,17h out dx,al inc dx in al,dx or al,40h out dx,al ;{------ turn on 320x400-----------} dec dx mov al,9 out dx,al inc dx in al,dx and al,0Feh out dx,al mov dl,0C4h mov ax,0F02h out dx,ax xor ax,ax xor di,di push es push 0a000h pop es mov cx,64000/2 rep stosw pop es mov di,offset Pal push ds pop es mov cx,14*256 @MkFakePal1: mov al,63 mul cl div ch mov dl,al mov bx,15*256 @MkFakePal2: mov al,dl stosb xor al,al stosb mov al,63 mul bl div bh stosb inc bl cmp bl,16 jnz @MkFakePal2 inc cl cmp cl,15 jnz @MkFakePal1 mov bx,15*256 @MkFakePal3: xor al,al stosb mov al,63 mul bl div bh stosb xor al,al stosb inc bl cmp bl,16 jnz @MkFakePal3 mov si,offset Pal mov cx,768 mov dx,3c8h out dx,al inc dx rep outsb ret TurnOnFake ENDP CopyScr PROC push es mov esi,ds:[VramPtr] shr esi,1 push 0a000h pop es xor cl,cl FakeW: xor di,di mov dx,3c4h mov ax,102h shl ah,cl out dx,ax pushad FakeY: mov bp,80 FakeX: mov ax,[esi+esi] add si,4 mov dx,ax and dx,011111100000b mov bx,ax and ax,1111000000000000b shr dx,7 and bx,11110b shr bx,1 shr ax,8 cmp ax,11110000b jnz NoI mov ax,11100000b NoI: or al,bl mov es:[di],al add dl,240 mov es:[di+80],dl inc di dec bp jnz FakeX add di,80 cmp di,32000 jnz FakeY popad inc si inc cl cmp cl,4 jnz FakeW pop es ret CopyScr ENDP