diff --git a/20230503/antiknirps.red b/20230503/antiknirps.red
new file mode 100644
index 0000000000000000000000000000000000000000..86843ea77791cca4138c0d2a3684be10a341c1c4
--- /dev/null
+++ b/20230503/antiknirps.red
@@ -0,0 +1,11 @@
+;redcode
+;name Antiknirps
+;author Peter Gerwinski
+;strategy Modifiziere den Code von Knirps, um ihn zu stoppen
+;assert 1
+
+falle DAT   #0
+      DAT   #0
+start DJN   start, falle
+      JMP   start
+      END   start
diff --git a/20230503/dwarf-01.red b/20230503/dwarf-01.red
new file mode 100644
index 0000000000000000000000000000000000000000..4e6a410f1223c35544c754261e68d95687146074
--- /dev/null
+++ b/20230503/dwarf-01.red
@@ -0,0 +1,13 @@
+;redcode
+;name Dwarf
+;author A. K. Dewdney, modified by Peter Gerwinski
+;assert 1
+
+bomb  DAT   #3
+dwarf ADD   #1,    bomb
+      MOV   bomb, @bomb
+      JMP   dwarf
+      END   dwarf          ; Programs start at the first line unless
+                           ; an "END start" pseudo-op appears to indicate
+                           ; the first logical instruction.  Also, nothing
+                           ; after the END instruction will be assembled.
diff --git a/20230503/dwarf-02.red b/20230503/dwarf-02.red
new file mode 100644
index 0000000000000000000000000000000000000000..436759c042b9fbb874b6f28038a64b19e8768a8e
--- /dev/null
+++ b/20230503/dwarf-02.red
@@ -0,0 +1,13 @@
+;redcode
+;name Dwarf
+;author A. K. Dewdney, modified by Peter Gerwinski
+;assert 1
+
+bomb  DAT   #0
+dwarf ADD   #-1,  bomb
+      MOV   bomb, @bomb
+      JMP   dwarf
+      END   dwarf          ; Programs start at the first line unless
+                           ; an "END start" pseudo-op appears to indicate
+                           ; the first logical instruction.  Also, nothing
+                           ; after the END instruction will be assembled.
diff --git a/20230503/koschka.red b/20230503/koschka.red
new file mode 100644
index 0000000000000000000000000000000000000000..3b3ebbfff5c48ce7edb4c8d618e41582fcd10f54
--- /dev/null
+++ b/20230503/koschka.red
@@ -0,0 +1,14 @@
+;name Koschka
+;version 0.6, 2022-05-10
+;author Peter Gerwinski
+;assert 1
+
+num     dat #-2
+trap    spl 0
+start   mov trap, <pos1
+        jmn start, pos1
+fini    mov num, <pos2
+        jmp fini
+pos2    dat #-2
+pos1    dat #num
+        end start
diff --git a/20230503/mice-jmp.red b/20230503/mice-jmp.red
new file mode 100644
index 0000000000000000000000000000000000000000..ce76b9e6136d57e1a4e8fd8857316def373a3325
--- /dev/null
+++ b/20230503/mice-jmp.red
@@ -0,0 +1,15 @@
+;name Mice
+;author Chip Wendell
+;assert 1
+
+ptr     dat              #0
+start   mov     #12,     ptr    ; n = 12
+loop    mov     @ptr,    <dest  ; *dest = *(ptr+(*ptr))
+        djn     loop,    ptr    ; if(--ptr != 0)
+                                ;     goto loop
+        spl     @dest           ; split(*dest)
+        add     #653,    dest   ; dest += 653
+        jmp     start           ;     goto start
+dest    dat              #833
+
+        end start
diff --git a/20230503/mice-kommentiert.red b/20230503/mice-kommentiert.red
new file mode 100644
index 0000000000000000000000000000000000000000..3eff47db0e3268558d01120cb5d07ac2430690fe
--- /dev/null
+++ b/20230503/mice-kommentiert.red
@@ -0,0 +1,43 @@
+;name Mice
+;author Chip Wendell
+;assert 1
+
+0     ptr     dat              #0
+1     start   mov     #12,     ptr
+2     loop    mov     @ptr,    <dest     ; kopiere das, worauf ptr zeigt, nach dest,
+3             djn     loop,    ptr       ;   ziehe aber vorher von dest 1 ab
+4             spl     @dest              ; djn zieht von ptr 1 ab, springt danach nach loop
+5             add     #653,    dest
+6             jmz     start,   ptr       ; ptr nicht 0 --> etwas schiefgegangen --> Abbruch
+7     dest    dat              #833
+8             dat              #0        ; außerhalb des Programms, initialisiert auf dat #0
+9             dat              #0        end start  ; bedeutet: Fange in Zeile "start" an.
+10            dat              #0
+11            dat              #0
+12            dat              #0
+13
+...
+
+
+
+...
+825
+826
+827   ptr     dat              #0
+828   start   mov     #12,     ptr       ; Hierhin zeigt dest nach dem Kopieren.
+829   loop    mov     @ptr,    <dest 
+830           djn     loop,    ptr
+831           spl     @dest
+832           add     #653,    dest
+833           jmz     start,   ptr
+834   dest    dat              #833      ; ptr = 6
+835           dat              #0
+836           dat              #0
+837           dat              #0
+838           dat              #0
+839           dat              #0        ; Hier landet die Kopie: dest(7) + 833 - 1
+840
+841
+842
+...
+
diff --git a/20230503/rtech-20230503.pdf b/20230503/rtech-20230503.pdf
index 26f4de8c9ea27e517dddc3fd3f5b2b814db6dfdd..6e5ab6f238e3bb025e0d98913f148d23de81e46c 100644
Binary files a/20230503/rtech-20230503.pdf and b/20230503/rtech-20230503.pdf differ
diff --git a/20230503/rtech-20230503.tex b/20230503/rtech-20230503.tex
index 93aca2a685d0127336d0b69371983f85f77501f8..f9fc6c101ebb3db7801289c7292252f42fa668a6 100644
--- a/20230503/rtech-20230503.tex
+++ b/20230503/rtech-20230503.tex
@@ -329,7 +329,6 @@
   \phantom{Problem: }bringt "`Dwarf"' sich selbst zum Absturz.\\[\smallskipamount]
   \pause
   Lösung: \textcolor{red}{Haben Sie Ideen?}
