m8oscilloscopemultiplexed4bit20250806.asm

.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