HC680 Assembler ;Malprogramm klick 00: ST ; Startadr. Adr Mnm _Op_ _Op_ ; - Kommentar - 00: LDC .D0. ;Maske für Klick-Bit im Pixelbyte 01: ## 0000 1000 ; 02: SSR .D0. ;Maske für Klick-Bit nach SD0 für Test 03: LDC .D1. ;Maske Pixel-Bit im Pixelbyte 04: ## 1000 0000 ; 05: LDC .A1. ;Adresse Pixelbyte = Maske klick-Bit 0 setzen 06: ## 1111 0111 ; 07: MOV [A1] .A0. ;Pixelbyte initialisieren (Null setzen) 08: LDC .A0. ;Sprungadresse für Klick 09: ## 0001 0010 ; 0A: SSR .A0. ;Sprungadresse für Klick merken 0B: GSR .A0. ;<-- Sprungziel Haupt- und Klickschleife; Sprungadr. für Klick holen 0C: MOV .D0. [A1] ;Pixelbyte nach D0 0D: BTS .D0. ;Test gegen SD0 ob Klick Bit gesetzt ist 0E: JIZ .A0. ;Sprung aus Schleife wenn Klick-Bit 1 0F: LDC .A0. ;Adresse Rücksprung Klickschleife 10: ## 0000 1011 ; 11: JMP .A0. ;Rücksprung Klickschleife 12: LDC .A0. ;<-- Sprungziel bei Klick-Bit, lade Sprungziel Pixel setzen 13: ## 0001 1100 ; 14: NOT .D0. ;Negativ Flag zur Unterscheidung: Pixel ist 1=schwarz/0=weiss 15: JIN .A0. ;Sprung zu Pixel setzen 16: NOT .D0. ;--- Pixel löschen: NOT rückgängig machen 17: SHL .D0. ;Bit schwarz rausschieben 18: SHR .D0. ;Bit 0=weiss wieder reinschieben 19: LDC .A0. ;Adresse Sprungziel: Überspringen von Pixel setzen 1A: ## 0001 1110 ; 1B: JMP .A0. ;Überspringen von Pixel setzen 1C: NOT .D0. ;<-- Sprungziel Pixel setzen, NOT rückgängig machen 1D: OR .D0. .D1. ;Pixel-Bit mit Maske setzen 1E: AND .D0. .A1. ;<-- Sprungziel: (Überspringen Pixel setzen), Klick Bit zurücksetzen 1F: MOV [A1] .D0. ;Pixelbyte aus D0 neu setzen 20: LDC .A0. ;Rücksprungadresse Haupt-Schleife 21: ## 0000 1011 ; 22: JMP .A0. ;Rücksprung Haupt-Schleife