C 64
Anwendung des Monats

Lyrik-Maschine

Der »Versifikator« in George Orwells Roman »1984« ist eine Maschine, die Gedichte und Lieder schreiben kann. Lyrik 3.0 macht auch aus dem C 64 einen »Versifikator«.

Mit Lyrik 3.0 haben Sie schnell einen Lyrikband zusammen. Was die Welt allerdings von Computer-Dichtung hält, ist fraglich. Wir in der Redaktion waren jedenfalls über die Ergebnisse erstaunt, denn Lyrik 3.0 reiht nicht nur sinnlos Wörter aneinander. Vielmehr werden semantisch und syntaktisch korrekte — Schreibfehler innerhalb des Programms ausgenommen — Sätze gebildet.

Allen Anthropozentrikern sei gesagt, daß die Gedichte, die von Lyrik 3.0 produziert werden, per definitionem keinen »Sinn« haben, was auch immer mit diesem Wort gemeint ist.

Aber vielleicht besteht der Reiz dieser Gedichte gerade darin, daß durch die oftmals absurden Kombinationen von Wörtern neue ungewöhnliche Metaphern gebildet werden:

Lassen Sie sich doch einfach mal ein Gedicht von Lyrik 3.0 ausdrucken, und lesen Sie es sich bei Kerzenschein oder flackernden Kaminfeuer in aller Ruhe durch:

»Goldene Ränke zerschmettern eine
Hoffnung.
Das Auge schreit.
Da immer wieder pulsierende
Welten verwehen, stirbt das
Universum.«
(Dirk Meier/hm)

Durch einen intelligent programmierten Satzbaualgorithmus erzeugt dieser Lyrik-Generator semantisch korrekte Sätze. Der Wortschatz läßt sich leicht erweitern.

Die folgende Programmbeschreibung zeigt Ihnen, wie das Programm funktioniert und Sie Ihren eigenen Wortschatz anlegen können. Wie stellt das Programm nun ein Gedicht her?

Als erstes müssen ihm verschiedene Parameter übergeben werden:

Anzahl der Strophen (AZ), Anzahl der Verse innerhalb jeder Strophe (VA%(X)), und der Satzbau jedes einzelnen Verses (MN$(X)).

Sofern diese Daten nicht von Ihnen eingegeben werden, werden AZ und das Variablenfeld VA%(X) mit geeigneten Zufallszahlen aufgefüllt, während der Computer die Satzstrukturen MN$(X) aus dem »Satzbauten-Katalog« CO$(X) auswählt. Dieser wird bei der Initialisierung aus den Daten der DATA-Zeilen 1000-2000 gebildet. Diese ganzen Vorarbeiten werden im Auto-Modus in den Zeilen 814-818, im manuellen Modus in den Zeilen 108-242 ausgeführt.

Nun kommt der weitaus schwierigere Teil: Es müssen ganze deutsche Sätze gebildet werden, die den gewünschten Satzbau besitzen und gleichzeitig den Regeln der deutschen Sprache genügen.

Wie geht das nun vor sich?

Der C 64 holt sich den Satzbau des aktuellen Verses aus MN$(X) und legt ihn in W$ ab. Dann durchsucht er W$ nach einem ihm bekannten Mnemonik und gibt gegebenenfalls eine Fehlermeldung aus. Wird der Mnemonik erkannt, so springt das Programm in die entsprechenden Routinen zur Ausführung des Befehls. Die Routinen sind teilweise von sehr unterschiedlicher Komplexität. So wird bei der Routine UND einfach nur ein »und« an den bisherigen Vers angehängt. Bei der Routine SUBJEKT hingegen wird eine ganze Nominalphrase, bestehend aus Artikel, Adjektiv und Substantiv, generiert. Dies funktioniert so: Zuerst werden die Parameter des Mnemonik-Artikel, Adjektiv, Kasus und Numerus Mnemonik-Artikel, Adjektiv, Kasus und Numerus — in der Variablen EA,ED,EF,EP eingelesen (Zeile 322 ff).

Da der Kasus des Adjektivs und des Artikels vom Substantiv abhängt, muß dieses zuerst bestimmt werden. Dies geschieht, wie auch alle folgenden Wortauswahlen, per Zufallsgenerator (Zeile 328). Dann wird der passende Artikel entweder aus der Tabelle AR$(X) (bestimmte Artikel) geholt oder selbst gebildet (unbestimmter Artikel) und mit der korrekten Endung aus der Tabelle EN$(X) versorgt (Zeilen 330-340). Danach wird ein Adjektiv ausgewählt und mit der entsprechenden Endung versehen, die nicht nur vom Kasus, Genus und Numerus des Substantives, sondern auch vom Artikel abhängt. Die Endung wird aus den Tabellen D2(X)-D4(X) herausgesucht (Zeilen 350-366). Jetzt fehlt nur noch das Substantiv. Dieses wurde ja schon ganz am Anfang ausgewählt und muß nun die passende Endung bekommen. Da ich bis dato kein Linguistiker bin, hat mich dieser Teil fast in eine Paranoia getrieben. Ich habe es aber schließlich geschafft, aus der Endsilbe und den darin enthaltenen Vokalen, dem Kasus, Genus und dem Numerus die richtige Endung zu bestimmen, zumindest für 98 Prozent aller Worte (Bei Fremdwörtern kann sich das Programm eventuell auch mal irren). Die Parameterübergabe erfolgt in den Zeilen 370-378, die Endung wird in den Zeilen 930-966 bestimmt.

