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 '' ; Begin block 025C 00 db 0 ; 1 spare 025D 03 kblock db 3 ; Three chars 025E 3C 4B 3E db '' ; 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