--- /dev/null
+;
+; Christian Groessler, June 2000
+;
+; this file provides a setcolor() function similar to BASIC SETCOLOR
+;
+; void __fastcall__ setcolor (unsigned char color_reg, unsigned char hue, unsigned char luminace);
+; void __fastcall__ setcolor_low (unsigned char color_reg, unsigned char color_value);
+; unsigned char __fastcall__ getcolor (unsigned char color_reg);
+;
+
+
+ .export _setcolor, _setcolor_low, _getcolor
+ .import popa
+ .include "atari.inc"
+
+.proc _getcolor
+
+ tax
+ lda COLOR0,x ; get current value
+ ldx #0
+ rts
+
+.endproc
+
+.proc _setcolor
+
+; asl a ; not -> BASIC compatible
+ sta lum ; remember luminance
+ jsr popa ; get hue
+ asl a
+ asl a
+ asl a
+ asl a
+ ora lum
+; jmp _setcolor_low
+
+.endproc
+
+.proc _setcolor_low
+
+ pha
+ jsr popa
+ tax
+ pla
+ sta COLOR0,x
+ rts
+
+.endproc
+
+ .bss
+lum: .res 1