Sind schließlich gemäß dem Satzbau in W$ alle Glieder des Verses bestimmt, so wird der erzeugte Vers ausgegeben und das Programm fährt mit dem nächsten Vers fort.

Bei Ergänzen des Wortschatzes muß beachtet werden, daß sich im Programmkopf zu den einzelnen Wortarten je ein Zähler befindet (zum Beispiel Q3), der um 1 erhöht werden muß, sobald eine DATA-Zeile der zugehörigen Wortart hinzugefügt wird.

Wie sehen nun die einzelnen DATA-Zeilen aus?

Wichtig sind hier nur die Zeilen mit den Nomen, Adjektiven, den Verben und den Satzstrukturen, die im folgenden näher erklärt werden sollen.

Nomen (ab Zeile 2200): DATA MANN,MAENNER,MAENNLICHE,1

Das erste Wort ist die Singular-, das zweite die Pluralform. Danach folgt ein Adjektiv. Dieses muß im Plural stehen. Das heißt, es muß mit einem »e« enden. Die Zahl zum Schluß gibt das Geschlecht des ersten Wortes an. »1« bedeutet männlich, »2« weiblich, »3« sächlich, »4« ein Name.

Verben (ab Zeile 6000): DATA LAEUFT,LAUFEN,1

Das erste Wort muß eine 3. Person, Singular-Form sein. Das zweite einfach ein Infinitiv. Die Zahl zum Schluß gibt an, ob das Verb transitiv (wie beispielsweise »schlagen« oder »messen«) oder intransitiv (»schlafen« oder »zerbersten«) ist. Im ersten Fall muß die Zahl 0 sein, im zweiten 1. Eine 2 würde bedeuten, daß das Verb eigentlich beides ist.

Satzstrukturen (ab Zeile 1000): DATA "SUB1001 VRB11", "EIN HUND SCHLAEFT"

Das erste Datum ist eine korrekte Satzstruktur, das zweite ein Satz, wie er möglicherweise von dieser Satzstruktur erzeugt worden sein könnte.

Nun liegt es an Ihnen den Wortschatz von Lyric 3.0 so zu übernehmen, wie ich ihn vorgegeben habe, oder ihn nach Ihren Wünschen zu ändern.

So ist es zum Beispiel möglich, die Stimmung, die ein von Lyric 3.0 erzeugtes Gedicht hervorrufen kann, gezielt zu beeinflussen. Verwenden Sie zum Beispiel nur Worte wie »Glas«, »kalt«, »Beton«, »metallisch«, »einsam«, so kann das entstandene Gedicht wahrscheinlich einwandfrei als Kritik an der Isolation von Bewohnern eines Hochhauses in einer Großstadt interpretiert werden. 0der Sie verwenden nur Worte wie »Nebel«, »See«, »Drache«, »Hobbit«, »Gandalf«, »Baumbart«. In diesem Fall werden die erzeugten Gedichte sicherlich einen vollkommen anderen Charakter bekommen.

Zwei Fragen müssen nun noch geklärt werden: Was hat es mit den Satzstrukturen auf sich und wie läßt sich das Programm erweitern? Die Satzstrukturen sind Strings, die dem C 64 genau mitteilen, wie die Form eines Verses aussehen soll.

Ein Beispiel: SUB1101 UND SUB2102 VRBl2 TMP SUB2032

Die dreibuchstabigen Wörter sind Mnemoniks, die ein bestimmtes Wort oder eine Gruppe von Wörtern symbolisieren.

»SUB« erzeugt ein Substantiv. Die darauffolgenden Zahlen geben dem C 64 nähere Informationen zu dem Wort.

1. Zahl:0 — Wort ohne Artikel
1 — mit unbestimmten Artikel
2 — mit bestimmten Artikel
2. Zahl:0 — Wort ohne Adjektiv
1 — mit Adjektiv
3. Zahl:0 — Wort im Nominativ
1 — Genitiv
2 — Dativ
3 — Akkusativ
4. Zahl:1 — Wort im Singular
2 — Wort im Plural

Die oben genannte Satzstruktur könnte zum Beispiel folgendes erzeugt haben: »Ein bunter Hund und die silbernen Ringe schlagen nun die Wände.« Lyric 3.0 ist vom Aufbau her teilweise recht kompliziert, daher hier ein paar Erläuterungen zu den verschiedenen Abschnitten des Programmes:

11-28Variablendefinition und Anlegen der Felder
29-47Anfangsbild
49-64Einlesen der Wörter und Endungen in Felder
100Beginn der Session zwischen C 64 und Benutzer.

Folgende Daten müssen bestimmt werden:

  • Anzahl der Strophen
  • Anzahl der Verse der einzelnen Strophen Satzstrukturen der einzelnen Verse
  • Auf Wunsch kann aber auch alles vom Computer erledigt werden.
242Ende der Session
300-700Auswertung der Satzstrukturen
700-770Ausgabe eines Verses auf Bildschirm und eventuell Drucker
800-818Automodus ? Wenn ja, dann Erzeugung aller notwendigen Daten
900-906Auswertung eines Tastendruckes (ja/nein)
920-928Routine zur Eingabe maximal zweistelliger Zahlen
930-966Routine zur Berechnung der Endung eines Substantives aus Kasus, Genus und Endsilbe
970-978Soundroutine
980-989Gong
990-1000Musikroutine
1000-1500Satzstrukturen
2000-2200Endungen, Präpositionen, Konjunktionen etc.
2200-6000Nomen und Adjektive
ab 6000 Verben

