+++ /dev/null
-.387
- PUBLIC MX_CLIPX1
- PUBLIC MX_CLIPY1
- PUBLIC MX_CLIPX2
- PUBLIC MX_CLIPY2
- PUBLIC MXSETCLIP
- PUBLIC MXGETCLIP
- PUBLIC MXSETSYSCLIPREGION
- PUBLIC MXSETCLIPREGION
- PUBLIC MXGETCLIPREGION
- PUBLIC SUBCLIPIMAGE
- PUBLIC SUBCLIPBOX
- EXTRN MX_CODESEGMENT:BYTE
-MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
- ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
-MX_CLIPX1:
- add byte ptr [bx+si],al
-MX_CLIPY1:
- add byte ptr [bx+si],al
-MX_CLIPX2:
- add byte ptr [bx+si],al
-MX_CLIPY2:
- add byte ptr [bx+si],al
-L$1:
- add byte ptr [bx+si],al
-L$2:
- add byte ptr [bx+si],al
-L$3:
- add byte ptr [bx+si],al
-L$4:
- add byte ptr [bx+si],al
-L$5:
- add byte ptr [bx+si],al
-L$6:
- add byte ptr [bx+si],al
-L$7:
- add byte ptr [bx+si],al
-L$8:
- add byte ptr [bx+si],al
-L$9:
- DB 0
-MXSETCLIP:
- push bp
- mov bp,sp
- sub sp,0
- push ds
- mov ds,word ptr cs:MX_CODESEGMENT
- mov ax,word ptr L$5
- mov bx,word ptr L$6
- mov cx,word ptr L$7
- mov dx,word ptr L$8
- cmp byte ptr 6[bp],1
- je L$10
- mov ax,word ptr L$1
- mov bx,word ptr L$2
- mov cx,word ptr L$3
- mov dx,word ptr L$4
-L$10:
- mov word ptr MX_CLIPX1,ax
- mov word ptr MX_CLIPY1,bx
- mov word ptr MX_CLIPX2,cx
- mov word ptr MX_CLIPY2,dx
- mov al,byte ptr 6[bp]
- xchg byte ptr L$9,al
- xor ah,ah
- pop ds
- mov sp,bp
- pop bp
- retf 2
-MXGETCLIP:
- mov al,byte ptr cs:L$9
- xor ah,ah
- retf
-MXSETSYSCLIPREGION:
- push bp
- mov bp,sp
- sub sp,0
- push ds
- mov ds,word ptr cs:MX_CODESEGMENT
- xor ax,ax
- mov word ptr L$1,ax
- mov word ptr L$2,ax
- mov ax,word ptr 8[bp]
- dec ax
- mov word ptr L$3,ax
- mov ax,word ptr 6[bp]
- dec ax
- mov word ptr L$4,ax
- mov ax,0
- push ax
- push cs
- call near ptr MXSETCLIP
- pop ds
- mov sp,bp
- pop bp
- retf 4
-MXSETCLIPREGION:
- push bp
- mov bp,sp
- sub sp,0
- push ds
- mov ds,word ptr cs:MX_CODESEGMENT
- mov ax,word ptr 0cH[bp]
- mov word ptr L$5,ax
- mov ax,word ptr 0aH[bp]
- mov word ptr L$6,ax
- mov ax,word ptr 8[bp]
- add ax,word ptr 0cH[bp]
- dec ax
- mov word ptr L$7,ax
- mov ax,word ptr 6[bp]
- add ax,word ptr 0aH[bp]
- dec ax
- mov word ptr L$8,ax
- mov al,byte ptr L$9
- cmp al,1
- jne L$11
- push ax
- push cs
- call near ptr MXSETCLIP
-L$11:
- xor ax,ax
- pop ds
- mov sp,bp
- pop bp
- retf 8
-MXGETCLIPREGION:
- push bp
- mov bp,sp
- sub sp,0
- push es
- push di
- mov ax,word ptr cs:L$5
- les di,dword ptr 12H[bp]
- mov word ptr es:[di],ax
- mov ax,word ptr cs:L$6
- les di,dword ptr 0eH[bp]
- mov word ptr es:[di],ax
- mov ax,word ptr cs:L$7
- sub ax,word ptr cs:L$5
- inc ax
- les di,dword ptr 0aH[bp]
- mov word ptr es:[di],ax
- mov ax,word ptr cs:L$8
- sub ax,word ptr cs:L$6
- inc ax
- les di,dword ptr 6[bp]
- mov word ptr es:[di],ax
- mov al,byte ptr cs:L$9
- xor ah,ah
- pop di
- pop es
- mov sp,bp
- pop bp
- retf 10H
-SUBCLIPIMAGE:
- xor si,si
- mov di,word ptr cs:MX_CLIPY1
- cmp ax,di
- jge L$12
- sub di,ax
- sub dx,di
- jle L$16
- mov ax,di
- mov di,dx
- mul cx
- mov si,ax
- mov dx,di
- mov ax,word ptr cs:MX_CLIPY1
-L$12:
- mov di,word ptr cs:MX_CLIPY2
- cmp ax,di
- jg L$16
- inc di
- sub di,dx
- sub di,ax
- jge L$13
- add dx,di
-L$13:
- mov di,word ptr cs:MX_CLIPX1
- cmp bx,di
- jge L$14
- sub di,bx
- sub cx,di
- jle L$16
- add si,di
- mov bx,word ptr cs:MX_CLIPX1
-L$14:
- mov di,word ptr cs:MX_CLIPX2
- cmp bx,di
- jg L$16
- inc di
- sub di,bx
- sub di,cx
- jge L$15
- add cx,di
-L$15:
- clc
- ret
-L$16:
- stc
- ret
-SUBCLIPBOX:
- mov di,word ptr cs:MX_CLIPY1
- cmp ax,di
- jge L$17
- sub di,ax
- sub dx,di
- jle L$21
- mov ax,word ptr cs:MX_CLIPY1
-L$17:
- mov di,word ptr cs:MX_CLIPY2
- cmp ax,di
- jg L$21
- inc di
- sub di,dx
- sub di,ax
- jge L$18
- add dx,di
-L$18:
- mov di,word ptr cs:MX_CLIPX1
- cmp bx,di
- jge L$19
- sub di,bx
- sub cx,di
- jle L$21
- mov bx,word ptr cs:MX_CLIPX1
-L$19:
- mov di,word ptr cs:MX_CLIPX2
- cmp bx,di
- jg L$21
- inc di
- sub di,bx
- sub di,cx
- jge L$20
- add cx,di
-L$20:
- clc
- ret
-L$21:
- stc
- ret
-MX_TEXT ENDS
- END