]> 4ch.mooo.com Git - 16.git/blob - 16/xw_/mxcl.asm
wwww
[16.git] / 16 / xw_ / mxcl.asm
1                 PUBLIC  MXCIRCLE
2                 EXTRN   MX_VIDEOSEGMENT:BYTE
3                 EXTRN   MX_CLIPX1:BYTE
4                 EXTRN   MX_CLIPX2:BYTE
5                 EXTRN   MX_CLIPY1:BYTE
6                 EXTRN   MX_CLIPY2:BYTE
7                 EXTRN   MX_BYTESPERLINE:BYTE
8 MX_TEXT         SEGMENT PARA PUBLIC USE16 'CODE'
9                 ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
10 MXCIRCLE:
11         push            bp
12         mov             bp,sp
13         sub             sp,2
14         push            ds
15         push            si
16         push            di
17         xor             si,si
18         mov             di,word ptr 8[bp]
19         mov             ax,3
20         sub             ax,di
21         sub             ax,di
22         mov             word ptr -2[bp],ax
23         mov             ds,word ptr cs:MX_VIDEOSEGMENT
24 L$1:
25         cmp             si,di
26         jg              L$3
27         mov             ax,si
28         mov             bx,di
29         call            near ptr L$4
30         mov             ax,si
31         neg             ax
32         mov             bx,di
33         call            near ptr L$4
34         mov             ax,si
35         mov             bx,di
36         neg             bx
37         call            near ptr L$4
38         mov             ax,si
39         neg             ax
40         mov             bx,di
41         neg             bx
42         call            near ptr L$4
43         mov             ax,di
44         mov             bx,si
45         call            near ptr L$4
46         mov             ax,di
47         neg             ax
48         mov             bx,si
49         call            near ptr L$4
50         mov             ax,di
51         mov             bx,si
52         neg             bx
53         call            near ptr L$4
54         mov             ax,di
55         neg             ax
56         mov             bx,si
57         neg             bx
58         call            near ptr L$4
59         mov             ax,word ptr -2[bp]
60         test            ax,ax
61         jl              L$2
62         mov             ax,di
63         shl             ax,1
64         shl             ax,1
65         sub             ax,4
66         sub             word ptr -2[bp],ax
67         dec             di
68 L$2:
69         mov             ax,si
70         shl             ax,1
71         shl             ax,1
72         add             ax,6
73         add             word ptr -2[bp],ax
74         inc             si
75         jmp             L$1
76 L$3:
77         xor             ax,ax
78         pop             di
79         pop             si
80         pop             ds
81         mov             sp,bp
82         pop             bp
83         retf            8
84 L$4:
85         add             bx,word ptr 0cH[bp]
86         add             ax,word ptr 0aH[bp]
87         cmp             bx,word ptr cs:MX_CLIPX1
88         jl              L$5
89         cmp             bx,word ptr cs:MX_CLIPX2
90         jg              L$5
91         cmp             ax,word ptr cs:MX_CLIPY1
92         jl              L$5
93         cmp             ax,word ptr cs:MX_CLIPY2
94         jg              L$5
95         mul             word ptr cs:MX_BYTESPERLINE
96         mov             cx,bx
97         shr             bx,1
98         shr             bx,1
99         add             bx,ax
100         and             cl,3
101         mov             ax,102H
102         shl             ah,cl
103         mov             dx,3c4H
104         out             dx,ax
105         mov             al,byte ptr 6[bp]
106         mov             byte ptr [bx],al
107 L$5:
108         ret
109 MX_TEXT         ENDS
110                 END