
         WordStar Patching and Customization Information

Look at this file in WordStar's nondocument mode.  Issue ^OI to 
bring up the "Nondocument tab" dialog box and select 1 to 
compress the length of the lines displayed.

This file contains complete patching and customization 
information for WordStar for DOS 7.0 Rev. D.  

Many of the options describe here can be changed easily from the 
menus in the utility WSCHANGE.EXE, and all of them can be changed 
by directly accessing the byte-by-byte patcher at WSCHANGE menu E 
(Patching), then = (Enter User Area address), and typing either 
the label name for a function (such as "ibmflg," the first one 
described below) of the hex address of that function (which, as 
given below for "ibmflg," is 023A.

For safety's sake, you should make a backup copy of WS.EXE before 
you start patching it.

(This file was created by running PATCHLST.EXE, which is a self-
extracting archive containing the single file PATCH.LST, a plain-
ASCII text file.  I've proved a duplicate version called 
PATCH.TXT.)

-- Robert J. Sawyer
   sawyer@sfwriter.com
   August 2024

=================================================================

				; Note:  TRUE = 0FFH, FALSE = 0
				
				; The IBM flag bits should be set for an IBM compatible computer. The bits
				; are defined as follows:
				
				;	Bit	Function
				
				;	 0	BIOS ROM is IBM compatible for video & keyboard. Do not
				;		change this bit.
				
				;	 1	Counter-timer I/O ports same as IBM (used for beep).
				
				;	 2	Use video RAM directly (may produce "hash" or not work
				;		at all on some computers).
				
				;	 3	Use IBM tick timer at INT 1CH
				
				;	 4	Use fast cursor moves by changing 6845 directly.  Set to 0
				;		if BIOS calls should always be used.
				
				;	 5	Reserved for future use.
				
				;	 6	Use bright instead of inverse video.
				
				;	 7	Wait for video retrace before displaying characters (to
				;		reduce snow on screen).
				
 023A  1F			ibmflg	db	00011111b	; IBM ROM, beep ok, direct video, tick timer,
								; no bright or video retrace wait
				
				
				; The WordStar flag bits are used to tell WordStar how it will be operated.
				; The bits are defined as follows:
				
				;	Bit	Function
				
				;	 0	Try to make WordStar completely RAM resident (limitation
				;		of no on-screen help messages).
				;
				;	 1	Check PDF for valid data while generating PDF lists.
				;		Selecting PDF's is much slower with this bit set.
				;
				;	 2	Do not swap WordStar to Disk/EMS when running the macro
				;		Compiler/Decompiler.
				;
				;	 3	Do not insert compiler errors inline into the macro source.
				;
				;	 4	Tempory files (Before/After and style files) to be created
				;		using swfile, instead of creating in same drive and directory
				;		as input file specification.
				;
				;	5-7	Reserved for future use.
				;
				
 023B  06			nwflg	db	00000110B	; Normal operation :- Check PDF's and do not
								; swap WordStar when running compiler.
				
				
				; This flag is used for multi-user or networked systems.
				
				;	Bit	Meaning
				
				;	 0	Set to 1 if a system reset is not to be used when logging.
				
				;	 1	More than one user can access the same document if 1. If 0,
				;		files are not shared.
				
				;	 2	More than one user can share the default list device if 1.
				;		If 0, WordStar will immediately use the printer.
				
				;	 3	More than one user can share the personal dictionary if 1.
				;		If 0, personal dictionary is not shared.
				
				;	 4	Operating system date is correct if 1. Don't use date if 0.
				
				;	 5	System contains a keyboard type ahead buffer if 1. WordStar
				;		must do more frequent keyboard checks if 0.
				
				;	 6	Set to 1 if configuration file is to be used
				
				;	 7	Reserved.
				
 023C  30			mpmflg	db	00110000b	; Single-user system, date okay, type ahead
				
				
				; This flag is used to say how memory is used.
				
				;	Bit	Meaning
				
				;	 0	Set to 0 if messages should be ram resident.
				
				;	 1	Set to 1 if the speller and thesaurus should share overlay
				;		and dictionary memory.  See speller memory requirements later
				;		in this listing.
				
				;	 2	No longer used.
				
 023D  03			memflg	db	0011b		; Definitions during spell check initially off,
								; Messages in not in ram
				
				
				; SHARE indicates what happens when files can be shared (see MPMFLG).
				; If it is 0, and a file is already being edited, other users cannot
				; edit the file. If it is 1, other users are asked if they want to
				; look at the file in protected mode (but only as much of the file
				; that will fit in memory at once).
				
 023E  01			share	db	1		; Look at files
				
 023F  00 00 00			db	0,0,0		; Reserved
				
				page
				
				;		TERMINAL PATCH AREA
				;
				; This section contains the user-modifiable constants and
				;	routines for hardware-dependent terminal functions
				;	and characteristics required by the editor.
				;
				; There are three types of patches in this area. One can
				;	patch data values (HITE, WIDE) which describe the
				;	terminal, strings (CLEAD1, ERAEOL) which define
				;	control sequences, or actual microprocessor
				;	instructions.
				;
				; For the string sequences, the first byte of the patch
				;	indicates the number of bytes in the string,
				;	followed by that many string bytes. If there is
				;	insufficient room for the whole string, the format
				;	can be modified by putting a -1 (0FFH) where the
				;	number of bytes would go, and then putting the
				;	address in the following two bytes (low order byte
				;	first) of the address where the longer patch
				;	resides. The longer patch must then be of the
				;	normal format which is the number of bytes followed
				;	by the string.
				;
				; This area is normally patched for your specific terminal
				;	by the interactive INSTALL program. Additional
				;	patching to this area is needed only for unusual
				;	terminals or video boards, or to meet special
				;	requirements, or to enhance or personalize your
				;	copy of WordStar.
				
				
				; Video screen height, width, and wrap-around parameters are required.
				
 0242  19			hite	db	25		; Must be exact screen height in lines
				
 0243  50			wide	db	80		; Must be <= exact screen width in columns.
				
 0244  00			wrap	db	FALSE		; Indicates if terminal wraps around to next
								; line if a character is displayed in WIDth
								; column of screen (set FALSE if it doesn't)
				
 0245  00			xonoff	db	FALSE		; TRUE if XON/XOFF protocol to be used for
								; the CRT terminal
				
 0246  14			scroll	db	20		; Number of columns that are horizontally
								; scrolled when cursor moves beyond right
								; or left side of screen.
				
 0247  FF			dirsiz	db	TRUE		; Show directory at choosing a file prompt
				
 0248  00 00 00 00 00 00		db	0,0,0,0,0,0	; Reserved
				
				
				; Delete String
				
				; The following string indicates to WordStar how to display a delete
				; character (hex 7F) on the screen while editing. On terminals that
				; interpret the delete character code into a displayable character, it
				; is recommended that DELSTR be translated into the delete code itself
				; (length of 1, then 7FH). All characters in the string must display.
				
 024E  01			delstr	db	1		; Number of chars in string
 024F  7F				db	DEL		; What is displayed
 0250  00 00 00				db	0,0,0		; 3 spare bytes
				
				
				; Soft and End of Line Hyphen String
				
				; In order to distinguish soft hyphens from normal hyphens in the text,
				; WordStar will substitute the following string when one is encountered.
				
 0253  01			shystr	db	1		; Number of chars in string
 0254  3D				db	'='		; What is displayed
 0255  00 00 00				db	0,0,0		; Spare bytes
				
				
				; Block Marker Strings
				
				; Block marker strings are displayed on the screen to show the start and
				; end of a block of text. The strings are in the typical format of the
				; length followed by as many characters. Control characters should not
				; be included within these strings because they would not be sent
				; directly to the screen.
				
 0258  03			bblock	db	3		; Three chars
 0259  3C 42 3E				db	'<B>'		; Begin block
 025C  00				db	0		; 1 spare
				
				
 025D  03			kblock	db	3		; Three chars
 025E  3C 4B 3E				db	'<K>'		; End block
 0261  00				db	0		; 1 spare
				
				
				; Special characters
				
 0262  FA			softsp	db	0FAh		; Small dot for soft spaces
 0263  C4				db	0C4h		; Page break line
 0264  FE				db	0FEh		; Binding space
 0265  F0				db	0F0h		; Snaking column indicator
 0266  CD				db	0CDh		; Column break line
 0267  2E				db	'.'		; Dot leader
				
 = 0006				SOFTSPZ	equ	$-softsp
 0268  0008[				db	(14-SOFTSPZ) dup (0)	; Reserved
	   00
			]
				
				
				; Screen marker characters appear in scroll bar
				; This table allows conversion to some other character.
 0270  B0			sbdisp	db	176		; scroll bar background
 0271  DB				db	219		; Elevator
 0272  18				db	24		; Top thumb nail
 0273  19				db	25		; Bottom thumb nail
 = 0004				SBMARKZ	equ	$-sbdisp
 0274  0002[				db	(6-SBMARKZ) dup (0) ; Reserved
	   00
			 ]
				
				
				; Screen marker characters appear at the right-hand edge of the screen.
				; This table allows conversion to some other character.
				
 0276  3C			scmark	db	'<'		; Hard line ending
 0277  20				db	' '		; Paragraph line ending
 0278  2B				db	'+'		; Long line
 0279  5E				db	'^'		; End of file
 027A  2D				db	'-'		; Overstrike line
 027B  4A				db	'J'		; Line feed
 027C  46				db	'F'		; Form feed
 027D  50				db	'P'		; Page break
 027E  43				db	'C'		; Column break
 027F  57				db	'W'		; Window separator
 0280  2E				db	'.'		; Dot command
 0281  31				db	'1'		; Dot command at start of page
 0282  3A				db	':'		; Merge print dot command
 0283  3F				db	'?'		; Unknown dot command
 0284  B3				db	179		; Suppressed blank line
 0285  40				db	'@'		; Don't output the end line marker
				
 = 0010				SCMARKZ	equ	$-scmark
 0286  000E[				db	(30-SCMARKZ) dup (0)	; Reserved
	   00
			 ]
				
				
				
				; The following string is used at sign-on to describe the type
				; of terminal being used by WordStar. Up to 53 bytes are available
				; for the string, including the newline (CR/LF) and null terminator.
				
				.list
 0294  49 42 4D 20 50 43	crtid	db	'IBM PC or Compatible (includes EGA and VGA)'	    ; terminal name
       20 6F 72 20 43 6F	
       6D 70 61 74 69 62	
       6C 65 20 28 69 6E	
       63 6C 75 64 65 73	
       20 45 47 41 20 61	
       6E 64 20 56 47 41	
       29
 02BF  0D 0A				db	CR,LF						    ; new line
				
 = 002D				CRTIDZ	equ	$-crtid
 02C1  0008[				db	(53 - CRTIDZ) dup (0)
	   00
			 ]
				
				
				
				; Cursor positioning control sequences are required.
				;
				; Cursor positioning for most terminals is accomplished
				; by sending:
				;
				;	1. A 'lead-in' string of one or more terminal
				;		specific characters.
				;	2. The line number, with an offset (often 20H) added.
				;		For some terminals, the column number is
				;		sent first.
				;	3. For some terminals, another 'lead-in' string.
				;	4. The column (or line) number, with an offset.
				;	5. For some terminals, a terminating string.
				;
				; For most terminals, the line and column number are sent
				;	as one-byte binary numbers. Some terminals require
				;	that a two- or three-digit ASCII number is sent.
				;
				; For terminals that do not fit the above patterns, you
				;	must code your own subroutine.
				;
				; For example, the cursor is positioned on the TeleVideo
				;	terminal by sending:
				;
				;	ESCAPE, '=',
				;	line number plus 20H,
				;	column number plus 20H.
				
 02C9  00			clead1	db	0		; Initial lead-in string
 02CA  00				db	0		; First character
 02CB  00				db	0		; Second character
 02CC  00 00				db	0,0		; Space for two more characters
				
 02CE  00			clead2	db	0		; Sent between line and column
 02CF  00				db	0		; example. First character
 02D0  00 00 00				db	0,0,0		; Space for three more characters
				
 02D3  00			ctrail	db	0		; Terminating string
 02D4  00 00 00 00			db	0,0,0,0		; Space for four characters
				
 02D8  00			cb4lfg	db	0		; Send column before line?
								; Set non-zero to send column first
				
 02D9				curoff	label	word		; Both bytes used at one time
				
 02D9  00				db	0		; Offset to add to line
				
 02DA  00				db	0		; Offset to add to column
				
 02DB  00			ascur	db	0		; Binary/ASCII digit flag
								; 0 to send binary line and column
								; 2 to send 2-digit ASCII numbers
								; 3 to send 3-digit ASCII numbers
								; FF if WordStar to determine ASCII digits
				
				
				; Not used on IBM version.
				
 02DC  90			ucrpos:	nop
 02DD  90				nop
 02DE  C3				ret
				
 02DF  90			oncur:	nop
 02E0  90				nop
 02E1  C3				ret
				
 02E2  90			offcur:	nop
 02E3  90				nop
 02E4  C3				ret
				
				
				; Everything in the rest of this section is optional.
				;	The items relate either to enhanced performance,
				;	or for accomodating unusual terminals.
				;
				; Erase screen. If this function is not available, leave
				;	the first byte zero, and the editor will either send
				;	line feeds, or update a screen of text using ERAEOL
				;	below.
				;
				; After the screen is erased, WordStar assumes that the video
				;	attributes are set to normal, and that the cursor is at
				;	the home position (upper left hand corner).
				
 02E5  01			erascr	db	ERASCRE			; Number of characters
				
 02E6  1A			erascr1	db	CTRLZ			; First character
				
 = 0001				ERASCRE	equ	$-erascr1		; number of characters in table
 = 0002				ERASCRZ	equ	$-erascr		; size of defined table
 02E7  000F[				db	(17-ERASCRZ) dup (0)	; rest of table
	   00			
			 ]		
				
				
				
				; Backspace one character string. If this function is not
				;	available, leave the first byte zero, and the editor
				;	will use cursor addressing to backspace.
				
 02F6  00			bakspc	db	0		; Number of characters
 02F7  00				db	0		; First character
 02F8  00 00 00				db	0,0,0		; Additional characters
				
				
				; Erase to end of line string. If this function is not
				;	available, leave the first byte zero, and the editor
				;	will perform the function more slowly via software.
				
 02FB  01			eraeol	db	1		; Number of characters
 02FC  14				db	CTRLT		; First character
 02FD  00 00 00				db	0,0,0		; Additional characters
				
				
				; Erase to end of screen string. If this function is not
				;	available, leave the first byte zero, and the editor
				;	will user erase by blanking.
				
 0300  00			eraeos	db	0		; Number of characters
 0301  00				db	0		; First character
 0302  00 00 00				db	0,0,0		; Additional characters
				
				
				; Delete screen line containing the cursor, and move lower
				;	lines on the screen up one line. If this function
				;	is not available, leave the first byte zero, and
				;	the editor will perform the function more slowly
				;	via software.
				
 0305  01			lindel	db	1		; Number of characters
 0306  12				db	CTRLR		; First character
 0307  00 00 00				db	0,0,0		; Additional characters
				
				
				; Insert a blank line on the screen, moving the line
				;	containing the cursor, and the lines below it down
				;	one line. If this function is not available, leave
				;	the first byte zero, and the editor will perform
				;	the function more slowly via software.
				
 030A  01			linins	db	1		; Number of characters
 030B  05				db	CTRLE		; First character
 030C  00 00 00				db	0,0,0		; Additional characters
				
				
				; WordStar will use LINDEL and LININS to delete or insert a group
				;	of lines rather than just displaying a whole new screenful
				;	of characters. LINMAX below indicates the maximum number
				;	of lines that this would generally be faster than the
				;	re-display. Set to zero if don't care.
				
 030F  00			linmax	db	0		; Don't care
				
				
				; Delete the character at the current cursor position, moving all
				;	following characters left one position. If not available
				;	leave the first byte zero and WordStar will repaint the line.
				
 0310  00			chrdel	db	0		; Number of characters
 0311  00				db	0		; First character
 0312  00 00 00				db	0,0,0		; Additional characters
				
				
				; Insert a blank on the screen at the current cursor position,
				;	moving following characters to the right. Leave first byte
				;	zero if unavailable so that WordStar will repaint line.
				
 0315  00			chrins	db	0		; Number of characters
 0316  00				db	0		; First character
 0317  00 00 00				db	0,0,0		; Additional characters
				
				
				; Terminal initialization string. A string of bytes which
				;	will be sent to the terminal at the beginning of a
				;	session. See also INISUB.
				
 031A  FF			trmini	db	-1		; Number of bytes
 031B  02E5 R				dw	erascr		; Use extension mechanism (-1 as byte
 031D  00 00				db	0,0		; count) to erase screen as initialization.
				
				
				; Terminal un-initialization string. A string of bytes
				;	which will be sent to the terminal at the end of a
				;	session. See also UNISUB.
				
 031F  FF			trmuni	db	-1		; Number of bytes
 0320  02E5 R				dw	erascr
 0322  00 00				db	0,0
				
				
				; User-patchable initialization subroutine. Called before
				;	the TRMINI string is sent. This subroutine may be
				;	used for special console initialization or other
				;	purposes. See UCRPOS comments.
				
 0324  90			inisub:	nop			; Normally NOP, or JMP to
 0325  90				nop			; your subroutine
 0326  C3				ret
				
				
				; User patchable un-initialization subroutine. Called
				;	before the TRMUNI string is sent. This subroutine
				;	may be used to 'undo' any special terminal status
				;	used for the editor. See UCRPOS comments.
				
 0327  90			unisub:	nop			; Normally NOP, or JMP to
 0328  90				nop			; your subroutine
 0329  C3				ret
				
				
				; Video attributes are used in various places on the WordStar display.
				; When a video attribute changes, WordStar calls the VIDATT subroutine
				; below with a video attribute code in the CX register. If the CH
				; register is zero, WordStar is displaying regular text and the CL
				; register bits mean the following video attributes are to be used...
				
				;	Bit	Video Attribute
				
				;	none	Normal text
				;	 0	Strike-out
				;	 1	Reserved
				;	 2	Marked text
				;	 3	Underlining
				;	 4	Subscripting
				;	 5	Superscripting
				;	 6	Highlighting
				;	 7	Italic
				
				; If the CH register is non-zero, its bits have the following meaning...
				
				;	Bit	Video Attribute
				
				;	 0	Extended characters
				;	 1	Status line
				;	 2	Menu text (can be normal or highlighted depending on CL)
				;	 3	Function key labels
				;	 4	Ruler line
				;	 5	Directory
				;	 6	Warnings and error messages
				
				; WordStar expects the video attribute for the character to be returned
				; in the AL register. Here is the default mapping for some of the
				; WordStar video attributes into IBM attributes...
				
				;	WordStar Video	IBM Video	Function
				
				;	  00000000	 00000111	Normal
				;	  01110001	 00001000	Bright
				;	  00001000	 00000001	Underline
				;	  00000100	 00010000	Inverse
				;	  00000010	 10000000	Blink
				
				
				
				; The VIDATT subroutine is used to change video attributes on the screen.
				; On entry, WordStar will supply the attributes to turn on in the CX register.
				; You must translate them into whatever your particular terminal requires.
				
				; Return the IBM video attribute byte in AL.
				
				
				
				; IBM Video Conversion
				
 = byte ptr ds:[4]		vidax	equ	byte ptr ds:[4]	; Data segment location for VIDATT use
 = word ptr ds:[8]		viday	equ	word ptr ds:[8] ; Data segment location for SAV_VATT
 = byte ptr ds:[10]		vidaz	equ	byte ptr ds:[10] ; Data segment location for SAV_VATT+2
				
 032A				vidatt:
 032A  89 0E 0008			mov	viday,cx
 032E  BE 046B R			mov	si,offset vcolor+1
 0331  2E: 8A 04			mov	al,cs:[si]	; Get normal color
				
 0334  E3 4E				jcxz	vida4		; Normal?
 0336  8A E0				mov	ah,al
				
 0338  8A 36 0004			mov	dh,vidax	; Know video type?
 033C  FE C6				inc	dh
 033E  75 0B				jnz	vida1
				
				; Initialize
				
 0340  51				push	cx
 0341  B4 0F				mov	ah,15		; Get video type
 0343  CD 10				int	10h
 0345  A2 0004				mov	vidax,al
 0348  59				pop	cx
 0349  EB DF				jmp	vidatt
				
				; Non-text attributes
				
 034B  F6 C5 FE			vida1:	test	ch,11111110b	; Not special text?
 034E  74 3F				jz	vida5
				
 0350  8A C5				mov	al,ch		; Status line?
 0352  B3 11				mov	bl,17
 0354  D0 E8				shr	al,1
 0356  D0 E8				shr	al,1
 0358  72 25				jc	vida3
				
 035A  FE C3				inc	bl		; Menu?
 035C  D0 E8				shr	al,1
 035E  72 14				jc	vida2
				
 0360  B3 14				mov	bl,17+3		; Function key labels?
 0362  D0 E8				shr	al,1
 0364  72 0E				jc	vida2
				
 0366  B3 18				mov	bl,17+7		; Ruler line?
 0368  D0 E8				shr	al,1
 036A  72 13				jc	vida3
				
 036C  B3 16				mov	bl,17+5		; Directory?
 036E  D0 E8				shr	al,1
 0370  72 02				jc	vida2
				
 0372  B3 19				mov	bl,17+8		; Warnings
				
 0374  0A C9			vida2:	or	cl,cl		; Normal video?
 0376  74 07				jz	vida3
				
 0378  F6 C1 04				test	cl,100b		; Inverse
 037B  75 0B				jnz	vida4a
				
 037D  FE C3				inc	bl		; Highlighted
				
 037F  32 FF			vida3:	xor	bh,bh		; Get video attribute from VCOLOR
 0381  2E: 8A 00			mov	al,cs:[si+bx]
 0384  A2 000A			vida4:	mov	byte ptr vidaz,al ; Save resulting value for next time
 0387  C3				ret
				
 0388  E8 037F R		vida4a:	call	vida3		; Invert colors
 038B  B1 04				mov	cl,4
 038D  EB 1C				jmp	short vida7a
				
				; Use VCOLOR table to convert WordStar video bits
				
 038F  8A E9			vida5:	mov	ch,cl		; Original bits to CH
				
 0391  B2 08				mov	dl,8		; Go through table
 0393  46				inc	si
 0394  D0 E9			vida6:	shr	cl,1		; Bit not set?
 0396  73 07				jnc	vida7
				
 0398  2E: 22 04			and	al,cs:[si]	; AND with mask, OR with new color
 039B  2E: 0A 44 01			or	al,cs:[si+1]
				
 039F  46			vida7:	inc	si		; Next color in table
 03A0  46				inc	si
 03A1  FE CA				dec	dl
 03A3  75 EF				jnz	vida6
				
 03A5  B1 04				mov	cl,4		; CL=4
				
 03A7  84 E9				test	ch,cl		; Not marking a block?
 03A9  74 29				jz	vida10
				
				; Don't use inverse?
				
 03AB  2E: F6 06 023A R 40		vida7a:	test	cs:ibmflg,01000000b ; Bit set indicating "no inverse"?
 03B1  75 23				jnz	vida11
				
 03B3  80 FE 08				cmp	dh,8		; Color screen?
 03B6  75 08				jnz	vida9
				
				; B&W
				
 03B8  A8 76				test	al,01110110b	; Not underlining?
 03BA  75 02				jnz	vida8
				
 03BC  8A C4				mov	al,ah		; Use normal color
				
 03BE  34 08			vida8:	xor	al,00001000b	; Invert bright
				
				; Color
				
 03C0  8A F0			vida9:	mov	dh,al		; Swap foreground & background colors
 03C2  8A D0				mov	dl,al
 03C4  D2 E6				shl	dh,cl
 03C6  80 E6 70				and	dh,01110000b
 03C9  D2 EA				shr	dl,cl
 03CB  80 E2 07				and	dl,00000111b
 03CE  24 88				and	al,10001000b
 03D0  0A C6				or	al,dh
 03D2  0A C2				or	al,dl
 03D4  EB AE			vida10:	jmp	vida4
				
				; Use bright instead of inverse
				
 03D6  0C 08			vida11:	or	al,00001000b	; Set bright attribute
 03D8  EB AA				jmp	vida4
				
 = 00B0				vidatz	equ	$-vidatt	; Size of VIDATT code
				
 03DA  0090[				db	(320-vidatz) dup(0) ; Extra bytes to fill out to 300th byte
	   00			
			 ]		
				
				
				
				; Video attributes used in VIDATT for the IBM compatible video RAM. Note
				; that the table is used both for monochrome and color and should be
				; installed accordingly. The default is set up for monochrome.
				
				; Each entry in the table contains both a mask that is AND'd with the video
				; attribute, and a color code that is OR'd.
				
				; The IBM PC uses a video attribute byte for each character. It is
				; organized in the following way:
				
				;	Bit	Function
				
				;	0,1,2	Foreground color (characters)
				;	3	Bright
				;	4,5,6	Background color
				;	7	Blink
				
				; The color codes for the IBM PC are:
				
				;	0 - black
				;	1 - blue
				;	2 - green
				;	3 - cyan
				;	4 - red
				;	5 - magenta
				;	6 - brown
				;	7 - white (light grey)
				
 046A  00 07			vcolor	db	000h, 007h	; Normal text
 046C  8F 08				db	08Fh, 008h	; Strike-out
 046E  FF 00				db	0FFh, 000h	; Reserved
 0470  FF 00				db	0FFh, 000h	; Reserved (reverse video)
 0472  F8 01				db	0F8h, 001h	; Underline (blue if color)
 0474  FF 08				db	0FFh, 008h	; Subscripts
 0476  FF 08				db	0FFh, 008h	; Superscripts
 0478  FF 08				db	0FFh, 008h	; Bold, doublestrike & command tags
 047A  FF 08				db	0FFh, 008h	; Italics
				
 047C  07				db	007h		; Title bar
 047D  07				db	007h		; Menus, dialogs, warnings
 047E  01				db	001h		; Menu, dialog, warning high
 047F  01				db	001h		; Style & dialog box buttons
 0480  70				db	070h		; Button highlight
 0481  70				db	070h		; Status line
 0482  0F				db	00Fh		; Title highlight
 0483  70				db	070h		; Ruler line
 0484  70				db	070h		; Flag column
 0485  07				db	007h		; Lists
				
 = 001C				vcoloz	equ	$-vcolor		; Size of VCOLOR
				
 0486  0002[				db	(30-vcoloz) dup(0)	; Extra bytes to fill out to 30th byte
	   00			
			 ]		
				
				
				
				; Normally the status line and text are displayed in dim intensity
				; so that bold and doublestruck text can be shown in high intensity.
				; Setting BRITE to 0FFH reverses the usage of bright and dim for
				; the status line, text, and directories; zero normally.
				
 0488  00			brite	db	0		; Don't reverse
				
				
				; WordStar attempts to draw a box around most of the menus using the following
				; box drawing characters.
				
 0489  C4			boxchr	db	196	;0cdh		; Horizontal line
 048A  B3				db	179	;0bah		; Vertical line
 048B  DA				db	218	;0c9h		; Upper left corner
 048C  C0				db	192	;0c8h		; Lower left corner
 048D  BF				db	191	;0bbh		; Upper right corner
 048E  D9				db	217	;0bch		; Lower right corner
 048F  C3				db	195			; Left join
 0490  B4				db	180			; Right join
 0491  CD				db	205			; Double line separator
 0492  00 00 00				db	0,0,0	; Reserved
				
				
				; Delays executed after various terminal functions, before
				;	the next character is sent to the terminal, to
				;	allow response time required by certain terminals
				;	when operating at a high baud rate. Set to a
				;	larger value if you suffer a loss of characters
				;	after a terminal function.
				
				; Each delay is approximately the number of milliseconds
				;	on a 8088 processor. An 8086 may be consideraby
				;	faster.
				
 0495  00			delcus	db	0		; No delay after cursor positioning
								; (if your terminal works better with
								; 5 milliseconds of delay, you would
								; put a "5" here)
				
 0496  00			delmis	db	0		; No delay after ERASCR and TRMINI
				
 0497  0000			dxoff	dw	0		; If XON/XOFF used for terminal, sometimes
								; a legitimate ^S will be interpreted as an
								; XOFF character. DXOFF is used to time out
								; so that the terminal will continue.
				
 0499  07D0			dlong	dw	2000		; Long delays (2 seconds = 2,000 milliseconds)
								; - between sign-on message and Opening Menu
								; - hold off accidental unerase after ^U is
								;   used to cancel something
				
 049B  03E8			dmed	dw	1000		; Medium delays (1 second = 1,000 milliseconds)
								; - hold off submenu (^Q ^K ^O ^P Esc) to
								;   prevent menus from appearing when typing
								;   commands quickly
				
 049D  00C8			dshort	dw	200		; Short delays (200 milliseconds)
								; - find and replace flashing rate between
								;   text and Replace Y/N question
								; - delay between ^QQ repeated commands
								; - directory hold off delay if typing fast
								;   at prompts
								; - hold off help for prompt if typing fast
								; - same column delay (see samcol)
				
 049F  004B			updly	dw	75		; Page/line/column update delay after moving
								; the cursor
				
 04A1  0000			ddisk	dw	0		; Disk access delay. If character typed
								; during disk access, wait for more typing
								; before continuing.
				
 04A3  0032			dfast	dw	50		; Delay when typing fast. Holds off displaying
								; the rest of the line briefly.
				
 04A5  01F4			dalign	dw	500		; Delay before auto realignment after typing
								; or deleting within a paragraph
				
				
				; Not used in the IBM version.
				
 04A7  90			ucnsta:	nop
 04A8  90				nop
 04A9  C3				ret
				
 04AA  90			uconi:	nop
 04AB  90				nop
 04AC  C3				ret
				
 04AD  90			ucono:	nop
 04AE  90				nop
 04AF  C3				ret
				
				
				; This is 384 bytes set aside for anything that the user wishes to use.
				
 04B0				morpat	label	byte
 = 0000				morpaz	equ	$-morpat
				
 04B0  0180[				db	(384-morpaz) dup(0) ; Fill out to 384th byte
	   00			
			 ]		
				
				
				; The following string is used to describe the name of the default
				; printer used by WordStar. Up to 40 bytes are provided for the
				; string, including its null terminator.
				
 0630  44 72 61 66 74 20	PRNID	db	'Draft Printer',CR,LF,0		; Printer name
       50 72 69 6E 74 65	
       72 0D 0A 00		
 0640  20 20 20 20 20 20		db	'                        '	; Additional room
       20 20 20 20 20 20	
       20 20 20 20 20 20	
       20 20 20 20 20 20	
				
				
				; WordStar uses a default printer driver if none is specified by the
				; user. The following is its name. It may be up to eight characters
				; long, null terminated.
				
 0658  44 52 41 46 54 00	defprn	db	'DRAFT',0,0,0,0	; Standard driver
       00 00 00			
				
 0661  0010[			nrmfid	db	16 dup (0)		; Reserved
	   00			
			 ]		
				
 0671  0010[			altfid	db	16 dup (0)		; Reserved
	   00			
			 ]		
				
 0681  0010[			linfid	db	16 dup (0)		; Reserved
	   00			
			 ]		
				
 0691  0010[			fotfid	db	16 dup (0)		; Reserved
	   00			
			 ]		
				
 06A1  0010[			endfid	db	16 dup (0)		; Reserved
	   00			
			 ]		
				
				
 06B1  00 00 00 00 00 00		db	0,0,0,0,0,0,0,0,0 ; Reserved
       00 00 00			
				
				
				; The print delay timer is used to time how long the printer is busy
				; before telling the user that it's been busy a long time. This would
				; primarily be used when the printer was in another room and you might
				; not know that it was busy due to a paper jam or being off line.
				
 06BA  0000			prndly	dw	0		; Delay before saying printer busy
								; 20 seconds = 20,000 milliseconds
								; Disabled if zero
				
				; Some users, like programmers, may want to usually print non-documents.
				; In this case, WordStar prints any lines that begin with a period (dot
				; commands), and expands tab characters (09H) according to the filetype
				; in the EDCOND table elsewhere in the User Area.
				
 06BC  00			pnodoc	db	FALSE		; Don't print as a non-document
				
 06BD  00				db	0		; Reserved
				
				
				; Normally WordStar will print your document in the background so that
				; you can then do something else while it is printing. This feature
				; can be turned off.
				
				; If a "print wait" occurs during background printing, the following
				; byte determines whether or not to beep to get your attention.
				
 06BE  FF			bakprn	db	TRUE		; Background printing is on
 06BF  FF				db	TRUE		; Beep at a "print wait"
				
				
				; User list device output subroutines are used if the normal systems list
				; device is not to be used. The user subroutine overrides the LSTDEV
				; selection below.
				
 06C0  90			ulosta:	nop			; User list output status subroutine.
 06C1  90				nop			; Normally NOP, or JMP to your own
 06C2  C3				ret			; subroutine. Must return 0 in AL if
								; list device is busy, 0FFH if idle.
				
 06C3  90			ulsto:	nop			; User list output subroutine.
 06C4  90				nop			; Normally NOP, or JMP to your own
 06C5  C3				ret			; subroutine. Subroutine receives the
								; character in AL.
				
				
				; User list input subroutines are used if either XON/XOFF or ETX/ACK
				; protocols are used to indicate when the printer is busy.
				
				; On IBM PCs, if the list device is defined for COMx, these routines are
				; not required.
				
 06C6  90			ulista:	nop			; User list input status subroutine.
 06C7  90				nop			; Normally NOP, or JMP to your own
 06C8  C3				ret			; subroutine if XON/XOFF or ETX/ACK protocol.
								; Must return 0 in AL if no char pending.
				
 06C9  90			ulsti:	nop			; User list input subroutine.
 06CA  90				nop			; Normally NOP, or JMP to your own
 06CB  C3				ret			; subroutine if XON/XOFF or ETX/ACK protocol.
								; Returns character in AL.
				
				
				; Before printing, WordStar will call ULPORT below to allow for custom
				; print output redirection. A pointer to the name of the printer (null
				; terminated, all capital letters) will be passed to the subroutine in BX.
				; It is up to this subroutine to then route the printer output to the
				; appropriate output port by whatever means is available to it.
				
 06CC  90			ulport:	nop			; Normally NOP if no redirection to be done.
 06CD  90				nop			; Change to JMP to your own subroutine.
 06CE  C3				ret
				
				
				; The user list device uninitialize routine is called after printing is
				; completed, and can be used to restore the printer state for non-WordStar
				; applications.
				
 06CF  90			ulunpt:	nop			; Uninitialize list device after printing
 06D0  90				nop
 06D1  C3				ret
				
				
				; When WordStar begins printing, space is allocated for accumulating
				; header and footer lines.  HFSIZE determines how much space to allocate.
				
 06D2  1000			hfsize	dw	4096		; 4k bytes
				
				
				; DATSEP is the character used while merge printing to separate data
				; items in a data file.  The byte following is the character used to mark
				; substitution spots in the text.
				
 06D4  2C			datsep	db	','		; Comma
 06D5  26				db	'&'		; Ampersand
				
				; Strike-out character
				
 06D6  2D			stkchr	db	'-'		; Strike out character
				
				
				; Color names. Color printing is only supported on color printers.
				.list
				
 06D7				ucolor	label	byte
					;	|         1         2   2|
					;	|123456789012345678901234|
 06D7  42 6C 61 63 6B 00		db	'Black',0
 06DD  42 6C 75 65 00			db	'Blue',0
 06E2  47 72 65 65 6E 00		db	'Green',0
 06E8  43 79 61 6E 00			db	'Cyan',0
 06ED  52 65 64 00			db	'Red',0
 06F1  4D 61 67 65 6E 74		db	'Magenta',0
       61 00			
 06F9  42 72 6F 77 6E 00		db	'Brown',0
 06FF  4C 69 67 68 74 20		db	'Light Gray',0
       47 72 61 79 00		
 070A  44 61 72 6B 20 47		db	'Dark Gray',0
       72 61 79 00		
 0714  4C 69 67 68 74 20		db	'Light Blue',0
       42 6C 75 65 00		
 071F  4C 69 67 68 74 20		db	'Light Green',0
       47 72 65 65 6E 00	
 072B  4C 69 67 68 74 20		db	'Light Cyan',0
       43 79 61 6E 00		
 0736  4C 69 67 68 74 20		db	'Light Red',0
       52 65 64 00		
 0740  4C 69 67 68 74 20		db	'Light Magenta',0
       4D 61 67 65 6E 74	
       61 00			
 074E  59 65 6C 6C 6F 77		db	'Yellow',0
       00			
 0755  57 68 69 74 65 20		db	'White on Black',0
       6F 6E 20 42 6C 61	
       63 6B 00			
				
 0764  0104[				db	(401-($-ucolor)) dup (0)
	   00			
			 ]		
				
				
				
				
				; This is 128 bytes set aside for printer subroutines & strings.
				
 0868  0000 0000 0000 0000		prnpat	dw	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
       0000 0000 0000 0000		
       0000 0000 0000 0000		
 0888  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
       0000 0000 0000 0000		
       0000 0000 0000 0000		
 08A8  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
       0000 0000 0000 0000		
       0000 0000 0000 0000		
 08C8  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
       0000 0000 0000 0000		
       0000 0000 0000 0000		
				
				
				; If non-standard initialization parameters are used, the following
				; identification string can be displayed at sign-on. Up to 40 bytes are
				; available for the string, including the null terminator.
				
 08E8  00			initid	db	0		; No ID if standard
 08E9  20 20 20 20 20 20		db	'                   '
       20 20 20 20 20 20	
       20 20 20 20 20 20	
       20			
 08FC  20 20 20 20 20 20		db	'                    '
       20 20 20 20 20 20	
       20 20 20 20 20 20	
       20 20			
				
				
				; Legal Drives
				;
				; The drives listed should be reduced to the ones that are actually in use
				; on the system upon which WordStar is running.
				;
				; If the most significant bit of the drive letter is set to 1, WordStar
				; will assume that the drive is non-removable. A disk reset will not
				; be done when non-removable drives are logged.
				
 0910  41 42			lgldrv	db	'A', 'B'
 0912  C3 C4 C5 C6			db	'C' OR 80h, 'D' OR 80h, 'E' OR 80h, 'F' OR 80h
 0916  C7 C8 C9 CA			db	'G' OR 80h, 'H' OR 80h, 'I' OR 80h, 'J' OR 80h
 091A  CB CC CD CE			db	'K' OR 80h, 'L' OR 80h, 'M' OR 80h, 'N' OR 80h
 091E  CF D0 D1 D2			db	'O' OR 80h, 'P' OR 80h, 'Q' OR 80h, 'R' OR 80h
 0922  D3 D4 D5 D6			db	'S' OR 80h, 'T' OR 80h, 'U' OR 80h, 'V' OR 80h
 0926  D7 D8 D9 DA			db	'W' OR 80h, 'X' OR 80h, 'Y' OR 80h, 'Z' OR 80h
 092A  00				db	0
				
				
				
				; WordStar uses several files. Their names are specified here.
				;
				; The first two bytes before each filename indicate where WordStar
				; should search for the file, the first byte specifies tho primary
				; search if this fails the second byte is used:
				;
				; Search proceeds according to following values:
				;
				;	-1	: Secifies to WordStar that the file is uninstalled and no
				;		  search need take place.
				;
				;	 0	: First look in the subdirectory on the current drive; if
				;		  not found, search along the MS-DOS path.
				;
				;	 1 - n	: WordStar will only look in the first, second, or third
				;		  default path (see DEFPTH below).
				;
				; Filenames that have '000' as the fifth through eighth characters are
				; for those parts of the program that are language dependent such as spelling.
				; See the language table below to determine the actual file name used for
				; searching.
				
 092B  01				db	1			; Set to zero if never any help messages
 092C  FF 00 57 53 48 45	hpfile	db	-1, 0,'WSHELP  OVR'	; WS help (must be 1st in list)
       4C 50 20 20 4F 56	
       52			
				
 0939  FF 00 57 53 4D 53	msfile	db	-1, 0,'WSMSGS  OVR'	; WS menus, dialogs, and messages
       47 53 20 20 4F 56	
       52			
				
 0946  FF 00 57 53 44 53	dsfile	db	-1, 0,'WSDSPCH OVR'	; WS dispatch table
       50 43 48 20 4F 56	
       52			
				
 0953  FF 00 57 53 49 4E	ixfile	db	-1, 0,'WSINDEX XCL'	; WS indexer exclusion list
       44 45 58 20 58 43	
       4C			
				
 0960  FF 00 57 53 53 54	stfile	db	-1, 0,'WSSTYLE OVR'	; WS paragraph styles library
       59 4C 45 20 4F 56	
       52			
				
 096D  FF 00 3F 3F 3F 3F	pdffile	db	-1, 0,'????????PDF'	; PDF file stuff
       3F 3F 3F 3F 50 44	
       46			
				
 097A  FF 00 3F 3F 3F 3F	prfile	db	-1, 0,'????????OVR'	; Printer drivers
       3F 3F 3F 3F 4F 56	
       52			
				
 0987  FF 00 3F 3F 3F 3F	psfile	db	-1, 0,'????????PS '	; Postscript prolog files
       3F 3F 3F 3F 50 53	
       20			
				
 0994  FF 00 4B 45 59 42	kbfile	db	-1, 0,'KEYBOARDMRG'	; Print from keyboard template file
       4F 41 52 44 4D 52	
       47			
				
 09A1  FF 00 57 53 48 4F	hotfile	db	-1, 0,'WSHOTKEYOVR'	; List of hotkeys for macros
       54 4B 45 59 4F 56	
       52			
				
 09AE  FF 00 3F 3F 3F 3F	macfile	db	-1, 0,'????????WSM'	; WS macros file specification
       3F 3F 3F 3F 57 53	
       4D			
				
 09BB  FF 00 57 53 43 20	wscfile	db	-1, 0,'WSC     EXE'	; WS macros compiler
       20 20 20 20 45 58	
       45			
				
 09C8  FF 00 57 53 44 20	wsdfile	db	-1, 0,'WSD     EXE'	; WS macros decompiler
       20 20 20 20 45 58	
       45			
				
 09D5  FF 00 57 53 20 20	cffile	db	-1, 0,'WS      CFG'	; Configuration file
       20 20 20 20 43 46	
       47			
				
 09E2  FF 00 50 45 52 53	udfile	db	-1, 0,'PERSONALDCT'	; Personal spelling dictionary
       4F 4E 41 4C 44 43	
       54			
				
 09EF  FF 00 45 58 43 45	exfile	db	-1, 0,'EXCEPT  DCT'	; Exception spelling dictionary
       50 54 20 20 44 43	
       54			
				
 09FC  FF 00 57 53 53 50	spfile	db	-1, 0,'WSSPL000OVR'	; Spelling checker overlay
       4C 30 30 30 4F 56	
       52			
				
 0A09  FF 00 53 50 4C 49	idfile	db	-1, 0,'SPLIN000DCT'	; Personal spelling dict. (if required)
       4E 30 30 30 44 43	
       54			
				
 0A16  FF 00 53 50 4C 4D	mdfile	db	-1, 0,'SPLMN000DCT'	; Main spelling dictionary
       4E 30 30 30 44 43	
       54			
				
 0A23  FF 00 57 53 54 48	thfile	db	-1, 0,'WSTHS000OVR'	; Thesaurus overlay
       53 30 30 30 4F 56	
       52			
				
 0A30  FF 00 54 48 45 53	tdfile	db	-1, 0,'THESR000DCT'	; Thesaurus dictionary
       52 30 30 30 44 43	
       54			
				
 0A3D  FF 00 44 45 46 49	ddfile	db	-1, 0,'DEFIN000DCT'	; Definitions dictionary
       4E 30 30 30 44 43	
       54			
				
 0A4A  FF 00 57 53 48 59	hyfile	db	-1, 0,'WSHYP000OVR'	; Hyphenation algorithm overlay
       50 30 30 30 4F 56	
       52			
				
 0A57  FF 00 48 59 50 4D	hdfile	db	-1, 0,'HYPMN000DCT'	; Main data file for hyphenation
       4E 30 30 30 44 43	
       54			
				
 0A64  FF 00 48 59 50 49	hifile	db	-1, 0,'HYPIN000DCT'	; Index file for hyphenation
       4E 30 30 30 44 43	
       54			
				
 0A71  FF 00 50 52 45 56	pvfile	db	-1, 0,'PREVIEW OVR'	; Advanced Page Preview overlay
       49 45 57 20 4F 56	
       52			
				
 0A7E  FF 00 46 4F 4E 54	fnfile	db	-1, 0,'FONTID  CTL'	; Font ID for Advanced page Preview
       49 44 20 20 43 54	
       4C			
				
 0A8B  FF 03 3F 3F 3F 3F	pvwfile	db	-1, 3,'????????CRT'	; Preview's .CRT files
       3F 3F 3F 3F 43 52	
       54			
				
 0A98  FF FF 3F 3F 3F 3F	faxfile	db	-1,-1,'????????PCX'	; FAX files
       3F 3F 3F 3F 50 43	
       58			
				
 0AA5  FF 00 49 4E 53 45	isfile	db	-1, 0,'INSET   EXE'	; InSet program for print-time loading
       54 20 20 20 45 58	
       45			
				
 0AB2  FF 00 54 4F 50 49	hjfile	db	-1, 0,'TOPIX   EXE'	; HiJaak conversion file
       58 20 20 20 45 58	
       45			
				
 0ABF  FF 00 54 4F 50 49	hjset	db	-1, 0,'TOPIX   SET'	; HiJaak set file
       58 20 20 20 53 45	
       54			
				
 0ACC  FF 00 57 53 4C 49	mlfile	db	-1, 0,'WSLIST  COM'	; MailList from additional menu
       53 54 20 20 43 4F	
       4D			
				
 0AD9  FF 00 54 45 4C 4D	tmfile	db	-1, 0,'TELMERGEEXE'	; TelMerge from additional menu
       45 52 47 45 45 58	
       45			
				
 0AE6  FF 00 54 45 4C 4D	tsfile	db	-1, 0,'TELMERGESYS'	; TelMerge.sys setup file
       45 52 47 45 53 59	
       53			
				
 0AF3  FF 00 43 4F 4E 56	sxfile	db	-1, 0,'CONVERT EXE'	; Star Exchange from additional menu
       45 52 54 20 45 58	
       45			
				
 0B00  FF 00 3F 3F 3F 3F	grfile	db	-1, 0,'???????????'	; Directory mask for all possible graphics files
       3F 3F 3F 3F 3F 3F	
       3F			
				
				; Swap file specification for running programs (including StarExchange,
				; TelMerge, MailList, Macro Compile, and HiJaak).  If emsmem (above) is
				; TRUE (0ffh), then EMS memory will be used for swapping.  Otherwise,
				; WordStar will swap to the drive and path specified here.  If the filename is
				; blank the a unique filename is generated by WordStar, otherwise the name
				; specified is used. In both cases it will be created on the drive and
				; path specified here.  A 0 in the path and/or drive byte tells WordStar
				; to use the current path and/or drive for the temporary file.
				
 0B0D  FF 00 3F 3F 3F 3F	swfile	db	-1, 0,'????????$I$'	; Swap file name
       3F 3F 3F 3F 24 49	
       24			
				
				; Sixteen default paths used when looking for WordStar's files. The first
				; byte is the length of the path name string that immediately follows. If
				; the string is longer than 32 characters, set the length byte to  -1 and
				; follow it with the address of where the longer string is.
				
 = 0010				MAXPATH	EQU	16		; Maximum number of paths
 = 0023				PATHSIZ	EQU	35		; Space allocated per path
				
 0B1A				defpth	label	byte
 = 0000				PTHENTS	equ	($-defpth)/PATHSIZ	; Number of entries so far
					rept	MAXPATH-PTHENTS	; repeat for all paths
					db	3,'\WS                               '
					endm
				
				
				; INILOG allows the user to specify a drive and user number or pathname
				; for WordStar to log onto when first started. The first byte is a count
				; of following characters; the next bytes (up to three) can contain a 
				; drive (A-P) and optional subdirectory. (Can be redirected with a count
				; of -1 followed by an address where the string actually is.)
				
 0D4A  00			inilog	db	0		; Don't change directories
 0D4B  00 00 00 00 00 00		db	0,0,0,0,0,0,0,0	; Room for 24 chars
       00 00			
 0D53  00 00 00 00 00 00		db	0,0,0,0,0,0,0,0
       00 00			
 0D5B  00 00 00 00 00 00		db	0,0,0,0,0,0,0,0
       00 00			
				
				
				; WordStar creates backup and temporary files. The following are the file
				; types to be used for them.
				
 0D63  42 41 4B			baktyp	db	'BAK'		; Type for backup files
				
 0D66  24 41 24			aftype	db	'$A$'		; Type of spillover file after memory
				
 0D69  24 42 24			bftype	db	'$B$'		; Type of spillover file before memory
				
 0D6C  24 43 24			blktyp	db	'$C$'		; Type of file used to buffer block move/copy
				
 0D6F  24 44 24			ncltyp	db	'$D$'		; Newspaper column accumulation
				
 0D72  24 45 24			enotyp	db	'$E$'		; Endnote accumulation
				
 0D75  24 46 24			fnotyp	db	'$F$'		; Footnote accumulation
				
 0D78  24 47 24			wrktyp	db	'$G$'		; Workfile for typestyles
				
 0D7B  24 48 24			mactyp	db	'$H$'		; Workfile for macros
				
 0D7E  44 43 43			dcctyp	db	'DCC'		; File extension for compiled dicts
				
				
				; When the directory is displayed, file types from this table are suppressed.
				; A question mark in a file type matches any character.
				
 = 0003				NTYPZ	equ	3		; Size of file type
 = 0018				NTYPCNT	equ	24		; Max number of file types to suppress
				
 0D81				notype	label	byte
 0D81  43 4F 4D				db	'COM'		; Command files
 0D84  45 58 45				db	'EXE'		; Execution files
 0D87  4F 56 52				db	'OVR'		; Overlays
 0D8A  24 3F 3F				db	'$??'		; Temporary before and after files ($A$, $B$)
 0D8D  53 59 53				db	'SYS'		; User preference files
 0D90  44 43 54				db	'DCT'		; Dictionaries
 0D93  43 52 54				db	'CRT'		; Compiled screen fonts
 0D96  57 53 46				db	'WSF'		; Master screen fonts
 0D99  50 44 46				db	'PDF'		; Printer definition files
 0D9C  44 43 43				db	'DCC'		; Compressed dictionary files
 0D9F  57 53 4D				db	'WSM'		; WordStar macros
 0DA2  50 52 44				db	'PRD'		; Graphics print driver files
 0DA5  46 53 54				db	'FST'		; InSet print files
				
 = 000D				NTYPZ1	equ	($ - notype)/NTYPZ
					rept	NTYPCNT - NTYPZ1
					db	0,0,0
					endm
				
 0DC9  00				db	0		; End of table
				
				
				; Default country (language) code.  Specifies which LNGTBL entry to use.
				
 0DCA  0001			lngcod	dw	1		; Use United States, France would be 33
				
				
				; The following table contains a country followed by its three digit code.
				; The code is substituted in files that are unique for particular countries.
				; 
				; 1st byte = number of country/language entries in table.
				; Rest of table contains 18-byte country/language entries.
				; Each entry consists of:
				;   16 bytes: Fixed-length, space-padded, country/language descriptor string.
				;    1 byte:  Locale code
				;    3 bytes: Ascii country code
				
				
 0DCC  11			lngtbl	db	LNGENTS		; number of languages in table
				
 = 0014				LTBLEZ	equ	20		; length of each entry
 = 0032				LTBLCNT	equ	50		; Number of entries
				
 0DCD				lngtbl1	label	byte
				
					;	|         1     1|
					;	|1234567890123456|
 0DCD  55 6E 69 74 65 64		db	'United States   ',1Fh,'001'	; USA & UK
       20 53 74 61 74 65	
       73 20 20 20 1F 30	
       30 31			
 0DE1  55 6E 69 74 65 64		db	'United Kingdom  ',1Fh,'044'
       20 4B 69 6E 67 64	
       6F 6D 20 20 1F 30	
       34 34			
				
 0DF5  43 61 6E 61 64 61		db	'Canada (French) ',17h,'002'	; Canada (French)
       20 28 46 72 65 6E	
       63 68 29 20 17 30	
       30 32			
				
 0E09  4C 61 74 69 6E 20		db	'Latin America   ',13h,'003'	; Central- & South America
       41 6D 65 72 69 63	
       61 20 20 20 13 30	
       30 33			
 0E1D  53 70 61 69 6E 20		db	'Spain           ',13h,'034'
       20 20 20 20 20 20	
       20 20 20 20 13 30	
       33 34			
 0E31  4D 65 78 69 63 6F		db	'Mexico          ',13h,'052'
       20 20 20 20 20 20	
       20 20 20 20 13 30	
       35 32			
 0E45  42 72 61 7A 69 6C		db	'Brazil          ',13h,'055'
       20 20 20 20 20 20	
       20 20 20 20 13 30	
       35 35			
				
 0E59  4E 65 74 68 65 72		db	'Netherlands     ',23h,'031'	; Western Europe
       6C 61 6E 64 73 20	
       20 20 20 20 23 30	
       33 31			
 0E6D  46 72 61 6E 63 65		db	'France          ',23h,'033'
       20 20 20 20 20 20	
       20 20 20 20 23 30	
       33 33			
 0E81  49 74 61 6C 79 20		db	'Italy           ',23h,'039'
       20 20 20 20 20 20	
       20 20 20 20 23 30	
       33 39			
 0E95  53 77 69 74 7A 65		db	'Switzerland (G) ',23h,'041'
       72 6C 61 6E 64 20	
       28 47 29 20 23 30	
       34 31			
 0EA9  44 65 6E 6D 61 72		db	'Denmark         ',23h,'045'
       6B 20 20 20 20 20	
       20 20 20 20 23 30	
       34 35			
 0EBD  53 77 65 64 65 6E		db	'Sweden          ',23h,'046'
       20 20 20 20 20 20	
       20 20 20 20 23 30	
       34 36			
 0ED1  4E 6F 72 77 61 79		db	'Norway          ',23h,'047'
       20 20 20 20 20 20	
       20 20 20 20 23 30	
       34 37			
 0EE5  47 65 72 6D 61 6E		db	'Germany         ',23h,'049'
       79 20 20 20 20 20	
       20 20 20 20 23 30	
       34 39			
 0EF9  50 6F 72 74 75 67		db	'Portugal        ',23h,'351'
       61 6C 20 20 20 20	
       20 20 20 20 23 33	
       35 31			
 0F0D  46 69 6E 6C 61 6E		db	'Finland         ',23h,'358'
       64 20 20 20 20 20	
       20 20 20 20 23 33	
       35 38			
				
 = 0011				LNGENTS	equ	($-lngtbl1)/LTBLEZ		; number of entries so far
					rept	LTBLCNT - LNGENTS
					db	'                ',00h,'000'	; fill out rest of table
					endm
				
				
				; DIRFIL is a file name "image" that is used in conjunction with NOTYPE (above)
				; to determine which files are to be displayed in WordStar's directories.
				; DIRFIL determines which files can possibly be included, and NOTYPE then
				; eliminates certain types of files. Use a question mark in DIRFIL at each
				; spot where any file name character can match.
				
 11B5  3F 3F 3F 3F 3F 3F	dirfil	db	"???????????"	; All files match
       3F 3F 3F 3F 3F		
				
				
				; The name of the file to be edited can be specified at the operating system
				; prompt. ININON indicates whether the file should be edited as a document
				; or nondocument.
				
 11C0  00			ininon	db	FALSE		; Document (not a nondocument)
				
				
				; WordStar normally makes BAK backup files every time you save your work.
				; INITBAK can be used to disable backups by setting it FALSE.
				
 11C1  FF			inibak	db	TRUE		; Make backups
				
				
				; SETEOF can be set FALSE to turn off the automatic filling out of the
				; final record of a file with 1Ah end of file marks.
				
 11C2  FF			seteof	db	TRUE		; Use EOF marks
				
				
				; USEDOT determines whether or not to automatically insert dot commands
				; into a document after a margin or tab change.
				
 11C3  FF			usedot	db	TRUE		; Insert dot commands
				
 11C4  00 00				db	0,0		; Reserved
				
				
				; When a nondocument is edited, WordStar will decide how to expand tabs
				; (ASCII 09H), and whether or not to use auto-indenting by looking in this
				; table.
				
				; There is a special case of the tab masks shown below. When the most
				; significant bit of the tab mask is set to 1, WordStar will assume that
				; you want to use variable tabbing. When the tab key is typed, instead
				; of inserting an ASCII 09H into the file, spaces will be entered up to
				; the next tab stop. The tab stops used are in the RLRINI table. An
				; ASCII 09H can still be entered in this mode, however, by typing ^PI.
				
 11C6  50 41 53 01 FF		edcond	db	'PAS',00000001b,TRUE	; File extension, followed by a
 11CB  50 4C 49 03 FF			db	'PLI',00000011b,TRUE	; binary tab mask (e.g. a mask of
 11D0  43 20 20 03 FF			db	'C  ',00000011b,TRUE	; 00000111B expands tab characters
 11D5  48 20 20 03 FF			db	'H  ',00000011b,TRUE	; to every 8th column), followed by
									; TRUE if auto-indent is turned on.
				
 11DA  00 00 00 07 00			db	0,0,0,00000111b,FALSE	; End of table with defaults if file
									; type doesn't match above
				
 11DF  00 00 00 00 00			db	0,0,0,0,0		; Room for four more
 11E4  00 00 00 00 00			db	0,0,0,0,0
 11E9  00 00 00 00 00			db	0,0,0,0,0
 11EE  00 00 00 00 00			db	0,0,0,0,0
				
				
				; Certain special characters can be inserted into this table to cause
				; WordStar to automatically generate a backspace character (^H) preceding
				; the character as you type. This can be especially useful for accent
				; characters in some foreign languages.
				
 11F3  00			autobs	db	0		; Number of characters in table
 11F4  00 00 00 00			db	0,0,0,0		; Up to 8 character codes
 11F8  00 00 00 00			db	0,0,0,0
				
 11FC  001D[				db	29 dup(0)	; Reserved
	   00			
			 ]		
				
					
				
				; When WordStar opens a file for editing, it uses the following initial
				; conditions.
				
 1219  00			iniedt	db	FALSE		; Right justification when typing
				
 121A  FF				db	TRUE		; Word wrap when typing at end of line
				
 121B  FF				db	TRUE		; Insert on
				
 121C  FF				db	TRUE		; Print controls displayed
				
 121D  FF				db	TRUE		; Hyphen help on
				
 121E  FF				db	TRUE		; Ruler displayed
				
 121F  00				db	FALSE		; Not column mode
				
 1220  00				db	FALSE		; Column replace off
				
 1221  01				db	1		; Single spacing
				
 1222  03				db	3		; Scrolling speed
				
 1223  00				db	FALSE		; Preview mode off
				
 1224  02				db	2		; Proportional spacing depends on font
				
 1225  00				db	FALSE		; Suppress blank lines at top of page
				
 1226  00				db	0		; Reserved, was soft space dots and soft tabs
				
 1227  FF				db	TRUE		; Automatic paragraph realignment on
				
 1228  00 00 00				db	0,0,0		; Reserved
				
 122B  00				db	0		; Reserved
				
 122C  00				db	0		; Reserved
				
 122D  02D0				dw	3*240		; Top of page margin.
				
 122F  0780				dw	8*240		; Bottom of page margin.
				
 1231  3DE0				dw	66*240		; Total VMI per page.
				
 1233  0001				dw	1		; Initial page number (note 2 bytes).
				
 1235  FF				db	TRUE		; Page number prints at bottom of page
								; if TRUE. No page number if FALSE.
				
 1236  FFFF				dw	-1		; Column where page number prints (-1=center).
				
 1238  01E0				dw	2*240		; Heading margin between header and text.
				
 123A  01E0				dw	2*240		; Footing margin.
				
 123C  07				db	00000111b	; Default document tab mask (must be
								; binary, 00000000B through 01111111B).
				
 123D  05A0				dw	8*180		; HMI page offset for even pages.
 123F  05A0				dw	8*180		; HMI page offset for odd pages.
				
 1241  FF				db	TRUE		; Bidirectional printing if TRUE. Just
								; unidirectional or printer controlled
								; if FALSE.
				
 1242  02				db	2		; Letter quality printing if 1. Draft
								; quality if 0. Discretionary if 2.
								; (Only supported on some printers.)
				
 1243  02				db	2		; Microjustified printing. 0 turns it off,
								; 1 turns it on, and 2 makes it discretionary
								; (depending on the printer driver in use).
				
 1244  FF				db	TRUE		; Underline blanks between words if TRUE.
				
 1245  FF				db	TRUE		; Kerning on if TRUE
				
 1246  00 00 00 00 00			db	0,0,0,0,0	; Reserved
				
 124B  00B4				dw	180		; Normal font for ^PN. Width (HMI units)
 124D  00F0				dw	240		; Height (VMI units) (was 180 *28jan90tap*)
 124F  0000				dw	0		; Typestyle
				
 1251  0096				dw	150		; Alternate font for ^PA.  Width (HMI units)
 1253  00C8				dw	200		; Height (VMI units)
 1255  0000				dw	0		; Typestyle
				
 1257  005A				dw	90		; Subscript and superscript roll (in VMI
								; units). This value determines how
								; far up or down the carriage moves when
								; subscripting or superscripting.
				
 1259  00F0				dw	240		; Line height (in VMI units). This value
								; determines how far to roll the carriage
								; to get to the next line.
				
 125B  00				db	00000000b	; Bits: 0-6 defines the line spacing between
								; line numbers If Bit 7 is set then there is 
								; no restarting of line numbers at start of 
								; each page. If zero, then each page will 
								; start at line number 1
				
 125C  00				db	0		; Page orientation 0=portrait,1=landscape
				
				.errnz	($-iniedt) ne INISIZ
				
				
				; Default dialog box units
				;
				; R or L  = Ruler units (R for horizontal; L for vertical)
				; in or " = Inches
				; cm      = Centimeters
				; pt      = Points (1/72nd of an inch, as opposed to "true points")
				
 125D  22 20			dbunith	db	'" '	; default horizontal units       
 125F  22 20			dbunitv	db	'" '	; default vertical units         
 1261  22 20			dbunitl	db	'" '	; default Line heigth ("leading")
				
				
				; The default ruler line can be described by defining the following values.
				; Note that the tab stop tables must contain values in ascending order only.
				; The regular tab stops are put in the table first, immediately followed by
				; the decimal tabs.
				
				
				; .RR 0
				
 1263  0000			rlrini	dw	0		; Left ruler margin
 1265  2DB4				dw	65*180		; Right ruler margin
 1267  FFFF				dw	-1		; Paragraph margin
				
 1269  0000				dw	0		; Reserved
				
 126B  0B				db	11		; Number of tab stops in tab table
 126C  00				db	0		; Number of decimal tabs
				
 126D  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 1275  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 127D  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 1283  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 1293  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 12A3  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 1
				
 12AD  0384				dw	5*180		; Left ruler margin
 12AF  2A30				dw	60*180		; Right ruler margin
 12B1  FFFF				dw	-1		; Paragraph margin
				
 12B3  0000				dw	0		; Reserved
				
 12B5  0A				db	10		; Number of tab stops in tab table
 12B6  00				db	0		; Number of decimal tabs
				
 12B7  0708 0A8C 0E10			dw	10*180,15*180,20*180	; Tab stops
 12BD  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180
 12C5  1FA4 2328 26AC			dw	45*180,50*180,55*180
				
 12CB  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Unused tab stops
       0000 0000 0000 0000		
 12DB  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 12EB  0000 0000 0000 0000			dw	0,0,0,0,0,0
       0000 0000		
				
				; .RR 2
				
 12F7  0384				dw	5*180		; Left ruler margin
 12F9  2DB4				dw	65*180		; Right ruler margin
 12FB  0000				dw	0		; Paragraph margin
				
 12FD  0000				dw	0		; Reserved
				
 12FF  0A				db	10		; Number of tab stops in tab table
 1300  00				db	0		; Number of decimal tabs
				
 1301  0384 0708 0A8C 0E10			dw	5*180,10*180,15*180,20*180	; Tab stops
 1309  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180
 1311  1FA4 2328 26AC			dw	45*180,50*180,55*180
				
 1317  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Unused tab stops
       0000 0000 0000 0000		
 1327  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 1337  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 3
				
 1341  0000				dw	0		; Left ruler margin
 1343  2DB4				dw	65*180		; Right ruler margin
 1345  FFFF				dw	-1		; Paragraph margin
				
 1347  0000				dw	0		; Reserved
				
 1349  0B				db	11		; Number of tab stops in tab table
 134A  00				db	0		; Number of decimal tabs
				
 134B  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 1353  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 135B  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 1361  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 1371  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 1381  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 4
				
 138B  0000				dw	0		; Left ruler margin
 138D  2DB4				dw	65*180		; Right ruler margin
 138F  FFFF				dw	-1		; Paragraph margin
				
 1391  0000				dw	0		; Reserved
				
 1393  0B				db	11		; Number of tab stops in tab table
 1394  00				db	0		; Number of decimal tabs
				
 1395  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 139D  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 13A5  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 13AB  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 13BB  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 13CB  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 5
				
 13D5  0000				dw	0		; Left ruler margin
 13D7  2DB4				dw	65*180		; Right ruler margin
 13D9  FFFF				dw	-1		; Paragraph margin
				
 13DB  0000				dw	0		; Reserved
				
 13DD  0B				db	11		; Number of tab stops in tab table
 13DE  00				db	0		; Number of decimal tabs
				
 13DF  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 13E7  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 13EF  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 13F5  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 1405  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 1415  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 6
				
 141F  0000				dw	0		; Left ruler margin
 1421  2DB4				dw	65*180		; Right ruler margin
 1423  FFFF				dw	-1		; Paragraph margin
				
 1425  0000				dw	0		; Reserved
				
 1427  0B				db	11		; Number of tab stops in tab table
 1428  00				db	0		; Number of decimal tabs
				
 1429  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 1431  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 1439  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 143F  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 144F  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 145F  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 7
				
 1469  0000				dw	0		; Left ruler margin
 146B  2DB4				dw	65*180		; Right ruler margin
 146D  FFFF				dw	-1		; Paragraph margin
				
 146F  0000				dw	0		; Reserved
				
 1471  0B				db	11		; Number of tab stops in tab table
 1472  00				db	0		; Number of decimal tabs
				
 1473  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 147B  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 1483  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 1489  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 1499  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 14A9  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 8
				
 14B3  0000				dw	0		; Left ruler margin
 14B5  2DB4				dw	65*180		; Right ruler margin
 14B7  FFFF				dw	-1		; Paragraph margin
				
 14B9  0000				dw	0		; Reserved
				
 14BB  0B				db	11		; Number of tab stops in tab table
 14BC  00				db	0		; Number of decimal tabs
				
 14BD  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 14C5  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 14CD  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 14D3  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 14E3  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 14F3  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				; .RR 9
				
 14FD  0000				dw	0		; Left ruler margin
 14FF  2DB4				dw	65*180		; Right ruler margin
 1501  FFFF				dw	-1		; Paragraph margin
				
 1503  0000				dw	0		; Reserved
				
 1505  0B				db	11		; Number of tab stops in tab table
 1506  00				db	0		; Number of decimal tabs
				
 1507  0384 0708 0A8C 0E10			dw	 5*180,10*180,15*180,20*180	; Tab stops
 150F  1194 1518 189C 1C20			dw	25*180,30*180,35*180,40*180	; (Must be in
 1517  1FA4 2328 26AC			dw	45*180,50*180,55*180		; ascending order)
				
 151D  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0	; Room for 21 more
       0000 0000 0000 0000		
 152D  0000 0000 0000 0000			dw	0,0,0,0,0,0,0,0
       0000 0000 0000 0000		
 153D  0000 0000 0000 0000			dw	0,0,0,0,0
       0000			
				
				
 1547  00				db	0		; Reserved
				
				
				; COLDEF is used to define the default number of newspaper-style columns,
				; and the gutter width between them.
				
 1548  01			coldef	db	1		; One column means normal text
				
 1549  01C2				dw	450		; 450/1800ths is .25"
				
				
 154B  0000				dw	0		; reserved
				
				
				; INIDIR determines whether the directory is initially displayed or not.
				; DIRSRT tells WordStar whether or not to sort directories in alphabetical
				; order before displaying them. DSPACE indicates whether or not WordStar
				; is to display on directories the space remaining for the currently
				; logged drive. SHOSIZ indicates whether or not to show file sizes.
				
 154D  FF			inidir	db	TRUE		; Directory on
				
 154E  FF			dirsrt	db	TRUE		; Sort directory
				
 154F  FF			dspace	db	TRUE		; Display remaining space
				
 1550  FF			shosiz	db	TRUE		; Show size of each file
				
 1551  00			usetyp	db	FALSE		; Use NOTYPE for inclusion.  If set to true,
								; only those file types in NOTYPE will be
								; shown in the directory.
				
				
				; INIHLP is the default help level.
				;
				;	At help level 4...	Pull down menus and full prompts.
				;
				;	At help level 3...	Standard menus and full prompts.
				;
				;	At help level 2...	No Edit Menu.
				;				More information underneath prompts.
				;
				;	At help level 1...	Less information shown such as for the D,
				;				  N, and L Opening Menu commands.
				;				No ^Q, ^K, ^O, ^P menus shown.
				;				Don't ask "Can't find file. Create new one?"
				;				Don't display Large-File in status line.
				;				Don't ask "Erase anyway?" if block too large
				;				  to unerase later.
				;				Don't ask if "sure" when deleting file.
				;
				;	At help level 0...	No information underneath prompts.
				;				Allow block operations on hidden blocks.
				;				Function key labels off.
				
 1552  04			inihlp	db	4
				
				
				; Normally, function key labels will appear at help levels 1-3.
				; Setting LABHP4 to 0FFH will allow the labels to appear at help
				; level 4 as well.
				
 1553  00			labhp4	db	0		; Initially, no function key labels
				
				
				; When editing, the last erasure can be undone with ^U. UNONE determines
				; whether single character erasures with ^G and DEL can also be undone.
				;
				; UNSIZE is the maximum erasure that can later be undone. The unerase
				; buffer shares the same memory space as the text you are editing. Making
				; UNSIZE very large may cause WordStar to "spill over" to disk more
				; frequently, slowing down editing.
				
 1554  00			unone	db	FALSE		; Don't unerase single erasures
				
 1555  01F4			unsize	dw	500		; Unerase up to 500 characters
				
 1557  00				db	0		; Reserved
				
 1558  00				db	0		; Reserved
				
				; If a document becomes too large to fit in memory at one time, WordStar
				; begins to "spill" the excess to the disk. TYSIZE determines how many
				; 128-bytes records to use for each spillover. Picking a correct size
				; is important but can usually be done by trial and error. If TYSIZE is
				; too large, you may see long delays during scrolling or typing when memory
				; fills.
				
				; If TYSIZE is zero, WordStar calculates its size to be 1/8 of the maximum
				; amount of text that can be stored in memory.
				
 1559  00			tysize	db	0		; Let WordStar calculate spillover size
				
				
				; A "find", "go to note" or "find and replace" uses the INIFIN options
				; if you do not explicitly enter any at the "Options?" prompt. The
				; possible options that can be used are:
				
				;	W  whole words only
				;	U  ignore case
				;	M  maintain case
				;	?  wild cards
				;	B  backwards search
				;	G  whole file
				;	R  rest of file
				;	N  replace without asking
				;	A  align paragraph after replacement
				;	T  search for note tag only
				
				; Blank the unused options.
				
 155A  20 20 20 20 20 20	inifin	db	'          '	; No options
       20 20 20 20		
				
				
				; For help levels other than zero, the status line is usually displayed
				; at the top of the screen. INISTA lets you always turn it off.
 1564  FF			inista	db	TRUE		; Display status line
 1565  FF				db	TRUE		; Show style bar
				
				
				
				; When paragraphs are aligned and hyphen help is on, HYMAX
				; is used to determine when to hyphenate a word.
				
 1566  05			hymax	db	5		; Hyphenate when a word has 5 characters
								; still within the right margin
				
				
				; Hyphenator memory.  Set this byte to false to disable the allocation of
				; memory for the hyphenator.
				
 1567  FF			hymem	db	TRUE		; Use the hyphenator
				
 1568  00				db	?		; Reserved (old yncr flag - no longer used)
				
				
				; WordStar can index every word in a document as well as selected words and
				; phrases. IDXALL determines whether this is the default or not.
				
 1569  00			idxall	db	FALSE		; Don't index every word
				
				
				; Using ^B or ^QU in a nondocument normally strips the eighth bit from
				; each character in a line. STRPFL can disable stripping.
				
 156A  FF			strpfl	db	TRUE		; Stripping is enabled
				
				
				
				; Normally, the display will be inactive when reformatting paragraphs with
				; ^QU.  Change RFINTR to TRUE if you would like to watch the progress on
				; the screen.  This can slow down paragraph reform.
				
 156B  00			rfintr	db	FALSE		; Use fast mode (no display)
				
				
				; The following flags are used to control the way WordStar processes
				; certain commands. CTLNFL and CTLHFL are provided primarily to allow
				; WordStar users to use ^N and ^H in the same way as they are accustomed.
				
 156C  FF			ctlnfl	db	TRUE		; Set non-zero if ^N to break line and
								; RETURN moves down a line when insert off.
								; Set to zero so ^N converts paragraph lines
								; and turns auto indent on/off for
								; nondocuments, and RETURN always inserts CRLF.
				
 156D  00			ctlhfl	db	0		; Set non-zero if ^H to be same as ^S instead
								; of DEL.
				
 156E  00			casefl	db	0		; Set non-zero if ^^ is case toggle. When
								; zero and CLTNFL is non-zero, use as
								; paragraph line and auto-indent on/off.
				
 156F  00			delflg	db	0		; Set non-zero if DEL erases to left, zero
								; to erase to right (like ^G).
				
 1570  FF			blkflg	db	0ffh		; Set non-zero if the cursor should move
								; to column 1 if the cursor is next to a block
								; marker at the left edge of the screen
				
 1571  00			lspflg	db	0		; Set non-zero if lines with soft carriage
								; returns should not be added to paragraphs
								; for line spacing other than 1
				
 1572  00			escflg	db	0		; Set non-zero if the Esc key should work the
								; same as ^K in dialog boxes.
				
 1573  FF			quxflg	db	0ffh		; Set zero if ^QX should go to the left side
								; of the screen
				
 1574  FF			pulflg	db	0ffh		; Set non-zero if WS commands should work
								; when cursor is at leftmost end of pulldown
								; menu bar
				
 1575  00			gpgflg	db	0		; Set non-zero to use the old way of going to
								; a page.  Normally, the cursor will be put on
								; the first printable line of the specified
								; page.
				
 1576  00			sdirfl	db	0		; Set non-zero to see the full directory of
								; files when logging to another drive or
								; directory.
				
 1577  00 00 00				db	0,0,0		; Reserved
				
				
				; AHEAD indicates whether type ahead is allowed for ^E, ^X, ^W, ^Z,
				; ^G, DEL, ^T, ^Y, ^QY, and ^QDEL. If AHEAD is 0, WordStar's type
				; ahead buffer will be flushed whenever one of the functions is
				; encountered. If it is non-zero, no flushing will occur. This
				; flag should be used primarily for external keyboard enhancers where
				; the functions shown above are to be used. WordStar's function key
				; and shorthand processing automatically compensate.
				
 157A  00			ahead	db	0		; Flush
				
				
				; Maximum size for the macro hotkey definitions.
				
 157B  07			hanmax	db	7		; Size of macro hotkey buffer in records
								; (7 times 128 = 896 bytes)
				
				
				; Spelling checking and correction
				;
				; SPFLAG is used to indicate how WordStar is to use the dictionaries
				; each bit is defined as follows...
				;
				; This flag is also used for the thesaurus dictionary.
				;
				;	Bit	Definition
				;
				;	 0	Set if swapping between dictionary disk and program disk
				;	 1	If swapping, set if personal dictionary is on dictionary disk
				;	 2	No longer used.
				;	 3	Set if the main dictionary is to be entirely loaded to RAM
				;		This is now automatic.  Even when there is enough memory to
				;		load the main dictionary into ram, the speller (and its
				;		dictionary) may be removed from memory to make room for other
				;		parts of WordStar such as preview, printing or InSet.  It's
				;		also removed when running external programs.
				;	 4	Set to always prompt user for personal dictionary
				;	5-7	Reserved
				;
				;	If neither bits 1 and 2 are set when swapping, the personal
				;	dictionary is assumed to be on the document disk.
				
 157C  00			spflag	db	0	; Not swapping, personal is on work disk
				
				
				; UDCMEM is the number of kbytes allocated to hold the user dictionaries.
				; This includes both the personal dictionary and the exception dictionary.
				; Allocating 0K bytes will disable the use of these dictionaries.  You should
				; use enough to contain both files (size as reported by DOS or the WordStar
				; directory listing).  The second byte indicates to WordStar how large to
				; make the area that holds the global replacement list.  If you make these
				; two values total more than the speller has left to give them after loading
				; the speller overlay and a minimum main dictionary, you'll get an out of
				; memory error when trying to use the speller.  See spmmem below.
				
 157D  02			udcmem	db	2		; Use 2K for default user dictionaries
 157E  02				db	2		; Use 2K for global replacements memory
				
				
				; SPMMEM indicates the amount of memory set aside for the speller.  This value
				; includes the overlay file, its overhead, and the dictionary memory.  For the
				; American speller, the overhead necessary is about 7300 bytes.
				
				; The main dictionary is usually the largest and slowest of the spelling check
				; dictionaries. If there is sufficient memory in your computer, WordStar
				; can speed up dictionary look-ups significantly by "learning" which words
				; you look up most frequently and storing them in memory. If there is
				; enough memory in your computer, eventually the whole dictionary is
				; put in memory. If bit 3 of SPFLAG above is set, the first time you do
				; a spelling check, the entire dictionary will be loaded into memory all at
				; once (if enough memory was set aside). The minimum for the main
				; dictionary is about 7k. Setting SPMMEM to 0 disables the speller.
				
				; The thesaurus dictionary requires a minimum of about 46k.
				; So to run the thesaurus when the memory is being shared, SPLMEM must
				; be at least 46k plus the size of the thesaurus overlay plus its overhead
				; (currently about 7300 bytes). Larger values do not help the thesaurus.
				; Smaller values disable it.
				
				; Setting SPMMEM to -1 makes the speller use all of available memory.
				; Setting it to values from about 72K (the minimum) to the size of the speller
				; plus the size of the dictionary are allowable.
				
				; Unless the thesaurus memory is separate from the spelling memory (see
				; memflg above), then the proper amounts will be allocated for the
				; thesaurus dictionary automatically.
				
 157F  FFFF			spmmem	dw	-1		; Set to use all of remaining memory
				
				
				; WordStar normally doesn't check the spelling of very small words since
				; single letters are used for many things besides the words "a" or "I".
				; SPMIN is used to indicate the smallest word to be checked.
				
 1581  02			spmin	db	2		; Don't check 1-letter words
				
				
				; Two words in a row (e.g. the the) will be flagged as a misspelling if
				; CKDBL is set TRUE.
				
 1582  FF			ckdbl	db	TRUE		; Check for double words
				
				
				; Normally, the display will be inactive when spell checking.  Change SPINTR
				; to TRUE if you would like to watch the progress on the screen.  This can
				; slow down spell checking.
				
 1583  00			spintr	db	FALSE		; Use fast mode (no display)
				
				
				; When WordStar begins printing, InSet can be loaded.  If you don't 
				; print with graphics, you can set this flag to false.
				
 1584  FF			iinset	db	TRUE		; Load InSet at print-time
				
				
				; When you type the name of a graphics tag with the ^P* command, and
				; it doesn't contain a period indicating a file type, this file type
				; is added to the end of the file name specification.
				
 1585  03			grphft	db	3		; File type string length
 1586  50 49 58				db	'PIX'		; PIX for InSet
				
				
				; When you type ^P* to insert a graphics tag, this is the directory mask
				; used to show file names of possible graphics files.
				
				;grphmk	db	'???????????'	; Directory mask for all possible graphics files
				
				
 1589  00				db	?		; Reserved
 158A  0006[				db	6 dup (?)
	   ??			
			 ]		
				
 1590  00				db	?
				
 1591  00				db	?		; Reserved
 1592  0005[				db	5 dup (?)
	   ??			
			 ]		
				
 1597  00 00				db	?,?
				
				
				; With shorthand you can insert the dollar-formatted results of the last
				; math you performed. WordStar uses the format below when you do this.
				; (Make sure that the character count includes the zero at the end.)
				
 1599  11			dollar	db	17		; Character count
 159A  2D 2D 2C 2D 2D 2D		db	'--,---,---,---.99'
       2C 2D 2D 2D 2C 2D	
       2D 2D 2E 39 39		
 15AB  00 00 00				db	0,0,0		; Spare
				
				
				; Special characters
				
 15AE  2C			splchr	db	','		; Thousands separator for numbers
 15AF  2E				db	'.'		; Decimal point for numbers and decimal tabs
				
 15B0  0004[				db	4 dup(0)	; Reserved
	   00			
			 ]		
				
				
				
				; Memory allocation for editing. Must be big enough to hold the current
				; text being allocated as well as WordStar's fixed variables and allocated
				; variables (at least 36k). The maximum usable is 64k. This amount of
				; memory is also allocated to split screen editing.
				
 15B4  40			edtmem	db	64		; 64 kilobytes
				
				
				; Memory allocation for the merge print buffer. Each variable name in the
				; buffer requires 1 byte plus the size of the name. Each data requires
				; 1 byte plus the size of the data. Set to zero to disable merge printing.
				; The maximum usable is 64k.
				
 15B5  04			mrgmem	db	4		; 4 kilobytes
				
				
				; When text is too big to fit in the memory buffer, the excess normally
				; "spills" to temporary disk files. If there is expanded memory (EMS) in your
				; computer, this can be used instead to increase performance for large files.
				; Set to zero to disable EMS usage. Otherwise, set to the number of 16-kbyte
				; pages of memory of EMS to use.
				
 15B6  10			emsmem	db	10H		; Number of 16k EMS pages to use.
				
 15B7  FF				db	TRUE		; Map Before/After files through EMS/XMS
				
 15B8  00				db	0		; Reserved
 15B9  00				db	0		; Reserved
				
 15BA  00			xmsmem	db	0		; Number of 16k XMS blocks to use.
 15BB  0043[				db	67 dup(0)	; Reserved
	   00			
			 ]		
				
				
				; EXTRA is a large buffer area for general patching. Some versions of
				; the WINSTALL installation program use EXTRA.
				
 15FE  0200[			extra	db	512 dup(0)	; Extra .5k of patching space
	   00			
			 ]		
				
				
				
				; Line numbering control
				
 17FE  04EC			lnmch	dw	7*180		; Left margin line at .7"
 1800  BA				db	0bah		; Left margin character, double vertical bar
 1801  3408				dw	74*180		; Right margin line at 7.4"
 1803  B3				db	0b3h		; Right margin character, single vertical bar
 1804  021C				dw	3*180		; Number is .3" before left margin character
								; See end of INIEDT for more
				
				
				; Paragraph numbering format
				
				; Up to 30 characters containing the format to use for paragraph numbering.
				
				; 9 is numbering from 0 up
				; 1 is numbering from 1 up
				; Z is upper case alpha, A-Z, AA-AZ,...
				; z is lower case alpha, a-z, aa-az,...
				; I is upper case roman numerals, I-MMMCMXCIX (1-3999)
				; i is lower case roman numerals, i-mmmcmxcix (1-3999)
				
				; Other characters are used as part of the paragraph number (for instance,
				; leading and trailing characters, and separator characters).
				; Up to 8 levels of numbers are allowed within the paragraph number,
				; i.e. '9.z.9.Z.9.9.9.9'. A zero byte indicates the end of the string.
				
 1806  31 2E 31 2E 31 2E	ipfrmt	db	'1.1.1.1.1.1.1.1'
       31 2E 31 2E 31 2E	
       31 2E 31			
 1815  0010[				db	31-15 dup(0)
	   00			
			 ]		
				
				
				
				; The separator after the last part of the paragraph number will be
				; printed if PPRSEP below is TRUE (i.e. 1.1.1. versus 1.1.1).
				; Setting PPRSEP to TRUE will suppress the use of trailing characters
				; in the paragraph format (except when the characters are used as the
				; separator characters after the last paragraph number level).
				
 1825  00			pprsep	db	FALSE		; Set for normal separators
				
				
				; The preceding numbers in the paragraph number will not print if
				; PROUTL below is TRUE. This is useful when numbering an outline:
				; If your paragraph format was 'I)A)a)', you could use PROUTL in
				; conjunction with PPRSEP to get 'I)' for the first number, then
				; 'A)' for the next level in, and 'a)' for the third level.
				
 1826  00			proutl	db	FALSE		; Set for normal numbering
				
				
				
				; Print control screen characters
				
				; Since control can't be edited, entire print control is displayed
				
 1827  3C			pbrack	db	'<'		; Print control display leading char
 1828  3E				db	'>'		; Print control display trailing char
				
				; Index screen characters
				
 1829  7B			ibrack	db	'{'		; Index entry display leading char
 182A  7D				db	'}'		; Index entry display trailing char
 182B  0F				db	15		; Length of displayed index entry
				
				
				; Footnote/endnote screen characters
				
 182C  5B			nbrack	db	'['		; Note display leading char
 182D  5D				db	']'		; Note display trailing character
 182E  0F				db	15		; Length of displayed note text
				
				
				; Initial paragraph style name
				
 182F  42 6F 64 79 20 54	parsty	db	'Body Text               '	; 24 characters
       65 78 74 20 20 20	
       20 20 20 20 20 20	
       20 20 20 20 20 20	
				
				
				; Line numbering font and style
				
 1847  00B4			lnfont	dw	180		; Normal font for ^PN. Width
 1849  00F0				dw	240		; Height
 184B  0000				dw	0		; Typestyle
 184D  0000				dw	0		; Attribute
				
				; Footnote/endnote font and style
				; (note text attributes are defaulted to 0)
				
 184F  00B4			fnfont	dw	180		; Normal font for footnotes. Width
 1851  00F0				dw	240		; Height
 1853  0000				dw	0		; Typestyle
 1855  00				db	0		; Default ruler to use
 1856  00				db	0		; Default color to use	
				
 1857  00B4			enfont	dw	180		; Normal font for endnotes. Width
 1859  00F0				dw	240		; Height
 185B  0000				dw	0		; Typestyle
 185D  00				db	0		; Default ruler to use
 185E  00				db	0		; Default color to use	
				
				; Footnote tag type
				
 185F  03			fntyp	db	3		; 1 for upper case alphabet
								; 2 for lower case alphabet
								; 3 for numeric
								; 4 for repeating characters
				
 1860  00				db	0		; 0 for reset at each page break
								; 1 for increment across page breaks
				
				
				; Footnote repeating character table. Up to 8 characters may be entered
				; here to be used one at a time for in text footnote reference marks. Once
				; all characters are used, the beginning character in the table will be
				; used twice, then three times, etc. as needed for the number of footnotes
				; in the text.
				
 1861  02			fnrch	db	2		; Count
 1862  2A 7E 00 00			db	'*','~',0,0	; Set for *,~,**,~~,***,~~~
 1866  00 00 00 00			db	0,0,0,0
				
				
				; Endnote tag type
				
 186A  03			entyp	db	3		; 1 for upper case alphabet
								; 2 for lower case alphabet
								; 3 for numeric
								; 4 for repeating characters
				
				
				; Endnote repeating character table. Up to 8 characters may be entered
				; here to be used one at a time for in text endnote reference marks. Once
				; all characters are used, the beginning character in the table will be
				; used twice, then three times, etc. as needed for the number of endnotes
				; in the text.
				
 186B  02			enrch	db	2		; Count
 186C  23 40 00 00			db	'#','@',0,0	; Set for #,@,##,@@,###,@@@
 1870  00 00 00 00			db	0,0,0,0
				
				
				; Footnote in-text reference mark control
				
 1874  0020			fntxt	dw	20h		; Attributes
								;   00H - normal
								;   08H - underlined
								;   10H - subscripted
								;   20H - superscripted
								;   40H - bold
								;   80H - italic
				
 1876  00				db	0		; Lead character
 1877  00				db	0		; Trailing character
				
				; Footnote in-note reference mark control
				
 1878  0000				dw	0h		; Attributes
 187A  00				db	0		; Lead character
 187B  2E				db	'.'		; Trailing character
				
				; Endnote in-text reference mark control
				
 187C  0020				dw	20h		; Attributes
 187E  00				db	0		; Lead character
 187F  00				db	0		; Trailing character
				
				; Endnote in-note reference mark control
				
 1880  0000				dw	0		; Attributes
 1882  28				db	'('		; Lead character
 1883  29				db	')'		; Trailing character
				
				
				; Footnote separator between body text and footnote text.
				
 1884  14			fnsep	db	20			; length of string
 1885  0014[				db	20 dup ('-')		; actual string
	   2D			
			 ]		
				
 = 0015				FNSEPZ	equ	$-fnsep
 1899  00B4[				db	(201 - FNSEPZ) dup (0)
	   00			
			 ]		
				
				
				
				; Footnote continuation text.
				
 194D  0F			fncntu	db	15			; length of string
 194E  2E 2E 2E 43 6F 6E		db	'...Continued...'	; actual string
       74 69 6E 75 65 64	
       2E 2E 2E			
 = 0010				FNCNTUZ	equ	$-fncntu
 195D  00B4[				db	(196 - FNCNTUZ) dup (0)
	   00			
			 ]		
				
				
				
				; Footnote position.  If zero, place footnote against bottom of page, right
				; above footer.  If 1, place footnote right below body text. 
				
 1A11  00			fnposn	db	0		; Place at bottom
				
				
				; FNRUN determines when to create a running footnote.  If the accumulated
				; footnote text  is bigger than the space available at the bottom of the
				; page, and FNRUN is greater than or equal to the note size, then put the
				; note on the following page.
				
 1A12  08			fnrun	db	8		; Page break if 8 lines of footnote
								; text won't fit
				
				
				; Footnote VMI settings
				
 1A13  00F0			fnvmi	dw	1440/6		; VMI between notes
 1A15  00F0				dw	1440/6		; VMI for each footnote line
 1A17  00F0				dw	1440/6		; VMI between text and FNSEP
 1A19  00F0				dw	1440/6		; VMI between FNSEP and first note
				
				
				; Endnote VMI settings
				
 1A1B  00F0			envmi	dw	1440/6		; VMI between notes
 1A1D  00F0				dw	1440/6		; VMI for each endnote line
				
				
				; Lines in top and bottom windows
				
				; This value will be used as a ratio, so that when the help level changes
				; the lines in each window will be proportionally the same
				
				; Set to 0FFh if full screen window flipping is required. Set to 0 to
				; disable the second window.
				
 1A1F  80			wratio	db	128		; LTOP*256/(LTOP+LBOT)
				
				
				; Ask for document type when opening another window.
				
 1A20  00			wprmpt	db	0		; Dont ask for document type
				
				; The keyboard repeat rate may be changed upon entering and exiting WordStar.
				; This only works on IBM machines manufactured after 15 Nov 85.
				; Usage:
				;	1st byte is speed: 0=30 cps, ..., 1FH=2 cps
				;	2nd byte is hold-off before repetitions: 0=250 msec, 1=500, 2=750,
				;						 3=1000
				;
 1A21				kspeed	label	word
				
 1A21  FF				db	-1		; For insertions
 1A22  FF				db	-1
				
 1A23  FF				db	-1		; For deletions
 1A24  FF				db	-1
				
 1A25  FF				db	-1		; No change upon exiting
 1A26  FF				db	-1
				
				
				; The shape of the cursor may be changed upon entering and exiting WordStar.
				; See the IBM BIOS video INT 10, AH=1 for information on how to pick a
				; cursor size. (Each word below is loaded into CX before the video call is
				; performed.) On a 25 by 80 display, a value of 0007H would produce a block
				; cursor, and 0607H would produce the normal underline cursor.
				
 1A27  FFFF			cursiz	dw	0ffffh		; No cursor size upon entering
				
 1A29  FFFF				dw	0ffffh		; No cursor for overtype mode
				
 1A2B  FFFF				dw	0ffffh		; No cursor size upon exiting
				
				
				; HMI units (1800ths of an inch) used for ruler line
				
				; If you have many old WordStar documents set up for 12-pitch, you may want
				; to set RLUNIT to 150 so that the ruler line is in 12ths of an inch.
				
 1A2D  00B4			rlunit	dw	1800/10		; Ruler line is in 10ths of an inch
				
				; Line height units used for computing standard line height values
				
				; This is the value used when typing in a dialog box or a dot command
				; and the measuring unit is set for 'L' (see DBUNITL, above).
				; Assumes a standard line height of 6 lines per inch (66 lines
				; per page for an 11 inch page).
				
 1A2F  00F0			lhunit	dw	1440/6		; Line height units in 6ths of an inch
				
				
				; The memory allocated to handling of fonts and proportional tables from the
				; PDF is determined from the following variables. 
				
 1A31  64			mfdsiz	db	100		; Number of Menu font definitions 
 1A32  00				db	?
 1A33  14			famsiz	db	20		; Number of font family member definitions
 1A34  00				db	?
 1A35  00				db	?		; Reserved
 1A36  00				db	?
 1A37  00				db	?		; Reserved
				
 1A38  00				db	?		; Reserved
				
				; FNSIZE and ENSIZE indicates the number of 128-byte records is to be used
				; footnote and endnote accumulation before writing them to disk
				
 1A39  08			fnsize	db	8		; Size of footnote accumulation buffer
 1A3A  02			ensize	db	2		; Size of endnote accumulation buffer
				
				
				; The autosave timer will perform an automatic ^KS if you are editing and
				; the keyboard is idle for the number of seconds specified (1 hour max).
				; This function only works on IBM machines manufactured after November 1985.
				
 1A3B  0000			autsav	dw	0		; Turned off if zero
				
				
				; DOS command tails used to run Additional Menu items. Each command must
				; be null terminated. 32 bytes are available for each command tail.  Comments
				; indicate which program file name the command is associated with.  A "~"
				; means that WordStar should pass its colors to the application program.
				
 1A3D  20 7E 00			addrun	db	' ~',0			; For TelMerge
 1A40  001D[				db	(32-($-addrun)) dup (0)
	   00			
			 ]		
				
				
 1A5D  20 7E 00				db	' ~',0			; For MailList
 1A60  001D[				db	(32-($-addrun-32)) dup (0)
	   00			
			 ]		
				
				
 1A7D  20 00				db	' ',0			; For Star Exchange
 1A7F  001E[				db	(32-($-addrun-64)) dup (0)
	   00			
			 ]		
				
				
				
				; Default character set (code page) code.
				
 1A9D  01B5			codepg	dw	437		; Default to U.S.. Other option is 850
				
 1A9F  70 74			dbunitp	db	'pt'		; Default units, scalable font point size
 1AA1  22 20			dbunitc	db	'" '		; Default units, scalable font pitch
				
				
				; WordStar normally only considers alphabetic characters as being within
				; a "word". If other characters are legally part of a word too, then the
				; bit for the corresponding character code in the following table must be
				; set to a 1.
				
				; There are 256 bits in the table to allow for 8-bit character sets.
				; The default table has the bits set for the upper case letters
				; "A" through "Z" (41H through 5AH), and the lower case letters "a"
				; through "z" (61H through 7AH). Bits from 80H through FFH are set
				; according to the IBM PC character set.
				
 1AA3				lglchr	label	byte
				
				if CDPG eq 437
					; For Code Page 437
				
					;	01234567  89ABCDEF
 1AA3  00 00				db	00000000b,00000000b	; Codes 00H to 0FH
 1AA5  00 00				db	00000000b,00000000b	; Codes 10H to 1FH
 1AA7  00 00				db	00000000b,00000000b	; Codes 20H to 2FH
 1AA9  00 00				db	00000000b,00000000b	; Codes 30H to 3FH
 1AAB  7F FF				db	01111111b,11111111b	; Codes 40H to 4FH
 1AAD  FF E0				db	11111111b,11100000b	; Codes 50H to 5FH
 1AAF  7F FF				db	01111111b,11111111b	; Codes 60H to 6FH
 1AB1  FF E0				db	11111111b,11100000b	; Codes 70H to 7FH
 1AB3  FF FF				db	11111111b,11111111b	; Codes 80H to 8FH
 1AB5  FF E0				db	11111111b,11100000b	; Codes 90H to 9FH
 1AB7  FF 00				db	11111111b,00000000b	; Codes A0H to AFH
 1AB9  00 00				db	00000000b,00000000b	; Codes B0H to BFH
 1ABB  00 00				db	00000000b,00000000b	; Codes C0H to CFH
 1ABD  00 00				db	00000000b,00000000b	; Codes D0H to DFH
 1ABF  FF F0				db	11111111b,11110000b	; Codes E0H to EFH
 1AC1  00 0C				db	00000000b,00001100b	; Codes F0H to FFH
 1AC3  00 00				db	00000000b,00000000b	; Extended codes 00H to 0FH
 1AC5  00 00				db	00000000b,00000000b	; Extended codes 10H to 1FH
				endif
				
				
				
				; When you use ^A or ^F to move a word at a time, WordStar uses the
				; following table to determine which characters to skip. It is organized
				; in the same manner as LGLCHR above.
				
 1AC7				movchr	label	byte
				
				if CDPG eq 437
					; For Code Page 437
				
					;	01234567  89ABCDEF
 1AC7  FF 92				db	11111111b,10010010b	; Codes 00H to 0FH
 1AC9  FB C3				db	11111011b,11000011b	; Codes 10H to 1FH
 1ACB  3F F5				db	00111111b,11110101b	; Codes 20H to 2FH
 1ACD  FF CE				db	11111111b,11001110b	; Codes 30H to 3FH
 1ACF  FF FF				db	11111111b,11111111b	; Codes 40H to 4FH
 1AD1  FF FF				db	11111111b,11111111b	; Codes 50H to 5FH
 1AD3  FF FF				db	11111111b,11111111b	; Codes 60H to 6FH
 1AD5  FF FE				db	11111111b,11111110b	; Codes 70H to 7FH
 1AD7  FF FF				db	11111111b,11111111b	; Codes 80H to 8FH
 1AD9  FF FF				db	11111111b,11111111b	; Codes 90H to 9FH
 1ADB  FF 7B				db	11111111b,01111011b	; Codes A0H to AFH
 1ADD  FF FF				db	11111111b,11111111b	; Codes B0H to BFH
 1ADF  FF FF				db	11111111b,11111111b	; Codes C0H to CFH
 1AE1  FF FF				db	11111111b,11111111b	; Codes D0H to DFH
 1AE3  FF FF				db	11111111b,11111111b	; Codes E0H to EFH
 1AE5  FF FE				db	11111111b,11111110b	; Codes F0H to FFH
 1AE7  00 00				db	00000000b,00000000b	; Extended codes 00H to 0FH
 1AE9  00 00				db	00000000b,00000000b	; Extended codes 10H to 1FH
				endif
				
				
				
				; UPPERCASE and LOWERCASE are a upper/lower case conversion tables. Each
				; character is either mapped to itself or the upper/lowercase equivalent.
				
 1AEB				upcase	label	byte
				
				if CDPG eq 437
					; Uppercasing table for Code Page 437
				
					;	  0    1    2    3    4    5    6    7
 1AEB  00 01 02 03 04 05		db	000h,001h,002h,003h,004h,005h,006h,007h	;  0 ..  7
       06 07			
 1AF3  08 09 0A 0B 0C 0D		db	008h,009h,00Ah,00Bh,00Ch,00Dh,00Eh,00Fh	;  8 ..  F
       0E 0F			
 1AFB  10 11 12 13 14 15		db	010h,011h,012h,013h,014h,015h,016h,017h	; 10 .. 17
       16 17			
 1B03  18 19 1A 1B 1C 1D		db	018h,019h,01Ah,01Bh,01Ch,01Dh,01Eh,01Fh	; 18 .. 1F
       1E 1F			
 1B0B  20 21 22 23 24 25		db	020h,021h,022h,023h,024h,025h,026h,027h	; 20 .. 27
       26 27			
 1B13  28 29 2A 2B 2C 2D		db	028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh	; 28 .. 2F
       2E 2F			
 1B1B  30 31 32 33 34 35		db	030h,031h,032h,033h,034h,035h,036h,037h	; 30 .. 37
       36 37			
 1B23  38 39 3A 3B 3C 3D		db	038h,039h,03Ah,03Bh,03Ch,03Dh,03Eh,03Fh	; 38 .. 3F
       3E 3F			
 1B2B  40 41 42 43 44 45		db	040h,041h,042h,043h,044h,045h,046h,047h	; 40 .. 47
       46 47			
 1B33  48 49 4A 4B 4C 4D		db	048h,049h,04Ah,04Bh,04Ch,04Dh,04Eh,04Fh	; 48 .. 4F
       4E 4F			
 1B3B  50 51 52 53 54 55		db	050h,051h,052h,053h,054h,055h,056h,057h	; 50 .. 57
       56 57			
 1B43  58 59 5A 5B 5C 5D		db	058h,059h,05Ah,05Bh,05Ch,05Dh,05Eh,05Fh	; 58 .. 5F
       5E 5F			
 1B4B  60 41 42 43 44 45		db	060h,041h,042h,043h,044h,045h,046h,047h	; 60 .. 67
       46 47			
 1B53  48 49 4A 4B 4C 4D		db	048h,049h,04Ah,04Bh,04Ch,04Dh,04Eh,04Fh	; 68 .. 6F
       4E 4F			
 1B5B  50 51 52 53 54 55		db	050h,051h,052h,053h,054h,055h,056h,057h	; 70 .. 77
       56 57			
 1B63  58 59 5A 7B 7C 7D		db	058h,059h,05Ah,07Bh,07Ch,07Dh,07Eh,07Fh	; 78 .. 7F
       7E 7F			
 1B6B  80 9A 90 41 8E 41		db	080h,09Ah,090h,041h,08Eh,041h,08Fh,080h	; 80 .. 87
       8F 80			
 1B73  45 45 45 49 49 49		db	045h,045h,045h,049h,049h,049h,08Eh,08Fh	; 88 .. 8F
       8E 8F			
 1B7B  90 92 92 4F 99 4F		db	090h,092h,092h,04Fh,099h,04Fh,055h,055h	; 90 .. 97
       55 55			
 1B83  59 99 9A 9B 9C 9D		db	059h,099h,09Ah,09Bh,09Ch,09Dh,09Eh,09Fh	; 98 .. 9F
       9E 9F			
 1B8B  41 49 4F 55 A5 A5		db	041h,049h,04Fh,055h,0A5h,0A5h,0A6h,0A7h	; A0 .. A7
       A6 A7			
 1B93  A8 A9 AA AB AC AD		db	0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh	; A8 .. AF
       AE AF			
 1B9B  B0 B1 B2 B3 B4 B5		db	0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h	; B0 .. B7
       B6 B7			
 1BA3  B8 B9 BA BB BC BD		db	0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh	; B8 .. BF
       BE BF			
 1BAB  C0 C1 C2 C3 C4 C5		db	0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h	; C0 .. C7
       C6 C7			
 1BB3  C8 C9 CA CB CC CD		db	0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh	; C8 .. CF
       CE CF			
 1BBB  D0 D1 D2 D3 D4 D5		db	0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h	; D0 .. D7
       D6 D7			
 1BC3  D8 D9 DA DB DC DD		db	0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh	; D8 .. DF
       DE DF			
 1BCB  E0 E1 E2 E3 E4 E5		db	0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h	; E0 .. E7
       E6 E7			
 1BD3  E8 E9 EA EB EC ED		db	0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh	; E8 .. EF
       EE EF			
 1BDB  F0 F1 F2 F3 F4 F5		db	0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h	; F0 .. F7
       F6 F7			
 1BE3  F8 F9 FA FB FC FD		db	0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh	; F8 .. FF
       FE FF			
				endif
				
				
				
 1BEB				locase	label	byte
				
				if CDPG eq 437
					; Lowercasing table for Code Page 437
				
					;	  0    1    2    3    4    5    6    7
 1BEB  00 01 02 03 04 05		db	000h,001h,002h,003h,004h,005h,006h,007h	;  0 ..  7
       06 07			
 1BF3  08 09 0A 0B 0C 0D		db	008h,009h,00Ah,00Bh,00Ch,00Dh,00Eh,00Fh	;  8 ..  F
       0E 0F			
 1BFB  10 11 12 13 14 15		db	010h,011h,012h,013h,014h,015h,016h,017h	; 10 .. 17
       16 17			
 1C03  18 19 1A 1B 1C 1D		db	018h,019h,01Ah,01Bh,01Ch,01Dh,01Eh,01Fh	; 18 .. 1F
       1E 1F			
 1C0B  20 21 22 23 24 25		db	020h,021h,022h,023h,024h,025h,026h,027h	; 20 .. 27
       26 27			
 1C13  28 29 2A 2B 2C 2D		db	028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh	; 28 .. 2F
       2E 2F			
 1C1B  30 31 32 33 34 35		db	030h,031h,032h,033h,034h,035h,036h,037h	; 30 .. 37
       36 37			
 1C23  38 39 3A 3B 3C 3D		db	038h,039h,03Ah,03Bh,03Ch,03Dh,03Eh,03Fh	; 38 .. 3F
       3E 3F			
 1C2B  40 61 62 63 64 65		db	040h,061h,062h,063h,064h,065h,066h,067h	; 40 .. 47
       66 67			
 1C33  68 69 6A 6B 6C 6D		db	068h,069h,06Ah,06Bh,06Ch,06Dh,06Eh,06Fh	; 48 .. 4F
       6E 6F			
 1C3B  70 71 72 73 74 75		db	070h,071h,072h,073h,074h,075h,076h,077h	; 50 .. 57
       76 77			
 1C43  78 79 7A 5B 5C 5D		db	078h,079h,07Ah,05Bh,05Ch,05Dh,05Eh,05Fh	; 58 .. 5F
       5E 5F			
 1C4B  60 61 62 63 64 65		db	060h,061h,062h,063h,064h,065h,066h,067h	; 60 .. 67
       66 67			
 1C53  68 69 6A 6B 6C 6D		db	068h,069h,06Ah,06Bh,06Ch,06Dh,06Eh,06Fh	; 68 .. 6F
       6E 6F			
 1C5B  70 71 72 73 74 75		db	070h,071h,072h,073h,074h,075h,076h,077h	; 70 .. 77
       76 77			
 1C63  78 79 7A 7B 7C 7D		db	078h,079h,07Ah,07Bh,07Ch,07Dh,07Eh,07Fh	; 78 .. 7F
       7E 7F			
 1C6B  87 81 82 83 84 85		db	087h,081h,082h,083h,084h,085h,086h,087h	; 80 .. 87
       86 87			
 1C73  88 89 8A 8B 8C 8D		db	088h,089h,08Ah,08Bh,08Ch,08Dh,084h,086h	; 88 .. 8F
       84 86			
 1C7B  82 91 91 93 94 95		db	082h,091h,091h,093h,094h,095h,096h,097h	; 90 .. 97
       96 97			
 1C83  98 94 81 9B 9C 9D		db	098h,094h,081h,09Bh,09Ch,09Dh,09Eh,09Fh	; 98 .. 9F
       9E 9F			
 1C8B  A0 A1 A2 A3 A4 A4		db	0A0h,0A1h,0A2h,0A3h,0A4h,0A4h,0A6h,0A7h	; A0 .. A7
       A6 A7			
 1C93  A8 A9 AA AB AC AD		db	0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh	; A8 .. AF
       AE AF			
 1C9B  B0 B1 B2 B3 B4 B5		db	0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h	; B0 .. B7
       B6 B7			
 1CA3  B8 B9 BA BB BC BD		db	0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh	; B8 .. BF
       BE BF			
 1CAB  C0 C1 C2 C3 C4 C5		db	0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h	; C0 .. C7
       C6 C7			
 1CB3  C8 C9 CA CB CC CD		db	0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh	; C8 .. CF
       CE CF			
 1CBB  D0 D1 D2 D3 D4 D5		db	0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h	; D0 .. D7
       D6 D7			
 1CC3  D8 D9 DA DB DC DD		db	0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh	; D8 .. DF
       DE DF			
 1CCB  E0 E1 E2 E3 E4 E5		db	0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h	; E0 .. E7
       E6 E7			
 1CD3  E8 E9 EA EB EC ED		db	0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh	; E8 .. EF
       EE EF			
 1CDB  F0 F1 F2 F3 F4 F5		db	0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h	; F0 .. F7
       F6 F7			
 1CE3  F8 F9 FA FB FC FD		db	0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh	; F8 .. FF
       FE FF			
				endif
				
				
				
				; colate is used for some string compares in block sorting, directory
				; sorting, and merge variables.
				
 1CEB				colate	label	byte
				
				if CDPG eq 437
				; Collating table for Code Page 437
				
				;	  0    1    2    3    4    5    6    7
				;	  8    9    A    B    C    D    E    F
 1CEB  00 8C 8D 8E 8F 90	db	000h,08Ch,08Dh,08Eh,08Fh,090h,091h,092h	;  0 ..  7 ASCII control codes
       91 92			
 1CF3  93 94 95 96 97 98	db	093h,094h,095h,096h,097h,098h,099h,09Ah	;  8 ..  F
       99 9A			
 1CFB  9B 9C 9D 9E 1B 1A	db	09Bh,09Ch,09Dh,09Eh,01Bh,01Ah,09Fh,0A0h	; 10 .. 17
       9F A0			
 1D03  A1 A2 A3 A4 A5 A6	db	0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h	; 18 .. 1F
       A7 A8			
				
 1D0B  00 06 11 26 1E 27	db	000h,006h,011h,026h,01Eh,027h,025h,00Bh	; 20 .. 27   !"#$%&'
       25 0B			
 1D13  14 15 23 28 00 02	db	014h,015h,023h,028h,000h,002h,00Ah,009h	; 28 .. 2F  ()*+,-./
       0A 09			
 1D1B  3D 40 41 43 44 45	db	03Dh,040h,041h,043h,044h,045h,046h,047h	; 30 .. 37  01234567
       46 47			
 1D23  48 49 04 03 2B 2D	db	048h,049h,004h,003h,02Bh,02Dh,031h,008h	; 38 .. 3F  89:;<=>?
       31 08			
 1D2B  1C 4A 52 53 56 57	db	01Ch,04Ah,052h,053h,056h,057h,05Ch,05Dh	; 40 .. 47  @ABCDEFG
       5C 5D			
 1D33  5E 5F 64 65 66 67	db	05Eh,05Fh,064h,065h,066h,067h,068h,06Ah	; 48 .. 4F  HIJKLMNO
       68 6A			
 1D3B  70 71 72 73 75 76	db	070h,071h,072h,073h,075h,076h,07Bh,07Ch	; 50 .. 57  PQRSTUVW
       7B 7C			
 1D43  7D 7E 80 16 24 17	db	07Dh,07Eh,080h,016h,024h,017h,00Dh,001h	; 58 .. 5F  XYZ[\]^_
       0D 01			
 1D4B  0C 4A 52 53 56 57	db	00Ch,04Ah,052h,053h,056h,057h,05Ch,05Dh	; 60 .. 67  `abcdefg
       5C 5D			
 1D53  5E 5F 64 65 66 67	db	05Eh,05Fh,064h,065h,066h,067h,068h,06Ah	; 68 .. 6F  hijklmno
       68 6A			
 1D5B  70 71 72 73 75 76	db	070h,071h,072h,073h,075h,076h,07Bh,07Ch	; 70 .. 77  pqrstuvw
       7B 7C			
 1D63  7D 7E 80 18 34 19	db	07Dh,07Eh,080h,018h,034h,019h,00Eh,0DAh	; 78 .. 7F  xyz{|}~
       0E DA			
				
 1D6B  54 7A 58 4E 4F 4D	db	054h,07Ah,058h,04Eh,04Fh,04Dh,050h,055h	; 80 .. 87  
       50 55			
 1D73  5A 5B 59 63 62 61	db	05Ah,05Bh,059h,063h,062h,061h,04Fh,050h	; 88 .. 8F  
       4F 50			
 1D7B  58 51 51 6E 6F 6D	db	058h,051h,051h,06Eh,06Fh,06Dh,079h,078h	; 90 .. 97  
       79 78			
 1D83  7F 6F 7A 1D 1F 20	db	07Fh,06Fh,07Ah,01Dh,01Fh,020h,021h,022h	; 98 .. 9F  
       21 22			
 1D8B  4C 60 6C 77 69 69	db	04Ch,060h,06Ch,077h,069h,069h,04Bh,06Bh	; A0 .. A7  
       4B 6B			
 1D93  07 32 33 3F 3E 05	db	007h,032h,033h,03Fh,03Eh,005h,012h,013h	; A8 .. AF  
       12 13			
 1D9B  A9 AA AB AC AD AE	db	0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh,0B0h	; B0 .. B7  
       AF B0			
 1DA3  B1 B2 B3 B4 B5 B6	db	0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h	; B8 .. BF  
       B7 B8			
 1DAB  B9 BA BB BC BD BE	db	0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh,0C0h	; C0 .. C7  
       BF C0			
 1DB3  C1 C2 C3 C4 C5 C6	db	0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h,0C8h	; C8 .. CF  
       C7 C8			
 1DBB  C9 CA CB CC CD CE	db	0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh,0D0h	; D0 .. D7  
       CF D0			
 1DC3  D1 D2 D3 D4 D5 D6	db	0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h,0D8h	; D8 .. DF  
       D7 D8			
 1DCB  81 74 85 86 88 89	db	081h,074h,085h,086h,088h,089h,036h,08Ah	; E0 .. E7  
       36 8A			
 1DD3  84 87 8B 82 3B 84	db	084h,087h,08Bh,082h,03Bh,084h,083h,037h	; E8 .. EF  
       83 37			
 1DDB  2E 29 30 2C 38 39	db	02Eh,029h,030h,02Ch,038h,039h,02Ah,02Fh	; F0 .. F7  
       2A 2F			
 1DE3  35 0F 10 3A 3C 42	db	035h,00Fh,010h,03Ah,03Ch,042h,0D9h,0DBh	; F8 .. FF  
       D9 DB			
				;	  0    1    2    3    4    5    6    7
				;	  8    9    A    B    C    D    E    F
				endif
				
				
				
				; Lotus International Character Set convert table.  Each character
				; is  mapped to its IBM Character set equivalent.
				
				; ltsics defines whether the table is enabled or not
				
 1DEB  00			ltsics	db	0	; Default is off, set to non-zero to enable table below
				
					;	  0    1    2	 3    4	   5	6    7
 1DEC  00 01 02 03 04 05	lotusch db	000h,001h,002h,003h,004h,005h,006h,007h ;  0 ..	7
       06 07			
 1DF4  08 09 0A 0B 0C 0D		db	008h,009h,00Ah,00Bh,00Ch,00Dh,00Eh,00Fh ;  8 ..	F
       0E 0F			
 1DFC  10 11 12 13 14 15		db	010h,011h,012h,013h,014h,015h,016h,017h ; 10 .. 17
       16 17			
 1E04  18 19 1A 1B 1C 1D		db	018h,019h,01Ah,01Bh,01Ch,01Dh,01Eh,01Fh ; 18 .. 1F
       1E 1F			
 1E0C  20 21 22 23 24 25		db	020h,021h,022h,023h,024h,025h,026h,027h ; 20 .. 27
       26 27			
 1E14  28 29 2A 20 20 2D		db	028h,029h,02Ah,020h,020h,02Dh,02Eh,02Fh ; 28 .. 2F
       2E 2F			
 1E1C  30 31 32 33 34 35		db	030h,031h,032h,033h,034h,035h,036h,037h ; 30 .. 37
       36 37			
 1E24  38 39 3A 3B 3C 3D		db	038h,039h,03Ah,03Bh,03Ch,03Dh,03Eh,03Fh ; 38 .. 3F
       3E 3F			
 1E2C  40 41 42 43 44 45		db	040h,041h,042h,043h,044h,045h,046h,047h ; 40 .. 47
       46 47			
 1E34  48 49 4A 4B 4C 4D		db	048h,049h,04Ah,04Bh,04Ch,04Dh,04Eh,04Fh ; 48 .. 4F
       4E 4F			
 1E3C  50 51 52 53 54 55		db	050h,051h,052h,053h,054h,055h,056h,057h ; 50 .. 57
       56 57			
 1E44  58 59 5A 5B 5C 5D		db	058h,059h,05Ah,05Bh,05Ch,05Dh,05Eh,05Fh ; 58 .. 5F
       5E 5F			
 1E4C  60 61 62 63 64 65		db	060h,061h,062h,063h,064h,065h,066h,067h ; 60 .. 67
       66 67			
 1E54  68 69 6A 6B 6C 6D		db	068h,069h,06Ah,06Bh,06Ch,06Dh,06Eh,06Fh ; 68 .. 6F
       6E 6F			
 1E5C  70 71 72 73 74 75		db	070h,071h,072h,073h,074h,075h,076h,077h ; 70 .. 77
       76 77			
 1E64  78 79 7A 7B 7C 7D		db	078h,079h,07Ah,07Bh,07Ch,07Dh,07Eh,07Fh ; 78 .. 7F
       7E 7F			
 1E6C  80 81 82 83 84 85		db	080h,081h,082h,083h,084h,085h,086h,087h ; 80 .. 87
       86 87			
 1E74  88 89 8A 8B 8C 8D		db	088h,089h,08Ah,08Bh,08Ch,08Dh,08Eh,08Fh ; 88 .. 8F
       8E 8F			
 1E7C  90 91 92 93 94 95		db	090h,091h,092h,093h,094h,095h,096h,097h ; 90 .. 97
       96 97			
 1E84  98 99 9A 9B 9C 9D		db	098h,099h,09Ah,09Bh,09Ch,09Dh,09Eh,09Fh ; 98 .. 9F
       9E 9F			
 1E8C  9F AD 9B 9C A4 9D		db	09Fh,0ADh,09Bh,09Ch,0A4h,09Dh,09Eh,015h ; A0 .. A7
       9E 15			
 1E94  A8 A9 A6 AE AC E3		db	0A8h,0A9h,0A6h,0AEh,0ACh,0E3h,0F2h,0F6h ; A8 .. AF
       F2 F6			
 1E9C  F8 F1 FD B3 B4 E6		db	0F8h,0F1h,0FDh,0B3h,0B4h,0E6h,014h,0FAh ; B0 .. B7
       14 FA			
 1EA4  B8 B9 A7 AF AC AB		db	0B8h,0B9h,0A7h,0AFh,0ACh,0ABh,0F3h,0A8h ; B8 .. BF
       F3 A8			
 1EAC  C0 C1 C2 C3 8E 8F		db	0C0h,0C1h,0C2h,0C3h,08Eh,08Fh,092h,080h ; C0 .. C7
       92 80			
 1EB4  C8 90 CA CB CC CD		db	0C8h,090h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh ; C8 .. CF
       CE CF			
 1EBC  D0 A5 D2 D3 D4 D5		db	0D0h,0A5h,0D2h,0D3h,0D4h,0D5h,099h,0D7h ; D0 .. D7
       99 D7			
 1EC4  D8 D9 DA DB 9A DD		db	0D8h,0D9h,0DAh,0DBh,09Ah,0DDh,0DEh,0E1h ; D8 .. DF
       DE E1			
 1ECC  85 A0 83 E3 84 86		db	085h,0A0h,083h,0E3h,084h,086h,091h,087h ; E0 .. E7
       91 87			
 1ED4  8A 82 88 89 8D A1		db	08Ah,082h,088h,089h,08Dh,0A1h,08Ch,08Bh ; E8 .. EF
       8C 8B			
 1EDC  F0 A4 95 A2 93 F5		db	0F0h,0A4h,095h,0A2h,093h,0F5h,094h,0F7h ; F0 .. F7
       94 F7			
 1EE4  F8 97 A3 96 81 89		db	0F8h,097h,0A3h,096h,081h,089h,0FEh,0FFh ; F8 .. FF
       FE FF			
				
				;
				; To allow easy access to some International extended characters on keyboards
				; not supporting them. The table is divided into three parts: the first
				; part contains a list of accents, the second a list of characters it is
				; possible to accent, and the third is a list of characters with their
				; accents. A zero value implies no equivalent accented character exists.
				;
				
 1EEC  00			acctab	db	0			; Non-zero to enable table
 1EED  06				db	6			; 6 accent types
 1EEE  10				db	16			; 16 characters possible to accent
				
 1EEF  27				db	"'"			; List of dead-key characters
 1EF0  60				db	'`'			; .. for US or UK keyboard
 1EF1  5E				db	'^'
 1EF2  22				db	'"'
 1EF3  7E				db	'~'
 1EF4  2C				db	','
				
				; Dead-key-to-character matching table.
				; Top row lists the characters that are associated with dead keys.
				; Rest of rows contain the actual characters that get displayed
				; by the dead key (row) and character (column) combination.
				; The order of the rows must correspond to the order of dead keys above.
				; A zero value in a character cell indicates no special character is
				; is displayed when the corresponding dead key/character combination
				; is pressed.
				
				if CDPG eq 437
				; For Code Page 437
				
				;   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16
				
 1EF5  61 41 65 45 69 49	db 'a','A','e','E','i','I','o','O','u','U','y','Y','n','N','c','C' 
       6F 4F 75 55 79 59	
       6E 4E 63 43		
 1F05  A0 00 82 90 A1 00	db 160,000,130,144,161,000,162,000,163,000,000,000,000,000,000,000 ; ' ()
       A2 00 A3 00 00 00	
       00 00 00 00		
 1F15  85 00 8A 00 8D 00	db 133,000,138,000,141,000,149,000,151,000,000,000,000,000,000,000 ; ` ()
       95 00 97 00 00 00	
       00 00 00 00		
 1F25  83 00 88 00 8C 00	db 131,000,136,000,140,000,147,000,150,000,000,000,000,000,000,000 ; ^ ()
       93 00 96 00 00 00	
       00 00 00 00		
 1F35  84 8E 89 00 8B 00	db 132,142,137,000,139,000,148,153,129,154,152,000,000,000,000,000 ; " ()
       94 99 81 9A 98 00	
       00 00 00 00		
 1F45  00 00 00 00 00 00	db 000,000,000,000,000,000,000,000,000,000,000,000,164,165,000,000 ; ~ ()
       00 00 00 00 00 00	
       A4 A5 00 00		
 1F55  00 00 00 00 00 00	db 000,000,000,000,000,000,000,000,000,000,000,000,000,000,135,128 ; , ()
       00 00 00 00 00 00	
       00 00 87 80		
				endif
				
				
 = 0079				ACCTBZ	equ	$-acctab	; Size of acctab
				
 1F65  0007[				db	(128-ACCTBZ) dup (0) ; Extra bytes to fill out to 128th byte
	   00			
			 ]		
				
				
				
				; Set samcol to 1 or 2 to make WordStar keep track of the column the cursor
				; is on when moving across shorter lines.  Normally, WordStar will only move
				; to the end of shorter lines when moving from longer lines.  With this byte
				; set to 1 or 2, WordStar can move across shorter lines and keep the same
				; column position.  Setting the byte to 2 will make the cursor momentarily
				; move into areas on the screen where there is no text.
				
 1F6C  00			samcol	db	0
				
				; For dot matrix printers, page preview may show pages of a document one
				; line down from where they will actually appear when printed.  If you don't
				; want this extra line added when previewing, set prvled non-zero.
				
 1F6D  00			prvled	db	0	; Add line when previewing
				
				; If using a mouse which uses cursor control characters (^E, ^X) to move
				; the highlighting in pulldowns, reset this flag so that the highlight bar
				; doesn't wrap back around after receiving further cursor movements when
				; it reaches the end of the menu.
				
 1F6E  FF			wrppul	db	0FFh	; Wrap bar around when at top or bottom
				
				; At help levels above 1 WordStar asks for confirmation when creating
				; new files.  Set askyes to zero to avoid being asked this at any help
				; level
				
 1F6F  FF			askyes	db	0FFh
				
				; Setting wrdchk to 0 stops WordStar from displaying the number of words
				; that have been checked after a spelling check
				
 1F70  FF			wrdchk	db	0FFh	; Default is to print number of words
				
				; Setting ctlflg to a non-zero value makes WordStar perform ^L operations like
				; versions prior to 4.0.  This means that when a numeric argument is used in
				; the options for find or find and replace, and a ^L is pressed, asking for
				; another find or find and replace, the number will be used for the find/find
				; and replace
				
 1F71  00			ctlflg	db	0	; Default is to work like newer versions
				
				; Setting prmlog to a non-zero value makes WordStar log permanently whenever
				; changing drive/directory in dialog boxes (other than the log dialog box
				; itself, which is always permanent).
				
 1F72  00			prmlog	db	0	; Temporary log unless specific log selected
				
				; Setting runmsg to 0 stops WordStar from asking to press any key after
				; running a program.
				
 1F73  FF			runmsg	db	0FFh	; Default is to ask to press a key
				
 1F74  00 00 00				db	0,0,0	; Reserved
				
				; Normally, WordStar will calculate 1/8th of the screen to overlap when
				; moving to the next screen with ^R or ^C.  If scnovr is 0 to 254, WordStar
				; will use that number of lines of overlap, up to the usable text portion
				; of the screen.  -1 (0ffh)  means calculate the overlap the old way.
				; If scnovr is greater than the number of editable lines on the screen,
				; then the number of editable lines-1 will be used.  In other words, ^R and
				; ^C will always generate at least one line of movement.
				
 1F77  FF			scnovr	db	0FFh	; Overlap the old way
				
 1F78  00 00				db	0,0	; Reserved
				
				; Keyboard scan code translation table
				
				; On IBM PC's this table is used to translate one scan code into any other
				; scan code as it is typed. It is used primarily for European keyboards.
				
				; On other machines, this table can be used to translate any single ASCII
				; keystroke into any other ASCII code as it is typed.
				
 1F7A  07			kbxlat	db	7
				
 1F7B  B500 002F			dw	0b500h,'/'	; ^/ --> ?
 1F7F  B900 0031			dw	0b900h,'1'	; ^1 --> !
 1F83  C000 0038			dw	0c000h,'8'	; ^8 --> *
 1F87  BF00 0037			dw	0bf00h,'7'	; ^7 --> &
 1F8B  B100 003D			dw	0b100h,'='	; ^= --> =
 1F8F  B200 0027			dw	0b200h,"'"	; ^' --> '
 1F93  BE00 002E			dw	0be00h,'.'	; ^. --> .
 1F97  0000 0000			dw	0,0
 1F9B  0000 0000			dw	0,0
 1F9F  0000 0000			dw	0,0
 1FA3  0000 0000			dw	0,0
				
				
				; WordStar uses a pool of buffers for pdf data, proportional spacing tables, 
				; paragraph style data, and font descriptions.  
				; Set bfrsiz to at least 20 buffers; more will improve performance with
				; large PDFs, many fonts, or many paragraph styles.
				
 1FA7  28			bfrsiz	db	40 ;20		; Number of 512 byte shared buffers
								; Used for PDF data, proportional tables,
								;  and paragraph style data.
				
				; You can insert the current date or time into a document with either
				; shorthand or during merge printing. FDATE indicates how the date should
				; be displayed, and FTIME the time, as follows...
				
				;	Code	Example
				;	 1	Day of the month
				;	 2	Month as a number
				;	 3	Month as a word
				;	 4	Year as 4 digits
				;	 5	Year as 2 digits
				;	 6	First 3 letters of month
				;	 7	Day of the month as 2 digits
				;	 8	Month as 2 digits
				;	 9	Hour in 24-hour format
				;	 A	Hour in 24-hour 2-digit format
				;	 B	Hour in 12-hour format
				;	 C	Minute as 2 digits
				;	 D	AM or PM
				;	 E	A.M. or P.M.
				;	 F	am or pm
				;	 G	a.m. or p.m.
				;	 H	Day of the week as a word
				;	 I	Day of the week, abbreviated
				
				; For example:
				
				;	H, 3 1, 4	becomes Wednesday, September 19, 1985
				;	2/1/5		becomes 9/19/85
				;	7 6 5		becomes 19 Sep 85
				;	9:C		becomes 14:27
				;	B:C D		becomes 2:27 PM
				
 1FA8  06			fdate	db	6
 1FA9  33 20 31 2C 20 34		db	'3 1, 4'	; September 19, 1985 format
 1FAF  00 00 00 00 00 00		db	0,0,0,0,0,0	; Spares
				
 1FB5  05			ftime	db	5
 1FB6  42 3A 43 20 47			db	'B:C G'		; 2:27 p.m. format
 1FBB  00 00 00 00 00 00		db	0,0,0,0,0,0,0	; Spares
       00			
				
				;
				; Application files
				;
				; The following data structure allows for the addition of extra applications.
				; WordStar will pass on the application number and the address of the start of
				; the file areas so that the application may use them to perform the same file
				; search as WordStar. The API allows the application to call back into WordStar
				; to perform certain functions, one of which is opening these files using
				; WordStar's search path mechanism.  The initialization bytes are used for
				; any settings that the application requires
				; 
				;
 1FC2  0091[			AppFil	db	145 dup(0)		; Application files and initialization
	   00			
			 ]		
				
				
				; Extended keyboard flag
				
				; WordStar tests the system for an extended keyboard to allow the use of
				; certain keys only available on those keyboards.  This byte turns the check
				; on or off, or enables the extended keyboard functionality without doing a
				; test.  Set to 0 for no test (F11 and F12 probably won't work), 0FFh to do
				; the test, and act appropriately, and 01 to enable the extended keyboard
				; functions without doing the test.
				
 2053  00			extkb	db	00h			; Don't perform the test
				
				
				; Specifies what character to use to fill unused space in the status line.
				; The first byte of stfill is for document mode, the second for non-documents.
				
 2054  20			stfill	db	' '		; Fill with blanks
 2055  20				db	' '		; For non-document mode
				
				
				; If swprun is TRUE, WordStar will use the same swapping mechanism for
				; running user programs as it does for running its own programs.
				
 2056  FF			swprun	db	TRUE			; Swap when running user programs
				
				; mouse support
				
				%OUT mouse variables to be moved
				
 2057  FF			moususe	db TRUE		; set to FALSE if don't want to use the mouse
 2058  000F			mick_h	dw 0Fh		; mouse horiz. sensitivity--mickeys (1-32,767)
 205A  000F			mick_v	dw 0Fh		; mouse vert.  sensitivity--mickeys (1-32,767)
 205C  0016			dcdur	dw 22		; double click duration in ibmtiks
 205E  0014			mvscrl	dw 20		; min vertical move before scroll (mickeys)
 2060  0014			mhscrl	dw 20		; min horizontal move before scroll (mickeys)
 2062  0082			mhscrw	dw 130; 300	; milliseconds to wait between forcing horiz. scrolls
 2064  0096			mvscrw	dw 150; 300	; milliseconds to wait between forcing vert scrolls
 2066  00			swpbtn	db FALSE	; TRUE means swap buttons for lefties
				
				
				; The CLARET flag bits specify how dialog boxes are handled.
				;
				;	Bit	Function
				;
				;	 0	Pressing Enter key in dialog boxes:
				;		0 = moves from field to field; closes dialog at last field
				;		1 = closes dialog regardless of current field
				;
				;	 1	Clearing fields when cursoring around directory entries:
				;		0 = field is not cleared
				;		1 = field is cleared
				;
				;	 2	Automatically show names in field when cursoring through
				;		directories:
				;		0 = field not automatically updated
				;		1 = field is automatically updated
				;
				;	 3	Show path as well as filename in status line:
				;		0 = don't show path
				;		1 = show path
				;
				;	4-7	Reserved for future use.
				;
 2067  0F			claret	db	00001111b		; Enter key closes dialog box
									; Clear field in dialog box
									; Automatically show names in field
									; Show path w/filename in status line
				
 2068  8300			mreckey		dw	8300h		; Scan code for stop recording key- 
									; stroke for macros. Default is 
									; Alt + =
				
 206A  8200			minpkey		dw	8200h		; Scan code for PauseForInput key-
									; stroke for macros. Default is 
									; Alt + -
				
 206C  011B			mstpkey		dw	011Bh		; Scan code for Stop macro system 
									; for play back. Default is Esc
				
 206E  FFFF			manykey		dw	0FFFFh		; Scan code for Stop macro system at
									; any time. Default is undefined.
				
				
				
 2070  00			usrmpaus	db	0		; Use defined pause for input message
 2071  0022[					db	34 dup (' ')	; for macros. If null in first byte 
	   20			
			 ]		
				
 2093  00					db	0		; then get message from message file
									; Null terminated string
				
				
 = 000E				USRMSIZ		equ	14		; Maximim size
				
 2094  41 6C 74 2B 3D 00	usrmrec		db	'Alt+=',0	; Message for stop recording keystroke
 = 0006				USRMRZ		equ	$-usrmrec	; Size of message
 209A  0008[					db	USRMSIZ-USRMRZ dup (0)
	   00			
			 ]		
				
				
 20A2  41 6C 74 2B 2D 00	usrminp		db	'Alt+-',0	; Message for PauseForInput keystroke
 = 0006				USRMIZ		equ	$-usrminp	; Size of message
 20A8  0008[					db	USRMSIZ-USRMIZ dup (0)
	   00			
			 ]		
				
				
				;
				; Definitions for each status line
				;
				;Function   Description             Length	Notes
				;  1         Wait messages            30	Includes Replace Y/N,
				;						..Printing, Print Wait, Wait
				;  2         Title                   10
				;  3         File indicator          35		Set bit #3 to 0 in label
				;						.. CLARET to suppress drive
				;						.. and directory.
				;  4         Line number              4
				;  5         Page number              4		Works as line number in
				;						.. non-document mode
				;  6         Column number            5
				;  7         Vertical position        8
				;  8         Horizontal position      8
				;  9         Font name               18
				; 10         Style name              24
				; 11         Insert                   8		Also "Protect" message
				; 12         Column mode             15
				; 13         Line spacing	      2
				; 14         reserved
				; 15         Auto indent             13
				; 16         reserved
				; 17         Bold                     3
				; 18         Italic	              3
				; 19         Underline                3
				; 20         Superscript              3
				; 21         Subscript                3
				; 22         Closing file             1
				; 23         Command in progress      3
				; 24         reserved
				; 25         Display on/off           3
				; 26         Text justification      16		Series of 4 buttons: Left,
				;						.. Center, Right & Justified
				; 27         reserved
				; 28         reserved
				; 29         reserved
				; 30         Window indicator         3
				; 31         Window sizing	      1
				; 32         Horizontal scroll        3
				; 33         Window Min/Max	      1
				; 34         Markers                 16
				; 35         Language                16
				;
				; A value of -1 ends an entry. A -1 entry only means don't use this 
				; bar line. Other values include:
				;	Value in
				;	first byte	Definition
				;	   0		Title bar
				;	   1		Style bar
				;	   2		Status bar (non-document edit screen)
				;	  -2		Status bar (document edit screen)
				;
				; Each proceeding triplet is:
				;	function | length | on-screen column
				;
				
 = 0003				STADEZ	equ	3			; Number of bytes per function
 = 0012				STADCNT	equ	18			; Max number of functions per
									; status bar
				
 20B0  00			stadef1	db	 0			; Use top line
 20B1  16 01 00				db	22,	1,	0	; Close file indicator
 20B4  17 03 01				db	23,	3,	1	; Command in progress 
 20B7  01 1E 05				db	 1,	30,	5	; Messages
 20BA  02 0A 23				db	 2,	10,	35	; Title
 20BD  03 1D 2D				db	 3,	29,	45	; Filename
 20C0  1E 03 4B				db	30,	 3,	75	; Window indicator
 20C3  21 01 4F				db	33,	 1,	79	; Window minimize/maximize
 20C6  FF				db	-1
					
 = 0007				STADZ1	equ	($ - stadef1)/STADEZ
					rept	STADCNT - STADZ1
					db	0, 0, 0
					endm
				
				
 20E8  01			stadef2	db	 1			; Put this one on second line
 20E9  0A 18 01				db	10,	24,	1	; Style name
 20EC  09 12 1A				db	 9,	18,	26	; Font name
 20EF  11 03 2D				db	17,	 3,	45	; Bold button
 20F2  12 03 31				db	18,	 3,	49	; Italics button
 20F5  13 03 35				db	19,	 3,	53	; Underline button
 20F8  19 03 39				db	25,	 3,	57	; Display on/off button
 20FB  1A 10 3D				db	26,	 4*4,	61	; Text justification buttons
 20FE  0D 02 4D				db	13,	 2,	77	; Line spacing button
 2101  FF				db	-1			; End of entries for this status line
				
 = 0008				STADZ2	equ	($ - stadef2)/STADEZ
					rept	STADCNT - STADZ2
					db	0, 0, 0
					endm
				
				
 2120  FE			stadef3	db	-2			; Put on bottom
 2121  0C 0F 00				db	12,	15,	0	; Column/Repl indicator
 2124  22 10 10				db	34,	16,	16	; Markers
 2127  0B 08 21				db	11,	 8,	33	; Insert
 212A  05 04 2A				db	 5,	 4,	42	; Page number
 212D  04 04 2F				db	 4,	 4,	47	; Line number
 2130  07 08 34				db	 7,	 8,	52	; Vertical position
 2133  06 04 3D				db	 6,	 4,	61	; Column
 2136  08 08 42				db	 8,	 8,	66	; Horizontal position
 2139  20 03 4B				db	32,	 3,	75	; Horizontal scroll indicator
 213C  1F 01 4F				db	31,	 1,	79	; Window sizing indicator
 213F  FF				db	-1
				
 = 000A				STADZ3	equ	($ - stadef3)/STADEZ
					rept	STADCNT - STADZ3
					db	0, 0, 0
					endm
				
				
 2158  02			stadef4	db	2			; Non document version
 2159  0C 0F 00				db	12,	15,	0	; Column/Repl indicator
 215C  22 10 10				db	34,	16,	16	; Markers
 215F  0F 0D 22				db	15,	13,	34	; Auto-Indent
 2162  0B 08 31				db	11,	8,	49	; Insert
 2165  05 07 3B				db	5,	7,	59	; Line number (non document)
 2168  06 05 44				db	6,	5,	68	; Column
 216B  20 03 4B				db	32,	 3,	75	; Horizontal scroll indicator
 216E  1F 01 4F				db	31,	 1,	79	; Window sizing indicator
 2171  FF				db	-1
				
 = 0008				STADZ4	equ	($ - stadef4)/STADEZ
					rept	STADCNT - STADZ4
					db	0, 0, 0
					endm
				
				;
				; Opening Menu status line definition
				;
 2190  00			stadef5	db	 0			; Use top line
 2191  16 01 00				db	22,	1,	0	; Close file indicator
 2194  17 03 01				db	23,	3,	1	; Command in progress 
 2197  01 1E 05				db	 1,	30,	5	; Messages
 219A  02 0A 23				db	 2,	10,	35	; Title
 219D  FF				db	-1
					
 = 0004				STADZ5	equ	($ - stadef5)/STADEZ
					rept	STADCNT - STADZ5
					db	0, 0, 0
					endm
				
				;
				; Print time status line
				;
 21C8  00			stadef6	db	 0			; Use top line
 21C9  05 04 04				db	 5,	 4,	4	; Page number
 21CC  06 04 0A				db	 6,	 4,	10	; Copy number
 21CF  01 16 10				db	 1,	22,	16	; Messages
 21D2  03 23 27				db	 3,	35,	39	; Filename
 21D5  FF				db	-1
					
 = 0004				STADZ6	equ	($ - stadef6)/STADEZ
					rept	STADCNT - STADZ6
					db	0, 0, 0
					endm
				
				
				
				; Speller alternate lookup options
				
				; For run-on word suggestions, set bit 1
				; For typo alternates, set bit 2
				; For typo transpositions, set bit 3
				; For case or accent suggestions, set bit 4
				; For phonetic suggestions, set bit 5
				; For Alternates from the main dictionary, set bit 8
				; For Alternates from the personal dictionary, set bit 9
				; One of the last two bits must be set (main or personal dictionary)
				
				;		5432109876543210
 2200  033E			splopt	dw	0000001100111110b
				
 2202  FF			clkypl	db	TRUE		; Display Classic keys in Pull Downs
				
				; For the following display flags, 0FFh means the flag is tied to
				; print control display (^OD), 0 means initial state off (not tied
				; to print controls, and 1 means initial state on (not tied to print
				; control display.
				
 2203  FF			dtcdsp	db	0FFh		; Dot command display tied to print controls
				
 2204  FF			flgdsp	db	0FFh		; Flag column display tied to print controls
				
 2205  00			sfbdsp	db	0		; Soft space dots and tabs default off
				
				; Scroll bar in editing display default (on or off only)
				
 2206  FF			scbdsp	db	TRUE		; Scroll bar defaults on
				
 2207  FF			windsp	db	TRUE		; ^OD operates both windows
				
 2208  FF			inimrg	db	TRUE		; Interpret merge variables default for
								; .. print dialog
				.list
 2209  00			netstr	db	0			; 0 = no net; >0 = net. string
				
 = 0001				NETSTRZ	equ	$-netstr
 220A  003B[				db	(60 - NETSTRZ) dup (0)
	   00			
			 ]		
				
				
 2245  00			mreset	db	MR_FULL		; full; partial; or full first, partial rest?
				
				;
				; To turn on onscreen function key labels set funlbl to a value 1-4
				; 
				; 0 = No function keys
				; 1 = 1 line   Normal Function keys on bottom
				; 2 = 2 lines  Normal Function keys on bottom, SHIFT-FKeys on line above
				;
 2246  00			funlbl  db      0               ; Number of function key lines 
 2247  0A				db	10		; Show 10 per line	
				
				; The following two keys are the user definable function keys and their
				; descriptions for the function key lines.  Function keys are normally defined
				; using macros, however two are reserved by WordStar to perform the help
				; function (F1) and to close dialogs and files (F10).
				; 
				;
 2248  3B00			U1Fkey	dw	3b00h		; Help:  Scan code (F1)
 224A  48 65 6C 70 20 20		db	'Help    '
       20 20			
				
 2252  4400			U2Fkey	dw	4400h		; Close: Scan code (F10)
 2254  44 6F 6E 65 20 20		db	'Done    '
       20 20			
				
 225C  0000			fcolor	dw	0		; Attribute of function key labels decription 
       0000				dw	0		; Attribute of function key labels number 
       0000				dw	0		; Reserved

				; User Area date
 2262  0C 1F 5B			udate	db	12,31,91
				
