--- /dev/null
+.387
+ PUBLIC MXFADEPALETTE
+MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
+ ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
+ inc bx
+ outsw
+ jo L$5
+ jb L$4
+ push 2074H
+ sub byte ptr 29H[bp+di],ah
+ and byte ptr [bx+di],dh
+ cmp word ptr [bx+di],di
+ xor ch,byte ptr [di]
+ xor word ptr [bx+di],di
+ cmp word ptr [si],si
+ and byte ptr 52H[bx+di],al
+ push sp
+ dec cx
+ push bx
+ and byte ptr 2eH[bp+di],dh
+ jb L$1
+ insb
+ and byte ptr cs:6cH[bx+di],al
+ insb
+ and byte ptr 69H[bp+si],dh
+ push 7374H
+ and byte ptr 65H[bp+si],dh
+ jae L$7
+ jb L$9
+ DB 65H, 64H, 2eH
+MXFADEPALETTE:
+ push bp
+ mov bp,sp
+ sub sp,60aH
+ push si
+ push di
+ push ds
+ push es
+ mov word ptr -608H[bp],1
+ mov ax,word ptr 10H[bp]
+ and ax,0ff00H
+L$1:
+ je L$2
+ mov cl,8
+ shr ax,cl
+ mov word ptr -608H[bp],ax
+L$2:
+ mov ax,word ptr 10H[bp]
+ and ax,0feH
+ mov cl,1
+ shr ax,cl
+ or ax,ax
+ jne L$3
+ mov ax,30H
+L$3:
+ mov word ptr -60aH[bp],ax
+L$4:
+ inc ax
+ mov byte ptr -606H[bp],al
+ mov byte ptr -604H[bp],1
+ DB 0c6H, 86H, 0feH, 0f9H
+L$5:
+ add byte ptr 0e46H[bp+di],cl
+ cmp ax,100H
+ jb L$6
+ jmp near ptr L$12
+L$6:
+ add ax,word ptr 0cH[bp]
+ cmp ax,100H
+ jbe L$8
+ mov ax,100H
+ sub ax,word ptr 0eH[bp]
+ DB 89H, 46H
+L$7:
+ or al,0bH
+ ????
+ jne L$8
+ jmp near ptr L$12
+L$8:
+ mov cx,word ptr 0cH[bp]
+ mov ax,cx
+ shl ax,1
+ add cx,ax
+ mov ax,ss
+L$9:
+ mov es,ax
+ lea di,-300H[bp]
+ mov ax,word ptr 0eH[bp]
+ mov si,ax
+ shl ax,1
+ add ax,si
+ lds si,dword ptr 12H[bp]
+ add si,ax
+ cld
+ shr cx,1
+ rep movsw
+ rcl cx,1
+ rep movsb
+ test word ptr 10H[bp],1
+ je L$10
+ mov ax,word ptr -60aH[bp]
+ mov byte ptr -602H[bp],al
+ mov byte ptr -604H[bp],0ffH
+ mov ax,ss
+ mov ds,ax
+ mov es,ax
+ lea di,-300H[bp]
+ mov ax,word ptr 0eH[bp]
+ mov cx,word ptr 0cH[bp]
+ call near ptr L$19
+L$10:
+ mov bh,byte ptr 0aH[bp]
+ and bh,3fH
+ mov bl,byte ptr 8[bp]
+ and bl,3fH
+ mov dh,byte ptr 6[bp]
+ and dh,3fH
+ mov dl,byte ptr -602H[bp]
+ mov ax,ss
+ mov ds,ax
+ mov es,ax
+L$11:
+ mov ax,word ptr 0cH[bp]
+ mov cx,word ptr -60aH[bp]
+ lea si,-300H[bp]
+ lea di,-600H[bp]
+ call near ptr L$13
+ push bx
+ push dx
+ lea si,-600H[bp]
+ mov ax,word ptr 0eH[bp]
+ mov bx,word ptr 0cH[bp]
+ mov cx,word ptr -608H[bp]
+ call near ptr L$15
+ pop dx
+ pop bx
+ add dl,byte ptr -604H[bp]
+ dec byte ptr -606H[bp]
+ jne L$11
+L$12:
+ pop es
+ pop ds
+ pop di
+ pop si
+ mov sp,bp
+ pop bp
+ retf 10H
+L$13:
+ cld
+ push bp
+ mov bp,ax
+L$14:
+ lodsb
+ sub al,bh
+ imul dl
+ idiv cl
+ add al,bh
+ stosb
+ lodsb
+ sub al,bl
+ imul dl
+ idiv cl
+ add al,bl
+ stosb
+ lodsb
+ sub al,dh
+ imul dl
+ idiv cl
+ add al,dh
+ stosb
+ dec bp
+ jne L$14
+ pop bp
+ ret
+L$15:
+ mov ah,al
+ mov dx,3daH
+L$16:
+ in al,dx
+ test al,8
+ jne L$16
+L$17:
+ in al,dx
+ test al,8
+ je L$17
+ loop L$16
+ mov cx,bx
+ mov dx,3c8H
+ mov al,ah
+ out dx,al
+ inc dx
+ cld
+ cli
+L$18:
+ lodsb
+ out dx,al
+ lodsb
+ out dx,al
+ lodsb
+ out dx,al
+ loop L$18
+ sti
+ ret
+L$19:
+ mov dx,3c7H
+ out dx,al
+ inc dx
+ inc dx
+ cld
+L$20:
+ in al,dx
+ stosb
+ in al,dx
+ stosb
+ in al,dx
+ stosb
+ loop L$20
+ ret
+MX_TEXT ENDS
+ END