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