202b
<< <> >>
 
Der Buchstabe R in einem Befehl gibt an, dass die Zahl 'rechtsbündig in einem Feld von r Stellen' ausgegeben wird.
) -1  33 .R [rtn]
) -1  32 U.R [rtn]
) -1. 31 D.R [rtn]
) -1. 30 DU.R [rtn]
Auch DU.R wird im ANS-Standard nicht genannt.

2. Definitionen für die acht Punkt-Befehle

Die Ausgabe von Zahlen geschieht in zwei Phasen:
  1. Die Umwandlung (Signed oder Unsigned) des Bitmusters auf dem Stack in einen String;
  2. Die Ausgabe des Strings, 'rechtsbündig' oder nicht.
Für Phase A bilde ich zwei Worte:
) : DU.STRING (ulo uhi -- adr len )
)   <# #S #> ;
)
) : D.STRING ( xlo xhi -- adr len )
)   TUCK     \ Vorzeichen merken
)   DABS
)   <# #S
)   ROT SIGN \ Eventuell ein Minuszeichen
)            \ vor den String setzen
)   #> ;
<# ( ulo uhi -- ulo uhi ) "less number sign"
Reserviere einen Puffer für die Umwandlung des Bitmusters uhi,ulo in einen lesbaren String. Während der Umwandlung können #S und SIGN ihre Arbeit tun, und #> schließt die Umwandlung ab.

#S ( ulo uhi -- 0 0 ) "number sign S"
Wandle die doppeltgenaue Zahl auf dem Stack in einen String um. (Nur zwischen <# und #> verwendbar.)

#> ( ulo uhi -- adr len ) "number sign greater"
Schließe die Umwandlung ab. Der String adr,len ist das Ergebnis der Umwandlung.

SIGN ( x -- )
Füge, nur falls x negativ ist, vorn an den im Entstehen begriffenen String ein Minuszeichen an. (Nur zwischen <# und #> verwendbar.)
>>