TIMES ist eine differenzierte Variante von
MANY,
bei der du angibst,
wie oft Forth das erste Stück der Zeile ausführen soll.
0 VALUE #TIMES \ Zaehler
: TIMES ( n -- )
#TIMES 1+ TUCK ( #times+1 n #times+1 )
0 TO #TIMES \ Sicherheit über alles.
= STOP? OR \ n-tes Mal oder Eingriff von Stop?
IF DROP EXIT THEN \ Dann klar.
TO #TIMES 0 >IN ! ; \ Zaehler erhoehen
\ und noch 'ne Runde.
) BL [rtn]
) DUP EMIT 1+ 96 TIMES DROP [rtn] ?
Die Anzahl der Wiederholungen,
wie oft Forth die Zeile wieder von vorn beginnen soll,
gibst du dem Wort
TIMES über den Stack mit.
Der Value
#TIMES ist für den internen Gebrauch
durch
TIMES bestimmt.
Wenn du den trotzdem von vornherein auf
-100,
oder schlimmer noch, auf
100 setzt ...