--- /dev/null
+.387
+ PUBLIC MXGAMMACORRECT
+MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
+ ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
+L$1:
+ add byte ptr [bp+si],cl
+ push cs
+ adc word ptr [bp+di],dx
+ adc ax,1817H
+ sbb bl,byte ptr [bp+di]
+ sbb al,1dH
+ pop ds
+ and byte ptr [bx+di],ah
+ and ah,byte ptr [bp+di]
+ and al,25H
+ and ax,2726H
+ sub byte ptr [bx+di],ch
+ sub word ptr [bp+si],bp
+ sub bp,word ptr [si]
+ sub al,2dH
+ das
+ xor byte ptr [bx+si],dh
+ xor word ptr [bx+di],si
+ xor dh,byte ptr [bp+di]
+ xor si,word ptr [si]
+ xor al,35H
+ xor ax,3636H
+ aaa
+ aaa
+ cmp byte ptr [bx+si],bh
+ cmp word ptr [bx+di],di
+ cmp bh,byte ptr [bp+si]
+ cmp di,word ptr [bp+di]
+ cmp al,3cH
+ cmp ax,3e3dH
+ aas
+ aas
+MXGAMMACORRECT:
+ push bp
+ mov bp,sp
+ sub sp,0
+ push ds
+ push si
+ push es
+ push di
+ mov cx,word ptr 6[bp]
+ jcxz L$3
+ lds si,dword ptr 0cH[bp]
+ les di,dword ptr 8[bp]
+ mov bx,offset L$1
+ cld
+ mov ax,cx
+ add cx,cx
+ add cx,ax
+L$2:
+ lodsb
+ xlat word ptr cs:[bx]
+ stosb
+ loop L$2
+L$3:
+ pop di
+ pop es
+ pop si
+ pop ds
+ mov sp,bp
+ pop bp
+ retf 0aH
+MX_TEXT ENDS
+ END