Soms wil je getallen afdrukken in een formaat dat de punt-commando's niet aankunnen.
Dat kun je dan altijd zelf programmeren met
de woordjes
<# # SIGN HOLD #S en
#> maar het is handig om
een flexibel woord te hebben dat zoiets voor elkaar krijgt.
Ik stel voor om dat woord
PICTURE te noemen.
PICTURE ( ulo uhi adr1 len1 -- adr2 len2 )
Het verwacht op Stack een dubbelgetal en bovendien adres en lengte van de String
die als een sjabloon of mal aangeeft hoe het dubbelgetal in een String omgezet moet wordt.
Een paar voorbeelden. In de eerste kolom staan de sjabloon-strings,
in kolom twee en drie het effekt ervan bij toepassing op de dubbelgetallen
1234.5678 en 9.5
sjabloon-string 1234.5678 9.5
--------------- --------- ---
S" #####" 45678 00095
S" F#.#.#.#" F5.6.7.8 F0.0.9.5
S" ##/##/##" 34/56/78 00/00/95
S" ? # #" 123456 7 8 0 9 5
S" -#+" -8+ -5+
S" ##,# km" 67,8 km 09,5 km
S" DM ?.##" DM 123456.78 DM 0.95
De speciale tekens in de mal zijn het hekje en het vraagteken.
- Het hekje # zet telkens één cijfer in de String;
- Het vraagteken plaatst de resterende cijfers of een nul in de String.
(Vergeet niet dat de String van achter naar voren opgebouwd wordt!)
- Andere karakters van de mal worden letterlijk overgenomen.
Let op: het om te zetten getal wordt opgevat als Unsigned.