-  \pause
   \textcolor{red}{\textarrow\ Übungsaufgabe}
 
 \end{frame}
@@ -404,6 +403,8 @@
 
 \end{frame}
 
+\iffalse
+
 \begin{frame}[fragile]
 
   \showsubsection
@@ -460,6 +461,8 @@
 
 \end{frame}
 
+\fi
+
 \begin{frame}[fragile]
 
   \showsubsection
diff --git a/20230503/scores b/20230503/scores
new file mode 100755
index 0000000000000000000000000000000000000000..147b503a39376b29b4146b82210f79dcde2af262
--- /dev/null
+++ b/20230503/scores
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+echo "score wins draws"
+for x in *.score; do
+  printf "%4d %4d %4d   %-15s\n" \
+    $(wc -c "$x" | sed -e 's/ .*$//') \
+    $(( $(grep -o "\*" "$x" | wc -l) / 3 )) \
+    $(grep -o "+" "$x" | wc -l) \
+    $(basename $x .red.score)
+done \
+  | sort -rn
diff --git a/20230503/tournament b/20230503/tournament
new file mode 100755
index 0000000000000000000000000000000000000000..9e5b2aa3bc8e4816ff1b7332a3aa0f941e019015
--- /dev/null
+++ b/20230503/tournament
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+if [ "$1" = "-s" ]; then
+  core_size="$2"
+  shift 2
+fi
+
+if [ -n "$1" ]; then
+  PARTICIPANTS="$@"
+else
+  PARTICIPANTS=$(ls *.red)
+fi
+
+#PARTICIPANTS="nothing.red knirps.red mice.red $1"
+
+PMARS="$HOME/bo/2012ws/rtech/material/pmars-0.9.2/src/pmars-ncurses"
+
+mars ()
+{
+  c1=$2
+  c2=$3
+  if [ -n "$core_size" ]; then
+    set $($PMARS -8 -b -k -p 64 -s $core_size $2 $3)
+  else
+    set $($PMARS -8 -b -k -p 64 -s $1 $2 $3)
+  fi
+  if [ $1 = 1 ]; then
+    echo -n "***" >> $c1.score
+    touch $c2.score
+  elif [ $3 = 1 ]; then
+    touch $c1.score
+    echo -n "***" >> $c2.score
+  else
+    echo -n "+" >> $c1.score
+    echo -n "+" >> $c2.score
+  fi
+}
+
+rm -f *.score
+
+./turn $PARTICIPANTS \
+  | sort -R \
+  | tee tournament.log \
+  | while read line; do
+      $line
+    done
+
+./scores
diff --git a/20230503/turn.c b/20230503/turn.c
new file mode 100644
index 0000000000000000000000000000000000000000..4fbaf4f9401c9159892243ff68df89d46660389d
--- /dev/null
+++ b/20230503/turn.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int main (int argc, char **argv)
+{
+  srand (42);
+  for (char **p = argv + 1; *p; p++)
+    for (char **q = p + 1; *q; q++)
+      for (int i = 0; i < 100; i++)
+        printf ("mars %d %s %s\n",
+                512 + rand () % (8192 - 512 + 1), *p, *q);
+  return 0;
+}