.include "m8def.inc" ;; (C) David Vajda ;; 2025-08-06 ;; 4 Bit multiplexed Counting Atmega8 on oscilloscope ldi r16, HIGH (RAMEND) out SPH, r16 ldi r16, LOW (RAMEND) out SPL, r16 ldi r16, 0xff out DDRD, r16 ldi r18, 0xff ldi r19, 0xff ldi r16, 0xff ldi r17, 0x08 push r16 loop1: rcall multiplexing4_1 rcall conditionaldelaycount rjmp loop1 pop r17 multiplexing4_1: cpi r17, 0x00 brne nocountreset pop r16 push r16 ldi r17, 0x08 nocountreset: out PORTD, r16 dec r17 lsr r16 ret conditionaldelaycount: mov r26, r19 mov r24, r18 sbiw r26:r24, 0x0001 breq nextstep ret nextstep: dec r16 push r16 ret