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