Das Programm benutzt viele Variablen. Die wichtigsten:

E$(X)Feld, das die einzelnen Worte eines Verses enthält
Z2Zeiger auf das nächste freie Element von E$(X)
Z1Zeiger auf den nächsten noch nicht interpretierten Buchstaben der aktuellen Satzstruktur
AZAnzahl der Strophen
VA%(X)Anzahl der Verse der einzelnen Strophen
AR$j,n: Soll gedruckt werden?
Q0-Q8Anzahl der Satzstrukturen, Nomen etc.
MN$(X)Dieses Feld enthält die Satzstrukturen für das ganze Gedicht
AD$Endung, die zu dem Subjekt addiert werden muß.

Ich schlage Ihnen einfach mal vor, daß Sie ein wenig mit Lyric 3.0 herumexperimentieren.

(Dirk Meier/hm)
1 rem  lyric 3.0
2 rem  ---------
3 rem  it's an experience !
4 rem
5 rem  written by
6 rem  dirk meier
7 rem  brendel 30
8 rem  4980 buende 12
9 rem  tel. 05223/42823
10 rem
11 rem anzahl von:
12 q0=19:rem mnemonic-ketten
13 q1=8:rem praepositionen
14 q2=6:rem temporale bestimmungen
15 q3=25:rem konjunktionen
16 q4=138:rem nomen,adjektive
17 q5=90:rem verben
18 q6=10:rem irgendwelche worte
19 q7=8:rem endsilben fuer nomen
20 q8=6:rem irgendwelche subjekte
21 poke53281,14:poke53280,6:printchr$(147)chr$(14)chr$(8)
22 dimva%(20),mn$(150),pm$(20,1),d2$(11),d3$(15),d4$(15),d%(q4+q5-2)
24 dimen$(15),ar$(15),pr$(q1-1),ze$(q2-1),ko$(q3-1),no$(q4-1,3)
26 dimvb$(q5-1,2),e$(20),co$(q0-1),iw$(q6-1),ks$(q8-1)
28 s1=54272:s2=s1+7:s3=s2+7:fora=0to24:pokes1+a,0:next
29 fora=1to20:forb=1to0step-1:print"{home}";:poke646,b:pokes1+24,0:pokes1+24,15
30 print:print" Dirk Meier's Lyric 3.0":print" ======================":nextb,a
31 poke646,1:print:print" Ein Gedicht-Synthese Programm."
32 print:print" Entwickelt nach naechtelangen"
34 print" Schlachten mit der deutschen Grammatik."
36 print" Greetings to Storm,Borchert,Fried,Astel und Enzensberger..."
38 print:print" But never forget:":print" Keep it heavy and keep it hard..."
40 print:print" Aber jetzt: NIL{$a0}NISI{$a0}OPTIMUS !":print
44 printchr$(18)" Ich warte auf eine Reaktion von Ihnen  "
46 geta$:ifa$=""then46
47 gosub970:printchr$(18)"           Bitte etwas warten           "
49 fora=1to35:reada$:next
50 fora=0toq0-1:readco$(a),a$:next:reada$,a$,a$
52 fora=0to15:readen$(a):next:rem endungen
53 fora=0to11:readd2$(a):next:rem endungen2
54 fora=0to15:readd3$(a):next:rem endungen3
55 fora=0to15:readd4$(a):next:rem endungen4
56 fora=0to15:readar$(a):next:rem best.artikel
58 fora=0toq1-1:readpr$(a):next:rem praepositionen
59 forb=0toq2-1:readze$(b):nextb:rem temp. bestimmungen
60 fora=0toq3-1:readko$(a):next:rem konjunktionen
61 fora=0toq6-1:readiw$(a):next:rem irgendwelche worte
62 fora=0toq8-1:readks$(a):nexta:rem irg. subst.
63 fora=0toq4-1:forb=0to3:readno$(a,b):nextb,a:rem nomen,adjektive
64 fora=0toq5-1:forb=0to2:readvb$(a,b):nextb,a:rem verben
100 gosub970:printchr$(147)" Ausdrucken lassen wollen Sie Sich die"
102 print" Gedichte doch sicherlich...oder ?":gosub980
105 getdr$:ifdr$<>"j"anddr$<>"n"then105
107 a$=dr$:gosub900:goto800
108 print:print" Kommen wir zu dem Aufbau der Strophen."
109 print" Wie viele Strophen sollen es sein ?";:gosub980
110 gosub920:az=kk:ifaz=1then122
111 ifaz<1thenprint:goto110
112 print:print" Sollen alle Strophen die gleiche"
113 print" Anzahl von Versen haben ?";:gosub980
114 getf3$:iff3$="j"thenprint" ja":goto122
116 iff3$<>"n"then114
118 print" nein":print" Wieviel Verse sollen es jeweils sein ?":ford=0toaz-1
120 printd+1". Strophe ";:gosub920:va%(d)=kk:next:goto136
122 print:print"{$a0}Vieviele Verse sollen es sein ?";:gosub980:gosub920:f1=kk
124 fora=0toaz-1:va%(a)=f1:next
134 a$=ch$:gosub900:print
136 print" Wir kommen zum formalen Aufbau der":print" Strophen und Verse."
138 print" Wollen Sie eigene Satzstrukturen"
140 print" eingeben (1) oder bereits gespeicherte":print" verwenden (2)";
141 gosub980
142 getf1$:iff1$<>"1"andf1$<>"2"then142
144 iff1$="2"thenprint" gespeicherte":goto200
146 print" selbst eingeben"
180 printchr$(147):print" 1. Strophe":fora=1tova%(0):printa". Vers";
181 inputmn$(a-1):next:iff3$="n"thenprint:goto190
182 ifaz=1then196
183 print:print" Sollen alle restlichen Strophen den"
184 print" gleichen Aufbau besitzen ";:gosub980
185 getf1$:iff1$="j"thenprint" ja":goto196
186 iff1$<>"n"then185
190 print" nein":fora=1toaz-1:printa+1". Strophe":forb=1tova%(a):printb". Vers";
192 input" ";mn$(a*va%(a)+b-1):nextb:print:nexta:goto300
196 fora=1toaz:forb=0tova%(0)-1:mn$(a*va%(a)+b)=mn$(b):nextb,a:goto300
200 print:print" Ihr C64 wird Ihnen nun alle in den"
202 print" DATA-Zeilen gespeicherten Satz-"
204 print" strukturen auflisten und fragen,"
206 print" ob Sie sie bei 'Ihrem' Gedicht "
208 print" vielleicht brauchen koennen.":print" Eine erste Auswahl also."
210 print" Damit Sie sehen,was sie da so aus-"
212 print" waehlen,wird Ihnen zu jeder Struktur"
214 print" ein Satz geliefert,wie er vom Proramm"
216 print" unter Benutzung eben jener Struktur"
218 print" produziert werden koennte.":zz=0:restore:gosub980
219 fora=1to35:reada$:next
220 print:reada$,b$:ifa$="@@@"then230
221 printa$:printb$:printchr$(18)"j/n"
222 getc$:ifc$="n"then220
224 ifc$<>"j"then222
226 pm$(zz,0)=a$:pm$(zz,1)=b$:zz=zz+1:goto220
230 print:print" Waehlen Sie nun fuer jeden Vers die"
232 print" gewuenschte Satzstruktur aus.":gosub980
234 geta$:ifa$=""then234
236 printchr$(147):print:fora=0tozz-1:printchr$(a+65)". ";pm$(a,1):next
238 fora=0toaz-1:forb=0tova%(a)-1:printchr$(19)"                       "
239 printchr$(19)a+1". Strophe,"b+1". Vers   "
240 geta$:ifa$=""then240
241 ifasc(a$)<65orasc(a$)>zz+64then240
242 mn$(a*va%(a)+b)=pm$(asc(a$)-65,0):nextb,a
300 rem +++++ mnemonics auswerten ++++
301 poke53281,5:poke53280,0:poke646,1:printchr$(147);
302 fora=1to10:print:next:printtab(10);
303 fora=1to19:printmid$("l'art pour l'art...",a,1);:forb=1to10
304 pokes1+24,0:pokes1+24,15:nextb,a:fora=1to1000:next:ifdr$="j"thenopen1,4,0
305 printchr$(147):fora=0toaz-1:forb=0tova%(a)-1:w$=mn$(a*va%(a)+b):z1=1:z2=0
306 m$=mid$(w$,z1,3):ifm$=""then712
307 rem ---- und ----
308 ifm$="und"thene$(z2)=m$:z1=z1+4:goto710
309 rem ---- oder ----
310 ifm$="odr"thene$(z2)="oder":z1=z1+4:goto710
311 rem ---- praeposition ----
312 ifm$="pra"thene$(z2)=pr$(rnd(1)*q1):z1=z1+4:goto710
313 rem ---- konjunktion ----
314 ifm$="kon"thene$(z2)=ko$(rnd(1)*q3):z1=z1+4:goto710
315 rem ---- temp. bestimmung ----
316 ifm$<>"tmp"then320
318 e$(z2)=ze$(rnd(1)*q2):z1=z1+4:goto710
319 rem ---- subjekt ----
320 ifm$<>"sub"then410
322 ea=val(mid$(w$,z1+3,1)):ed=val(mid$(w$,z1+4,1)):ef=val(mid$(w$,z1+5,1))
324 ep=val(mid$(w$,z1+6,1))
326 ifep=2andea=1thenea=2
328 wa=int(rnd(1)*q4):ge=val(no$(wa,3))-1
329 ifge=-1thenea=0:ge=0:ed=0:f%=1:goto370
330 f%=0:ifea<2then340
331 ifep=1thene$(z2)=ar$(ef*3+ge)
332 ifep=2thene$(z2)=ar$(ef+12)
334 z2=z2+1:goto350
340 ifea=1thene$(z2)="ein"+en$(ef*3+ge):z2=z2+1
350 ifed=0then370
351 ifep=2then362
352 e$(z2)=no$(rnd(1)*q4,2):ifea=0thene$(z2)=e$(z2)+d3$(ef*3+ge)
354 ifea=1thene$(z2)=e$(z2)+d2$(ef*3+ge)
356 ifea=2thene$(z2)=e$(z2)+d4$(ef*3+ge)
360 z2=z2+1:goto370
362 e$(z2)=no$(rnd(1)*q4,2):ifea=0thene$(z2)=e$(z2)+d3$(ef+12)
364 ifea=2thene$(z2)=e$(z2)+d4$(ef+12)
366 z2=z2+1:rem **** substantiv *****
370 e$(z2)=no$(wa,ep-1):l0$=right$(e$(z2),1):l1$=mid$(e$(z2),len(e$(z2))-1,1)
371 lz$=mid$(e$(z2),len(e$(z2))-2,1)
372 vo=0:ifl0$="a"orl0$="e"orl0$="i"orl0$="o"orl0$="u"thenvo=100
374 ifl1$="a"orl1$="e"orl1$="i"orl1$="o"orl1$="u"thenvo=vo+10
375 iflz$="a"orlz$="e"orlz$="i"orlz$="o"orlz$="u"thenvo=vo+1
376 l2$=l0$+l1$:l3$=right$(e$(z2),3)
378 gosub930:e$(z2)=e$(z2)+ad$:z1=z1+8:goto710
410 rem ---- verbum ----
412 ifm$<>"vrb"then430
414 et=val(mid$(w$,z1+3,1)):ep=val(mid$(w$,z1+4,1))
416 wa=rnd(1)*q5:if(val(vb$(wa,2))<>et)and(val(vb$(wa,2)))<>2then416
418 e$(z2)=vb$(wa,ep-1):z1=z1+6:goto710
430 rem ---- irgendwelche worte -----
432 ifm$<>"iwo"then440
434 e$(z2)=iw$(rnd(1)*q6):z1=z1+4:goto710
440 rem ---- die ---------
442 ifm$="die"thene$(z2)="die":z1=z1+4:goto710
444 rem ---- , ----------
446 ifm$="kom"thene$(z2)=",":z1=z1+4:goto710
448 rem ---- ist/sind -----
450 ifm$="ist"thene$(z2)=m$:z1=z1+4:goto710
452 ifm$="snd"thene$(z2)="sind":z1=z1+4:goto710
454 rem ---- irgendein subjekt ----
456 ifm$="kss"thene$(z2)=ks$(rnd(1)*q8):z1=z1+4:goto710
699 rem ----- ausgabe ---------
700 print"ERROR...UNKNOWN MNEMONIC:":print" ";m$:end
710 z2=z2+1:goto306
712 forx=0toz2-1:p$=p$+e$(x):ife$(x)<>","thenp$=p$+" "
714 nextx
722 printleft$(p$,len(p$)-1);"."
724 ifdr$="j"thenprint#1,left$(p$,len(p$)-1);"."
730 p$="":nextb:print:ifdr$="j"thenprint#1
740 forx=0toz2:e$(x)="":next
750 ifdr$="j"thenprint#1
760 gosub980:nexta:close1:gosub992:poke198,0:wait198,1:poke198,0
762 print:print:print" Noch'n Gedicht ?"
764 geta$:ifa$=""then764
766 ifa$="n"thenrun
768 ifa$="j"then300
770 goto764
800 rem ---- auto -----
802 print:print" Sie koennen zwischen einem halb- [1]"
804 print" und einem vollautomatischen [2] Modus"
806 print" waehlen.Im ersteren muessen Sie"
808 print" Angaben zur Form des Gedichtes machen   im zweiten nicht.";:gosub980
810 geta$:ifa$="1"thenprint" halb":goto108
812 ifa$<>"2"then810
813 print" voll"
814 az=int(rnd(ti)*10)+3:r=int(rnd(1)*8)+3:fora=0toaz-1:va%(a)=r:next
816 fora=0tor-1:b=int(rnd(1)*q0):forc=0toaz-1:mn$(c*r+a)=co$(b):nextc,a
818 goto300
900 rem ++ ja/nein ++
902 ifa$="j"thenprint" ja"
904 ifa$="n"thenprint" nein"
906 return
920 rem ++ zahlen-eingabe ++
922 kk=0:fora=1to0step-1
924 geta$:ifa$=chr$(13)thenkk=kk/10:goto928
925 ifasc(a$+chr$(0))<48orasc(a$+chr$(0))>57then924
926 printa$;:kk=val(a$)*10^a+kk
928 next:print:return
930 rem +++ endung substantiv +++
932 ad$="":ifep=2then960
934 onge+1goto936,952,936
936 onef+1goto952,938,946,953
937 rem +++ sing.mas.gen +++
938 ad$="es":ifl0$="e"and(voand110)=100andge=0thenad$="ns":goto945
939 ifl3$="net"orl2$="rr"thenad$="en":goto945
940 if(l0$="r"orl0$="n"orl0$="l")and((voand10)=10)thenad$="s":goto945
941 iff%=1thenad$="s":goto945
942 ifl0$="s"andvo11<>11thenad$="ses"
943 ifvo<=1thenad$="es"
944 ifad$="es"andl0$="e"thenad$="s"
945 return
946 rem +++ sing.mas.dat +++
947 ad$="e":ifl0$="e"thenad$=""
948 ifl3$="net"orl2$="rr"thenad$="en":goto949
949 if((l0$="r"orl0$="n"orl0$="l")and(voand10=10))orvo<=1thenad$=""
950 if(voand110)=100andge=0thenad$="n"
951 iff%=1thenad$=""
952 return:rem +++ sing.mas.akk +++
953 ifl3$="net"orl2$="rr"thenad$="en"
954 if(voand110)=100andge=0thenad$="n"
955 iff%=1thenad$=""
956 return
960 rem +++ plural +++
962 ifef<>2then966
964 ifl0$<>"n"thenad$="n"
966 return
970 rem ---- title-sound -----
972 pokes1+24,15:pokes1+5,15:pokes2+5,15:pokes3+5,15:pokes1+6,247
974 pokes2+6,247:pokes3+6,247:pokes1+4,17:pokes2+4,17:pokes3+4,17
976 forv=0to179step5 :pokes1+1,v:pokes2+1,v*5/4:pokes3+1,v*10/7
978 next:pokes1+4,32:pokes2+4,32:pokes3+4,32:return
980 rem ---- gong ----
982 pokes1+24,15+16:pokes1+23,7:pokes1+1,10:pokes1+3,100:pokes1+5,15
984 pokes1+6,250:pokes2+1,6:pokes2+3,100:pokes2+5,15:pokes2+6,250
986 pokes3+1,20:pokes3+3,100:pokes3+5,15:pokes3+6,250:pokes1+4,17
988 pokes2+4,21:pokes3+4,17:fors=1to100:next:pokes1+4,16:pokes2+4,20
989 pokes3+4,16:return
990 rem ---- music ----
992 pokes1,0:pokes2,0:pokes3,0:pokes1+1,0:pokes2+1,0:pokes3+1,0
993 pokes1+24,15+16:pokes1+23,0:pokes1+5,15:pokes1+6,250:pokes2+5,15
994 pokes2+6,250:pokes3+5,15:pokes3+6,250:pokes1+4,33:pokes2+4,33
995 pokes3+4,33:restore:fora=1to5:readh,x1,x2,y1,y2,z1,z2:pokes1+1,x1
996 pokes1,x2:pokes2+1,y1:pokes2,y2:pokes3+1,z1:pokes3,z2:forb=1toh:nextb,a
997 pokes1+4,32:pokes2+4,32:pokes3+4,32:return
998 data 1000,6,133,8,180,10,247,500,9,196,10,247,13,10
999 data 1000,17,103,14,162,10,247,1500,19,137,26,20,32,219
1000 data 2000,21,237,26,20,34,207
1001 rem +++++ satz-strukturen +++++
1002 data "sub2001 vrb11","der stein erstarrt"
1003 data "sub2001 und sub2001 vrb12","der stein und das gewebe erstarren"
1004 data "pra sub1021 vrb12 sub2102","hinter dem Aar fliessen die steine"
1005 data "sub0102 vrb02 sub1031","Steine schlagen einen Mann"
1006 data "sub2011 sub0001 vrb11 iwo","des Mannes Hut liegt irgendwo"
1007 data "kon sub1101 vrb11 kom vrb12 sub2002"
1008 data "da der Hut ringt,essen die Eier"
1009 data "iwo vrb01 sub2001 sub2132","Natuerlich toetet Conan die Huete"
1010 data "sub2102 vrb12 kom kon sub1001 sub2131 vrb21"
1011 data "Der Hut eiert,weil die Frau das Wasser  trinkt"
1012 data "sub0002 und sub0002 kom sub2001 vrb11"
1013 data "Hexen und Teufel,der Weg verwht"
1014 data "sub0002 kom die vrb12","Planeten,die vergehen"
1015 data "kon iwo sub2001 vrb11 kom vrb12 sub2002 und sub2002"
1016 data "Weil kein Wolf schwebt,schlafen  die Huete und die Eier"
1017 data "sub2001 kom sub1101 kom vrb01 sub0032"
1018 data "der Hund,ein blaues Tier,toetet Pferde"
1019 data "tmp vrb11 sub2101","bald ertrinkt Conan"
1020 data "tmp ist sub2001 sub1101","nun ist der Hut ein blauer Fleck"
1021 data "sub0002 vrb12 pra sub2021","Herzen rieseln in dem Licht"
1022 data "sub2001 vrb11 kom kon sub2001 vrb11"
1023 data "die Freude funkelt,wenn der Becher      duftet"
1050 data "sub2002 snd sub0102 kom kon sub2001 vrb11"
1051 data "die Baeren sind gruene Aepfel,weil der   Hut eiert"
1052 data "sub0002 kom sub0002 kom sub0002 kom kss vrb11"
1053 data "Aepfel,Birnen,Wirbel,alles vergeht"
1054 data "kon sub2002 vrb12 kom ist sub2001 sub1101"
1055 data "weil der Hut singt,ist der Mann eine      Bestie"
1500 data @@@,@@@
2000 rem +++++ deklinationen +++++++
2002 data @1,,e,,es,er,es,em,er,em,en,e,
2004 data e,er,en,e
2010 rem +++++ deklinationen +++++++
2012 data r,,s,n,n,n,n,n,n,n,,s:rem ein
2014 rem +++++ deklinationen +++++++
2016 data r,,s,n,r,n,m,r,m,n,,s,,r,n,:rem nil
2017 rem +++++ deklinationen +++++++
2018 data ,,,n,n,n,n,n,n,n,,,n,n,n,n:rem der
2020 rem +++++ best. artikel +++++++
2022 data der,die,das,des,der,des,dem,der,dem,den,die,das
2024 data die,der,den,die
2030 rem +++++ endsilben +++++++
2040 rem +++++ praepositionen ++++++
2042 data in,auf,neben,unter,ueber,gegenueber,an,aus
2060 rem +++++ tmp. bestimmungen +++
2064 data jetzt,nun,heute,soeben,bald,gleich
2080 rem +++++ konjunktionen +++++++
2082 data wenn,da,weil,da ja,weil nun einmal,obgleich,obwohl
2084 data auch wenn,wenn auch,waehrend,solange,solange bis
2086 data nachdem,seitdem,eher als,als,bevor,jedesmal wenn
2088 data wie sehr auch,wenn aber,wenn nur,wenn nur nicht
2090 data damit,damit nicht,sobald
2100 rem +++++ einfach worte ++++++++
2102 data "immer wieder",andauernd,"ohne unterlass","nur noch"
2104 data niemals,seltsamerweise,manchmal,"wieder und wieder"
2105 data "zu keiner zeit","fuer immer und ewig"
2120 rem +++++ diverse substantive ++++
2122 data nichts,alles,"rein gar nichts","kaum etwas",niemand,alle
2200 rem +++++ nomen,adjektive ++++++
2201 data meer,meere,waessrige,3
2202 data wald,waelder,gruene,1
2203 data haus,haeuser,blaue,3
2204 data maedchen,maedchen,helle,3
2205 data junge,jungen,junge,1
2206 data frau,frauen,dunkle,2
2207 data turm,tuerme,durstige,1
2208 data mann,maenner,trockene,1
2209 data planet,planeten,runde,1
2210 data wueste,wuesten,kalte,2
2211 data kaelte,winde,warme,2
2212 data grab,graeber,eiskalte,3
2213 data glocke,glocken,goldene,2
2214 data feld,felder,alte,3
2215 data see,leute,feuchte,1
2216 data herr,herren,praechtige,1
2217 data weg,wege,gefaehrliche,1
2218 data tier,tiere,graue,3
2219 data welt,welten,schwarze,2
2220 data land,laender,leuchtende,3
2221 data kraehe,kraehen,tote,2
2222 data schlacht,schlachten,prasselnde,2
2223 data luft,luefte,silberne,2
2224 data macht,maechte,maechtige,2
2225 data ring,ringe,uralte,1
2226 data steintuer,pfade,weise,2
2227 data zauberer,zauberer,einsame,1
2228 data wolf,woelfe,heulende,1
2229 data feuer,feuer,brennende,3
2230 data wolke,wolken,weisse,2
2231 data wirbel,wirbel,reissende,1
2232 data welle,wellen,nasse,2
2233 data stern,sterne,strahlende,1
2234 data pferd,pferde,stolze,3
2235 data tor,tore,gewaltige,3
2236 data festung,festungen,starke,2
2237 data hoffnung,hoffnungen,muehsame,2
2238 data pflicht,pflichten,ernste,2
2239 data auge,augen,magische,3
2240 data zweifel,zweifel,uralte,1
2241 data sterben,schicksale,unendliche,3
2242 data gang,gaenge,unirdische,1
2243 data verzweifelung,stimmen,grausame,2
2244 data wirklichkeit,voelker,unwirkliche,2
2245 data denken,gedanken,denkbare,3
2246 data ork,orks,giftige,1
2247 data schlange,voegel,gefiederte,2
2248 data ende,lichter,duestere,3
2249 data blick,blicke,unwuerdige,1
2250 data fenster,fenster,fensterlose,3
2251 data tod,hoerner,lauernde,1
2252 data rauch,waende,dunstige,1
2253 data krieg,kriege,verfluchte,1
2254 data klirren,horden,metallene,3
2255 data wagnis,gaben,finstere,3
2256 data leben,gegner,toetliche,3
2257 data stein,steine,fluesternde,1
2258 data kette,ketten,schwere,2
2259 data fluss,fluesse,spitze,1
2260 data wille,schwerter,glaenzende,1
2261 data ross,roesser,schicksalshafte,3
2262 data gasthaus,reiter,unbekannte,3
2263 data tapferkeit,faehigkeiten,edle,2
2264 data crom,goetter,verlorene,0
2265 data falke,falken,stuerzende,1
2266 data conan,teufel,hetzende,0
2267 data schwert,katzen,schleichende,3
2268 data freude,freuden,stinkende,2
2269 data glitzern,bestien,blutige,3
2270 data drache,drachen,gigantische,1
2271 data blitz,blitze,grelle,1
2272 data schrecken,schrecken,blutruenstige,1
2273 data moor,suempfe,tropfende,3
2274 data mond,monde,suechtige,1
2275 data eber,mauern,wilde,1
2276 data rabe,raben,pechschwarze,1
2277 data einsamkeit,zweige,dumpfe,2
2278 data geheimnis,geheimnisse,vergessene,3
2279 data verlangen,wiesen,ekstatische,3
2280 data messer,messer,scharfe,3
2281 data mauer,mauern,steinerne,2
2282 data magie,zaubereien,erdfarbene,2
2283 data pest,ketten,staehlerne,2
2284 data waffe,waffen,verborgene,2
2285 data hund,hunde,reissende,1
2286 data monument,kunstlehrer,gerissene,3
2287 data malte,"lippe enterprises",berechtigte,0
2288 data matthias,monumente,irdene,0
2289 data stefan,eindruecke,gewaltige,0
2290 data dirk,visionen,farblose,0
2291 data bauer,bauern,weiche,1
2292 data uebermensch,giganten,knorrige,1
2293 data wahnsinn,centauren,stierkoepfige,1
2294 data richter,richter,pulsierende,1
2295 data sonne,sonnen,berstende,2
2296 data galaxis,galaxien,"strahlend schoene",2
2297 data weltenkreis,fragen,groesste,1
2298 data impuls,impulse,rotierende,1
2299 data pulsar,pulsare,grenzenlose,1
2300 data supernova,supernovae,unermessliche,2
2301 data vakuum,fragmente,erheiterte,3
2302 data kugelraumer,kugelraumer,waffenstarrende,1
2303 data zyklus,zyklen,barbarische,1
2304 data schmerz,schmerzen,ruhende,1
2305 data geschuetz,geschuetze,rauchende,3
2306 data wall,waelle,mentale,1
2307 data schwertmeister,herausforderer,riesige,1
2308 data revolte,revolten,gewaltlose,2
2309 data komet,kometen,gefrorene,1
2310 data meteor,meteore,"hell gluehende",1
2311 data gas,gase,betaeubende,3
2312 data raumschiff,raumschiffe,stellare,3
2313 data stern,sterne,drohende,1
2314 data masse,massen,starre,2
2315 data energie,energien,reine,2
2316 data zeit,zeiten,vergluehende,2
2317 data raum,raeume,erneuerte,1
2318 data raum-zeit,gefuehle,fliessende,2
2319 data traegheit,oberflaechen,zerschmolzene,2
2320 data kugel,kugeln,seltsame,2
2321 data monolith,monolithen,kristalline,1
2322 data quader,quader,interstellare,3
2323 data quasar,quasare,archaische,1
2324 data herrscher,herrscher,faszinierende,1
2325 data kosmos,daempfe,heisse,1
2326 data universum,kreise,silberne,3
2327 data jungfrau,jungfrauen,stilisierte,2
2328 data tropfen,tropfen,tropfende,1
2329 data matrix,matrizen,kubische,2
2330 data kalkuel,kalkuele,dogmatische,3
2331 data experiment,experimente,grauenhafte,3
2332 data haselnuss,haselnuesse,astrale,2
2333 data gesang,gesaenge,meditative,1
2334 data droge,drogen,psychedelische,2
2335 data angst,aengste,hysterische,2
2336 data sitar,geraeusche,morbide,1
2337 data erkenntnis,erkenntnisse,indische,3
2338 data sturm,stuerme,goettliche,1
6000 rem +++++ verben +++++++++++++++
6001 data bestaunt,bestaunen,0
6002 data zerfliesst,zerfliessen,1
6003 data rieselt,rieseln,1
6004 data erstarrt,erstarren,1
6005 data zerbricht,zerbrechen,2
6006 data zerschmettert,zerschmettern,2
6007 data trinkt,trinken,3
6008 data schlaeft,schlafen,1
6009 data wandert,wandern,1
6010 data fliegt,fliegen,1
6011 data kaempft,kaempfen,1
6012 data bekaempft,bekaempfen,0
6013 data zerfaellt,zerfallen,1
6014 data zerfrisst,zerfressen,0
6015 data lacht,lachen,1
6016 data winkt,winken,1
6017 data flucht,fluchen,1
6018 data toetet,toeten,2
6019 data entflammt,entflammen,1
6020 data stolpert,stolpern,1
6021 data kreischt,kreischen,1
6022 data knurrt,knurren,1
6023 data verweht,verwehen,1
6024 data bewegt,bewegen,0
6025 data durchbohrt,durchbohren,0
6026 data schreit,schreien,1
6027 data erduldet,erdulden,0
6028 data fluechtet,fluechten,1
6029 data erschlaegt,erschlagen,0
6030 data vergeht,vergehen,1
6031 data kreist,kreisen,1
6032 data glueht,gluehen,1
6033 data schwebt,schweben,1
6034 data steigt,steigen,1
6035 data schwankt,schwanken,1
6036 data sinkt,sinken,1
6037 data beklagt,beklagen,0
6038 data stuerzt,stuerzen,1
6039 data verliert,verlieren,2
6040 data beerdigt,beerdigen,0
6041 data verwundert,verwundern,0
6042 data fordert,fordern,2
6043 data bezwingt,bezwingen,0
6044 data fuehrt,fuehren,2
6045 data zweifelt,zweifeln,1
6046 data begehrt,begehren,0
6047 data verwandelt,verwandeln,0
6048 data erschafft,erschaffen,0
6049 data teilt,teilen,0
6050 data vermodert,vermodern,1
6051 data versinkt,versinken,1
6052 data beschwoert,beschwoeren,0
6053 data funkelt,funkeln,1
6054 data duftet,duften,1
6055 data gefriert,gefrieren,1
6056 data erfriert,erfrieren,1
6057 data verlaesst,verlassen,0
6058 data zersplittert,zersplittern,1
6059 data zersticht,zerstechen,0
6060 data zerreisst,zerreissen,0
6061 data verbrennt,verbrennen,2
6062 data opfert,opfern,2
6063 data zerfetzt,zerfetzen,0
6064 data prahlt,prahlen,1
6065 data beendet,beenden,0
6066 data erlangt,erlangen,0
6067 data erblickt,erblicken,0
6068 data verfolgt,verfolgen,0
6069 data seufzt,seufzen,1
6070 data spuert,spueren,0
6071 data vermeidet,vermeiden,0
6072 data singt,singen,1
6073 data besingt,besingen,0
6074 data beweint,beweinen,0
6075 data vergisst,vergessen,3
6076 data beruehrt,beruehren,0
6077 data erklingt,erklingen,1
6078 data verglueht,vergluehen,1
6079 data lebt,leben,1
6080 data sucht,suchen,0
6081 data verkuendet,verkuenden,0
6082 data erwacht,erwachen,1
6083 data glaenzt,glaenzen,1
6084 data huetet,hueten,0
6085 data betrachtet,betrachten,0
6086 data laechelt,laecheln,1
6087 data rotiert,rotieren,1
6088 data durchwandert,durchwandern,0
6089 data schimmert,schimmern,1
6090 data antwortet,antworten,1
Listing zu Lyric 3.0. Beachten Sie bitte die Eingabehinweise auf Seite 54.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →