diff --git a/20220531/Makefile b/20220531/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..7ae33df99f68fcf460324cfbb008f3f7a3863638
--- /dev/null
+++ b/20220531/Makefile
@@ -0,0 +1,8 @@
+%.elf: %.c
+	avr-gcc -Wall -Os -mmcu=atmega328p $< -o $@
+
+%.hex: %.elf
+	avr-objcopy -O ihex $< $@
+
+download:
+	./download.sh
diff --git a/20220531/blink-01.c b/20220531/blink-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..16f34fc9dcbc5aa686b879e0c5cf1d8c10a446ee
--- /dev/null
+++ b/20220531/blink-01.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  PORTB = 0x20;  // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8)
+  while (1)
+    {
+      _delay_ms (500);
+      PORTB = 0x00;
+      _delay_ms (500);
+      PORTB = 0x20;
+    }
+  return 0;
+}
diff --git a/20220531/blink-01.hex b/20220531/blink-01.hex
new file mode 100644
index 0000000000000000000000000000000000000000..c942943a9649ed82ebf4659903f1ef84e8a647f2
--- /dev/null
+++ b/20220531/blink-01.hex
@@ -0,0 +1,13 @@
+:100000000C9434000C943E000C943E000C943E0082
+:100010000C943E000C943E000C943E000C943E0068
+:100020000C943E000C943E000C943E000C943E0058
+:100030000C943E000C943E000C943E000C943E0048
+:100040000C943E000C943E000C943E000C943E0038
+:100050000C943E000C943E000C943E000C943E0028
+:100060000C943E000C943E0011241FBECFEFD8E04C
+:10007000DEBFCDBF0E9440000C9458000C940000DD
+:1000800081E080932A008BB92FEF34E39CE021506C
+:1000900030409040E1F700C000001BB82FEF34E380
+:1000A0009CE0215030409040E1F700C00000EBCFD1
+:0400B000F894FFCFF2
+:00000001FF
diff --git a/20220531/blink-02.c b/20220531/blink-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..89d606a31d6be1f192c065e0482c6a087359175c
--- /dev/null
+++ b/20220531/blink-02.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  PORTB = 0x20;  // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8)
+  while (1)
+    {
+      _delay_ms (500);
+      PORTB = 0x10;       // LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x20;       // LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
+    }
+  return 0;
+}
diff --git a/20220531/blink-03.c b/20220531/blink-03.c
new file mode 100644
index 0000000000000000000000000000000000000000..a7d45c2286f348cf5e7210f3a1f6febf51a0dd7c
--- /dev/null
+++ b/20220531/blink-03.c
@@ -0,0 +1,19 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  while (1)
+    {
+      PORTB = 0x10;       // LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x20;       // LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x08;       // LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
+      _delay_ms (500);      
+    }
+  return 0;
+}
diff --git a/20220531/blink-04.c b/20220531/blink-04.c
new file mode 100644
index 0000000000000000000000000000000000000000..c9d517480e8e98f02d6b14ea3792a6c39e5c0df1
--- /dev/null
+++ b/20220531/blink-04.c
@@ -0,0 +1,21 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  while (1)
+    {
+      PORTB = 0x10;       // LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x20;       // LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x08;       // LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
+      _delay_ms (500);      
+       PORTB = 0x34;      // LEDs an Ausgang 11, 12 und 13 an (Bit Nr. 3, 4 und 5), alle anderen aus
+      _delay_ms (500);
+    }
+  return 0;
+}
diff --git a/20220531/blink-05.c b/20220531/blink-05.c
new file mode 100644
index 0000000000000000000000000000000000000000..5395aa5f7865651b74bb6c9594185d8239a32530
--- /dev/null
+++ b/20220531/blink-05.c
@@ -0,0 +1,21 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  while (1)
+    {
+      PORTB = 0x10;       // rote LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x20;       // interne gelbe LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x08;       // grüne LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
+      _delay_ms (500);      
+       PORTB = 0x38;      // LEDs an Ausgang 11, 12 und 13 an (Bit Nr. 3, 4 und 5), alle anderen aus
+      _delay_ms (500);
+    }
+  return 0;
+}
diff --git a/20220531/blink-06.c b/20220531/blink-06.c
new file mode 100644
index 0000000000000000000000000000000000000000..d78fef9e17a69e7bfb24c6599825775160bfb57a
--- /dev/null
+++ b/20220531/blink-06.c
@@ -0,0 +1,23 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  while (1)
+    {
+      PORTB = 0x10;       // rote LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x20;       // interne gelbe LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x08;       // grüne LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
+      _delay_ms (500);      
+       PORTB = 0x38;      // LEDs an Ausgang 11, 12 und 13 an (Bit Nr. 3, 4 und 5), alle anderen aus
+      _delay_ms (500);
+      PORTB = 0x00;       // alle LEDs aus
+      _delay_ms (500);      
+    }
+  return 0;
+}
diff --git a/20220531/blink-07.c b/20220531/blink-07.c
new file mode 100644
index 0000000000000000000000000000000000000000..b690476db4d29837fb8846b65388b6fd046886a5
--- /dev/null
+++ b/20220531/blink-07.c
@@ -0,0 +1,24 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  while (1)
+    {
+      PORTB = 0x00;       // alle LEDs aus
+      _delay_ms (500);
+                          // rote LED (Ausgang 12, Bit Nr. 4) einschalten
+      PORTB |= 0x10;      // Oder-Verknüpfung mit Maske: 0001 0000 = 0x10
+      _delay_ms (500);
+                          // interne gelbe LED (Ausgang 13, Bit Nr. 5) einschalten
+      PORTB |= 0x20;      // Maske: 0010 0000 = 0x20
+      _delay_ms (500);
+                          // grüne LED (Ausgang 11, Bit Nr. 3) einschalten
+      PORTB |= 0x08;      // Maske: 0000 1000 = 0x08
+      _delay_ms (500);    // digitalWrite (11, HIGH);
+    }
+  return 0;
+}
diff --git a/20220531/blink-08.c b/20220531/blink-08.c
new file mode 100644
index 0000000000000000000000000000000000000000..4e7b2d693649596fa399edb5b0a182055651b548
--- /dev/null
+++ b/20220531/blink-08.c
@@ -0,0 +1,34 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRB = 0xff;   // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
+  while (1)
+    {
+      PORTB = 0x00;       // alle LEDs aus
+      _delay_ms (500);
+                          // rote LED (Ausgang 12, Bit Nr. 4) einschalten
+      PORTB |= 0x10;      // Oder-Verknüpfung mit Maske: 0001 0000 = 0x10
+      _delay_ms (500);
+                          // interne gelbe LED (Ausgang 13, Bit Nr. 5) einschalten
+      PORTB |= 0x20;      // Maske: 0010 0000 = 0x20
+      _delay_ms (500);
+                          // grüne LED (Ausgang 11, Bit Nr. 3) einschalten
+      PORTB |= 0x08;      // Maske: 0000 1000 = 0x08
+      _delay_ms (500);    // digitalWrite (11, HIGH);
+      
+                          // rote LED (Ausgang 12, Bit Nr. 4) ausschalten
+      PORTB &= 0xef;      // Oder-Verknüpfung mit Maske: 1110 1111 = 0xef
+      _delay_ms (500);
+                          // interne gelbe LED (Ausgang 13, Bit Nr. 5) ausschalten
+      PORTB &= 0xdf;      // Maske: 1101 1111 = 0xdf
+      _delay_ms (500);
+                          // grüne LED (Ausgang 11, Bit Nr. 3) ausschalten
+      PORTB &= 0xf7;      // Maske: 1111 0111 = 0xf7
+      _delay_ms (500);    // digitalWrite (11, HIGH);
+    }
+  return 0;
+}
diff --git a/20220531/blink-asm-01.S b/20220531/blink-asm-01.S
new file mode 100644
index 0000000000000000000000000000000000000000..c05515ff90129ffed09b1281786045b31d951476
--- /dev/null
+++ b/20220531/blink-asm-01.S
@@ -0,0 +1,40 @@
+	.file	"blink.c"
+__SP_H__ = 0x3e
+__SP_L__ = 0x3d
+__SREG__ = 0x3f
+__tmp_reg__ = 0
+__zero_reg__ = 1
+	.section	.text.startup,"ax",@progbits
+.global	pruzzel
+	.type	pruzzel, @function
+pruzzel:
+/* prologue: function */
+/* frame size = 0 */
+/* stack size = 0 */
+.L__stack_usage = 0
+	ldi r24,lo8(1)
+	out 0xa,r24
+.L3:
+	out 0xb,r24
+	ldi r18,lo8(799999)
+	ldi r19,hi8(799999)
+	ldi r25,hlo8(799999)
+1:	subi r18,1
+	sbci r19,0
+	sbci r25,0
+	brne 1b
+	rjmp .
+	nop
+	out 0xb,__zero_reg__
+	ldi r18,lo8(799999)
+	ldi r19,hi8(799999)
+	ldi r25,hlo8(799999)
+1:	subi r18,1
+	sbci r19,0
+	sbci r25,0
+	brne 1b
+	rjmp .
+	nop
+	rjmp .L3
+	.size	pruzzel, .-pruzzel
+	.ident	"GCC: (GNU) 5.4.0"
diff --git a/20220531/blink-asm-01.ino b/20220531/blink-asm-01.ino
new file mode 100644
index 0000000000000000000000000000000000000000..7143e9c74e9a55a171d14de7123aa22deabd2019
--- /dev/null
+++ b/20220531/blink-asm-01.ino
@@ -0,0 +1,11 @@
+extern "C" { extern void pruzzel (); }
+
+void setup ()
+{
+  pruzzel ();
+}
+
+void loop ()
+{
+  /* empty */
+}
diff --git a/20220531/blink.c b/20220531/blink.c
new file mode 100644
index 0000000000000000000000000000000000000000..3970768da6772da0ccf8cbeaccbae49c200458f0
--- /dev/null
+++ b/20220531/blink.c
@@ -0,0 +1,18 @@
+#include <avr/io.h>
+
+#define F_CPU 8000000
+#include <util/delay.h>
+
+int main (void)
+{
+  DDRD = 0x01;
+  PORTD = 0x01;
+  while (1)
+    {
+      _delay_ms (500);
+      PORTD = 0x00;
+      _delay_ms (500);
+      PORTD = 0x01;
+    }
+  return 0;
+}
diff --git a/20220531/blink.hex b/20220531/blink.hex
new file mode 100644
index 0000000000000000000000000000000000000000..249b3aa15f72dc6a4f28f532fba154f486af5547
--- /dev/null
+++ b/20220531/blink.hex
@@ -0,0 +1,13 @@
+:100000000C9434000C943E000C943E000C943E0082
+:100010000C943E000C943E000C943E000C943E0068
+:100020000C943E000C943E000C943E000C943E0058
+:100030000C943E000C943E000C943E000C943E0048
+:100040000C943E000C943E000C943E000C943E0038
+:100050000C943E000C943E000C943E000C943E0028
+:100060000C943E000C943E0011241FBECFEFD8E04C
+:10007000DEBFCDBF0E9440000C9457000C940000DE
+:1000800081E08AB98BB92FEF34E39CE021503040F6
+:100090009040E1F700C000001BB82FEF34E39CE074
+:1000A000215030409040E1F700C00000EBCFF894C1
+:0200B000FFCF80
+:00000001FF
diff --git a/20220531/blink.s0 b/20220531/blink.s0
new file mode 100644
index 0000000000000000000000000000000000000000..6081056bb30dbeb04b343b924e83489b7a670e0f
--- /dev/null
+++ b/20220531/blink.s0
@@ -0,0 +1,495 @@
+	.file	"blink.c"
+__SP_H__ = 0x3e
+__SP_L__ = 0x3d
+__SREG__ = 0x3f
+__tmp_reg__ = 0
+__zero_reg__ = 1
+	.stabs	"/home/peter/bo/2022ss/rtech/20220531/",100,0,2,.Ltext0
+	.stabs	"blink.c",100,0,2,.Ltext0
+	.text
+.Ltext0:
+	.stabs	"gcc2_compiled.",60,0,0,0
+	.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
+	.stabs	"char:t(0,2)=r(0,2);0;127;",128,0,0,0
+	.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
+	.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
+	.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
+	.stabs	"__int128:t(0,6)=@s128;r(0,6);02000000000000000000000000000000000000000000;01777777777777777777777777777777777777777777;",128,0,0,0
+	.stabs	"__int128 unsigned:t(0,7)=@s128;r(0,7);0;03777777777777777777777777777777777777777777;",128,0,0,0
+	.stabs	"long long int:t(0,8)=@s64;r(0,8);01000000000000000000000;00777777777777777777777;",128,0,0,0
+	.stabs	"long long unsigned int:t(0,9)=@s64;r(0,9);0;01777777777777777777777;",128,0,0,0
+	.stabs	"short int:t(0,10)=r(0,10);-32768;32767;",128,0,0,0
+	.stabs	"short unsigned int:t(0,11)=r(0,11);0;0177777;",128,0,0,0
+	.stabs	"signed char:t(0,12)=@s8;r(0,12);-128;127;",128,0,0,0
+	.stabs	"unsigned char:t(0,13)=@s8;r(0,13);0;255;",128,0,0,0
+	.stabs	"float:t(0,14)=r(0,1);4;0;",128,0,0,0
+	.stabs	"double:t(0,15)=r(0,1);4;0;",128,0,0,0
+	.stabs	"long double:t(0,16)=r(0,1);4;0;",128,0,0,0
+	.stabs	"short _Fract:t(0,17)=r(0,1);1;0;",128,0,0,0
+	.stabs	"_Fract:t(0,18)=r(0,1);2;0;",128,0,0,0
+	.stabs	"long _Fract:t(0,19)=r(0,1);4;0;",128,0,0,0
+	.stabs	"long long _Fract:t(0,20)=r(0,1);8;0;",128,0,0,0
+	.stabs	"unsigned short _Fract:t(0,21)=r(0,1);1;0;",128,0,0,0
+	.stabs	"unsigned _Fract:t(0,22)=r(0,1);2;0;",128,0,0,0
+	.stabs	"unsigned long _Fract:t(0,23)=r(0,1);4;0;",128,0,0,0
+	.stabs	"unsigned long long _Fract:t(0,24)=r(0,1);8;0;",128,0,0,0
+	.stabs	"_Sat short _Fract:t(0,25)=r(0,1);1;0;",128,0,0,0
+	.stabs	"_Sat _Fract:t(0,26)=r(0,1);2;0;",128,0,0,0
+	.stabs	"_Sat long _Fract:t(0,27)=r(0,1);4;0;",128,0,0,0
+	.stabs	"_Sat long long _Fract:t(0,28)=r(0,1);8;0;",128,0,0,0
+	.stabs	"_Sat unsigned short _Fract:t(0,29)=r(0,1);1;0;",128,0,0,0
+	.stabs	"_Sat unsigned _Fract:t(0,30)=r(0,1);2;0;",128,0,0,0
+	.stabs	"_Sat unsigned long _Fract:t(0,31)=r(0,1);4;0;",128,0,0,0
+	.stabs	"_Sat unsigned long long _Fract:t(0,32)=r(0,1);8;0;",128,0,0,0
+	.stabs	"short _Accum:t(0,33)=r(0,1);2;0;",128,0,0,0
+	.stabs	"_Accum:t(0,34)=r(0,1);4;0;",128,0,0,0
+	.stabs	"long _Accum:t(0,35)=r(0,1);8;0;",128,0,0,0
+	.stabs	"long long _Accum:t(0,36)=r(0,1);8;0;",128,0,0,0
+	.stabs	"unsigned short _Accum:t(0,37)=r(0,1);2;0;",128,0,0,0
+	.stabs	"unsigned _Accum:t(0,38)=r(0,1);4;0;",128,0,0,0
+	.stabs	"unsigned long _Accum:t(0,39)=r(0,1);8;0;",128,0,0,0
+	.stabs	"unsigned long long _Accum:t(0,40)=r(0,1);8;0;",128,0,0,0
+	.stabs	"_Sat short _Accum:t(0,41)=r(0,1);2;0;",128,0,0,0
+	.stabs	"_Sat _Accum:t(0,42)=r(0,1);4;0;",128,0,0,0
+	.stabs	"_Sat long _Accum:t(0,43)=r(0,1);8;0;",128,0,0,0
+	.stabs	"_Sat long long _Accum:t(0,44)=r(0,1);8;0;",128,0,0,0
+	.stabs	"_Sat unsigned short _Accum:t(0,45)=r(0,1);2;0;",128,0,0,0
+	.stabs	"_Sat unsigned _Accum:t(0,46)=r(0,1);4;0;",128,0,0,0
+	.stabs	"_Sat unsigned long _Accum:t(0,47)=r(0,1);8;0;",128,0,0,0
+	.stabs	"_Sat unsigned long long _Accum:t(0,48)=r(0,1);8;0;",128,0,0,0
+	.stabs	"void:t(0,49)=(0,49)",128,0,0,0
+	.stabs	"/usr/lib/avr/include/avr/io.h",130,0,0,0
+	.stabs	"/usr/lib/avr/include/avr/sfr_defs.h",130,0,0,0
+	.stabs	"/usr/lib/avr/include/inttypes.h",130,0,0,0
+	.stabs	"/usr/lib/gcc/avr/5.4.0/include/stdint.h",130,0,0,0
+	.stabs	"/usr/lib/avr/include/stdint.h",130,0,0,0
+	.stabs	"int8_t:t(5,1)=(0,12)",128,0,125,0
+	.stabs	"uint8_t:t(5,2)=(0,13)",128,0,126,0
+	.stabs	"int16_t:t(5,3)=(0,1)",128,0,127,0
+	.stabs	"uint16_t:t(5,4)=(0,4)",128,0,128,0
+	.stabs	"int32_t:t(5,5)=(0,3)",128,0,129,0
+	.stabs	"uint32_t:t(5,6)=(0,5)",128,0,130,0
+	.stabs	"int64_t:t(5,7)=(0,8)",128,0,132,0
+	.stabs	"uint64_t:t(5,8)=(0,9)",128,0,133,0
+	.stabs	"intptr_t:t(5,9)=(5,3)",128,0,146,0
+	.stabs	"uintptr_t:t(5,10)=(5,4)",128,0,151,0
+	.stabs	"int_least8_t:t(5,11)=(5,1)",128,0,163,0
+	.stabs	"uint_least8_t:t(5,12)=(5,2)",128,0,168,0
+	.stabs	"int_least16_t:t(5,13)=(5,3)",128,0,173,0
+	.stabs	"uint_least16_t:t(5,14)=(5,4)",128,0,178,0
+	.stabs	"int_least32_t:t(5,15)=(5,5)",128,0,183,0
+	.stabs	"uint_least32_t:t(5,16)=(5,6)",128,0,188,0
+	.stabs	"int_least64_t:t(5,17)=(5,7)",128,0,196,0
+	.stabs	"uint_least64_t:t(5,18)=(5,8)",128,0,203,0
+	.stabs	"int_fast8_t:t(5,19)=(5,1)",128,0,217,0
+	.stabs	"uint_fast8_t:t(5,20)=(5,2)",128,0,222,0
+	.stabs	"int_fast16_t:t(5,21)=(5,3)",128,0,227,0
+	.stabs	"uint_fast16_t:t(5,22)=(5,4)",128,0,232,0
+	.stabs	"int_fast32_t:t(5,23)=(5,5)",128,0,237,0
+	.stabs	"uint_fast32_t:t(5,24)=(5,6)",128,0,242,0
+	.stabs	"int_fast64_t:t(5,25)=(5,7)",128,0,250,0
+	.stabs	"uint_fast64_t:t(5,26)=(5,8)",128,0,257,0
+	.stabs	"intmax_t:t(5,27)=(5,7)",128,0,277,0
+	.stabs	"uintmax_t:t(5,28)=(5,8)",128,0,282,0
+	.stabn	162,0,0,0
+	.stabn	162,0,0,0
+	.stabs	"int_farptr_t:t(3,1)=(5,5)",128,0,77,0
+	.stabs	"uint_farptr_t:t(3,2)=(5,6)",128,0,81,0
+	.stabn	162,0,0,0
+	.stabn	162,0,0,0
+	.stabs	"/usr/lib/avr/include/avr/fuse.h",130,0,0,0
+	.stabs	"__fuse_t:t(6,1)=(6,2)=s3low:(0,13),0,8;high:(0,13),8,8;extended:(0,13),16,8;;",128,0,244,0
+	.stabn	162,0,0,0
+	.stabn	162,0,0,0
+.global	__mulsf3
+.global	__ltsf2
+.global	__gtsf2
+.global	__fixunssfsi
+	.stabs	"main:F(0,1)",36,0,6,main
+.global	main
+	.type	main, @function
+main:
+	.stabd	46,0,0
+	.stabn	68,0,7,.LM0-.LFBB1
+.LM0:
+.LFBB1:
+	push r28
+	push r29
+	in r28,__SP_L__
+	in r29,__SP_H__
+	sbiw r28,28
+	in __tmp_reg__,__SREG__
+	cli
+	out __SP_H__,r29
+	out __SREG__,__tmp_reg__
+	out __SP_L__,r28
+/* prologue: function */
+/* frame size = 28 */
+/* stack size = 30 */
+.L__stack_usage = 30
+	.stabn	68,0,8,.LM1-.LFBB1
+.LM1:
+	ldi r24,lo8(42)
+	ldi r25,0
+	ldi r18,lo8(1)
+	movw r30,r24
+	st Z,r18
+	.stabn	68,0,9,.LM2-.LFBB1
+.LM2:
+	ldi r24,lo8(43)
+	ldi r25,0
+	ldi r18,lo8(1)
+	movw r30,r24
+	st Z,r18
+.L18:
+	ldi r24,0
+	ldi r25,0
+	ldi r26,lo8(-6)
+	ldi r27,lo8(67)
+	std Y+1,r24
+	std Y+2,r25
+	std Y+3,r26
+	std Y+4,r27
+.LBB18:
+.LBB19:
+	.stabs	"/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext1
+.Ltext1:
+	.stabn	68,0,191,.LM3-.LFBB1
+.LM3:
+	ldi r18,0
+	ldi r19,0
+	ldi r20,lo8(-6)
+	ldi r21,lo8(68)
+	ldd r22,Y+1
+	ldd r23,Y+2
+	ldd r24,Y+3
+	ldd r25,Y+4
+	call __mulsf3
+	movw r26,r24
+	movw r24,r22
+	std Y+19,r24
+	std Y+20,r25
+	std Y+21,r26
+	std Y+22,r27
+	.stabn	68,0,192,.LM4-.LFBB1
+.LM4:
+	ldi r18,0
+	ldi r19,0
+	ldi r20,lo8(-128)
+	ldi r21,lo8(63)
+	ldd r22,Y+19
+	ldd r23,Y+20
+	ldd r24,Y+21
+	ldd r25,Y+22
+	call __ltsf2
+	tst r24
+	brge .L23
+	.stabn	68,0,193,.LM5-.LFBB1
+.LM5:
+	ldi r24,lo8(1)
+	ldi r25,0
+	std Y+24,r25
+	std Y+23,r24
+	rjmp .L4
+.L23:
+	.stabn	68,0,194,.LM6-.LFBB1
+.LM6:
+	ldi r18,0
+	ldi r19,lo8(-1)
+	ldi r20,lo8(127)
+	ldi r21,lo8(71)
+	ldd r22,Y+19
+	ldd r23,Y+20
+	ldd r24,Y+21
+	ldd r25,Y+22
+	call __gtsf2
+	cp __zero_reg__,r24
+	brge .L24
+	.stabn	68,0,197,.LM7-.LFBB1
+.LM7:
+	ldi r18,0
+	ldi r19,0
+	ldi r20,lo8(32)
+	ldi r21,lo8(65)
+	ldd r22,Y+1
+	ldd r23,Y+2
+	ldd r24,Y+3
+	ldd r25,Y+4
+	call __mulsf3
+	movw r26,r24
+	movw r24,r22
+	movw r22,r24
+	movw r24,r26
+	call __fixunssfsi
+	movw r26,r24
+	movw r24,r22
+	std Y+24,r25
+	std Y+23,r24
+	rjmp .L7
+.L8:
+	ldi r24,lo8(-56)
+	ldi r25,0
+	std Y+26,r25
+	std Y+25,r24
+.LBB20:
+.LBB21:
+	.stabs	"/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext2
+.Ltext2:
+	.stabn	68,0,105,.LM8-.LFBB1
+.LM8:
+	ldd r24,Y+25
+	ldd r25,Y+26
+/* #APP */
+ ;  105 "/usr/lib/avr/include/util/delay_basic.h" 1
+	1: sbiw r24,1
+	brne 1b
+ ;  0 "" 2
+/* #NOAPP */
+	std Y+26,r25
+	std Y+25,r24
+.LBE21:
+.LBE20:
+	.stabs	"/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext3
+.Ltext3:
+	.stabn	68,0,202,.LM9-.LFBB1
+.LM9:
+	ldd r24,Y+23
+	ldd r25,Y+24
+	sbiw r24,1
+	std Y+24,r25
+	std Y+23,r24
+.L7:
+	.stabn	68,0,198,.LM10-.LFBB1
+.LM10:
+	ldd r24,Y+23
+	ldd r25,Y+24
+	or r24,r25
+	brne .L8
+	rjmp .L9
+.L24:
+	.stabn	68,0,207,.LM11-.LFBB1
+.LM11:
+	ldd r22,Y+19
+	ldd r23,Y+20
+	ldd r24,Y+21
+	ldd r25,Y+22
+	call __fixunssfsi
+	movw r26,r24
+	movw r24,r22
+	std Y+24,r25
+	std Y+23,r24
+.L4:
+	ldd r24,Y+23
+	ldd r25,Y+24
+	std Y+28,r25
+	std Y+27,r24
+.LBB22:
+.LBB23:
+	.stabs	"/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext4
+.Ltext4:
+	.stabn	68,0,105,.LM12-.LFBB1
+.LM12:
+	ldd r24,Y+27
+	ldd r25,Y+28
+/* #APP */
+ ;  105 "/usr/lib/avr/include/util/delay_basic.h" 1
+	1: sbiw r24,1
+	brne 1b
+ ;  0 "" 2
+/* #NOAPP */
+	std Y+28,r25
+	std Y+27,r24
+.L9:
+.LBE23:
+.LBE22:
+.LBE19:
+.LBE18:
+	.stabs	"blink.c",132,0,0,.Ltext5
+.Ltext5:
+	.stabn	68,0,13,.LM13-.LFBB1
+.LM13:
+	ldi r24,lo8(43)
+	ldi r25,0
+	movw r30,r24
+	st Z,__zero_reg__
+	ldi r24,0
+	ldi r25,0
+	ldi r26,lo8(-6)
+	ldi r27,lo8(67)
+	std Y+5,r24
+	std Y+6,r25
+	std Y+7,r26
+	std Y+8,r27
+.LBB24:
+.LBB25:
+	.stabs	"/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext6
+.Ltext6:
+	.stabn	68,0,191,.LM14-.LFBB1
+.LM14:
+	ldi r18,0
+	ldi r19,0
+	ldi r20,lo8(-6)
+	ldi r21,lo8(68)
+	ldd r22,Y+5
+	ldd r23,Y+6
+	ldd r24,Y+7
+	ldd r25,Y+8
+	call __mulsf3
+	movw r26,r24
+	movw r24,r22
+	std Y+9,r24
+	std Y+10,r25
+	std Y+11,r26
+	std Y+12,r27
+	.stabn	68,0,192,.LM15-.LFBB1
+.LM15:
+	ldi r18,0
+	ldi r19,0
+	ldi r20,lo8(-128)
+	ldi r21,lo8(63)
+	ldd r22,Y+9
+	ldd r23,Y+10
+	ldd r24,Y+11
+	ldd r25,Y+12
+	call __ltsf2
+	tst r24
+	brge .L25
+	.stabn	68,0,193,.LM16-.LFBB1
+.LM16:
+	ldi r24,lo8(1)
+	ldi r25,0
+	std Y+14,r25
+	std Y+13,r24
+	rjmp .L12
+.L25:
+	.stabn	68,0,194,.LM17-.LFBB1
+.LM17:
+	ldi r18,0
+	ldi r19,lo8(-1)
+	ldi r20,lo8(127)
+	ldi r21,lo8(71)
+	ldd r22,Y+9
+	ldd r23,Y+10
+	ldd r24,Y+11
+	ldd r25,Y+12
+	call __gtsf2
+	cp __zero_reg__,r24
+	brge .L26
+	.stabn	68,0,197,.LM18-.LFBB1
+.LM18:
+	ldi r18,0
+	ldi r19,0
+	ldi r20,lo8(32)
+	ldi r21,lo8(65)
+	ldd r22,Y+5
+	ldd r23,Y+6
+	ldd r24,Y+7
+	ldd r25,Y+8
+	call __mulsf3
+	movw r26,r24
+	movw r24,r22
+	movw r22,r24
+	movw r24,r26
+	call __fixunssfsi
+	movw r26,r24
+	movw r24,r22
+	std Y+14,r25
+	std Y+13,r24
+	rjmp .L15
+.L16:
+	ldi r24,lo8(-56)
+	ldi r25,0
+	std Y+16,r25
+	std Y+15,r24
+.LBB26:
+.LBB27:
+	.stabs	"/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext7
+.Ltext7:
+	.stabn	68,0,105,.LM19-.LFBB1
+.LM19:
+	ldd r24,Y+15
+	ldd r25,Y+16
+/* #APP */
+ ;  105 "/usr/lib/avr/include/util/delay_basic.h" 1
+	1: sbiw r24,1
+	brne 1b
+ ;  0 "" 2
+/* #NOAPP */
+	std Y+16,r25
+	std Y+15,r24
+.LBE27:
+.LBE26:
+	.stabs	"/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext8
+.Ltext8:
+	.stabn	68,0,202,.LM20-.LFBB1
+.LM20:
+	ldd r24,Y+13
+	ldd r25,Y+14
+	sbiw r24,1
+	std Y+14,r25
+	std Y+13,r24
+.L15:
+	.stabn	68,0,198,.LM21-.LFBB1
+.LM21:
+	ldd r24,Y+13
+	ldd r25,Y+14
+	or r24,r25
+	brne .L16
+	rjmp .L17
+.L26:
+	.stabn	68,0,207,.LM22-.LFBB1
+.LM22:
+	ldd r22,Y+9
+	ldd r23,Y+10
+	ldd r24,Y+11
+	ldd r25,Y+12
+	call __fixunssfsi
+	movw r26,r24
+	movw r24,r22
+	std Y+14,r25
+	std Y+13,r24
+.L12:
+	ldd r24,Y+13
+	ldd r25,Y+14
+	std Y+18,r25
+	std Y+17,r24
+.LBB28:
+.LBB29:
+	.stabs	"/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext9
+.Ltext9:
+	.stabn	68,0,105,.LM23-.LFBB1
+.LM23:
+	ldd r24,Y+17
+	ldd r25,Y+18
+/* #APP */
+ ;  105 "/usr/lib/avr/include/util/delay_basic.h" 1
+	1: sbiw r24,1
+	brne 1b
+ ;  0 "" 2
+/* #NOAPP */
+	std Y+18,r25
+	std Y+17,r24
+.L17:
+.LBE29:
+.LBE28:
+.LBE25:
+.LBE24:
+	.stabs	"blink.c",132,0,0,.Ltext10
+.Ltext10:
+	.stabn	68,0,15,.LM24-.LFBB1
+.LM24:
+	ldi r24,lo8(43)
+	ldi r25,0
+	ldi r18,lo8(1)
+	movw r30,r24
+	st Z,r18
+	.stabn	68,0,16,.LM25-.LFBB1
+.LM25:
+	rjmp .L18
+	.size	main, .-main
+.Lscope1:
+	.stabs	"",36,0,0,.Lscope1-.LFBB1
+	.stabd	78,0,0
+	.stabs	"",100,0,0,.Letext0
+.Letext0:
+	.ident	"GCC: (GNU) 5.4.0"
diff --git a/20220531/blink.ss b/20220531/blink.ss
new file mode 100644
index 0000000000000000000000000000000000000000..69d0101cf145b2483cacd58405d5e84cc437134b
--- /dev/null
+++ b/20220531/blink.ss
@@ -0,0 +1,40 @@
+	.file	"blink.c"
+__SP_H__ = 0x3e
+__SP_L__ = 0x3d
+__SREG__ = 0x3f
+__tmp_reg__ = 0
+__zero_reg__ = 1
+	.section	.text.startup,"ax",@progbits
+.global	main
+	.type	main, @function
+main:
+/* prologue: function */
+/* frame size = 0 */
+/* stack size = 0 */
+.L__stack_usage = 0
+	ldi r24,lo8(1)
+	out 0xa,r24
+.L3:
+	out 0xb,r24
+	ldi r18,lo8(799999)
+	ldi r19,hi8(799999)
+	ldi r25,hlo8(799999)
+1:	subi r18,1
+	sbci r19,0
+	sbci r25,0
+	brne 1b
+	rjmp .
+	nop
+	out 0xb,__zero_reg__
+	ldi r18,lo8(799999)
+	ldi r19,hi8(799999)
+	ldi r25,hlo8(799999)
+1:	subi r18,1
+	sbci r19,0
+	sbci r25,0
+	brne 1b
+	rjmp .
+	nop
+	rjmp .L3
+	.size	main, .-main
+	.ident	"GCC: (GNU) 5.4.0"
diff --git a/20220531/download.sh b/20220531/download.sh
new file mode 100755
index 0000000000000000000000000000000000000000..770c3b5dca74ac09778be055c9d6f5adb0df293b
--- /dev/null
+++ b/20220531/download.sh
@@ -0,0 +1,3 @@
+port=$(ls -rt /dev/ttyACM* | tail -1)
+echo avrdude -P $port -c arduino -p m328p -U flash:w:$(ls -rt *.hex | tail -1)
+avrdude -P $port -c arduino -p m328p -U flash:w:$(ls -rt *.hex | tail -1) 2>/dev/null
diff --git a/20220531/rtech-20220531.txt b/20220531/rtech-20220531.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c1288d395115ac5d82f875897edbf792efccb736
--- /dev/null
+++ b/20220531/rtech-20220531.txt
@@ -0,0 +1,4 @@
+Aus dem Datenblatt des ATMega 328P, Seite 615, erfahren wir:
+
+  Die Variable DDRD liegt an Speicherzelle 0x2a.
+  Die Variable PORTD liegt an Speicherzelle 0x2b.
diff --git a/20220531/variables-00.c b/20220531/variables-00.c
new file mode 100644
index 0000000000000000000000000000000000000000..75aed61bc741c075328db2fb6cd607868c2b2e50
--- /dev/null
+++ b/20220531/variables-00.c
@@ -0,0 +1,9 @@
+#include <stdint.h>
+
+uint8_t x = 3;
+
+int main (void)
+{
+  x = 7;
+  return 0;
+}
diff --git a/20220531/variables-00.s b/20220531/variables-00.s
new file mode 100644
index 0000000000000000000000000000000000000000..72ee0f4e5ef30630867cb765f6a103a4be737146
--- /dev/null
+++ b/20220531/variables-00.s
@@ -0,0 +1,28 @@
+	.file	"variables-00.c"
+__SP_H__ = 0x3e
+__SP_L__ = 0x3d
+__SREG__ = 0x3f
+__tmp_reg__ = 0
+__zero_reg__ = 1
+	.section	.text.startup,"ax",@progbits
+.global	main
+	.type	main, @function
+main:
+/* prologue: function */
+/* frame size = 0 */
+/* stack size = 0 */
+.L__stack_usage = 0
+	ldi r24,lo8(7)                                    ; #include <stdint.h>
+	sts x,r24                                         ; 
+	ldi r24,0                                         ; uint8_t x = 3;
+	ldi r25,0                                         ; 
+	ret                                               ; int main (void)
+	.size	main, .-main                              ; {
+.global	x                                                 ;   x = 7;
+	.data                                             ;   return 0;
+	.type	x, @object                                ; }
+	.size	x, 1
+x:
+	.byte	3
+	.ident	"GCC: (GNU) 5.4.0"
+.global __do_copy_data
diff --git a/20220531/variables-01.c b/20220531/variables-01.c
new file mode 100644
index 0000000000000000000000000000000000000000..e8cdc4ecedbcc164f2f6f2f4983c80728a33efb4
--- /dev/null
+++ b/20220531/variables-01.c
@@ -0,0 +1,9 @@
+#include <stdint.h>
+
+uint8_t x = 3;
+
+int main (void)
+{
+  x = 7;
+  return 1;
+}
diff --git a/20220531/variables-01.s b/20220531/variables-01.s
new file mode 100644
index 0000000000000000000000000000000000000000..d1b522d016898e9578ae33848302b1b91f84e7d4
--- /dev/null
+++ b/20220531/variables-01.s
@@ -0,0 +1,28 @@
+	.file	"variables-01.c"
+__SP_H__ = 0x3e
+__SP_L__ = 0x3d
+__SREG__ = 0x3f
+__tmp_reg__ = 0
+__zero_reg__ = 1
+	.section	.text.startup,"ax",@progbits
+.global	main
+	.type	main, @function
+main:
+/* prologue: function */
+/* frame size = 0 */
+/* stack size = 0 */
+.L__stack_usage = 0                              ; #include <stdint.h>
+	ldi r24,lo8(7)                           ; 
+	sts x,r24                                ; uint8_t x = 3;
+	ldi r24,lo8(1)                           ; 
+	ldi r25,0                                ; int main (void)
+	ret                                      ; {
+	.size	main, .-main                     ;   x = 7;
+.global	x                                        ;   return 1;
+	.data                                    ; }
+	.type	x, @object
+	.size	x, 1
+x:
+	.byte	3
+	.ident	"GCC: (GNU) 5.4.0"
+.global __do_copy_data
diff --git a/20220531/variables-02.c b/20220531/variables-02.c
new file mode 100644
index 0000000000000000000000000000000000000000..7d536c93c646bec30aa1158d565e47e330effa2b
--- /dev/null
+++ b/20220531/variables-02.c
@@ -0,0 +1,9 @@
+#include <stdint.h>
+
+uint8_t x = 3;
+
+int main (void)
+{
+  x = 7;
+  return 1117;
+}
diff --git a/20220531/variables-02.s b/20220531/variables-02.s
new file mode 100644
index 0000000000000000000000000000000000000000..6815502b2762cf6f982a4705a999955fbaa4045c
--- /dev/null
+++ b/20220531/variables-02.s
@@ -0,0 +1,29 @@
+	.file	"variables-02.c"
+__SP_H__ = 0x3e
+__SP_L__ = 0x3d
+__SREG__ = 0x3f
+__tmp_reg__ = 0
+__zero_reg__ = 1
+	.section	.text.startup,"ax",@progbits
+.global	main
+	.type	main, @function
+main:
+/* prologue: function */
+/* frame size = 0 */
+/* stack size = 0 */
+.L__stack_usage = 0                                 ; #include <stdint.h>
+	ldi r24,lo8(7)                              ; 
+	sts x,r24                                   ; uint8_t x = 3;
+	ldi r24,lo8(93)                             ; 
+	ldi r25,lo8(4)                              ; int main (void)
+	ret                                         ; {
+	.size	main, .-main                        ;   x = 7;
+.global	x                                           ;   return 1117;
+	.data                                       ; }
+	.type	x, @object
+	.size	x, 1
+x:
+	.byte	3                                   ; 4 * 256 + 93 = 1117
+	.ident	"GCC: (GNU) 5.4.0"                  ; daher: 4 nach r25, 93 nach r24
+.global __do_copy_data
+