--- /dev/null
+.387
+ PUBLIC MXSTRETCHIMAGE
+ EXTRN SUBCLIPBOX:BYTE
+ EXTRN MX_BYTESPERLINE:BYTE
+ EXTRN MX_VIDEOSEGMENT:BYTE
+MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
+ ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
+L$1:
+ DW offset L$8
+ DW offset L$10
+ DW offset L$12
+ DW offset L$14
+ DW offset L$16
+ DW offset L$19
+MXSTRETCHIMAGE:
+ push bp
+ mov bp,sp
+ sub sp,14H
+ push ds
+ push si
+ push es
+ push di
+ xor dx,dx
+ mov ax,word ptr 0eH[bp]
+ mov bx,word ptr 0aH[bp]
+ div bx
+ mov word ptr -0aH[bp],ax
+ xor ax,ax
+ div bx
+ mov word ptr -0cH[bp],ax
+ xor dx,dx
+ mov ax,word ptr 0cH[bp]
+ mov bx,word ptr 8[bp]
+ div bx
+ mov word ptr -0eH[bp],ax
+ xor ax,ax
+ div bx
+ mov word ptr -10H[bp],ax
+ mov bx,word ptr 12H[bp]
+ mov ax,word ptr 10H[bp]
+ mov cx,word ptr 0aH[bp]
+ mov dx,word ptr 8[bp]
+ call near ptr MX_TEXT:SUBCLIPBOX
+ jae L$2
+ jmp near ptr L$7
+L$2:
+ mov word ptr 0aH[bp],cx
+ mov word ptr 8[bp],dx
+ sub word ptr 12H[bp],bx
+ sub word ptr 10H[bp],ax
+ mul word ptr cs:MX_BYTESPERLINE
+ mov di,bx
+ shr di,1
+ shr di,1
+ add di,ax
+ mov word ptr -2[bp],di
+ mov es,word ptr cs:MX_VIDEOSEGMENT
+ and bl,3
+ mov byte ptr -6[bp],bl
+ mov cl,bl
+ mov al,11H
+ shl al,cl
+ mov byte ptr -14H[bp],al
+ mov ax,word ptr 10H[bp]
+ test ax,ax
+ je L$3
+ mov bx,ax
+ mul word ptr -10H[bp]
+ mov cx,dx
+ mov ax,bx
+ mul word ptr -0eH[bp]
+ add ax,cx
+ mul word ptr 0eH[bp]
+ add word ptr 14H[bp],ax
+L$3:
+ mov ax,word ptr 12H[bp]
+ test ax,ax
+ je L$4
+ mov bx,ax
+ mul word ptr -0cH[bp]
+ mov cx,dx
+ mov ax,bx
+ mul word ptr -0aH[bp]
+ add ax,cx
+ add word ptr 14H[bp],ax
+L$4:
+ mov ax,word ptr -0eH[bp]
+ mul word ptr 0eH[bp]
+ mov word ptr -0eH[bp],ax
+ mov bx,word ptr 6[bp]
+ mov byte ptr -8[bp],bh
+ xor bh,bh
+ cmp bl,5
+ jbe L$5
+ xor bl,bl
+L$5:
+ shl bx,1
+ mov ax,word ptr cs:L$1[bx]
+ mov word ptr -4[bp],ax
+ mov ds,word ptr 16H[bp]
+ xor ax,ax
+ mov word ptr -12H[bp],ax
+L$6:
+ mov si,word ptr 14H[bp]
+ mov ah,byte ptr -14H[bp]
+ and ah,0fH
+ mov al,2
+ mov dx,3c4H
+ out dx,ax
+ mov ah,byte ptr -6[bp]
+ and ah,3
+ mov al,4
+ mov dx,3ceH
+ out dx,ax
+ mov cx,word ptr 8[bp]
+ mov di,word ptr -2[bp]
+ mov ah,byte ptr -8[bp]
+ xor bx,bx
+ mov dx,word ptr cs:MX_BYTESPERLINE
+ call word ptr -4[bp]
+ inc byte ptr -6[bp]
+ rol byte ptr -14H[bp],1
+ adc word ptr -2[bp],0
+ mov dx,word ptr -0cH[bp]
+ mov ax,word ptr -0aH[bp]
+ add word ptr -12H[bp],dx
+ adc word ptr 14H[bp],ax
+ dec word ptr 0aH[bp]
+ jne L$6
+L$7:
+ xor ax,ax
+ pop di
+ pop es
+ pop si
+ pop ds
+ mov sp,bp
+ pop bp
+ retf 12H
+L$8:
+ mov al,byte ptr [si]
+ mov byte ptr es:[di],al
+ add di,dx
+ dec cx
+ je L$9
+ add si,word ptr -0eH[bp]
+ add bx,word ptr -10H[bp]
+ jae L$8
+ add si,word ptr 0eH[bp]
+ jmp L$8
+L$9:
+ ret
+L$10:
+ mov al,byte ptr [si]
+ and byte ptr es:[di],al
+ add di,dx
+ dec cx
+ je L$11
+ add si,word ptr -0eH[bp]
+ add bx,word ptr -10H[bp]
+ jae L$10
+ add si,word ptr 0eH[bp]
+ jmp L$10
+L$11:
+ ret
+L$12:
+ mov al,byte ptr [si]
+ or byte ptr es:[di],al
+ add di,dx
+ dec cx
+ je L$13
+ add si,word ptr -0eH[bp]
+ add bx,word ptr -10H[bp]
+ jae L$12
+ add si,word ptr 0eH[bp]
+ jmp L$12
+L$13:
+ ret
+L$14:
+ mov al,byte ptr [si]
+ xor byte ptr es:[di],al
+ add di,dx
+ dec cx
+ je L$15
+ add si,word ptr -0eH[bp]
+ add bx,word ptr -10H[bp]
+ jae L$14
+ add si,word ptr 0eH[bp]
+ jmp L$14
+L$15:
+ ret
+L$16:
+ mov al,byte ptr [si]
+ cmp al,ah
+ je L$17
+ mov byte ptr es:[di],al
+L$17:
+ add di,dx
+ dec cx
+ je L$18
+ add si,word ptr -0eH[bp]
+ add bx,word ptr -10H[bp]
+ jae L$16
+ add si,word ptr 0eH[bp]
+ jmp L$16
+L$18:
+ ret
+L$19:
+ mov al,byte ptr [si]
+ add byte ptr es:[di],al
+ add di,dx
+ dec cx
+ je L$20
+ add si,word ptr -0eH[bp]
+ add bx,word ptr -10H[bp]
+ jae L$19
+ add si,word ptr 0eH[bp]
+ jmp L$19
+L$20:
+ ret
+MX_TEXT ENDS
+ END