]> 4ch.mooo.com Git - 16.git/blobdiff - 16/xw__/mxcr.asm
refresh wwww
[16.git] / 16 / xw__ / mxcr.asm
diff --git a/16/xw__/mxcr.asm b/16/xw__/mxcr.asm
new file mode 100755 (executable)
index 0000000..254269f
--- /dev/null
@@ -0,0 +1,244 @@
+.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