]> git.sur5r.net Git - cc65/commitdiff
setcolor, getcolor and setcolor_low functions
authorcpg <cpg@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 22 Jun 2000 00:42:26 +0000 (00:42 +0000)
committercpg <cpg@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 22 Jun 2000 00:42:26 +0000 (00:42 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@93 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/atari/setcolor.s [new file with mode: 0644]

diff --git a/libsrc/atari/setcolor.s b/libsrc/atari/setcolor.s
new file mode 100644 (file)
index 0000000..4d8e1a4
--- /dev/null
@@ -0,0 +1,51 @@
+;
+; 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