home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Jason Aller Floppy Collection
/
128.img
/
WS6#02.LZH
/
PATCH.LST
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
NeXTSTEP
RISC OS
UTF-8
Wrap
File List
|
1990-02-22
|
83.0 KB
|
2,510 lines
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).
IBM ROM, beep ok, direct video, tick timer, no bright or video retrace wait
023A ibmflg db 00011111b
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 Make default printer driver RAM resident (limitation
of no indexing or tables of contents). Can't select other
printers.
2-7 Reserved for future use.
Normal operation
023B nwflg db 0
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 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 Set to 1 if the hyphenator should share memory with the
spelling overlay.
Ram resident messages, shared thesaurus
023D memflg db 0010b
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).
Look at files
023E share db 1
Reserved
023F db 0,0,0
Edit Menu Function Keys
The function key table allows you to program any function keys that
your terminal supports into one or more other keystrokes. On the IBM
personal computer, function keys generate a null plus a keycode.
Function Key Keycode (in hex)
Ctrl+Break 00
Shift+Tab 0F
Ctrl+PrtSc 72
Home 47
Ctrl+Home 77
UpArrow 48
PgUp 49
Ctrl+PgUp 84
LeftArrow 4B
Ctrl+LeftArrow 73
RightArrow 4D
Ctrl+RightArrow 74
End 4F
Ctrl+End 75
DownArrow 50
PgDn 51
Ctrl+PgDn 76
Ins 52
Del 53
F1 thru F10 3B thru 44
Shift+F1 thru F10 54 thru 5D
Ctrl+F1 thru F10 5E thru 67
Alt+F1 thru F10 68 thru 71
Each function key in the table below is represented by two strings. The
first represents the string of characters generated by the function key.
The second represents what string the function key should generate as its
replacement. Because the strings are packed next to each other, you may
not use string indirections (size of -1 plus address).
The end of the function key table is indicated when the size of the
function key string is zero. If the function key strings won't all fit
here, you can put a continuation address after the zero to point to more
table. The table at that address must be the same format as this
one. No continuation is indicated by an address of zero.
Function keys enabled. Fixed size of 2. No delay between burst chars.
Change to zero to disable function keys. Every burst starts with a null
Set to -1 if each burst doesn't start with the same character.
0242 fundly db -2
0243 db 0
Home
0244 funtbl db 2
0245 db 0,47h
0247 db 2
0248 db CTRLQ,CTRLE
End
024A db 2
024B db 0,4fh
024D db 2
024E db CTRLQ,CTRLX
Ctrl+Home
0250 db 2
0251 db 0,77h
0253 db 2
0254 db CTRLQ,CTRLR
Ctrl+End
0256 db 2
0257 db 0,75h
0259 db 2
025A db CTRLQ,CTRLC
Ins
025C db 2
025D db 0,52h
025F db 1
0260 db CTRLV
Ctrl+PrtSc
0261 db 2
0262 db 0,72h
0264 db 7
0265 db CTRLQ,'`',CTRLK,CTRLD,CTRLP,CTRLR,CR
Two chars describes function key. Null plus keycode. One char in replacement.
Convert UpArrow to ^E.
026C funtb1 db 2
026D db 0,48h
026F db 1
0270 db CTRLE
DownArrow
0271 db 2
0272 db 0,50h
0274 db 1
0275 db CTRLX
LeftArrow
0276 db 2
0277 db 0,4bh
0279 db 1
027A db CTRLS
RightArrow
027B db 2
027C db 0,4dh
027E db 1
027F db CTRLD
PgUp
0280 db 2
0281 db 0,49h
0283 db 1
0284 db CTRLR
Ctrl+LeftArrow
0285 db 2
028B db 0,73h
028D db 1
028E db CTRL
Ctrl+RightArrow
028F db 2
0290 db 0,74h
0292 db 1
0293 db CTRLF
Ctrl+ScrollLock
0294 db 2
0295 db 0,00h
0297 db 1
0298 db 0
Del
0299 db 2
029A db 0,53h
029C db 1
029D db 7fh
^@
029E db 2
029F db 0,03h
02A1 db 1
02A2 db 0
Ctrl+PgUp
02A3 db 2
02A4 db 0,84h
02A6 db 1
02A7 db CTRLW
Ctrl+PgDn
02A8 db 2
02A9 db 0,76h
02AB db 1
02AC db CTRLZ
Shift+BackTab
02AD db 2
02AE db 0,0fh
02B0 db 1
02B1 db CTRLL
Alt+F
02B2 db 2
02B3 db 0,21h
02B5 db 2
02B6 db CTRLRB,'F'
Alt+E
02B8 db 2
02B9 db 0,12h
02BB db 2
02BC db CTRLRB,'E'
Alt+A
02BE db 2
02BF db 0,1eh
02C1 db 2
02C2 db CTRLRB,'A'
Alt+G
02C4 db 2
02C5 db 0,22h
02C7 db 2
02C8 db CTRLRB,'G'
Alt+W
02CA db 2
02CB db 0,11h
02CD db 2
02CE db CTRLRB,'W'
Alt+L
02D0 db 2
02D1 db 0,26h
02D3 db 2
02D4 db CTRLRB,'L'
Alt+S
02D6 db 2
02D7 db 0,1fh
02D9 db 2
02DA db CTRLRB,'S'
Alt+O
02DC db 2
02DD db 0,18h
02DF db 2
02E0 db CTRLRB,'O'
Alt+1 (Preview)
02E2 db 2
02E3 db 0,78h
02E5 db 2
02E6 db CTRLO,CTRLP
Alt+0 (Style)
02E8 db 2
02E9 db 0,81h
02EB db 4
02EC db CTRLO,CTRLF,CTRLS,CTRLX
End of IBM function keys on right hand side
db 0
02F1 dw morpat
= 00AF FUNTBZ equ $-funtbl Size of FUNTBL
Extra bytes to fill out to 200th byte
02F3 db (200-FUNTBZ) dup(0)
FUNLAB is usually used to show function key labels at the bottom of
the screen. However, it could be used for any purpose. The first
byte indicates how many lines are to be used, with a pointer to each
line immediately after it. Lines will appear in all help levels above
0, unless LABHP4 is 0, in which case no function key labels will be shown
on help level 4.
A hex 02 encountered within the line means to turn highlighting on.
A hex 01 means to turn it off. A hex 00 indicates the end of the line.
Currently available on the IBM PC only.
Two lines of labels for IBM PC
030C funlab label byte
030C db 2
030D dw funla1 Points to 2nd line from bottom
030F dw funla2 Points to 1st line from bottom
0311 funla1 db ' ',2,'Display' Shifted F1-F10
031A db 1,' ',2,'Center '
0324 db 1,' ',2,'ChkRest'
032E db 1,' ',2,'ChkWord'
0338 db 1,' ',2,'Del Blk'
0342 db 1,' ',2,'HideBlk'
034C db 1,' ',2,'MoveBlk'
0356 db 1,' ',2,'CopyBlk'
0360 db 1,' ',2,'Beg Blk'
036A db 1,'1',2,'End Blk'
0374 db 0
0375 db '1',2,'Help ' F1-F10
037E db 1,'2',2,'Undo '
0388 db 1,'3',2,'Undrlin'
0392 db 1,'4',2,'Bold '
039C db 1,'5',2,'DelLine'
03A6 db 1,'6',2,'DelWord'
03B0 db 1,'7',2,'Align '
03BA db 1,'8',2,'Ruler '
03C4 db 1,'9',2,'Save & '
03CE db 1,'0',2,'Done '
03D8 db 0
Opening Menu function key assignments
Two chars describes function key. Null plus keycode. No replacement.
03D9 opntbl db 2
03DA db 0,48h
03DC db 0
DownArrow
03DD db 2
03DE db 0,50h
03E0 db 0
LeftArrow
03E1 db 2
03E2 db 0,4bh
03E4 db 0
RightArrow
03E5 db 2
03E6 db 0,4dh
03E8 db 0
PgUp
03E9 db 2
03EA db 0,49h
03EC db 0
PgDn
03ED db 2
03EE db 0,51h
03F0 db 0
Home
03F1 db 2
03F2 db 0,47h
03F4 db 0
End
03F5 db 2
03F6 db 0,4fh
03F8 db 0
Ctrl+PrtSc
03F9 db 2
03FA db 0,72h
03FC db 0
Ins
03FD db 2
03FE db 0,52h
0400 db 0
Del
0401 db 2
0402 db 0,53h
0404 db 0
0405 db 0 End
0406 dw funtb2 Share some definitions with Edit Menu
= 002F opntbz equ $-opntbl Size of OPNTBL
Extra bytes to fill out to 100th byte
0408 db (100-opntbz) dup(0)
Prompts function key assignments
Home
043D prmtbl db 2
043E db 0,47h
0440 db 0
End
0441 db 2
0442 db 0,4fh
0444 db 0
Ctrl+Home
0445 db 2
0446 db 0,77h
0448 db 0
Ctrl+End
0449 db 2
044A db 0,75h
044C db 0
Ins
044D db 2
044E db 0,52h
0450 db 0
Ctrl+PrtSc
0451 db 2
0452 db 0,72h
0454 db 0
0455 db 0 End
0456 dw funtb1 Share some definitions with Edit Menu
= 001B prmtbz equ $-prmtbl Size of PRMTBL
Extra bytes to fill out to 100th byte
0458 db (100-prmtbz) dup(0)
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.
Must be exact screen height in lines
04A1 hite db 25
Must be <= exact screen width in columns.
04A2 wide db 80
Indicates if terminal wraps around to next line if a character is displayed
in WIDth column of screen (set FALSE if it doesn't)
04A3 wrap db FALSE
TRUE if XON/XOFF protocol to be used for the CRT terminal
04A4 xonoff db FALSE
Number of columns that are horizontally scrolled when cursor moves beyond
right or left side of screen.
04A5 scroll db 20
Show directory at choosing a file prompt
04A6 dirsiz db TRUE
Reserved
04A7 db 0,0,0,0,0,0
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.
Number of chars in string. What is displayed. 3 spare bytes.
04AD delstr db 1
04AE db DEL
04AF db 0,0,0
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.
Number of chars in string. What is displayed. Spare bytes.
04B2 shystr db 1
04B3 db '='
04B4 db 0,0,0
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.
Three chars. Begin block. 1 spare.
04B7 bblock db 3
04B8 db '<B>'
04BB db 0
Three chars. End block. 1 spare.
04BC kblock db 3
04BD db '<K>'
04C0 db 0
Special characters
04C1 softsp db 0fah Small dot for soft spaces
04C2 db 0c4h Page break line
04C3 db 0feh Binding space
04C4 db 0f0h Snaking column indicator
04C5 db 0cdh Column break line
04C6 db '.' Dot leader
04C7 db 0,0,0,0,0,0,0,0 Reserved
Screen marker characters appear at the right-hand edge of the screen.
This table allows conversion to some other character.
04CF scmark db '<' Hard line ending
04D0 db ' ' Paragraph line ending
04D1 db '+' Long line
04D2 db '^' End of file
04D3 db '-' Overstrike line
04D4 db 'J' Line feed
04D5 db 'F' Form feed
04D6 db 'P' Page break
04D7 db 'C' Column break
04D8 db 'W' Window separator
04D9 db '.' Dot command
04DA db '1' Dot command at start of page
04DB db ':' Merge print dot command
04DC db '?' Unknown dot command
04DD db 0,0,0,0,0,0,0,0 Reserved
04E5 db 0,0,0,0,0,0,0,0
The following string is used at sign-on to describe the type
of terminal being used by WordStar. Up to 40 bytes are available
for the string, including its null terminator.
04ED crtid db 'IBM PC Compatible (Includes'
0508 db ' EGA and VGA)',CR,LF,0 Terminal name
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.
0518 clead1 db 0 Initial lead-in string
0519 db 0 First character
051A db 0 Second character
051B db 0,0 Space for two more characters
051D clead2 db 0 Sent between line and column
051E db 0 example. First character
051F db 0,0,0 Space for three more characters
0522 ctrail db 0 Terminating string
0523 db 0,0,0,0 Space for four characters
0527 cb4lfg db 0 Send column before line?
Set non-zero to send column first
0528 curoff label word Both bytes used at one time
0528 db 0 Offset to add to line
0529 db 0 Offset to add to column
052A 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.
052B ucrpos: nop
052C nop
052D ret
052E oncur: nop
052F nop
0530 ret
0531 offcur: nop
0532 nop
0533 ret
Everything in the rest of this section is optional. The items relate either
to enhance 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).
0534 erascr db 1 Number of characters
0535 db CTRLZ First character
0536 db 0,0,0,0,0,0,0,0 15 more
053E db 0,0,0,0,0,0,0
Backspace one character string. If this function is not available, leave the
first byte zero, and the editor will use cursor addressing to backspace.
0545 bakspc db 0 Number of characters
0546 db 0 First character
0547 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.
054A eraeol db 1 Number of characters
054B db CTRLT First character
054C 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.
054F eraeos db 0 Number of characters
0550 db 0 First character
0551 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.
0554 lindel db 1 Number of characters
0555 db CTRLR First character
0556 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.
0559 linins db 1 Number of characters
055A db CTRLE First character
055B 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.
055E 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.
055F chrdel db 0 Number of characters
0560 db 0 First character
0561 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.
0564 chrins db 0 Number of characters
0565 db 0 First character
0566 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.
0569 trmini db -1 Number of bytes
056A dw erascr Use extension mechanism (-1 as byte
056C 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.
056E trmuni db -1 Number of bytes
056F dw erascr
0571 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.
Normally NOP, or JMP to to 'undo' any special terminal status used for the
editor. See UCRPOS comments.
0573 inisub: nop
0574 nop
0575 ret
Normally NOP, or JMP to your subroutine.
0576 unisub: nop
0577 nop
0578 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
vidax equ byte ptr ds:[4] Data segment location for VIDATT use
0579 vidatt:
0579 mov si,offset vcolor+1
057C mov al,cs:[si] Get normal color
057F jcxz vida4 Normal?
0581 mov ah,al
0583 mov dh,vidax Know video type?
0587 inc dh
0589 jnz vida1
Initialize
058B push cx
058C mov ah,15 Get video type
058E int 10h
0590 mov vidax,al
0593 pop cx
0594 jmp vidatt
Non-text attributes
0596 vida1: test ch,11111110b Not special text?
0599 jz vida5
059B mov al,ch Status line?
059D mov bl,17
059F shr al,1
05A1 shr al,1
05A3 jc vida3
05A5 inc bl Menu?
05A7 shr al,1
05A9 jc vida2
05AB mov bl,17+3 Function key labels?
05AD shr al,1
05AF jc vida2
05B1 mov bl,17+7 Ruler line?
05B3 shr al,1
05B5 jc vida3
05B7 mov bl,17+5 Directory?
05B9 shr al,1
05BB jc vida2
05BD mov bl,17+8 Warnings
05BF vida2: or cl,cl Normal video?
05C1 jz vida3
05C3 test cl,100b Inverse
05C6 jnz vida4a
05C8 inc bl Highlighted
05CA vida3: xor bh,bh Get video attribute from VCOLOR
05CC mov al,cs:[si+bx]
05CF vida4: ret
05D0 vida4a: call vida3 Invert colors
05D3 mov cl,4
05D5 jmp short vida7a
Use VCOLOR table to convert WordStar video bits
05D7 vida5: mov ch,cl Original bits to CH
05D9 mov dl,8 Go through table
05DB inc si
05DC vida6: shr cl,1 Bit not set?
05DE jnc vida7
05E0 and al,cs:[si] AND with mask, OR with new color
05E3 or al,cs:[si+1]
05E7 vida7: inc si Next color in table
05E8 inc si
05E9 dec dl
05EB jnz vida6
05ED mov cl,4 CL=4
05EF test ch,cl Not marking a block?
05F1 jz vida10
Don't use inverse?
05F3 vida7a: test cs:ibmflg,01000000b Bit set indicating "no inverse"?
05F9 jnz vida11
05FB cmp dh,8 Color screen?
05FE jnz vida9
B&W
0600 test al,01110110b Not underlining?
0604 jnz vida8
0604 mov al,ah Use normal color
0606 vida8: xor al,00001000b Invert bright
Color
0608 vida9: mov dh,al Swap foreground & background colors
060A mov dl,al
060C shl dh,cl
060E and dh,01110000b
0611 shr dl,cl
0613 and dl,00000111b
0616 and al,10001000b
0618 or al,dh
061A or al,dl
061C vida10: ret
Use bright instead of inverse
061D vida11: or al,00001000b Set bright attribute
061F ret
Size of VIDATT code
= 00A7 vidatz equ $-vidatt
Extra bytes to fill out to 300th byte
0620 db (300-vidatz) dup(0)
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)
06A5 vcolor db 00000000b,00000111b Normal text white on black (no blink or bright)
06A7 db 11111111b,00001000b Make strike-out bright
06A9 db 11111111b,00000000b Reserved
06AB db 11111111b,00000000b Reverse video is inverse of normal
06AD db 11111000b,00000001b Monochrome underline (blue if color)
06AF db 11111111b,00001000b Make subscripts bright
06B1 db 11111111b,00001000b Make superscripts bright
06B3 db 11111111b,00001000b Make bold & doublestrike bright
06B5 db 11111111b,00001000b Bright italics
06B7 db 01110000b Status line
06B8 db 00000111b Normal menu text
06B9 db 00001111b Bright menu text
06BA db 00000111b Function keys
06BB db 01110000b Bright function keys
06BC db 00000111b Directories
06BD db 01110000b Directory headings
06BE db 01110000b Ruler line
06BF db 00000111b Normal warning text
06C0 db 00001111b Bright warning text
= 00 vcoloz equ $-vcolor Size of VCOLOR
Extra bytes to fill out to 30th byte
06C1 db (30-vcoloz) dup(0)
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 directorieszero normally.
06C3 brite db 0 Don't reverse
WordStar attempts to draw a box around most of the menus using the following
box drawing characters.
06C4 boxchr db 0cdh Horizontal line
06C5 db 0bah Vertical line
06C6 db 0c9h Upper left corner
06C7 db 0c8h Lower left corner
06C8 db 0bbh Upper right corner
06C9 db 0bch Lower right corner
06CA db 0,0,0,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.
Note that an additional delay FUNDLY is located near the
function key table FUNTBL above.
Each delay is approximately the number of milliseconds
on a 8088 processor. An 8086 may be consideraby
faster.
No delay after cursor positioning (if your terminal works better with
5 milliseconds of delay, you would put a "5" here)
06D0 delcus db 0
06D1 delmis db 0 No delay after ERASCR and TRMINI
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.
06D2 dxoff dw 0
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
06D4 dlong dw 2000
Medium delays (1 second = 1,000 milliseconds) - hold off submenu (^Q ^K ^O
^P Esc) to prevent menus from appearing when typing commands quickly
06D6 dmed dw 1000
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
06D8 dshort dw 200
Page/line/column update delay after moving the cursor
06DA updly dw 75
Disk access delay. If character typed during disk access, wait for more
typing before continuing.
06DC ddisk dw 0
Delay when typing fast. Holds off displaying the rest of the line briefly.
06DE dfast dw 50
Delay before auto realignment after typing or deleting within a paragraph.
06E0 dalign dw 500
Not used in the IBM version.
06E2 ucnsta: nop
06E3 nop
06E4 ret
06E5 uconi: nop
06E6 nop
06E7 ret
06E8 ucono: nop
06E9 nop
06EA ret
This is 384 bytes set aside for anything that the user wishes to use. For
the IBM it is used for defining function keys F1 through F10.
06EB morpat db 2
06EC db 0,3bh F1
06EE db 1
06EF db CTRLJ
06F0 db 2
06F1 db 0,3ch F2
06F3 db 1
06F4 db CTRLU
06F5 db 2
06F6 db 0,3dh F3
06F8 db 2
06F9 db CTRLP,CTRLS
06FB db 2
06FC db 0,3eh F4
06FE db 2
06FF db CTRLP,CTRLB
0701 db 2
0702 db 0,3fh F5
0706 db 1
0707 db CTRLY
0706 db 2
0707 db 0,40h F6
0709 db 1
070A db CTRLT
070B db 2
070C db 0,41h F7
070E db 3
070F db CTRLB,CTRLQ,CTRLP
0712 db 2
0713 db 0,42h F8
0715 db 4
0716 db CTRLQ,CTRLS,CTRLO,CTRLO
071A db 2
071B db 0,43h F9
071D db 2
071E db CTRLK,CTRLS
0720 db 2
0721 db 0,44h F10
0723 db 2
0724 db CTRLK,CTRLD
0726 db 2
0727 db 0,54h Shift+F1
0729 db 2
072A db CTRLO,CTRLD
072C db 2
072D db 0,55h Shift+F2
072F db 2
0730 db CTRLO,CTRLC
0732 db 2
0733 db 0,56h Shift+F3
0735 db 2
0736 db CTRLQ,CTRLL
0738 db 2
0739 db 0,57h Shift+F4
073B db 2
073C db CTRLQ,CTRLN
073E db 2
073F db 0,58h Shift+F5
0741 db 2
0742 db CTRLK,CTRLY
0744 db 2
0745 db 0,59h Shift+F6
0747 db 2
0748 db CTRLK,CTRLH
074A db 2
074B db 0,5ah Shift+F7
074D db 2
074E db CTRLK,CTRLV
0750 db 2
0751 db 0,5bh Shift+F8
0753 db 2
0754 db CTRLK,CTRLC
0756 db 2
0757 db 0,5ch Shift+F9
0759 db 2
075A db CTRLK,CTRLB
075C db 2
075D db 0,5dh Shift+F10
075F db 2
0760 db CTRLK,CTRLK
0762 db 2
0763 db 0,68h Alt+F1
0765 db 1
0766 db 179
0767 db 2
0768 db 0,69h Alt+F2
076A db 1
076B db 196
076C db 2
076D db 0,6ah Alt+F3
076F db 1
0770 db 218
0771 db 2
0772 db 0,6bh Alt+F4
0774 db 1
0775 db 191
0776 db 2
0777 db 0,6ch Alt+F5
0779 db 1
077A db 192
077B db 2
077C db 0,6dh Alt+F6
077E db 1
077F db 217
0780 db 2
0781 db 0,6eh Alt+F7
0783 db 1
0784 db 194
0785 db 2
0786 db 0,6fh Alt+F8
0788 db 1
0789 db 193
078A db 2
078B db 0,70h Alt+F9
078D db 1
078E db 195
078F db 2
0790 db 0,71h Alt+F10
0792 db 1
0793 db 180
0794 db 2
0795 db 0,5eh Ctrl+F1
0797 db 2
0798 db CTRLQ,CTRLF
079A db 2
079B db 0,5fh Ctrl+F2
079D db 2
079E db CTRLQ,CTRLA
07A0 db 2
07A1 db 0,60h Ctrl+F3
07A3 db 1
07A4 db CTRLL
07A5 db 2
07A6 db 0,61h Ctrl+F4
07A8 db 2
07A9 db CTRLQ,CTRLI
07AB db 2
07AC db 0,62h Ctrl+F5
07AE db 6
07AF db CTRLQ,CTRLS,'.LM',CTRLN
07B5 db 2
07B6 db 0,63h Ctrl+F6
07B8 db 6
07B9 db CTRLQ,CTRLS,'.RM',CTRLN
07BF db 2
07C0 db 0,64h Ctrl+F7
07C2 db 7
07C3 db CTRLQ,CTRLS,'.PM6',CR
07CA db 2
07CB db 0,65h Ctrl+F8
07CD db 6
07CE db CTRLQ,CTRLS,'.PA',CR
07D4 db 2
07D5 db 0,66h Ctrl+F9
07D7 db 2
07D8 db CTRLQ,CTRLS
07DA db 2
07DB db 0,67h Ctrl+F10
07DD db 2
07DE db CTRLQ,CTRLD
07E0 db 0 End of function keys
07E1 dw 0
= 00F8 morpaz equ $-morpat
Fill out to 384th byte
07E3 db (384-morpaz) dup(0)
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.
086B PRNID db 'Draft Printer',CR,LF,0 Printer name
087B db ' ' Additional room
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.
0893 defprn db 'DRAFT',0,0,0,0 Standard driver
The following strings are used to describe the name of the default
font for normal, alternate, line numbering, footnote and endnote text.
They may each be up to 15 characters, null terminated.
089C nrmfid db 15 dup (0),0
08AC altfid db 15 dup (0),0
08BC linfid db 15 dup (0),0
08CC fotfid db 15 dup (0),0
08DC endfid db 15 dup (0),0
08EC db 0,0,0,0,0,0,0,0,0 Reserved
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.
Delay before saying printer busy 20 seconds = 20,000 milliseconds.
Disabled if zero
08F5 prndly dw 0
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.
08F7 pnodoc db FALSE Don't print as a non-document
08F8 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 byte determines whether or not to beep to get your attention.
08F9 bakprn db TRUE Background printing is on
08FA 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.
User list output status subroutine. Normally NOP, or JMP to your own
subroutine. Must return 0 in AL if list device is busy, 0FFH if idle.
08FB ulosta: nop
08FC nop
08FD ret
User list output subroutine. Normally NOP, or JMP to your own subroutine.
Subroutine receives the character in AL.
08FE ulsto: nop
08FF nop
0900 ret
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.
User list input status subroutine. Normally NOP, or JMP to your own
subroutine if XON/XOFF or ETX/ACK protocol. Must return 0 in AL if no
char pending.
0901 ulista: nop
0902 nop
0903 ret
User list input subroutine. Normally NOP, or JMP to your own subroutine if
XON/XOFF or ETX/ACK protocol. Returns character in AL.
0906 ulsti: nop
0905 nop
0906 ret
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.
Normally NOP if no redirection to be done. Change to JMP to your own
subroutine.
0907 ulport: nop
0908 nop
0909 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.
Uninitialize list device after printing
090A ulunpt: nop
090B nop
090C ret
When WordStar begins printing, space is allocated for accumulating
header and footer lines. HFSIZE determines how much space to allocate.
090D hfsize dw 2048 2k 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.
090F datsep db ',' Comma
0911 db '-' Strike out character
Color names. Color printing is only supported on color printers.
0912 ucolor db 'Black',0
0918 db 'Blue',0
091D db 'Green',0
0923 db 'Cyan',0
0928 db 'Red',0
092C db 'Magenta',0
0934 db 'Brown',0
093A db 'Light Gray',0
0945 db 'Dark Gray',0
094F db 'Light Blue',0
095A db 'Light Green',0
0966 db 'Light Cyan',0
0971 db 'Light Red',0
097B db 'Light Magenta',0
0989 db 'Yellow',0
0990 db 'White on Black',0
099F db 0
09A0 db 16 dup(0) Spare
This is 128 bytes set aside for printer subroutines & strings.
09B0 prnpat dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
09D0 dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
09F0 dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0A10 dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
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.
0A30 initid db 0 No ID if standard
0A31 db ' '
0A44 db ' '
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.
0A58 lgldrv db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0
WordStar uses several files. Their names are specified here. The first
two bytes before each filename are normally zero indicating WordStar
shold search for the file as follows:
1. Look on the subdirectory on the current drive.
2. Search along the MS-DOS path.
If the first byte is instead a 1 through 9, WordStar will only look in the
first, second, or third default path (see DEFPTH below).
If the second byte is zero, WordStar uses the current drive. If it instead
is 1 through 26, WordStar only looks on one drive, A through Z respectively.
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.
0A73 db 1 Set to zero if never any help messages
0A74 hpfile db 0,0,'WSHELP OVR' Help
0A81 msfile db 0,0,'WSMSGS OVR' Menus and messages
0A8E pvfile db 0,0,'PREVIEW OVR' Advanced Page Preview overlay
0A9B pvwfile db 3,0,'????????CRT' Preview's .CRT files and FONTID
0AA8 fnfile db 0,0,'FONTID CTL' Font ID for Advanced page Preview
0AB5 ixfile db 0,0,'WSINDEX XCL' Indexer exclusion list
0AC2 svfile db 0,0,'WSSHORT OVR' Shorthand definitions
0ACF spfile db 0,0,'WSSPL000OVR' Spelling checker overlay
0ADC idfile db 0,0,'SPLIN000DCT' Personal dictionary (if required)
0AE9 mdfile db 0,0,'SPLMN000DCT' Main dictionary
0AF6 thfile db 0,0,'WSTHS000OVR' Thesaurus overlay
0B03 tdfile db 0,0,'THESR000DCT' Thesaurus dictionary
0B10 udfile db 0,0,'PERSONALDCT' Personal dictionary
0B1D ddfile db 0,0,'DEFIN000DCT' Definitions dictionary
0B2A hyfile db 0,0,'WSHYP000OVR' Hyphenation algorithm overlay
0B37 hdfile db 0,0,'HYPMN000DCT' Main data file for hyphenation
0B44 hifile db 0,0,'HYPIN000DCT' Indexf file for hyphenation
0B51 pdffile db 0,0,'????????PDF' PDF file stuff
0B5E prfile db 0,0,'????????OVR' Printer drivers
0B6B cffile db 0,0,'WS CFG' Configuration file
0B78 kbfile db 0,0,'KEYBOARDMRG' Print from keyboard template file
0B85 isfile db 0,0,'INSET EXE' InSet program for print-time loading
0B92 stfile db 0,0,'WSSTYLE OVR' Global style libarary file
0B9F tmfile db 0,0,'TELMERGEEXE' TelMerge from additional menu
0BAC mlfile db 0,0,'WSLIST COM' MailList from additional menu
Nine 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.
0BB9 defpth db 4,'\WS' Default path 1
0BBD db 29 dup(0) Room for 29 more characters
0BDA db 4,'\WS' Default path 2
0BDE db 29 dup(0) Room for 29 more characters
0BFB db 4,'\WS' Default path 3
0BFF db 29 dup(0) Room for 29 more characters
0C1C db 4,'\WS' Default path 4
0C20 db 29 dup(0) Room for 29 more characters
0C3D db 4,'\WS' Default path 5
0C41 db 29 dup(0) Room for 29 more characters
0C5E db 4,'\WS' Default path 6
0C62 db 29 dup(0) Room for 29 more characters
0C7F db 4,'\WS' Default path 7
0C83 db 29 dup(0) Room for 29 more characters
0CA0 db 4,'\WS' Default path 8
0CA4 db 29 dup(0) Room for 29 more characters
0CC1 db 4,'\WS' Default path 9
0CC5 db 29 dup(0) Room for 29 more characters
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 charactersthe 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.)
0CE2 inilog db 0 Don't change directories
0CE3 db 0,0,0,0,0,0,0,0 Room for 24 chars
0CEB db 0,0,0,0,0,0,0,0
0CF3 db 0,0,0,0,0,0,0,0
WordStar creates backup and temporary files. The following are the file
types to be used for them.
0CFB baktyp db 'BAK' Type for backup files
0CFE aftype db '$A$' Type of spillover file after memory
0D01 bftype db '$B$' Type of spillover file before memory
0D06 blktyp db '$C$' Type of file used to buffer block move/copy
0D07 ncltyp db '$D$' Newspaper column accumulation
0D0A enotyp db '$E$' Endnote accumulation
0D0D fnotyp db '$F$' Footnote accumulation
0D10 wrktyp db '$G$' Workfile for typestyles
0D13 db 3*3 dup(0) Reserved
When the directory is displayed, file types from this table are suppressed.
A question mark in a file type matches any character.
0D1C notype db 'COM' Command files
0D1F db 'EXE' Execution files
0D22 db 'OVR' Overlays
0D25 db '$?$' Temporary before and after files ($A$, $B$)
0D28 db '$?W' Temporaries for second window
0D2B db 'SYS' User preference files
0D2E db 'DCT' Dictionaries
0D31 db 'CRT' Compiled screen fonts
0D34 db 'WSF' Master screen fonts
0D37 db 'PDF' Printer definition files
0D3A db 0,0,0 Room for 2 more
0D3D db 0,0,0
0D40 db 0 End of table
Default country (language) code. Specifies which LNGTBL entry to use.
0D41 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.
0D43 lngtbl db 10 Number of languages in table
0D44 db 'United States ',1fh,'001'
0D58 db 'United Kingdom ',1fh,'044'
0D6C db 'Germany ',23h,'049'
0D80 db 'France ',23h,'033'
0D94 db 'Italy ',23h,'039'
0DA8 db 'Spain ',13h,'034'
0DBC db 'Mexico/Cent.Amer',13h,'052'
0DD0 db 'Portugal ',23h,'351'
0DE4 db 'Brazil ',13h,'055'
0DF8 db 'Canada (French) ',17h,'002'
0E0C db ' ',00h,'000'
0E20 db ' ',00h,'000'
0E34 db ' ',00h,'000'
0E48 db ' ',00h,'000'
0E5C db ' ',00h,'000'
0E70 db ' ',00h,'000'
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.
0E84 dirfil db "???????????" All files match
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.
0E8F 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.
0E90 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.
0E91 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.
0E92 usedot db TRUE Insert dot commands
0E93 db 0,0 Reserved
When a nondocument is edited, WordStar will decide how to expand tabs
(ASCII 0BH), 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 0AH 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.
0E95 edcond db 'PAS',00000001b,TRUE File extension, followed by a
0E9A db 'PLI',00000011b,TRUE binary tab mask (e.g. a mask of
0E9F db 'C ',00000011b,TRUE 00000111B expands tab characters
0EA4 db 'H ',00000011b,TRUE to every 8th column), followed by
TRUE if auto-indent is turned on.
0EA9 db 0,0,0,00000111b,FALSE End of table with defaults if file
type doesn't match above
0EAE db 0,0,0,0,0 Room for four more
0EB3 db 0,0,0,0,0
0EB8 db 0,0,0,0,0
0EBD db 0,0,0,0,0
WordStar normally only considers alphabetic or numeric 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 numbers "0" through "9"
(ASCII codes of 30H through 39H), 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.
01234567 89ABCDEF
0EC2 lglchr db 00000000b,00000000b Codes 00H to 0FH
0EC4 db 00000000b,00000000b Codes 10H to 1FH
0EC6 db 00000000b,00000000b Codes 20H to 2FH
0EC8 db 00000000b,00000000b Codes 30H to 3FH
0ECA db 01111111b,11111111b Codes 40H to 4FH
0ECC db 11111111b,11100000b Codes 50H to 5FH
0ECE db 01111111b,11111111b Codes 60H to 6FH
0ED0 db 11111111b,11100000b Codes 70H to 7FH
0ED2 db 11111111b,11111111b Codes 80H to 8FH
0ED4 db 11111111b,11100000b Codes 90H to 9FH
0ED6 db 11111111b,00000000b Codes A0H to AFH
0ED8 db 00000000b,00000000b Codes B0H to BFH
0EDA db 00000000b,00000000b Codes C0H to CFH
0EDC db 00000000b,00000000b Codes D0H to DFH
0EDE db 11111111b,11110000b Codes E0H to EFH
0EE0 db 00000000b,00001100b Codes F0H to FFH
0EE2 db 00000000b,00000000b Extended codes 00H to 0FH
0EE4 db 00000000b,00000000b Extended codes 10H to 1FH
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.
01234567 89ABCDEF
0EE6 movchr db 11111111b,10010010b Codes 00H to 0FH
0EE8 db 11111011b,11000011b Codes 10H to 1FH
0EEA db 00111111b,11110101b Codes 20H to 2FH
0EEC db 11111111b,11001110b Codes 30H to 3FH
0EEE db 11111111b,11111111b Codes 40H to 4FH
0EF0 db 11111111b,11111111b Codes 50H to 5FH
0EF2 db 11111111b,11111111b Codes 60H to 6FH
0EF4 db 11111111b,11111110b Codes 70H to 7FH
0EF6 db 11111111b,11111111b Codes 80H to 8FH
0EF8 db 11111111b,11111111b Codes 90H to 9FH
0EFA db 11111111b,01111011b Codes A0H to AFH
0EFC db 11111111b,11111111b Codes B0H to BFH
0EFE db 11111111b,11111111b Codes C0H to CFH
0F00 db 11111111b,11111111b Codes D0H to DFH
0F02 db 11111111b,11111111b Codes E0H to EFH
0F04 db 11111111b,11111110b Codes F0H to FFH
0F06 db 00000000b,00000000b Extended codes 00H to 0FH
0F0A db 00000000b,00000000b Extended codes 10H to 1FH
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.
0F0A autobs db 0 Number of characters in table
0F0B db 0,0,0,0 Up to 8 character codes
0F0F db 0,0,0,0
0F13 db 29 dup(0) Reserved
When WordStar opens a file for editing, it uses the following initial
conditions.
0F30 iniedt db TRUE Right justification when typing
0F31 db TRUE Word wrap when typing at end of lin db TRUE Insert on
0F32 db TRUE Insert on
0F33 db TRUE Print controls displayed
0F34 db TRUE Hyphen help on
0F35 db TRUE Ruler displayed
0F36 db FALSE Not column mode
0F37 db FALSE Column replace off
0F38 db 1 Single spacing
0F39 db 3 Scrolling speed
0F3A db FALSE Preview mode off
0F3B db 2 Proportional spacing depends on font
0F3C db 0 Reserved
0F3D db FALSE Soft space dots and soft tabs not displayed
0F3E db TRUE Automatic paragraph realignment on
0F3F db 0,0,0,0,0 Reserved
0F44 dw 3*240 Top of page margin.
0F46 dw 8*240 Bottom of page margin.
0F48 dw 66*240 Total VMI per page.
0F4A dw 1 Initial page number (note 2 bytes).
0F4C db TRUE Page number prints at bottom of page
if TRUE. No page number if FALSE.
0F4D dw -1 Column where page number prints (-1=center).
0F4F dw 2*240 Heading margin between header and text.
0F51 dw 2*240 Footing margin.
0F53 db 00000111b Default document tab mask (must be
binary, 00000000B through 01111111B).
0F54 dw 8*180 HMI page offset for even pages.
0F56 dw 8*180 HMI page offset for odd pages.
0F58 db TRUE Bidirectional printing if TRUE. Just
unidirectional or printer controlled
if FALSE.
0F59 db 2 Letter quality printing if 1. Draft
quality if 0. Discretionary if 2.
(Only supported on some printers.)
0F5A db 2 Microjustified printing. 0 turns it off,
1 turns it on, and 2 makes it discretionary
(depending on the printer driver in use).
0F5B db FALSE Underline blanks between words if TRUE.
0F5C db TRUE Kerning on if TRUE
0F5D db 0,0,0,0,0 Reserved
0F62 dw 180 Normal font for ^PN. Width (HMI units)
0F64 dw 240 Height (VMI units) (was 180 *28jan90tap*)
0F66 dw 0 Typestyle
0F68 dw 150 Alternate font for ^PA. Width (HMI units)
0F6A dw 200 Height (VMI units)
0F6C dw 0 Typestyle
0F6E dw 90 Subscript and superscript roll (in VMI
units). This value determines how
far up or down the carriage moves when
subscripting or superscripting.
0F70 dw 240 Line height (in VMI units). This value
determines how far to roll the carriage
to get to the next line.
0F72 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
0F73 db 0 Page orientation 0=portrait,1=landscape
Default dialog box units
R or L = Ruler units (R for horizontalL for vertical)
in or " = Inches
cm = Centimeters
pt = Points (1/72nd of an inch, as opposed to "true points")
0F74 dbunith db '" ' default horizontal units
0F76 dbunitv db '" ' default vertical units
0F78 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
0F7A rlrini dw 0 Left ruler margin
0F7C dw 65*180 Right ruler margin
0F7E dw -1 Paragraph margin
0F80 dw 0 Reserved
0F82 db 11 Number of tab stops in tab table
0F83 db 0 Number of decimal tabs
0F84 dw 5*180,10*180,15*180,20*180 Tab stops
0F8C dw 25*180,30*180,35*180,40*180 (Must be in
0F94 dw 45*180,50*180,55*180 ascending order)
0F9A dw 0,0,0,0,0,0,0,0 Room for 21 more
0FAA dw 0,0,0,0,0,0,0,0
0FBA dw 0,0,0,0,0
.RR 1
0FC4 dw 5*180 Left ruler margin
0FC6 dw 60*180 Right ruler margin
0FC8 dw -1 Paragraph margin
0FCA dw 0 Reserved
0FCC db 10 Number of tab stops in tab table
0FCD db 0 Number of decimal tabs
0FCE dw 10*180,15*180,20*180 Tab stops
0FD4 dw 25*180,30*180,35*180,40*180
0FDC dw 45*180,50*180,55*180
0FE2 dw 0,0,0,0,0,0,0,0 Unused tab stops
0FF2 dw 0,0,0,0,0,0,0,0
1002 dw 0,0,0,0,0,0
.RR 2
100E dw 5*180 Left ruler margin
1010 dw 65*180 Right ruler margin
1012 dw 0 Paragraph margin
1014 dw 0 Reserved
1016 db 10 Number of tab stops in tab table
1017 db 0 Number of decimal tabs
1018 dw 5*180,10*180,15*180,20*180 Tab stops
1020 dw 25*180,30*180,35*180,40*180
1028 dw 45*180,50*180,55*180
102E dw 0,0,0,0,0,0,0,0 Unused tab stops
103E dw 0,0,0,0,0,0,0,0
104E dw 0,0,0,0,0
.RR 3
1058 dw 0 Left ruler margin
105A dw 65*180 Right ruler margin
105C dw -1 Paragraph margin
105E dw 0 Reserved
1060 db 11 Number of tab stops in tab table
1061 db 0 Number of decimal tabs
1062 dw 5*180,10*180,15*180,20*180 Tab stops
106A dw 25*180,30*180,35*180,40*180 (Must be in
1072 dw 45*180,50*180,55*180 ascending order)
1078 dw 0,0,0,0,0,0,0,0 Room for 21 more
1088 dw 0,0,0,0,0,0,0,0
1098 dw 0,0,0,0,0
.RR 4
10A2 dw 0 Left ruler margin
10A4 dw 65*180 Right ruler margin
10A6 dw -1 Paragraph margin
10A8 dw 0 Reserved
10AA db 11 Number of tab stops in tab table
10AB db 0 Number of decimal tabs
10AC dw 5*180,10*180,15*180,20*180 Tab stops
10B4 dw 25*180,30*180,35*180,40*180 (Must be in
10BC dw 45*180,50*180,55*180 ascending order)
10C2 dw 0,0,0,0,0,0,0,0 Room for 21 more
10D2 dw 0,0,0,0,0,0,0,0
10E2 dw 0,0,0,0,0
.RR 5
10EC dw 0 Left ruler margin
10EE dw 65*180 Right ruler margin
10F0 dw -1 Paragraph margin
10F2 dw 0 Reserved
10F4 db 11 Number of tab stops in tab table
10F5 db 0 Number of decimal tabs
10F6 dw 5*180,10*180,15*180,20*180 Tab stops
111E dw 25*180,30*180,35*180,40*180 (Must be in
1106 dw 45*180,50*180,55*180 ascending order)
110C dw 0,0,0,0,0,0,0,0 Room for 21 more
111C dw 0,0,0,0,0,0,0,0
112C dw 0,0,0,0,0
.RR 6
1136 dw 0 Left ruler margin
1138 dw 65*180 Right ruler margin
113A dw -1 Paragraph margin
113C dw 0 Reserved
113E db 11 Number of tab stops in tab table
113F db 0 Number of decimal tabs
1140 dw 5*180,10*180,15*180,20*180 Tab stops
1148 dw 25*180,30*180,35*180,40*180 (Must be in
1150 dw 45*180,50*180,55*180 ascending order)
1156 dw 0,0,0,0,0,0,0,0 Room for 21 more
1166 dw 0,0,0,0,0,0,0,0
1176 dw 0,0,0,0,0
.RR 7
1180 dw 0 Left ruler margin
1182 dw 65*180 Right ruler margin
1184 dw -1 Paragraph margin
1186 dw 0 Reserved
1188 db 11 Number of tab stops in tab table
1189 db 0 Number of decimal tabs
118A dw 5*180,10*180,15*180,20*180 Tab stops
1192 dw 25*180,30*180,35*180,40*180 (Must be in
119A dw 45*180,50*180,55*180 ascending order)
11A0 dw 0,0,0,0,0,0,0,0 Room for 21 more
11B0 dw 0,0,0,0,0,0,0,0
11C0 dw 0,0,0,0,0
.RR 8
11CA dw 0 Left ruler margin
11CC dw 65*180 Right ruler margin
11CE dw -1 Paragraph margin
11D0 dw 0 Reserved
11D2 db 11 Number of tab stops in tab table
11D3 db 0 Number of decimal tabs
11D4 dw 5*180,10*180,15*180,20*180 Tab stops
11DC dw 25*180,30*180,35*180,40*180 (Must be in
11E4 dw 45*180,50*180,55*180 ascending order)
11EA dw 0,0,0,0,0,0,0,0 Room for 21 more
11FA dw 0,0,0,0,0,0,0,0
120A dw 0,0,0,0,0
.RR 9
1214 dw 0 Left ruler margin
1216 dw 65*180 Right ruler margin
1218 dw -1 Paragraph margin
121A dw 0 Reserved
121C db 11 Number of tab stops in tab table
121D db 0 Number of decimal tabs
121E dw 5*180,10*180,15*180,20*180 Tab stops
1226 dw 25*180,30*180,35*180,40*180 (Must be in
122E dw 45*180,50*180,55*180 ascending order)
1234 dw 0,0,0,0,0,0,0,0 Room for 21 more
1244 dw 0,0,0,0,0,0,0,0
1254 dw 0,0,0,0,0
125E db 0 Reserved
COLDEF is used to define the default number of newspaper-style columns,
and the gutter width between them.
125F coldef db 1 One column means normal text
1260 dw 450 450/1800ths is .25"
As you move through a document, WordStar executes some of the dot commands,
like .RR ruler line commands, as they are encountered. As WordStar moves
forward through the text, the old ruler line is stored in memory so that it
can be restored when you move backwards over the .RR later. Other dot
commands work in a similar manner.
DSTKSZ is used to allocate storage for the dot commands. While you are
editing, WordStar puts a Dot-Limit indicator in the status line if you
use too many dot commands.
Dot Command Size
.RR 47
.RM .LM .LH .PL 1
.MT .MB 1
.PN 2
1262 dstksz dw 4000
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.
1264 inidir db TRUE Directory on
1265 dirsrt db TRUE Sort directory
1266 dspace db TRUE Display remaining space
1267 shosiz db TRUE Show size of each file
1268 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.
1269 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.
126A 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.
126B unone db FALSE Don't unerase single erasures
126C unsize dw 500 Unerase up to 500 characters
VMSIZE indicates the number of 128-byte records that can be read from
the disk for WordStar's messages and menus.
126E vmsize db 4 Four records (.5k byte)
126F 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.
1270 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.
1271 inifin db ' ' No options
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. STFILL
specifies what character to use to fill unused space in the status line.
127B inista db TRUE Display status line
127C stfill db ' ' Fill with blanks
When paragraphs are aligned and hyphen help is on, HYMAX
is used to determine when to hyphenate a word.
127D hymax db 5 Hyphenate when a word has 5 characters
still within the right margin
Memory for the hyphenator. The American hyphenator requires the overlay
size plus 100H bytes to run. Other versions may require more.
127E hymem db 29 Set for the American version
When WordStar asks a question that requires a Y for yes or N for no response,
YNCR indicates whether or not the user must push the RETURN key before
WordStar will accept it.
127F yncr db FALSE Don't wait for RETURN key
WordStar can index every word in a document as well as selected words and
phrases. IDXALL determines whether this is the default or not.
1280 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.
1281 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.
1282 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.
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.
1283 ctlnfl db TRUE
Set non-zero if ^H to be same as ^S instead of DEL.
1284 ctlhfl 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.
1285 casefl db 0
Set non-zero if DEL erases to left, zero to erase to right (like ^G).
1286 delflg db 0
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
1287 blkflg db 0ffh
Set non-zero if lines with soft carriage returns should not be added to
paragraphs for line spacing other than 1
1288 lspflg db 0
Set non-zero if the Esc key should work the same as ^K in dialog boxes.
1289 escflg db 0
Set zero if ^QX should go to the left side of the screen.
128A quxflg db 0ffh
Set non-zero if WS commands should work when cursor is at leftmost end of
pulldown menu bar
128B pulflg 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.
128C gpgflg db 0
Set non-zero to see the full directory of files when logging to another drive
or directory.
128D sdirfl db 0
128E 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.
1291 ahead db 0 Flush
Maximum size for the shorthand definitions. Should be optimized to
match actual usage since it reduces the amount of memory available
for text while editing and printing. The size of each definition
is equal to 5 plus the number of characters defined. If this value
is smaller than the size of the shorthand file (see SVFILE above),
only some of the definitions will be used. Setting it to zero
disables shorthand and makes the ESC key clear the screen instead.
Size of shorthand buffer in records (4 times 128 = 512 bytes)
1292 hanmax db 4
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
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.
1293 spflag db 0 Not swapping, personal is on work disk
UDMEM is the number of kbytes allocated to hold the user dictionary.
The minimum used is 2k. This is the amount held in ram. The actual
size of the dictionary is limited by disk space.
1294 udmem dw 2 Use minimum.
SPLMEM 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 SPLMEM to 0 disables the speller.
Normally, because of memory restrictions, the speller overlay and
dictionary and the thesaurus overlay and dictionary use the same
parts of memory for running (See MEMFLG).
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.
If the thesaurus memory is separate from the spelling memory, then
the proper amounts will be allocated for the thesaurus dictionary
automatically.
Set for minimum to use speller and thesaurus
1296 splmem dw 71
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.
Don't check 1-letter words
1298 spmin db 2
Two words in a row (e.g. the the) will be flagged as a misspelling if
CKDBL is set TRUE.
Check for double words
1299 ckdbl db TRUE
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.
Use fast mode (no display)
129A spintr db FALSE
When WordStar begins printing, InSet can be loaded. If you don't normally
print with graphics, you can set this flag to false.
Load InSet at print-time
129B iinset db TRUE
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.
File type string length PIX for inset
129C grphft db 4
129D db '.PIX'
When you type ^P* to insert a graphics tag, this is the directory mask
used to show file names of possible graphics files.
Show only .PIX files
12A1 grphmk db '????????PIX'
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
For example:
3 1, 4 becomes September 19, 1985
2/1/5 becomes 9/19/85
7 6 5 becomes 19 Sep 86
9:C becomes 14:27
B:C D becomes 2:27 PM
September 19, 1985 format
12AC fdate db 6
12AD db '3 1, 4'
12B3 db 0
2:27 PM format
12B4 ftime db 5
12B5 db 'B:C D'
12BA db 0,0
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.)
12BC dollar db 17
12BD db '--,---,---,---.99'
12CE db 0,0,0
Special characters
12D1 splchr db ',' Thousands separator for numbers
12D2 db '.' Decimal point for numbers & decimal tabbing
12D3 db 4 dup(0) Reserved
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.
12D7 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.
12D8 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.
For future use
12D9 emsmem db 0
12DA db 71 dup(0) Reserved
EXTRA is a large buffer area for general patching. Some versions of
the WINSTALL installation program use EXTRA.
Extra .5k of patching space
1321 extra db 512 dup(0)
UPPERCASE and LOWERCASE are a upper/lower case conversion tables. Each
character is either mapped to itself or the upper/lowercase equivalent.
0 1 2 3 4 5 6 7
1521 upcase db 000h,001h,002h,003h,004h,005h,006h,007h 0 .. 7
1529 db 008h,009h,00ah,00bh,00ch,00dh,00eh,00fh 8 .. F
1531 db 010h,011h,012h,013h,014h,015h,016h,017h 10 .. 17
1539 db 018h,019h,01ah,01bh,01ch,01dh,01eh,01fh 18 .. 1F
1541 db 020h,021h,022h,023h,024h,025h,026h,027h 20 .. 27
1549 db 028h,029h,02ah,02bh,02ch,02dh,02eh,02fh 28 .. 2F
1551 db 030h,031h,032h,033h,034h,035h,036h,037h 30 .. 37
1559 db 038h,039h,03ah,03bh,03ch,03dh,03eh,03fh 38 .. 3F
1561 db 040h,041h,042h,043h,044h,045h,046h,047h 40 .. 47
1569 db 048h,049h,04ah,04bh,04ch,04dh,04eh,04fh 48 .. 4F
1571 db 050h,051h,052h,053h,054h,055h,056h,057h 50 .. 57
1579 db 058h,059h,05ah,05bh,05ch,05dh,05eh,05fh 58 .. 5F
1581 db 060h,041h,042h,043h,044h,045h,046h,047h 60 .. 67
1589 db 048h,049h,04ah,04bh,04ch,04dh,04eh,04fh 68 .. 6F
1591 db 050h,051h,052h,053h,054h,055h,056h,057h 70 .. 77
1599 db 058h,059h,05ah,07bh,07ch,07dh,07eh,07fh 78 .. 7F
15A1 db 080h,09ah,045h,041h,08eh,041h,08fh,043h 80 .. 87
15A9 db 045h,045h,045h,049h,049h,049h,08eh,08fh 88 .. 8F
15B1 db 090h,092h,092h,04fh,099h,04fh,055h,055h 90 .. 97
15B9 db 059h,099h,09ah,09bh,09ch,09dh,09eh,09fh 98 .. 9F
15C1 db 041h,049h,04fh,055h,0a5h,0a5h,0a6h,04fh A0 .. A7
15C9 db 0a8h,0a9h,0aah,0abh,0ach,0adh,0aeh,0afh A8 .. AF
15D1 db 0b0h,0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h B0 .. B7
15D9 db 0b8h,0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh B8 .. BF
15E1 db 0c0h,0c1h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h C0 .. C7
15E9 db 0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh C8 .. CF
15F1 db 0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h D0 .. D7
15F9 db 0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh D8 .. DF
1601 db 0e0h,0e1h,0e2h,0e3h,0e4h,0e5h,0e6h,0e7h E0 .. E7
1609 db 0e8h,0e9h,0eah,0ebh,0ech,09dh,0eeh,0efh E8 .. EF
1611 db 0f0h,0f1h,0f2h,0f3h,0f4h,0f5h,0f6h,0f7h F0 .. F7
1619 db 0f8h,0f9h,0fah,0fbh,0fch,0fdh,0feh,0ffh F8 .. FF
0 1 2 3 4 5 6 7
1621 locase db 000h,001h,002h,003h,004h,005h,006h,007h 0 .. 7
1629 db 008h,009h,00ah,00bh,00ch,00dh,00eh,00fh 8 .. F
1631 db 010h,011h,012h,013h,014h,015h,016h,017h 10 .. 17
1639 db 018h,019h,01ah,01bh,01ch,01dh,01eh,01fh 18 .. 1F
1641 db 020h,021h,022h,023h,024h,025h,026h,027h 20 .. 27
1649 db 028h,029h,02ah,02bh,02ch,02dh,02eh,02fh 28 .. 2F
1651 db 030h,031h,032h,033h,034h,035h,036h,037h 30 .. 37
1659 db 038h,039h,03ah,03bh,03ch,03dh,03eh,03fh 38 .. 3F
1661 db 040h,061h,062h,063h,064h,065h,066h,067h 40 .. 47
1669 db 068h,069h,06ah,06bh,06ch,06dh,06eh,06fh 48 .. 4F
1671 db 070h,071h,072h,073h,074h,075h,076h,077h 50 .. 57
1679 db 078h,079h,07ah,05bh,05ch,05dh,05eh,05fh 58 .. 5F
1681 db 060h,061h,062h,063h,064h,065h,066h,067h 60 .. 67
1689 db 068h,069h,06ah,06bh,06ch,06dh,06eh,06fh 68 .. 6F
1691 db 070h,071h,072h,073h,074h,075h,076h,077h 70 .. 77
1699 db 078h,079h,07ah,07bh,07ch,07dh,07eh,07fh 78 .. 7F
16A1 db 080h,081h,082h,083h,084h,085h,086h,087h 80 .. 87
16A9 db 088h,089h,08ah,08bh,08ch,08dh,084h,086h 88 .. 8F
16B1 db 090h,091h,091h,093h,094h,095h,096h,097h 90 .. 97
16B9 db 098h,094h,081h,09bh,09ch,0edh,09eh,09fh 98 .. 9F
16C1 db 0a0h,0a1h,0a2h,0a3h,0a4h,0a4h,0a6h,0a7h A0 .. A7
16C9 db 0a8h,0a9h,0aah,0abh,0ach,0adh,0aeh,0afh A8 .. AF
16D1 db 0b0h,0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h B0 .. B7
16D9 db 0b8h,0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh B8 .. BF
16E1 db 0c0h,0c1h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h C0 .. C7
16E9 db 0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh C8 .. CF
16F1 db 0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h D0 .. D7
16F9 db 0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh D8 .. DF
1701 db 0e0h,0e1h,0e2h,0e3h,0e4h,0e5h,0e6h,0e7h E0 .. E7
1709 db 0e8h,0e9h,0eah,0ebh,0ech,0edh,0eeh,0efh E8 .. EF
1711 db 0f0h,0f1h,0f2h,0f3h,0f4h,0f5h,0f6h,0f7h F0 .. F7
1719 db 0f8h,0f9h,0fah,0fbh,0fch,0fdh,0feh,0ffh F8 .. FF
0 1 2 3 4 5 6 7
1721 colate db 042h,043h,044h,045h,046h,047h,048h,049h 0 .. 7
1729 db 04ah,04bh,04ch,04dh,04eh,04fh,050h,051h 8 .. F
1731 db 052h,053h,054h,055h,056h,057h,058h,059h 10 .. 17
1739 db 05ah,05bh,05ch,05dh,05eh,05fh,060h,061h 18 .. 1F
1741 db 000h,062h,063h,064h,065h,066h,067h,068h 20 .. 27
1749 db 069h,06ah,06bh,06ch,000h,06eh,06fh,070h 28 .. 2F
1751 db 001h,002h,003h,004h,005h,006h,007h,008h 30 .. 37
1759 db 009h,00ah,071h,072h,073h,074h,075h,076h 38 .. 3F
1761 db 077h,00bh,014h,015h,018h,019h,01dh,01eh 40 .. 47
1769 db 01fh,020h,025h,026h,027h,028h,029h,02bh 48 .. 4F
1771 db 031h,032h,033h,034h,036h,037h,03ch,03dh 50 .. 57
1779 db 03eh,03fh,041h,078h,079h,07ah,07bh,07ch 58 .. 5F
1781 db 07dh,00bh,014h,015h,018h,019h,01dh,01eh 60 .. 67
1789 db 01fh,020h,025h,026h,027h,028h,029h,02bh 68 .. 6F
1791 db 031h,032h,033h,034h,036h,037h,03ch,03dh 70 .. 77
1799 db 03eh,03fh,041h,07eh,07fh,080h,081h,082h 78 .. 7F
17A1 db 016h,03bh,01ch,00ch,010h,00dh,012h,017h 80 .. 87
17A9 db 01ch,01ah,01bh,021h,022h,023h,010h,011h 88 .. 8F
17B1 db 01ch,013h,013h,02ch,030h,02dh,038h,039h 90 .. 97
17B9 db 040h,030h,03bh,084h,085h,086h,087h,088h 98 .. 9F
17C1 db 00eh,024h,02eh,03ah,02ah,02ah,00fh,02fh A0 .. A7
17C9 db 089h,08ah,08bh,08ch,08dh,08eh,08fh,090h A8 .. AF
17D1 db 091h,092h,093h,094h,095h,096h,097h,098h B0 .. B7
17D9 db 099h,09ah,09bh,09ch,09dh,09eh,09fh,0a0h B8 .. BF
17E1 db 0a1h,0a2h,0a3h,0a4h,0a5h,0a6h,0a7h,0a8h C0 .. C7
17E9 db 0a9h,0aah,0abh,0ach,0adh,0aeh,0afh,0b0h C8 .. CF
17F1 db 0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h,0b8h D0 .. D7
17F9 db 0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh,0c0h D8 .. DF
1801 db 0c1h,035h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h E0 .. E7
1809 db 0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh E8 .. EF
1811 db 0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h F0 .. F7
1819 db 0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh F8 .. FF
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.
Number of translation entries
1821 kbxlat db 0
1822 dw 0,0
1826 dw 0,0
182A dw 0,0
Line numbering control
182E lnmch dw 7*180 Left margin line at .7"
1830 db 0bah Left margin character, double vertical bar
1831 dw 74*180 Right margin line at 7.4"
1833 db 0b3h Right margin character, single vertical bar
1834 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.a.9.A.9.9.9.9'. A zero byte indicates the end of the string.
1836 ipfrmt db '1.1.1.1.1.1.1.1'
1845 db 31-15 dup(0)
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).
1855 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.
1856 proutl db FALSE Set for normal numbering
Print control screen characters
Since control can't be edited, entire print control is displayed
1857 pbrack db '<' Print control display leading char
1858 db '>' Print control display trailing char
Index screen characters
1859 ibrack db '{' Index entry display leading char
185A db '}' Index entry display trailing char
185B db 15 Length of displayed index entry
Footnote/endnote screen characters
185C nbrack db '[' Note display leading char
185D db ']' Note display trailing character
185E db 15 Length of displayed note text
Initial paragraph style name
185F parsty db 'Body text ' 24 characters
Line numbering font and style
1877 lnfont dw 180 Normal font for ^PN. Width
1879 dw 240 Height
187B dw 0 Typestyle
187D dw 0 Attribute
Footnote/endnote font and style
(note text attributes are defaulted to 0)
187F fnfont dw 180 Normal font for ^PN. Width
1881 dw 240 Height
1883 dw 0 Typestyle
1885 db 0 Default ruler to use
1886 db 0 Default color to use
1887 enfont dw 180 Normal font for ^PN. Width
1889 dw 240 Height
188B dw 0 Typestyle
188D db 0 Default ruler to use
188E db 0 Default color to use
Footnote tag type:
1 for upper case alphabet, 2 for lower case alphabet, 3 for numeric
4 for repeating characters
188F fntyp db 3
0 for reset at each page break, 1 for increment across page breaks
1890 db 0
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.
1891 fnrch db 2 Count
1892 db '*','~',0,0 Set for *,~,**,~~,***,~~~
1896 db 0,0,0,0
Endnote tag type
1 for upper case alphabet, 2 for lower case alphabet, 3 for numeric
4 for repeating characters
189A entyp db 3
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.
189B enrch db 2 Count
189C db '#','@',0,0 Set for #,@,##,@@,###,@@@
18A0 db 0,0,0,0
Footnote in-text reference mark control:
00H - normal, 08H - underlined, 10H - subscripted, 20H - superscripted
40H - bold, 80H - italic
18A4 fntxt dw 20h
18A6 db 0 Lead character
18A7 db 0 Trailing character
Footnote in-note reference mark control
18A8 dw 0h Attributes
18AA db 0 Lead character
18AB db '.' Trailing character
Endnote in-text reference mark control
18AC dw 20h Attributes
18AE db 0 Lead character
18AF db 0 Trailing character
Endnote in-note reference mark control
18B0 dw 0 Attributes
18B2 db '(' Lead character
18B3 db ')' Trailing character
Footnote separator between body text and footnote text.
18B4 fnsep db 20
18B5 db 20 dup ('-') 20-wide line
18C9 db 60 dup (0,0,0) Spare
Footnote continuation text.
197D fncntu db 15 Length
197E db '...Continued...'
198D db 60 dup (0,0,0) Spare
Footnote position. If zero, place footnote against bottom of page, right
above footer. If 1, place footnote right below body text.
1A41 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.
Page break if 8 lines of footnote text won't fit
1A42 fnrun db 8
Footnote VMI settings
1A43 fnvmi dw 1440/6 VMI between notes
1A45 dw 1440/6 VMI for each footnote line
1A47 dw 1440/6 VMI between text and FNSEP
1A49 dw 1440/6 VMI between FNSEP and first note
Endnote VMI settings
1A4B envmi dw 1440/6 VMI between notes
1A4D 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.
1A4F wratio db 128 LTOP*256/(LTOP+LBOT)
Ask for document type when opening another window.
1A50 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.
1A51 kspeed label word Typing repeat hold-off and speed
1A51 db 0 1st byte: 0=30 cps, ..., 1FH=2 cps
1A52 db 1 2nd byte: 0=250 msec, 1=500, 2=750, 3=1000
1A53 db 5 For deletions
1A54 db 1
1A55 db -1 No change upon exiting
1A56 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.
1A57 cursiz dw 0ffffh No cursor size upon entering
1A59 dw 0ffffh No cursor for overtype mode
1A5B 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.
1A5D 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).
1A5F 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.
1A61 mfdsiz db 100 Number of Menu font definitions
1A62 db ?
1A63 famsiz db 20 Number of font family member definitions
1A64 db ?
1A65 pstsiz db 4 Number of proportional space data tables
1A66 db ?
1A67 lrusiz db 16 Number of 256 byte PDF record buffers
1A68 STYSIZ db 8 Number of 512 byte block buffers
FNSIZE and ENSIZE indicates the number of 128-byte records is to be used
footnote and endnote accumulation before writing them to disk
1A69 fnsize db 8 Size of footnote accumulation buffer
1A6A 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.
1A6B 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.
1A6D addrun db ' ~',0 For TelMerge
1A70 db (32-($-addrun)) dup(0)
1A8D db ' ~',0 For MailList
1A90 db (32-($-addrun-32)) dup(0)
Default character set (code page) code.
1AAD codepg dw 437 Default to U.S.. Other option is 850
1AAF dbunitp db 'pt' Default units, scalable font point size
1AB1 dbunitc db '" ' Default units, scalable font pitch
User Area date
1AB3 udate db 01,16,90