]> 4ch.mooo.com Git - 16.git/blob - 16/xw__/mxcr.asm
more
[16.git] / 16 / xw__ / mxcr.asm
1 .387
2                 PUBLIC  MX_CLIPX1
3                 PUBLIC  MX_CLIPY1
4                 PUBLIC  MX_CLIPX2
5                 PUBLIC  MX_CLIPY2
6                 PUBLIC  MXSETCLIP
7                 PUBLIC  MXGETCLIP
8                 PUBLIC  MXSETSYSCLIPREGION
9                 PUBLIC  MXSETCLIPREGION
10                 PUBLIC  MXGETCLIPREGION
11                 PUBLIC  SUBCLIPIMAGE
12                 PUBLIC  SUBCLIPBOX
13                 EXTRN   MX_CODESEGMENT:BYTE
14 MX_TEXT         SEGMENT PARA PUBLIC USE16 'CODE'
15                 ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
16 MX_CLIPX1:
17         add             byte ptr [bx+si],al
18 MX_CLIPY1:
19         add             byte ptr [bx+si],al
20 MX_CLIPX2:
21         add             byte ptr [bx+si],al
22 MX_CLIPY2:
23         add             byte ptr [bx+si],al
24 L$1:
25         add             byte ptr [bx+si],al
26 L$2:
27         add             byte ptr [bx+si],al
28 L$3:
29         add             byte ptr [bx+si],al
30 L$4:
31         add             byte ptr [bx+si],al
32 L$5:
33         add             byte ptr [bx+si],al
34 L$6:
35         add             byte ptr [bx+si],al
36 L$7:
37         add             byte ptr [bx+si],al
38 L$8:
39         add             byte ptr [bx+si],al
40 L$9:
41     DB  0
42 MXSETCLIP:
43         push            bp
44         mov             bp,sp
45         sub             sp,0
46         push            ds
47         mov             ds,word ptr cs:MX_CODESEGMENT
48         mov             ax,word ptr L$5
49         mov             bx,word ptr L$6
50         mov             cx,word ptr L$7
51         mov             dx,word ptr L$8
52         cmp             byte ptr 6[bp],1
53         je              L$10
54         mov             ax,word ptr L$1
55         mov             bx,word ptr L$2
56         mov             cx,word ptr L$3
57         mov             dx,word ptr L$4
58 L$10:
59         mov             word ptr MX_CLIPX1,ax
60         mov             word ptr MX_CLIPY1,bx
61         mov             word ptr MX_CLIPX2,cx
62         mov             word ptr MX_CLIPY2,dx
63         mov             al,byte ptr 6[bp]
64         xchg            byte ptr L$9,al
65         xor             ah,ah
66         pop             ds
67         mov             sp,bp
68         pop             bp
69         retf            2
70 MXGETCLIP:
71         mov             al,byte ptr cs:L$9
72         xor             ah,ah
73         retf
74 MXSETSYSCLIPREGION:
75         push            bp
76         mov             bp,sp
77         sub             sp,0
78         push            ds
79         mov             ds,word ptr cs:MX_CODESEGMENT
80         xor             ax,ax
81         mov             word ptr L$1,ax
82         mov             word ptr L$2,ax
83         mov             ax,word ptr 8[bp]
84         dec             ax
85         mov             word ptr L$3,ax
86         mov             ax,word ptr 6[bp]
87         dec             ax
88         mov             word ptr L$4,ax
89         mov             ax,0
90         push            ax
91         push            cs
92         call            near ptr MXSETCLIP
93         pop             ds
94         mov             sp,bp
95         pop             bp
96         retf            4
97 MXSETCLIPREGION:
98         push            bp
99         mov             bp,sp
100         sub             sp,0
101         push            ds
102         mov             ds,word ptr cs:MX_CODESEGMENT
103         mov             ax,word ptr 0cH[bp]
104         mov             word ptr L$5,ax
105         mov             ax,word ptr 0aH[bp]
106         mov             word ptr L$6,ax
107         mov             ax,word ptr 8[bp]
108         add             ax,word ptr 0cH[bp]
109         dec             ax
110         mov             word ptr L$7,ax
111         mov             ax,word ptr 6[bp]
112         add             ax,word ptr 0aH[bp]
113         dec             ax
114         mov             word ptr L$8,ax
115         mov             al,byte ptr L$9
116         cmp             al,1
117         jne             L$11
118         push            ax
119         push            cs
120         call            near ptr MXSETCLIP
121 L$11:
122         xor             ax,ax
123         pop             ds
124         mov             sp,bp
125         pop             bp
126         retf            8
127 MXGETCLIPREGION:
128         push            bp
129         mov             bp,sp
130         sub             sp,0
131         push            es
132         push            di
133         mov             ax,word ptr cs:L$5
134         les             di,dword ptr 12H[bp]
135         mov             word ptr es:[di],ax
136         mov             ax,word ptr cs:L$6
137         les             di,dword ptr 0eH[bp]
138         mov             word ptr es:[di],ax
139         mov             ax,word ptr cs:L$7
140         sub             ax,word ptr cs:L$5
141         inc             ax
142         les             di,dword ptr 0aH[bp]
143         mov             word ptr es:[di],ax
144         mov             ax,word ptr cs:L$8
145         sub             ax,word ptr cs:L$6
146         inc             ax
147         les             di,dword ptr 6[bp]
148         mov             word ptr es:[di],ax
149         mov             al,byte ptr cs:L$9
150         xor             ah,ah
151         pop             di
152         pop             es
153         mov             sp,bp
154         pop             bp
155         retf            10H
156 SUBCLIPIMAGE:
157         xor             si,si
158         mov             di,word ptr cs:MX_CLIPY1
159         cmp             ax,di
160         jge             L$12
161         sub             di,ax
162         sub             dx,di
163         jle             L$16
164         mov             ax,di
165         mov             di,dx
166         mul             cx
167         mov             si,ax
168         mov             dx,di
169         mov             ax,word ptr cs:MX_CLIPY1
170 L$12:
171         mov             di,word ptr cs:MX_CLIPY2
172         cmp             ax,di
173         jg              L$16
174         inc             di
175         sub             di,dx
176         sub             di,ax
177         jge             L$13
178         add             dx,di
179 L$13:
180         mov             di,word ptr cs:MX_CLIPX1
181         cmp             bx,di
182         jge             L$14
183         sub             di,bx
184         sub             cx,di
185         jle             L$16
186         add             si,di
187         mov             bx,word ptr cs:MX_CLIPX1
188 L$14:
189         mov             di,word ptr cs:MX_CLIPX2
190         cmp             bx,di
191         jg              L$16
192         inc             di
193         sub             di,bx
194         sub             di,cx
195         jge             L$15
196         add             cx,di
197 L$15:
198         clc
199         ret
200 L$16:
201         stc
202         ret
203 SUBCLIPBOX:
204         mov             di,word ptr cs:MX_CLIPY1
205         cmp             ax,di
206         jge             L$17
207         sub             di,ax
208         sub             dx,di
209         jle             L$21
210         mov             ax,word ptr cs:MX_CLIPY1
211 L$17:
212         mov             di,word ptr cs:MX_CLIPY2
213         cmp             ax,di
214         jg              L$21
215         inc             di
216         sub             di,dx
217         sub             di,ax
218         jge             L$18
219         add             dx,di
220 L$18:
221         mov             di,word ptr cs:MX_CLIPX1
222         cmp             bx,di
223         jge             L$19
224         sub             di,bx
225         sub             cx,di
226         jle             L$21
227         mov             bx,word ptr cs:MX_CLIPX1
228 L$19:
229         mov             di,word ptr cs:MX_CLIPX2
230         cmp             bx,di
231         jg              L$21
232         inc             di
233         sub             di,bx
234         sub             di,cx
235         jge             L$20
236         add             cx,di
237 L$20:
238         clc
239         ret
240 L$21:
241         stc
242         ret
243 MX_TEXT         ENDS
244                 END