--- /dev/null
+;-----------------------------------------------------------\r
+;\r
+; MXGC.ASM - Get color function\r
+; Copyright (c) 1994 by Alessandro Scotti\r
+;\r
+;-----------------------------------------------------------\r
+WARN PRO\r
+INCLUDE MODEX.DEF\r
+\r
+PUBLIC mxGetColor\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 selected DAC register.\r
+;\r
+; Input:\r
+; Index = color index (0-255)\r
+; R, G, B = byte pointers to red, green and blue\r
+; Output:\r
+; none\r
+;\r
+mxGetColor PROC FAR\r
+ ARG B:DWORD, \\r
+ G:DWORD, \\r
+ R:DWORD, \\r
+ Index:WORD = ARG_SIZE\r
+ .enter 0\r
+ .push ds, si\r
+\r
+ mov ax, [Index]\r
+ mov dx, 3C7h ; PEL read address register\r
+ out dx, al\r
+ inc dx\r
+ inc dx\r
+\r
+ lds si, [R]\r
+ in al, dx\r
+ mov ds:[si], al\r
+ lds si, [G]\r
+ in al, dx\r
+ mov ds:[si], al\r
+ lds si, [B]\r
+ in al, dx\r
+ mov ds:[si], al\r
+\r
+ .pop ds, si\r
+ .leave ARG_SIZE\r
+mxGetColor ENDP\r
+\r
+MX_TEXT ENDS\r
+END\r