]> 4ch.mooo.com Git - 16.git/blob - lib/x/MXGP.ASM
fixed up wf3d8086
[16.git] / lib / x / MXGP.ASM
1 ;-----------------------------------------------------------\r
2 ;\r
3 ; MXGP.ASM - Get palette function\r
4 ; Copyright (c) 1993,1994 by Alessandro Scotti\r
5 ;\r
6 ;-----------------------------------------------------------\r
7 ;WARN    PRO\r
8 INCLUDE MODEX.DEF\r
9 \r
10 PUBLIC  mxGetPalette\r
11 \r
12 MX_TEXT         SEGMENT USE16 PARA PUBLIC 'CODE'\r
13                 ASSUME cs:MX_TEXT, ds:NOTHING, es:NOTHING\r
14 \r
15 ;-----------------------------------------------------------\r
16 ;\r
17 ; Returns the current setting of the VGA palette.\r
18 ;\r
19 ; Input:\r
20 ;       Buffer          = pointer to palette data (R,G,B)\r
21 ;       Start           = index of first color to get\r
22 ;       Count           = number of color to get\r
23 ; Output:\r
24 ;       none\r
25 ;\r
26 mxGetPalette    PROC    FAR\r
27         ARG     Count:WORD,             \\r
28                 Start:WORD,             \\r
29                 Buffer:DWORD            = ARG_SIZE\r
30         ASSUME  ds:NOTHING\r
31         .enter  0\r
32         .push   es, di\r
33 \r
34         les     di, [Buffer]\r
35         mov     cx, [Count]\r
36         mov     ax, [Start]\r
37         mov     dx, 3C7h                ; PEL read address register\r
38         out     dx, al\r
39         inc     dx\r
40         inc     dx\r
41         cld\r
42 @@Loop:\r
43         in      al, dx\r
44         stosb\r
45         in      al, dx\r
46         stosb\r
47         in      al, dx\r
48         stosb\r
49         loop    @@Loop                  ; Loop until done\r
50 \r
51         .pop    es, di\r
52         .leave  ARG_SIZE\r
53 mxGetPalette    ENDP\r
54 \r
55 MX_TEXT         ENDS\r
56 END\r