mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
1877 lines
67 KiB
Plaintext
1877 lines
67 KiB
Plaintext
;
|
||
;In order to minimize changes to the locations of User area
|
||
;data, the origin is forced here to 180H above the start of
|
||
;the TPA.
|
||
;
|
||
ORG TPA+180H ;Always start user area in same spot
|
||
|
||
;
|
||
;This jump table provides commonly used subroutines for use
|
||
;by custom subroutines in the User areas. It must not be
|
||
;modified in any way.
|
||
;
|
||
|
||
;
|
||
;To output a character to the terminal from within your
|
||
; custom subroutines, call DISPLA with the character
|
||
; to be output in the accumulator (A register). All
|
||
; registers will be preserved.
|
||
;
|
||
0280 DISPLA::
|
||
0280 C3 0CB6 JMP CO ;Display character routine
|
||
|
||
;
|
||
;To output a string to the terminal that is in the normal
|
||
; user area format (count followed by bytes), call
|
||
; STRING with HL pointing to the string to be output.
|
||
; Upon returning, HL points to the byte following the
|
||
; string.
|
||
;
|
||
0283 STRING::
|
||
0283 C3 17C6 JMP STROUT ;Display string routine
|
||
|
||
;
|
||
;To use WordStar's standard list output drivers, call the
|
||
; following subroutines. In all cases, all registers
|
||
; except for the PSW are unchanged by the subroutines.
|
||
;
|
||
0286 LSTOUT: ;Prints char in A.
|
||
0286 C3 0000* JMP LO
|
||
|
||
0289 LSOSTA: ;Returns output status to A (0 if busy).
|
||
0289 C3 0000* JMP LOSTAT
|
||
|
||
028C LSTIN: ;Inputs char from printer to A. (Only
|
||
028C C3 0000* JMP LI ;works if custom ULISTI exists.)
|
||
|
||
028F LSISTA: ;Returns input status to A (0 if no char).
|
||
028F C3 0000* JMP LISTAT ;(Only works if custom ULISTA.)
|
||
|
||
0292 LSTRNG: ;Send string to list device. (HL points
|
||
|
||
0292 C3 0000* JMP LSTSTR ;to string, count byte first, just like
|
||
;console strings).
|
||
|
||
;
|
||
;This flag is used if WordStar is on a multi-user system. It should
|
||
;be set to zero on single-user systems. Each bit of MPMFLG is used
|
||
;as follows:
|
||
;
|
||
; Bit Meaning
|
||
;
|
||
;
|
||
; 0 If 0, WordStar will issue a SYSTEM RESET when logging
|
||
; onto a removable disk drive. If 1, no reset will
|
||
; occur, and the operating system itself must handle
|
||
; any disk swapping.
|
||
;
|
||
; 1 If 1, users can share documents. Before opening a
|
||
; document to edit, WordStar will check to see if temporary
|
||
; files with that document name (e.g. FILENAME.$A$)
|
||
; already exist. If such files exist, WordStar will open
|
||
; the document as a protected document, preventing any
|
||
; changes to it. If 0, WordStar will delete existing
|
||
; temporary files when opening the document for editing.
|
||
;
|
||
; 2 If 1, users can share printer. MP/M function calls are
|
||
; issued to attach and detach the list device. If 0,
|
||
; the printer is assumed to be always attached.
|
||
;
|
||
; 3 If 1, WordStar will issue frequent MP/M "dispatch to
|
||
; next task" function calls to assure that multiple users
|
||
; have balanced access to the computer. If 0, WordStar
|
||
; assumes that only one user is on the computer at a time.
|
||
; If the operating system itself can load share adequately
|
||
; (such as MP/M 8/16 systems), set this bit to 0.
|
||
;
|
||
; 4-6 Reserved.
|
||
;
|
||
; 7 If 1, TurboDOS 1.3 operating system. WordStar will not
|
||
; check the disk drive write protect vector, will not check
|
||
; printer busy status, and will issue the TurboDos printer
|
||
; detach call when done printing. If 0, CP/M or MP/M.
|
||
; WordStar does not support TurboDos 1.2.
|
||
;
|
||
;If you are using MP/M, bits 0, 1 and 2 should all be set to 1. Bit 3
|
||
;should be set for older versions of MP/M. If you are running on a
|
||
;networked system, only bit 1 should be set. If you are using TurboDos
|
||
;1.3 in a multi-user environment, bits 1 and 7 should be set. If you
|
||
;are using single-user TurboDos, only bit 7 should be set.
|
||
;
|
||
0295 MPMFLG::
|
||
0295 00 DB 0 ;Zero for single-user systems
|
||
|
||
0296 00 DB 0 ;Reserved
|
||
|
||
;
|
||
;SHARE specifies how WordStar will handle two users in a shared file
|
||
;system who attempt to edit the same file. If 0, the second user
|
||
;will be denied access to the file. If 1, the second user can
|
||
;view as much of the file as can be loaded into memory, but he
|
||
;cannot modify the file.
|
||
;
|
||
0297 SHARE::
|
||
0297 01 DB 1 ;Allow viewing (protected edit)
|
||
|
||
0298 00 00 00 DB 0,0,0 ;Reserved
|
||
|
||
;
|
||
;The function key table allows you to program any function keys that
|
||
;your terminal supports into one or more other keystrokes. Note that
|
||
;on many terminals, the function keys generate a sequence of characters
|
||
;where the first character is a control code. Since WordStar probably
|
||
;uses this same code for one its commands, a timer is used to determine
|
||
;when the "burst" of characters from the function key is done.
|
||
;This works because the terminal will usually send the function
|
||
;key characters at close to full baud rate. At 9600 baud, each character
|
||
;takes 1/960 of a second to send, or close to one millisecond. That
|
||
;means that three characters would take approximately three milliseconds.
|
||
;There is no way that even the fastest human typist could type that
|
||
;fast! Therefore, this method will usually work.
|
||
;
|
||
;Each function key in the table below is represented by two strings.
|
||
;The first describes the "burst" from the key. The second is what it
|
||
;should be translated into. You may not use string indirections in
|
||
;this table (size of -1 followed by address).
|
||
;
|
||
;The end of the function key table is indicated when the size of the
|
||
;function key string is zero. If you have more function keys than will
|
||
;fit, you can put a continuation address after the zero to point to more
|
||
;table. The table at that address must be the same format as this
|
||
;one. No continuation is indicated by an address of zero.
|
||
;
|
||
;One character "bursts" will not work here. If you need to translate
|
||
;a single character into something else, use the user console input
|
||
;routine UCONI.
|
||
;
|
||
;Warning! Terminals or computers that have their own type-ahead
|
||
;buffering may cause problems with this approach since it will be more
|
||
;likely that characters other than just function keys will be "burst"
|
||
;into WordStar by it.
|
||
;
|
||
|
||
029B FUNDLY::
|
||
029B 00 DB 0 ;Milliseconds of delay between characters
|
||
;of function key burst (if zero, no
|
||
;function keys are implemented). See
|
||
;section on delays below before adjusting
|
||
;FUNDLY for your system.
|
||
|
||
029C 01 DB CTRLA ;Character that starts each burst
|
||
;(set to 0FFh to disable)
|
||
|
||
029D FUNTBL::
|
||
029D 03 DB 3 ;Three chars in burst
|
||
029E 01 40 0D DB CTRLA,'@',CR ;Function key 1
|
||
02A1 02 DB 2 ;Two chars in replacement
|
||
02A2 0B 42 DB CTRLK,'B' ;Mark beginning of block
|
||
|
||
02A4 03 DB 3
|
||
02A5 01 41 0D DB CTRLA,'A',CR ;Function key 2
|
||
02A8 02 DB 2
|
||
02A9 0B 4B DB CTRLK,'K' ;Mark end of block
|
||
|
||
02AB 03 DB 3
|
||
02AC 01 42 0D DB CTRLA,'B',CR ;Function key 3
|
||
02AF 02 DB 2
|
||
02B0 0B 43 DB CTRLK,'C' ;Copy marked block
|
||
|
||
02B2 03 DB 3
|
||
02B3 01 43 0D DB CTRLA,'C',CR ;Function key 4
|
||
02B6 02 DB 2
|
||
02B7 0B 56 DB CTRLK,'V' ;Move marked block
|
||
|
||
02B9 03 DB 3
|
||
02BA 01 44 0D DB CTRLA,'D',CR ;Function key 5
|
||
02BD 02 DB 2
|
||
02BE 0B 59 DB CTRLK,'Y' ;Delete marked block
|
||
|
||
02C0 03 DB 3
|
||
02C1 01 45 0D DB CTRLA,'E',CR ;Function key 6
|
||
02C4 02 DB 2
|
||
02C5 11 46 DB CTRLQ,'F' ;Find string
|
||
|
||
02C7 03 DB 3
|
||
02C8 01 46 0D DB CTRLA,'F',CR ;Function key 7
|
||
02CB 02 DB 2
|
||
02CC 11 41 DB CTRLQ,'A' ;Search and replace
|
||
|
||
02CE 03 DB 3
|
||
02CF 01 47 0D DB CTRLA,'G',CR ;Function key 8
|
||
02D2 01 DB 1
|
||
02D3 0C DB CTRLL ;Repeat last find or replace again
|
||
|
||
02D4 03 DB 3
|
||
02D5 01 48 0D DB CTRLA,'H',CR ;Function key 9
|
||
02D8 02 DB 2
|
||
02D9 0B 44 DB CTRLK,'D' ;Save document
|
||
|
||
02DB 03 DB 3
|
||
02DC 01 49 0D DB CTRLA,'I',CR ;Function key 10
|
||
02DF 02 DB 2
|
||
02E0 0B 51 DB CTRLK,'Q' ;Abandon editing
|
||
|
||
02E2 03 DB 3
|
||
02E3 01 4A 0D DB CTRLA,'J',CR ;Function key 11
|
||
02E6 06 DB 6
|
||
02E7 11 46 10 DB CTRLQ,'F',CTRLP ;Find end of paragraph
|
||
02EA 0D 0D 0D DB CR,CR,CR
|
||
|
||
02ED 03 DB 3
|
||
02EE 01 4B 0D DB CTRLA,'K',CR ;Function key 12
|
||
02F1 08 DB 8
|
||
02F2 11 46 10 DB CTRLQ,'F',CTRLP ;Find beginning of paragraph
|
||
02F5 0D 0D 42 0D DB CR,CR,'B',CR,CTRLD
|
||
02F9 04
|
||
|
||
02FA 00 DB 0 ;End of table
|
||
02FB 0000 DW 0 ;No continuation
|
||
|
||
REPT 128-($-FUNTBL) ;Allow 128 bytes for table
|
||
DB 0
|
||
ENDM
|
||
|
||
031D 00 00 DB 0,0 ;Reserved
|
||
|
||
;
|
||
; 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, WID) 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. The default user area is
|
||
; set up for this example installation.
|
||
;
|
||
|
||
;
|
||
;Video screen height, width, and wrap-around parameters are required.
|
||
;
|
||
031F HITE::
|
||
031F 18 DB 24 ;Must be exact screen height in lines.
|
||
0320 WID::
|
||
0320 50 DB 80 ;Must be <= exact screen width in columns.
|
||
0321 WRAP::
|
||
0321 FF DB TRUE ;Indicates if terminal wraps around to next
|
||
;line if a character is displayed in WIDth
|
||
;column of screen (set FALSE if it doesn't)
|
||
|
||
0322 XONOFF::
|
||
0322 FF DB TRUE ;TRUE if XON/XOFF protocol to be used for
|
||
;the CRT terminal
|
||
|
||
0323 SCROLL::
|
||
0323 14 DB 20 ;Number of columns that are horizontally
|
||
;scrolled when cursor moves beyond right
|
||
;or left side of screen.
|
||
|
||
0324 DIRSIZ::
|
||
0324 05 DB 5 ;Number of lines available for directory
|
||
;at bottom of screen. If zero, no directory.
|
||
|
||
0325 0B DB 11 ;Larger directory for document selection
|
||
|
||
;
|
||
;Delete Display 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.
|
||
;
|
||
0326 DELSTR::
|
||
0326 03 DB 3 ;Number of chars in string
|
||
0327 44 45 4C DB 'DEL' ;What is displayed
|
||
032A 00 00 DB 0,0 ;Spare bytes
|
||
|
||
;
|
||
;Soft and End of Line Hyphen Display String
|
||
;
|
||
;In order to distinguish soft hyphens from normal hyphens in the text,
|
||
;WordStar will substitute the following string when one is encountered.
|
||
;
|
||
|
||
032C SHYSTR::
|
||
032C 01 DB 1 ;Number of chars in string
|
||
032D 3D DB '=' ;What is displayed
|
||
032E 00 00 00 00 DB 0,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.
|
||
;
|
||
|
||
0332 BBLOCK::
|
||
0332 03 DB 3 ;Three chars
|
||
0333 3C 42 3E DB '<B>' ;Begin block
|
||
0336 00 DB 0 ;1 spare
|
||
;
|
||
0337 KBLOCK::
|
||
0337 03 DB 3 ;Three chars
|
||
0338 3C 4B 3E DB '<K>' ;End block
|
||
033B 00 DB 0 ;1 spare
|
||
|
||
;
|
||
;Special character used when displaying soft spaces with ^OB.
|
||
;
|
||
033C SOFTSP::
|
||
033C 2B DB '+' ;Soft spaces show up as plus signs
|
||
|
||
033D 00 00 00 00 DB 0,0,0,0,0 ;Reserved
|
||
0341 00
|
||
|
||
;
|
||
;The following string is used at sign-on to describe the type
|
||
;of terminal being used by WordStar. Up to 40 bytes are available
|
||
;for the string, including its null terminator.
|
||
;
|
||
0342 CRTID::
|
||
0342 55 6E 69 6E DB 'Uninstalled Terminal',CR,LF,0 ;Terminal name
|
||
0346 73 74 61 6C
|
||
034A 6C 65 64 20
|
||
034E 54 65 72 6D
|
||
0352 69 6E 61 6C
|
||
0356 0D 0A 00
|
||
0359 20 20 20 20 DB ' ' ;Extra room
|
||
035D 20 20 20 20
|
||
0361 20 20 20 20
|
||
0365 20 20 20 20
|
||
0369 20
|
||
|
||
;
|
||
;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 this sample
|
||
; installation by sending:
|
||
;
|
||
; ESCAPE, '=',
|
||
; line number plus 20H,
|
||
; column number plus 20H.
|
||
;
|
||
036A CLEAD1:: ;Initial lead-in string
|
||
036A 02 DB 2 ;Number of characters
|
||
036B 1B DB ESC ;First character
|
||
036C 3D DB '=' ;Second character
|
||
036D 00 00 DB 0,0 ;Space for two more characters
|
||
|
||
036F CLEAD2:: ;Sent between line and column
|
||
036F 00 DB 0 ;Number of characters, none in our
|
||
0370 00 DB 0 ;example. First character
|
||
0371 00 00 00 DB 0,0,0 ;Space for three more characters
|
||
|
||
0374 CTRAIL:: ;Terminating string
|
||
0374 00 DB 0 ;Number of characters
|
||
0375 00 00 00 00 DB 0,0,0,0 ;Space for four characters
|
||
|
||
0379 CB4LFG:: ;Send column before line?
|
||
0379 00 DB 0 ;Set non-zero to send column first
|
||
|
||
037A CUROFF:: ;Cursor offsets
|
||
|
||
;Offset to add to line
|
||
037A 20 DB 20H ;Add 20H to line number (0 is top
|
||
;line of screen before offset)
|
||
|
||
;Offset to add to column
|
||
037B 20 DB 20H ;Add 20H to column number (0 is
|
||
;left-most column of screen
|
||
;before offset)
|
||
|
||
037C ASCUR:: ;Binary/ASCII digit flag
|
||
037C 00 DB 0 ;0 to send binary line and column
|
||
;2 to send 2-digit ASCII numbers
|
||
;3 to send 3-digit ASCII numbers
|
||
|
||
;
|
||
;Provision for positioning cursor by user-coded
|
||
; subroutine, instead of under control of above
|
||
; items. For use in exceptional cases only.
|
||
;
|
||
;Insert a JMP instruction to your subroutine in the
|
||
; following three bytes. Whenever the first byte
|
||
; is non-NOP, this location will be called to
|
||
; position the cursor, and the above cursor patch
|
||
; items will be ignored.
|
||
;
|
||
;Your subroutine will receive the line number in the L
|
||
; register (0 = top line), the column number in
|
||
; the H register (0 = left-most column), and the
|
||
; video attributes at the next typing position in
|
||
; the A register. Attributes are represented as
|
||
; described for the VIDATT routine, except that the
|
||
; warning/error bit indicates double-strike.
|
||
;
|
||
;Your subroutine may alter all registers.
|
||
;
|
||
037D UCRPOS::
|
||
037D 00 NOP ;Normally NOP, or JMP to your cursor
|
||
037E 00 NOP ;positioning routine.
|
||
037F C9 RET
|
||
|
||
;
|
||
;Displaying characters on some screens can be significantly faster if the
|
||
;cursor can be turned off.
|
||
;
|
||
0380 ONCUR:: ;Turn cursor on by changing to jump
|
||
0380 00 NOP ;to custom subroutine.
|
||
0381 00 NOP ; L = current cursor line
|
||
0382 C9 RET ; H = cursor column
|
||
|
||
0383 OFFCUR:: ;Turn cursor off by changing to jump
|
||
0383 00 NOP ;to custom subroutine.
|
||
0384 00 NOP ; L = current cursor line
|
||
0385 C9 RET ; H = cursor column
|
||
|
||
;
|
||
;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 WordStar 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 (dim for the example
|
||
; terminal), and that the cursor is at the home position
|
||
; (upper left hand corner).
|
||
;
|
||
0386 ERASCR::
|
||
0386 03 DB 3 ;Number of characters
|
||
0387 1A DB CTRLZ ;First character (clear screen)
|
||
0388 1B 29 DB ESC,')' ;Additional characters (dim)
|
||
038A 00 00 00 00 DB 0,0,0,0,0,0 ;Room for 13 more
|
||
038E 00 00
|
||
0390 00 00 00 00 DB 0,0,0,0,0,0,0
|
||
0394 00 00 00
|
||
|
||
;
|
||
;Backspace one character string. If this function is not
|
||
; available, leave the first byte zero, and WordStar
|
||
; will use cursor addressing to backspace.
|
||
;
|
||
0397 BAKSPC::
|
||
0397 01 DB 1 ;Number of characters
|
||
0398 08 DB BS ;First character
|
||
0399 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 WordStar
|
||
; will perform the function more slowly via software.
|
||
;
|
||
039C ERAEOL::
|
||
039C 02 DB 2 ;Number of characters
|
||
039D 1B DB ESC ;First character
|
||
039E 54 00 00 DB 'T',0,0 ;Additional characters
|
||
|
||
;
|
||
;Erase to end of screen string. If this function is not
|
||
; available, leave the first byte zero, and WordStar
|
||
; will perform the function more slowly via software.
|
||
;
|
||
03A1 ERAEOS::
|
||
03A1 02 DB 2 ;Number of characters
|
||
03A2 1B DB ESC ;First character
|
||
03A3 59 00 00 DB 'Y',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
|
||
; WordStar will perform the function more slowly
|
||
; via software.
|
||
;
|
||
03A6 LINDEL::
|
||
03A6 02 DB 2 ;Number of characters
|
||
03A7 1B DB ESC ;First character
|
||
03A8 52 00 00 DB 'R',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 WordStar will perform
|
||
; the function more slowly via software.
|
||
;
|
||
03AB LININS::
|
||
03AB 02 DB 2 ;Number of characters
|
||
03AC 1B DB ESC ;First character
|
||
03AD 45 00 00 DB 'E',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.
|
||
;
|
||
03B0 LINMAX::
|
||
03B0 05 DB 5 ;Five lines
|
||
|
||
;
|
||
;Terminal initialization string. A string of bytes which
|
||
; will be sent to the terminal at the beginning of a
|
||
; session. See also INISUB.
|
||
;
|
||
03B1 TRMINI::
|
||
03B1 FF DB -1 ;Number of bytes
|
||
03B2 0386 DW ERASCR ;Use extension mechanism (-1 as byte
|
||
03B4 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.
|
||
;
|
||
03B6 TRMUNI::
|
||
03B6 02 DB 2 ;Number of bytes
|
||
03B7 1B 28 DB ESC,'('
|
||
03B9 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.
|
||
;
|
||
03BB INISUB::
|
||
03BB 00 NOP ;Normally NOP, or JMP to
|
||
03BC 00 NOP ;your subroutine
|
||
03BD C9 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 WordStar. See UCRPOS comments.
|
||
;
|
||
03BE UNISUB::
|
||
03BE 00 NOP ;Normally NOP, or JMP to
|
||
03BF 00 NOP ;your subroutine
|
||
03C0 C9 RET
|
||
|
||
;
|
||
;Video attributes are used in various places on the WordStar display.
|
||
;The following table describes what each bit of an attribute byte
|
||
;means when used within WordStar. Note that when no bit is set, that
|
||
;is the normal condition.
|
||
;
|
||
; Bit WordStar Usage
|
||
;
|
||
; none Normal text
|
||
; 0 Strike-out text
|
||
; 1 Warning & error messages
|
||
; 2 Marked block of text
|
||
; 3 Underlined text
|
||
; 4 Subscripted text
|
||
; 5 Superscripted text
|
||
; 6 Bold text
|
||
; 7 Italic (or ribbon color)
|
||
;
|
||
;For this sample installation, the following translation of attribute
|
||
;bits into video conditions could be used.
|
||
;
|
||
; WordStar Example
|
||
;
|
||
; Normal Dim
|
||
; Warning Blink
|
||
; Marked Inverse
|
||
; Underlined Underline
|
||
; Subscripted Bright
|
||
; Superscripted Bright
|
||
; Highlighted Bright
|
||
;
|
||
;Because each terminal uses such diverse strings to change video
|
||
;attributes, you must provide a custom subroutine at VIDATT to
|
||
;build the proper one for yours. You may be able to take advantage
|
||
;of the fact that many terminals use a binary method to encode the
|
||
;attributes. If you do not wish to use any video attributes, put
|
||
;the customary two NOP's followed by a RET at VIDATT to disable it.
|
||
;
|
||
;The following implementation is for this sample installation. On that
|
||
;terminal the following sequences are required for the different
|
||
;attributes in our table:
|
||
;
|
||
; Attribute Sequence Screen Space
|
||
;
|
||
; Dim ESC ) NO
|
||
; Bright ESC ( NO
|
||
; Normal video ESC G 0 YES
|
||
; Blink ESC G 2 YES
|
||
; Inverse ESC G 4 YES
|
||
; Underline ESC G 8 YES
|
||
; Underline, blink ESC G : YES
|
||
; Underline, inverse ESC G < YES
|
||
; Underline, inverse, blink ESC G > YES
|
||
;
|
||
;However, since the ESC G attributes take up screen space, we cannot
|
||
;use them with WordStar. Therefore, all attributes are highlighted
|
||
;using bright.
|
||
|
||
|
||
;
|
||
;The VIDATT subroutine is used to change video attributes on the screen.
|
||
;On entry, WordStar will supply the attributes that are on in the C
|
||
;register. You must translate them into whatever your particular terminal
|
||
;requires. The following implementation is a sample installation.
|
||
;This subroutine is called only when a video attribute changes.
|
||
;
|
||
03C1 VIDATT:: ;Change to NOP, NOP, RET if not needed
|
||
03C1 21 03D2 LXI H,vdim
|
||
03C4 0C INR C ;Normal video?
|
||
03C5 0D DCR C
|
||
03C6 CA 0283 JZ STRING
|
||
;
|
||
03C9 21 03CF LXI H,vbrite ;Highlight everything else
|
||
03CC C3 0283 JMP STRING
|
||
;
|
||
03CF 02 1B 28 vbrite: DB 2,ESC,'(' ;Bright
|
||
03D2 02 1B 29 vdim: DB 2,ESC,')' ;Dim
|
||
|
||
REPT 128-($-VIDATT) ;Allow total of 128 bytes for VIDATT
|
||
DB 0
|
||
ENDM
|
||
|
||
;
|
||
;Normally the status line, text and directories 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.
|
||
;
|
||
0441 00 BRITE:: DB 0 ;Don't reverse
|
||
;0FFH = normal text bright
|
||
|
||
;
|
||
;Delays are executed after various terminal functions, before
|
||
; the next character is sent to the terminal, to
|
||
; allow response time required by certain terminals
|
||
; when operating at a high baud rate. Set to a
|
||
; larger value if you suffer a loss of characters
|
||
; after a terminal function.
|
||
;
|
||
;Note that an additional delay FUNDLY is located near the
|
||
; function key table FUNTBL above.
|
||
;
|
||
;Each delay is approximately the number of milliseconds
|
||
; on a 4 MHz Z80 processor, about twice as long on
|
||
; a 2 MHz 8080 (in other words, divide delay values
|
||
; in half for a 2 MHz processor to achieve the same
|
||
; results).
|
||
;
|
||
0442 DELCUS::
|
||
0442 00 DB 0 ;No delay after cursor positioning
|
||
;(if your terminal works better with
|
||
;5 milliseconds of delay, you would
|
||
;put a "5" here instead)
|
||
|
||
0443 DELMIS:: ;Miscellaneous screen delays
|
||
0443 00 DB 0 ;No delay
|
||
|
||
0444 DXOFF:: ;If XON/XOFF used for terminal, sometimes
|
||
0444 07D0 DW 2000 ;a legitimate ^S will be interpreted as an
|
||
;XOFF character. DXOFF is used to time out
|
||
;so that the terminal will continue.
|
||
|
||
0446 DLONG:: ;Long delays (like at sign-on)
|
||
0446 07D0 DW 2000 ;2 seconds = 2,000 milliseconds
|
||
;(1000 if 8080)
|
||
|
||
0448 DMED:: ;Medium delays (like at P, O, or K menus)
|
||
0448 03E8 DW 1000 ;1 second = 1,000 milliseconds
|
||
;(500 if 8080)
|
||
|
||
044A DSHORT:: ;Short delays (like before help menus)
|
||
044A 00C8 DW 200 ;200 milliseconds (100 if 8080)
|
||
|
||
044C UPDLY:: ;Position update delay
|
||
044C 00C8 DW 200 ;200 milliseconds (100 if 8080)
|
||
|
||
044E DDISK:: ;Disk access delay. If character typed
|
||
044E 01F4 DW 500 ;during disk access, wait this duration for
|
||
;more characters. 500 milliseconds
|
||
|
||
0450 DFAST:: ;Delay when typing fast. Holds off displaying
|
||
0450 0032 DW 50 ;the rest of the line briefly
|
||
|
||
;
|
||
;Optional user-supplied console I/O subroutines. You may
|
||
; patch JMP's here to your own console input, console
|
||
; output, and console status subroutines, in which
|
||
; case these routines, instead of the operating
|
||
; system BIOS entry points, will be used for all
|
||
; console I/O. These subroutines may alter all registers.
|
||
;
|
||
;Use of a custom subroutine accessed here is suggested,
|
||
; for example, to drive a video board that cannot be
|
||
; driven via output to the operating system.
|
||
;
|
||
0452 UCNSTA:: ;User console status subroutine.
|
||
0452 00 NOP ;Normally NOP, or JMP to your own
|
||
0453 00 NOP ;subroutine. Must return 0 in A if
|
||
0454 C9 RET ;no character ready, 0FFH if one is
|
||
;ready.
|
||
|
||
0455 UCONI:: ;User console input subroutine.
|
||
0455 00 NOP ;Normally NOP, or JMP to your own
|
||
0456 00 NOP ;subroutine. Must return the
|
||
0457 C9 RET ;character in A. May be called
|
||
;before a character is ready. If
|
||
;no character is ready, routine
|
||
;must wait until a character is
|
||
;available.
|
||
|
||
0458 UCONO:: ;User console output subroutine.
|
||
0458 00 NOP ;Normally NOP, or JMP to your own
|
||
0459 00 NOP ;subroutine. Subroutine receives
|
||
045A C9 RET ;the character in A, video attributes in
|
||
;B, and current cursor address in HL.
|
||
|
||
;
|
||
;This is 128 bytes set aside for anything that the user wishes to use.
|
||
;If more than 128 bytes are required, it is necessary to put them after
|
||
;the main WordStar code which can be determined by looking at the
|
||
;contents of BGNMEM to see where it is. After using as much space as
|
||
;necessary, change BGNMEM to the new beginning of free memory.
|
||
;
|
||
045B MORPAT::
|
||
045B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
045F 0000 0000
|
||
0463 0000 0000
|
||
0467 0000 0000
|
||
046B 0000 0000
|
||
046F 0000 0000
|
||
0473 0000 0000
|
||
0477 0000 0000
|
||
047B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
047F 0000 0000
|
||
0483 0000 0000
|
||
0487 0000 0000
|
||
048B 0000 0000
|
||
048F 0000 0000
|
||
0493 0000 0000
|
||
0497 0000 0000
|
||
049B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
049F 0000 0000
|
||
04A3 0000 0000
|
||
04A7 0000 0000
|
||
04AB 0000 0000
|
||
04AF 0000 0000
|
||
04B3 0000 0000
|
||
04B7 0000 0000
|
||
04BB 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
04BF 0000 0000
|
||
04C3 0000 0000
|
||
04C7 0000 0000
|
||
04CB 0000 0000
|
||
04CF 0000 0000
|
||
04D3 0000 0000
|
||
04D7 0000 0000
|
||
|
||
;
|
||
;CRTPAT is a patch area that may be used by WordStar's installation
|
||
;program.
|
||
;
|
||
04DB CRTPAT::
|
||
04DB 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
04DF 0000 0000
|
||
04E3 0000 0000
|
||
04E7 0000 0000
|
||
04EB 0000 0000
|
||
04EF 0000 0000
|
||
04F3 0000 0000
|
||
04F7 0000 0000
|
||
04FB 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
04FF 0000 0000
|
||
0503 0000 0000
|
||
0507 0000 0000
|
||
050B 0000 0000
|
||
050F 0000 0000
|
||
0513 0000 0000
|
||
0517 0000 0000
|
||
051B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
051F 0000 0000
|
||
0523 0000 0000
|
||
0527 0000 0000
|
||
052B 0000 0000
|
||
052F 0000 0000
|
||
0533 0000 0000
|
||
0537 0000 0000
|
||
053B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
053F 0000 0000
|
||
0543 0000 0000
|
||
0547 0000 0000
|
||
054B 0000 0000
|
||
054F 0000 0000
|
||
0553 0000 0000
|
||
0557 0000 0000
|
||
|
||
;
|
||
;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.
|
||
;
|
||
055B PRNID::
|
||
055B 44 72 61 66 DB 'Draft Printer',CR,LF,0 ;Printer name
|
||
055F 74 20 50 72
|
||
0563 69 6E 74 65
|
||
0567 72 0D 0A 00
|
||
056B 20 20 20 20 DB ' ' ;Additional room
|
||
056F 20 20 20 20
|
||
0573 20 20 20 20
|
||
0577 20 20 20 20
|
||
057B 20 20 20 20
|
||
057F 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 six characters long,
|
||
;null terminated.
|
||
;
|
||
0583 DEFPRN::
|
||
0583 44 52 41 46 DB 'DRAFT',0 ;Standard driver
|
||
0587 54 00
|
||
0589 20 DB ' ' ;One extra char
|
||
|
||
;
|
||
;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.
|
||
;
|
||
058A PRNDLY:: ;Delay before saying printer busy
|
||
058A 0000 DW 0 ;Zero to disable
|
||
|
||
;
|
||
;Pausing between each page is used if single sheets of paper are being
|
||
;printed.
|
||
;
|
||
058C PPAUSE::
|
||
058C 00 DB FALSE ;Continuous form (don't pause)
|
||
|
||
;
|
||
;Many printers can use form feeds to quickly get from one page to the
|
||
;next. If your printer can, setting PFFEED to TRUE will cause WordStar
|
||
;to use form feeds instead of carriage returns and line feeds.
|
||
;
|
||
|
||
058D PFFEED::
|
||
058D 00 DB FALSE ;Carriage returns to next page
|
||
|
||
;
|
||
;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.
|
||
;
|
||
058E PNODOC::
|
||
058E 00 DB FALSE ;Don't print as a non-document
|
||
|
||
;
|
||
;Printer protocol flags. Only one of these flags may be set TRUE at
|
||
;one time. If neither flag is set, WordStar assumes all printer busy
|
||
;handshaking is done externally to WordStar (requires ULISTA and ULSTI
|
||
;subroutines below).
|
||
;
|
||
|
||
058F LXOFF:: ;Printer XON/XOFF protocol.
|
||
058F 00 DB FALSE
|
||
|
||
0590 LETX:: ;Printer ETX/ACK protocol.
|
||
0590 00 DB FALSE
|
||
|
||
0591 LCHRMX:: ;Maximum chars before sending ETX.
|
||
0591 80 DB 128 ;Half of buffer size.
|
||
|
||
;
|
||
;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.
|
||
;
|
||
0592 ULOSTA::
|
||
0592 00 NOP ;User list output status subroutine.
|
||
0593 00 NOP ;Normally NOP, or JMP to your own
|
||
0594 C9 RET ;subroutine. Must return 0 in AL if
|
||
;list device is busy, 0FFH if idle.
|
||
|
||
0595 ULSTO::
|
||
0595 00 NOP ;User list output subroutine.
|
||
0596 00 NOP ;Normally NOP, or JMP to your own
|
||
0597 C9 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.
|
||
;
|
||
0598 ULISTA::
|
||
0598 00 NOP ;User list input status subroutine.
|
||
0599 00 NOP ;Normally NOP, or JMP to your own
|
||
059A C9 RET ;subroutine if LXOFF or LETX is TRUE.
|
||
;Must return 0 in AL if no char pending.
|
||
|
||
059B ULSTI::
|
||
059B 00 NOP ;User list input subroutine.
|
||
059C 00 NOP ;Normally NOP, or JMP to your own
|
||
059D C9 RET ;subroutine if LXOFF or LETX is TRUE.
|
||
;Returns character in AL.
|
||
|
||
;
|
||
;Printer Output Selection
|
||
;
|
||
;When WordStar prints, it sends its output to one of the devices specified
|
||
;with LSTDEV.
|
||
;
|
||
; 00H = TTY device
|
||
; 01H = CRT device
|
||
; 02H = LPT device
|
||
; 03H = UL1 device
|
||
; FFH = Default LST device
|
||
;
|
||
059E LSTDEV::
|
||
059E FF DB 0FFH ;Use LST device
|
||
|
||
;
|
||
;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 HL.
|
||
;It is up to this subroutine to then route the printer output to the
|
||
;appropriate output port by whatever means is available to it.
|
||
;
|
||
|
||
059F ULPORT::
|
||
059F 00 NOP ;Normally NOP if no redirection to be done.
|
||
05A0 00 NOP ;Change to JMP to your own subroutine.
|
||
05A1 C9 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.
|
||
;
|
||
|
||
05A2 ULUNPT::
|
||
05A2 00 NOP
|
||
05A3 00 NOP
|
||
05A4 C9 RET
|
||
|
||
;
|
||
;The ULINI string is sent to the list device after ULPORT is executed
|
||
;and before the document is printed.
|
||
;
|
||
05A5 ULINI:: ;User list device initialize string
|
||
05A5 00 DB 0
|
||
05A6 00 00 00 00 DB 0,0,0,0,0,0,0,0,0
|
||
05AA 00 00 00 00
|
||
05AE 00
|
||
;
|
||
;The ULUNI string is sent to the list device after the document is
|
||
;printed and before the ULUNPT routine is executed.
|
||
;
|
||
05AF ULUNI:: ;User list device uninitialize routine
|
||
05AF 00 DB 0
|
||
05B0 00 00 00 00 DB 0,0,0,0,0,0,0,0,0
|
||
05B4 00 00 00 00
|
||
05B8 00
|
||
|
||
;
|
||
;When WordStar begins printing, space is allocated for the three header and
|
||
;three footer lines. HFMAX determines how much space to allocate.
|
||
;
|
||
05B9 HFMAX::
|
||
05B9 0064 DW 100 ;Up to 100 characters per header or footer
|
||
|
||
;
|
||
;DATSEP is used while merge printing to separate one data item from
|
||
;another in the data file.
|
||
;
|
||
05BB DATSEP:: ;Comma
|
||
05BB 2C DB ','
|
||
|
||
;
|
||
;DLIST is the list output delay. Every time a character is output to
|
||
;the printer, this delay is used.
|
||
;
|
||
05BC DLIST::
|
||
05BC 00 DB 0 ;No delay
|
||
|
||
;
|
||
;Custom Printer Control Strings: These strings are sent to the printer
|
||
;when the custom print control characters, ^Q, ^W, ^E, or ^R are
|
||
;encountered in text being printed. They can be used to invoke special
|
||
;printer functions not controlled by the standard driver, such as expanded
|
||
;or compressed modes of printing.
|
||
;
|
||
;Note that some drivers may interfere or override the custom print controls
|
||
;you have defined. In this case, use a generic driver such as DRAFT or
|
||
;CUSTOM.
|
||
;
|
||
;A fixed length of 25 bytes is reserved for each string, where the
|
||
;first byte is the count of characters to be sent to the printer, and
|
||
;the following bytes (up to 5) are the characters to be sent. If
|
||
;longer strings are required, the first byte can be -1, followed by a
|
||
;two byte address pointing into a patch area, where the actual count
|
||
;and string can be found.
|
||
;
|
||
05BD UPRCTL:: ;Custom Print Controls
|
||
|
||
05BD 00 UPRQ:: DB 0 ;^Q, length
|
||
05BE 00 00 00 00 DB 0,0,0,0,0,0 ; string of up to 24 characters
|
||
05C2 00 00
|
||
05C4 00 00 00 00 DB 0,0,0,0,0,0
|
||
05C8 00 00
|
||
05CA 00 00 00 00 DB 0,0,0,0,0,0
|
||
05CE 00 00
|
||
05D0 00 00 00 00 DB 0,0,0,0,0,0
|
||
05D4 00 00
|
||
;
|
||
05D6 00 UPRW:: DB 0 ;^W
|
||
05D7 00 00 00 00 DB 0,0,0,0,0,0
|
||
05DB 00 00
|
||
05DD 00 00 00 00 DB 0,0,0,0,0,0
|
||
05E1 00 00
|
||
05E3 00 00 00 00 DB 0,0,0,0,0,0
|
||
05E7 00 00
|
||
05E9 00 00 00 00 DB 0,0,0,0,0,0
|
||
05ED 00 00
|
||
;
|
||
05EF 00 UPRE:: DB 0 ;^E
|
||
05F0 00 00 00 00 DB 0,0,0,0,0,0
|
||
05F4 00 00
|
||
05F6 00 00 00 00 DB 0,0,0,0,0,0
|
||
05FA 00 00
|
||
05FC 00 00 00 00 DB 0,0,0,0,0,0
|
||
0600 00 00
|
||
0602 00 00 00 00 DB 0,0,0,0,0,0
|
||
0606 00 00
|
||
;
|
||
0608 00 UPRR:: DB 0 ;^R
|
||
0609 00 00 00 00 DB 0,0,0,0,0,0
|
||
060D 00 00
|
||
060F 00 00 00 00 DB 0,0,0,0,0,0
|
||
0613 00 00
|
||
0615 00 00 00 00 DB 0,0,0,0,0,0
|
||
0619 00 00
|
||
061B 00 00 00 00 DB 0,0,0,0,0,0
|
||
061F 00 00
|
||
|
||
;
|
||
;Strike-out character
|
||
;
|
||
0621 STKCHR::
|
||
0621 2D DB '-' ;Strike out character
|
||
;
|
||
;If PFFEED above is TRUE, or you specifically tell WordStar to use form feeds
|
||
;during printing, the following string is sent to the printer to eject the
|
||
;paper to the next page. All printer drivers use this string.
|
||
;
|
||
0622 01 FORMF:: DB 1 ;^L
|
||
0623 0C DB FFEED
|
||
0624 00 00 00 00 DB 0,0,0,0,0
|
||
0628 00
|
||
0629 00 00 00 00 DB 0,0,0,0,0,0
|
||
062D 00 00
|
||
062F 00 00 00 00 DB 0,0,0,0,0,0
|
||
0633 00 00
|
||
0635 00 00 00 00 DB 0,0,0,0,0,0
|
||
0639 00 00
|
||
;
|
||
;This is 128 bytes set aside for printer subroutines.
|
||
;This area is also used for print control strings for the CUSTOM
|
||
;printer driver.
|
||
;
|
||
063B PRNPAT::
|
||
063B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
063F 0000 0000
|
||
0643 0000 0000
|
||
0647 0000 0000
|
||
064B 0000 0000
|
||
064F 0000 0000
|
||
0653 0000 0000
|
||
0657 0000 0000
|
||
065B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
065F 0000 0000
|
||
0663 0000 0000
|
||
0667 0000 0000
|
||
066B 0000 0000
|
||
066F 0000 0000
|
||
0673 0000 0000
|
||
0677 0000 0000
|
||
067B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
067F 0000 0000
|
||
0683 0000 0000
|
||
0687 0000 0000
|
||
068B 0000 0000
|
||
068F 0000 0000
|
||
0693 0000 0000
|
||
0697 0000 0000
|
||
069B 0000 0000 DW 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||
069F 0000 0000
|
||
06A3 0000 0000
|
||
06A7 0000 0000
|
||
06AB 0000 0000
|
||
06AF 0000 0000
|
||
06B3 0000 0000
|
||
06B7 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.
|
||
;
|
||
06BB INITID::
|
||
06BB 00 DB 0 ;No ID if standard
|
||
06BC 20 20 20 20 DB ' '
|
||
06C0 20 20 20 20
|
||
06C4 20 20 20 20
|
||
06C8 20 20 20 20
|
||
06CC 20 20 20
|
||
06CF 20 20 20 20 DB ' '
|
||
06D3 20 20 20 20
|
||
06D7 20 20 20 20
|
||
06DB 20 20 20 20
|
||
06DF 20 20 20 20
|
||
|
||
;
|
||
;Legal Drives
|
||
;
|
||
;Note that the first drive is assumed to be the default drive where any
|
||
;special files are located such as the WSMSGS.OVR file. 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.
|
||
;
|
||
06E3 LGLDRV::
|
||
06E3 41 42 43 44 DB 'ABCDEFGHIJKLMNOP',0 ;Every legal drive
|
||
06E7 45 46 47 48
|
||
06EB 49 4A 4B 4C
|
||
06EF 4D 4E 4F 50
|
||
06F3 00
|
||
|
||
;
|
||
;Legal User Numbers
|
||
;
|
||
;Some CP/M operating systems can support user numbers from 0 to 15,
|
||
;others support 0 to 31. Also, a user can be prevented from accessing
|
||
;other user numbers if zero.
|
||
;
|
||
06F4 LGLUSR::
|
||
06F4 10 DB 16 ;Sixteen user numbers from 0 to 15
|
||
|
||
;
|
||
;WordStar uses several files. Their names are specified here. WordStar
|
||
;uses the following search pattern to try to find the file:
|
||
;
|
||
; 1. Look on the current drive and user.
|
||
; 2. Default user (DEFUSR) on the current drive.
|
||
; 3. Current user on the default drive.
|
||
; 4. Default user on the default drive.
|
||
;
|
||
;If the drive byte of the filename is non-zero, it should be set to a
|
||
;number 1 through 16 representing drives A through P respectively. In
|
||
;this case, WordStar will look only on the specified drive and the
|
||
;DEFUSR user number for the file.
|
||
;
|
||
06F5 MSFILE:: ;Message file
|
||
06F5 00 57 53 4D DB 0,'WSMSGS OVR'
|
||
06F9 53 47 53 20
|
||
06FD 20 4F 56 52
|
||
|
||
0701 HPFILE:: ;Help messages file
|
||
0701 00 57 53 48 DB 0,'WSHELP OVR'
|
||
0705 45 4C 50 20
|
||
0709 20 4F 56 52
|
||
|
||
070D FF DB 0FFH ;Zero if never to search for help
|
||
|
||
070E IXFILE:: ;Indexer exclusion word list filename
|
||
070E 00 57 53 49 DB 0,'WSINDEX XCL'
|
||
0712 4E 44 45 58
|
||
0716 20 58 43 4C
|
||
|
||
071A LDFILE:: ;Load file for overlays
|
||
071A 00 57 53 20 DB 0,'WS OVR'
|
||
071E 20 20 20 20
|
||
0722 20 4F 56 52
|
||
|
||
0726 OVFILE:: ;Print driver overlays
|
||
0726 00 57 53 50 DB 0,'WSPRINT OVR'
|
||
072A 52 49 4E 54
|
||
072E 20 4F 56 52
|
||
|
||
0732 WSFILE:: ;File containing WordStar (after running pgm)
|
||
0732 00 57 53 20 DB 0,'WS COM'
|
||
0736 20 20 20 20
|
||
073A 20 43 4F 4D
|
||
|
||
073E SHFILE:: ;Shorthand file
|
||
073E 00 57 53 53 DB 0,'WSSHORT OVR'
|
||
0742 48 4F 52 54
|
||
0746 20 4F 56 52
|
||
|
||
;
|
||
;If WordStar does not find its own files (WS.COM, WS.OVR...) on the
|
||
;logged user, it will look for them on the default user.
|
||
;
|
||
074A DEFUSR::
|
||
074A 00 DB 0 ;Default user number for system files
|
||
;Set to 0-16 or 0-31 (depends on LGLUSR),
|
||
; or -1 to defeat
|
||
|
||
;
|
||
;When you use the S command at the Opening Menu, this is the spelling
|
||
;check command that is used. If you want WordStar to prompt for the
|
||
;document to be checked and then automatically append it to this command,
|
||
;set SPFILE non-zero.
|
||
;
|
||
074B 02 SPCMD:: DB 2 ;Five letters in command
|
||
074C 54 57 DB 'TW' ;Run The WORD Plus
|
||
074E 00 00 00 00 DB 0,0,0,0,0 ;Spare bytes for longer commands
|
||
0752 00
|
||
0753 00 00 00 00 DB 0,0,0,0,0
|
||
0757 00
|
||
|
||
0758 FF SPFILE::DB 0FFH ;Automatically ask
|
||
|
||
;
|
||
;When you run a program at the Opening Menu, WordStar first tries to find
|
||
;the COM file in the current drive and user, then in this drive and user.
|
||
;The default is to look on drive A, user 0.
|
||
;
|
||
0759 01 URUN:: DB 1 ;Drive code (0=disabled, 1=A, 2=B, ...)
|
||
075A 00 DB 0 ;User number
|
||
|
||
;
|
||
;INILOG allows the user to specify a drive and user number for WordStar to
|
||
;log onto at start up time. The first byte is a character count, the
|
||
;following bytes (up to three) can contain a drive name (A-P) and user
|
||
;number (0-31).
|
||
;
|
||
075B INILOG::
|
||
075B 00 DB 0
|
||
075C 00 00 00 DB 0,0,0
|
||
|
||
;
|
||
;WordStar creates backup and temporary files. The following
|
||
;are the file types to be used for them.
|
||
;
|
||
075F BAKTYP:: ;Type for backup files
|
||
075F 42 41 4B DB 'BAK'
|
||
|
||
0762 BFTYPE::
|
||
0762 24 42 24 DB '$B$' ;File type of temporary file before memory
|
||
|
||
0765 AFTYPE::
|
||
0765 24 41 24 DB '$A$' ;File type of temporary file after memory
|
||
|
||
0768 BLKTYP::
|
||
0768 24 43 24 DB '$C$' ;Type for block move/copy buffer file
|
||
|
||
;
|
||
;When the directory is displayed, file types from this table
|
||
;are suppressed. Question marks may be used as wild cards to
|
||
;match any character.
|
||
;
|
||
076B NOTYPE:: ;File types to be ommitted from directories
|
||
076B 43 4F 4D DB 'COM' ;Command files
|
||
076E 4F 56 52 DB 'OVR' ;Overlays
|
||
0771 24 3F 24 DB '$?$' ;WordStar temporary files
|
||
|
||
0774 00 00 00 DB 0,0,0
|
||
0777 00 00 00 DB 0,0,0
|
||
077A 00 00 00 DB 0,0,0
|
||
077D 00 00 00 DB 0,0,0
|
||
0780 00 00 00 DB 0,0,0
|
||
0783 00 DB 0 ;End of table
|
||
|
||
;
|
||
;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.
|
||
;
|
||
0784 DIRFIL::
|
||
0784 3F 3F 3F 3F DB "???????????" ;All files match
|
||
0788 3F 3F 3F 3F
|
||
078C 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.
|
||
;
|
||
078F ININON::
|
||
078F 00 DB FALSE ;Not non-document from command line
|
||
|
||
;
|
||
;WordStar normally makes BAK backup files every time you save your work.
|
||
;INITBAK can be used to disable backups by setting it FALSE.
|
||
;
|
||
0790 INIBAK::
|
||
0790 FF DB TRUE ;Make backups
|
||
|
||
;
|
||
;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 INIRLR table. An
|
||
;ASCII 09H can still be entered in this mode, however, by typing ^PI.
|
||
;
|
||
0791 EDCOND:: ;Edit conditions for specific file types
|
||
0791 50 41 53 01 DB 'PAS',00000001B,TRUE ;File extension, followed by a
|
||
0795 FF
|
||
0796 50 4C 49 03 DB 'PLI',00000011B,TRUE ;binary tab mask (e.g. a mask of
|
||
079A FF
|
||
079B 43 20 20 03 DB 'C ',00000011B,TRUE ;00000111B expands tab characters
|
||
079F FF
|
||
07A0 48 20 20 03 DB 'H ',00000011B,TRUE ;to every 8th column), followed by
|
||
07A4 FF
|
||
;TRUE if auto-indent is turned on.
|
||
|
||
07A5 00 00 00 07 DB 0,0,0,00000111B,FALSE ;End of table with defaults if file
|
||
07A9 00
|
||
;type doesn't match above
|
||
|
||
07AA 00 00 00 00 DB 0,0,0,0,0 ;Room for four more
|
||
07AE 00
|
||
07AF 00 00 00 00 DB 0,0,0,0,0
|
||
07B3 00
|
||
07B4 00 00 00 00 DB 0,0,0,0,0
|
||
07B8 00
|
||
07B9 00 00 00 00 DB 0,0,0,0,0
|
||
07BD 00
|
||
|
||
;
|
||
;WordStar normally only considers alphabetic or numeric characters
|
||
;as being within a "word". If other characters are legally part
|
||
;or a word too, then the bit for the corresponding character code in
|
||
;the following table must be set to a 1.
|
||
;
|
||
;There are 256 bits in the table to allow for 8-bit character sets.
|
||
;The default table has the bits set for the numbers "0" through "9"
|
||
;(ASCII codes of 30H through 39H), for the upper case letters
|
||
;"A" through "Z" (41H through 5AH), and the lower case letters "a"
|
||
;through "z" (61H through 7AH). Since the ASCII codes are only
|
||
;seven bits, the corresponding codes with the eighth bit set are
|
||
;also legal.
|
||
;
|
||
07BE LGLCHR::; 01234567 89ABCDEF
|
||
07BE 00 00 DB 00000000B,00000000B ;Codes 00H to 0FH
|
||
07C0 00 00 DB 00000000B,00000000B ;Codes 10H to 1FH
|
||
07C2 00 00 DB 00000000B,00000000B ;Codes 20H to 2FH
|
||
07C4 00 00 DB 00000000B,00000000B ;Codes 30H to 3FH
|
||
07C6 7F FF DB 01111111B,11111111B ;Codes 40H to 4FH
|
||
07C8 FF E0 DB 11111111B,11100000B ;Codes 50H to 5FH
|
||
07CA 7F FF DB 01111111B,11111111B ;Codes 60H to 6FH
|
||
07CC FF E0 DB 11111111B,11100000B ;Codes 70H to 7FH
|
||
07CE 00 00 DB 00000000B,00000000B ;Codes 80H to 8FH
|
||
07D0 00 00 DB 00000000B,00000000B ;Codes 90H to 9FH
|
||
07D2 00 00 DB 00000000B,00000000B ;Codes A0H to AFH
|
||
07D4 00 00 DB 00000000B,00000000B ;Codes B0H to BFH
|
||
07D6 7F FF DB 01111111B,11111111B ;Codes C0H to CFH
|
||
07D8 FF E0 DB 11111111B,11100000B ;Codes D0H to DFH
|
||
07DA 7F FF DB 01111111B,11111111B ;Codes E0H to EFH
|
||
07DC FF E0 DB 11111111B,11100000B ;Codes F0H to FFH
|
||
|
||
;
|
||
;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.
|
||
;
|
||
07DE MOVCHR::; 01234567 89ABCDEF
|
||
07DE FF 92 DB 11111111B,10010010B ;Codes 00H to 0FH
|
||
07E0 FB C3 DB 11111011B,11000011B ;Codes 10H to 1FH
|
||
07E2 3F F5 DB 00111111B,11110101B ;Codes 20H to 2FH
|
||
07E4 FF CE DB 11111111B,11001110B ;Codes 30H to 3FH
|
||
07E6 FF FF DB 11111111B,11111111B ;Codes 40H to 4FH
|
||
07E8 FF FF DB 11111111B,11111111B ;Codes 50H to 5FH
|
||
07EA FF FF DB 11111111B,11111111B ;Codes 60H to 6FH
|
||
07EC FF FE DB 11111111B,11111110B ;Codes 70H to 7FH
|
||
07EE FF 92 DB 11111111B,10010010B ;Codes 80H to 8FH
|
||
07F0 FB C3 DB 11111011B,11000011B ;Codes 90H to 9FH
|
||
07F2 3F F5 DB 00111111B,11110101B ;Codes A0H to AFH
|
||
07F4 FF CE DB 11111111B,11001110B ;Codes B0H to BFH
|
||
07F6 FF FF DB 11111111B,11111111B ;Codes C0H to CFH
|
||
07F8 FF FF DB 11111111B,11111111B ;Codes D0H to DFH
|
||
07FA FF FF DB 11111111B,11111111B ;Codes E0H to EFH
|
||
07FC FF FE DB 11111111B,11111110B ;Codes F0H to FFH
|
||
|
||
;
|
||
;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.
|
||
;
|
||
07FE AUTOBS:: ;Automatic backspace table
|
||
07FE 00 DB 0 ;Number of characters in table
|
||
07FF 00 00 00 00 DB 0,0,0,0 ;Up to 8 character codes
|
||
0803 00 00 00 00 DB 0,0,0,0
|
||
|
||
;
|
||
;When WordStar gets a file for editing, it will use the following
|
||
;initial conditions.
|
||
;
|
||
0807 INIDOC:: ;Document initializations
|
||
|
||
0807 03 DB 3 ;Top of page margin.
|
||
|
||
0808 08 DB 8 ;Bottom of page margin.
|
||
|
||
0809 42 DB 66 ;Total lines per page.
|
||
|
||
080A 0001 DW 1 ;Initial page number (note 2 bytes).
|
||
|
||
080C FF DB TRUE ;Page number prints at bottom of page
|
||
;if TRUE. No page number if FALSE.
|
||
|
||
080D 1C DB 28 ;Column where page number prints.
|
||
|
||
080E 02 DB 2 ;Heading margin. This is the number of lines
|
||
;above the text where the heading is to print.
|
||
|
||
080F 02 DB 2 ;Footing margin. This is the number of lines
|
||
;below the text where the footing is to print.
|
||
|
||
0810 07 DB 00000111B ;Default document tab mask (must be
|
||
;binary, 00000000B through 01111111B).
|
||
|
||
0811 08 DB 8 ;Left column where printing starts.
|
||
|
||
0812 FF DB TRUE ;Bidirectional printing if TRUE. Just
|
||
;unidirectional or printer controlled
|
||
;if FALSE. (Many printers do not allow
|
||
;software control of print direction).
|
||
|
||
0813 FF DB TRUE ;Letter quality printing if TRUE. Draft
|
||
;quality if FALSE. (Only supported on
|
||
;some printers.)
|
||
|
||
0814 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).
|
||
|
||
0815 00 DB FALSE ;Underline blanks between words if TRUE.
|
||
;NOTE: Not implemented for all printers.
|
||
|
||
0816 0C DB 12 ;Standard character width (in HMI units).
|
||
;The printer is reset to this when done
|
||
;printing.
|
||
|
||
0817 08 DB 8 ;Standard line height (in VMI units). The
|
||
;printer is reset to this after .LH dot
|
||
;commands. It is also used to determine
|
||
;the page size in VMI units by multiplying
|
||
;by the lines per page above.
|
||
|
||
0818 0C DB 12 ;Character width (in HMI units)
|
||
;for normal pitch. If HMI is 120, ten pitch
|
||
;is 12/120, twelve pitch is 10/120.
|
||
|
||
0819 0A DB 10 ;Character width for alternate pitch (use
|
||
;^PA to select alternate pitch while editing).
|
||
|
||
081A 03 DB 3 ;Subscript and superscript roll (in VMI
|
||
;units). This value determines how
|
||
;far up or down the carriage moves when
|
||
;subscripting or superscripting.
|
||
|
||
081B 08 DB 8 ;Line height (in VMI units). This value
|
||
;determines how far to roll the carriage
|
||
;to get to the next line.
|
||
|
||
;
|
||
;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.
|
||
;
|
||
081C INIRLR:: ;Ruler data
|
||
|
||
081C 01 DB 1 ;Left ruler margin
|
||
|
||
081D 41 DB 65 ;Right ruler margin
|
||
|
||
081E 00 DB 0 ;Paragraph margin
|
||
|
||
081F 0B DB 11 ;Eleven tabs
|
||
0820 06 0B 10 15 DB 6,11,16,21 ;Tab stops
|
||
0824 1A 1F 24 29 DB 26,31,36,41 ;(Must be in
|
||
0828 2E 33 38 DB 46,51,56 ;ascending order)
|
||
082B 00 00 00 00 DB 0,0,0,0 ;Space for 4 more
|
||
|
||
082F 00 DB 0 ;No decimal tabs
|
||
0830 00 00 00 00 DB 0,0,0,0,0,0 ;Space for 6
|
||
0834 00 00
|
||
|
||
002F inisiz EQU $-INIDOC ;Size of document initialization
|
||
|
||
;
|
||
;INIRLI determines whether the ruler line is re-initialized from INIRLR each
|
||
;time any document is edited. If INIRLI is FALSE, you can change the initial
|
||
;ruler line with ^OL, ^OR, ^OI, and ^ON commands, and have those changes
|
||
;be used for every document edited until you exit WordStar.
|
||
;
|
||
0836 INIRLI::
|
||
0836 FF DB TRUE ;Initialize ruler for each document
|
||
|
||
;
|
||
;As you move through a document, WordStar executes some of the dot commands,
|
||
;like .RR ruler line commands, as they are encountered. As WordStar moves
|
||
;forward through the text, the old ruler line is stored in memory so that it
|
||
;can be restored when you move backwards over the .RR later. Other dot
|
||
;commands work in a similar manner.
|
||
;
|
||
;DSTKSZ is used to allocate storage for the dot commands. While you are
|
||
;editing, WordStar puts a Dot-Limit indicator in the status line if you
|
||
;use too many dot commands.
|
||
;
|
||
; Dot Command Size
|
||
; .RR 26
|
||
; .RM .LM .LH .PL 1
|
||
; .MT .MB 1
|
||
; .PN 2
|
||
;
|
||
0837 DSTKSZ::
|
||
0837 01F4 DW 500 ;Room for 19 .RR commands or 500 .RM & .LM
|
||
|
||
;
|
||
;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.
|
||
;
|
||
|
||
0839 INIDIR::
|
||
0839 FF DB TRUE ;Directory on
|
||
|
||
083A DIRSRT::
|
||
083A FF DB TRUE ;Sort directory in alphabetical order
|
||
|
||
;
|
||
;INIHLP is the default help level. It can have a value from 0 to 3.
|
||
;
|
||
|
||
083B INIHLP::
|
||
083B 03 DB 3 ;Maximum help level at start
|
||
|
||
;
|
||
;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.
|
||
;
|
||
083C UNONE:: ;Don't unerase single characters
|
||
083C 00 DB FALSE
|
||
|
||
083D UNSIZE::
|
||
083D 01F4 DW 500 ;Maximum unerase size
|
||
|
||
;
|
||
;VMSIZE indicates the number of 128-byte records that can be read from
|
||
;the disk for WordStar's messages and menus.
|
||
;
|
||
083F VMSIZE::
|
||
083F 04 DB 4 ;Four records (.5k byte)
|
||
|
||
;
|
||
;EDSIZE indicates the minimum number of records of edit buffer required
|
||
;to edit a document properly. WordStar must be able to keep a whole
|
||
;page in memory to determine page breaks and line numbers correctly.
|
||
;Less memory can sometimes be used with occasional strange results.
|
||
;(Non-documents are automatically allocated a minimum of 6 records.)
|
||
;
|
||
0840 EDSIZE::
|
||
0840 1C DB 28 ;Enough memory for an average full page
|
||
|
||
;
|
||
;BFSIZE is the number of 128-byte records that WordStar uses for its
|
||
;general purpose buffer. There is a different buffer allocation for
|
||
;editing, the Opening Menu, and for merge printing.
|
||
;
|
||
;This buffer is used for:
|
||
;
|
||
; - File directories (each file uses 11 bytes),
|
||
; - Printer driver directory (each driver uses 11 bytes and 256
|
||
; bytes are used for buffering),
|
||
; - File copies,
|
||
; - Block reads and writes,
|
||
; - Merge printing.
|
||
;
|
||
0841 BFSIZE::
|
||
0841 10 DB 16 ;Edit buffer size (16 records = 2k)
|
||
;(Minimum is 1 record)
|
||
|
||
0842 10 DB 16 ;Opening menu buffer size
|
||
;(Minimum is 3 records)
|
||
|
||
0843 10 DB 16 ;Merge print buffer size
|
||
;(Minimum is 1 record)
|
||
|
||
;
|
||
;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.
|
||
;
|
||
0844 TYSIZE::
|
||
0844 10 DB 16 ;Number records read or stored while typing
|
||
|
||
0845 00 00 00 00 DB 0,0,0,0 ;Reserved
|
||
|
||
;
|
||
;A "find" 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
|
||
; B backwards search
|
||
; G whole file
|
||
; R rest of file
|
||
; N replace without asking
|
||
;
|
||
;Blank the unused options.
|
||
;
|
||
0849 INIFIN::
|
||
0849 20 20 20 20 DB ' ' ;No options
|
||
084D 20 20
|
||
|
||
;
|
||
;The status line is usually displayed at the top of the screen.
|
||
;INISTA lets you always turn it off. STFILL specifies what character
|
||
;to use to fill unused space in the status line.
|
||
;
|
||
084F INISTA::
|
||
084F FF DB TRUE ;Display status line
|
||
|
||
0850 STFILL::
|
||
0850 20 DB ' ' ;Fill with blanks
|
||
|
||
;
|
||
;When paragraphs are aligned with ^B or ^QU and hyphen help is on, HYMAX
|
||
;is used to determine when to ask the user to hyphenate a word.
|
||
;
|
||
0851 HYMAX::
|
||
0851 05 DB 5 ;Ask user when the word extends more than 5
|
||
;characters past the right margin
|
||
|
||
;
|
||
;When WordStar asks a question that requires a Y for yes or N for no response,
|
||
;YNCR indicates whether or not the user must push the RETURN key before
|
||
;WordStar will accept it.
|
||
;
|
||
0852 YNCR::
|
||
0852 00 DB FALSE ;Don't wait for RETURN key
|
||
|
||
;
|
||
;WordStar can index every word in a document as well as selected words and
|
||
;phrases. IDXALL determines whether this is the default or not.
|
||
;
|
||
0853 IDXALL::
|
||
0853 00 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.
|
||
;
|
||
0854 STRPFL::
|
||
0854 FF DB TRUE ;Stripping is enabled
|
||
;
|
||
;Editor Entry Conditions
|
||
;
|
||
0855 INIEDT::
|
||
0855 FF DB TRUE ;Right justification when typing
|
||
0856 FF DB TRUE ;Word wrap when typing at end of line
|
||
0857 FF DB TRUE ;Insert on
|
||
0858 FF DB TRUE ;Print controls displayed
|
||
0859 00 DB FALSE ;No hyphen help
|
||
085A FF DB TRUE ;Ruler displayed
|
||
085B 00 DB FALSE ;Block column mode off
|
||
085C 00 DB FALSE ;Block column replace mode off
|
||
085D 01 DB 1 ;Single spacing
|
||
085E 02 DB 2 ;Scrolling speed
|
||
085F 00 DB FALSE ;Proportional spacing off
|
||
0860 00 DB FALSE ;Soft space not displayed
|
||
|
||
0861 00 00 00 DB 0,0,0 ;Reserved
|
||
;
|
||
000F iniesz EQU $-INIEDT ;Size of editor conditions
|
||
|
||
;
|
||
;The following are special characters that affect how numbers are
|
||
;evaluated and dispayed.
|
||
;
|
||
0864 COMCHR::
|
||
0864 2C DB ',' ;Comma to separate 1,000's
|
||
|
||
0865 DECCHR::
|
||
0865 2E DB '.' ;Decimal point
|
||
|
||
;
|
||
;The following flags are used to control the way WordStar processes
|
||
;certain commands. CTLNFL and CTLHFL are provided primarily to allow
|
||
;WordStar 3.3 users to use ^N and ^H in the same way as they are accustomed.
|
||
;
|
||
0866 CTLNFL::
|
||
0866 FF 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.
|
||
|
||
0867 CTLHFL::
|
||
0867 00 DB 0 ;Set non-zero if ^H to be same as ^S instead
|
||
;of DEL.
|
||
|
||
0868 CASEFL::
|
||
0868 00 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.
|
||
|
||
0869 DELFLG::
|
||
0869 00 DB 0 ;Set non-zero if DEL erases to left, zero
|
||
;to erase to right (like ^G).
|
||
|
||
086A BLKFLG::
|
||
086A FF 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
|
||
|
||
086B LSPFLG::
|
||
086B 00 DB 0 ;Set non-zero if lines with soft carriage
|
||
;returns should not be added to paragraphs
|
||
;for line spacing other than 1
|
||
|
||
;
|
||
;RLRVID allows the user to select video attributes used to highlight
|
||
;the ruler line. See VIDATT for bit definitions.
|
||
;
|
||
086C RLRVID::
|
||
086C 00 DB 0 ;No ruler highlighting
|
||
|
||
;
|
||
;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.
|
||
;
|
||
086D AHEAD::
|
||
086D 00 DB 0 ;Flush
|
||
|
||
;
|
||
;Maximum size for the shorthand definitions. Should be optimized to
|
||
;match actual usage since it reduces the amount of memory available
|
||
;for text while editing and printing. The size of each definition
|
||
;is equal to 5 plus the number of characters defined. If this value
|
||
;is smaller than the size of the shorthand file (see SVFILE above),
|
||
;only some of the definitions will be used. Setting it to zero
|
||
;disables shorthand and makes the ESC key clear the screen instead.
|
||
;
|
||
086E HANMAX::
|
||
086E 04 DB 4 ;Size of shorthand buffer in records
|
||
;(4 times 128 = 512 bytes)
|
||
|
||
;
|
||
;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.)
|
||
;
|
||
086F DOLLAR::
|
||
086F 11 DB 17 ;Character count
|
||
0870 2D 2D 2C 2D DB '--,---,---,---.99'
|
||
0874 2D 2D 2C 2D
|
||
0878 2D 2D 2C 2D
|
||
087C 2D 2D 2E 39
|
||
0880 39
|
||
0881 00 00 00 DB 0,0,0 ;Spare
|
||
|
||
0884 00 00 00 00 DB 0,0,0,0,0,0,0,0 ;Reserved
|
||
0888 00 00 00 00
|
||
088C 00 00 00 00 DB 0,0,0,0,0,0,0,0
|
||
0890 00 00 00 00
|
||
|
||
;
|
||
;EXTRA is a large buffer area for general patching. Some versions of
|
||
;the WINSTALL installation program use EXTRA. Whenever EXTRA is used,
|
||
;RAM1ST must be changed to point to the first available byte within EXTRA
|
||
;that is still available for WordStar's use. If all of EXTRA is used,
|
||
;RAM1ST should point to endpat.
|
||
;
|
||
0894 RAM1ST::
|
||
0894 0896 DW EXTRA ;First location in EXTRA that WordStar can use
|
||
;
|
||
0896 EXTRA:: DS 512 ;Patch area
|
||
0A96 endpat:: ;End of patch area
|
||
|
||
|
||
0A96 08 0C 57 UDATE: DB 08,12,87 ;User area version date
|
||
|
||
|