]> 4ch.mooo.com Git - 16.git/blob - 16/xw__/mxfp.asm
16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / 16 / xw__ / mxfp.asm
1 .387
2                 PUBLIC  MXFADEPALETTE
3 MX_TEXT         SEGMENT PARA PUBLIC USE16 'CODE'
4                 ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
5         inc             bx
6         outsw
7         jo              L$5
8         jb              L$4
9         push            2074H
10         sub             byte ptr 29H[bp+di],ah
11         and             byte ptr [bx+di],dh
12         cmp             word ptr [bx+di],di
13         xor             ch,byte ptr [di]
14         xor             word ptr [bx+di],di
15         cmp             word ptr [si],si
16         and             byte ptr 52H[bx+di],al
17         push            sp
18         dec             cx
19         push            bx
20         and             byte ptr 2eH[bp+di],dh
21         jb              L$1
22         insb
23         and             byte ptr cs:6cH[bx+di],al
24         insb
25         and             byte ptr 69H[bp+si],dh
26         push            7374H
27         and             byte ptr 65H[bp+si],dh
28         jae             L$7
29         jb              L$9
30     DB  65H, 64H, 2eH
31 MXFADEPALETTE:
32         push            bp
33         mov             bp,sp
34         sub             sp,60aH
35         push            si
36         push            di
37         push            ds
38         push            es
39         mov             word ptr -608H[bp],1
40         mov             ax,word ptr 10H[bp]
41         and             ax,0ff00H
42 L$1:
43         je              L$2
44         mov             cl,8
45         shr             ax,cl
46         mov             word ptr -608H[bp],ax
47 L$2:
48         mov             ax,word ptr 10H[bp]
49         and             ax,0feH
50         mov             cl,1
51         shr             ax,cl
52         or              ax,ax
53         jne             L$3
54         mov             ax,30H
55 L$3:
56         mov             word ptr -60aH[bp],ax
57 L$4:
58         inc             ax
59         mov             byte ptr -606H[bp],al
60         mov             byte ptr -604H[bp],1
61     DB  0c6H, 86H, 0feH, 0f9H
62 L$5:
63         add             byte ptr 0e46H[bp+di],cl
64         cmp             ax,100H
65         jb              L$6
66         jmp             near ptr L$12
67 L$6:
68         add             ax,word ptr 0cH[bp]
69         cmp             ax,100H
70         jbe             L$8
71         mov             ax,100H
72         sub             ax,word ptr 0eH[bp]
73     DB  89H, 46H
74 L$7:
75         or              al,0bH
76         ????
77         jne             L$8
78         jmp             near ptr L$12
79 L$8:
80         mov             cx,word ptr 0cH[bp]
81         mov             ax,cx
82         shl             ax,1
83         add             cx,ax
84         mov             ax,ss
85 L$9:
86         mov             es,ax
87         lea             di,-300H[bp]
88         mov             ax,word ptr 0eH[bp]
89         mov             si,ax
90         shl             ax,1
91         add             ax,si
92         lds             si,dword ptr 12H[bp]
93         add             si,ax
94         cld
95         shr             cx,1
96         rep movsw
97         rcl             cx,1
98         rep movsb
99         test            word ptr 10H[bp],1
100         je              L$10
101         mov             ax,word ptr -60aH[bp]
102         mov             byte ptr -602H[bp],al
103         mov             byte ptr -604H[bp],0ffH
104         mov             ax,ss
105         mov             ds,ax
106         mov             es,ax
107         lea             di,-300H[bp]
108         mov             ax,word ptr 0eH[bp]
109         mov             cx,word ptr 0cH[bp]
110         call            near ptr L$19
111 L$10:
112         mov             bh,byte ptr 0aH[bp]
113         and             bh,3fH
114         mov             bl,byte ptr 8[bp]
115         and             bl,3fH
116         mov             dh,byte ptr 6[bp]
117         and             dh,3fH
118         mov             dl,byte ptr -602H[bp]
119         mov             ax,ss
120         mov             ds,ax
121         mov             es,ax
122 L$11:
123         mov             ax,word ptr 0cH[bp]
124         mov             cx,word ptr -60aH[bp]
125         lea             si,-300H[bp]
126         lea             di,-600H[bp]
127         call            near ptr L$13
128         push            bx
129         push            dx
130         lea             si,-600H[bp]
131         mov             ax,word ptr 0eH[bp]
132         mov             bx,word ptr 0cH[bp]
133         mov             cx,word ptr -608H[bp]
134         call            near ptr L$15
135         pop             dx
136         pop             bx
137         add             dl,byte ptr -604H[bp]
138         dec             byte ptr -606H[bp]
139         jne             L$11
140 L$12:
141         pop             es
142         pop             ds
143         pop             di
144         pop             si
145         mov             sp,bp
146         pop             bp
147         retf            10H
148 L$13:
149         cld
150         push            bp
151         mov             bp,ax
152 L$14:
153         lodsb
154         sub             al,bh
155         imul            dl
156         idiv            cl
157         add             al,bh
158         stosb
159         lodsb
160         sub             al,bl
161         imul            dl
162         idiv            cl
163         add             al,bl
164         stosb
165         lodsb
166         sub             al,dh
167         imul            dl
168         idiv            cl
169         add             al,dh
170         stosb
171         dec             bp
172         jne             L$14
173         pop             bp
174         ret
175 L$15:
176         mov             ah,al
177         mov             dx,3daH
178 L$16:
179         in              al,dx
180         test            al,8
181         jne             L$16
182 L$17:
183         in              al,dx
184         test            al,8
185         je              L$17
186         loop            L$16
187         mov             cx,bx
188         mov             dx,3c8H
189         mov             al,ah
190         out             dx,al
191         inc             dx
192         cld
193         cli
194 L$18:
195         lodsb
196         out             dx,al
197         lodsb
198         out             dx,al
199         lodsb
200         out             dx,al
201         loop            L$18
202         sti
203         ret
204 L$19:
205         mov             dx,3c7H
206         out             dx,al
207         inc             dx
208         inc             dx
209         cld
210 L$20:
211         in              al,dx
212         stosb
213         in              al,dx
214         stosb
215         in              al,dx
216         stosb
217         loop            L$20
218         ret
219 MX_TEXT         ENDS
220                 END