Currently, software characters are defined on a given grid in the units of the region currently selected. A user wishing to mix text and vectors will therefore need to scale the text to suit the size of his picture. The EXPAN routine could be used for this purpose, but would prevent its further use in expanding the whole picture. Also EXPAN uses a fixed origin, whereas each character needs to be scaled relative to its starting point.
The following ideas are similar to the GROATS font height and font width.
Two new display routines are required:
TEXPAN (EXT,EYT)
sets X, Y expansion factors for scaling, but does not cause any expansion to take place.
TEXSW (SWT)
switches scaling on or off (SWT=1.0,2.0).
Scaling is ignored unless a file has been entered. In this case, if scaling is switched on, any vectors drawn are expanded first by factors EXT,EYT about the current X,Y position on entry to that file (this point is already saved on the file stack). Only after scaling has occurred are EXPAN, ROTN and the region chain applied.
EXT,EYT and SWT will be saved in COMMON block SPRG2 and also saved and restored by the file stack system. Routines TEXT and VTEXT will call TEXSW(2.0) on entry and TEXSW(1.0) on exit.
Initially, EXT=EYT=SWT=1.0. Note that a user can use this scaling facility on any file.