Xy4 Customization Guide
Xy4 Customization Guide
C:\XY4
Customization Guide
Copyright 1993 by The Technology Group
First Edition (Revised), March 1993
Document Control No. 003506-02
Preface
Custom Commands
1 Creating a Custom Command Set
2 Using the Custom Command Set
Defaults
6 Default File
8 Default Command
10 Default Settings
43 Display Mode Colors
49 Customization Tables
Keyboard File
56 Modifying Keyboard Files
64 Function Calls
Memory
82 Load Customization Files
84 Select Print Destination
86 Load Cartridge Fonts
Printer Files
140 Basics of the Printer File
147 Printer File Heading
148 Printer Control Table
153 Printer Control Commands
155 Font Matching
156 Screen Font Assignments
158 Printer Font Assignments
160 Default Settings
162 Printer Settings
165 Character Mode Table
167 Graphics Settings
171 Terminator Strings
173 Vertical Spacing
174 Microjustification
177 Attribute Tables
178 Font Tables
183 String Operators
185 Width Tables
187 Substitution Tables
Sort File
190 Creating the Sort File
191 Sorting to a Sequence of Letters
191 Loading a Sort File
Startup File
194 Running the STARTUP.INT File
194 Modifying STARTUP.INT
User Programming
199 Procedures for User Programming
202 Function Calls
203 Macros
204 XPL Commands
217 XPL Operators and Functions
219 Examples
iv
Table of Contents
Variables
224 Value of Variable
225 VA Settings
Appendixes
A-l Advanced Keyboard Functions
B-l Terminate and Stay Resident Programs
C-l Foreign Language Support
D-l Reserved XyWrite Elements
E-l XyWrite Character Set
NOTES
vi
Preface
The Customization Guide describes XyWrite functions that are beyond the
scope of the Command Reference Guide. It is intended for technical
coordinators, office information technology managers, LAN
administrators, and others with technical expertise.
vii
Preface (con'td)
Purpose XyWrite's command override feature lets you create your own set of
commands. You can redefine the functions associated with existing
immediate commands (such as CALL and DIR) and function calls (such as
CL and YD), or you can create new command names.
2. On the first line, type the label that identifies this file as a command set.
Be sure to type it in uppercase.
Type: ;U2;
NOTE #2 Function Calls. You should use caution when redefining function calls or
you may not get the results you expect. We recommend that you avoid
redefining the function calls BC, BX, Q2, and XC.
NOTE #3 VA Command. You can check the status of command override with
VASOO. A value of 0 means it is off; a value of 1 means it is on.
2
(confd) Custom Commands
NOTE #4 Command Line. If you need the contents of the command line, your XPL
program should include a command to save it before you execute any
other BX or BC functions. For example, to save the contents of the
command line to macro 01, insert the following instructions at the
beginning of the XPL code that defines your custom command:
«sx01,«va$cl»»
EXAMPLE {{S.GetArg}}
a«sv01 AA» « XS40,01,02,03,04» « SX10.«VA$CL» » «XS10,04,05.06,07»
«SX40,« IS07»» 8
<-
{{5,AAopen ,AAo}}
B«SX40,«VA$FR»»JM (2.GetArg) BX oxQ2 BX call«PV40»Q2 BX ooQ2 B
<■
{(5,AAwrite,AAw}}
8«SX40,«VA$FR»»JM (2.GetArg) BX oxQ2 BX save«PV40»Q2 BX ooQ2 8
This example defines two new commands: Open (abbreviated "O") and
Write (abbreviated "W"). In both commands, VA$FR captures the name
of the command override routine that was accessed (AAopen, AAo,
AAwrite, or AAw) and stores it to macro 40.
The program then jumps to a routine called CetArg, which captures any
argument that was typed after the custom command, including any
switches, such as /NV. Notice that the JM function call uses "2." at the
beginning of the jump. The "2." indicates that "GetArg" is in the U2
customization file.
GetArg parses the AA from the command, storing the result in macro 04.
It then uses VA$CL to capture the text from the entire command line in
macro 10. Next, macro 04 is parsed out of macro 10, and the results are
saved in macro 07. For example, if you type the command:
w/nv newfile.doc
the string "/nv newfile.doc" is saved in macro 07. Finally, macro 07 is
saved back to macro 40.
3
NOTES
Defaults
Intro When XyWrite first starts up, it provides you with its own set of defaults.
You can use the DEFAULT and DF commands to change the values of
these settings, either temporarily or permanently. Permanent changes are
stored in a customization file called SETT1NGS.DFL, which is loaded
every time you start XyWrite.
This section also describes the MD command, which lets you customize
the display colors of text, and the SE, PP and CS tables, which specify the
separators, port/printer file combinations and counter strings XyWrite
uses.
6 Default File
8 Default Command DEFAULT, DF
10 Default Settings
43 Display Mode Colors MD
49 Customization Tables SE, PP, CS
5
Default File
PURPOSE The default file, SETTINGS.DFL, contains the commands and tables that
override XyWrite's built-in values for anything from page layout settings
to screen colors. You can add to SETTINGS.DFL either manually or via the
menu.
The information in SETTINGS.DFL can be grouped into three categories:
• Settings that can be defined with the DF (Default) command
• Display mode colors
• Customization tables, e.g., PP (Pick Printer) table
6
(cont'd) Default File
Note m Determining the Current Value. If you want to know what the current
value of a default setting is, use the VA (Value) command, which is
described later in this guide.
NOTE #3 Duplicate Settings. If you inadvertently define the same setting twice,
the second setting overrides the first one.
Note #5 Unit of Measure. When you issue a command from the command line,
XyWrite automatically appends the default unit of measure if you don't
supply one. When you enter a DF command in a default file, you must
include the appropriate unit of measure. Otherwise, XyWrite will assume
horizontal values to be in tenths of an inch and vertical values to be in
sixths of an inch.
Default Command DF, DEFAULT
PURPOSE The DEFAULT and DF commands change the value of XyWrite default
settings. Both commands can be used to change any default setting, and
both affect all files — not only newly created files.
There are several differences between the two commands:
• The DEFAULT command is issued from the command line. The DF
command is stored in SETTINGS.DFL, a printer file, or other default
file. The stored settings are executed when you load the file that
contains them.
• The DEFAULT command adds the default unit of measure to format
settings. The DF command requires you to include the unit of
measure. For example, the following commands are equivalent:
[Fsjdefault rm-70
df rm=7IN0
• The DEFAULT command ignores upper- and lowercase and spaces
within a default setting unless you include the /NV switch. The DF
command honors both case and spaces without the switch. The
following commands are equivalent:
[F5]default/nv mg^Happy Birthdav!0
df mg=Happy Birthday!0
1. Call STARTUP.INT.
2. Move the cursor to the point where you want to enter the new default.
3. Enter the BC function call.
Press: |CVI||Aft|IShiftIB
4. Enter the DEFAULT command. For example:
Type: default nd=e,f,z
5. Store STARTUP.INT
Result: The next time you start XyWrite or run STARTUP.INT, the default
command that establishes network drives will be automatically executed.
(Refer to "Startup File" for more information about modifying
STARTUP.INT.)
Note #1 Defaults in the Printer File. The procedure for putting a default setting in
a printer file is identical to the procedure for modifying SETTINGS.DFL.
9
Default Settings
PURPOSE Default settings let you change the value of XyWrite settings. Default
settings can be divided into four categories:
• Format Settings — Set the initial format conditions at the start of every
file. For example, you might use it to set the right margin at 7 inches
and the type size at 11 points.
• System Settings — Set controls specific to your system, such as
adjusting the level of audible signals and establishing error prompts.
• Display Settings — Set controls specific to your monitor. Also sets
your preferences for colors and display styles. For a list of available
colors, refer to “Color Settings" later in this section.
• Printer Settings — Set controls specific to your printer. (Some printer
settings are defined in printer files, not the default file.)
The following table lists the XyWrite default settings, along with the initial
default value. Note that the initial value of some of the system, printer,
and display defaults varies, depending on the setup you have. For
example, the SI (Screen Resolution) default is different for EGA and VGA.
XyWrite establishes the values that are appropriate for your setup based
on the choices you make during installation.
10
(conrd) Default Settings
System Settings
df 1a End of File 0
df ah Allow Hyphenation 0
df aop Autosave Path C:\XY4\DOCS
df aot Autosave Time 0,0
df az Numbering Style 0
df bk Backup 0
df cb Correction Beep 512,4096
df ck Spelling Checker 0
df cv Change Verification 0
df d1 Delete Stack 30,3
df db Debugging Mode 0
df dh Discretionary Hyphen -
dtdl Directory Settings 1,6,0
df dp Decimal Point
df dr Default Drive C:\XY4\
df eb Error Beep 1792,36864
df eh Error Help 0
df ep Error Prompt 1,1,1,1.0,0,1
df 03 Enable Scoping 0
df eu European Punctuation
df fu Footnote Unit 3.5
11
Default Settings (cont'd)
12
(edit'd) Default Settings
Display Settings
df bw Black/White 1
df bx Window Border Colors 15.7.7...7,15,15,7,240
df cr Cursor Type 0.199.102,4
df dd Define Display 119
df de Soft carriage return
df dt Display Type 1
df eg EGA Control 0
df ga Graphics Adapter MD
df it Insert Cursor Type 519,1543,8193,264.1543.8193,0.1
df IO Action Bar Color 7.12.16,7
df 11 Command Line Color 15,112,112,7
df 12 Prompt Line Color 112,7,15,7
df 13 Ruler Line Color 112,15.15,7
df 14 Pull-Down Menus Color 15,112,112,7,112
df Ic Line End Character <-
df mr Metric Ruler 10
df mw Maximize Windows 1
df od Offset Display 0
df p. Truncated Path Name 14
df pk Page Break Color 23
df px Page Break Character 196
df rd Redline Data 1,14,9,0,249
df rl Ruler Markers
df si Screen Resolution 96,72
df si Screen Length 25
df st Show Tabs 1
13
Default Settings (confd)
Printer Settings
df b< Backspace 1
df ef Eject Last Page 1
df ft Form Feed 1
df Im Image Mode Printing 0
df ne No Errors from Printer 0
df *q Sequential Pages 0
df tb Tab Character 0
df tf Top Margin 0
df w» Whole Space Justification 0
14
(cont'd) Default Settings
Detail This section contains a description of most of the default settings listed
above. These descriptions are not categorized, but instead are listed in
alphabetical order. The Format settings are described in the Command
Reference Guide, and the information is not repeated here.
NOTE #2 Color Settings. Many of the default settings specify display colors. For a
list of choices, refer to the color table in "Display Mode Colors" later in
this section. You can also display the available colors by selecting "Color
Choices" from the Help index.
DF 1A Ignore End of File Marker— Enables XyWrite to read past the end of file
marker (1A). (The initial default is 0.)
df 1A=0 Causes XyWrite to honor the end of file marker.
df 1 A=1 Causes XyWrite to ignore the end of file marker. You would use
this if you are including, merging or appending a file from another source
that has a 1A character in it. (Do not use this setting if you have
Document Info turned on.)
DF AOP Autosave Path — Specifies the path for the Autosave files. (The initial
default is the directory you establish as your working XyWrite directory.)
df aop=d: \ path Format of AOP setting, where d: is the drive letter and path
is the directory where you want XyWrite to put Autosave files. If you just
specify a drive, XyWrite assumes the root directory. iq
df aop=c:\xy4 Example of AOP setting.
DF AOT Autosave Timer — Specifies the amount of time you want to elapse
between autosaves. (The initial default is 0,0.) Vo ’< C V -C—
df aot=?n,n Format of the AOT setting, where nt is the minimum length of
time (0 to 55 minutes) and n (optional) is the maximum length of time (0 to
60 minutes) XyWrite should wait before saving the file. If you do not
specify a maximum time, the default is the minimum time plus 5 minutes.
XyWrite starts counting from the time you make an edit. After the
IS
I tcontd)
minimum time has passed, XyWrite checks to see if you are typing. If you
aren't, XyWrite saves the current file in AUTOSAVn.TMP (where n is the
current window number). If you are typing, XyWrite waits until you
pause or until the maximum amount of time has elapsed before saving.
df aot=10,12 Example of AOT setting.
DF AZ Numbering Style — Changes the sequence style of counters when you are
using upper- and lowercase letters and have more than 26 items for that
counter. (The initial default is 0.)
df az=0 Restarts the letter sequence at the 27th entry as AA, BB, CC, etc.
df az=1 Restarts the letter sequence at the 27th entry as AA, AB, AC, etc.
DF BK Backup of Files —Turns the backup of files on or off. (The initial default
isO.)
df bk=O Does not keep backup copies. (This saves room on your disk.)
df bk=l Keeps backup copies. With this setting, XyWrite makes a backup
at every SAVE. Whenever the SAVE command is executed, XyWrite
renames the previously saved version to filename.BA.K, overwriting any
previous backup, then saves the displayed version. Note that backup does
not happen if you execute SAVE with an argument — such as to a drive
(SAVE A:) or filename (SAVE TEST).
DF BW Black and White — Specifies a fast screen or a clean screen for systems with
CGAs (Color Graphic Adapters). (The initial default is 1.)
df bw=0 Creates a clean screen, with no flicker, but is slower.
Recommended for systems with CGAs.
df bw=1 Causes XyWrite to update the display faster. This setting
provides improved speed when scrolling text, switching between
windows, and running programs. The cost is a noticeable flicker each
time the screen is updated.
DF CR Cursor Type — Changes the text cursor to be non-blinking and defines the
color of the text cursor or mouse pointer. (The initial default is
0,199,102,4.)
df cr=a,b,c,d Format of the CR setting, where a is the number of the display
mode for the cursor normally, when you are editing text; b is the number
of the display mode for the cursor when a dialog box is displayed
(XyWrite uses this value only if the first value is 0); c is the number of the
display mode for the mouse pointer in the text; and d is a number (0-5)
that specifies the width of the cursor in graphic view (use 0 if you want the
I
Default Settings (cont'd)
cursor to be the width of the character under it; use 1 to make the cursor 1
pixel wide; 2 to make the cursor 2 pixels wide, etc.).
df cr=0,112,88,0 Example of the CR setting.
DF Dl Delete Stack - Defines the number of entries XyWrite keeps in the delete
stack and the minimum number of characters it recognizes as a delete
unit. The initial default is 30,3.
df d1 =e,d Format of the Dl setring, where e is the number of entries in the
delete stack and d is the minimum number of characters recognized as a
delete unit.
df d1=24,7 Example of the Dl setting.
DF DE Soft Carriage Return — Defines the character you want to use as the soft
carriage return. (The default characters are V, -4.)
df de=m,n Format of DE setting, where m is the character you assigned to
a key and it is the character you want to display as the soft carriage return,
df de=<,< Example of DE setting.
19
Default Settings (cont'd)
DF EB Error Beep — Defines the tone and duration of the beep you hear
whenever XyWrite detects an error. The speed of the hardware will affect
the duration of the beep, so if you have a faster machine you should
increase the duration setting accordingly. We recommend multiplying the
duration by 4 on 386 machines. (The initial setting is 1792,36864.)
df eb=t,d Format of the EB setting where t defines the tone of the beep
and d defines the duration of the beep. Both are numbers between 0 and
65534.
df eb=768,6144 Example of EB setting.
DF EH Display Error Help Frame — Enables an error screen to appear (from the
help file) whenever an error occurs. (The initial default is 0.)
df eh=1 The error/help frames are displayed whenever an error occurs.
This feature is useful when you are learning, because you can display
information about how to continue. However, it can slow performance
considerably.
df eh=0 The error/help frames are disabled.
DF EJ Eject Last Page — Enables XyWrite to eject the very last page of a
document. For more information on this setting, refer to the section on
"Printer Files" elsewhere in this manual.
21
Default Settings (cont'd)
d controls the message "File modified, abort anyway? (Y/N)" when you
issue the ABORT command after you have modified the displayed file.
e controls the message "OK to save? (Y/N)" when you use [ctii]S to save
from the keyboard or when you use the function call SA.
f controls the message "Delete command marker? (Y/N)" when you
attempt to delete a formatting marker.
g controls the message "Screen/printer font mismatch" when you are in
graphic view and the screen representation of the fonts is different from
what will print.
df ep=O This setting turns off all prompts.
22
(cont'd) Default Settings
DF FZ File Date — Modifies the way the date is displayed in a directory. (The
initial default is m-d-yy, for month, day, year.) The format choices are the
same as those available for the DA command. For more information on
the different settings, refer to the DZ setting above.
DF GA Graphics Adapter — Defines the type of graphics adapter you are using,
df ga=md Indicates a monochrome adapter is in use; there is no graphics
support.
df ga=cg Indicates a CG A adapter is in use. A CGA adapter normally
displays monochrome graphics with a screen resolution of 640x200.
df ga=hg Indicates a Hercules Graphics adapter is in use. A Hercules
Graphics adapter displays monochrome graphics with a screen resolution
of 720x348.
dfga=eg Indicates an EGA adapter is in use. EGA supports color or
monochrome graphics with a screen resolution of 640x350.
dfga=vg Indicates a VGA adapter is in use. VGA supports color or
monochrome graphics with a screen resolution of 640x480.
23
Default Settings (cont'd)
DF GP Graphics Path — Defines the location of the graphic files. XyWrite uses
this information to create the list box in the Import Graphic dialog box.
(The initial default is C:\XY4\P1CTURES.)
df gp=d:\pnth Format of the GP setting, where d: is the drive that contains
graphic files and \path is the subdirectory.
df gp=d:\xy4\plcture Example of the GP setting.
DF HT Header Title — Specifies the titles of the Document Info directory display.
The default setting is: Filename Author Saved Comment.
df ht=fl t2... Format of the HT setting, where tl t2... are the titles,
spaced as you want them to appear in the directory.
df ht=File Author Rev Creation Date Comments Example of HT
setting.
DF IT Insert Cursor Type — Defines cursor values, which are passed to the
: BIOS interrupt routine. This setting is required only on certain types of
; hardware, and is established during installation.
df lt=a,bx,d,e,f,g,h Format of the IT setting, where:
a-c define cursor values for the current EGA mode (25-line or 43-line).
! Within these three arguments, a defines the cursor for insert mode; b
i defines the cursor for overstrike mode; and c, which is always 8193,
defines the cursor off mode.
d-f define the cursor values for the alternate EGA mode, in the same order
described above.
• g defines the cursor value for DOS.
h is always 1, which is the value used when EGA emulation is off.
The following examples are based on 25-line EGA mode. If you are in 43-
line EGA mode, reverse the order of the current and alternate values.
df lt=519,1543,8193,264,1792,8193,1543,1 Sets cursor values fora color
monitor with an EGA card.
df lt=1037,3085,8193,264,1543,8193,0,1 Sets cursor values for a Hewlett
Packard Vectra RS/20 with an HP VGA card.
df lt=1037,1543,8193,264,1543,8193,1037,1 Sets cursor values for an IBM
XT/286 with an IBM EGA card.
25
DF IU Information Menu — Tells XyWrite to store a file after the Document Info
dialog box has been completed. (The initial default is 1.)
df lu=O Return to the displayed document after clearing the Document
Info dialog box.
df lu=1 Store the displayed file after completing the Document Info dialog
box.
DF JB Job Begin — Sends the specified printer codes to the printer at the
beginning of every document. The printer codes are defined in the PC
(Printer Control) table in the printer file. Refer to "Printer Files" for more
information about PC tables.
df Jb=#,#,#... Format of the JB setting, where # is the number of a printer
code in the PC table.
df ]b=170 Example of the JB setting.
DF KS Keyboard Speed — Adjusts the repeat rate of the keyboard. Repeat rate
refers to the length of time a key must be pressed before it starts to repeat
and the speed with which it repeats. (The initial default is 0,1.)
df ks=s,/ Format of the KS setting, where s is a number between 0 and 31
that indicates the repeat rate (0 is the fastest; 31 is the slowest); and I is a
number between 0 and 3 that indicates the lag time (0 is the shortest; 3 is
the longest).
dfks=10,1 Example of the KS setting.
DF LO Action Bar Color Control — Specifies the colors of the various items in the
action bar.
df lO=iJi,a,b Format of the L0 setting, where i sets the color for items in the
action bar; h sets the color for highlighted action bar items; a sets the color
for the accelerator character in each action bar item; and b sets the
background color of the action bar.
df 10=117,125,116,117 Example of the L0 setting.
26
(cont'd) Default Settings
DF L2 Status Line Color Control —Specifies the colors of messages and other
information displayed on the status line.
df I2=l,m,b,o,s Format of the L2 setting, where I sets the color for field
labels and indicators; m sets the color for the standard messages and
prompts that XyWrite displays; b sets the color for the background and the
contents of fields, such as current filename, page number, etc.; o is the
color for messages that require a user response; and s sets the color for
warning messages.
df 12=93,87,95,93,84 Example of the L2 setting.
DF L3 Ruler Line Color Control — Specifies the colors of various items on the
ruler line.
df I3=d,c,»i,f Format of the L3 setting, where d sets the color for the dots
and numbers in the ruler line; c sets the color of the cursor location on the
ruler line; m sets the color of the tab indicators in the rider line; and t sets
the color of the dot or marker that indicates the active column in a table.
df 13=93,125,86,205 Example of the L3 setting.
DF LH Low-High — Specifies the size and baseline for superscript and subscript
characters in the Bitstream Speedo fonts. This setting has no effect on
printer fonts (i.e., built-in fonts, soft fonts, or cartridge fonts).
df Ih=s,w,d Format of the LH setting, where s is the percentage of text size
to be used for subscript and superscript characters and u and d determine
the baseline for superscript and subscript characters, respectively. The u
and d values are percentages of s that define how much you want to move
the baseline up or down.
df lh=75,45,25 Example of the LH setting. For this example, if the text is
set in 12-point type, then the superscript and subscript characters will be
in 9-point type (75% of 12-point). Superscript text will be set 4.09 points
(45% of 9 point) up from the baseline and subscript text will be set 2.25
points (25% of 9 point) below the baseline.
DF MA Find Match —Defines the number of characters that XyWrite uses to find
a match when comparing two files. The number may not be less than 2.
(The initial default is 40.)
df ma=»i Format of the MA setting, where n is the number of characters to
base a match on.
df ma=10 Example of MA setting.
DF MF Mode for Forms — Defines the mode you want to use for creating the
blank fill-in areas in forms. (The initial default is NM.)
df mf=m Format of the MF setting, where m is the mode you want to use
for the blank fill-in areas in forms.
df mf=ul Example of the MF setting.
Notes:
• When specifying a default message from the command line, you must
use the /NV switch; otherwise XyWrite will not recognize any spaces
you type in the message prompt.
• When a default message is displayed, you cannot see the descriptions
of the command markers that normally appear on the status line when
you put the cursor on a marker.
DF MR Metric Ruler — Specifies the spacing of the ruler markers. (The initial
default is 10.)
df mr=10 Establishes lOths of an inch as the spacing of the ruler markers,
df mr=4 Establishes centimeters as the spacing of the ruler markers.
DF MT Military Time — Modifies the way time is displayed by the SEC, TM, and
NOW commands. (The initial default is 0.)
df mt=0 Displays time in AM/PM format (for example, 10:30).
df mt=1 Displays time in 24-hour format (for example, 22:30).
DF MW Maximize Windows — Specifies how window border and scroll bars are
displayed. (The initial default is 1.)
df mw=0 Uses the maximum screen size for all windows, which means
there is no border (or scroll bar) displayed.
df mw=1 Displays a one-unit-wide border around all windows; when a
file is displayed, the right and bottom borders are scroll bars. When
MW=1, the usable text area is 78 by 20 (rather than 80 by 22).
df mw=2 Staggers the borders of windows, so each window you open is
displayed one unit in and 1 unit down from the previous window. As
with MW=1, the right and bottom borders are scroll bars when a file is
displayed. The usable text area varies, depending on the order in which
the window was opened.
df mw=4 Remembers the size of each window, and uses that size the next
time you open the window.
You can add two or more values to apply more than one effect to
windows. For example, DF MW=5 displays a one-unit-wide border
around all windows, and also remembers the size of windows.
29
Default Settings (cont'd)
DF ND Network Drives — Specifies the drives that are shared by network users.
XyWrite applies file locking to these drives, so that the same file cannot be
opened for editing by more than one person at a time.
df nd=dl,d2,d3,d4,d5.. .d26 Format of the ND setting.
df nd=f,x Example of the ND setting.
DF NL Network Login — Defines the location of login files. The login location is
established for both stand-alone and LAN environments.
df nl=d: \path Format of the NL setting, where d: is the drive and \path \ is
the subdirectory that contains the login files.
df nl=x:\)ogln Example of the NL setting.
DF OB Overstrike Beep — Defines the tone and duration of the beep you hear
whenever you overstrike a character. The speed of the hardware will affect
the duration of the beep so if you have a faster machine you should
increase the duration setting accordingly. We recommend multiplying the
duration by 4 on 386 machines. The initial setting is 0,0 which turns the
overstrike beep off.
df ob=t,d Format of the OB setting, where f defines the tone of the beep
and d defines the duration of the beep. Both are numbers between 0 and
65534.
df ob=756,10000 Example of OB setting.
DF OL Outline Fonts — Specifies the location of the outline fonts. (The initial
default is C:\BTFONTS\.)
df o\=d:\palh\ Format of the OL setting, where d: is the drive and \path\
is the subdirectory that contains the outline fonts. (Note that the closing
backslash is required.)
df ol=d:\btfonts\ Example of the OL setting.
31
Default Settings (cont'd)
DF P. Truncated Path Name — Adjusts the length of the path name XyWrite
displays on the status line, from 1 to 14 characters. (The initial default is
14.)
df p.=» Format of the P. setting, where n is the number of characters of the
current directory name that you want XyWrite to display on the status
line.
df p.=5 Example of the P. setting.
DF PD Pad Spaces — Works in conjunction with Unear cursor keys, which let you
move the cursor off to the right of a line of text and begin to enter new
text. PD (Pad Spaces) determines whether spaces are added to fill the gap
to the left of the cursor. To illustrate, imagine the following: You move
the cursor to the right (enabled by Linear Right in the keyboard file), past
the end of a Une of text (past the line-end arrow). You then begin typing.
If PD=1, the text is inserted exactly where the cursor is located, and the
gap between the line-end arrow and the new text is filled in with spaces.
If PD=0, the cursor jumps left to the line-end arrow and the text is inserted
adjacent to the existing text. (The initial default is 0.)
df pd=0 Text will be inserted at the left of the line-end arrow.
df pd=1 Spaces will be inserted to fill the gap between line-end arrow and
cursor position.
DF PK Page Break Color — Specifies the color that is used for page breaks. (The
initial default is 7.)
df pk=n Format of the PK setting, where n is the number of the display
mode for the page break.
df pk=9 Example of the PK setting.
DF PX Page Break Character — Specifies the character that is displayed for page
breaks. (The initial default is 196, which produces —.)
df px=n Format of the PX setting, where n is the number of the XyWrite
character you want displayed for page breaks,
df px=95 Example of the PX setting.
DF R2 Mouse Double Click — Sets the time interval for a double click. The time
is measured in 1/20 of a second. (The initial default is 8.)
df r2=« Format of the R2 setting, where n is the time interval.
df r2=5 Example of the R2 setting.
32
(cont'd) Default Settings
DF RD Redline Data — Defines the display of the redline tags that identify who
made an edit and when it was made. (The initial default is 1,14,9,0,249.)
df rd=o,n,«i,p,c Format of the RD setting, where o turns the data capture on
i or off (0 for off or 1 for on); h is the number of captured characters
displayed in the text area; m is the display mode number for the captured
r
information; p turns a prompt line display of the captured data on and off
(0 for off, 1 for on); and c is the character that separates the captured data
! from the text.
t
’t
df rd=1,9,7,1,249 Example of the RD setting.
t
4
l
I
DF RI Mouse Repetition Interval — Adjusts the rate the document scrolls when
i
using the mouse in scroll bars and when selecting text with the drag
method. (The initial default is 5.)
df ri=s Format of the RI setting, where s is the scroll speed, measured in
1/20 of a second.
df rl=7 Example of the RI setting.
i DF RL Ruler Markers — Specifies the characters shown on the third line of the
i display — the ruler. (The initial default ► H»-).
df r\-abcdefghijk Format of the RL setting, where a is the Tab marker for
Flush Left Tabs (TS 1); b is the Tab marker for Flush Right Tabs (TS 1R); c
is the Tab marker for Flush Center Tabs (TS 1C); d is the Tab marker for
Decimal Tabs (TS ID); e is the marker for the first Indent Paragraph value;
/ is the marker for the second Indent Paragraph value; and g is the marker
for the position of the cursor column (g cannot be changed — it is always
character 176); h is the left margin marker (established by the LM
i command); i is the right margin marker (established by the RM
command); j is the column marker for every 5th column; and k is the
standard column marker. You can substitute any characters for a ruler
marker (except for g). If you choose to use a ruler symbol other than the
original XyWrite setting, be sure to follow this exact order to replace the
correct one.
df rl=.lrcd Example of RL setting.
33
Default Settings (cont'd)
I
DF RN Round Off Numbers — Specifies the way XyWrite handles fractional line
numbers in the header. (The initial default is 0.)
df rn=0 Causes XyWrite to display the actual line number values when
you are in draft view with page breaks on.
df rn=1 Causes XyWrite to round off line number values in the header to
the nearest half (for example, 1-5.86 would become 1-6, while 1-5.3 would
become 1-5.5).
DF RY Ratio for Y Direction — Sets the mouse-to-pixel ratio for vertical mouse
movement. (The initial default is 15.)
df ry=n Format of the RY setting, where n is a number from 1 to 32767. The
higher the number, the less the cursor moves.
df ry=25 Example of the RY setting.
34
(cont'd) Default Settings
Note: When assigning a text macro from the command line, you must use
the /NV switch; otherwise, XyWrite will not recognize any spaces you
type in the message prompt.
DF SK Sort Key — Defines the sorting rules, used by the SORT command,
including the number of characters used in the sort. (The initial default is
1,80.)
df sk=»l,n2 Format of the SK setting, where nl is one, or a combination of,
the following numbers:
0 Sorts numbers by first digit (01,10,2, 3)
1 Sorts numbers in decimal order (01, 2, 3,10)
2 Sorts entries in reverse order (Z to A, 9 to 0)
4 Deletes duplicate entries.
n2 is the number of characters to be used for sorting.
dfsk=1,4O Example of the SK setting.
DF SM Show Menus — Defines the way the action bar behaves. (The initial
default is 1.)
df sm=0 Causes the action bar to disappear after you make a choice from a
pull-down menu. The action bar will not reappear until you press [Fiol.
df sm=1 Causes the action bar to remain at all times unless you press [fs] to
access the command line. The action bar will reappear when you press
[go].
35
Default Settings (cont'd)
DF SO Sort Setting — Defines the field or section of the field that you want
XyWrite to use for sorting a data file with the SORTD command,
DF ST Show Tab — Specifies how tabs are displayed on the screen. (The initial
default is 1.)
df st=O Causes the tabs to appear on the screen as spaces.
df st=1 Causes the tab character (0) to appear on the screen in expanded
view; tabs appear as spaces in all other views.
df st=2 Causes the tabs to appear as a right arrow (->) in draft views and as
a space in expanded and graphic view.
df st=3 Causes the tabs to appear as 0 in expanded view and ■* in draft
view.
36
(cont'd) Default Settings
DF SW Screen Width — Defines how many "columns" (or characters) you want
to display on a monitor that has a wide screen mode (one that lets you
display up to 132 columns on the screen). If your monitor supports a wide
screen mode, you must set it up in DOS before starting XyWrite. (Refer to
the documentation supplied with your computer for information on how
to do this.) Once in XyWrite, set SW to match the DOS setting.
df sw=n Format of the SW setting, where n is the number of columns wide
you want your screen to be. This number must match the DOS setting.
(Standard columns are 40,80,120, and 132.)
df sw=132 Example of the SW setting.
DF TB Tab Character Control — Defines how tabs will print: either as a tab
character or as spaces. (The initial default is 0.)
df tb=O Causes XyWrite to convert every tab to equivalent spaces on
output to the printer.
df tb=1 Causes XyWrite to send tabs in the file to the printer as the tab
character (0), ASCII 9. This setting is valuable for printing to disk
(PRINTF) when you want to retain tab characters. Use this setting when
you want to produce a file (with PRINTF) that keeps its tabs (rather than
converts them to spaces).
DF TF Ignore Top Margin — Defines how XyWrite interprets the top margin
(TP) embedded command. (The initial default is 0.)
df tf=O Causes XyWrite to honor the top margin (TP) command.
df tf=1 Causes XyWrite to ignore the top margin (TP) command. You
would use this if the top margin has been set by hand and the file contains
a TP command that you want to override.
37
Default Settings (cont'd)
DF UL Underline Setting — Specifies how tabs and spaces are underlined within
text that is underlined with MD UL. (The initial default is 1.)
df ul=O Underline everything.
df ul=1 Underline everything but tabs.
df ul=2 Underline everything but tabs and spaces.
df ul=3 Underline only letters and numbers.
DF UM Unhide Modes — Turns the display of mode markers on and off. (The
initial default is 0.)
df um=0 Does not display markers for mode commands.
df um=1 Displays markers for mode commands.
DF UV Unit Vertical — Defines the default vertical unit of measure for input and
display. (The initial default is IN,IN.)
df uv=entryunit,displayunit Format of the UV setting, where entryunit is the
size of one default vertical entry unit (the unit of measure you use to enter
arguments) and displayunit is the size of one default vertical display unit
(the unit of measure you want XyWrite to display). Valid units are in
(inches), di (tenths of an inch), pi (picas), pt (points), cm (centimeters), mm
(millimeters), dd (didots), d (aceros), and li (lines). We recommend that
you use the same value for entryunit and displayunit.
df uv=li,ll Example of the UV setting.
DF VF Variable Forms — Enables you to extend a form field into more than one
line. (The initial default is 0.)
df vf=O Does not extend the form field. Pressing 0 moves the cursor to the
next field.
df vf=1 Extends the form field so you can enter multiple lines.
38
(cont'd) Default Settings
DF WA Error Message Wait Time — Defines how long an error message will
display before it is replaced by another message. (The initial default is 18.)
df wa=f Format of the WA setting, where t is the minimum length of time
the message will display. A value of 18 is 1 second; 36 is 2 seconds, etc.
Note: WA also affects the speed at which programs execute when DB is
active.
DF WB Window Border Characters — Defines the characters that are used for the
borders of the windows.
df wb=abcdefghijklmn Format of the WB setting, where a is the character in
the upper left comer; b is the character in the upper right comer; c is the
character on the horizontal sides; d is the character in lower left comer, e is
the character in the lower right comer;/is the character on the vertical
sides; g and h are the up and down indicators on the vertical scroll bars; i
and j are the right and left indicators on the horizontal scroll bars; k and in
are the characters in the vertical and horizontal scroll bars, respectively;
and 1 and n are the characters in the vertical and horizontal slider box.
df Wb=r Example of the WB setting.
DF WF Wrap to Fit - Specifies the way line endings are displayed in draft view and
expanded view. This setting has no effect on formatted or graphic view.
The initial default is 1.
df wf=0 In draft view, displays line endings according to the format you
have established.
df wf=1 In draft view and in expanded view, displays text within the
current window borders. Hyphenation is not applied. You do not have to
scroll horizontally to view text.
DF WO Word Overstrike Editing — Defines the overstrike typing mode for text
entry. (The initial default is 0.)
df wo=0 Causes text entered at the cursor to overwrite text characters and
word separators except carriage returns.
df wo=1 Causes text entered at the cursor to overwrite all text and word
separators except the space, tab, and carriage return characters.
df wo=2 Causes text entered at the cursor to overwrite text characters but
not word separators.
39
Default Settings (cont'd)
DF XF Extract Fields — Defines the fields that you want the SORTD command to
extract from the data file and output to the sorted file.
df xf=fl,f2... Format of the XF setting, whereare the fields you want
to extract.
df xf=f1 ,f3 Example of the XF setting.
41
Default Settings (cont'd)
DF ZM Zoom - Enlarges or reduces graphic view by the amount you specify. The
default is 75, which means that the full width of a standard 8.5-inch page
is displayed in graphic view.
df zm=w Format of the ZM setting, where n is the percentage (from S-400)
that you want to enlarge or reduce the display in graphic view. If you
specify 100, the text and graphics will be displayed in approximately the
same size that they will be printed.
df zm=85 Example of the ZM setting.
DF ZS Point Sizes — Defines the point sizes that are displayed in the menus for
scalable fonts. (The initial default is 8, 9,10,12,14,18,24, 36,48, 72, 96,
144.)
df zs=sizel,size2,... Format of the ZS setting, where sizel,size2,... is a list
of the point sizes you want displayed in the point size menu for scalable
fonts.
df zs=10,12,14 Example of the ZS setting.
42
Display Mode Colors
43
Display Mode Colors MD
FORMAT MD hh=#
mh is a two-letter mode command or a number from 0-255
• is a number from the color table (see Notes #5 and #6),
MENU ES3S3EE53EH3
PURPOSE MO (Mode) commands define the color associated with each display
mode in draft view. XyWrite provides recommended display values for
the following types of monitors:
• Color (COLOR.DSP)
• Monochrome (MONO.DSP)
• Gas plasma (GAS.DSP)
• Gray-scale (G-SCALE.DSP)
• LCD (LCD.DSP)
When you install XyWrite, you are asked what type of monitor your
system has. The display values for your monitor are merged from the
separate display file into SETTINGS.DFL.
You use the MD command only when you want to change a color from
the default value. You can change the values in SETTINGS.DFL or create
a custom color file that you load separately.
1. Determine what colors you want to use for each mode. To display the
available colors, choose "Color choices" from the Help index. If you
don't have the help file loaded, refer to Notes #5 and #6 for a list of
available colors.
2. Make a copy of the display file that most closely resembles what you
want. For example:
Type: [Fsjcopy color.dsp,custom.dsp0
4. Search for the display mode you want to change. For example:
Type: [F5]se /md bo/0
5. Immediately after the equals sign, type the number of the new color.
6. Repeat steps 4 and 5 for each display mode you want to change.
(cont'd) Display Mode Colors
NOTE #1 Startup. You can have your custom color file automatically loaded at
startup by adding a line to your STARTUP.INT file. For example, the
following entry loads a display file named CUSTOM.DSP.
bc load custom.dsp<-
Be sure to add this line after the line that loads SETTINGS.DFL; remember,
SETTINGS.DFL contains color settings and the last set of values loaded is
the one that takes precedence. Refer to "Startup File" for more information
on modifying STARTUP.INT.
NOTE #2 Selected Text. If you change the display colors, you may get unexpected
results when you select a block of text. The DD default setting interacts
with the display modes to produce the color of selected text. You may
need to adjust the value of the DD setting after you load your custom
colors. Refer to "Default Settings" for more information about the DD
setting.
Another important note about mode numbers relates to the way XyWrite
interprets them for graphic view. If you use the embedded MD command
with a mode number to format your document (e.g., MD 113) and then
display the document in graphic view, you will get unexpected results.
That is because XyWrite uses the following formula to determine how
numbered modes appear in graphic view:
1. XyWrite subtracts the mode number from 255. For MD 113, the result
would be 142.
45
Display Mode Colors (cont'd)
Mode Bit
Normal 0
Bold 1
Underline 2
Reverse 4
Superscript 8
Subscript 16
Italic 32
Insert 64
Delete 128
Result: For the current example, the following bits are turned on: 128,8,
4, and 2 (128 + 8 + 4 + 2 = 142). That means that text that is in MD 113
would display in graphic view as struck-through (Delete), superscript,
underline, and reverse.
When you print the document, the numbered modes are printed using the
definition specified in the Print Type (PT) table in the printer file.
NOTE #4 Standard Colors. XyWrite comes with the following display values (for a
color monitor).
MD NM=23 White (dim) on blue
MD BO=31 Bright white on blue
MDUL=19 Cyan on blue
MD BU=27 Light cyan on blue
MD IT=26 Green on blue
MD BI=30 Yellow on blue
MD RV=113 Blue on white
MD SU=87 White (dim) on magenta
MD SD=96 Black on brown
DF DD=16 Define Display setting.
The only values that don't display are: 0, 8,128, and 136.
NOTE #6 Color Table. To select a color (for a color monitor), pick one color for the
characters and another color for the background. Add the two numbers
together. Use this number with the MD command. For example, for
bright white characters (15) on a blue background (16), use 31.
Characters (Foreground)
0 Black Characters
1 Blue Characters
2 Green Characters
3 Cyan Characters
4 Red Characters
5 Magenta Characters
6 Brown Characters
7 White (Dim) Characters
8 Gray Characters
9 Light Blue Characters
10 Light Green Characters
11 Light Cyan Characters
12 Light Red Characters
13 Light Magenta Characters
14 Yellow Characters
15 Bright White Characters
Background
0 Black Background
16 Blue Background
32 Green Background
48 Cyan Background
64 Red Background
80 Magenta Background
96 Brown Background
112 White (Dim) Background
128 Blinking Characters, Black Background
144 Blinking Characters, Blue Background
47
Display Mode Colors (cont'd)
48
Customization Tables
Intro Customization tables are another way to change the built-in values of
XyWrite. They constitute the third major category of information in
SETTINGS.DFL. This section describes the following customization
tables:
49
Pick Printer Table PP
FORMAT PP:#
dl filel.prn notesl
dn filen.prn notesn
# is the number of port/printer file combinations defined in the table.
dl...dn is a printer port (see Note #1).
PURPOSE The PP table defines the information that appears in the Select Printer File
dialog box. The PP table, which is created during the installation
procedure, lists all printer port/printer file combinations available on
your system and the printer file associated with each.
1. Call SETTLNGS.DFL.
2. Move the cursor to the PP table, which is near the bottom of the file.
3. Since we're adding a printer, add 1 to the number after the PP:.
4. At the end of the table, type the port designation, a tab, the printer file
you want loaded when you select this entry, a tab, and (optional) a
description of the new printer. For example:
Result: The next time you issue the SETP command, the new printer will
be listed as one of the choices.
50
(cont'd) Pick Printer Table
Note #1 Print Destination. Your workstation has one or more ports which are
designated LPT1, LPT2, LPT3, C0M1, COM2, etc. These ports are used to
communicate with local and network printers (and other output devices).
If the printer is local, the port is set up to send information directly to it. If
the printer is on the network, network software commands intercept the
data from the port and redirect it to the network printer. If local printers
exist, they are usually connected to the first ports (LPT1, LPT2, etc.);
network printers use the next available ports.
In order for XyWrite to differentiate between local printer ports and ports
that are being redirected by the network software, XyWrite uses different
naming conventions. Enter the number 1 for a local parallel printer
connected to port LPT1, the number 2 for a local parallel printer connected
to port LPT2, etc. Enter LPT 1 if the network software is set up to redirect
data from LPT1 to a network printer, LPT2 if the network software is set
up to redirect data from LPT2 to a network printer, etc.
PP:3
LPTl D:\XY4\POST35N.PRN Apple LaserWriter 11/NT
1 D:\XY4\EPFX850.PRN Epson FX-850
LPT2 D:\XY4\HPLJ-3D.PRN Hewlett Packard LaserJet HID
51
Separator Table SE
FORMAT SE:3
String!
slring2
string3
stringl defines the characters XyWrite recognizes as word separators. string2
defines the characters XyWrite recognizes as sentence separators. string3
defines the characters XyWrite recognizes as paragraph separators.
PURPOSE The SE (Separator) Table allows you to define the characters you want
XyWrite to recognize as word, sentence, and paragraph separators. You can
select the separator characters from the first 256 characters in the character set
(see Appendix E for a complete list of characters). Once defined, XyWrite
uses these separators when you perform a function on a word, sentence, or
paragraph. Such functions include defining, deleting, spelling, hyphenating,
and moving the cursor.
For example, if you press [F£] to define the current paragraph, XyWrite looks
for the paragraph separator before and after the current cursor location and
defines the text between those two boundaries. If you press (cvt] [F7] to check the
spelling of the current word, XyWrite looks for the word separators before
and after the cursor location to determine the boundaries of the word.
Sentence: .! ? £ j
Paragraph: £ / ->
52
(cont'd) Separator Table
1. Open SETTINGS.DFL.
Type: [Fsjcall settings.dflS
2. Move the cursor to the end of the file.
Press: [ciR] [End]
3. Type in all four lines of the table. Remember, you must enter all of the
characters you want XyWrite to recognize as separators.
NOTE Default Separator Table. You can request a soft copy of the default
separator table from the Technical Services Department.
Counter String Table CS
FORMAT CS:n
string!
string!
stringn
n is the number of strings
stringl, string!,... stringn define the characters you want used for
customized numbering functions.
PURPOSE The CS table lets you define a custom set of characters that you want
XyWrite to use when it automatically numbers pages, chapters, footnotes,
or other counters. Each string in the table can contain any number of
characters, but they must be from the first 256 characters in the character
set (see Appendix E for a list of characters).
The default custom counters are *, •*, ***, and so on. If you want to use
different custom counters, add a CS table to SETTINGS.DFL.
1. Open SETTINGS.DFL.
Type: iFslcall settings.dll(3
2. Move the cursor to the end of the file.
Press: [cirilfEndl
3. Type in the table. You can put in as many strings are you like. Just be
sure that the number on the first line correctly indicates the number of
strings in the table. For example:
CS:4
I
@
$
4. Store and load SETTINGS.DFL.
Result: The new counters are now in effect. When you use this table for
counting, the list of strings will eventually be exhausted. After this point,
the first string will be used twice, then the second, and so on. j
Keyboard File
INTRO The keyboard is your connection to XyWrite — you can modify the
keyboard functions to your liking. You can rearrange keys, and you can
reduce the most complicated function to a single keystroke.
This section also covers the function calls, which form the foundation of
XyWrite. Once you become familiar with the keyboard file, you may find
yourself inventing new combinations of functions to best serve your
purpose.
55
Modifying Keyboard Files
PURPOSE Did you ever wish you could change the meaning of the keys on the
keyboard? In this section you will learn how to change a key or even the
whole keyboard to suit your needs.
Here are two simple ways you can change the keyboard file:
• Create shortcuts. For example, assign the key combination [ctri]D to be a
shortcut for [FsldirRIl. to display a directory.
• Assign new functions to keys. You can alter the keyboard file to do
things you could otherwise not do. You can assign any of the function
calls you prefer to a key. For example, you can change the cursor up
and down keys to Linear Up (LU) and Down (LD). Linear Up and
Down allow the cursor to move directly up or down without ever
switching columns.
You generally assign basic functions to the keyboard file. From these you
can construct more elaborate routines in program files.
Before you learn key assignment, you should know how XyWrite takes
keyboard input and puts the desired character on the screen. This is done
with key codes in a keyboard file called XY4.KBD, which is contained on
the original XyWrite disk.
The figure on the facing page shows how each key is numbered. For
example, when you press key number 30, the keyboard file translates code
30 to mean the letter "A."
You use the LOAD command to load a new keyboard into XyWrite. It is a
feature of XyWrite that you can load a keyboard file any time that XyWrite
is running.
56
(cont'd) Modifying Keyboard Files
KEYBOARD DIAGRAM
STANDARD IBM KEYBOARD
Fl F2 2 3I 4 1 5 67 1| 7 8 I
.’.1 110 1 12 l ■ ♦— Num lock Scroll Loci
5 | 0 |
50 60 3 4I 6 8 13 14 60 70
F3 F4 Tab 0 I W E I R I T I Y I U 1 1 0 1 P I 26 J <om«
1 f
61 62 15 I 16 | 17 18 1 10 | 20 1 21 22 23 24 | 25 27 71 72 73 74
F5 F6 an A S 0 F G H J X I 28
63 64 20 30 31 32 33 34 35 36 37 38 30 1 40 41 75 76 77
F7 F8 Shift \ z X C V B N M / Shift CM 1 Pl On 4
65 66 42 43 44 45 46 47 48 40 50 51 52 53 54 55 70 30 81 78
F0 F10 Alt Space Bar Cm Lock Ins Del
67 68 56 57 58 82 83
IBM XT KEYBOARD
H XIR R F5 l| F6 II F7 |l F8
63 || 64 || 65 || 66
F9 IIFK FH F12
67 || 68 II 87 || 88
..|X IX IXIXIX nr
Km /
lol
14 69 94 55 74
“IM mm ill?.
Caw Loculi A 1
W
7
E
18
S 11 0
19
R T
20
I -1
Hum
71
t
72
Pyup
73
—* 78
58 31 || 32
ixmix 39 || 40
I 28 75 76 77
t hw
8 N MTTT Shift
43 49 50 II 51 || 52 || 53 || - »
End
♦ FflOn
79 80 81 Erie
Qrl II AA Space Bar 1 Al j CUI Im CM 104
| 98 1 99 82
57 83
57
Modifying Keyboard Files (confd)
2. Number of Keys. The first definition in the keyboard file is the KEYS
statement. To accommodate the 83- and the 104-key IBM keyboards
plus a mouse, the KEYS statement is:
KEYS=105
3. Shifting Keys. The XY4.KBD keyboard file comes with seven shifting
keys (two [m], two Icifi], two [Shift], and one |Capstod<|), which define four
shifting states. Each shifting key can shift the keyboard to a new set of
key definitions. In XY4.KBD, the shifting states are defined as follows:
CTRL=29,99
ALT=56,98
SHIFT=42,54
CAPS=58,T:C
XyWrite can have up to six shifting states (using any names you want
— no numbers allowed). That is, if you keep these four states, you can
define two more (or you could delete these four and define six new
states). You can use these keys alone (e.g., TABLE=CTRL) or in
combination (e.g., TABLE=CTRL+ALT) to create up to 20 tables. For
example, you could define |PhntScreen| to be a shifting key.
The order of these definitions designates their priority. In the above
example, if you press both [cirfl and leaps Local, the CT RL table prevails
(because there is no CTRL+CAPS table).
58
(cont'd) Modifying Keyboard Files
,N Numeric Lock
,T:n Toggle
n is any letter you specify. When you include n with a shifting key
definition, XyWrite displays the letter you specify in the upper right
corner of the screen to indicate that a toggle key is on.
N (Numeric Lock) indicates that when you press that shifting key, the
sense of the Numeric Lock key changes. The statement SH1FT=42,54,N
means that if Numeric Lock is on, pressing either Shift key changes the
number pad to a cursor pad.
T (Toggle) defines a key as a toggle shifting key — when you press the
key, the keyboard table associated with that shifting key is enabled and
stays active until you press the shifting key again. |Caps Lockl is the only
toggle shifting key on the default XY4.KBD keyboard, but you can define
up to three others. (|NumLockl. I Scroll Lockl, and Automatic Uppercase do not
count — they are not toggle shifting keys.) You can display any letter in the
header when a toggle key is on. For example, CAPS=58,T:C causes the
letter "C" to appear when you press leaps Lockl. The "C" disappears when
you press leaps Lockl again.
EXAMPLE: Let's say you need Greek letters to write technical text. You
first create TABLE=PRTSCR, assigning Greek letters to keys. You next
make |PrmtScreen| a shifting key: PRTSCR=84,T would enable you to switch
the Greek keyboard on and off. PRTSCR=84,T:G would also cause the
letter G to appear on the command line while the PRTSCR table is in
effect.
59
Modifying Keyboard Files (cont'd)
4. Tables. The keyboard file XY4.KBD is made up of ten tables. (You can
have up to 20 tables.) Each table can give you an entire set of keys. The
ten tables are:
TABLE=
TABLE=CAPS
TABLE=SHIFT
TABLE=SHIFT+CAPS
TABLE«=CTRL
TABLE=ALT
TABLE=CTRL+SHIFT
TABLE=ALT+SHIFT
TABLE=CTRL+ALT
TABLE-CTRL+ALT+SHIFT
5. Key Definitions. Following the statement TABLE= you will find the
key definitions.
Format: # =fl,f2,f3,...
Examples:
30=a The letter "a" is assigned to key number 30.
72=CU The function CU (Cursor Up) is assigned to key
72.
68=GT,SH The two functions GT, SH (Go to Text, Show
Help) are assigned to key 68.
31=BC,s,a,v,e,XC The command SAVE is executed by the series of
keystrokes BC (Blank the Command Line),
spelling SAVE, and XC (Execute). These
keystrokes are all assigned to key 31.
Notice in this last example that when you enter text, each character is
separated by a comma. Punctuation and spaces must also be
separated by commas.
60
(cont'd) Modifying Keyboard Files
2. Use the SEARCH command to find the table for the [fti] IShiftl keys.
Type: [Fsjse /table=ctrl+shift/0
3. Find the code 72, which represents the 0 (cursor up) key.
Type: [fsjse /72/0
To test the new key assignment, move the cursor several lines down from
the top of any open file. Now, while holding down [w] and Ishiftl, press the
0 (cursor up) key. The cursor moves up five lines. With a similar
procedure, it is easy to create a [Cvil0 (cursor down) function that will move
the cursor down five lines.
61
Modifying Keyboard Files (cont'd)
2. Notice that the key code for X is 44. Search for the CTRL table.
Type: [Filse /table=ctrl/CT
Result: The cursor should now be positioned at the top of the CTRL
table.
5. Type: [FsJstoreS
Analysis. Before trying out this new command, let's see what it does step-
by-step:
To try out this new command, press [cvi]X — this should display a
directory of \XY4.
62
(cont'd) Modifying Keyboard Files
63
Function Calls
Purpose Function calls are two-letter instructions that represent basic keyboard
actions. Function calls are assigned to keys in the keyboard file. For
example, 77=CR means that Cursor Right is assigned to the cursor right
arrow key (key #77). Similarly, DL means select a line of text; CP means
copy the selected text; and M2 means set bold mode.
There are two ways you can execute these function calls: (1) in the
keyboard file and (2) with the FUNC command on the command line.
These are both described in the previous section "Modifying Keyboard
Files." Function calls also appear in program files — for example, BC
appears in the STARTUP.1NT file.
To execute several function calls in sequence with one keystroke, assign
them to a key, separating them with commas. For example, 77=CR,CD
would move the cursor right and then down.
NOTE #1 User Programming. You can use all of these function calls in programs
except TS (Toggle Scroll Lock). TS cannot be entered into a program file,
since you use it to begin and end the recording of a program. If you want
to enter a function call into a program that is not assigned to a key, use the
PFUNC command.
NOTE #2 Function Calls with Arguments. Several function calls (TM, MT, MN, JM,
JH) take arguments. If you are using the function call in a keyboard file,
be sure to put commas between each character in the argument; if you are
using the function call in a program, omit the commas. For example:
Note #3 Redefining Function Calls. You can use XyWrite's command override
feature to redefine that functions associated with a function call. Refer to
"Custom Commands" elsewhere in this manual for more information.
(cont'd) Function Calls
65
Function Calls (cont'd)
66
(cont'd) Function Calls
»
I1 Selecting Blocks of Text XS Scoping markers
I DC Define column ZT Zero time
»
I DD Delete selected block
DF Define block Text Macros
I
I
DL Define line AD Append define to text macro
I DM Define modify SG Get text macro
DP Define paragraph SK Show text macro key
DS Define sentence SV Save define
DW Define word @0 Text macro (@0 to @9)
DZ Define end @A Text macro (@A to @Z)
NB Non-breakable block &0 Text macro (&0 to &9)
XD Cancel define &A Text macro (&A to &Z)
YD Cancel define (variation)
Toggle Keys
Spelling/Thesaurus BT Borders toggle
i AC Auto-check Cl Clear insert mode
I
I
AR
AZ
Expand abbreviation
Auto-replace toggle
CN
CS
Clear numeric lock
Clear scroll lock
I FX Fix spelling Ml Momentary insert
I Q1 Dialog box functions (QI to Q8) NK Toggle numeric lock
SC Spelling auto-check RK Record keystrokes
I
Fi
SO Spell one word SI Set insert mode
SY Synonyms SN Set numeric lock
! SS Set scroll lock
i
i System Tl Toggle insert mode
f BK Break TN Toggle numeric lock
I CO Comma TO Toggle overstrike
i DO Display on TS Toggle scroll lock
l
f DX Display off TW Toggle word
t EF Edit marker
EN Edit next file Transposing Text (see Note 9)
ES Escape FX Transpose text units
ET Elapsed time XN Transpose text units
EX Exit
FF Force fill Windows
IB IBM mode AS Alternate screen
KF Keyboard flip CB Cycle backwards
MN Menu NX Next window
MS Mouse SW Show window menu
Nl Not IBM-sensitive #1 Window (#1 to #9)
NO No operation
PR Print screen
RV Review
SA Save
SF Store all files
SL Save all files
67
Function Calls (cont'd)
The keys listed in the right-hand column are those provided in the original XY4.KBD file. You can
change these assignments.
68
(cont'd) Function Calls
69
Calls (cont'd)
70
(cont'd) Function Calls
71
Function Calls (cont'd)
72
(cont'd) Function Calls
73
Function Calls (cont'd)
74
(cont'd) Function Calls
75
Function Calls (cont'd)
characters in a search.
WX Wild Any Character - Interpreted as any character in a search.
WZ Graphic View - Switch text to graphic view.
XC Execute - Execute the command that is currently on the
command line.
76
(cont'd) Function Calls
NOTE #1 Table Move. The TM function call moves the cursor to the position
indicated by the next keystroke. The following options are available:
NOTE #3 mo - M9, MZ. The letter "M" followed by a number between 0 and 9 or
the letter Z selects the character mode of text typed in at the keyboard. If
there is a block selected, the character mode of the selected block is
changed to the selected mode.
77
Function Calls (cont'd)
NOTE #4 R0 - R9. The letter "R" followed by a single digit (0 to 9) forms one digit
of a XyWrite character. XyWrite characters not assigned to a key must be
entered this way.
As an example (in the XY4.KBD file), when [^i][CMl is held down, numbers
are assigned the R values. If you hold down the [«t| and [cm] keys and press
the numbers 2,9,4, the Greek letter alpha (a) is entered in the text when
you release the [An] and [cm] keys.
NOTE #6 NN, WA, WC, WL, WN, WS, WW, WX. These function calls are used to
indicate the wild card entries that are part of the Search string.
78
(cont'd) Function Calls
NOTE #8 MT (Math) Functions. The MT function call also accepts the plus (+) and
minus (-) operators, although they are not mapped to keys.
NOTE #9 Transpose Text. There are two function calls that transpose text units: FX
and XN. The FX function call allows you to map the transpose functions
to a single key, while the XN function call lets you create a separate key
for each transpose function. You press the key assigned to the FX function
call in conjunction with a letter key (C, W, S, P) or number key (1-6) to
transpose text as follows:
C or 1 If the cursor is on a character, transposes the current and
previous characters. If the cursor is on a separator, transpose
the two characters before the cursor.
W or 2 Transposes the current and previous words.
S or 3 Transposes the current and previous sentences.
P or 4 Transposes the current and previous paragraphs.
5 Transposes the current and previous characters.
6 Transposes the two characters that precede the cursor.
To assign a specific transpose function to a key, assign the function call
XN, a comma, and a number 1-6 (as described above).
79
Function Calls (cont'd)
NOTE #10 CF (Column Function). The CF function call allows you to perform
several editing functions on a table, depending on the argument that
follows the function call:
1 Insert new column before current colmun
2 Insert new column after current column
3 Delete current column
4 Select cun-ent column
5 Select current table
80
Loading Information Into Memory
Information gets loaded into memory in different ways. Every time you
start XyWrite from DOS, the program is loaded into memory. Then, when
XyWrite runs the program STARTUP.INT, the files that you have selected
to be part of your standard system configuration are loaded into memory.
When you display a file on screen, it is loaded in memory too.
81
Load Customization Files LOAD
Purpose You use the LOAD command to load the information in one or more
customization files into memory. You must load the files into memory
before they take effect. Each XyWrite customization file starts with a
special 4-character label that tells the LOAD command what type of file it
is. The 11 different file types and the label associated with each are listed
below. <
• Default file ;PR; t
• Dialog box file ;DG; •
• Help file ;HL;
• Hyphenation file ;HY; j
• Keyboard file ,KB; 1
• Menu file ;MN; !
• Personal spelling dictionary ;SP; t
• Printer file ;PR; ■
• Soft font file ;SF; ■
• Sort file ;SO; I
• User interface file ;U2; *
LOAD overwrites any information already in memory for the file type you ;
are loading. For example, if you load a printer file called POST35N.PRN
and then later load HPLJ-2P.PRN, XyWrite overwrites the printer-related
information in memory from POST35N.PRN. The exception to this rule is
the default file. If you load a new default file, only those defaults that are
redefined in the new file are changed. For example, if the first default file
you loaded specifies a value for OF and IP, and the second default file
specifies a value for OF but not IP, then the original IP value remains in
effect. :
1. Be sure the files you want to load start with the proper identifiers.
82
(cont'd) LOAD
NOTE #3 STARTUP.INT. If you use a standard set of customization files, you can
put the LOAD command into STARTUP.INT. Then your standard files
will be automatically loaded every time you start XyWrite.
83
Select Print Destination SETP
PURPOSE The SETP command lets you review a list of port/printer file
combinations that are available to you, tells you which one is currently
active, and lets you select the one you want to use. When you select one
of the combinations, XyWrite automatically loads the associated printer
file.
The SETP command also runs an optional program file that is associated
with the destination or printer file you have selected (see Note #2).
There are two ways you can select a port/printer file combination with the
SETP command:
• By displaying the dialog box, then highlighting the print destination
you want and activating the Load pushbutton
• By issuing the SETP command with the number of the port/printer file
combination you want to activate
Result: XyWrite directs printing to the port specified for the second line in
the Select Printer File list box, and loads the printer file specified for that
destination. XyWrite also executes the commands in NETWORK2.PRG, if
it exists (see Note #2).
84
(cont'd) SETP
NOTE #1 Print Destinations. The ports listed in the SETP menu can be local printer
ports (generally designated as 1 or 2) or network printer ports (generally
designated as LPT1, LPT2, LPT3, COMI, COM2, etc.)
NOTE #2 Assigning a Program to a Printer. You can create a program file for one or
more port/printer file combinations listed in the Select Printer File list
box. These program files must be named NETWORKn.PRG, where n is a
number from 1 to 9 that corresponds to the combination's position in the
list box. Typically, these program files contain the commands required to
download fonts to the printer, or to execute some network-specific
spooling commands.
NOTE #3 LOAD vs SETP. Both the LOAD and SETP commands can be used to
load a printer file. However, the LOAD command docs not direct
XyWrite to a different port, nor does it update the list box in the Select
Printer File dialog box. We recommend that you use SETP to load printer
files if your configuration includes printers attached to different ports.
NOTE #4 PP Table. The destinations, printer files, and comments listed in the Select
Printer File dialog box are controlled by the PP table in the default file and
the ADDTBL command. See the descriptions of the ADDTBL command on
the next and "Default Settings" elsewhere in this manual for more
information.
NOTE #5 STARTUP.INT. If you usually use the same print destination, you can
put the SETP command into STARTUP.INT. Then your standard printer
information will be automatically loaded every time you start XyWrite.
85
Add Printer File ADDTBL
Purpose ADDTBL lets you add to the list of printers displayed when you issue the
SETP command or choose Printer Setup from the File menu without
modifying the PP table in the default file. ADDTBL loads the information
into memory and appends it to the end of the list of printers in the Select
Printer File dialog box.
2. Go to the end of the file and add the ADDTBL command. For example,
to add a Panasonic KXP1124 dot matrix printer:
Type: BX addtbl lpttOpanl l24.prnOPanasonic dot matrix printerQ2
Result: The next time user CIT logs on, the local printer will be added to
the list of network printers displayed in the Select Printer File dialog box.
NOTE #1 Also See. Refer to "Default Settings" for information about the PP table
and to the LAN Administrator's Guide for information about network
customization files.
86
CART Load Cartridge Fonts
Purpose CART loads font information about the specified cartridge fonts into
memory. XyWrite provides support for over 40 Hewlett-Packard (or
compatible) cartridges by storing font information in two binary font files:
LJ.BIN, LJ3.BIN, and LJ4.BIN. LJ.BIN is used with all Hewlett-Packard
LaserJet printers except the LaserJet III and LaserJet IV. LJ3-B1N is used
with the Hewlett-Packard LaserJet III family; and LJ4.BIN is used with the
Hewlett-Packard LaserJet IV.
XyWrite uses the information in the .BIN files to create the cartridge and
typeface menus; more importantly, XyWrite uses this information when it
determines line endings.
NOTE #2 List of Cartridges. To display a list of cartridges, load the LaserJet printer
file that applies to the model of LaserJet you are using, and then activate
the Select cartridge radio button from the Printer Setup dialog box. (Press
[Mol, F, R to display the Printer Setup dialog box.)
NOTE #3 Additional Cartridges. The LJ.BIN, LJ3.BIN, and LJ4.B1N files support a
wide range of HP LaserJet and compatible cartridges. However, new
cartridges are introduced regularly. If you want to use a cartridge that is
not currently supported, use the TFMADD program to add the cartridge's
font information to LJ.BIN, LJ3.BIN, or LJ4.B1N. TFMADD is a utility that
87
CART (cont'd)
extracts font information from the Tagged Font Metric files which are
supplied with the cartridges and appends it to the .BIN file you specify.
For information on how to use TFMADD, refer to the README.PRN file
supplied with XyWrite.
88
Menu, Dialog Box, and Help Files
INTRO You can modify XY4.MNU, XY4.DLG, and XY4.HLP, the menu, dialog
box, and help files delivered with XyWrite or you can construct your own
menu, dialog box, or help file. This section describes the various
components of XY4.MNU, XY4.DLG, and XY4.HLP and discusses
customizing them by adding, deleting, or rearranging information.
8?
Menu, Dialog Box and Help Files (cont'd)
Page Section
124 Executing a Routine
124 Keyword Labe!
124 Displayable Lines
124 Executable Lines
125 Positioning Dialog Box and Help Screens
126 Using Accelerator Characters
126 Menu Bar and Pull-Down Menus
126 Dialog Boxes
127 Keyboard File
128 Providing Context-Sensitive Help Screens
128 Help Pushbuttons
128 Dialog Box Items
129 Pull-Down Menus and Other Screens
129 Command Markers
131 Displaying a Scrollable Help Screen
131 Keyword Label
131 Displayable Lines
133 Including Text in Screen Borders
134 Displaying Detailed Explanations of Error Messages
134 Keyword Label
134 Displayable Lines
135 Testing Dialog Boxes and Help Frames
135 ?m and ?h Test Commands
135 The QH (Quick Help) Function Call
135 The QP (Quick Print) Function Call
136 Accessing a Menu Screen with One Keystroke
137 Accessing a Help Screen with One Keystroke
138 Loading Menu, Dialog Box, and Help Files
90
Menu, Dialog Box, and Help Files
Purpose A menu, dialog box, or help file is a text file that can be created or edited
as you edit any other text file. However, the first line of the file must
contain a specific 4-character label to tell the LOAD command what kind
of file it is:
;MN; indicates a menu file
;DG; indicates a dialog box file
;HL; indicates a help file
You can include formatting commands on the second line of the file to
control the way text is arranged when displayed on the screen.
After the formatting commands, menu, dialog box, and help files may
have several comment lines. You can add as many comment lines as you
want to describe such things as the contents of the file or any changes
you've made to the file. (Refer to "Including Comments in a Menu, Dialog
Box, or Help File" for a way to enter your notes.)
Following any comment lines, menu, dialog box, and help files consist of
sections or frames that XyWrite uses to construct and operate each menu,
dialog box, or help screen.
91
Menu, Dialog Box, and Help File Frames
Intro Each frame in a menu, dialog box, or help file designates the information
XyWrite displays on a screen at a time. Menu frames may contain
commands or programs the user can initiate from the screen.
In general, menu screens and dialog boxes enable the user to perform
some task. There are several different frame types you can use depending
on the way you want the menu screen to function. XY4.MNU and
XY4.DLG contain the following frame types:
0 displays a menu bar
L displays a pull-down or side menu
K displays a dialog box
5 executes a routine
M indicates a comment
Although menu, dialog box, and help frames have different uses, they
have the same basic construction. Every frame starts with a label enclosed
in a pair of double curly braces {{}}. A frame begins at the label and ends
at the next label (wrhich signals the beginning of the next frame).
Following the label, frames may have one or more displayable lines.
Displayable lines contain text that appears when the user accesses the help
or menu screen.
Following the label or any displayable lines, frames may have one or more
executable lines. Executable lines are not displayed on the screen. They
contain commands or programs and their content depends on the function
you want the frame to perform.
The various types of frames are described throughout this section based
on their functions (such as displaying a menu bar and displaying a
scrollable help screen).
92
(cont'd) Menu, Dialog Box, and Help File Frames
Although frames are not listed in any particular order within a menu,
dialog box, or help file, XyWrite can quickly find the topic on which the
user requested information. Refer to "Loading Menu and Help Files" for
more information on what happens to a menu, dialog box, or help file
when it is loaded into memory.
Keyword Labels
The keyword label identifies the frame to XyWrite and allows you to link
the various types of menu and help frames. Frame labels have the
following format:
{{#,keyword!,keyword2,.. .}}«-
# indicates the frame type. You enter the letter (K, L, M, or C) or the
number (0,5,6, or 9) that corresponds to the frame type you want to use.
Frame types and their functions are described in sections throughout this
document.
keyword is the name by which the frame can be accessed. Appendix D lists
keywords reserved for use by XyWrite.
Keywords
One or more keywords in the label indicate the way(s) the frame can be
accessed. In general, there is no limit to the length of a keyword; however,
shorter keywords take up less memory.
For example, the following label with the keyword FileOpen designates the
beginning of a Type K frame:
{{K.FileOpen}}*-
Keywords can be either upper- or lowercase letters (or any mix); they are
not case sensitive.
Keywords also link frames together, which enables the user to move
directly from one task or topic to another. Refer to "Linking Frames" for
more information.
93
Menu, Dialog Box, and Help File Frames (cont'd)
In XY4.MNU, the entry point is the Type 0 (zero) frame that produces the
menu bar. The keyword label for the menu bar is:
{{O.ln}}*-
In XY4.HLP, the entry point is a Type 5 frame that tests whether the user
is requesting help for menus or for the command line. The keyword label
for the Type 5 frame is:
94
Linking Frames
Intro Three things you will find useful to link frames in a file are the JD (Jump
to Dialog Box) command, the JM (Jump to Menu) function call, and the JH
(Jump to Help) function call.
keyword is the keyword of the frame you want execution to jump to.
All execution in the menu takes place by passing from one menu frame to
another. The menu bar is the entry point to the menus. When the user
selects an item from the menu bar, a pull-down menu (Type L frame)
appears. The JD (Jump to Dialog Box) command links the Type L frame to
the Type 0 frame.
For example, the following line in a Type 0 menu frame causes execution
to move to the menu frame with the keyword MBFile when the user
selects "File" from the menu bar:
&File « JDMBFile»
In the Menu file, you can also use JD to link a Type L to another Type L or
a Type 5. In the help file, you can use JD to link Type C frames.
For example, the following line in a Type L menu frame causes execution
to move to the menu frame with the keyword New when the user selects
"New" from the pull-down menu:
&New...« JDNew»,Create a new file*-
95
Linking Frames (cont'd)
For example, the following Type 5 frame clears macros 1001 and 1002 and
then jumps to another menu frame with the keyword NewA;
{{5,New}}
B«SV1001,» «SV1002,» JM (NewA)fl«-
For example, the following Type 5 frame jumps to a Type C help frame
with the keyword GenHlp that resides in the currently loaded help file:
{{5,GHelp}}«-
BJH (GenHlp)B^
96
Including Comments in a Menu, Dialog Box, or Help File
Intro You can use a Type M frame to describe such things as the contents of the
file, the contents of a frame, or any changes you've made to the file. You
can enter as many lines as you want, since Type M frames are not loaded
into memory. Type M frames are also useful when you are testing a menu
file, because you can disable one or more frames by changing them to
Type M frames.
Keyword Label
The first line of a Type M frame contains the keyword label (M enclosed in
a pair of double curly braces {{}}). Unlike other frame types, a Type M
frame label does not require a keyword. However, in XY4.MNU and
XY4.DLG, all comment frames have the keyword Comment for legibility.
You can find other examples in XY4.DLG, where comment frames are
used to annotate the functions of various frames.
97
Displaying a Menu Bar
You use a Type 0 (zero) frame to display a menu bar that lists the
categories of the various available options. When the user presses [Ftol,
XyWrite constructs the menu from the information in the Type 0 frame
and displays the menu horizontally across the top of the screen.
Keyword Label
The first line of a Type 0 frame contains the label (0, followed by one or
more keywords) enclosed in a pair of double curly braces {{}}.
Since the Type 0 frame in XY4.MNU is the entry point to the Menu facility,
it has the special keyword !N.
Displayable Lines
After the keyword label, each subsequent line of a Type 0 frame contains
the number of extra spaces you want between the menu names on the
menu bar, the menu name you want displayed in the menu bar, a JD
(Jump to Dialog Box) command to link the execution of the menu item to
another screen type, and a comma. You can add a string of text you want
XyWrite to display on the status line when the user highlights the
keyword in the menu.
NOTE Length of Menu Names. The menu bar must fit on a single line, across the
width of the screen. Therefore, when choosing your menu names and
spacing, make sure the total number of characters and spaces does not
exceed 80.
XyWrite enters menu names in the menu bar in the same order they
appear in the Type 0 frame.
For example, the following frame in XY4.MNU creates the menu bar. The
label indicates a Type 0 frame that is the entry point to the menus (!N).
{{0,!n}}<-
AFile « JDMBFile»
SEdit « JDMBEdit» ,*•
&View « JDMBView>»
For&mat « JDMBFormat» ,*■
&Proof « JDMBProof»
SOptions « JDMBOptions»
SAdvanced « JDMBAdvanced »
&Window « JDMBWindow»
&Help « JDMBHelp»
98
(cont'd) Displaying a Menu Bar
When the user chooses an item in the menu bar, execution moves to the
menu frame indicated by the JD command.
The ampersands in the keywords indicate the accelerator keys; they do not
appear on the menu bar. Refer to "Using Accelerator Characters in Menu
Screens" for more information.
99
Creating a Pull-Down Menu
Intro You use a Type L frame to display a pull-down menu that lists the various
options available for a particular menu bar item. When the user places the
cursor on an item in the menu bar, XyWrite displays the pull-down menu
directly below it. XyWrite constructs the pull-down menu from the
information in the Type L frame.
Keyword Label
The first line of a Type L frame contains the keyword label (L, followed by
one or more keywords) enclosed in a pair of double curly braces (()}. The
keyword must correspond to a menu name in the Type 0 frame associated
with the pull-down menu.
Displayable Lines
After the keyword label, each subsequent line of a Type L frame contains a
display symbol, the text and spacing you want displayed in the menu, a
JD (Jump to Dialog Box) command to link the execution of the menu item
to another screen type, a comma, and the descriptive text you want
displayed on the status line whenever the user highlights the keyword on
the menu.
XyWrite enters keywords in the pull-down menu in the same order they
appear in the Type L frame.
Display Symbols
You can use one or more of the following symbols in a Type L menu frame
to control the display of the menu screen:
& indicates the accelerator key (refer to "Using Accelerator
Characters in Menu Screens" for more information).
= dims the menu item if the current window is empty, contains a
read-only directory, or a read-only file or a form. (The item is
not dimmed if a read/write file is displayed.) To enter =, press
[c^fc-1240.
100
(cont'd) Creating a Pull-Down Menu
e dims the menu item if the current window is empty (not used
for a directory or a file). To enter character e, press Icwl [Aii]238.
< dims the menu item under all conditions. To enter character :::
press fciril [Alt] 176.
"V adds a ♦ to the item in the displayed pull-down menu if the
indicated condition is true. To enter character v, press [ciri][Aifl251.
In Type L menu frames, you can have XyWrite test existing conditions and
adjust the information it displays in the pull-down menu depending on
the outcome of the tests. You precede the displayable text with a series of
statements, each separated by a vertical bar (I). For example:
statement) I statement21 statement..., description*-
XyWrite reads lines in Type L frames from left to right and evaluates any
conditions it encounters. If the condition is true, XyWrite executes the
next statement; if the condition is false, XyWrite skips to the next
statement.
If the user selects "Personal Diet," execution moves to the menu frame
with the keyword LdDict. If the current window is empty, contains a
read-only directory, a read-only file or a form, XyWrite dims "Main Diet"
in the pull-down menu.
The long horizontal line separates "Personal Diet" and "Main Diet" from
"Auto-Check" and "Batch Spell" and the :::• ensures that it cannot be
selected. If Auto- Check is on, XyWrite displays a ♦ next to "Auto
Check." If the user selects "Batch Spell," execution moves to the menu
frame with the keyword BatSpChk.
When the user places the cursor on an item in the pull-down menu,
XyWrite displays on the status line the descriptive text you associated
with that item's keyword in the menu file. "Personal Diet," "Main Diet,"
"Auto-Check," and "Batch Spell" can be accessed by pressing accelerator
keys P, M, A, or B, respectively.
101
Creating a Pull-Down Menu (cont'd)
Cascading Menus
You can create a pull-down menu that "cascades" from another pull
down menu, that looks like this:
102
Creating a Dialog Box
For example, the following Type K frame appears in XY4.DLG and has
many of the features described throughout this document:
Type K menu frames consist of four basic parts: the keyword label, dialog
box specifications, displayable lines, and executable lines.
The keyword label is similar to those used for other type menu frames.
The line following the keyword label contains dialog box specifications for
the size and placement of the dialog box as well as any text you want
displayed as a title.
Displayable lines indicate the various items you want to appear in the
dialog box and their size and placement. For example, you can include
fixed text, a field for entering text, radio buttons, check boxes,
pushbuttons, and scrollable lists. Displayable lines also can:
• indicate the tab order, that is, the order in which the user moves
through the items in the dialog box
103
Creating a Dialog Box (cont'd)
• indicate how the items appear when the dialog box is displayed
• have XyWrite dim an item under certain conditions
• have XyWrite verify that the information entered is valid for the
function being performed
• indicate shortcuts, called accelerator characters, so the user can move
directly to an item by pressing a key
• assign values and conditions that affect other items in the dialog box
Executable lines all begin with either an ASCII character 2 (0) or an ASCII
character 1 (g) to indicate the start of an XPL (XyWrite Programming
Language) program. They are associated with items in the dialog box and
perform the task indicated. You can pass information the user enters into
various dialog box items to executable lines.
You can test dialog boxes quickly while you are creating or editing them
without saving and reloading the menu. To do this, position the cursor in
the frame you want to test and press [Cvi] |ah| IsnmlQ. XyWrite immediately
displays the associated screen.
For more information refer to 'Testing Dialog Boxes and Help Frames."
The Type K menu frame shown above produces the following dialog box:
104
(cont'd) Creating a Dialog Box
The user presses [Tab] to move through any dialog box from item to item (or
Ishihl fTab] to move backward from item to item). Cursor keys only move the
cursor within fields. When the last (or first) item is reached, the cursor
moves through the list again. Alternatively, the user can press an
accelerator key to move directly to a specific field.
When the user puts the cursor on an item in a dialog box and presses [FT],
XyWrite displays the information for the specific item. Refer to
"Providing Context-Sensitive Help Screens" for more information.
Keyword Label
The first line of a Type K menu frame contains the keyword label (K,
followed by one or more keywords) enclosed in a pair of double curly
braces (()). In general, there is no limit to the length of a keyword;
however, shorter keywords take up less memory.
NOTE Illegal Characters. You cannot use ASCII characters 174 («) or 175 (») in
keywords; they cannot be accessed with the JM (Jump to Menu) function
call.
If you plan to provide on-line help for a dialog box, the keyword for the
dialog box cannot end with a number (for example, OPEN2).
scale values indicate the factors by which you want XyWrite to scale the
numbers you enter to indicate horizontal and vertical units. By specifying
values of 1 and 1 for the scale argument, you can enter values for x and y
coordinates in one character units and one line units, respectively.
Microsoft Windows requires 4 horizontal units and 10 vertical units per
character. Therefore, if you import dialog boxes from Microsoft Windows,
specify values of 4 and 10 for the scale argument.
105
Creating a Dialog Box (cont'd)
size values are x and y coordinates to indicate the width and height of the
dialog box.
title indicates the title you want to appear in the upper left corner of the
dialog box border.
For example, in the following dialog box the scale values are 1 and 1,
placement values are 12 and 2, size values are 56 and 17, and the title is
Open:
1 1 12 2 56 17 Open
TIP Use the Tab Settings Command. Since you must use tabs to separate the
various values in the dialog box specifications and in the displayable lines,
use the TS (Tab Settings) command to make the columns readable. You
can enter the TS command immediately before the Type K keyword label.
Displayable Lines
The third and subsequent lines of the Type K frame determine the various
items you want to appear in the dialog box and their placement and have
the following form. The fields for the displayable lines must be separated
by tabs.
control ID location size text option
control indicates one of the control codes that determines the type of dialog
box item. The available codes are:
TX Text (fixed)
TC Text changing (updated by XyWrite; not editable by user)
TB Text box (editable)
RB Radio button
CB Check box
PB Pushbutton
DP Default pushbutton
LF List files
LD List directories and drives
LB List box
GB Group box
(Each of these controls is described in a separate section below.)
106
(cont'd) Creating a Dialog Box
A Type K menu frame can have up to 32 controls, including the dialog box
itself. XyWrite counts the dialog box specification as one control and a
group of radio buttons as one control. XyWrite does not count TX (Fixed
text) or GB (Group box) controls.
To indicate where you want the cursor located when XyWrite first
displays the dialog box, put an asterisk immediately after one control
code; for example tb*.
Any line that begins with a semicolon is a comment - it has no effect on
dialog box items.
You use a different line for each control you want to include in the dialog
box. The order in which the controls appear in the frame determines the
tab order or the order in which the user can move the cursor from item to
item, by pressing [Tab], when the dialog box is displayed. If you want to
rearrange the tab order, you simply rearrange the lines in the menu frame.
ID indicates the number you assign to each control code. Each number
must be unique within the menu frame; however, the numbers can be in
any sequence. You can correspond these numbers directly to programs
XyWrite runs when the user selects a pushbutton. (See "Executable
Lines," below.) Since you normally would not correspond fixed text to a
program, it is not necessary to assign ID numbers to TX controls, but it is
helpful so you can tell which dialog box items overlap.
location values are x and y coordinates to indicate the location of the item
in relation to the upper left corner of the dialog box. You can use either a
plus sign (+) or a minus sign (-) to specify relative locations. See
"Positioning Items in a Dialog Box" for more information.
size contains x and y coordinates to indicate the width and height of the
item (text, text box, pushbutton, check box, list box, etc.). To save time,
you can reuse the value above it by including a plus sign (+) for the width
and/or height.
text specifies the text or the initial value displayed next to (or within) the
item in the dialog box. You can use the VA (Value of Variable) command
when you want to include the current value of a XyWrite variable in the
text. For example, when the dialog box is displayed, XyWrite includes the
name of the current drive and path in the text after the word, "Current
path."
tx 102 + +20 100 12 Current path: «VA$pa»
107
Creating a Dialog Box (cont'd)
You can also use the text argument to have XyWrite verify that the
information entered in a text box (TB) is valid for the function being
performed. Refer to "Validating Text Entry" for more information.
option has many uses: you can select a radio button or a check box
automatically when the dialog box is displayed; dim an item in the dialog
box; and include conditional statements to perform these tasks. Indicating
default check boxes and radio buttons are described in their respective
sections. Refer to "Dimming or Checking Dialog Box Items" for more
information.
You specify location coordinates in relation to the upper left comer of the
dialog box. (Prefacing a location coordinate with a < character indicates
that you want to place the item in relation to the right border of the dialog
box.)
NOTE Radio Button Positions. XyWrite positions radio buttons one line apart,
regardless of what you specify as a vertical coordinate. You cannot
position radio buttons side by side.
To use absolute locations, type the exact coordinates where you want the
items placed. For example, the following line positions a block of fixed
text (ID number 102) 2 characters in from the left border of the dialog box
and 1 line down from the top border. The text, "Example 1," is one line of
up to 20 characters long.
tx 102 2 1 20 1 Example 1
To use relative locations, type the coordinate as you want the item to
appear in relation to the preceding coordinate, using either a plus sign (+)
or a minus sign (-).
For example, the first control line functions as described above; the second
control line positions a text box (ID number 102) 3 characters in from the
left border of the dialog box and 3 lines down from the top border. The
text box is one line, 22 characters long and is initially displayed containing
the name of the current file.
lx 102 2 1 20 1 Example 1
tb 103 +1 +2 22 1 «VA$fi»
108
(cont'd) Creating a Dialog Box
Tip Use Relative Locations. It is much easier to redesign a dialog box with
relative locations, because you need only change one number to move a
column of items.
NOTE Item's Position May Change. The position of the item will change if you
use relative positions and you rearrange the lines in the menu frame to
change the tab order.
Notice that the second radio button (ID number 104) is also 10 characters
wide as specified by the + in the width size coordinate.
Executable Lines
Following the list of control codes and placement information, ASCII
character 2 (S) or ASCII character 1 (@) indicate an executable line. Either
character indicates the start of an XPL (XyWrite Programming Language)
program; however, an ASCII character 1 (@) executes the program without
removing the dialog box from the screen.
109
Creating a Dialog Box (cont'd)
Four things you will find useful in executable lines are passing
information to XPL programs, the BX (Blind Execute) function call, the JM
(Jump to Menu) function call, and checking unchanged fields.
For example, the following produces a directory based on the path the
user enters in the text box that has ID number 101:
@BX (dir/fi/na %101)« EX»
If they are not so enclosed, you must use the Q2 (Execute Too) function
call with the BX function call to execute the command. Q2 is useful for
executing a command string that may contain parentheses, square
brackets, or curly braces. For example:
BX ca lestQ2
NOTE Illegal Characters. You cannot use angle brackets < > to enclose a
command specified by the BX command.
110
(cont'd) Creating a Dialog Box
NOTE The Exit Command. An EXIT command «EX» in the subroutine causes
execution to return to the main program and resume.
The subroutines are included in the same menu file in Type 5 frames. For
example:
{{5.SETNW3})
a«SX70,«VA$NW»» BX(d nw=3)«EX»
{{5, RESTORENW}}
SBX(d nw=«PV70»)«EX»
id is the number of the control code for the item (usually a text box or a
check box) that you want to determine is changed.
action is one or more commands you want executed if the item is changed.
You use the TX (Text) control code to indicate a line of fixed text that is
always displayed in the dialog box. In the text argument, you can specify
111
Creating a Dialog Box (cont'd)
When the text is displayed in the dialog box, the user cannot move the
cursor to it.
For example, the following line in a Type K menu frame produces a line of
fixed text that contains the words, "PRINT FILE:''
tx 100 2 1 @1 PRINTFILE
You use the TC (Text Changing) control code to indicate a line of fixed text
that XyWrite can update to reflect changing conditions. When the text is
displayed in the dialog box, the user cannot select it; however, whenever a
change occurs, the information is immediately updated to reflect the
change.
For example, the following line in a Type K menu frame displays the
current path name. When the current path changes, the dialog box
immediately displays the new path.
tc 107 +90 + 70 12 «VA$pa»
You can have XyWrite validate the text the user enters into the field. See
"Validating Text Entry" for more information.
NOTE Specifying Text Box Locations. XyWrite uses square brackets to display
the borders of a text box; for example, [This is a text box ]. However, it
does not include the square brackets when calculating the item's location
coordinates. Therefore, when specifying location coordinates for text
boxes, add one extra space to compensate for the left square bracket. (See
the example on specifying relative locations in "Positioning Items in a
Dialog Box.")
112
(cont'd) Creating a Dialog Box
For example, the following line in a Type K menu frame produces a text
box that contains the name of the current file:
tb 101 +1 +2 22 1 «VA$fi»
Radio buttons may be organized into more than one group. The user must
select one/or each group in order to execute the dialog box. However, only
one button in the set can be selected at a time.
You use the RB (Radio Button) control code to include radio buttons in a
dialog box. Consecutive RB control codes form a set from which only one
can be selected at one time.
For example, the following line in a Type K menu frame produces a set of
radio buttons that enables the user to choose ALL, EVEN, or ODD:
rb 103 12 +1 10 1 ALL
rb 104 + +1 + 1 EVEN
rb 105 + +1 + 1 ODD
Enter ASCII character 251 as the option argument (after the text) to indicate
the radio button that is automatically selected when the dialog box is
displayed. To enter the character, type Iciiil®251. You can also include a
conditional statement to select the radio button depending on the current
environment.
For example, the following line in a Type K menu frame selects radio
button 3 if the display is draft view:
rb 3 +5 +12 40 12 Button &1 «VA$dt»==1 N
When XyWrite displays the dialog box, it indicates the selected radio
button setting with an asterisk.
113
Creating a Dialog Box (cont'd)
For example, the following line in a Type K menu frame produces a check
box that enables the user to choose to print only the selected block:
cb 107 12 + 25 1 &Print selected block
The user presses I Spaceball to turn any check box on or off. XyWrite displays
an "X" to indicate an activated check box.
Enter ASCII character 251 as the option argument (after the text) to indicate
that a check box is automatically selected when XyWrite first displays the
dialog box. To enter the character, press [ait] |m|251 . You can also include a
conditional statement to select the check box depending on the current
environment.
For example, the following line in a Type K menu frame produces check
box that is preselected if macro 1002 contains an "R"
cb 107 -1 +3 11 1 SRead Only «VA@1002»=="R’l^
You include one XPL program for each pushbutton. The pushbutton with
ID 1 runs the XPL program designated by the first ASCII character 2 (B) or
ASCII character 1 (g); the pushbutton with ID 2 runs the second, etc.
There are several predefined pushbuttons you can use; for example, "OK"
has 1 as an ID number and "CANCEL" has 2 as an ID number. ID
numbers 50 and over are reserved for special functions — they do not
(cont'd) Creating a Dialog Box
For example, the following lines in a Type K menu frame include a default
pushbutton (OK) and a CANCEL pushbutton in the dialog box:
dp 1 40 1 10 1 OK
pb 2 + +2 + + Cancel
You use the LF (List Files) control code to list all the files in a directory.
You use the LD (List Drives and Directories) control code to list all the
drives available on your computerand directories available from the
current directory. The user can select a drive by moving the cursor to a
specific drive in the list and pressing 0- If there is an asterisk (*) in the text
box when the user executes the OK pushbutton, XyWrite displays a
directory of the selected drive rather than execute the program associated
with the first pushbutton.
For example, in the following Type K frame, the text box (ID 101) contains
*.* to produce a list of files. If the user selects an item from the List Files
Box (ID 105), XyWrite updates the contents of the text box with the
selected information. If the text box contains a wild card and if the user
selects the OK pushbutton (ID 1), XyWrite builds a new directory using
that specification.
115
Creating a Dialog Box (cont'd)
{{K.Open}}
1 1 6 2 66 16
tx 101 2 1 @ 1 Open File:
tb* 102 2 +1 25 1 «VA@1001»
•<
It 6 2 +3 20 8
Id 106 +22 +0 20 8
lx 104 2 +9 40 1 Current Directory: «VA$pa»
dp 1 50 1 11 1 &OK
pb 3 +0 +2 11 1 SFind...
pb 4 +0 +2 11 1 O&ptions...
Pb 2 +0 +2 11 1 SCancel
Pb 5 +0 +2 11 1 SHelp
cb 107 +0 +3 11 1 SRead Only
You use the LB (List Box) control code to list any words you want. You
specify the words in the text argument, separated by ASCII character 124
(i). You can include a list of macros in a List box. For example:
lb 102 3 3 22 1 «VA@111» l«VA@121» l«VA@122» l«VA@98»
I«VA@1O1»<-
The List Files Box, the List Drive and Directories Box, and the List Box can
be linked to the closest text box above it in the list; so that whenever the
user selects an item in one of the boxes and presses |Spacebaf|, XyWrite
inserts the selected item into the text box.
Special Lists. There are also some special values you can use to produce
lists with the LB control:
@x lists the contents of a macro (x).
lx lists one of the following:
?AS symbol sets
?BO BORDER commands in the current document
?DZ all sizes available for the default font and highlights the
default size
?FO fonts used in the current document
?IG graphic files included in the current document
?MA all macros
?PC printer control codes
?PP printers listed in the PP Table of SETTINGS.DFL
?PR files currently waiting to be printed (automatically
updated)
?SB symbol set available for the current font
?SG sizes of all macros (not contents), including extended
macros and special macros for XyWrite
?SP spelling alternates (used only by the spelling dialog box)
116
(cont'd) Creating a Dialog Box
For example, the following produces a list box that when displayed lists
all the BORDER commands in the current document:
lb 240 5 +2 15 2 ?BO
List Services. The List Services feature enables you to display a directory,
select multiple files in the directory, and execute a command that affects
all the selected files, one after another.
To display a directory from which multiple files can be selected, use the
/LO switch with the DIR command. For example:
@BX(dir/lo%101)«EX»
i
To select a filename from the displayed directory, put the cursor on the
filename and press the space bar. XyWrite indicates selected filenames
with an asterisk.
For example, the following removes from disk all the files selected in the
list box:
®BX (del/ls %101)«EX»
117
Creating a Dialog Box (cont'd)
When the dialog box is displayed, the user cannot move the cursor to the
Group box unless it contains controls that the user needs to access (radio
buttons, list boxes, etc.).
For example, the following groups two lines of fixed text into a box:
gb 107 1 6 35 4 Shortcut:
tx +2 +1 28 1 Alt+PgDn Next page
tx + +1 28 1 Alt+Pgllp Previous page
When the dialog box is displayed, the group box appears like this:
condition is a test that can be evaluated to have a true or false value; it can
be any boolean expression, such as normally found in an IF statement.
118
(cont'd) Creating a Dialog Box
For another example, the following option argument uses $WS (Window
Status) to test if there is a file open. If the window is empty ($WS=0),
XyWrite dims the item:
«va$ws»==01
You can test two or more conditions to determine whether or not to select
or dim a radio button or a check box. The test can be true in one case or
the other or in both cases (similar to OR and AND conditionals in
programming).
To test two or more conditions (OR), one or more of which must be true in
order for the test to be true, list each condition followed by a vertical bar
(ASCII character 124) and the action to take if the condition is true. For
example the option argument in the following control line checks to see if
line spacing is set to .50 or if automatic leading is off:
rb 5 2 2 10 1 Half «vals»==.50l7l«vaal»==oN<-
If line spacing is set to .50, XyWrite selects radio button 5 as the default
and exits. Otherwise, it tests to see if automatic leading is off; and if so, it
selects radio button 5 as the default and exits.
To test two or more conditions (AND), all of which must be true in order
for the test to be true, list each condition followed by a vertical bar (ASCII
character 124). At the end of the list include the action to take if the
condition is true.
For example, the option argument in the following control line checks to
see if line spacing is set to 50 and automatic leading is off:
rb 5 2 2 10 1 Half «vals»==.50l«vaal»==0lt/<-
If both conditions are true, XyWrite selects radio button 5 as the default.
Separate the validation from the text with the string ;**; followed by one of
the following validation type indicators.
119
Creating a Dialog Box (cont'd)
> indicates that the field is mandatory. If the field is left blank, the user
cannot execute the dialog box. > must appear before any other
validation.
< indicates a list of pushbuttons you do not want validated. (In XyWrite,
pushbutton 2 is always Cancel and is never validated and pushbutton
62 is always help and never validated.) For example, the following
avoids validation if the user chooses pushbutton 2,3,9, or 62: ;“;<3,9.
NOTE One Validation Per Control. You can only use one validation with each
control with the exception of < and >. < and > are the only validation
indicators you can use in conjunction with another type of validation.
# indicates that the user can enter only an integer into the field.
- indicates that the user must enter two integers separated by a hyphen.
. indicates that the user can enter either a number with a decimal point
or an integer into the field.
\ validates that the path and drive the user entered exist.
t (ASCII character 23) validates that the filename the user enters does
not contain any invalid characters (for example, * + = ,.?"/ \ [ ];: « »
|), that there are eight characters or fewer in the filename, and that
there are three characters or fewer in the extension.
= validates that the filename the user entered exists, and performs the
same validation as t.
120
(cont'd) Creating a Dialog Box
A validates that the filename the user entered does not exist.
$ accepts a number with a leading dollar sign if the user enters one; i.e.,
11.50 and $11.50 are both valid user entries.
I accepts the word “AUTO" used either for the SI (Size) argument in the
FA (Frame Area) command or for line spacing in footnote and text
formatting commands. Enter it with the two-letter command; for
example,
[ validates that the style the user entered exists in the cunent document.
For example, the following indicates that if the user selects any
pushbutton other than 2,3, 9, or 62, XyWrite validates that the value
entered in the mandatory field is a valid argument for the Left Margin
command:
121
Creating a Dialog Box (cont'd)
In either case, you use the following format for the executable line:
9cl=stringT. 'c2=string2!
cl and c2 are control numbers.
string! and string2 are the values you want included in controls Cl and
C2, respectively. You could use the VA command to insert a current value
into the control.
NOTE Ending Executable Lines. You must end each executable line with either
an ASCII character 124 (I) or an ASCII character 1 or an ASCII character
2.
Assume that the example executable line is the fifth in the group of
executable lines for a "Page Setup" dialog box. When the user selects the
"Letter" radio button that has an ID of 5, XyWrite automatically enters a
value of 85 into the "Width" text box that has an ID of 10 and a value of
11 into the "Length" text box that has an ID of 11.
122
(cont'd) Creating a Dialog Box
123
Intro You use a Type 5 frame in either the menu, dialog box, or help file to
execute commands and programs. Although Type 5 frames may contain
displayable lines, they are usually used as "routine only" frames, which
initialize some variables before moving to a dialog box or a help frame.
Keyword Label
The first line of a Type 5 frame contains the label (5 followed by one or
more keywords) enclosed in a pair of double curly braces {{}}.
Displayable Lines
A Type 5 frame can contain up to twenty displayable lines. Refer to the
next section, "Positioning Menu Screens," for information on determining
the placement of Type 5 displayable lines on the screen.
If you do not want to display a screen, simply include the program as the
second line of the menu frame.
Executable Lines
The content of the executable lines depends on the function you want the
frame to perform. In order to execute a program, start the line with an
ASCII character 2 (0).
Executable lines can wordwrap. An executable line begins with the ASCII
character 2 (0) and ends at the next ASCII character 2 or EX command.
For an example, the following Type 5 frame contains a routine that saves
the current status of the NW (New Window) default to macro 70 before
setting the default to 0:
{{5,SetNW0}}
0 « SX70,« VA$NW» » BX (d NW=O)0
After XyWrite performs the function that calls the SETNWO subroutine, it
can restore the original settings by calling another subroutine:
{{5 .Restore NW}}
0BX (d NW=«PV7O»)0
124
Positioning Dialog Box and Help Screens
Intro You use the DGW (Menu Screen Window Position) command in a menu
file to position a Type 5 frame or in a help file to position a Type C frame
on the screen.
I is the number of columns you want the screen displayed from the left of
the window
t is the number of lines you want the screen displayed from the top of the
window; you must specify a number greater than 3
Intro When a menu screen is displayed, the user can move directly to a specific
item by pressing the accelerator key associated with the item. When a
menu screen is displayed, accelerator keys are highlighted.
You set this up in the menu frame and in the keyboard file.
For example, the following two displayable lines in the Type 0 frame in
XY4.MNU designate F as the accelerator character for the File item and M
as the accelerator character for the Format item:
SFile « JDMBFileo ,♦
When the menu bar is displayed, the user can make a selection by pressing
the letter key that corresponds to the highlighted letter in the word (for
example, press 0 to select File; press [Mj to select Format).
Dialog Boxes
To indicate the accelerator key for a dialog box item, precede the character
you want as the accelerator with an ampersand (&) in the text argument of
the item's control line.
For example the following entry designates "2" as the accelerator key for
the radio button (ID 105):
rb 105 + +12 + + Button &2
126
(cont'd) Using Accelerator Characters in Menu Screens
For example the following entry designates "N" as the accelerator key for
the text box (ID 101):
tx 100 8 8 100 12 &New Filename:
tb* 101 + +14 100 12 123456789:
The cursor moves to the text box when the user presses [Ait] [n].
Keyboard File
Assign the AK (Accelerator Key) function call to the corresponding
character in the ALT table of the keyboard file. The AK function call has
the form:
AK.accel
For example, the following notation in the ALT Table of a keyboard file
assigns the accelerator character 2 to [Ait][21:
3=ak,2
When the dialog box is displayed and the user presses ®[2], the cursor
moves directly to the text with "2" as the accelerator character.
127
Providing Context-Sensitive Help Screens
Help Pushbuttons
You can provide help for an entire dialog box by including a frame in the
help file with a label in the following format:
{{#,feyword}}«-
# indicates the frame type.
keyword is the name of the menu frame in the menu file.
Result: When the user activates the help pushbutton in the dialog box,
XyWrite displays the information contained in the help frame.
Refer to the next section, "Displaying a Scrollable Help Screen," for more
information on Type C frames.
keyword is the name of the menu frame in the menu file that includes the
field.
id is the number of the dialog box item for which you want to provide
help. Do not include a space between keyword and id.
128
(cont'd) Providing Context-Sensitive Help Screens
Result: When the user puts the cursor on the item and presses [FiJ, XyWrite
displays the information contained in the help frame.
For example, a help frame with the following keyword label in the help
file provides information on the menu frame with the keyword GHelp:
{{C,GHelp@}}<-
For example, in the menu file the following item appears as part of a Type
L menu frame:
&New...« JDNew» .Create a new file
To provide information on that item, include a help frame in the help file
with the keyword New®.
Command Markers
You can use the ST (Show Triangle) function call and a Type C help frame
in the menu file to provide full explanations of command markers. When
the user puts the cursor on a marker in a text file and executes the ST
(Show Triangle) function call, XyWrite displays a frame (if one exists with
the proper keyword in the menu file).
The help frame must reside in the menu file and have as one of its
keywords the two-letter embedded command mnemonic preceded by a A.
For example, the following Type C label has the keyword OF and can be
used to provide help for OF (Offset) command markers:
{{C,"OF}>
129
1 111Vllllliy LMtad-Sensitive Help Screens (cont'd)
To make the function easier to use, assign ST to a key in the keyboard file.
For example, the following entry in the keyboard file assigns the ST
function call to key 35 (H):
35=XH,ST<-
130
Displaying a Scrollable Help Screen
Intro You use a Type C frame in the help file to display a help screen that you
can scroll vertically. You can link a Type C frame to other help frames to
replace the currently displayed screen; for example to display a related
topic.
To replace the currently displayed screen, the user puts the cursor on a
bold keyword and presses 1*^1.
When the screen is displayed, the cursor moves to any bold or underlined
keyword visible. When the user presses cursor keys, the cursor moves
from visible keyword to visible keyword.
Keyword Label
A Type C frame can consist of any number of lines. The first line contains
the label (C, followed by one or more keywords) enclosed in a pair of
double curly braces {{}}.
The second line can contain a DGW (Dialog Window) command to set the
size of the window, followed by any formatting commands you want to
use. Refer to "Positioning Dialog Box or Help Screens" for more
information.
Displayable Lines
Each subsequent line contains text you want displayed on the screen. To
link the frame to another frame, include a word either in bold or in
underline mode somewhere in the text and use the JD (Jump to Dialog
Box) command with the other frame's keyword to link the two frames.
NOTE #2 Bold Mode. You can use bold mode throughout the frame for emphasis.
For example, the following Type C frame in XY4.HLP has the label,
"ghGetstart."
Displaying a Scrollable Help Screen (cont'd)
{{C.ghGetstart})
«DGW05,04,70,19» «MDBO»< Exit >«JDExHelp»«MDNM»
«MDBO»< Index >«JDIdxHlp»«MDNM»
«MDBO»< Keys >«JDKeyHlp»«MDNM»
«MDBO»< Previous >«JD»«MDNM»
If the user puts the cursor on “Exit" and presses 0, XyWrite executes the
subroutine, ExHelp. If the user puts the cursor on “System
Requirements," XyWrite displays the frame with the keyword S49P.
132
Including Text in Screen Borders
Intro When XyWrite constructs dialog box and help screens from information in
a Type 5 frame with displayable lines or a Type C frame, it automatically
includes a border for screen display. You can use the DGT (Menu Screen
Top) command to automatically include text in the top of the border and
the DGB (Menu Screen Bottom) command to automatically include text in
the bottom of the border.
You specify border text for an individual dialog box or help screen by
using DBT or DGB on the second line of the frame, immediately following
the label.
When you type either command on the command line and press F^l, a
command window opens on the screen. Type the text exactly as you want
it to appear in the border, and then press [fill to close the command
window and complete the procedure.
For example, the following includes the text "How to Find a File" in the
top border of a Type C frame that discusses finding files:
{{C.find}}*-
«DGTHow to Find a File» <-
You can specify default text that you want included in the border of every
help screen by using the DGT or the DGB command on the second line of
the help file. For example, the following includes the text "Press the
Return key to continue," in the bottom border of all the help screens
generated by the file:
:HL;^
«DGBPress the Return key to continue»«-
133
umpiring UUMllUU Explanations ot Error Messages
Intro You use a Type 9 frame in the help file to activate the XyWrite feature for
displaying a full screen of information about the last error message the
user received. It is another way to access frames by using XyWrite's error
coding system. A single Type 9 frame in the help file enables XyWrite to
display the Type C frame that contains in its label the keyword number
associated with the last error message displayed.
Keyword Label
A Type 9 frame consists of only one line which contains the label (9
followed by one or more keywords) enclosed in a pair of curly braces {(}}.
For example, in XY4.HLP the Type 9 frame looks something like this:
{{9,last error message,AF1}}«-
In the example, the 9 indicates that the frame is a Type 9. last error message
and AH are the keywords associated with the frame.
Displayable Lines
You use a Type C frame to enter the message you want displayed for one
or more errors, and use one or more internal XyWrite error numbers as
keywords. Add leading zeros to error numbers less than three digits (for
example, 006 or 032). You can scroll through the XY4.HLP file for many of
the current error numbers. (All the frames that describe errors are
grouped under the Type 9 frame label.)
In the label, the C indicates that the frame is a Type C and Oil is the
internal number of the error message.
You can have XyWrite automatically display your error help screens
whenever an error occurs. Use the Default EH=1 to activate the feature;
EH=0 to disable it. (Although this feature is helpful for beginners, it can
slow the performance of more experienced users.)
tip Building a List of Error Messages. The VA \nnn command returns the
error message associated with error number nnn. You can use this
command to create a macro that builds a complete list of error messages.
134
Testing Dialog Boxes and Help Frames
Intro XyWrite has several functions to assist you in debugging dialog box or
help files.
• ?d and ?h test commands
• Quick Help (QH) function call
• Quick Print (QP) function call
For example, to display the help frame with the keyword credits:
[Fsjcredits ?h[Hj]
To use QH, position the cursor in the frame you want to test and press
[qji1[Ait]|ShiH|Q. XyWrite immediately displays the associated screen.
NOTE QH Not Useful with All Frames. QH does not work with Type 0, Type C,
or Type L frames.
To use QP:
1. Position the cursor in the frame you want to test.
nr
Accessing a Menu Screen with One Keystroke
Intro You use the JM (Jump to Menu) function call in the keyboard file to access
Type K or Type 5 frames directly from the keyboard.
In the XyWrite keyboard file, all the JM function calls are preceded by XH
(Exit Help) commands to remove any currently displayed help, dialog
box, or menu screens before jumping to the frame.
For example, the following notation in the CTRL Table of the XyWrite
keyboard file assigns the Open dialog box to key 24 (O):
24=XH,JM.(,O,p.e,n,)
When the user presses [cw]O, XyWrite first removes any help, dialog box,
or menu screen displayed and then displays the dialog box that has the
keyword Open.
136
Accessing a Help Screen with One Keystroke
Intro You use the JH (Jump to Help) function call in the keyboard file to access
Type C frames directly from the keyboard.
k,e,y,w,o,r,d is the keyword of the help frame you want to access. The
keyword must appear in parentheses and each letter of the keyword must
be separated by a comma.
In the XyWrite keyboard file, all the JH function calls are preceded by XH
(Exit Help) commands to remove any currently displayed help, dialog
box, or menu screens before jumping to the frame.
For example, the following notation in the CTRL Table of the XyWrite
keyboard file assigns the help frame with the keyword AF1 to key 59 (Fl):
59=XH,JH,((A1F11,)
When the user presses (OdllFil, XyWrite first removes any help, dialog box,
or menu screen displayed and then displays the help frame that has the
keyword AF1.
137
Loading Menu, Dialog Box, and Help Files
Intro Use the LOAD command to load your menu, dialog box or help file as you
would any other customization files. For example, to load a menu file
named MY.MNU and a dialog box file named M Y.DLG:
Type: |£5]load my.mnu+my.dlgS
If you haven't entered the special file label (;MN; or ;HL; or ;DG;) as the
first line of the file you are loading, XyWrite displays the error message,
"Customization file requires a file label."
Since menu, dialog box, and help files can become very large, XyWrite
never keeps the whole file in memory. The first time you load a menu,
dialog box, or Help file, XyWrite creates an internal index of the file and
stores the index at the bottom of the file. This index, and certain other
types of frames, are all that actually load into memory, which allows a
very large menu, dialog box, or help file to consume very little memory.
When you access the menus or help facility, XyWrite checks the index,
much as you check the index of a book, to determine where to get the
information you want displayed. It then refers back to the file stored on
disk to get the information to display on the screen.
If you load the same unchanged menu, dialog box, or help file again,
XyWrite does not rebuild the index, so the file loads very quickly.
Whenever you edit a menu, dialog box, or help file and store it back to the
disk, the index is removed. The next time you load the file, XyWrite !
rebuilds the index. Therefore, loading times vary depending on whether
or not the menu, dialog box, or help file was edited.
Although a menu, dialog box, or help file can be any size that fits on a
disk, the index cannot exceed 64K. ;
138
Printer Files
For the most part, printer manufacturers have adopted different control
codes. As a result, software manufacturers have had to develop ways of
handling printer information. We have developed a library of printer files
that translate XyWrite commands into codes that the printer understands.
You may never need to modify your printer file, but this section gives you
the information you need if you do want to customize it.
139
Basics of the Printer File
Purpose A printer file is a file that contains the settings and control codes for a
particular printer. XyWrite comes with printer files for over 150 specific
printers. These files are ready to use—all you need to do is see which file
applies to your printer, and then load that file with SETP or LOAD.
As part of the installation procedure, you are asked to identify the printers
that are part of your current setup. The installation procedure then copies
the appropriate printer files into the XY4 directory. To see the names of the
printer files available on your computer, display a selective directory of
XY4. (All XyWrite printer files have the extension PRN.)
To find out which printer model a particular printer file supports, call up
that file—the manufacturer's name and model numbers are listed at the
top of each printer file.
1. Call to the display the printer file you use. For example:
Type: |R]call post35n.prn0
2. Search through the printer file to see if the command you want to enter
is already present.
4. To cause the setting you entered in the previous step to take effect,
store the printer file and then load it as described in the next
procedure.
NOTE Testing Changes. We recommend that you save and load the printer file
after each change so you can easily identify and correct errors.
140
(cont'd) Basics of the Printer File
141
i ■ luiLLi me (cont'd)
Let's say you have loaded a PostScript printer file, and you send a file
containing Times Roman text to your printer. The printer codes listed in
the FO< statement above are inserted into the text in place of the ;
embedded command UF TIMES. This causes Times Roman to begin.
When XyWrite encounters the next UF command, it inserts the printer
codes associated with the typeface specified in that command. j
>
I
II
142
(cont'd) Basics of the Printer File
TERMINOLOGY
The printers supported by XyWrite fall into three categories: scalable
printers, non-scalable printers, and Hewlett-Packard LaserJet-compatible
printers.
scalable printer — A printer that uses character outlines rather
than point-size-specific (bitmapped) characters. The outlines can be
reduced or enlarged to produce a wide range of type sizes.
PostScript printers (e.g., Apple LaserWriter NTX, IBM Personal
PagePrinter, and QMS PS 810) are a common example of scalable
printers. The Hewlett Packard LaserJet III and Canon LBP4 are also
scalable printers.
non-scalable printer — A printer that uses point-size-specific
(bitmapped) characters. Non-scalable printers support a more
limited range of point sizes than scalable printers. Dot matrix
printers (e.g., Epson LX 800) and LaserJet Series II printers are
common examples of non-scalable printers.
Hewlett-Packard LaserJet printers (and compatibles) — A
series of printers that use the PCL control language. LaserJet
printers support a large character set, which is divided into a series
of symbol sets.
MB
Basics of the Printer File (cont'd)
TERMINOLOGY (cont'd)
leading (pronounced led-lng) — The vertical spacing of lines of
type, measured from baseline to baseline.
144
(cont'd) Basics of the Printer File
NOTE Comment Lines. Any line starting with a semicolon (;) is a comment. The
entire line is treated as a comment — you cannot place a comment to the
right of a printer setting. The line is ignored when the printer file is
loaded into memory. For example:
;This is a comment line.«-
You can place comments throughout the printer file as you wish, except
you cannot put comments in tables that have a specified number of lines
(for example, VS:).
145
Basics of the Printer File (cont'd)
G> 3 00
.NOTES
X.OA Initial release of printer file VS: 36
(Z> COURIER!0-STANDARD
DUTCH-DRAFT-PRO, DRAFT-PRO/WIDE.
SWISS-SANS-PRO
/PRINTER FONT MATCHING
FP:4
COURIER::-!. 66,154.201,211
DUTCH-5431,5451,5559,5579
SWISS-34133, 34123,34231, AT: DELE'
PRO-SWIS5.DUTCH ATlS??-
/DEFAULTS AND PRINTER SETTINGS
:i-i
?X—?
DF FF-1
& DF EJ-1
DF BS-1 AT:UNDERLINE
HD MM-255
ZL-0
5Z-12
.•NODE TABLE
1
NM»f)
DOUBLE*EMPHASIZED)
NDERLINE)
TALJC)
RV-("-FORMS)
SU-(•-SUPERSCRIPT) US:SuB
SD-("-SUBSCRIPT) SZ-12
IN-("-INSERT) VL-42
DN-("-DELETE) ET
MM-(MICRO) ;width tables
FN-O WD/10CPI
SW-I2
GRAPHICS CODES
ET
GB<??B
GE<?
WD:12CPI
O BK?*L?W1KB
B2<
BE<
sw-10
ET
GV-6,3.9,0,15
/SUBSTITUTION TABLES
GR-122,72
/TERMINATOR STRINGS SU:SUB
FB<***t©*6 !-*R
©■ LE</ \-*R VW
FE</ 1-*R )**
FE<4-2/ ET
/END OF PRINTER FILE
146
Printer File Heading
Intro The heading section of the printer file includes the file label, an audit trail,
and notes. The size of the heading section varies from printer to printer,
and most of the data it contains is for information only. The exception to
this is the file label, which is required by XyWrite. Each line in the
heading section is preceded by a semicolon, indicating that it is a
comment.
Label The first thing in every XyWrite printer file is the following label:
;PR« cp»; / LA gJD
where cp is the number of the code page (437 or 850) used to create the
printer file. Most XyWrite 4.0 printer files created in code page 850. This
label, which must be in uppercase, identifies the file as a printer file when
you load it into memory. Immediately after the file label are formatting
commands, the version number of the file, and the types of printers
supported by the file.
audit The audit trail describes the changes made to the printer file each time a
Trail new version is released.
Although the function associated with each PC number is the same from >
printer file to printer file, the content of the PC table varies widely from i
printer file to printer file. There are two reasons for the variation: (1)
individual printers do not support all the functions defined in the master
table; and (2) different printer manufacturers use different control codes to
perform functions.
PC:
H,code
it,code
ET
where # is the PC number and code is the printer-specific control codes for
that function.
148
(cont'd) Printer Control Table
149
Printer Control Table (cont'd)
As an example, the following table is from the printer file for the Epson
FX850 printer:
PC:
80, «-C cf
81, «-CJ3
82, <-C 2
83, <-C a
12O,*-|1
123,*-12
ET
The first line (PC:) starts the table. The next four lines (labeled 80-83) are
the codes for paper size (letter, legal, A4, Executive). The lines labeled 120
and 123 are the codes for paper trays. The last line (ET) ends the table.
Let's take a look at another example. The following PC table is from the
Hewlett Packard LaserJet IIP printer file:
PC:
34, «-&d@
35, <-&d3D
80, «-&l2A
81, <&I3A
82, <-&l26A
83, «-&l1A
85,«-&l81A
87, «-&l80A
88, <-&l90A
89, <-&l91A
120, «-&l1H
121, «-&I2H
122, «-&I3H
123, <-&I4H
124, «-&I6H
140, *-&IOO
141, <-&I1O
240,?«-&l?VX
ET
This PC table includes lines from five different code groups: underscore,
paper size, paper tray, orientation, and multiple copies.
151
Printer Control Table (cont'd)
NOTE #2 Wild Cards. Some printer functions defined in the PC table require a
value in order to be executed. For example, PC 241 is the printer control
code for shaded printing. In order to process this control code, XyWrite
must pass the desired percentage of shading to the printer.
For this reason, PC codes 240-255 use a wild card in their definitions. The
syntax of the wild card in the PC table is:
#,?code?Vcode
where # is the PC code; ? is the wild card indicator; code is the printer code
for the function being defined; and V is the variable that will be replaced
by the second argument of the PC command when you print your
document.
Note #3 How PC Codes Are Invoked. PC codes are automatically invoked when
you select a printer-related function from the menu. (Functions that are
not supported by the currently loaded printer appear dimmed in the
menus.) The menus execute one of the following commands, depending
on the function:
JB (Job Begin)
PB (Page Begin)
PC (Printer Control)
LQ (Letter Quality)
EF (Special Effect)
DY (Dye)
OR (Orientation)
The JB, PB, and PC commands are described on the next page. Refer to
the Command Reference Guide for more information about the LQ, EF, DY
and OR commands.
Printer Control Commands
FORMAT EJpb #
El pc #,v
E3 default jb=#,
Purpose PB, PC, and JB all allow you to send printer codes defined in the PC table
to the printer. However, each command processes the printer codes in a
slightly different manner:
If you want to invoke one of the PC codes, it is important that you choose
the appropriate command. For example, duplex printing needs to be
established as a default (with JB), paper size needs to be established at the
top of the page (with PB), and font card selection is generally established
at the text location where you want the font card to take effect (with PC).
The table of PC codes shown earlier in this section indicates the command
you should use for each group of PC codes. (Remember, the PC codes can
be invoked automatically via the menus.)
There are 25 groups of PC codes, plus four single codes at the end of the
table. When you turn on one PC code in a group, the other codes in that
group are automatically cancelled. PC codes invoked by the PC or PB
commands are automatically reset at the end of a document; PC codes
invoked by the JB default setting remain in effect until another JB
command is issued (see Note ill).
153
Printer Control Commands (cont'd)
1. Move the cursor to the page that you want to start printing from the
lower paper tray.
Type: [f5]pb1230
Result: When you print the document, the code to switch to the lower
paper tray is sent to the printer at the top of the page that contains the PB
command. The printer continues to print from the lower paper tray until
you enter another PB command from the same group of PC codes or until
the end of the document.
NOTE #1 JZ Default Setting. The JZ default setting affects the way XyWrite resets
the PB and JB commands. Refer to "Printer Settings" for information on
the JZ setting.
154
Font Matching
Intro When you format a document, there are a number of type specifications in
effect, even if you don't enter an embedded command for each of them.
When you print your document (or display it in graphic view), XyWrite
compares the type specifications in the document to the font tables in the
printer file to determine what font most closely matches the current type
specifications.
If you formatted your document using the menus, there will be an exact
match between the type specifications in your document and the font
tables in the printer file. However, if you received a XyWrite document
that was formatted by someone else (perhaps for a different printer),
XyWrite may not find an exact match.
When that happens, XyWrite looks for a font that most closely matches the
type specifications. It makes the selection based on the following
priorities:
1. Orientation: If the printer file supports portrait and landscape fonts,
XyWrite matches on this specification first.
2. Type Size: From the list of fonts in the correct orientation, XyWrite
looks for a font that is also in the requested type size.
3. Typeface: From the fonts that match the first two criteria, XyWrite
looks for a font that is also in the requested typeface (e.g., Times or
Courier). If there is no font table for the specified typeface, XyWrite
looks at the FP (Printer Font) table for a typeface synonym, and then
matches on that font table. (See "Printer Font Assignments" for more
information on the FP table.)
4. Type Style: Type style (normal, bold, italic) is the next criteria XyWrite
uses to match fonts.
The process of formatting a document for printing and formatting it for
graphic view is the same. XyWrite uses the same font matching steps,
with one modification. Instead of looking in the FP table for a font match,
XyWrite looks at the FA (Font Association) table to determine what screen
font to use to represent the printer font. (The printer font can be either the
requested typeface or a synonym for the requested typeface, as described
in Step 3 above.) See "Screen Font Assignments" for more information on
the FA table.
NOTE Hewlett Packard LaserJet Printers and Compatibles. If you are using a
Hewlett Packard LaserJet printer or compatible, there are three additional
type specifications that can be used for font matching: symbol set, pitch,
and stroke weight. These specifications are evaluated after the typeface
specification.
155
Screen Font Assignments
Intro When you display a document in graphic view, XyWrite uses screen fonts
to create the display. XyWrite provides three styles of screen fonts: serif
(DUTCH), sans serif (SWISS), and monospaced (COURIER10). While you
may add more screen fonts (see Note #1), it is likely that your printer
offers typefaces for which you do not have a corresponding screen font.
FA: The Font Association table lets you associate each screen font with as
many printer fonts as you want. You use this table to match the printer
font to the most closely matching screen font (for example, to match the
printer's serif typefaces with the DUTCH screen font).
Format:
FA:h
scrfnt=prfntl,prfnt2,...
$crfnt=prfntl ,prfnt2,...
scrfnt=prfntl ,prfnt2,...
where »is the number of lines in the FA table; scrfiit is the name of the
screen font; and prfntl, prfntl are the names of the printer fonts supported
by this printer.
Example:
FA:3
courierl O=courier,standard
dutch=bookman,newcenturyschlbk,zapfchancery,palatino, times
swiss=avantgarde,helvetica,helvetica-narrow
156
(cont'd) Screen Font Assignments
NOTE #1 Screen Fonts. XyWrite uses screen fonts in Bitstream Speedo format.
There are many fonts available in this format from third-party vendors.
To use them with XyWrite, install the new fonts in the directory set up for
screen fonts (by default, this is the BTFONTS directory, which is off the
root directory). Then delete the file SCRFONTS.BIN. XyWrite will
recreate it the first time you switch to graphic view.
Note #3 DCA Typefaces. The Font Association tables in the XyWrite printer files
include associations for DCA typefaces. These typefaces, which are
represented by numbers, are used in IBM's standard document format
called Document Content Architecture (or DCA).
157
Printer Font Assignments
fp; The FP table lets you associate one printer's font names with another
printer's font names. This is handy if you use more than one printer,
because you can output the same file on both printers without changing
the file's UF commands.
Format:
FP:»
/oHf=sy»io»yw2,synony»i2,sy»onym3...
where n is the number of lines in the table, font is the name of the font
used in this printer file and synonyml, synonym!, synonym3... are the names
of the fonts used in alternate printer files.
Example:
FP:3
courier=elite
times=tmsrmn
helvetica=helv
When this printer file is loaded, XyWrite uses the printer font TIMES
whenever it encounters the command UFTMSRMN in your documents; it
uses the printer font COURIER when it encounters a UFELITE command;
and it uses HELVETICA when it encounters a UFHELV command.
If you work in graphic view, you should also include the screen fonts in
the FP table. The screen fonts need to be defined as fonts (for printing in
image mode) and as synonyms (for printing in non-image mode from
graphic view). For example:
FP:6
courier10=courier,standard
dutch=bookman,newcenturyschlbk,zapfchancery,palatino,times
swiss=avantgarde,helvetica,helvetica-narrow
courier=elite,courier10
times=tmsrmn,dutch
helvetica=helv,swiss
158
(cont'd) Printer Font Assignments
NOTE #1 DCA Typefaces. The FP tables in the XyWrite printer files include
associations for DCA typefaces. These typefaces, which are represented
by numbers, are used in IBM's standard document format called
Document Content Architecture (or DCA).
Note #3 Customizing FP Tables. As delivered, the XyWrite printer files are not set
up to share font names between printers—the number of potential
combinations is too great. You can use the menus to customize the FP
table to associate the font names used by the printers in your particular
configuration.
Note #4 Troubleshooting. Let's say you installed a new Bitstream Speedo screen
font in the \BTFONTS directory according to the directions provided with
the font, and you deleted SCRFONTS.BIN so XyWrite could rebuild it
with the new screen font information. Then you formatted a document
using the new screen font and switched to graphic view. Instead of
displaying the document in the new screen font, XyWrite displays the file
inCOURIERlO. Why? When XyWrite goes into graphic view, it checks
the FA and FP tables in the printer file to see what screen fonts are
defined. If the screen font is not defined, XyWrite uses the default font
(STANDARD), which is associated with screen font COURIERIO.
To correct the problem, add the new screen font to the FA and FP tables
according to the procedures described earlier. After making the changes,
reload the printer file and then redisplay your document in graphic view.
Note #5 Image Mode Printing. Unless you are using a Hewlett Packard LaserJet
or compatible, you need to set the IM (Image Mode) default to 1 in order
to print screen fonts. XyWrite automatically downloads the fonts to
Hewlett Packard LaserJet printers, making image mode unnecessary.
Refer to "Default Settings" for more information about IM.
159
Default Settings
Intro Overview of Default Settings. All of the XyWrite default settings can be
included in the printer file. Typically, though, only the defaults that are
associated with the printer are included (the others are stored in
SETTINGS.DFL). For example, some printers can perform a backspace
while other printers cannot. The BS (Backspace) default setting is therefore
set in the printer file.
When you set a default in the printer file, the format is:
DF inn=#
where mn is the two-letter name of the command and # is the value of the
command. For example:
DF BS=1
DF EJ Eject Last Page — Enables XyWrite to eject the very last page of a
document. (The initial default is 1.)
df ej=1 Causes the very last page of a document to automatically eject
from the printer. If Form Feed is off (DF FF=O), it sends blank lines to eject
the last page. If Form Feed is on (DF FF=1), it sends a form feed character
(9) to eject the last page. Most laser printers require this setting.
df eJ=O Prevents the last page of a document from being ejected from the
printer.
If there is a Running Footer command in the document, the last page will
be ejected regardless of what the EJ setting is.
160
(cont'd) Default Settings
161
Printer Settings
Intro Printer settings are similar to default settings, but they must be included
in the printer file. You cannot set them from the command line as you can
default settings, nor should you put them into SETTINGS.DFL. When you
load a file that contains a printer setting, XyWrite doesn't just overwrite
the value for the specific setting in memory; it unloads all previously
loaded printer information from memory.
The following paragraphs describe the printer settings.
jz Job End — Specifies how XyWrite resets the JB (Job Begin) and PB (Page
Begin) commands when you print a job. (Refer to the section "Printer
Control Table" for a detailed explanation of the JB and PB commands.)
jz=O Resets PB to 0 at the end of the job; does not reset JB.
jz=1 Resets JB and PB to 0 at the end of the job.
jz=2 Resets PB to 0 at the end of any page that contains a PB; does not
reset JB.
Jz=3 Resets PB to 0 at the end of every page. Resets JB to 0 at the end of
the job.
Printer Memory. This setting gives XyWrite a variety of data about the
printer's font-handling abilities.
pm=m,f,c,o,v,s Format of the PM setting, where m is the amount of
memory available in the printer (in bytes);/is the maximum number of
soft fonts that can be downloaded; c is the maximum number of cartridges
162
(cont'd) Printer Settings
PR Printer Font Data. Specifies the file that contains the binary font
information for internal and cartridge fonts and the model of printer that
the fonts are for. At the current time, this setting applies to Hewlett
Packard LaserJet printer files only, and there are two files that contain the
font information: LJ.B1N and LJ3.BIN. LJ.B1N applies to all LaserJet
printers except the Series III.
pr=name,ty Format of the PR setting, where name is either LJ.B1N or
LJ3.BIN and ty is one of the following labels:
LJ LaserJet
L2 LaserJet 11
2D LaserJet 1ID
2P LaserJet IIP
L3 LaserJet III
3P LaserJet 1IIP
3D LaserJet HID
SI LaserJet IHSi
SB Symbol Set. Defines the symbol sets that are displayed in the Typeface
menu for Hewlett Packard LaserJet internal fonts.
sb=sl,s2,...s!0 Format of the SB setting, where si, S2...S10 are the symbol
set names.
sb=0u,10u,8u,7J,1u Example of the SB setting.
ZO Orientation Output. Defines whether orientation codes are sent after the
File Begin statement. This setting was designed specifically for PostScript
printers. (The default is 0.)
zo=0 Sends orientation codes after the File Begin statement.
zo=1 Does not send orientation codes after the File Begin statement.
?X Wild Card. Defines the wild card character for the printer file. The wild
card can be applied to the following five printer file commands:
Once defined, you can use the wild card in font definitions. For example,
in a PostScript printer file, the string) !X !Y Times (will be converted to
) 12 12 Times ( when sent to the printer.
164
Character Mode Table
Intro Printers use attributes to change the way type appears on the page.
Underlining is an attribute, for example. Different printers support
different attributes, and have different rules for how they can be applied.
Refer to the documentation provided with your printer for information on
available attributes and possible restrictions.
PT= The character mode table establishes the order in which attributes are
applied to a font. The best way to describe a mode table is by example:
PT=1
MD NM=(*)
MD BO=(*+BOLD)
MD IT=(*+ITALIC)
MD RV=(*+FORMS)
MD IN=(*+INSERT)
MD DN=(*+DELETE)
MD SU=(*+SUPERSCRIPT)
MD SD=(*+SUBSCRIPT)
MD UL=(*+UNDERLINE)
MD FN=(*)
The first line (PT=1) identifies what follows as a character mode table.
The asterisk is a wild card character that represents the font name. When
XyWrite processes your document for printing, it substitutes the font
name specified in the UP command for the asterisk in the mode table.
You can use several attributes in each mode assignment, as long as the
printer supports them. (Check the documentation supplied with your
printer to determine what attributes can be combined.) Separate attributes
with a plus sign (+); for example:
md bo=(*+emphasized+enhanced)
165
Character Mode Table (cont'd)
NOTE #1 Mode Numbers. You can assign attributes to mode numbers 1 to 255 as
well. For example:
md 32=(*+compressed)
When you use numbered mode commands to format your document, they
will not be displayed correctly in graphic view, although the printed
output will be correct. (See "Display Mode Colors" in the Defaults section
of this document for more information.)
166
Graphics Settings
INTRO The graphics settings define the control codes required by the printer to
print graphics. There are nine different graphics settings. Different
printers use the same commands differently, and not all graphic
commands are necessary for every printer. For examples, refer to the
printer files that were delivered with XyWrite.
GB< Graphics Begin String. The control codes the printer needs to enter
graphics mode. It selects data output, saves the current position, or turns
on graphics mode. (See Note #2 for information about using wild cards
with GB.)
Format: GB<$tniig
Example: GB<?<-&f0S<-*t300r<-*r0F^*r1 A
GE< Graphics End String. The control codes that tell the printer to exit
graphics mode. It also restores the printer cursor position if the position
was saved in the GB string.
Format: GE<string
Example: GE<?<-*rB<-&f1S
Bl< Raster Lines. These three settings send raster data. Bl is the Begin Raster
B2< string; B2 is the Additional Raster string; and BE is the End Raster string.
BE<
Format: B1<sirhig
B2<string
BE<string
Example: B1 <?^*b?W8DAW
B2<
BE<
GD< Graphics Draw. The control codes for shading. If the printer has a draw
command, XyWrite uses it when you request shading in an FA (Framed
Area) or BO (Border) command. Using the printer code for shading is
faster than rasterizing.
Format: GD<string
Example: GD<?) s box1 0 -?H1 DA boxlin rlineto ?W1 DA boxlin 0
rlineto 0 ?H1 DA boxlin rlineto closepath ?-1 DA box2 (
167
Graphics Settings (cont'd)
168
(cont'd) Graphics Settings
Format: GR=x,y
Example: GR=300,300
XP< Horizontal Position. This setting is for any printer that has an absolute
position command. It specifies the absolute horizontal position of text and
graphics.
Format: XP<string
Example: XP<?«-*P?Z1DAX
Vertical Position. This setting is for any printer that has an absolute
position command. It specifies the absolute vertical position of text and
graphics.
Format: yptstring
Example: yp<?<-*p?yiday
169
Graphics Settings (cont'd)
NOTE #1 Wild Card Strings. The graphics settings GB, GE, Bl, B2, and BE use wild
card strings to specify XyWrite output data. The first character after the
less than symbol (<) defines the wild card for the setting. The next time
that character is encountered, it is treated as the first character in a wild
card string. The format of the string is:
where c is the wild card character. Any character that is not used in the
printer code can be used as a wild card.
fl determines what part of the graphic XyWrite is supposed to read; it can
be W (graphic width), H (graphic height), T (total number of bytes orbits),
- (horizontal graphic scale), or ! (vertical graphic scale).
f2 is the divider that is applied to fl; it can be 1 (indicating units are
specified in bits) or 8 (indicating that units are specified in bytes).
/3 is the output format; it can be D (decimal) or H (hexadecimal). /3 is only
used when fl is set to ASCII.
fl determines the form in which the values are returned; it can be A
(ASCII format) or B (binary format).
For example:
B1 <?«-*b?W8DAw
In this example, ? is the wild card; «-’b is the transfer raster data code; and
?W8DA is the wild card string that provides the graphic width
information in ASCII decimal bytes.
NOTE #2 GB (Graphics Begin) Wild Cards. In addition to the wild card strings
explained in Note #1, the GB setting accepts two other wild cards: ?B and
?X. These wild cards represent binary data format and hex ASCII data
format, respectively. For example, the following GB command is from an
Epson FX850 printer file:
GB<??B
170
Terminator Strings
Intro You can add the following assignments to your printer file to define
printer codes at specific points in the document. (Place each statement on
its own line.)
PB File Begin String. FB allows you to send characters to the printer at the
start of a file.
Format: FB<string
Example: FB<<-G
This example sends an Escape-G at the start of each file. On an IBM
ProPrinter, this causes the characters to print second strike. If the JB (Job
Begin) default is set, those printer codes are sent immediately after the FB
code.
171
Terminator Strings (cont'd)
FE File End String. FE allows you to send characters to the printer at the end
of a file.
Format: FE<string
Example: FE<9
This example specifies that a form feed character be sent to the printer at
the end of each file. This would eject the last page in most printers. The
default FE statement contains the code to reset vertical spacing to 6 lines
per inch.
PG Page End String. The PG (Page Break) setting lets you send a character
string to the printer at the end of pages.
Format: PG<string
Default: PG</S9
The default sends carriage return, line feed, and form feed to the printer at
the end of each page. If you use the PG setting, it is important to include
the carriage return and line feed characters if you want the first line of the
next page to print correctly. PG does not normally send the string after the
last page of a file. To do that, you must specify DEFAULT FF=1 and
DEFAULT EJ=1.
Page Begin String. The PZ (Page Begin) setting lets you send a character
string to the printer at the beginning of pages. It was implemented in
Version 1.01 specifically for the Hewlett Packard LaserJet series of printers
(and compatibles).
Format: PZ<string
Example: PZ«-*P0X*-*P0Y
172
Vertical Spacing
Intro The vertical spacing section of the printer file contains the VU (Vertical
Unit) setting and the VS (Vertical Spacing) table, each of which is
described in detail below.
vu= Vertical Unit Setting. The VU (Vertical Unit) setting in the printer file
defines three separate vertical spacing specifications. Its format is:
VU=x,y,z
The first value (x) defines the number of minimum vertical movements the
printer must make to equal 1/6 inch. Whenever you issue a Vertical
Spacing command (LL, LS, EL), XyWrite multiplies the value in that
command by x. For example, if x is 50 and you issue a Line Spacing
command of LS 2, XyWrite sends instructions to the printer that it must
move an amount equivalent to 100 minimum vertical movements (50 x 2).
The second value converts the output units into screen lines. It affects the
way files are displayed on the screen when you are working with tables or
when you type to screen with PRINTS.
The third value determines how many decimal places can be used when
specifying line spacing, form depth, and other vertical format commands.
It is always 100.
VS: Vertical Spacing Table. The Vertical Spacing Table, which is optional,
allows you to specify the printer codes for incremental vertical spacing.
VS: is the vertical equivalent of CP: (see "Microjustification" later in this
chapter). This table starts with VS:w, where n is the number of lines of
code that follow. The next lines are the code directing the printer to move
one vertical unit, two vertical units, and so on. For example:
VS:4«-
ET<-
The more entries in the VS table, the more efficient the printer is,
especially for large vertical spaces. For example, if your printer moves in
points and your table has only 2 entries (1 point, 2 points), moving 1 inch
requires 36 movements of 2 points. However, if the table has 36 entries,
moving 1 inch requires only 2 movements of 36 points.
NOTE Default Value. If there is no VS table in the printer file, the built-in default
value is a carriage return, and the default VU is 1,1,100.
17|
Microjustification
Intro When you print a document, the XyWrite default is to print the text flush
left, with a ragged right edge. This is unjustified text. By embedding a JU
format command in your document, the text which follows will be printed
justified — that is, with text flush against both margins. XyWrite justifies
text by adding spaces between characters to stretch lines to the same
length.
pu= Printer Units — The PU setting converts printer units to internal units.
Internal units are used by XyWrite to calculate line breaks, page length,
and graphic distances. The format of the PU setting is:
PU=h,i>
where h is the number of horizontal movements per inch and v is the
number of vertical movements per inch. To calculate h, multiply the value
of MU by 10; to calculate v, multiply the first value in the VU setting by 6.
MU= Margin Units — The MU setting specifies the number of basic units in
1/10 inch. (A basic unit is an internal number used by XyWrite to
calculate spacing.) Margin units are the units used in the LM, RM, TS and
IP commands.
174
(cont'd) Microjustification
DU= Display Units — The DU setting specifies the number of basic units in
1/10 inch. Display units are used in determining the tabs and margins on
screen. DU is usually set the same as MU (Margin Units).
CP: Character Pitch —The CP setting specifies the printer codes for
incremental horizontal spacing. CP is the horizontal equivalent of VS.
This table starts with CP:n, where n is the number of lines of printer codes
that are to follow. The next lines are the code directing the printer to
move one horizontal unit, two horizontal units, and so on. For example:
CP:5
*-K@
«-K8
«-KV
<-K*
SC= Space Constant —The SC setting specifies the number of partial spaces
inserted between words before inserting space between characters within
a word. The SC setting is typically set to 3 or 4.
SF= Space Factor — The SF setting specifies the ratio of partial spaces added
between words to those added between characters within a word after the
SC spaces have been allocated. A larger number means more spaces will be added
between words before they are added between characters.
JL= Justify Underline — The JL setting enables (JL=1) or inhibits (JL=0)
justification of text printed in the underline mode (MD UL) (see Note #3).
JL is the same as JU.
JT= Justification Type — The JT setting is reserved for future use. AU printers
currently require JT=0.
NOTE #1 How Partial Spaces are Allocated. Before XyWrite prints a line, it
calculates the number of spaces by which the line would faU short of the
right margin, and then distributes those spaces between characters
according to the values given for the Space Constant and the Space Factor.
With SC=5 and SF=2, the first 5 partial spaces are added between words.
After those spaces have been aUocated, spaces are added in the ratio of 2
between words for every 1 between adjacent characters.
175
Microjustification (cont'd)
176
Attribute Tables
Intro An attribute is a printer effect that modifies a font. Typical attributes are:
Underline
Superscript
Subscript
Italic
Bold
Emphasized
Insert
Delete
Forms
AT: An Attribute Table contains the control codes for each attribute (or
printing effect). The format of an attribute table is:
ATJabel
AT<on code
AT > off code
ET
The first line (ATdabel) defines the name of the attribute; the second line
(AT<oh code) defines the printer code that turns on this attribute; the third
line (AT>off code) defines the printer code that turns off this attribute; and
ET ends the table.
If you look at a printer file, you will see that there are already a number of
these attributes defined, including the most common printer effects
(underline, superscript, subscript, etc.) and the attributes for printing text
that has been edited with Redlining on.
AT= Attribute Value. This optional setting, which you enter in the Attribute
Table as AT=v, uses the same values as the Font Value (FO=) setting
described later.
177
Font Tables
A Font Table contains the printer codes to access a particular character set. ;
It can also contain the value of vertical leading (VL) associated with that
character set and references to both a Substitution Table and a Width
Table. (See "Terminology ” earlier for examples of fonts.)
The following example of a font table is from the Panasonic 4420 printer
file:
FO:CENTURY
FO<^(10U<-(s1 p10v0s3b23T
sz=10
md=bo
fy=1
vl=50
UW:10CENT-BOLD-10U
US:PCSYMBOL
ET
FO: The FO: line defines the name of the Font Table, CENTURY. You can
name the Font Table anything you want (as long as it is one word), and
use the same name for different type variations within a type family (see
MD=).
FO< The FO< line contains the control codes that the printer needs to enter the
CENTURY font. For more information on control strings, see "String
Operators" which follows.
SZ= The SZ line establishes the point size of the font being defined. (If the
printer uses scalable fonts, the value in the SZ line is always -1.) The SZ
line applies only to printers that support a range of point sizes.
The default size is established at the beginning of the printer file (DF
SZ=12) as 12 point. The SZ formatting commands in your documents
override the default setting.
MD= The fourth line (MD=) defines the font variation defined by this font table.
Legal font variations are normal, bold, italic, bold italic, superscript, and
subscript (abbreviated nm, bo, it, bi, su, and sd).
178
(cont'd) Font Tables
OR= The OR (Orientation) setting is used with printers that have separate fonts
for landscape and portrait orientation. The format is:
OR=n
where n is 0 (for portrait orientation) or 1 (for landscape orientation). The
default is 0. (If OR=1, the third value of the PM printer setting must also
be set to 1.)
FY= The FY (Family) defines the font family for this typeface. The format is:
FY=n
where n is 1 for serif; 2 for sans serif; 3 for monospaced; 4 for script; and 5
for decorative.
VL= The next line (VL=) defines the vertical spacing, or leading value,
associated with this font. VL is most useful for printers that support a
range of point sizes, because it allows you to change from one type size to
another within your document and have the leading change
automatically. (VL is used only when Automatic Leading is on.) If the
laser printer has scalable fonts, then XyWrite multiplies the value in the
VL line by the point size to determine the leading (e.g., for 10 point type,
the leading is 12 (10 X 1.2). If the printer does not have scalable fonts, the
value in the VL line defines the leading for the specific point size.
UW: UW: (Use Width Table) indicates which width table defines the width of
the characters in this font.
US: US: (Use Substitution Table) indicates which substitution table is used
with this font.
179
Font Tables (cont'd)
FO= Font Value. The FO setting is an optional setting that controls several
aspects of how your text looks — from underlining to microjustification.
Enter the FO setting in the Font Table of the printer file. The format is:
FO=v
where v (value) is a decimal number. The values that can be used are
made up of combinations from the table below (For example, if you want
to use combinations 1 and 4, then the entry would be FO=5.)
Value Usage
1 Do not output the exit string for the font when
microjustifying. This allows underline mode on certain
printers to be microjustified. (Assumes that there is an
MM mode in the printer table.)
2 Do not output exit string for the font when
microjustifying, and do not output the entry string when
returning from microjustifying. This is used for
superscript or subscript on printers that roll the carriage
up or down.
4 Print soft hyphens in the current mode.
8 Allow microjustification of this font (overrides the JU
setting).
16 Don't allow microjustification of this font (overrides the
JU setting).
32 This is a foreign language font (which is basically used
with special software that recognizes character sets in
extra memory such as on an EGA card).
PS=H
180
(cont'd) Font Tables
ON; CN: (Cartridge Name) defines the set of fonts on a particular cartridge for
all printers except Hewlett Packard LaserJets and compatibles (see Note
#3). Cartridge sets must be defined after the last of the internal font
definitions. (In standard XyWrite printer files, STANDARD is the last
internal Font Table.)
The format of CN is:
CNdabel
font-tablel
font-table2
font-tablen
where label is the name of the cartridge and font-tablel...font-tablen are the
Font Tables for the fonts on the named cartridge. A cartridge set includes
all the Font Tables between CN commands, between a CN command and
an SN command, or between the last CN command and the end of the
printer file. For example:
CN:CENTURY
FO:CENTURY
FO«[80C<-[23y<-)’1<-[7l
FO>^(B<-[OK<-[23m«-[22m
MD=NM
SZ=8
VL=40
UW:CENTURY8M
ET
FO:CENTURY
FO<«-)’1 «-[7l«-[3m
FOx-(B<-[OK«-[23m<-[22m<-[Om
MD=IT
SZ=8
VL=40
UW:CENTURY8I
ET
This example defines a cartridge named Century that contains two fonts:
8-point Century normal and 8-point Century italic.
XyWrite's menus use the CN setting to determine which font names to
display in the Typeface dialog box when a cartridge is selected.
181
Font Tables (cont'd)
SN: SN (Soft Font Name) identifies the soft fonts supported by this printer file.
This information is used to create the list of available soft fonts displayed
by the menus. (The SN command is not used for Hewlett Packard LaserJet
printer files or compatibles. XyWrite gets soft font information for this
class of printers from the soft font files that are downloaded to the
printer.)
NOTE #1 Generic Font Table. The first Font Table in every printer file is a generic
one that defines the wild card used in the Character Mode Table described
earlier. The format of this table is:
FO:*
ET
Note #2 Standard Font Table. The last internal Font Table in every printer file
defines the STANDARD font, which is a 10 character-per-inch
monospaced font. This is the default font which is used by XyWrite to
format your documents when no other font is specified. If you define
cartridge sets (with the CN command), enter those definitions after the
STANDARD Font Table.
NOTE #3 Hewlett Packard LaserJet Printers and Compatibles. XyWrite gets the
font information for cartridge and internal fonts for LaserJet printers and
compatibles from the binary font files LJ.BIN and LJ3.BIN which are
shipped with XyWrite.
182
String Operators
< String Operators. In both the Font Tables and the Attribute Tables, you
can specify the printer codes that are sent to the printer. For example:
V
AT<^U or FO«-p1
Each statement includes a name (AT or FO), an operator (<) and a string
(«-U or <-p1).
The string is the series of printer control codes, and can be any number of
characters. The operator tells XyWrite to insert the string into the text in a
specific manner:
The pound (#) and percent (%) symbols are used along with the backspace
character (0), mainly for overstrike.
Entering a Mode
Format: AT<string
Example: AT«-U
The two characters Escape («-) and U are inserted into the text string at
the start of the attribute.
Leaving a Mode
Format: AT>string
Example: AT>*-D
The two characters Escape («-) and D are inserted into the text at the end
of the attribute.
Overstrike Character
Format: ATflQs/rin#
Example: AT#Q-
The string "backspace, hyphen" is sent after each character. Thus,
every character is overstruck with a hyphen. A special case of this
follows.
183
String Operators (cont'd)
Double-Strike Character
Format: AT#Q
The string "backspace, space" is a special case — it causes the printer
to move back and print the same character again. (Notice that it does
not move back and print a space.)
Pre-Strike Character
Format: AT%stri?ig
Example: AT%-D
The string "hyphen, backspace" is sent ahead of each character. Thus,
the hyphen is printed, then overstruck by the next character.
Non-Printing Character
Format: AT'string
Example #1: AT*
Every character is removed and replaced with a single space. Thus,
this is the non-printing mode, useful when spaces and all characters are
the same size. (When using proportionally-spaced characters, each space is
narrower than the characters they replace. This can present
unexpected results.)
Example #2: AT‘<-
Every character is removed altogether (and replaced with nothing).
This is also a non-printing mode — the displayed characters do not
take up any room on the printout.
184
Width Tables
Intro Different fonts have different character widths, and within proportional
fonts, different characters are assigned to different widths. XyWrite uses
this width information to determine how many characters will fit on a line
of text.
WD: A Width Table defines the widths of characters. The table begins with
WD (Width Define) and SW (Standard Width) and ends with ET (End
Table). SW and the other lines specify, the width of characters—the
characters are listed on the left of the equal sign (=), and the width is given
on the right. The width is given in Basic Unit^ (also called Width Units) —
the smallest incremental width of which your printer is capable. If the
printer uses scalable fonts, the widths are defined for 1-point fonts only.
To keep the list orderly, after SW we list the characters in order of size,
narrowest first. For example:
WD.HELVETICA
SW=20
l.:=10
1=15
ij=16
bpqv=26
WXM=30
ET<-
185
Width Tables (cont'd)
NOTE Character Widths. The width tables reflect the actual width of the
characters. Changing the width size does not affect the size or shape of
the characters.
186
Substitution Tables
Intro Your printer may be capable of printing characters that are not part of the
XyWrite character set. To enable you to access those characters, XyWrite
uses a Substitution Table.
SU: A Substitution Table specifies how displayed characters are to be printed.
It allows you to construct graphic symbols and math signs, for instance, or
to print characters that are not part of the XyWrite character set but are
part of the printers character set. The format of the Substitution Table is:
SU:na?He,x
d=p
d=p
ET
where name is the name of the substitution table; x (optional) is a generic
substitution character that is printed when the requested character is not
available (it overrides the XS printer setting); d is the displayed character;
p is the printer character or printer codes used to create a character. SU:
and ET start and end the table.
The following example is a portion of the Substitution Table from the
PostScript printer file:
SUlSUB
a=\276
A=\311
a=\331
A=\342
ET
NOTE #1 Common Names. Width Tables, Substitution Tables, and Font Tables can
all use the same names. The only constraint is that Attribute Tables and
Font Tables should not have the same names.
NOTE «2 Hewlett Packard LaserJet Printer and Compatibles. The Hewlett Packard
LaserJet printers (and compatibles) provide several symbol sets. By
default, the XyWrite printer files associate a particular symbol set with a
font. If you want to use a different symbol set, you must create a Font
Table that references the Substitution Table you prefer. (The Substitution
Tables already exist in the printer files.) The Font Table must have a
unique name, and must be supported by a Width Table.
187
Notes
Sort File
INTRO Every time you create an index, display a directory, or execute a SORT or
SORTO command, XyWrite arranges the file in a predefined way. If you
wish, you can customize the sorting order to match your needs.
189
Sort File (cont'd)
Purpose XyWrite has an internal set of sorting rules that automatically arranges
directory listings, index entries and sorted files in alphabetical order and
makes other prioritizing decisions. For example, in multi-word entries,
XyWrite alphabetizes the first word only, unless more than one entry has
the same first word. The result is a list of entries that looks like this:
You can change the default sorting order by creating a new sort file that
lists the XyWrite characters in the order you want them sorted. (XyWrite
characters include letters, numerals and other symbols. The complete list
is in Appendix E.) You can also tell XyWrite that you want a character
evaluated as a character string (for example, treat ii as "ue" for sorting
purposes).
Any characters that you omit from the sort file are ignored when you create an
index.
Let's create a sort file that builds alphabetical indexes, but ignores spaces
between words in multi-word entries. It would sort the example above
like this:
1<?D
(cont'd) Sort File
3. On the next line, enter the characters to be sorted first. In this example,
we leave the space out of the file altogether (normally, it would be the
first character in the file).
Type: aA
zZ
5. Include all characters that you want the sort character to use. In this
example, omit the blank space from the list.
6. Store the sort file and then load it using the procedure "Loading a Sort
File."
Type: [«]st£j]
NOTE #1 Startup. In order to use a sort file you have created, you must first load it
into memory. You can have your sort file automatically loaded at startup
by adding a line to your STARTUP.INT file. For example, the following
entry loads a sort file named TABLE.SRT.
BC load table.srt*-
Refer to "Startup File" for more information on modifying STARTUP.INT.
Note #2 Sort Key. When XyWrite arranges (or sorts) an index, it uses the first 80
characters in each entry to determine where the entry belongs in the list.
This number is called the sort key. You can reduce the amount of memory
required to arrange the index by reducing the size of the sort key. To
change the size of the sort key, use the DEFAULT command to enter the
SK (Sort Key) setting. (See "Default Settings" for more information.)
Note #3 SO (Sort) Setting. In addition to the order established by the sort file, the
SORTD command uses the values established by the SO default setting.
Refer to "Default Settings" for more information about SO. (The SO
setting has no impact on the order of indexes, directory listings, or lists
sorted with the SORT command.)
NOTE #4 Directory Listings. The DSORT command also gives you some options
for changing the order in which directory listings are displayed. For
example, DSORT allows you to sort files in reverse alphabetical order. For
information on the DSORT command, refer to Chapter 2 of the Command
Reference Guide. (The DSORT command has no impact on the order of
indexes or lists sorted with the SORTD or SORT command.)
192
Startup File
INTRO The STARTUP.INT file enables you to customize XyWrite to your needs.
With it, you can tailor the initial conditions, such as loading a printer file
for your printer and loading your own keyboard file.
If you are familiar with DOS, you'll notice the similarity between
STARTUP.INT, which initializes XyWrite, and AUTOEXEC.BAT, which
initializes DOS. It doesn't take much time to leam about the
STARTUP.INT file, since there are no new commands to leam.
Contents Section
193
Startup File (cont'd)
2. Move the cursor to the line after the line containing the SETP
command. Make sure you are in Insert Mode.
194
(cont'd) Startup File
3. Each line in STARTUP.INT must begin with a function call. Most lines
begin with BX, a function call that indicates that what follows is a
command. One way to enter this function call is to copy an existing
line in the file. Alternatively, you can issue the following command:
Type: [F5]pfunc bx0
5. Enter the function call Q2, which tells XyWrite to execute the
command on this line. If you copied an existing line in step 4 above,
the Q2 will already be there. Otherwise:
Type: [fsjpfunc q2@
7. Press: CT
NOTE #2 Alternate Startup File. If you want, you can specify the name of an
alternate startup file for XyWrite to run. For information on how to do
this, refer to Chapter 2 of the Command Reference Guide.
196
User Programming
197
User Programming
PURPOSE User Programming extends the power and functionality of XyWrite. You
can create new functions based on combinations of existing functions to
bring convenience and speed to your daily work.
For example, you can create procedures that accept keyboard input, such
as an order entry system. You can also write user programs to accomplish
complex editing tasks that conditionally require a change to be made. For
example, you can create a program that removes list entries dated prior to
a certain date.
198
Procedures for User Programming
Step 1 — Plan the Program. Analyze the steps you'd take if you
manually performed the task. You can then prepare a list of
instructions to tell your computer how to do the same task
automatically. If the task is complex, you may find it helpful to draw a
flowchart. Consider all possibilities and try to anticipate problems.
Step 3 — Write the Program. Turn on program mode and type the
exact keystrokes for the procedure you want. I Scroll Lock) turns program
mode on and off. When program mode is on, XyWrite displays an "S"
at the top right of the screen, displays a message on the status line, and
records all your keystrokes as function calls in your program file.
You use the PFUNC (Put Function Call) command to insert function
calls not assigned to keys into your program. (Be sure to turn off
program mode before using the PFUNC command.)
When you are writing XPL programs, you can use macros to save
strings or values. XyWrite provides one thousand programming
macros, numbered 00 to 999, for use in XPL programs.
Record the keystrokes that represent the actions you want to occur
when the program begins execution. When you reach a point in the
program where you want to insert an embedded command, turn off
program mode by pressing IScrolLockl. Type in the desired embedded
commands. Each time, press [fsJ to move to the command line, enter
the command, and press [F9].
When you are finished entering the program, be sure to tum off
program mode.
199
Procedures for User Programming (cont'd)
Step 4 — Store the Program. When the program is as you want it,
store it on disk. You cannot run your program until it is stored on
disk.
Step 5 — Test and Debug the Program. Try out your program to see if
you get the results you expected. Use the RUN command to execute
the program.
If you want to keep the program file loaded on the macro key for use
after you quit XyWrite, use the STSGT (Store Macro) command.
?0fl
(cont'd) Procedures for User Programming
You can also use expanded view for typing or modifying commands. For
example, to enter the command: « SX01,« RC» »:
1. Press: IctrillFa] to switch to expanded view.
2. Move the cursor where you want to insert the command, and:
Press:
Type: SX01
Press: [CtHIR
Type: RC
Press: fcviir>i
Press: ictrtir*!
1. Call up the program file you want to revise using the CA (Call)
command. For example, to revise the file EXERCISE. PGM:
Type: [psjca exercise. pgmITil
3. Insert and delete any commands you want removed from the program
including their surrounding double angle brackets.
201
Function Calls
In a program, XyWrite function calls look like two bold letters followed by
a space; however, they are unique, single-unit representations that must
be created either by using program mode or by using the PFUNC (Put
Function Call) command.
After you press |Saoii lock] to turn program mode on, every key you press
that is not an alphanumeric character causes XyWrite to record the
function call assigned to that key into your program file. For example, if
you press (fs|, XyWrite enters the function call BC (Blank the Command
Line) into your program.
You can use the PFUNC command to insert function calls into your
program even if they are not assigned to keys. Be sure to tum off program
mode before using the PFUNC command. For example, to enter the NM
(No Markers) function call, which hides all embedded command markers
and paragraph-end arrows
Type: [Fsjpfunc nmfcl
Two function calls especially useful in XPL programs are BC (Blank the
Command Line) and BX (Blind Execute).
The BC function call clears the command line and moves the cursor to the
start of the command line. Example: BC ca testXC
Otherwise, if they are not so enclosed, you must use the Q2 (Execute)
function call with the BX function call to execute the command. Q2 is
useful for executing a command string that may contain parentheses,
square brackets, or curly braces. Example: BX ca testQ2
202
Macros
Macros are storage areas, or buffers, you can use to save strings or values.
XyWrite provides several types of macros: ordinary, programming, and
additional programming.
• Ordinary Macros: A-Z, 0-9
These are the macros that you usually access with the [fs] keys. They
are "permanent" in that their contents remain intact when the program
stops running.
• Programming Macros: 00-999
These one-thousand macros can be used only within an XPL program.
The contents of programming macros 00-99 are saved only while the
program is running and vanish at the end of each program. The
contents of programming macros 100-999 remain intact until either
they are overwritten or you quit XyWrite. Ordinary macros 0 through 9
are distinct and separate from programming macros 00 through 09.
• Additional Programming Macros: &A-&Z, &0-&9
These can be used only with the LDPM (Load Program) and the RUN
commands. Refer to the sections that describe these commands for
more information. Like ordinary macros, these are "permanent" and
remain intact until either you overwrite them or quit XyWrite.
If you use programming macros exclusively for programs, you can reserve
your ordinary macros for on-the-fly use; since programming macros are
not accessible from the keyboard.
There are several embedded commands you can use with programming
macros. There are three kinds of information you can store in a
programming macro: a numeric expression (value), a literal string of
characters, or a program. The kind of information you are saving
determines the command you use to save it and the command you use to
access it. Refer to "XPL Commands" for more information on macro
commands.
NOTE Reserved Macros. There are also 1000 programming macros, numbered
1000 through 1999 that are reserved for use by XyWrite menus.
203
XPL Commands
AS Argument Insert Takes the string passed in from the RUN filename,string
command and saves it to macro 00. You can then use the PV (Put
Variable) command to access the contents of macro 00 on the screen, in the
text, or in an expression. For example, if you start the program with RUN
EXERCISE.PGM,1234, then macro 00 contains the string 1234 (not the
number) within the program. If you load the program to a key with
LDPM and then run that program from a macro key, macro 00 will contain
any string you enter on the command line. Since AS returns a string rather
than a number, use IS00 when vou want to use AS within SX; for example,
«SX01,«IS00» ».
Example #1: The new variable is « AS»
Example #2: « IF« AS» == « PV01» »
Once you have saved the cursor position and moved the cursor, you can
use the JMP flump) command to return to that previous position:
Example: [Kjjmp « pv01» 0
204
(cont'd) XPL Commands
EXIST filename
Exist. Checks to see if a filename already exists in the directory you
specify and takes on a logical value of either TRUE or FALSE. EXIST is
TRUE if the file is not found; otherwise, it has the value FALSE. Example:
BX exist « pv01» Q2
RC Read Character. Stops the program and waits for the user to press a key.
When a key is pressed, RC takes on the value of that key and the program
continues with the next step. Use RC in an expression; typically you
would assign RC to a macro. Example: « SX01,« RC» »
VA nm Value of Variable. Obtains the current value (or string) of the variable
you request (nm). You can request any XyWrite default setting (for
example, VA RM obtains the current value of the right margin) or any
environment setting (for example, VA SPA obtains the current drive and
path). Unlike the other commands in this section (except IS), you can use
this command either in a program or directly in text. Refer to "VA
Settings" for a list of all the variables you can use with the VA command.
Example: «VALM»
You can use the /NV switch with the VA command to display the value
on the status line. Example: lF5lva/nv Im CT
EX Exit and Continue. EX and EXI are two different ways to exit a program.
EX is a subroutine return. When used at the main level of a program, the
EX command stops the program. When used in a subroutine, EX exits
from that subroutine and continues execution at the point the subroutine
returns to. (A subroutine is any program within a program.) Example:
«EX»
EXI Exit and Stop. EXI stops the program altogether. Unlike EX, it stops
regardless of whether execution is in the main program or in a subroutine.
Example: « EX1»
IF expression trueaction El
IF Condition. This command evaluates a boolean expression and
determines whether the expression is TRUE or FALSE. If the expression is
TRUE, the commands specified in trueaction are executed and then
execution continues with the next statement after the El command (End If)
command. If the expression is FALSE, execution jumps to El and
continues from there. Examples:
Comparing Values:
«IF« PV01 »==«PV02»» «GLA» «EI» «GLB»
Comparing Strings:
«I F« IS01» ==« IS99» » « GLA» « El» « GLB»
LB label Label. Marks a spot in the program that you can jump to with the GL
command. The label can be inserted at any point in a program, and can be
any length string. LB can also be used simply as a comment in a program.
(When writing a comment that contains spaces, though, the comment
must be typed in expanded view.) Example: «LBSTART»
macro Commands
In some of the following commands, you specify #, which is a macro:
either an ordinary macro (A-Z, 0-9) or a programming macro (00-999).
Macros &A-&Z and &0-&9 do not work with those commands.
CLRASG Clear All Macros. Clears all macros — A-Z, 0-9, &A-&Z, &0-&9 and
100-1999. CLRASG is an immediate command. Example: [F5]clrasq[«j]
CLRSGT Clear Ordinary Macros. Clears all ordinary macros A-Z and 0-9, but
leaves programs assigned to programming macros (100-1999) and
additional programming macros (&A-&Z and &0-&9) in memory.
CLRSGT is an immediate command. Example: [FSlcIrsqlCT
GT # Get Macro. Inserts the text or invokes the program or subroutine assigned
to the specified macro (#).
GT # is similar to the PV (Put Variable) command, except GT inserts text
all at once, while PV inserts the text one character at a time. If overstrike
mode is on, the text output by the GT command does not overwrite
existing text Example: «GT98»
206
(cont'd) XPL Commands
PV # Put Variable. Inserts the characters one at a time from the specified macro
to the current location. May be used in two ways:
• When used outside of an expression, PV inserts the text or runs the
program assigned to the macro — either on the command line or in
text. If overstrike mode is on, the text output by the PV command
overwrites existing text. Example: « SX01,« VASfi» » « PV01»
• When used inside an expression, XyWrite interprets the content of the
macro as a number and combines it with the rest of the expression to
give a numeric result. Example: « IF« PV800» <« PV801» »
REMOVE # Remove. Clears any single macro # (or user program) from memory.
REMOVE is an immediate command. Example: [F5] remove xCT
SAVE % it,filename
Save. Saves the contents of a macro # to a new file on disk filename,
without opening the file. SAVE is an immediate command. Example:
[Rjsave %b.myfilera
SU it,string Save Subroutine. Saves string as a program to the specified macro (#).
(This is similar to SV, except the string is marked as a program.) You can
run this subroutine within another program using either the CT or the PV
command. The following example saves to macro 98 a subroutine that
executes the SAVE command. Example: « SU98.BC saveXC” »
SV #,sfringexp Save String. Saves a literal string to the specified macro (#). You can
specify the string expression (stringexp); or if you omit the comma and
stringexp, XyWrite saves any block of text that is selected when you run
the program. If you omit stringexp, XyWrite clears the macro or initializes
it with a size of 0. SV can be used only for saving literals. You can
compare this string to contents of any other macro or to a literal string.
Example #1 puts the string YES into macro 99; Example #2 initializes or
clears macro 32; Example #3 saves the currently selected block to macro
33.
Example #1: « SV99,YES»
Example #2: «SV32,»
Example #3: « SV33»
207
XPL Commands (cont'd)
SX #,numericexp
Save Expression. Evaluates a character or series of characters and saves
the result to the specified macro (#). The character(s) can be a number
(such as 88), a numeric expression (such as the result of 2 + 2), or a
XyWrite variable (such as the current left margin setting).
Example#!: «SX01,25»
Example #2: «SX02,«IS99»»
XS #1,#2,#3,#4,#5
Extract String. Divides the contents of a macro into parts (often called
parsing), then extracts and saves the parts to other macros. The XS
command works by searching the specified macro for the character(s) you
designate. If it finds a match, XS creates three new macros: one for storing
the information that precedes the matched string; one for the matched
string itself; and one for the information that follows the matched string.
#1 is the macro that contains the string you want to search.
#2 is the macro that contains the string you want to match. (You can use
wild cards in this string.)
#3 is the macro where XS will store the information that precedes the
matched string.
#4 is the macro where XS will store the matched string. (Unless you use
wild cards in #2, the contents of this macro will be identical to the contents
of #2.)
#5 is the macro where XS will store the information that follows the
matched string.
NOTE Wild Cards. XyWrite accepts wild card characters in the string you want
to match. Use the same wild cards as you use with the Search command.
To enter them into the program file, press [ShihlfEscl followed by the wild
card letter you want.
208
(cont'd) XPL Commands
209
Append to File APFIL
Purpose APFIL (Append to File) lets you change an existing line or add a new line
to a file without opening the file. The XyWrite menus use this command
to change a default setting in SETTINGS.DFL. If the file contains the
command to establish the specified default, the command is changed to
reflect the new setting; if the file does not contain a command for that
setting, one is added to the end of the file.
When looking for a line to change, XyWrite uses the first section of the
replacement string (up to the signal character x) as the search string for
locating the line to modify.
NOTE #1 Signal Character. The signal character does not have to be an equal sign.
It can be any character contained in both the search and replacement
string.
NOTE #2 If the text file contains more than one line that matches the search criteria,
only the first instance is changed.
210
BEEP Producing an Audible Signal
FORMAT RH7IBEEP
2. Use PFUNC to enter either the BC (Blank the Command Line) or the
BX (Blind Execute) function call:
Type: [F5]pfunc bxfcj]
Result; When you run the program, the computer emits an audible signal
at the point where the command appears.
211
Switching Windows to an Open File GOFILE
1. Put the cursor at the point in your program where you want to switch
windows.
2. Use either the BC (Blank the Command Line) or the BX (Blind Execute)
function call:
Type: [Fs]pfunc bc0
Result: When you run the program, execution switches to the window
that contains the file named MYFILE at the point where the command
appears.
212
LDPM Loading a Program
Purpose LDPM (Load Program) loads a program file cither onto the specified
macro key (Option I) or into memory (Option 2). Option 1 enables you to
run the program file with an [F2J key (rather than with the RUN command).
Option 2 enables you to RUN a program directly from memory rather
than from disk.
2. Verify. (Optional) To verify that the file has indeed been loaded onto
that key:
Press: [cid] [F2|
After viewing the text, press [Esc] to return to the document.
213
Loading a Program (cont'd)
3. Store the Macro. (Optional) If you want to keep this program file
loaded on the macro key for use at future editing sessions (after you
quit), use the STSGT (Store Macros) command.
NOTE Additional Macros. You can load programs onto any of up to 72 keys.
This includes the 36 ordinary macros [fejA through [fzJZ (Function Calls
@A-@Z) and [TzlO through (M9 (Function Calls @0-@9). It also includes
additional programming macros assigned to function calls &A through
&Z and &0 through &9.
214
PFUNC Program Function Calls
FORMAT E33PFUNC##
## is a two-character function call.
This is an immediate command.
Purpose The PFUNC (Put Function Call) command lets you enter a XyWrite
function call into your file when not in program mode or when the
function call is not assigned to a key.
Result: A bold CH appears in your program file. When you run the
program, XyWrite will clear the command line without moving the cursor
there.
215
Running a Program RUN
Purpose RUN causes the specified program file to execute. This means the
commands (and text) stored in the program file are executed
automatically, as if typed from the keyboard. When you include
information as an argument to the RUN command, XyWrite automatically
stores the information in macro 00. You can access it by including «is00»
or «pv00» in the program, depending on the type of information and how
you want to use it.
also See Related Commands. You can also run a program file with an [F2] key.
Refer to LDPM (Load Program) to load the program file onto a macro key.
NOTE #1 Shortcut XyWrite remembers the name of the last file run (with the
exception of STARTUP.INT). Therefore, if you enter the RUN command
without specifying the name of a program file, XyWrite reruns the most
recently run file. If you have modified the program and saved the
changes to disk, XyWrite detects the changes and runs the current version.
216
blbC.1 Store Macro Keys to Disk
PURPOSE STSGT stores the set of current macro keys to the specified file on disk.
This enables you to reload the keys for use ata later editing session. You
can also save several sets of macro keys and load each one for a different
purpose.
1. View the Macro Keys (Optional). To view the text that will be saved
to disk:
Press: [ctril[F2|
After viewing the text, press [Esc] to return to the document.
2. Disk Save (Long-Term Save). To save to disk all of the keys viewed in
Step 1:
Type: [Fsjstsgt proposal.sgtH
In this case, PROPOSAL.SGT is the filename to which the keys are stored.
You can save to any filename you want, but we recommend that you use
the SGT extension, and store the file in the same directory as SIG.EXE. If
you follow those conventions, XyWrite will include the new macro file
when it creates a list of macros.
217
XPL Operators and Functions
• Arithmetic operators
• Logical operators
• Relational operators
• String operators
• String functions
Arithmetic Operators
Use these operators to perform arithmetic on numeric values.
+ Addition
- Subtraction
• Multiplication
/ Division
% Modulus
Example: «SX99,« PV01»*10+« PV02» »
Logical Operators
Logical operators perform logical (or boolean) operations on numeric or
string expressions. You use logical operators within IF statements.
! Or
& And
©XOR Exclusive Or
©NOT Not
Example: «1F(« IS99» ==« 1S01»)!(«IS99» ==«IS02»)»
Relational Operators
These operators let you compare two numeric expressions (with PV) or
two string expressions (with IS).
< Less Than
> Greater Than
<= Less Than or Equal (same as =<)
>= Greater Than or Equal (same as =>)
o Not Equal
= Equal
Example: <<IF(«PV01»<«PV02»)»
218
(cont'd) XPL Operators and Functions
String Functions
String functions operate on string expressions and return a value or
another string.
©UPR Converts letters to uppercase. (Parentheses are required.)
@CNV Converts a function call to its two-letter mnemonic, (see Note
#1)
©SIZ Returns a value equal to the number of characters in a string.
(Parentheses are required.)
©NUM Strips all punctuation and letters, leaving only digits. (Note:
©NUM does not process parentheses. Do not use it on
expressions that contain them.)
©INT Eliminates fractions after decimal point
Example: «sxO3,@UPR(«isO3»)»
String Operators
A string operator operates on two string expressions.
+ Concatenation. Links two or more separate strings.
Example: «SX99,« IS01» +«I S02»»
= Contains. Determines if a string exists anywhere within another
string. Example: <<IF«IS01»=«IS02»»«GLA»«EI»
e Contains. Determines if a string exists within another string and
where within the string it exists. If the first string is found to be part
of the second string, XyWrite returns a numeric value equal to the
number of characters that precede the occurrence of the first string
within the second: returns a value of 0 if the characters of the first
string are at the beginning of the second string; returns a value of n
if the first string appears within the second string but not at the
beginning (n is the number of characters in the second string that
precede the first string; returns a value of -1 if the first string is not
in the second string. Example: «1F(«IS01 »€« IS02» ==0)»
returns 0 if macro 01 = A and macro 02 = ABCDE.
NOTE #1 Converting Function Calls. We recommend that you use the ©SIZ
function to test input to be sure it is a function call before using ©CNV to
convert the input to a 2-letter mnemonic. If @SIZ=3, then the input is a
function call.
219
Examples
2. Create the Program File. Use the NE (New) command to create a new
program file. For example:
Type: [F5]ne count.pqmfTi]
3. Write the Program. After turning on program mode, type all the
keystrokes necessary to perform the routine. When you are finished,
turn program mode off.
220
(cont'd) Examples
In draft view, the program file looks something like this: BF ABC A
In expanded view, the program file contains code that looks like this:
BF «sx01,«cp»»BC «pv0l»
5. Test the Program. Test the program by calling a file in the current
directory and counting the number of characters in it To execute the
program, call up any file and
Type: [F5]run count.pgm£0
Result: The program moves the cursor to the end of the file, counts the
number of characters in the file, and displays the number on the
command line.
221
Examples (cont'd)
222
Variables
INTRO Variables indicate the status of XyWrite. You can check on the current
value of any default setting, as well as many other system settings (for
example, the name of the currently loaded keyboard file) that affect your
use of XyWrite.
223
Value of Variable
FORMAT ESZJVA/nv nm
/nv is an optional switch that displays the value on the status line.
nm is a variable
Menu Not a menu item.
Purpose VA obtains the current value (or string) of the variable you request (nm)
and inserts it into the text. If you include the optional /NV switch,
XyWrite displays the current value on the status line rather than in the text
(see Note #1).
The VA command is useful for determining the current value of default
settings. However, it is also a valuable troubleshooting tool. You can use
the VA command to check the status of:
• Default settings, including format settings
• System settings (using the S prefix)
• Text macros (using the @ prefix)
• Document Information items (using the A prefix)
• Display Modes (using the * and [ prefixes)
• Keyboard location (using the _ prefix)
To obtain the value of a default setting, you simply issue the VA
command with the default variable. For example, VA LM obtains the
current Left Margin setting. Refer to "Default Settings" for a complete list
of variables you can use. To obtain values for the other categories, you use
the command forms described on the following pages.
NOTE #1 Status Line Display. If you use the /NV switch to display the value on
the status line, cursor placement is important. If the cursor is on the
command line when you press [F9], XyWrite displays the current default
value of the variable. If the cursor is in the text, XyWrite displays the
value in effect at that point in the file.
221
VA Settings
NOTE #2 No File Open. If you do not have a file open when you issue the VA
command, XyWrite automatically displays the result on the status line —
you do not need the /NV switch.
NOTE #3 Separate Values. If the variable you are checking includes more than one
value, the VA command displays all the values. If you prefer, you can
display only one value by including the numeric position of the value you
want. For example, V A IP displays both values of the IP setting; VA 1P1
displays only the first value; VA IP2 displays only the second value.
va Sac Auto-Check 0
va Sam Available Modes 0
va $bd Bad Words 10
va Sbq Border Query 0
va Sbt Black and White Trace 1
va Sbw Black and White Monitor 1
va Sea Cartridges WP
va Scm Command Line se /XyWrite/
va Sen Cartridge Installed 2
va $co Columns 3
va Sep Code Page 437
va Sex Cursor Column Position 40
va Scy Cursor Row Position 20
va Sdc Define Column 0
va Sde Define Ended 0
va Sdf Define Status 0
va Sdl Directory Type 4
va Sdl Defaults C:\XY4\SETTINGS.DFL
va Sdn Define End 100
va Sdo Document Information 1
va Sdp Display Path C:\DRAFT\CHAPTER1
va$dr File in Directory C:\MEMOSWACATION
vaSda Define Start 32
va $dt Display Type 1
va Sdv Default Drive C
va Sad EXE Location C:\XY4\XY4.EXE
va Ser Error Number 102
va Set Elapsed Time 54
vaSex File Extension TMP
va$fb Ale Begin 0
va Sfe File End 1
va Sfl Filename CHAPTER
va Sfm Forms Mode 0
vaSfp Alename and Path C:\DRAFT\CHAPTER1
va $fa Ale Status 0
vaSfx Axed Pitch 1
va Sfz Aeld Separator 3
va Sgc GCI (Generalized Callable Interface} Status 0
vaShl Help Ale C:\XY4\XY4.HLP
va $hp HP Printer File 0
va$ln Inside Define 0
225
VA Settings (cont'd)
226
(cont'd) VA Settings
Detail This section contains a description of the variables listed above. These
variables let you perform a variety of tasks, like saving the value of a
setting so you can later restore it. Many of the VA settings are designed to
be inserted within user programs.
VA $AM Available Modes — Indicates the availability of the specified mode in the
current type family. The format is:
VA $BD Bad Words — Displays the number of questionable words found by the
SPELL command when it was last executed.
VA $BT Black and White Trace — Indicates the value of the BW setting in the
printer file. If you have a CGA monitor and set BW=1 in the printer file to
get rid of "snow," $BT returns a value of 1. If BW=0 in the printer file,
$BT returns a value of 0. If BW is not set in the printer file, $BT returns a
non-zero.
VA Settings (cont'd)
VA $BW Black and White Monitor — Indicates the monitor type (0=monochrome;
l=color).
VA $CA Cartridges — Displays the printer cartridges currently loaded.
VA $CM Command Line — Displays the current contents of the command line.
VA $CP Code Page — Returns the value of the current code page.
VA $CY Cursor Row Position — Displays the row number (vertical position) of the
cursor.
VA $DE Define Ended — Indicates whether the select text sequence has been
completed (Ono, l=yes).
VA $DF Define Status — Indicates whether there is selected text in the current
window (0=no, l=yes).
VA $DI Directory Type — Indicates the type of directory currently displayed. The
following values are reported:
1 Tree directory 8 Long directory
2 Names-only directory 64 Soft font directory
4 Normal directory 128 Cartridge directory
VA $DN Define End — Displays the character position at the end of the selected
block.
228
(cont'd) VA Settings
VA $DP Display Path — Displays drive, path, and filename of the current file.
VA SDR File in Directory — Displays the name of the file that is currently
highlighted in the directory.
VA $DS Define Start — Displays the character position at the beginning of the
selected block.
VA $DT Display Type — Indicates the current view (as opposed to the default
setting, which is obtained with VA DT). The following values are
reported:
0 Expanded view
1 Draft view with markers but no page breaks
2 Draft view with page breaks and markers
4 Graphic view with markers
9 Draft view without markers or page breaks
10 Draft view without markers but with page breaks
12 Graphic view without markers
VA $DV Default Drive — Displays the letter of the current drive (without :\).
VA SER Error Number — Displays the error number of the last error that occurred.
VA SET Elapsed Time — Displays the amount of time that has elapsed since you
issued the ZT (Zero Time) function call. If you have not issued the ZT
function call since starting XyWrite, SET displays the current time.
VA SEX File Extension — Displays the extension, if any, of the current file.
VA $FB File Begin — Indicates whether the cursor is at the beginning of the file
(0=no, l=yes).
VA $FE File End — Indicates whether the cursor is at the end of the file (0=no,
l=yes).
VA $FM Forms Mode — Indicates whether or not you are in forms mode (Ono,
l=yes).
229
VA Settings (cont'd)
VA $FP Filename and Path — Displays the drive, path, and name of current file.
VA $FS File Status — Displays the status of files (0=no files are open, non-zero=at
least one file is open).
VA $FX Fixed Pitch — Indicates whether the current font is fixed pitch or
proportional (0=fixed pitch, l=proportional).
VA $FZ Field Separator — Indicates the field separator as XyWrite displays it,
rather than the 3-byte sequence XyWrite uses to store the field separator
internally, which is the value returned by VA FX.
VA $HL Help File — Displays the name and location of the current help file.
VA $HP HP Printer File — Indicates whether the current printer file is for a
Hewlett Packard LaserJet (0=no, l=yes).
VA SIN Inside Define — Indicates whether the cursor is within a selected block
(0=no, 1-yes).
VA $KB Keyboard File — Displays the name and location of the current keyboard
file.
VA $KC Key Code — Displays the key code number of the last key pressed.
VA $LG Logged-On User — Displays the name of the user currently logged on.
VA $LN Current Line Number — Displays the line number where the cursor is
currently located. This works only when Page-Line numbers are
displayed.
230
(cont'd) VA Settings
VA $MN Menu File — Displays the name and location of the current menu file.
VA $M0 File Modified — Indicates whether the current file has been modified
since being opened (0=no, l=yes).
VA $MW Mouse Window — Displays the number of the window in which the
mouse is currently located.
VA $MX Mouse X Position — Displays the pixel position of the mouse in graphic
view; displays the row position in draft view.
VA $MY Mouse Y Position — Displays the pixel position of the mouse in graphic
view; displays the column position in draft view.
VA SNA Non-Printable Area — Displays the portions of the page the printer does
not use when printing. For example, laser printers do not begin printing
at the very top of the page. SNA displays four values to indicate the left,
right, top, and bottom non-printable areas. You could include SNA in a
program to ensure that files are portable to different types of printers.
VA $NR No Ruler — Indicates whether a ruler is displayed at the top of the screen
(0=no, 1 =yes).
VA $0V Overflow File Drive — Displays the location of the overflow file, if one
exists.
VA $PA Current Drive and Path — Displays the current drive letter and path.
231
VA Settings (cont'd)
VA $PC PC Code — Indicates if there are any PCs in the current PC (Printer
Control) table within the range of the number specified (0=no, l=yes). The
format of $PC is:
va $pc# where # is a PC number.
VA $PG Current Page — Displays the page number where the cursor is currently
located. This works only when Page-Line numbers are displayed.
VA $PR Printer File — Displays the name and location of the current printer file.
VA $P? PC Code Exist — Indicates whether the specified PC code exists in the
current PC table (Ono, l=yes). The format of $P? is:
va $p?# where # is a PC number.
VA $P. Truncated Path Name — Displays the truncated path name as established
by the P. default.
VA $P\ Path No Backslash — Indicates the current drive letter and path the same
as $PA does, with the exception that $P\ displays a backslash in the root
directory, whereas SPA does not.
VA $RA Read Attribute — Displays the number of the current type style. This
value only reflects absolute character modes, not additive modes.
VA $RC Resume Code — Indicates which of the valid keystrokes a user pressed in
response to a WM (Wait Message) or BR (Break) command (0=first valid
key, l=second valid key, etc.; 65533=|Enter| (on numpad); 65534= [re] or
|CJl|[Break|; 65535= fEscl).
VA $RE Read-Only File — Indicates whether the current file is a read-only file
(0=no, l=yes).
232
(cont'd) VA Settings
VA $RR Return Error — Displays any errors generated while running a program in
DOS via the DO command.
VA $RZ Record Separator — Indicates the record separator as XyWrite displays it,
rather than the 3-byte sequence XyWrite uses to store the record separator
internally, which is the value returned by VA RS. $RZ is used primarily in
programs to search for a carriage retum/line feed. Although carriage
returns are represented on the screen as a single character (<-), they are
actually stored internally in a set as carriage return and line feed.
VA $SC Scan Code — Displays the value of the next key pressed, plus the value of
any current shifted state (Caps Lock = 256, Shift = 512, Alt = 1024, Ctrl =
2048, NumLock = 32768). For example, if ? and Caps Lock are pressed,
$SC displays 275 (19 + 256). (Note: If you change the order of the tables in
the definition section of the keyboard file, then the values associated with
each table change accordingly.)
VA $SF Soft Font List File — Displays the name of the soft font list file loaded into
memory.
VA $SG Text Macro File — Displays the name and location of the cunent text
macro file.
VA $SP Spelling Dictionary— Displays the name and location of the current
personal spelling dictionary.
VA $SS Save Styles — Displays the names of the styles defined in the cunent file.
The format is:
va $ssn, where n is a number that refers to the order in which the style
was defined. For example, VA $SS1 displays the name of the first style
defined in the file; VA $SS2 displays the name of the second style defined;
etc. If n is omitted, displays the name of the cunent style.
233
VA Settings (cont'd)
VA STE Type Effect — Displays the status of the different EF (Special Effect)
settings (O=off, l=on). The format is:
va Sten, where n is the number of the printer effect. (See the description of
the EF command in the Command Reference Guide for more information.)
VA STX Cursor Location — Indicates whether the cursor is in the text area or in
the header (0=header, l=text).
^A SUO Use Outline — Indicates whether the printer supports outline fonts (0=no,
l=yes).
VA SWA Window Availability — Displays the number of the next available window
that XyWrite will use when a CALL or NEW command is executed. (The
NW default must be set to 1,2, or 3.) SWA displays 0 if all 9 windows are
in use.
VA SWC Word Count — Displays the total number of words counted by the WC,
WCB, or SPELL command (whichever was most recently executed).
VA SWN Window Number — Displays the number of the window that is currently
active (0-9).
VA SWS Window Status — Displays the status of specified window. The format is:
va Swsn, where n is the window you want to check. The following values
are returned:
0 No file open, window is empty.
1 File is open.
2 Directory is displayed.
234
(cont'd) VA Settings
VA @ Text Macro — Displays the contents of the specified text macro. The
format is:
va @# where # is the text macro you want to display.
VA [ Additive Mode On — Indicates whether the cursor is in text that uses the
specified additive mode (Ono, l=yes). The format is:
va [md, where md is the mode (for example, va [bo).
VA ! Size of Macro— Displays the size of the macro. XyWrite returns 65535 if
macro does not exist; 0 if macro exists but is empty. The format is:
va !#, where # is the macro.
VA_ Assigned Key— Displays the key to which the specified funebon is
assigned in the current keyboard file. The format is:
va Junction
where function is the function call, character assignment, JM command,
etc. for which you want the key assignment.
This command requires a frame called 1A in the dialog box file. This
frame, which lists the keycodes and the key labels, is in XY4.DLG you
received with XyWrite. If you create a new DLG file and want to use this
VA command, be sure to include the 1A frame in your file.
235
VA X Error Message — Displays the message associated with the specified error
number. The format is:
va \nnn
where nnn is an error number.
236
Appendix A Advanced Keyboard Functions
INTRO The standard XyWrite keyboard file, XY4.KBD, includes several key
assignments that are considered to be "advanced." Some of these keys
provide diagnostic tools that you will find to be useful as you start
customizing XyWrite. Other keys are just handy shortcuts that you can
use in your everyday work with XyWrite. The table on the next page
describes the advanced key set.
A-l
Advanced Keyboard Functions (cont'd)
Keys Function
[Cvi] [Xii] [Shift] A Alternate Menu. Loads an alternate menu file or runs a
program. Refer to the notes section at the beginning of
XY4.MNU for more information about this feature (search for
the word "Developers:" to move quickly to this information).
Note: If you are loading both a MNU file and a DLG file, then
you must have alternates for both.
[evil [Ait] [shift] B BC. Inserts the BC function call at the cursor location.
[Ctrl] [Aft| [Shift] C Copy. Copies the currently selected text to the command line.
[evil [aS] [shift] F Find Latest. Displays a list of files sorted by date, with the
most recent files at the top. You can use this key to display a
list of files in the current directory, in the current directory
and its subdirectories, or on the current disk. This is useful if
you have lost a file that you recently created and don't
remember its exact name.
[evil [Aft] IShitilK Keyboard Diagnostics. Helps you customize keyboard files.
To use this key, first display the keyboard file (XY4.KBD, for
example) and press lCvi|[ah|[ShiftlK. XvWrite presents three
options: (1) you can identify the key code (1-104) associated
with the next key you press; (2) you can move the cursor onto
a key definition and identify the key associated with that
code; or (3) you can jump to one of the tables in the keyboard
file.
Load a File. Displays a dialog box that gives you four options:
(1) you can load the displayed file; (2) save the displayed file
and then load it; (3) copy the displayed file to a temporary file
named LOAD.TMP and then load the temporary file; or (4)
load a file other than the one currently displayed.
[evil [Alt] [Shift] M Move. Moves the selected text to the command line.
^j] [m] [Shift] N Next File. When you issue the Call command with a global
filename (for example, CALL *.DOC), this key combination
displays the next file that matches the specification. You can
edit the file (if you wish) and press this key combination
again to store the current file and open the next one.
(cont'd) Advanced Keyboard Functions
Keys Function
[CwllMirShiftlP Print Expanded. Prints the current file in expanded view, with
embedded commands printed in angle brackets. This key is
useful for printing a hard copy of program files. It is also
useful for diagnosing embedded commands in any
document.
[ail[A)tlfshSlQ Quick Build. Displays a dialog box for verification. This key
is useful when customizing menus, because it lets you verify
a new or revised dialog box without saving and reloading the
menu file. To use this key, display the menu file, create or
edit a dialog box (type K frame), move the cursor anywhere
past the keyword, and then press |Ctri||Ait||Shlft|Q.
I Ctrl II Alt II Shift IS Status. Displays a dialog box that lists the currently loaded
XyWrite custom files. It also gives you the option of
loading/running or opening one of the custom files.
[Ctri] [Xit] [Shittl X Programming Diagnostics. Displays a didog box you can use
to enter function calls into your program files or to tum on
the DB (Debugging) default setting.
A-3
Advanced Keyboard Functions (cont'd)
Key* Function
[w][m][s^]Z Last Commands. Displays the result of the last commands
executed through the menus. For example, when you import
text into a file, Last Commands will show you the command
that actually created the link. This feature has been
implemented only for some of the more complex operations,
such as importing text, and for default commands.
[^i][M][ShS]? Help. Displays a list and brief description of the advanced
keys.
A-4
Appendix B Terminate & Stay Resident Programs
Intro Terminate and Stay Resident (TSR) programs are programs that are loaded
into memory and can be instantly activated by pressing a hot key. For
example, you might run a calendar TSR program that keeps track of your
appointments; you don't need the program to be active all the time, but
you want to be able to access it quickly so you can check your schedule.
3270 emulation programs are another common example of TSR programs;
the emulation programs allow you to communicate with mainframe
computers. This appendix describes the special setup needed to avoid
conflicts between XyWrite and TSR programs.
B-l
Terminate & Stay Resident Programs (cont'd)
Purpose To use a TSR program with XyWrite, you must complete a few simple
steps. Otherwise, you may find that the TSR interferes with the XyWrite
operation. The steps are:
These steps are explained in detail below. Note that the procedures
assume that both the TSR and XyWrite are already installed on your
computer.
1. Open the XyWrite keyboard file you want to modify. For example:
Type: (Fsjcall xy4.kbd0
2. Refer to the diagrams at the top of the file to determine the key code of
the hot key.
B-2
(cont'd) Terminate & Stay Resident Programs
4. Search for the key code of the hot key. For example, if the hot key is
iBadspaoel:
Type: [F51se /14/[7i|
5. After the equals sign, type the KF (Keyboard Flip) function call. The
line will look like this:
14=KF*-
If the TSR program doesn't modify keyboard handling, you don't need the
KF function call. Instead, assign a null character to the key. The procedure
is:
If the TSR and XyWrite are part of your standard setup, you may want to
modify the AUTOEXEC.BAT so that it automatically loads the TSR before
XyWrite. To do that:
1. OpenAUTOEXEC.BAT.
Type: [fsjcall \autoexec.bat0
B-3
Terminate & Stay Resident Programs (cont'd)
3. Immediately above the EDITOR line, enter the command to load the
TSR.
Result: Both programs are now in memory. You can activate the TSR by
pressing the appropriate hot key.
NOTE #1 Predefined Hot Keys. The standard XyWrite keyboard file, XY4.KBD,
preassigns the KF function call to [wltEscl, [CtrilfEsc], and [Art][Tabl. If the TSR you
want to run is activated by one of these hot keys, you don't have to
modify the keyboard file. Alternatively, if you don't need these hot keys,
you can assign a different function call to one or more of them.
NOTE #2 Startup. You can have your keyboard file automatically loaded at startup
by adding a line to your STARTUP.INT file. For example, the following
entry loads a keyboard file named XY4.KBD.
BC load xy4.kbd«-
Refer to "Startup File" for more information on modifying STARTUP.INT.
Appendix C Foreign Language Support
C-l
Uppercase String UC
FORMAT UC<nNnNnN...
n is the lowercase version of a character
N is the uppercase version of a character
MENU Not a menu option
C-2
AC Accent Table
Format AC:h
stringl ? \co> Aft
string!
stringn
n is the number of lines in the table.
stringl...stringn defines the floating accents and the characters associated
with them.
MENU Not a menu option
C-3
Accent Table (cont'd)
Result: The AC Table is loaded in memory, but you must complete the
following procedure before you can use the floating accents.
1. Decide which keys you want to assign to the floating accents. For
example, you might assign the acute accent to A, the grave accent to G,
etc.
2. Call your keyboard file to the screen. For example:
Type: [fsjcall xy4.kbdQ
(cont'd) Accent Table
3. Refer to the diagram at the top of the file. Make a note of the key codes
for the keys you selected in step 1.
4. Move to the end of the file.
Press: [evil [End]
5. Enter the first line of the new table. For example, to enter a table for
CTRL+CAPS:
Type: TABLE=CTRL+CAPS<-
6. Enter the assignment for the first key. For example, to assign the acute
accent (function call SI) to key A (key code 30):
Type: 30=s1«-
7. Repeat step 6 for each floating accent.
8. Store and load the keyboard file.
Result: You can now use floating accents to create accented characters.
For example, if you assigned the acute accent to key A and entered want
to enter
NOTE Printer Output. The AC table affects the screen display only. If the
accented character is not part of the printer's standard character set, you
must make the appropriate entry in the character substitution file.
C-5
Notes
C-6
Appendix D Reserved XyWrite Elements
This appendix lists ID numbers, keywords, and macros reserved for use
by XyWrite.
RESERVED KEYWORDS
The following keywords, which can be used only with Type K frames, are
reserved for special functions in the XyWrite menu file:
/g Macro directory
/m Memory menu
/s Spelling menu
/h HP menu to decode soft font files
/t Expanded names for commands
/y Thesaurus
/u File summary
If you use one of these reserved keywords, no other keywords can appear
between the pair of double curly braces (()} in the label.
RESERVED ID NUMBERS
The following control ID numbers are reserved for special functions.
1 Typically the OK pushbutton
2 Typically the CANCEL pushbutton
50 Remove item from printer queue
51 Move item to top
52 Stop printing
53 Resume printing
54 See JB codes in PC menu
55 Set JB codes
56 See PB codes
57 Set PC codes
58 Rewind printer queue
59 Look up synonyms
60 Return to original synonyms
61 Print a directory (directory must be in an LF box)
62 HELP pushbutton for a dialog box
98 Path that gets updated
90-99 Don't interpret ampersand (&) as an accelerator
100 Text box where path is located. Used with/LS, so user can
switch directories from text box and still allow /LS to work.
251-256 Don't strip trailing spaces (used in Search and Replace)
D-l
Reserved XyWrite Elements (cont'd)
Reserved Macros
100-999 Reserved for user; they must not be used in menu programs.
1000-1399 Unreserved - can be used by any item
1400-1499 Reserved for third-party developer's permanent (session)
storage.
1700-1799 Reserved for future expansion.
1800-1899 Reserved temporarily for operations performed in this
session only.
1900-1999 Reserved for use by XyWrite; currently they have the
following uses:
1900 - Dir for documents (files that are NOT loaded or run),
including *.TPL, *.FRM and MEMOPAD. (Set at installation.)
1901 - Dir for files that are loaded or run. Original location of
SETTINGS.DFL. (Set at installation.)
1902 -
1903 -
1904 - Dir for COLOR SET files
1905 - Dir for MACRO files
1906 - Dir for PRINTER files
1907 - Dir for DATABASE Condition files
1908 - Dir for IBM2T1F.EXE
1909 -
1910 - Dir for TEMPLATE files
1911 • Dir for FORMS files
1912 - Dir and name of MEMOPAD
1913 -
1914 -
1915 - Dir for PRINTER FONT bitmap files
C:\XY4\PRNFONTSW
1916 - Dir for SOFT FONT LIST files C:\XY4\PRNFONTS\ *.SFL
1917 -
1918 -
1919 -
1920 • (reserved)
1921 - List of filters for saving text files
1922 - List of filters for spreadsheets
1923 - List of filters for database
1924 - List of filters for graphics
1925 - List of filters for opening text files
1926 -
1927 -
1928 -
1929 -
1930 -
D-2
(cont'd) Reserved XyWrite Elements
1931 Marker no. used for TOC if diff. from "1" (Can be 1-9)
1932 Marker no. used for Index if diff. from "2" (Can be 1-9)
1933 Marker used for Footnote set if diff. from "1" (Can be 1-3)
1934
1935
1936
1937
1938
1939
1940 User's choice of "Recorded keystrokes" or "Stored file"
1941 Cursor position (CP) of MEMOPAD file
1942
1943 Cursor position (CP) of PERS-DIR file
1944
1945 Currency format for spreadsheet import
(LEADING/TRA1LING)
1946 Currency format for spreadsheet import (PERIOD/COMMA)
1947
1948 Counter (1-9) for multiple-save backup (not currently used)
1949 Number of backups user has requested (not currently used)
1950 Prefer Command Line (cm) or Dialog Box (null), used for
Search, Replace and Use Style
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962 Copy to screen (s) or clipboard (c) (not currently used)
1963
1964 Flag for dir listing in Open:
"OpenComments"/"OpenNoComments"
1965 Display subdir filenames "OpenSubdir" /"OpenNoSubdir"
(not used)
1966
1967 Name of default template in New
1968
1969
1970
1971 Custom date format
D-3
Reserved XyWrite Elements (cont'd)
1972 - Check box for saving changes to Macro file. (1=STSGT, 0=No
save)
1973 - Insert TOC and Index and text (1) or marker (0)
1974 - Check box in New for "Include Default Style"
1975 - Directory command and switches for Manage Files
(D1R/FI/LO)
1976 -
1977 - Check box for "Offset for facing pages" in Page Setup
1978 - Check box for "Display document info" in Manage Files
1979 -
1980 - Top margin and page length for portrait sizes : letter, legal,
executive, A4 and A5. Values are separated by vertical bars
(■)•
1981 - Page width, form depth, top margin and page length for
portrait custom. Values are separated by vertical bars (I)
1982 - Top margin and page length for landscape sizes: letter, legal,
executive, A4 and A5. Values are separated by vertical bars
(!)•
1983 - Page width, form depth, top margin and page length for
landscape custom. Values are separated by vertical bars (!)
1984 - Check box for "Include page number" in "NewH/F".
1985 - Value for "Blank lines following header" in "NewH/F"
1986 - Check box for "Swatch to new file" in Save As.
1987 - Sort criteria for DSORT in Manage Files.
1988 -
1989 -
1990 - Envelopes: Top and Left margins for Non-Laser printers
1991 - Envelopes: Top and Left margins for Laser-Manual feed,
from center of tray
1992 - Envelopes: Top and Left margins for Laser - Manual feed,
from edge of tray
1993 - Envelopes: Top and Left margins for Laser-Tray/Feeder
1994 -
1995 - (reserved)
1996 - (reserved)
1997 - (reserved)
1998 - (reserved)
1999 - Filename for alternate menus
Appendix E XyWrite Character Set
Purpose XyWrite has a unique character set that is designed to support a wide
range of languages. The following pages show all 909 XyWrite characters.
NOTE Using the Menus. The menus allow you to enter a special character into a
file without identifying it by number. Choose Other from the Insert
menu, then choose Special Char.
E-l
XyWrite Character Set (cont'd)
Character Bitstream
Code « Character Name Character Supported
01 Smiling face ©
02 Smiling face, reverse image •
03 Heart suit symbol
07 Bullet •
08 Bullet reverse □
09 Open circle o
10 Open circle reverse ®
11 Male symbol
12 Female symbol 0
13 Eighth note
21 Section symbol §
22 Solid horizontal rectangle -
23 Up down arrow perpendicular
24 Up arrow f
25 Down arrow 1
26 Right arrow —•
27 Left arrow -
E-2
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
30 Solid triangle A
32 Space
33 Exclamation point !
34 Quotation marks ■
35 Number sign
36 Dollar sign $
37 Percent sign %
38 Ampersand &
39 Apostrophe >
40 Left parenthesis (
41 Right parenthesis )
42 Asterisk •
43 Plus sign +
44 Comma 1
45 Hyphcn/minus sign •
46 Period/full stop •
47 Slash /
48 Zero 0
49 One 1
50 Two 2
51 Three 3
52 Four 4
53 Five 5
54 Six 6
E-3
XyWrite Character Set (cont'd)
Character Bitstream
Code * Character Name Character Supported
55 Seven 7
56 Eight 8
57 Nine 9
58 Colon :
59 Semicolon
61 Equal sign =
62 Greater than >
63 Question mark 7
64 At sign @
65 A A
66 B B
57 C C
68 D D
69 E E
70 F F
71 G G
72 H H
73 I I
74 J J
75 K K
76 L L
77 M M
78 N N
79 O (Cyrillic) O
80 P P
E-4
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
82 R R
83 S S
84 T T
85 U U
86 V V
87 W W
88 X X
89 Y Y
90 Z Z
91 Left bracket [
92 Back slash \
93 Right bracket 1
94 Circumflex accent
95 Underline/continuous underscore
96 Grave accent %
97 a a
98 b b
99 c c
100 d d
101 c e
102 f f
103 8 8
104 h h
105 i i
106 j j
107 k k
108 I •
E-5
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
109 m m
110 n n
111 o (Cyrillic) o
112 P p
113 q q
114 r r
115 s s
116 t t
117 u u
118 V V
119 w w
'20 X X
11 y y
22 z z
129 u umlaut u
131 a circumflex a
132 a umlaut a
133 a grave a
134 a overcirde J
135 c cedilla ?
136 e circumflex 8
E-6
(cont'd) XyWrite Character Set
Character Bitstream
Code S Character Name Character Supported
137 e umlaut c
138 c grave 4
139 i umlaut i
140 i circumflex I
141 igrave 1
142 A umlaut A
143 A ovcrcirclc A
144 E acute (Greek) 6
145 ae diphthong 8C
146 AE diphthong
147 o circumflex d
148 o umlaut a
149 o grave a
150 u circumflex 0
151 u grave ft
152 y umlaut y
153 O umlaut 0
154 U umlaut 6
155 Cent sign e
E-7
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
162 o acute 6
163 u acute u
164 n tilde n
165 N tilde N
E-8
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
Character Bitstream
Code » Character Name Character Supported
30 Mu small (Greek) n
E-10
(cont'd) XyWrite Character Set
Character Bitstream
Code H Character Name Character Supported
252 n superscript a
255 Em space
259 En dash -
260 Em dash -
261 En space
267
t
Right single quote
E-ll
XyWrite Character Set (cont'd)
Character Bitstream
Code « Character Name Character Supported
E-12
(cont'd) XyWrite Character Set
Character Bitstream
Code K Character Name Character Supported
E-13
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
325 Lacute L
327 I acute i
328 N acute fl
35 Breve accent •
>36 u overcircle 0
337 L caron c P
338 N caron fl
339 n caron 6
340 c acute 6
341 I caron r P
342 Z caron 2
343 A breve A
344 Scaron §
345 S acute §
346 z caron
347 E caron 6
348 a breve 4
349 s caron
E-14
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
350 I stroke t
351 s acute t
352 E ogonck
353 S cedilla s
354 e caron i
355 c ogonck q
358 zacute t
361 Ccaron c
362 N macron N
363 Z acute i.
364 L stroke t
365 s cedilla ?
366 Z overdot 2
367 T cedilla T
368 r caron r
369 R caron A
370 z overdot z
371 U ovcrcircle 0
372 t cedilla 1
373 C acute 6
374 c caron 6
E-15
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
387 One-third W
388 Two-thirds %
391 Dagger t
397 Lozenge H
398 One-fourth 1
399 One-half 1
400 Three-fourths 1
n superscript D
401
403 Three-eighths y.
E-16
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
405 Five-eighths y.
406 Seven-eighths ’/«
408 o (Cyrillic) o P
409 O (Cyrillic) o P
E-17
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
r2
43
s small (Cyrillic)
S capital (Cyrillic)
c
c
P
E-18
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
E-19
XyWrite Character Set (cont'd)
Character Bitstream
Code u Character Name Character Supported
1 6 ch small (Cyrillic) q N
n yu small (Cyrillic) » N
E-20
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
538 Reserved N
E-21
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
Nine superscript 9
566
E-22
(cont'd) XyWrite Character Set
Character Bitstream
Code U Character Name Character Supported
586 Del A N
Character Bitstream
Code U Character Name Character Supported
601 Increase / N
602 Therefore symbol ••• N
603 Circle x, closed product N
604 Decrease N
E-24
(cont'd) XyWrite Character Set
Character Bitstream
Code tf Character Name Character Supported
630 Proportional to
633 Approximately
640 0
Superscript e
*
641 Superscript i
i
642 Superscript 1
m
643 Superscript m
o
644 Superscript o
r
645 Superscript r
a
646 Superscript s
1
647 Superscript t
Backslash (ASCII) \
648
a
649 Superscript circle
•
650 Superscript dot
E-25
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
658 n fl
661 ij ij
662 Ij U
663 m ffl N
664 Hi ffi N
f5 it ff
E-26
(cont'd) XyWrite Character Set
Character Bitstream
Code « Character Name Character Supported
E-27
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
719 j dollcss J
720 L mid dot upper L-
E-28
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
741 Underdo!
743 Sub-comma
•
754 Circumflex accent upper
•
756 Umlaut accent upper
•
758 Tilde accent upper
E-29
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
782 C Cedilla Q
783 u umlaut a
785 a circumflex a
786 a umlaut a
787 a grave A
788 a overcircle a
789 c cedilla 9
790 e circumflex c
791 e umlaut e
792 e grave e
E-30
(cont'd) XyWrite Character Set
Character Bitstream
Code « Character Name Character Supported
793 i umlaut i
794 i circumflex i
795 igrave 1
796 A umlaut A
797 A ovcrcircle A
798 E acute (Gjpek) fi
799 ac diphthong ae
800 AE diphthong 42
801 o circumflex 6
802 o umlaut o
803 o grave 6
804 u circumflex fl
805 u grave fl
806 y umlaut J
807 O umlaut O
808 U umlaut 0
809 o slash 0
810 Pound sterling sign £
811 O slash 0
812 Multiply sign X
816 o acute 6
817 u acute fl
818 n tilde n
819 N tilde N
E-31
XyWrite Character Set (cont'd)
Character Bitstream
Code « Character Name Character Supported
835 A acute A
836 A circumflex A
837 A grave A
E-32
(cont'd) XyWrite Character Set
Character Bitstream
Code H Character Name Character Supported
853 A tilde A
864 E circumflex £
865 E umlaut £
866 E grave £
867 i dotlcss •
868 1 acute f
869 1 circumflex i
f
870 1 umlaut
E-33
XyWrite Character Set (cont'd)
Character Bitstream
Code # Character Name Character Supported
878 O acute 6
879 Sharp s (small) B
880 O circumflex O
881 O grave 0
882 o tilde 6
883 O tilde O
7 U acute 0
>88 U circumflex u
889 U grave u
890 y acute
891 Y acute V
—
892 Overline
z
893 Acute accent
E-34
(cont'd) XyWrite Character Set
Character Bitstream
Code # Character Name Character Supported
909 Em space
E-35
Notes
E-36
Index
Symbols A
(01,92 accelerator characters, 126
I in a dialog box, 118 Accelerator Key (AK) function call, 127
in menu file, 101 Accent (AO table, C-3
in menu file, 101 accented characters, 78, C-3
e (Contains) operator, 219 action bar, 35
e in menu file, 101 Action Bar Color Control (L0) default setting, 26
= (Contains) operator, 219 additional macros, 203
= in menu file, 100 loading programs to, 214
in menu file, 101 additive modes, 166
* in printer file, 183 ADDTBL command, 86
in dialog box, 119 AH (Allow Hyphenation) default setting, 15
0 in menu files, 104 AK (Accelerator Key) function call, 127
(s) programs in a dialog box, 109 alignment, 40
B in menu files, 104 function calls, 65
► in menu file, 102 additional programming macros, 203
! (Or) logical operator, 218 Allow Hyphenation (AH) default setting, 15
In keyword, 94,98 AOP (Autosave Path) default setting, 15
# in printer file, 183 AOT (Autosave Timer) default setting, 15
$ (And) logical operator, 218 APFIL command, 210
% in printer file, 183 Argument Insert (AS) command, 204
% in programs, 218 arguments in function calls, 64
& in menu file, 100,126 arithmetic operators, 218
+ (Concatenation) operator, 219 AS (Argument Insert) command, 204
< in printer file, 183 AT (Attribute) table, 177
> in printer file, 183 attribute, 143
1A (Ignore End of File Marker) default setting, 15 Attribute (AT) table, 177
@CNV (Convert) function, 219 Attribute value, 177
;DG;file label, 91 audible signals in a program, 211
?H command, 135 audit trail in printer file, 147
;HL; file label, 91 Autosave Path (AOP) default setting, 15
@1NT (Integer) function, 219 Autosave Timer (AOT) default setting, 15
/LO switch, 117 AZ (Numbering Style) default setting, 16
/LS switch, 117
?D command, 135 B
;MN; file label, 91
©NOT (Not) logical operator, 218 Bl string, 167
©NUM (Numeric) function, 219 B2 string, 167
;PR; file label, 6,147 Backspace Control (BS) default setting, 16,160
©SIZ (Size) function, 219 Backup of Files (BK) default setting, 16
50; file label, 190 basic units, 174
;U2; file label, 1 BC (Blank Command Line) function call, 202
©UPR (Uppercase) function, 219 BE string, 167
?X (Wild Card) printer setting, 164 BEEP command, 211
©XOR (Exclusive Or) logical operator, 218
Index-1
Index (cont'd)
Index-4
(cont'd) Index
lndex-5
Index (cont'd)
Index-6
I
(cont'd) Index
i
math function calls, 66 MR (Metric Ruler) default setting, 29
Maximize Windows (MW) default setting, 29 MS (Microspace Units) setting, 175
MD (Mode) commands, 44, 45 MT (Math) function call, 79
MD (Mode) line in Font table, 178 MT (Military Time) default setting, 29
memory requirements, 83, B-2 MU (Margin Units) setting, 174
memory, loading information into, 81 multiple character key assignments, 63
Menu (MN) function call, 79 MW (Maximize Window) default Getting, 29
’ menu bar, displaying, 98
I menu entry point, 94, 98 N
menu file, 89
adding comments to, 97 NA (Non-Printable Area) printer setting, 162
frames, 92 NC (Normal Carriage Return) default setting, 30
loading, 138 ND (Network Drives) default setting, 30
menu function calls, 66 NE (No Errors from Printer) default setting, 30
menu names, length of, 98 network, 30,31,51
Menu Screen Bottom (DGB) command, 133 Network Drives (ND) default setting, 30
Menu Screen Top (DGT) command, 133 Network Login (NL) default setting, 30
Menu Screen Window Position (DGW) command, New Window (NW) default setting, 30
125 NL (Network Login) default setting, 30
menu screen, controlling display of, 100 No Errors from Printer (NE) default setting, 30
menu, creating a pull-down, 100 non-keyboard character function calls, 66, 78
menus, cascading, 102 Non-Printable Area (NA) printer setting, 162
menus, loading, 138 non-printing character, 184
Message (MG) default setting, 28 non-scalable printer, 143
Metric Ruler (MR) default setting, 29 Normal Carriage Return (NC) default setting, 30
MF (Mode for Forms) default setting, 28 ©NOT logical operator, 218
MG (Message) default setting, 28 notes in printer file, 147
microjustification, 174 ©NUM function, 219
Microspace Units (MS) setting, 175 numbering function calls, 65
Military Time (MT) default setting, 29 Numbering Style (AZ) default setting, 16
;MN; file label, 91 Numeric (©NUM) function, 219
MN (Menu) function call, 79 Numeric Lock, 59
Mode for Forms (MF) default setting, 28 NW (New Window) default setting, 30
mode numbers, 45,166
MODE.COM, 141 o
modifying
O1 (Options) default setting, 31
keyboard files, 58
OB (Overstrike Beep) default setting, 31
printer file, 140
OD (Offset display) default setting, 31
SETTINGS.DFL, 6
OE (Open Editor) default setting, 31
monochrome
Offset Display (OD) default setting, 31
monitor, 44
OL (Outline Fonts) default setting, 31
table, 46
OO (Override On) command, 1
mouse, 32-34,38
Open Editor (OE) default setting, 31
Mouse Double Click (R2) default setting, 32
opening windows, 30
Mouse Repetition Interval (RI) default setting, 33
operators, XPL, 218
moving text function calls, 65
Lndex-7
Index (cont'd)
Index-10
(cont'd) Index
word separators, 52
Wrap to Fit (WF) default setting, 39
WS (Whole Space) default setting, 40,176
WW (Conversion Filters Path) default setting, 40
X
?X (Wild Card) printer setting, 164
XD (Read-Only Directories) default setting, 40
XF (Extract Fields) default setting, 40
XL (Selective Directory) default setting, 40
XM (Transpose Messages) default setting, 41
©XOR (Exclusive OR) logical operator, 218
XP (Horizontal Position) string, 169
XPL (XyWrite Programming Language), 197
commands, 204
examples, 220
operators, 218
XR (Extract Records) default setting, 41
XS (Extract String) command, 208
XS (Substitution Character) printer setting, 163
XT (Expand Triangles) default setting, 41
XY (XyWrite Screen Fonts) default setting, 41
XY4.KBD, 58
XyWrite Programming Language (XPL), 197
XyWrite Screen Fonts (XY) default setting, 41
Y
YP (Vertical Position) string, 169
z
ZL (Laser Printer) printer setting, 164
ZM (Zoom) default setting, 42
ZO (Orientation Output) printer setting, 164
ZS (Point Sizes) default setting, 42
Index-12
Notes
Index-13
Notes
Index-14
Xyquest
A Division of The Technology Group. Inc.
36 South Charles Street
Baltimore. Maryland 21201
(410) 576-2040 Fax (410) 576-1968