; ================================================================================================ ; Routine zum setzen eines farbigen Pixels ; Pixel-Adresse wird in Y übergeben ; Pixel-Wert in temp0, bleibt erhalten ; alle anderen Register werden gesichert ; Farbwert aus Tabelle ; ================================================================================================ _set_pixel: push ZL push ZH push temp1 ldi ZL, low(HSB_TABLE_8x8*2) ; Zeiger auf Farbtabelle ldi ZH, high(HSB_TABLE_8x8*2) clr temp1 ; Offset addieren add ZL, temp0 adc ZH, temp1 add ZL, temp0 ; 3x adc ZH, temp1 add ZL, temp0 ; weil 3 Byte pro Farbe adc ZH, temp1 lpm temp1, Z+ ; Rot holen st Y+, temp1 ; und in den Puffer lpm temp1, Z+ ; Grün holen st Y+, temp1 ; und in den Puffer lpm temp1, Z+ ; Blau holen st Y+, temp1 ; und in den Puffer pop temp1 pop ZH pop ZL ret ; ================================================================================================