]> 4ch.mooo.com Git - 16.git/blobdiff - 16/x_/mxgc.asm
refresh wwww
[16.git] / 16 / x_ / mxgc.asm
diff --git a/16/x_/mxgc.asm b/16/x_/mxgc.asm
new file mode 100755 (executable)
index 0000000..85edf7a
--- /dev/null
@@ -0,0 +1,54 @@
+;-----------------------------------------------------------\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