+++ /dev/null
-.387
- PUBLIC MXFILLBOX
- EXTRN SUBCLIPBOX:BYTE
- EXTRN SUBHORIZONTALLINEINFO:BYTE
- EXTRN MX_VIDEOSEGMENT:BYTE
- EXTRN MX_BYTESPERLINE:BYTE
-MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
- ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
-L$1:
- mov ah,al
- shr cx,1
- rep stosw
- rcl cx,1
- rep stosb
- ret
-L$2:
- mov byte ptr [bx],al
- add bx,dx
- loop L$2
- ret
-L$3:
- mov si,di
-L$4:
- mov ah,byte ptr [si]
- mov byte ptr [si],al
- inc si
- loop L$4
- ret
-L$5:
- mov ah,byte ptr [bx]
- mov byte ptr [bx],al
- add bx,dx
- loop L$5
- ret
-MXFILLBOX:
- push bp
- mov bp,sp
- sub sp,8
- push ds
- push si
- push es
- push di
- mov bx,word ptr 10H[bp]
- mov ax,word ptr 0eH[bp]
- mov cx,word ptr 0cH[bp]
- mov dx,word ptr 0aH[bp]
- call near ptr MX_TEXT:SUBCLIPBOX
- jae L$6
- jmp near ptr L$12
-L$6:
- mov word ptr 0aH[bp],dx
- call near ptr MX_TEXT:SUBHORIZONTALLINEINFO
- mov word ptr 0cH[bp],cx
- mov byte ptr -2[bp],al
- mov byte ptr -4[bp],ah
- mov ax,word ptr cs:MX_VIDEOSEGMENT
- mov es,ax
- mov ds,ax
- cld
- mov word ptr -6[bp],offset L$2
- mov word ptr -8[bp],offset L$1
- mov ax,word ptr 6[bp]
- cmp al,3
- ja L$7
- cmp al,0
- je L$7
- shl al,1
- shl al,1
- shl al,1
- mov ah,al
- mov al,3
- mov dx,3ceH
- out dx,ax
- mov word ptr -6[bp],offset L$5
- mov word ptr -8[bp],offset L$3
-L$7:
- mov ah,byte ptr -2[bp]
- or ah,ah
- je L$8
- mov dx,3c4H
- mov al,2
- out dx,ax
- mov dx,word ptr cs:MX_BYTESPERLINE
- mov cx,word ptr 0aH[bp]
- mov bx,di
- mov al,byte ptr 8[bp]
- call word ptr -6[bp]
- inc di
-L$8:
- mov cx,word ptr 0cH[bp]
- jcxz L$10
- mov dx,3c4H
- mov ax,0f02H
- out dx,ax
- mov al,byte ptr 8[bp]
- mov bx,di
- mov dx,word ptr 0aH[bp]
- push di
-L$9:
- mov di,bx
- call word ptr -8[bp]
- mov cx,word ptr 0cH[bp]
- add bx,word ptr cs:MX_BYTESPERLINE
- dec dx
- jne L$9
- pop di
- add di,word ptr 0cH[bp]
-L$10:
- mov ah,byte ptr -4[bp]
- or ah,ah
- je L$11
- mov dx,3c4H
- mov al,2
- out dx,ax
- mov dx,word ptr cs:MX_BYTESPERLINE
- mov cx,word ptr 0aH[bp]
- mov bx,di
- mov al,byte ptr 8[bp]
- call word ptr -6[bp]
-L$11:
- mov dx,3ceH
- mov ax,3
- out dx,ax
-L$12:
- xor ax,ax
- pop di
- pop es
- pop si
- pop ds
- mov sp,bp
- pop bp
- retf 0cH
-MX_TEXT ENDS
- END