+++ /dev/null
-;-----------------------------------------------------------\r
-;\r
-; MXGP.ASM - Get palette function\r
-; Copyright (c) 1993,1994 by Alessandro Scotti\r
-;\r
-;-----------------------------------------------------------\r
-WARN PRO\r
-INCLUDE MODEX.DEF\r
-\r
-PUBLIC mxGetPalette\r
-\r
-MX_TEXT SEGMENT USE16 PARA PUBLIC 'CODE'\r
- ASSUME cs:MX_TEXT, ds:NOTHING, es:NOTHING\r
-\r
-;-----------------------------------------------------------\r
-;\r
-; Returns the current setting of the VGA palette.\r
-;\r
-; Input:\r
-; Buffer = pointer to palette data (R,G,B)\r
-; Start = index of first color to get\r
-; Count = number of color to get\r
-; Output:\r
-; none\r
-;\r
-mxGetPalette PROC FAR\r
- ARG Count:WORD, \\r
- Start:WORD, \\r
- Buffer:DWORD = ARG_SIZE\r
- ASSUME ds:NOTHING\r
- .enter 0\r
- .push es, di\r
-\r
- les di, [Buffer]\r
- mov cx, [Count]\r
- mov ax, [Start]\r
- mov dx, 3C7h ; PEL read address register\r
- out dx, al\r
- inc dx\r
- inc dx\r
- cld\r
-@@Loop:\r
- in al, dx\r
- stosb\r
- in al, dx\r
- stosb\r
- in al, dx\r
- stosb\r
- loop @@Loop ; Loop until done\r
-\r
- .pop es, di\r
- .leave ARG_SIZE\r
-mxGetPalette ENDP\r
-\r
-MX_TEXT ENDS\r
-END\r