sry, waren fehler drin.
das hier jedenfalls hab ich getestet, das tut, wie es soll.
Code:
Gl_rstflag = 1 ' zum testen
Gl_bit = 3 ' zum testen
$asm
LDS r24, {Gl_bit}
L_10x00f6:
ldi r25, &H01
!AND r24,r24 ' gl_bit = 0 ?
BREQ L_10x0104 ' dann fertig
CLC ' clear carry
L_10x00fe:
ROL r25 ' rot left
DEC r24 ' bit-nr - 1
BRNE L_10x00FE ' fertig ?
L_10x0104:
LDS r23, {gl_read}
$end Asm
If Gl_rstflag = 1 Then
!OR r23, r25 ' bit setzen
Else
COM r25 ' invertieren
!AND r23, r25 ' bit löschen
End If
!STS {Gl_pix}, r23
Anm: sowas wie "ldi r25, 0x01" ignoriert Bascom ohne meldung
muss aber heissen (Bascom-Style)
"ldi r25, &H01"
Lesezeichen