#include "tn13def.inc" ;================================================================================================== ; Hauptprogramm ;================================================================================================== start: rcall random_init ; Erzeuge Startwert nochmal: rcall random ; Erzeuge Zufallszahl rjmp nochmal ;================================================================================================== ; Prozeduren ;================================================================================================== ; Zufallszahlen-Generator ; r19 = Startwert ; r20 = aktuelle Zufallszahl random_init: ; Initialisiere den Zufallszahlen-Generator ri1: inc r19 ; Warte bis irgendeine Taste gedrückt in r16,pinb com r16 andi r16,0b00011110 breq ri1 ri2: inc r19 ; Warte bis alle Tasten losgelassen in r16,pinb com r16 andi r16,0b00011110 brne ri2 tst r19 ; Teste, ob r19 gleich Null brne ri3 ; Erhöhe um eins, wenn gleich Null inc r19 ri3: mov r20,r19 ; Kopiere den Startwert nach r20 ret random: ; Erzeuge nächste Zufallszahl lsr r20 brcc rd1 ori r20,0b10000000 ldi r16,0b00010110 eor r20,r16 rd1: ret