.NOLIST
.INCLUDE "m8def.inc"
.LIST
ldi R16, HIGH(RAMEND) ;do R16 vlozime vyssi byte posledni adresy RAM
out SPH, R16 ;nastavime SPH na tuto adresu
ldi R16, LOW(RAMEND) ;do R16 vlozime nizsi byte posledni adresy RAM
out SPL, R16 ;nastavime SPL na tuto adresu
ldi R16, 0b00000001 ;do R16 vlozime 1
out DDRB, R16 ;pin PB0 nastavime jako vystupni
zacatek: rcall zpozdi ;zavolame rutinu zpozi
in R16, PORTB ;precteme stav portu B
ldi R17, 0b00000001 ;do R17 vlozime 1
eor R16, R17 ;znegujeme bit 0 XORem
out PORTB, R16 ;vysledek posleme z5 na port B
rjmp zacatek ;skocime na navesti "zacatek"
;rutina ZPOZDI 500ms, tedy 2000000 cyklu při 4MHz
zpozdi: ldi R16, $12 ;do R16 cislo $12
on1: ldi R17, $BC ;do R17 cislo $BC
on2: ldi R18, $C4 ;do R18 cislo $C4
on3: dec R18 ;sniz R18 o 1
brne on3 ;pokud Z = 1 (zero flag), tedy pokud po prevedeni dec byl vysledek 0, skoc na "on3"
dec R17 ;sniz R17 o 1
brne on2 ;pokud Z = 1, skoc na "on2"
dec R16 ;sniz R16 o 1
brne on1 ;pokud Z = 1, skoc na "on1"
nop ;nedelej jeden cyklus nic
nop ;nedelej dalsi cyklus nic (od zacaku sem je to presne 2000000 cyklu)
ret
Soubor:Extreme Burner 02.jpg
:020000020000FC
:1000000004E00EBF0FE50DBF01E007BB05D008B34C
:1000100011E0012708BBFACF02E11CEB24EC2A9582
:10002000F1F71A95D9F70A95C1F700000000089575
:00000001FF
Soubor:Extreme Burner 10.jpg