De letter
R in een comando geeft aan dat het getal 'rechtsgericht
in een veld van
r posities' afgedrukt wordt.
) -1 33 .R [rtn]
) -1 32 U.R [rtn]
) -1. 31 D.R [rtn]
) -1. 30 DU.R [rtn]
Ook
DU.R wordt niet genoemd in de standaard.
2. Definities voor de acht punt-commando's
Het afdrukken van getallen gaat in twee fases:
- Het omzetten (Signed of Unsigned) van het bitpatroon op Stack in een String;
- Het afdrukken van de String, al dan niet 'rechtsgericht'.
Voor fase 1 maak ik twee woordjes:
: DU.STRING (ulo uhi -- adr len )
<# #S #> ;
: D.STRING ( xlo xhi -- adr len )
TUCK \ Onthoud het teken
DABS
<# #S
ROT SIGN \ Zet eventueel een minteken
\ voor de String
#> ;
<# ( ulo uhi -- ulo uhi ) "less number sign"
Reserveer een buffer voor het omzetten van het bitpatroon uhi,ulo naar een leesbare String.
Tijdens het omzetten kunnen
#S en
SIGN hun werk doen
en
#> sluit het omzetten af.
#> ( ulo uhi -- adr len ) "number sign greater"
Sluit het omzetten af. De String
adr,len is het resultaat van de omzetting.
#S ( ulo uhi -- 0 0 ) "number sign S"
Zet het dubbelgetal op Stack om in een string.
Gebruik #S alleen tussen
<# en
#>.
SIGN ( x -- )
Voeg, alleen als
x negatief is, vooraan de String in wording een minteken toe.
Gebruik SIGN alleen tussen
<# en
#>.