home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 128.img / WS6#02.LZH / PATCH.LST < prev    next >
File List  |  1990-02-22  |  85KB  |  2,510 lines

  1. The IBM flag bits should be set for an IBM compatible computer. The bits
  2. are defined as follows:
  3. Bit    Function
  4. 0    BIOS ROM is IBM compatible for video & keyboard. Do not
  5.     change this bit.
  6.  
  7. 1    Counter-timer I/O ports same as IBM (used for beep).
  8.  
  9. 2    Use video RAM directly (may produce "hash" or not work
  10.     at all on some computers).
  11.  
  12. 3    Use IBM tick timer at INT 1CH
  13.  
  14. 4    Use fast cursor moves by changing 6845 directly.  Set to 0
  15.     if BIOS calls should always be used.
  16.  
  17. 5    Reserved for future use.
  18.  
  19. 6    Use bright instead of inverse video.
  20.  
  21. 7    Wait for video retrace before displaying characters (to
  22.     reduce snow on screen).
  23.  
  24. IBM ROM, beep ok, direct video, tick timer, no bright or video retrace wait
  25. 023A    ibmflg    db    00011111b
  26.  
  27. The WordStar flag bits are used to tell WordStar how it will be operated.
  28. The bits are defined as follows:
  29. Bit    Function
  30. 0    Try to make WordStar completely RAM resident (limitation
  31.     of no on-screen help messages).
  32.     
  33. 1    Make default printer driver RAM resident (limitation
  34.     of no indexing or tables of contents). Can't select other
  35.     printers.
  36.     
  37. 2-7    Reserved for future use.
  38.  
  39. Normal operation    
  40. 023B    nwflg    db    0
  41.  
  42.  
  43. This flag is used for multi-user or networked systems.
  44. Bit    Meaning
  45.  
  46. 0    Set to 1 if a system reset is not to be used when logging.
  47.  
  48. 1    More than one user can access the same document if 1. If 0,
  49.     files are not shared.
  50.  
  51. 2    More than one user can share the default list device if 1.
  52.     If 0, WordStar will immediately use the printer.
  53.  
  54. 3    More than one user can share the personal dictionary if 1.
  55.     If 0, personal dictionary is not shared.
  56.  
  57. 4    Operating system date is correct if 1. Don't use date if 0.
  58.  
  59. 5    System contains a keyboard type ahead buffer if 1. WordStar
  60.     must do more frequent keyboard checks if 0.
  61.  
  62. 6    Set to 1 if configuration file is to be used
  63.  
  64. 7    Reserved.
  65.  
  66. 023C    mpmflg    db    00110000b    Single-user system, date okay, type ahead
  67.  
  68.  
  69. This flag is used to say how memory is used.
  70.  
  71. Bit    Meaning
  72.  
  73. 0    Set to 0 if messages should be ram resident.
  74.  
  75. 1    Set to 1 if the speller and thesaurus should share overlay
  76.     and dictionary memory.  See speller memory requirements later
  77.     in this listing.
  78.  
  79. 2    Set to 1 if the hyphenator should share memory with the
  80.     spelling overlay.
  81.  
  82. Ram resident messages, shared thesaurus
  83. 023D    memflg    db    0010b
  84.  
  85.  
  86. SHARE indicates what happens when files can be shared (see MPMFLG).
  87. If it is 0, and a file is already being edited, other users cannot
  88. edit the file. If it is 1, other users are asked if they want to
  89. look at the file in protected mode (but only as much of the file
  90. that will fit in memory at once).
  91.  
  92. Look at files
  93. 023E    share    db    1
  94.  
  95. Reserved
  96. 023F        db    0,0,0
  97.  
  98. Edit Menu Function Keys
  99.  
  100. The function key table allows you to program any function keys that
  101. your terminal supports into one or more other keystrokes. On the IBM
  102. personal computer, function keys generate a null plus a keycode.
  103.  
  104. Function Key        Keycode (in hex)
  105.  
  106. Ctrl+Break          00
  107. Shift+Tab          0F
  108. Ctrl+PrtSc          72
  109. Home              47
  110. Ctrl+Home          77
  111. UpArrow              48
  112. PgUp              49
  113. Ctrl+PgUp          84
  114. LeftArrow          4B
  115. Ctrl+LeftArrow          73
  116. RightArrow          4D
  117. Ctrl+RightArrow          74
  118. End              4F
  119. Ctrl+End          75
  120. DownArrow          50
  121. PgDn              51
  122. Ctrl+PgDn          76
  123. Ins              52
  124. Del              53
  125. F1 thru F10        3B thru 44
  126. Shift+F1 thru F10    54 thru 5D
  127. Ctrl+F1 thru F10    5E thru 67
  128. Alt+F1 thru F10        68 thru 71
  129.  
  130. Each function key in the table below is represented by two strings. The
  131. first represents the string of characters generated by the function key.
  132. The second represents what string the function key should generate as its
  133. replacement. Because the strings are packed next to each other, you may
  134. not use string indirections (size of -1 plus address).
  135.  
  136. The end of the function key table is indicated when the size of the
  137. function key string is zero. If the function key strings won't all fit
  138. here, you can put a continuation address after the zero to point to more
  139. table. The table at that address must be the same format as this
  140. one. No continuation is indicated by an address of zero.
  141.  
  142.  
  143. Function keys enabled. Fixed size of 2. No delay between burst chars.
  144. Change to zero to disable function keys. Every burst starts with a null
  145. Set to -1 if each burst doesn't start with the same character.
  146. 0242    fundly    db    -2
  147. 0243        db    0
  148. Home
  149. 0244    funtbl    db    2
  150. 0245        db    0,47h
  151. 0247        db    2
  152. 0248        db    CTRLQ,CTRLE
  153. End
  154. 024A          db    2
  155. 024B        db    0,4fh
  156. 024D          db    2
  157. 024E        db    CTRLQ,CTRLX
  158. Ctrl+Home
  159. 0250          db    2
  160. 0251        db    0,77h
  161. 0253          db    2
  162. 0254        db    CTRLQ,CTRLR
  163. Ctrl+End
  164. 0256          db    2
  165. 0257        db    0,75h
  166. 0259          db    2
  167. 025A        db    CTRLQ,CTRLC
  168. Ins
  169. 025C          db    2
  170. 025D        db    0,52h
  171. 025F          db    1
  172. 0260          db    CTRLV
  173. Ctrl+PrtSc
  174. 0261        db    2
  175. 0262        db    0,72h
  176. 0264        db    7
  177. 0265        db    CTRLQ,'`',CTRLK,CTRLD,CTRLP,CTRLR,CR
  178.  
  179. Two chars describes function key. Null plus keycode. One char in replacement.
  180. Convert UpArrow to ^E.
  181. 026C    funtb1    db    2
  182. 026D        db    0,48h
  183. 026F        db    1
  184. 0270        db    CTRLE
  185. DownArrow
  186. 0271        db    2
  187. 0272        db    0,50h
  188. 0274        db    1
  189. 0275        db    CTRLX
  190. LeftArrow
  191. 0276        db    2
  192. 0277        db    0,4bh
  193. 0279        db    1
  194. 027A        db    CTRLS
  195. RightArrow
  196. 027B        db    2
  197. 027C        db    0,4dh
  198. 027E        db    1
  199. 027F        db    CTRLD
  200. PgUp
  201. 0280        db    2
  202. 0281        db    0,49h
  203. 0283        db    1
  204. 0284        db    CTRLR
  205. Ctrl+LeftArrow
  206. 0285        db    2
  207. 028B        db    0,73h
  208. 028D        db    1
  209. 028E        db    CTRL
  210. Ctrl+RightArrow
  211. 028F          db    2
  212. 0290        db    0,74h
  213. 0292        db    1
  214. 0293        db    CTRLF
  215. Ctrl+ScrollLock
  216. 0294        db    2
  217. 0295        db    0,00h
  218. 0297        db    1
  219. 0298        db    0
  220. Del
  221. 0299        db    2
  222. 029A        db    0,53h
  223. 029C        db    1
  224. 029D        db    7fh
  225. ^@
  226. 029E        db    2
  227. 029F        db    0,03h
  228. 02A1        db    1
  229. 02A2        db    0
  230. Ctrl+PgUp
  231. 02A3        db    2
  232. 02A4        db    0,84h
  233. 02A6        db    1
  234. 02A7        db    CTRLW
  235. Ctrl+PgDn
  236. 02A8        db    2
  237. 02A9        db    0,76h
  238. 02AB        db    1
  239. 02AC        db    CTRLZ
  240. Shift+BackTab
  241. 02AD        db    2
  242. 02AE        db    0,0fh
  243. 02B0        db    1
  244. 02B1        db    CTRLL
  245. Alt+F
  246. 02B2        db    2
  247. 02B3        db    0,21h
  248. 02B5        db    2
  249. 02B6        db    CTRLRB,'F'
  250. Alt+E
  251. 02B8        db    2
  252. 02B9        db    0,12h
  253. 02BB        db    2
  254. 02BC        db    CTRLRB,'E'
  255. Alt+A
  256. 02BE        db    2
  257. 02BF        db    0,1eh
  258. 02C1        db    2
  259. 02C2        db    CTRLRB,'A'
  260. Alt+G
  261. 02C4        db    2
  262. 02C5        db    0,22h
  263. 02C7        db    2
  264. 02C8        db    CTRLRB,'G'
  265. Alt+W
  266. 02CA        db    2
  267. 02CB        db    0,11h
  268. 02CD        db    2
  269. 02CE        db    CTRLRB,'W'
  270. Alt+L
  271. 02D0        db    2
  272. 02D1        db    0,26h
  273. 02D3        db    2
  274. 02D4        db    CTRLRB,'L'
  275. Alt+S
  276. 02D6        db    2
  277. 02D7        db    0,1fh
  278. 02D9        db    2
  279. 02DA        db    CTRLRB,'S'
  280. Alt+O
  281. 02DC        db    2
  282. 02DD        db    0,18h
  283. 02DF        db    2
  284. 02E0        db    CTRLRB,'O'
  285. Alt+1 (Preview) 
  286. 02E2        db    2
  287. 02E3        db    0,78h
  288. 02E5        db    2
  289. 02E6        db    CTRLO,CTRLP
  290. Alt+0 (Style)
  291. 02E8        db    2
  292. 02E9        db    0,81h
  293. 02EB        db    4
  294. 02EC        db    CTRLO,CTRLF,CTRLS,CTRLX
  295.  
  296.  End of IBM function keys on right hand side
  297.         db    0
  298. 02F1        dw    morpat
  299.  
  300. = 00AF    FUNTBZ    equ    $-funtbl        Size of FUNTBL
  301.  
  302. Extra bytes to fill out to 200th byte
  303. 02F3        db    (200-FUNTBZ) dup(0)
  304.  
  305.  
  306. FUNLAB is usually used to show function key labels at the bottom of
  307. the screen. However, it could be used for any purpose. The first
  308. byte indicates how many lines are to be used, with a pointer to each
  309. line immediately after it.  Lines will appear in all help levels above
  310. 0, unless LABHP4 is 0, in which case no function key labels will be shown
  311. on help level 4.
  312.  
  313. A hex 02 encountered within the line means to turn highlighting on.
  314. A hex 01 means to turn it off. A hex 00 indicates the end of the line.
  315.  
  316. Currently available on the IBM PC only.
  317.  
  318. Two lines of labels for IBM PC
  319. 030C    funlab    label    byte
  320. 030C        db    2
  321.  
  322. 030D        dw    funla1        Points to 2nd line from bottom
  323. 030F        dw    funla2        Points to 1st line from bottom
  324.  
  325. 0311    funla1    db      ' ',2,'Display' Shifted F1-F10
  326. 031A        db    1,' ',2,'Center '
  327. 0324        db    1,' ',2,'ChkRest'
  328. 032E        db    1,' ',2,'ChkWord'
  329. 0338        db    1,' ',2,'Del Blk'
  330. 0342        db    1,' ',2,'HideBlk'
  331. 034C        db    1,' ',2,'MoveBlk'
  332. 0356        db    1,' ',2,'CopyBlk'
  333. 0360        db    1,' ',2,'Beg Blk'
  334. 036A        db    1,'1',2,'End Blk'
  335. 0374        db    0
  336. 0375        db      '1',2,'Help   ' F1-F10
  337. 037E        db    1,'2',2,'Undo   '
  338. 0388        db    1,'3',2,'Undrlin'
  339. 0392        db    1,'4',2,'Bold   '
  340. 039C        db    1,'5',2,'DelLine'
  341. 03A6        db    1,'6',2,'DelWord'
  342. 03B0        db    1,'7',2,'Align  '
  343. 03BA        db    1,'8',2,'Ruler  '
  344. 03C4        db    1,'9',2,'Save & '
  345. 03CE        db    1,'0',2,'Done   '
  346. 03D8        db    0
  347.  
  348. Opening Menu function key assignments
  349.  
  350. Two chars describes function key. Null plus keycode. No replacement.
  351. 03D9    opntbl    db    2
  352. 03DA        db    0,48h
  353. 03DC        db    0
  354. DownArrow
  355. 03DD        db    2
  356. 03DE        db    0,50h
  357. 03E0        db    0
  358. LeftArrow
  359. 03E1        db    2
  360. 03E2        db    0,4bh
  361. 03E4        db    0
  362. RightArrow
  363. 03E5        db    2
  364. 03E6        db    0,4dh
  365. 03E8        db    0
  366. PgUp
  367. 03E9        db    2
  368. 03EA        db    0,49h
  369. 03EC        db    0
  370. PgDn
  371. 03ED        db    2
  372. 03EE        db    0,51h
  373. 03F0        db    0
  374. Home
  375. 03F1        db    2
  376. 03F2        db    0,47h
  377. 03F4        db    0
  378. End
  379. 03F5        db    2
  380. 03F6        db    0,4fh
  381. 03F8        db    0
  382. Ctrl+PrtSc
  383. 03F9        db    2
  384. 03FA        db    0,72h
  385. 03FC        db    0
  386. Ins
  387. 03FD        db    2
  388. 03FE        db    0,52h
  389. 0400        db    0
  390. Del
  391. 0401        db    2
  392. 0402        db    0,53h
  393. 0404        db    0
  394.  
  395. 0405        db    0        End
  396. 0406        dw    funtb2        Share some definitions with Edit Menu
  397. = 002F    opntbz    equ    $-opntbl    Size of OPNTBL
  398.  
  399. Extra bytes to fill out to 100th byte
  400. 0408        db    (100-opntbz) dup(0)
  401.  
  402. Prompts function key assignments
  403. Home
  404. 043D    prmtbl    db    2
  405. 043E        db    0,47h
  406. 0440        db    0
  407. End
  408. 0441        db    2
  409. 0442        db    0,4fh
  410. 0444        db    0
  411. Ctrl+Home
  412. 0445        db    2
  413. 0446        db    0,77h
  414. 0448        db    0
  415. Ctrl+End
  416. 0449        db    2
  417. 044A        db    0,75h
  418. 044C        db    0
  419. Ins
  420. 044D        db    2
  421. 044E        db    0,52h
  422. 0450        db    0
  423. Ctrl+PrtSc
  424. 0451        db    2
  425. 0452        db    0,72h
  426. 0454        db    0
  427.  
  428. 0455        db    0        End
  429. 0456        dw    funtb1        Share some definitions with Edit Menu
  430.  
  431. = 001B    prmtbz    equ    $-prmtbl    Size of PRMTBL
  432.  
  433. Extra bytes to fill out to 100th byte
  434. 0458        db    (100-prmtbz) dup(0)
  435.  
  436. TERMINAL PATCH AREA
  437.  
  438. This section contains the user-modifiable constants and routines for
  439. hardware-dependent terminal functions and characteristics required by
  440. the editor.
  441.  
  442. There are three types of patches in this area. One can patch data values
  443. (HITE, WIDE) which describe the terminal, strings (CLEAD1, ERAEOL) which
  444. define control sequences, or actual microprocessor instructions.
  445.  
  446. For the string sequences, the first byte of the patch indicates the number
  447. of bytes in the string, followed by that many string bytes. If there is
  448. insufficient room for the whole string, the format can be modified by putting
  449. a -1 (0FFH) where the number of bytes would go, and then putting the address
  450. in the following two bytes (low order byte first) of the address where the
  451. longer patch resides. The longer patch must then be of the normal format which
  452. is the number of bytes followed by the string.
  453.  
  454. This area is normally patched for your specific terminal by the interactive
  455. INSTALL program. Additional patching to this area is needed only for unusual
  456. terminals or video boards, or to meet special requirements, or to enhance or
  457. personalize your copy of WordStar.
  458.  
  459. Video screen height, width, and wrap-around parameters are required.
  460.  
  461. Must be exact screen height in lines
  462. 04A1    hite    db    25
  463.  
  464. Must be <= exact screen width in columns.
  465. 04A2    wide    db    80
  466.  
  467. Indicates if terminal wraps around to next line if a character is displayed
  468. in WIDth column of screen (set FALSE if it doesn't)
  469. 04A3    wrap    db    FALSE
  470.  
  471. TRUE if XON/XOFF protocol to be used for the CRT terminal
  472. 04A4    xonoff    db    FALSE
  473.  
  474. Number of columns that are horizontally scrolled when cursor moves beyond
  475. right or left side of screen.
  476. 04A5    scroll    db    20
  477.  
  478. Show directory at choosing a file prompt
  479. 04A6    dirsiz    db    TRUE
  480.  
  481. Reserved
  482. 04A7        db    0,0,0,0,0,0
  483.  
  484. Delete String
  485.  
  486. The following string indicates to WordStar how to display a delete character
  487. (hex 7F) on the screen while editing. On terminals that interpret the delete
  488. character code into a displayable character, it is recommended that DELSTR
  489. be translated into the delete code itself (length of 1, then 7FH).
  490. All characters in the string must display.
  491.  
  492. Number of chars in string. What is displayed. 3 spare bytes.
  493. 04AD    delstr    db    1
  494. 04AE        db    DEL
  495. 04AF        db    0,0,0
  496.  
  497. Soft and End of Line Hyphen String
  498.  
  499. In order to distinguish soft hyphens from normal hyphens in the text,
  500. WordStar will substitute the following string when one is encountered.
  501.  
  502. Number of chars in string. What is displayed. Spare bytes.
  503. 04B2    shystr    db    1
  504. 04B3        db    '='
  505. 04B4        db    0,0,0
  506.  
  507. Block Marker Strings
  508.  
  509. Block marker strings are displayed on the screen to show the start and
  510. end of a block of text. The strings are in the typical format of the
  511. length followed by as many characters. Control characters should not
  512. be included within these strings because they would not be sent
  513. directly to the screen.
  514.  
  515. Three chars. Begin block. 1 spare.
  516. 04B7    bblock    db    3
  517. 04B8        db    '<B>'
  518. 04BB        db    0
  519.  
  520. Three chars. End block. 1 spare.
  521. 04BC    kblock    db    3
  522. 04BD        db    '<K>'
  523. 04C0        db    0
  524.  
  525. Special characters
  526.  
  527. 04C1    softsp    db    0fah        Small dot for soft spaces
  528. 04C2        db    0c4h        Page break line
  529. 04C3        db    0feh        Binding space
  530. 04C4        db    0f0h        Snaking column indicator
  531. 04C5        db    0cdh        Column break line
  532. 04C6        db    '.'        Dot leader
  533. 04C7        db    0,0,0,0,0,0,0,0    Reserved
  534.  
  535. Screen marker characters appear at the right-hand edge of the screen.
  536. This table allows conversion to some other character.
  537.  
  538. 04CF    scmark    db    '<'        Hard line ending
  539. 04D0        db    ' '        Paragraph line ending
  540. 04D1        db    '+'        Long line
  541. 04D2        db    '^'        End of file
  542. 04D3        db    '-'        Overstrike line
  543. 04D4        db    'J'        Line feed
  544. 04D5        db    'F'        Form feed
  545. 04D6        db    'P'        Page break
  546. 04D7        db    'C'        Column break
  547. 04D8        db    'W'        Window separator
  548. 04D9        db    '.'        Dot command
  549. 04DA        db    '1'        Dot command at start of page
  550. 04DB        db    ':'        Merge print dot command
  551. 04DC        db    '?'        Unknown dot command
  552. 04DD        db    0,0,0,0,0,0,0,0    Reserved
  553. 04E5        db    0,0,0,0,0,0,0,0
  554.  
  555. The following string is used at sign-on to describe the type
  556. of terminal being used by WordStar. Up to 40 bytes are available
  557. for the string, including its null terminator.
  558. 04ED  crtid    db    'IBM PC Compatible (Includes'
  559. 0508        db    ' EGA and VGA)',CR,LF,0    Terminal name
  560.  
  561. Cursor positioning control sequences are required.
  562.  
  563. Cursor positioning for most terminals is accomplished by sending:
  564.  
  565. 1. A 'lead-in' string of one or more terminal specific characters.
  566. 2. The line number, with an offset (often 20H) added. For some terminals,
  567.    the column number is sent first.
  568. 3. For some terminals, another 'lead-in' string.
  569. 4. The column (or line) number, with an offset.
  570. 5. For some terminals, a terminating string.
  571.  
  572. For most terminals, the line and column number are sent as one-byte binary
  573. numbers. Some terminals require that a two- or three-digit ASCII number is
  574. sent.
  575.  
  576. For terminals that do not fit the above patterns, you must code your own
  577. subroutine.
  578.  
  579. For example, the cursor is positioned on the TeleVideo terminal by sending:
  580.     ESCAPE, '=', line number plus 20H, column number plus 20H.
  581. 0518    clead1    db    0        Initial lead-in string
  582. 0519        db    0        First character
  583. 051A        db    0        Second character
  584. 051B        db    0,0        Space for two more characters
  585. 051D    clead2    db    0        Sent between line and column
  586. 051E        db    0        example. First character
  587. 051F        db    0,0,0        Space for three more characters
  588. 0522    ctrail    db    0        Terminating string
  589. 0523        db    0,0,0,0        Space for four characters
  590. 0527    cb4lfg    db    0        Send column before line?
  591.                     Set non-zero to send column first
  592. 0528    curoff    label    word        Both bytes used at one time
  593. 0528        db    0        Offset to add to line
  594. 0529        db    0        Offset to add to column
  595. 052A        db    0        Binary/ASCII digit flag
  596.                     0 to send binary line and column
  597.                     2 to send 2-digit ASCII numbers
  598.                     3 to send 3-digit ASCII numbers
  599.                     FF if WordStar to determine ASCII digits
  600.  
  601. Not used on IBM version.
  602.  
  603. 052B    ucrpos:    nop
  604. 052C        nop
  605. 052D        ret
  606. 052E    oncur:    nop
  607. 052F        nop
  608. 0530        ret
  609. 0531    offcur:    nop
  610. 0532        nop
  611. 0533        ret
  612.  
  613. Everything in the rest of this section is optional. The items relate either
  614. to enhance or for accomodating unusual terminals.
  615.  
  616. Erase screen. If this function is not available, leave the first byte zero,
  617. and the editor will either send line feeds, or update a screen of text using
  618. ERAEOL below.
  619.  
  620. After the screen is erased, WordStar assumes that the video attributes are
  621. set to normal, and that the cursor is at the home position (upper left hand
  622. corner).
  623. 0534    erascr    db    1        Number of characters
  624. 0535        db    CTRLZ        First character
  625. 0536        db    0,0,0,0,0,0,0,0    15 more
  626. 053E        db    0,0,0,0,0,0,0
  627.  
  628. Backspace one character string. If this function is not available, leave the
  629. first byte zero, and the editor will use cursor addressing to backspace.
  630. 0545    bakspc    db    0        Number of characters
  631. 0546        db    0        First character
  632. 0547        db    0,0,0        Additional characters
  633.  
  634. Erase to end of line string. If this function is not available, leave the
  635. first byte zero, and the editor will perform the function more slowly via
  636. software.
  637. 054A    eraeol    db    1        Number of characters
  638. 054B        db    CTRLT        First character
  639. 054C        db    0,0,0        Additional characters
  640.  
  641. Erase to end of screen string. If this function is not available, leave the
  642. first byte zero, and the editor will user erase by blanking.
  643. 054F    eraeos    db    0        Number of characters
  644. 0550        db    0        First character
  645. 0551        db    0,0,0        Additional characters
  646.  
  647. Delete screen line containing the cursor, and move lower lines on the screen
  648. up one line. If this function is not available, leave the first byte zero,
  649. and the editor will perform the function more slowly via software.
  650. 0554    lindel    db    1        Number of characters
  651. 0555        db    CTRLR        First character
  652. 0556        db    0,0,0        Additional characters
  653.  
  654. Insert a blank line on the screen, moving the line containing the cursor, and
  655. the lines below it down one line. If this function is not available, leave the
  656.  first byte zero, and the editor will perform the function more slowly via
  657. software.
  658. 0559    linins    db    1        Number of characters
  659. 055A        db    CTRLE        First character
  660. 055B        db    0,0,0        Additional characters
  661.  
  662. WordStar will use LINDEL and LININS to delete or insert a group of lines
  663. rather than just displaying a whole new screenful of characters. LINMAX
  664. below indicates the maximum number of lines that this would generally be
  665. faster than the re-display. Set to zero if don't care.
  666. 055E    linmax    db    0        Don't care
  667.  
  668. Delete the character at the current cursor position, moving all following
  669. characters left one position. If not available leave the first byte zero
  670. and WordStar will repaint the line.
  671. 055F    chrdel    db    0        Number of characters
  672. 0560        db    0        First character
  673. 0561        db    0,0,0        Additional characters
  674.  
  675. Insert a blank on the screen at the current cursor position, moving following
  676. characters to the right. Leave first byte zero if unavailable so that WordStar
  677. will repaint line.
  678. 0564    chrins    db    0        Number of characters
  679. 0565        db    0        First character
  680. 0566        db    0,0,0        Additional characters
  681.  
  682. Terminal initialization string. A string of bytes which will be sent to the
  683. terminal at the beginning of a session. See also INISUB.
  684. 0569    trmini    db    -1        Number of bytes
  685. 056A        dw    erascr        Use extension mechanism (-1 as byte
  686. 056C        db    0,0        count) to erase screen as initialization.
  687.  
  688. Terminal un-initialization string. A string of bytes which will be sent to the
  689. terminal at the end of a session. See also UNISUB.
  690. 056E    trmuni    db    -1        Number of bytes
  691. 056F        dw    erascr
  692. 0571        db    0,0
  693.  
  694. User-patchable initialization subroutine. Called before the TRMINI string is
  695. sent. This subroutine may be used for special console initialization or other
  696. purposes. See UCRPOS comments.
  697.  
  698. Normally NOP, or JMP to to 'undo' any special terminal status used for the
  699. editor. See UCRPOS comments.
  700. 0573    inisub:    nop
  701. 0574        nop
  702. 0575        ret
  703.  
  704. Normally NOP, or JMP to your subroutine.
  705. 0576    unisub:    nop
  706. 0577        nop
  707. 0578        ret
  708.  
  709. Video attributes are used in various places on the WordStar display.
  710. When a video attribute changes, WordStar calls the VIDATT subroutine
  711. below with a video attribute code in the CX register. If the CH
  712. register is zero, WordStar is displaying regular text and the CL
  713. register bits mean the following video attributes are to be used...
  714.  
  715. Bit    Video Attribute
  716.  
  717. none    Normal text
  718.  0    Strike-out
  719.  1    Reserved
  720.  2    Marked text
  721.  3    Underlining
  722.  4    Subscripting
  723.  5    Superscripting
  724.  6    Highlighting
  725.  7    Italic
  726.  
  727. If the CH register is non-zero, its bits have the following meaning...
  728.  
  729. Bit    Video Attribute
  730.  
  731.  0    Extended characters
  732.  1    Status line
  733.  2    Menu text (can be normal or highlighted depending on CL)
  734.  3    Function key labels
  735.  4    Ruler line
  736.  5    Directory
  737.  6    Warnings and error messages
  738.  
  739. WordStar expects the video attribute for the character to be returned
  740. in the AL register. Here is the default mapping for some of the
  741. WordStar video attributes into IBM attributes...
  742.  
  743. WordStar Video    IBM Video    Function
  744.  
  745.   00000000     00000111    Normal
  746.   01110001     00001000    Bright
  747.   00001000     00000001    Underline
  748.   00000100     00010000    Inverse
  749.   00000010     10000000    Blink
  750.  
  751.  
  752.  
  753. The VIDATT subroutine is used to change video attributes on the screen.
  754. On entry, WordStar will supply the attributes to turn on in the CX register.
  755. You must translate them into whatever your particular terminal requires.
  756.  
  757. Return the IBM video attribute byte in AL.
  758.  
  759. IBM Video Conversion
  760.  
  761.     vidax    equ    byte ptr ds:[4]    Data segment location for VIDATT use
  762. 0579    vidatt:
  763. 0579        mov    si,offset vcolor+1
  764. 057C        mov    al,cs:[si]    Get normal color
  765. 057F        jcxz    vida4        Normal?
  766. 0581        mov    ah,al
  767. 0583        mov    dh,vidax    Know video type?
  768. 0587        inc    dh
  769. 0589        jnz    vida1
  770. Initialize
  771. 058B        push    cx
  772. 058C        mov    ah,15        Get video type
  773. 058E        int    10h
  774. 0590        mov    vidax,al
  775. 0593        pop    cx
  776. 0594        jmp    vidatt
  777. Non-text attributes
  778. 0596    vida1:    test    ch,11111110b    Not special text?
  779. 0599        jz    vida5
  780. 059B        mov    al,ch        Status line?
  781. 059D        mov    bl,17
  782. 059F        shr    al,1
  783. 05A1        shr    al,1
  784. 05A3        jc    vida3
  785. 05A5        inc    bl        Menu?
  786. 05A7        shr    al,1
  787. 05A9        jc    vida2
  788. 05AB        mov    bl,17+3        Function key labels?
  789. 05AD        shr    al,1
  790. 05AF        jc    vida2
  791. 05B1        mov    bl,17+7        Ruler line?
  792. 05B3        shr    al,1
  793. 05B5        jc    vida3
  794. 05B7        mov    bl,17+5        Directory?
  795. 05B9        shr    al,1
  796. 05BB        jc    vida2
  797. 05BD        mov    bl,17+8        Warnings
  798. 05BF    vida2:    or    cl,cl        Normal video?
  799. 05C1        jz    vida3
  800. 05C3        test    cl,100b        Inverse
  801. 05C6        jnz    vida4a
  802. 05C8        inc    bl        Highlighted
  803. 05CA    vida3:    xor    bh,bh        Get video attribute from VCOLOR
  804. 05CC        mov    al,cs:[si+bx]
  805. 05CF    vida4:    ret
  806. 05D0    vida4a:    call    vida3        Invert colors
  807. 05D3        mov    cl,4
  808. 05D5        jmp    short vida7a
  809. Use VCOLOR table to convert WordStar video bits
  810. 05D7    vida5:    mov    ch,cl        Original bits to CH
  811. 05D9        mov    dl,8        Go through table
  812. 05DB        inc    si
  813. 05DC    vida6:    shr    cl,1        Bit not set?
  814. 05DE        jnc    vida7
  815. 05E0        and    al,cs:[si]    AND with mask, OR with new color
  816. 05E3        or    al,cs:[si+1]
  817. 05E7    vida7:    inc    si        Next color in table
  818. 05E8        inc    si
  819. 05E9        dec    dl
  820. 05EB        jnz    vida6
  821. 05ED        mov    cl,4        CL=4
  822. 05EF        test    ch,cl        Not marking a block?
  823. 05F1        jz    vida10
  824. Don't use inverse?
  825. 05F3    vida7a:    test    cs:ibmflg,01000000b Bit set indicating "no inverse"?
  826. 05F9        jnz    vida11
  827. 05FB        cmp    dh,8        Color screen?
  828. 05FE        jnz    vida9
  829. B&W
  830. 0600        test    al,01110110b    Not underlining?
  831. 0604        jnz    vida8
  832. 0604        mov    al,ah        Use normal color
  833. 0606    vida8:    xor    al,00001000b    Invert bright
  834. Color
  835. 0608    vida9:    mov    dh,al        Swap foreground & background colors
  836. 060A        mov    dl,al
  837. 060C        shl    dh,cl
  838. 060E        and    dh,01110000b
  839. 0611        shr    dl,cl
  840. 0613        and    dl,00000111b
  841. 0616        and    al,10001000b
  842. 0618        or    al,dh
  843. 061A        or    al,dl
  844. 061C    vida10:    ret
  845. Use bright instead of inverse
  846. 061D    vida11:    or    al,00001000b    Set bright attribute
  847. 061F        ret
  848.  
  849. Size of VIDATT code
  850. = 00A7    vidatz    equ    $-vidatt
  851.  
  852. Extra bytes to fill out to 300th byte
  853. 0620        db    (300-vidatz) dup(0)
  854.  
  855. Video attributes used in VIDATT for the IBM compatible video RAM. Note
  856. that the table is used both for monochrome and color and should be
  857. installed accordingly. The default is set up for monochrome.
  858.  
  859. Each entry in the table contains both a mask that is AND'd with the video
  860. attribute, and a color code that is OR'd.
  861.  
  862. The IBM PC uses a video attribute byte for each character. It is
  863. organized in the following way:
  864.  
  865. Bit    Function
  866.  
  867. 0,1,2    Foreground color (characters)
  868. 3    Bright
  869. 4,5,6    Background color
  870. 7    Blink
  871.  
  872. The color codes for the IBM PC are:
  873.  
  874. 0 - black
  875. 1 - blue
  876. 2 - green
  877. 3 - cyan
  878. 4 - red
  879. 5 - magenta
  880. 6 - brown
  881. 7 - white (light grey)
  882.  
  883. 06A5    vcolor    db    00000000b,00000111b    Normal text white on black (no blink or bright)
  884. 06A7        db    11111111b,00001000b    Make strike-out bright
  885. 06A9        db    11111111b,00000000b    Reserved
  886. 06AB        db    11111111b,00000000b    Reverse video is inverse of normal
  887. 06AD        db    11111000b,00000001b    Monochrome underline (blue if color)
  888. 06AF        db    11111111b,00001000b    Make subscripts bright
  889. 06B1        db    11111111b,00001000b    Make superscripts bright
  890. 06B3        db    11111111b,00001000b    Make bold & doublestrike bright
  891. 06B5        db    11111111b,00001000b    Bright italics
  892. 06B7        db    01110000b        Status line
  893. 06B8        db    00000111b        Normal menu text
  894. 06B9        db    00001111b        Bright menu text
  895. 06BA        db    00000111b        Function keys
  896. 06BB        db    01110000b        Bright function keys
  897. 06BC        db    00000111b        Directories
  898. 06BD        db    01110000b        Directory headings
  899. 06BE        db    01110000b        Ruler line
  900. 06BF        db    00000111b        Normal warning text
  901. 06C0        db    00001111b        Bright warning text
  902.  
  903. = 00    vcoloz    equ    $-vcolor        Size of VCOLOR
  904.  
  905. Extra bytes to fill out to 30th byte
  906. 06C1        db    (30-vcoloz) dup(0)
  907.  
  908. Normally the status line and text are displayed in dim intensity
  909. so that bold and doublestruck text can be shown in high intensity.
  910. Setting BRITE to 0FFH reverses the usage of bright and dim for
  911. the status line, text, and directorieszero normally.
  912. 06C3    brite    db    0        Don't reverse
  913.  
  914. WordStar attempts to draw a box around most of the menus using the following
  915. box drawing characters.
  916. 06C4    boxchr    db    0cdh        Horizontal line
  917. 06C5        db    0bah        Vertical line
  918. 06C6        db    0c9h        Upper left corner
  919. 06C7        db    0c8h        Lower left corner
  920. 06C8        db    0bbh        Upper right corner
  921. 06C9        db    0bch        Lower right corner
  922. 06CA        db    0,0,0,0,0,0    Reserved
  923.  
  924. Delays executed after various terminal functions, before
  925. the next character is sent to the terminal, to
  926. allow response time required by certain terminals
  927. when operating at a high baud rate. Set to a
  928. larger value if you suffer a loss of characters
  929. after a terminal function.
  930.  
  931. Note that an additional delay FUNDLY is located near the
  932. function key table FUNTBL above.
  933.  
  934. Each delay is approximately the number of milliseconds
  935. on a 8088 processor. An 8086 may be consideraby
  936. faster.
  937.  
  938. No delay after cursor positioning (if your terminal works better with
  939. 5 milliseconds of delay, you would put a "5" here)
  940. 06D0    delcus    db    0
  941.  
  942. 06D1    delmis    db    0        No delay after ERASCR and TRMINI
  943.  
  944. If XON/XOFF used for terminal, sometimes a legitimate ^S will be interpreted
  945. as an XOFF character. DXOFF is used to time out so that the terminal will
  946. continue.
  947. 06D2    dxoff    dw    0
  948.  
  949. Long delays (2 seconds = 2,000 milliseconds) - between sign-on message and
  950. Opening Menu - hold off accidental unerase after ^U is used to cancel
  951. something
  952. 06D4    dlong    dw    2000
  953.  
  954. Medium delays (1 second = 1,000 milliseconds) - hold off submenu (^Q ^K ^O
  955. ^P Esc) to prevent menus from appearing when typing commands quickly
  956. 06D6    dmed    dw    1000
  957.  
  958. Short delays (200 milliseconds) - find and replace flashing rate between
  959. text and Replace Y/N question - delay between ^QQ repeated commands
  960. - directory hold off delay if typing fast at prompts - hold off help for
  961. prompt if typing fast
  962. 06D8    dshort    dw    200
  963.  
  964. Page/line/column update delay after moving the cursor
  965. 06DA    updly    dw    75
  966.  
  967. Disk access delay. If character typed during disk access, wait for more
  968. typing before continuing.
  969. 06DC    ddisk    dw    0
  970.  
  971. Delay when typing fast. Holds off displaying the rest of the line briefly.
  972. 06DE    dfast    dw    50
  973.  
  974. Delay before auto realignment after typing or deleting within a paragraph.
  975. 06E0    dalign    dw    500
  976.  
  977. Not used in the IBM version.
  978.  
  979. 06E2    ucnsta:    nop
  980. 06E3        nop
  981. 06E4        ret
  982. 06E5    uconi:    nop
  983. 06E6        nop
  984. 06E7        ret
  985.  
  986. 06E8    ucono:    nop
  987. 06E9        nop
  988. 06EA        ret
  989.  
  990. This is 384 bytes set aside for anything that the user wishes to use. For
  991. the IBM it is used for defining function keys F1 through F10.
  992. 06EB    morpat    db    2
  993. 06EC        db    0,3bh        F1
  994. 06EE        db    1
  995. 06EF        db    CTRLJ
  996. 06F0        db    2
  997. 06F1        db    0,3ch        F2
  998. 06F3        db    1
  999. 06F4        db    CTRLU
  1000. 06F5        db    2
  1001. 06F6        db    0,3dh        F3
  1002. 06F8        db    2
  1003. 06F9        db    CTRLP,CTRLS
  1004. 06FB        db    2
  1005. 06FC        db    0,3eh        F4
  1006. 06FE        db    2
  1007. 06FF        db    CTRLP,CTRLB
  1008. 0701        db    2
  1009. 0702        db    0,3fh        F5
  1010. 0706        db    1
  1011. 0707        db    CTRLY
  1012. 0706        db    2
  1013. 0707        db    0,40h        F6
  1014. 0709        db    1
  1015. 070A        db    CTRLT
  1016. 070B        db    2
  1017. 070C        db    0,41h        F7
  1018. 070E        db    3
  1019. 070F        db    CTRLB,CTRLQ,CTRLP
  1020. 0712        db    2
  1021. 0713        db    0,42h        F8
  1022. 0715        db    4
  1023. 0716        db    CTRLQ,CTRLS,CTRLO,CTRLO
  1024. 071A        db    2
  1025. 071B        db    0,43h        F9
  1026. 071D        db    2
  1027. 071E        db    CTRLK,CTRLS
  1028. 0720        db    2
  1029. 0721        db    0,44h        F10
  1030. 0723        db    2
  1031. 0724        db    CTRLK,CTRLD
  1032. 0726        db    2
  1033. 0727        db    0,54h        Shift+F1
  1034. 0729        db    2
  1035. 072A        db    CTRLO,CTRLD
  1036. 072C        db    2
  1037. 072D        db    0,55h        Shift+F2
  1038. 072F        db    2
  1039. 0730        db    CTRLO,CTRLC
  1040. 0732        db    2
  1041. 0733        db    0,56h        Shift+F3
  1042. 0735        db    2
  1043. 0736        db    CTRLQ,CTRLL
  1044. 0738        db    2
  1045. 0739        db    0,57h        Shift+F4
  1046. 073B        db    2
  1047. 073C        db    CTRLQ,CTRLN
  1048. 073E        db    2
  1049. 073F        db    0,58h        Shift+F5
  1050. 0741        db    2
  1051. 0742        db    CTRLK,CTRLY
  1052. 0744        db    2
  1053. 0745        db    0,59h        Shift+F6
  1054. 0747        db    2
  1055. 0748        db    CTRLK,CTRLH
  1056. 074A        db    2
  1057. 074B        db    0,5ah        Shift+F7
  1058. 074D        db    2
  1059. 074E        db    CTRLK,CTRLV
  1060. 0750        db    2
  1061. 0751        db    0,5bh        Shift+F8
  1062. 0753        db    2
  1063. 0754        db    CTRLK,CTRLC
  1064. 0756        db    2
  1065. 0757        db    0,5ch        Shift+F9
  1066. 0759        db    2
  1067. 075A        db    CTRLK,CTRLB
  1068. 075C        db    2
  1069. 075D        db    0,5dh        Shift+F10
  1070. 075F        db    2
  1071. 0760        db    CTRLK,CTRLK
  1072. 0762        db    2
  1073. 0763        db    0,68h        Alt+F1
  1074. 0765        db    1
  1075. 0766        db    179
  1076. 0767        db    2
  1077. 0768        db    0,69h        Alt+F2
  1078. 076A        db    1
  1079. 076B        db    196
  1080. 076C        db    2
  1081. 076D        db    0,6ah        Alt+F3
  1082. 076F        db    1
  1083. 0770        db    218
  1084. 0771        db    2
  1085. 0772        db    0,6bh        Alt+F4
  1086. 0774        db    1
  1087. 0775        db    191
  1088. 0776        db    2
  1089. 0777        db    0,6ch        Alt+F5
  1090. 0779        db    1
  1091. 077A        db    192
  1092. 077B        db    2
  1093. 077C        db    0,6dh        Alt+F6
  1094. 077E        db    1
  1095. 077F        db    217
  1096. 0780        db    2
  1097. 0781        db    0,6eh        Alt+F7
  1098. 0783        db    1
  1099. 0784        db    194
  1100. 0785        db    2
  1101. 0786        db    0,6fh        Alt+F8
  1102. 0788        db    1
  1103. 0789        db    193
  1104. 078A        db    2
  1105. 078B        db    0,70h        Alt+F9
  1106. 078D        db    1
  1107. 078E        db    195
  1108. 078F        db    2
  1109. 0790        db    0,71h        Alt+F10
  1110. 0792        db    1
  1111. 0793        db    180
  1112. 0794        db    2
  1113. 0795        db    0,5eh        Ctrl+F1
  1114. 0797        db    2
  1115. 0798        db    CTRLQ,CTRLF
  1116. 079A        db    2
  1117. 079B        db    0,5fh        Ctrl+F2
  1118. 079D        db    2
  1119. 079E        db    CTRLQ,CTRLA
  1120. 07A0        db    2
  1121. 07A1        db    0,60h        Ctrl+F3
  1122. 07A3        db    1
  1123. 07A4        db    CTRLL
  1124. 07A5        db    2
  1125. 07A6        db    0,61h        Ctrl+F4
  1126. 07A8        db    2
  1127. 07A9        db    CTRLQ,CTRLI
  1128. 07AB        db    2
  1129. 07AC        db    0,62h        Ctrl+F5
  1130. 07AE        db    6
  1131. 07AF        db    CTRLQ,CTRLS,'.LM',CTRLN
  1132. 07B5        db    2
  1133. 07B6        db    0,63h        Ctrl+F6
  1134. 07B8        db    6
  1135. 07B9        db    CTRLQ,CTRLS,'.RM',CTRLN
  1136. 07BF        db    2
  1137. 07C0        db    0,64h        Ctrl+F7
  1138. 07C2        db    7
  1139. 07C3        db    CTRLQ,CTRLS,'.PM6',CR
  1140. 07CA        db    2
  1141. 07CB        db    0,65h        Ctrl+F8
  1142. 07CD        db    6
  1143. 07CE        db    CTRLQ,CTRLS,'.PA',CR
  1144. 07D4        db    2
  1145. 07D5        db    0,66h        Ctrl+F9
  1146. 07D7        db    2
  1147. 07D8        db    CTRLQ,CTRLS
  1148. 07DA        db    2
  1149. 07DB        db    0,67h        Ctrl+F10
  1150. 07DD        db    2
  1151. 07DE        db    CTRLQ,CTRLD
  1152. 07E0        db    0        End of function keys
  1153. 07E1        dw    0
  1154.  
  1155. = 00F8    morpaz    equ    $-morpat
  1156.  
  1157. Fill out to 384th byte
  1158. 07E3        db    (384-morpaz) dup(0)
  1159.  
  1160. The following string is used to describe the name of the default
  1161. printer used by WordStar. Up to 40 bytes are provided for the
  1162. string, including its null terminator.
  1163. 086B    PRNID    db    'Draft Printer',CR,LF,0        Printer name
  1164. 087B        db    '                        '    Additional room
  1165.  
  1166. WordStar uses a default printer driver if none is specified by the
  1167. user. The following is its name. It may be up to eight characters
  1168. long, null terminated.
  1169. 0893    defprn    db    'DRAFT',0,0,0,0    Standard driver
  1170.  
  1171. The following strings are used to describe the name of the default
  1172. font for normal, alternate, line numbering, footnote and endnote text.
  1173. They may each be up to 15 characters, null terminated.
  1174. 089C    nrmfid    db    15 dup (0),0
  1175. 08AC    altfid    db    15 dup (0),0
  1176. 08BC    linfid    db    15 dup (0),0
  1177. 08CC    fotfid    db    15 dup (0),0
  1178. 08DC    endfid    db    15 dup (0),0
  1179. 08EC        db    0,0,0,0,0,0,0,0,0 Reserved
  1180.  
  1181. The print delay timer is used to time how long the printer is busy
  1182. before telling the user that it's been busy a long time. This would
  1183. primarily be used when the printer was in another room and you might
  1184. not know that it was busy due to a paper jam or being off line.
  1185.  
  1186. Delay before saying printer busy 20 seconds = 20,000 milliseconds.
  1187. Disabled if zero
  1188. 08F5    prndly    dw    0
  1189.  
  1190. Some users, like programmers, may want to usually print non-documents.
  1191. In this case, WordStar prints any lines that begin with a period (dot
  1192. commands), and expands tab characters (09H) according to the filetype
  1193. in the EDCOND table elsewhere in the User Area.
  1194. 08F7    pnodoc    db    FALSE        Don't print as a non-document
  1195. 08F8        db    0        Reserved
  1196.  
  1197. Normally WordStar will print your document in the background so that
  1198. you can then do something else while it is printing. This feature
  1199. can be turned off.
  1200.  
  1201. If a "print wait" occurs during background printing, the following
  1202. byte byte determines whether or not to beep to get your attention.
  1203. 08F9    bakprn    db    TRUE        Background printing is on
  1204. 08FA        db    TRUE        Beep at a "print wait"
  1205.  
  1206. User list device output subroutines are used if the normal systems list
  1207. device is not to be used. The user subroutine overrides the LSTDEV
  1208. selection below.
  1209.  
  1210. User list output status subroutine. Normally NOP, or JMP to your own
  1211. subroutine. Must return 0 in AL if list device is busy, 0FFH if idle.
  1212. 08FB    ulosta:    nop
  1213. 08FC        nop
  1214. 08FD        ret
  1215.  
  1216. User list output subroutine. Normally NOP, or JMP to your own subroutine.
  1217. Subroutine receives the character in AL.
  1218. 08FE    ulsto:    nop
  1219. 08FF        nop
  1220. 0900        ret
  1221.  
  1222. User list input subroutines are used if either XON/XOFF or ETX/ACK
  1223. protocols are used to indicate when the printer is busy.
  1224.  
  1225. On IBM PCs, if the list device is defined for COMx, these routines are
  1226. not required. 
  1227.  
  1228. User list input status subroutine. Normally NOP, or JMP to your own
  1229. subroutine if XON/XOFF or ETX/ACK protocol. Must return 0 in AL if no
  1230. char pending.
  1231. 0901    ulista:    nop
  1232. 0902        nop
  1233. 0903        ret
  1234.  
  1235. User list input subroutine. Normally NOP, or JMP to your own subroutine if
  1236. XON/XOFF or ETX/ACK protocol. Returns character in AL.
  1237. 0906    ulsti:    nop
  1238. 0905        nop
  1239. 0906        ret
  1240.  
  1241. Before printing, WordStar will call ULPORT below to allow for custom
  1242. print output redirection. A pointer to the name of the printer (null
  1243. terminated, all capital letters) will be passed to the subroutine in BX.
  1244. It is up to this subroutine to then route the printer output to the
  1245. appropriate output port by whatever means is available to it.
  1246.  
  1247. Normally NOP if no redirection to be done. Change to JMP to your own
  1248. subroutine.
  1249. 0907    ulport:    nop
  1250. 0908        nop
  1251. 0909        ret
  1252.  
  1253. The user list device uninitialize routine is called after printing is
  1254. completed, and can be used to restore the printer state for non-WordStar
  1255. applications.
  1256.  
  1257. Uninitialize list device after printing
  1258. 090A    ulunpt:    nop
  1259. 090B        nop
  1260. 090C        ret
  1261.  
  1262. When WordStar begins printing, space is allocated for accumulating
  1263. header and footer lines.  HFSIZE determines how much space to allocate.
  1264. 090D    hfsize    dw    2048        2k bytes
  1265.  
  1266. DATSEP is the character used while merge printing to separate data
  1267. items in a data file.  The byte following is the character used to mark
  1268. substitution spots in the text.
  1269. 090F    datsep    db    ','        Comma
  1270. 0911        db    '-'        Strike out character
  1271.  
  1272. Color names. Color printing is only supported on color printers.
  1273. 0912    ucolor    db    'Black',0
  1274. 0918        db    'Blue',0
  1275. 091D        db    'Green',0
  1276. 0923        db    'Cyan',0
  1277. 0928        db    'Red',0
  1278. 092C        db    'Magenta',0
  1279. 0934        db    'Brown',0
  1280. 093A        db    'Light Gray',0
  1281. 0945        db    'Dark Gray',0
  1282. 094F        db    'Light Blue',0
  1283. 095A        db    'Light Green',0
  1284. 0966        db    'Light Cyan',0
  1285. 0971        db    'Light Red',0
  1286. 097B        db    'Light Magenta',0
  1287. 0989        db    'Yellow',0
  1288. 0990        db    'White on Black',0
  1289. 099F        db    0
  1290. 09A0        db    16 dup(0)    Spare
  1291.  
  1292. This is 128 bytes set aside for printer subroutines & strings.
  1293. 09B0    prnpat    dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1294. 09D0        dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1295. 09F0        dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1296. 0A10        dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1297.  
  1298. If non-standard initialization parameters are used, the following
  1299. identification string can be displayed at sign-on. Up to 40 bytes are
  1300. available for the string, including the null terminator.
  1301. 0A30    initid    db    0        No ID if standard
  1302. 0A31        db    '                   '
  1303. 0A44        db    '                    '
  1304.  
  1305. Legal Drives
  1306.  
  1307. The drives listed should be reduced to the ones that are actually in use
  1308. on the system upon which WordStar is running.
  1309.  
  1310. If the most significant bit of the drive letter is set to 1, WordStar
  1311. will assume that the drive is non-removable. A disk reset will not
  1312. be done when non-removable drives are logged.
  1313. 0A58    lgldrv    db    'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0
  1314.  
  1315. WordStar uses several files. Their names are specified here. The first
  1316. two bytes before each filename are normally zero indicating WordStar
  1317. shold search for the file as follows:
  1318.  
  1319. 1. Look on the subdirectory on the current drive.
  1320. 2. Search along the MS-DOS path.
  1321.  
  1322. If the first byte is instead a 1 through 9, WordStar will only look in the
  1323. first, second, or third default path (see DEFPTH below).
  1324.  
  1325. If the second byte is zero, WordStar uses the current drive. If it instead
  1326. is 1 through 26, WordStar only looks on one drive, A through Z respectively.
  1327.  
  1328. Filenames that have '000' as the fifth through eighth characters are
  1329. for those parts of the program that are language dependent such as spelling.
  1330. See the language table below to determine the actual file name used for
  1331. searching.
  1332. 0A73        db    1            Set to zero if never any help messages
  1333. 0A74    hpfile    db    0,0,'WSHELP  OVR'    Help
  1334. 0A81    msfile    db    0,0,'WSMSGS  OVR'    Menus and messages
  1335. 0A8E    pvfile    db    0,0,'PREVIEW OVR'    Advanced Page Preview overlay
  1336. 0A9B    pvwfile    db    3,0,'????????CRT'    Preview's .CRT files and FONTID
  1337. 0AA8    fnfile    db    0,0,'FONTID  CTL'    Font ID for Advanced page Preview
  1338. 0AB5    ixfile    db    0,0,'WSINDEX XCL'    Indexer exclusion list
  1339. 0AC2    svfile    db    0,0,'WSSHORT OVR'    Shorthand definitions
  1340. 0ACF    spfile    db    0,0,'WSSPL000OVR'    Spelling checker overlay
  1341. 0ADC    idfile    db    0,0,'SPLIN000DCT'    Personal dictionary (if required)
  1342. 0AE9    mdfile    db    0,0,'SPLMN000DCT'    Main dictionary
  1343. 0AF6    thfile    db    0,0,'WSTHS000OVR'    Thesaurus overlay
  1344. 0B03    tdfile    db    0,0,'THESR000DCT'    Thesaurus dictionary
  1345. 0B10    udfile    db    0,0,'PERSONALDCT'    Personal dictionary
  1346. 0B1D    ddfile    db    0,0,'DEFIN000DCT'    Definitions dictionary
  1347. 0B2A    hyfile    db    0,0,'WSHYP000OVR'    Hyphenation algorithm overlay
  1348. 0B37    hdfile    db    0,0,'HYPMN000DCT'    Main data file for hyphenation
  1349. 0B44    hifile    db    0,0,'HYPIN000DCT'    Indexf file for hyphenation
  1350. 0B51    pdffile    db    0,0,'????????PDF'    PDF file stuff
  1351. 0B5E    prfile    db    0,0,'????????OVR'    Printer drivers
  1352. 0B6B    cffile    db    0,0,'WS      CFG'    Configuration file
  1353. 0B78    kbfile    db    0,0,'KEYBOARDMRG'    Print from keyboard template file
  1354. 0B85    isfile    db    0,0,'INSET   EXE'    InSet program for print-time loading
  1355. 0B92    stfile    db    0,0,'WSSTYLE OVR'    Global style libarary file
  1356. 0B9F    tmfile    db    0,0,'TELMERGEEXE'    TelMerge from additional menu
  1357. 0BAC    mlfile    db    0,0,'WSLIST  COM'    MailList from additional menu
  1358.  
  1359. Nine default paths used when looking for WordStar's files. The first byte
  1360. is the length of the path name string that immediately follows. If the
  1361. string is longer than 32 characters, set the length byte to -1 and follow
  1362. it with the address of where the longer string is.
  1363. 0BB9    defpth    db    4,'\WS'        Default path 1
  1364. 0BBD        db    29 dup(0)    Room for 29 more characters
  1365. 0BDA        db    4,'\WS'        Default path 2
  1366. 0BDE        db    29 dup(0)    Room for 29 more characters
  1367. 0BFB        db    4,'\WS'        Default path 3
  1368. 0BFF        db    29 dup(0)    Room for 29 more characters
  1369. 0C1C        db    4,'\WS'        Default path 4
  1370. 0C20        db    29 dup(0)    Room for 29 more characters
  1371. 0C3D        db    4,'\WS'        Default path 5
  1372. 0C41        db    29 dup(0)    Room for 29 more characters
  1373. 0C5E        db    4,'\WS'        Default path 6
  1374. 0C62        db    29 dup(0)    Room for 29 more characters
  1375. 0C7F        db    4,'\WS'        Default path 7
  1376. 0C83        db    29 dup(0)    Room for 29 more characters
  1377. 0CA0        db    4,'\WS'        Default path 8
  1378. 0CA4        db    29 dup(0)    Room for 29 more characters
  1379. 0CC1        db    4,'\WS'        Default path 9
  1380. 0CC5        db    29 dup(0)    Room for 29 more characters
  1381.  
  1382. INILOG allows the user to specify a drive and user number or pathname
  1383. for WordStar to log onto when first started. The first byte is a count
  1384. of following charactersthe next bytes (up to three) can contain a 
  1385. drive (A-P) and optional subdirectory. (Can be redirected with a count
  1386. of -1 followed by an address where the string actually is.)
  1387. 0CE2    inilog    db    0        Don't change directories
  1388. 0CE3        db    0,0,0,0,0,0,0,0    Room for 24 chars
  1389. 0CEB        db    0,0,0,0,0,0,0,0
  1390. 0CF3        db    0,0,0,0,0,0,0,0
  1391.  
  1392. WordStar creates backup and temporary files. The following are the file
  1393. types to be used for them.
  1394. 0CFB    baktyp    db    'BAK'        Type for backup files
  1395. 0CFE    aftype    db    '$A$'        Type of spillover file after memory
  1396. 0D01    bftype    db    '$B$'        Type of spillover file before memory
  1397. 0D06    blktyp    db    '$C$'        Type of file used to buffer block move/copy
  1398. 0D07    ncltyp    db    '$D$'        Newspaper column accumulation
  1399. 0D0A    enotyp    db    '$E$'        Endnote accumulation
  1400. 0D0D    fnotyp    db    '$F$'        Footnote accumulation
  1401. 0D10    wrktyp    db    '$G$'        Workfile for typestyles
  1402. 0D13        db    3*3 dup(0)    Reserved
  1403.  
  1404. When the directory is displayed, file types from this table are suppressed.
  1405. A question mark in a file type matches any character.
  1406. 0D1C    notype    db    'COM'        Command files
  1407. 0D1F        db    'EXE'        Execution files
  1408. 0D22        db    'OVR'        Overlays
  1409. 0D25        db    '$?$'        Temporary before and after files ($A$, $B$)
  1410. 0D28        db    '$?W'        Temporaries for second window
  1411. 0D2B        db    'SYS'        User preference files
  1412. 0D2E        db    'DCT'        Dictionaries
  1413. 0D31        db    'CRT'        Compiled screen fonts
  1414. 0D34        db    'WSF'        Master screen fonts
  1415. 0D37        db    'PDF'        Printer definition files
  1416. 0D3A        db    0,0,0        Room for 2 more
  1417. 0D3D        db    0,0,0
  1418. 0D40        db    0        End of table
  1419.  
  1420. Default country (language) code.  Specifies which LNGTBL entry to use.
  1421. 0D41    lngcod    dw    1        Use United States, France would be 33
  1422.  
  1423. The following table contains a country followed by its three digit code.
  1424. The code is substituted in files that are unique for particular countries.
  1425. 0D43    lngtbl    db    10        Number of languages in table
  1426. 0D44        db    'United States   ',1fh,'001'
  1427. 0D58        db    'United Kingdom  ',1fh,'044'
  1428. 0D6C        db    'Germany         ',23h,'049'
  1429. 0D80        db    'France          ',23h,'033'
  1430. 0D94        db    'Italy           ',23h,'039'
  1431. 0DA8        db    'Spain           ',13h,'034'
  1432. 0DBC        db    'Mexico/Cent.Amer',13h,'052'
  1433. 0DD0        db    'Portugal        ',23h,'351'
  1434. 0DE4        db    'Brazil          ',13h,'055'
  1435. 0DF8        db    'Canada (French) ',17h,'002'
  1436. 0E0C        db    '                ',00h,'000'
  1437. 0E20        db    '                ',00h,'000'
  1438. 0E34        db    '                ',00h,'000'
  1439. 0E48        db    '                ',00h,'000'
  1440. 0E5C        db    '                ',00h,'000'
  1441. 0E70        db    '                ',00h,'000'
  1442.  
  1443. DIRFIL is a file name "image" that is used in conjunction with NOTYPE (above)
  1444. to determine which files are to be displayed in WordStar's directories.
  1445. DIRFIL determines which files can possibly be included, and NOTYPE then
  1446. eliminates certain types of files. Use a question mark in DIRFIL at each
  1447. spot where any file name character can match.
  1448. 0E84    dirfil    db    "???????????"    All files match
  1449.  
  1450. The name of the file to be edited can be specified at the operating system
  1451. prompt. ININON indicates whether the file should be edited as a document
  1452. or nondocument.
  1453. 0E8F    ininon    db    FALSE        Document (not a nondocument)
  1454.  
  1455. WordStar normally makes BAK backup files every time you save your work.
  1456. INITBAK can be used to disable backups by setting it FALSE.
  1457. 0E90    inibak    db    TRUE        Make backups
  1458.  
  1459. SETEOF can be set FALSE to turn off the automatic filling out of the
  1460. final record of a file with 1Ah end of file marks.
  1461. 0E91    seteof    db    TRUE        Use EOF marks
  1462.  
  1463. USEDOT determines whether or not to automatically insert dot commands
  1464. into a document after a margin or tab change.
  1465. 0E92    usedot    db    TRUE        Insert dot commands
  1466. 0E93        db    0,0        Reserved
  1467.  
  1468. When a nondocument is edited, WordStar will decide how to expand tabs
  1469. (ASCII 0BH), and whether or not to use auto-indenting by looking in this
  1470. table.
  1471.  
  1472. There is a special case of the tab masks shown below. When the most
  1473. significant bit of the tab mask is set to 1, WordStar will assume that
  1474. you want to use variable tabbing. When the tab key is typed, instead
  1475. of inserting an ASCII 0AH into the file, spaces will be entered up to
  1476. the next tab stop. The tab stops used are in the RLRINI table. An
  1477. ASCII 09H can still be entered in this mode, however, by typing ^PI.
  1478. 0E95    edcond    db    'PAS',00000001b,TRUE    File extension, followed by a
  1479. 0E9A        db    'PLI',00000011b,TRUE    binary tab mask (e.g. a mask of
  1480. 0E9F        db    'C  ',00000011b,TRUE    00000111B expands tab characters
  1481. 0EA4        db    'H  ',00000011b,TRUE    to every 8th column), followed by
  1482.                         TRUE if auto-indent is turned on.
  1483. 0EA9        db    0,0,0,00000111b,FALSE    End of table with defaults if file
  1484.                         type doesn't match above
  1485. 0EAE        db    0,0,0,0,0        Room for four more
  1486. 0EB3        db    0,0,0,0,0
  1487. 0EB8        db    0,0,0,0,0
  1488. 0EBD        db    0,0,0,0,0
  1489.  
  1490. WordStar normally only considers alphabetic or numeric characters
  1491. as being within a "word". If other characters are legally part
  1492. of a word too, then the bit for the corresponding character code in
  1493. the following table must be set to a 1.
  1494.  
  1495. There are 256 bits in the table to allow for 8-bit character sets.
  1496. The default table has the bits set for the numbers "0" through "9"
  1497. (ASCII codes of 30H through 39H), for the upper case letters
  1498. "A" through "Z" (41H through 5AH), and the lower case letters "a"
  1499. through "z" (61H through 7AH). Bits from 80H through FFH are set
  1500. according to the IBM PC character set.
  1501.             01234567  89ABCDEF
  1502. 0EC2    lglchr    db    00000000b,00000000b    Codes 00H to 0FH
  1503. 0EC4        db    00000000b,00000000b    Codes 10H to 1FH
  1504. 0EC6        db    00000000b,00000000b    Codes 20H to 2FH
  1505. 0EC8        db    00000000b,00000000b    Codes 30H to 3FH
  1506. 0ECA        db    01111111b,11111111b    Codes 40H to 4FH
  1507. 0ECC        db    11111111b,11100000b    Codes 50H to 5FH
  1508. 0ECE        db    01111111b,11111111b    Codes 60H to 6FH
  1509. 0ED0        db    11111111b,11100000b    Codes 70H to 7FH
  1510. 0ED2        db    11111111b,11111111b    Codes 80H to 8FH
  1511. 0ED4        db    11111111b,11100000b    Codes 90H to 9FH
  1512. 0ED6        db    11111111b,00000000b    Codes A0H to AFH
  1513. 0ED8        db    00000000b,00000000b    Codes B0H to BFH
  1514. 0EDA        db    00000000b,00000000b    Codes C0H to CFH
  1515. 0EDC        db    00000000b,00000000b    Codes D0H to DFH
  1516. 0EDE        db    11111111b,11110000b    Codes E0H to EFH
  1517. 0EE0        db    00000000b,00001100b    Codes F0H to FFH
  1518. 0EE2        db    00000000b,00000000b    Extended codes 00H to 0FH
  1519. 0EE4        db    00000000b,00000000b    Extended codes 10H to 1FH
  1520.  
  1521. When you use ^A or ^F to move a word at a time, WordStar uses the
  1522. following table to determine which characters to skip. It is organized
  1523. in the same manner as LGLCHR above.
  1524.             01234567  89ABCDEF
  1525. 0EE6    movchr    db    11111111b,10010010b    Codes 00H to 0FH
  1526. 0EE8        db    11111011b,11000011b    Codes 10H to 1FH
  1527. 0EEA        db    00111111b,11110101b    Codes 20H to 2FH
  1528. 0EEC        db    11111111b,11001110b    Codes 30H to 3FH
  1529. 0EEE        db    11111111b,11111111b    Codes 40H to 4FH
  1530. 0EF0        db    11111111b,11111111b    Codes 50H to 5FH
  1531. 0EF2        db    11111111b,11111111b    Codes 60H to 6FH
  1532. 0EF4        db    11111111b,11111110b    Codes 70H to 7FH
  1533. 0EF6        db    11111111b,11111111b    Codes 80H to 8FH
  1534. 0EF8        db    11111111b,11111111b    Codes 90H to 9FH
  1535. 0EFA        db    11111111b,01111011b    Codes A0H to AFH
  1536. 0EFC        db    11111111b,11111111b    Codes B0H to BFH
  1537. 0EFE        db    11111111b,11111111b    Codes C0H to CFH
  1538. 0F00        db    11111111b,11111111b    Codes D0H to DFH
  1539. 0F02        db    11111111b,11111111b    Codes E0H to EFH
  1540. 0F04        db    11111111b,11111110b    Codes F0H to FFH
  1541. 0F06        db    00000000b,00000000b    Extended codes 00H to 0FH
  1542. 0F0A        db    00000000b,00000000b    Extended codes 10H to 1FH
  1543.  
  1544. Certain special characters can be inserted into this table to cause
  1545. WordStar to automatically generate a backspace character (^H) preceding
  1546. the character as you type. This can be especially useful for accent
  1547. characters in some foreign languages.
  1548. 0F0A    autobs    db    0        Number of characters in table
  1549. 0F0B        db    0,0,0,0        Up to 8 character codes
  1550. 0F0F        db    0,0,0,0
  1551. 0F13        db    29 dup(0)    Reserved
  1552.  
  1553. When WordStar opens a file for editing, it uses the following initial
  1554. conditions.
  1555. 0F30    iniedt    db    TRUE        Right justification when typing
  1556. 0F31        db    TRUE        Word wrap when typing at end of lin        db    TRUE        Insert on
  1557. 0F32        db    TRUE        Insert on
  1558. 0F33        db    TRUE        Print controls displayed
  1559. 0F34        db    TRUE        Hyphen help on
  1560. 0F35        db    TRUE        Ruler displayed
  1561. 0F36        db    FALSE        Not column mode
  1562. 0F37        db    FALSE        Column replace off
  1563. 0F38        db    1        Single spacing
  1564. 0F39        db    3        Scrolling speed
  1565. 0F3A        db    FALSE        Preview mode off
  1566. 0F3B        db    2        Proportional spacing depends on font
  1567. 0F3C        db    0        Reserved
  1568. 0F3D        db    FALSE        Soft space dots and soft tabs not displayed
  1569. 0F3E        db    TRUE        Automatic paragraph realignment on
  1570. 0F3F        db    0,0,0,0,0    Reserved
  1571. 0F44        dw    3*240        Top of page margin.
  1572. 0F46        dw    8*240        Bottom of page margin.
  1573. 0F48        dw    66*240        Total VMI per page.
  1574. 0F4A        dw    1        Initial page number (note 2 bytes).
  1575. 0F4C        db    TRUE        Page number prints at bottom of page
  1576.                     if TRUE. No page number if FALSE.
  1577. 0F4D        dw    -1        Column where page number prints (-1=center).
  1578. 0F4F        dw    2*240        Heading margin between header and text.
  1579. 0F51        dw    2*240        Footing margin.
  1580. 0F53        db    00000111b    Default document tab mask (must be
  1581.                     binary, 00000000B through 01111111B).
  1582. 0F54        dw    8*180        HMI page offset for even pages.
  1583. 0F56        dw    8*180        HMI page offset for odd pages.
  1584. 0F58        db    TRUE        Bidirectional printing if TRUE. Just
  1585.                     unidirectional or printer controlled
  1586.                     if FALSE.
  1587. 0F59        db    2        Letter quality printing if 1. Draft
  1588.                     quality if 0. Discretionary if 2.
  1589.                     (Only supported on some printers.)
  1590. 0F5A        db    2        Microjustified printing. 0 turns it off,
  1591.                     1 turns it on, and 2 makes it discretionary
  1592.                     (depending on the printer driver in use).
  1593. 0F5B        db    FALSE        Underline blanks between words if TRUE.
  1594. 0F5C        db    TRUE        Kerning on if TRUE
  1595. 0F5D        db    0,0,0,0,0    Reserved
  1596. 0F62        dw    180        Normal font for ^PN. Width (HMI units)
  1597. 0F64        dw    240        Height (VMI units) (was 180 *28jan90tap*)
  1598. 0F66        dw    0        Typestyle
  1599. 0F68        dw    150        Alternate font for ^PA.  Width (HMI units)
  1600. 0F6A        dw    200        Height (VMI units)
  1601. 0F6C        dw    0        Typestyle
  1602. 0F6E        dw    90        Subscript and superscript roll (in VMI
  1603.                     units). This value determines how
  1604.                     far up or down the carriage moves when
  1605.                     subscripting or superscripting.
  1606. 0F70        dw    240        Line height (in VMI units). This value
  1607.                     determines how far to roll the carriage
  1608.                     to get to the next line.
  1609. 0F72        db    00000000b    Bits: 0-6 defines the line spacing between
  1610.                     line numbers If Bit 7 is set then there is 
  1611.                     no restarting of line numbers at start of 
  1612.                     each page. If zero, then each page will 
  1613.                     start at line number 1
  1614. 0F73        db    0        Page orientation 0=portrait,1=landscape
  1615.  
  1616. Default dialog box units
  1617.  
  1618. R or L  = Ruler units (R for horizontalL for vertical)
  1619. in or " = Inches
  1620. cm      = Centimeters
  1621. pt      = Points (1/72nd of an inch, as opposed to "true points")
  1622. 0F74    dbunith    db    '" '    default horizontal units       
  1623. 0F76    dbunitv    db    '" '    default vertical units         
  1624. 0F78    dbunitl    db    '" '    default Line heigth ("leading")
  1625.  
  1626. The default ruler line can be described by defining the following values.
  1627. Note that the tab stop tables must contain values in ascending order only.
  1628. The regular tab stops are put in the table first, immediately followed by
  1629. the decimal tabs.
  1630. .RR 0
  1631. 0F7A    rlrini    dw    0        Left ruler margin
  1632. 0F7C        dw    65*180        Right ruler margin
  1633. 0F7E        dw    -1        Paragraph margin
  1634. 0F80        dw    0        Reserved
  1635. 0F82        db    11        Number of tab stops in tab table
  1636. 0F83        db    0        Number of decimal tabs
  1637. 0F84        dw     5*180,10*180,15*180,20*180    Tab stops
  1638. 0F8C        dw    25*180,30*180,35*180,40*180    (Must be in
  1639. 0F94        dw    45*180,50*180,55*180        ascending order)
  1640. 0F9A        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1641. 0FAA        dw    0,0,0,0,0,0,0,0
  1642. 0FBA        dw    0,0,0,0,0
  1643.  
  1644. .RR 1
  1645. 0FC4        dw    5*180        Left ruler margin
  1646. 0FC6        dw    60*180        Right ruler margin
  1647. 0FC8        dw    -1        Paragraph margin
  1648. 0FCA        dw    0        Reserved
  1649. 0FCC        db    10        Number of tab stops in tab table
  1650. 0FCD        db    0        Number of decimal tabs
  1651. 0FCE        dw    10*180,15*180,20*180    Tab stops
  1652. 0FD4        dw    25*180,30*180,35*180,40*180
  1653. 0FDC        dw    45*180,50*180,55*180
  1654. 0FE2        dw    0,0,0,0,0,0,0,0    Unused tab stops
  1655. 0FF2        dw    0,0,0,0,0,0,0,0
  1656. 1002        dw    0,0,0,0,0,0
  1657.  
  1658. .RR 2
  1659. 100E        dw    5*180        Left ruler margin
  1660. 1010        dw    65*180        Right ruler margin
  1661. 1012        dw    0        Paragraph margin
  1662. 1014        dw    0        Reserved
  1663. 1016        db    10        Number of tab stops in tab table
  1664. 1017        db    0        Number of decimal tabs
  1665. 1018        dw    5*180,10*180,15*180,20*180    Tab stops
  1666. 1020        dw    25*180,30*180,35*180,40*180
  1667. 1028        dw    45*180,50*180,55*180
  1668. 102E        dw    0,0,0,0,0,0,0,0    Unused tab stops
  1669. 103E        dw    0,0,0,0,0,0,0,0
  1670. 104E        dw    0,0,0,0,0
  1671.  
  1672. .RR 3
  1673. 1058        dw    0        Left ruler margin
  1674. 105A        dw    65*180        Right ruler margin
  1675. 105C        dw    -1        Paragraph margin
  1676. 105E        dw    0        Reserved
  1677. 1060        db    11        Number of tab stops in tab table
  1678. 1061        db    0        Number of decimal tabs
  1679. 1062        dw     5*180,10*180,15*180,20*180    Tab stops
  1680. 106A        dw    25*180,30*180,35*180,40*180    (Must be in
  1681. 1072        dw    45*180,50*180,55*180        ascending order)
  1682. 1078        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1683. 1088        dw    0,0,0,0,0,0,0,0
  1684. 1098        dw    0,0,0,0,0
  1685.  
  1686. .RR 4
  1687. 10A2        dw    0        Left ruler margin
  1688. 10A4        dw    65*180        Right ruler margin
  1689. 10A6        dw    -1        Paragraph margin
  1690. 10A8        dw    0        Reserved
  1691. 10AA        db    11        Number of tab stops in tab table
  1692. 10AB        db    0        Number of decimal tabs
  1693. 10AC        dw     5*180,10*180,15*180,20*180    Tab stops
  1694. 10B4        dw    25*180,30*180,35*180,40*180    (Must be in
  1695. 10BC        dw    45*180,50*180,55*180        ascending order)
  1696. 10C2        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1697. 10D2        dw    0,0,0,0,0,0,0,0
  1698. 10E2        dw    0,0,0,0,0
  1699.  
  1700. .RR 5
  1701. 10EC        dw    0        Left ruler margin
  1702. 10EE        dw    65*180        Right ruler margin
  1703. 10F0        dw    -1        Paragraph margin
  1704. 10F2        dw    0        Reserved
  1705. 10F4        db    11        Number of tab stops in tab table
  1706. 10F5        db    0        Number of decimal tabs
  1707. 10F6        dw     5*180,10*180,15*180,20*180    Tab stops
  1708. 111E        dw    25*180,30*180,35*180,40*180    (Must be in
  1709. 1106        dw    45*180,50*180,55*180        ascending order)
  1710. 110C        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1711. 111C        dw    0,0,0,0,0,0,0,0
  1712. 112C        dw    0,0,0,0,0
  1713.  
  1714. .RR 6
  1715. 1136        dw    0        Left ruler margin
  1716. 1138        dw    65*180        Right ruler margin
  1717. 113A        dw    -1        Paragraph margin
  1718. 113C        dw    0        Reserved
  1719. 113E        db    11        Number of tab stops in tab table
  1720. 113F        db    0        Number of decimal tabs
  1721. 1140        dw     5*180,10*180,15*180,20*180    Tab stops
  1722. 1148        dw    25*180,30*180,35*180,40*180    (Must be in
  1723. 1150        dw    45*180,50*180,55*180        ascending order)
  1724. 1156        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1725. 1166        dw    0,0,0,0,0,0,0,0
  1726. 1176        dw    0,0,0,0,0
  1727.  
  1728. .RR 7
  1729. 1180        dw    0        Left ruler margin
  1730. 1182        dw    65*180        Right ruler margin
  1731. 1184        dw    -1        Paragraph margin
  1732. 1186        dw    0        Reserved
  1733. 1188        db    11        Number of tab stops in tab table
  1734. 1189        db    0        Number of decimal tabs
  1735. 118A        dw     5*180,10*180,15*180,20*180    Tab stops
  1736. 1192        dw    25*180,30*180,35*180,40*180    (Must be in
  1737. 119A        dw    45*180,50*180,55*180        ascending order)
  1738. 11A0        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1739. 11B0        dw    0,0,0,0,0,0,0,0
  1740. 11C0        dw    0,0,0,0,0
  1741.  
  1742. .RR 8
  1743. 11CA        dw    0        Left ruler margin
  1744. 11CC        dw    65*180        Right ruler margin
  1745. 11CE        dw    -1        Paragraph margin
  1746. 11D0        dw    0        Reserved
  1747. 11D2        db    11        Number of tab stops in tab table
  1748. 11D3        db    0        Number of decimal tabs
  1749. 11D4        dw     5*180,10*180,15*180,20*180    Tab stops
  1750. 11DC        dw    25*180,30*180,35*180,40*180    (Must be in
  1751. 11E4        dw    45*180,50*180,55*180        ascending order)
  1752. 11EA        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1753. 11FA        dw    0,0,0,0,0,0,0,0
  1754. 120A        dw    0,0,0,0,0
  1755.  
  1756. .RR 9
  1757. 1214        dw    0        Left ruler margin
  1758. 1216        dw    65*180        Right ruler margin
  1759. 1218        dw    -1        Paragraph margin
  1760. 121A        dw    0        Reserved
  1761. 121C        db    11        Number of tab stops in tab table
  1762. 121D        db    0        Number of decimal tabs
  1763. 121E        dw     5*180,10*180,15*180,20*180    Tab stops
  1764. 1226        dw    25*180,30*180,35*180,40*180    (Must be in
  1765. 122E        dw    45*180,50*180,55*180        ascending order)
  1766. 1234        dw    0,0,0,0,0,0,0,0    Room for 21 more
  1767. 1244        dw    0,0,0,0,0,0,0,0
  1768. 1254        dw    0,0,0,0,0
  1769. 125E        db    0        Reserved
  1770.  
  1771. COLDEF is used to define the default number of newspaper-style columns,
  1772. and the gutter width between them.
  1773. 125F    coldef    db    1        One column means normal text
  1774. 1260        dw    450        450/1800ths is .25"
  1775.  
  1776. As you move through a document, WordStar executes some of the dot commands,
  1777. like .RR ruler line commands, as they are encountered. As WordStar moves
  1778. forward through the text, the old ruler line is stored in memory so that it
  1779. can be restored when you move backwards over the .RR later. Other dot
  1780. commands work in a similar manner.
  1781.  
  1782. DSTKSZ is used to allocate storage for the dot commands. While you are
  1783. editing, WordStar puts a Dot-Limit indicator in the status line if you
  1784. use too many dot commands.
  1785.  
  1786. Dot Command        Size
  1787. .RR             47
  1788. .RM .LM .LH .PL          1
  1789. .MT .MB              1
  1790. .PN              2
  1791. 1262        dstksz    dw    4000
  1792.  
  1793. INIDIR determines whether the directory is initially displayed or not.
  1794. DIRSRT tells WordStar whether or not to sort directories in alphabetical
  1795. order before displaying them. DSPACE indicates whether or not WordStar
  1796. is to display on directories the space remaining for the currently
  1797. logged drive. SHOSIZ indicates whether or not to show file sizes.
  1798. 1264    inidir    db    TRUE        Directory on
  1799. 1265    dirsrt    db    TRUE        Sort directory
  1800. 1266    dspace    db    TRUE        Display remaining space
  1801. 1267    shosiz    db    TRUE        Show size of each file
  1802. 1268    usetyp    db    FALSE        Use NOTYPE for inclusion.  If set to true,
  1803.                     only those file types in NOTYPE will be
  1804.                     shown in the directory.
  1805.  
  1806. INIHLP is the default help level.
  1807.  
  1808. At help level 4...    Pull down menus and full prompts.
  1809. At help level 3...    Standard menus and full prompts.
  1810. At help level 2...    No Edit Menu.
  1811.             More information underneath prompts.
  1812. At help level 1...    Less information shown such as for the D,
  1813.               N, and L Opening Menu commands.
  1814.             No ^Q, ^K, ^O, ^P menus shown.
  1815.             Don't ask "Can't find file. Create new one?"
  1816.             Don't display Large-File in status line.
  1817.             Don't ask "Erase anyway?" if block too large
  1818.               to unerase later.
  1819.             Don't ask if "sure" when deleting file.
  1820. At help level 0...    No information underneath prompts.
  1821.             Allow block operations on hidden blocks.
  1822.             Function key labels off.
  1823. 1269    inihlp    db    4
  1824.  
  1825. Normally, function key labels will appear at help levels 1-3.
  1826. Setting LABHP4 to 0FFH will allow the labels to appear at help
  1827. level 4 as well.
  1828. 126A    labhp4    db    0        Initially, no function key labels
  1829.  
  1830. When editing, the last erasure can be undone with ^U. UNONE determines
  1831. whether single character erasures with ^G and DEL can also be undone.
  1832.  
  1833. UNSIZE is the maximum erasure that can later be undone. The unerase
  1834. buffer shares the same memory space as the text you are editing. Making
  1835. UNSIZE very large may cause WordStar to "spill over" to disk more
  1836. frequently, slowing down editing.
  1837. 126B    unone    db    FALSE        Don't unerase single erasures
  1838. 126C    unsize    dw    500        Unerase up to 500 characters
  1839.  
  1840. VMSIZE indicates the number of 128-byte records that can be read from
  1841. the disk for WordStar's messages and menus.
  1842. 126E    vmsize    db    4        Four records (.5k byte)
  1843. 126F    db    0            Reserved
  1844.  
  1845. If a document becomes too large to fit in memory at one time, WordStar
  1846. begins to "spill" the excess to the disk. TYSIZE determines how many
  1847. 128-bytes records to use for each spillover. Picking a correct size
  1848. is important but can usually be done by trial and error. If TYSIZE is
  1849. too large, you may see long delays during scrolling or typing when memory
  1850. fills.
  1851.  
  1852. If TYSIZE is zero, WordStar calculates its size to be 1/8 of the maximum
  1853. amount of text that can be stored in memory.
  1854. 1270    tysize    db    0        Let WordStar calculate spillover size
  1855.  
  1856. A "find", "go to note" or "find and replace" uses the INIFIN options
  1857. if you do not explicitly enter any at the "Options?" prompt. The
  1858. possible options that can be used are:
  1859.  
  1860. W  whole words only
  1861. U  ignore case
  1862. M  maintain case
  1863. ?  wild cards
  1864. B  backwards search
  1865. G  whole file
  1866. R  rest of file
  1867. N  replace without asking
  1868. A  align paragraph after replacement
  1869. T  search for note tag only
  1870.  
  1871. Blank the unused options.
  1872. 1271    inifin    db    '          '    No options
  1873.  
  1874. For help levels other than zero, the status line is usually displayed
  1875. at the top of the screen. INISTA lets you always turn it off. STFILL
  1876. specifies what character to use to fill unused space in the status line.
  1877. 127B    inista    db    TRUE        Display status line
  1878. 127C    stfill    db    ' '        Fill with blanks
  1879.  
  1880. When paragraphs are aligned and hyphen help is on, HYMAX
  1881. is used to determine when to hyphenate a word.
  1882. 127D    hymax    db    5        Hyphenate when a word has 5 characters
  1883.                     still within the right margin
  1884.  
  1885. Memory for the hyphenator.  The American hyphenator requires the overlay
  1886. size plus 100H bytes to run.  Other versions may require more.
  1887. 127E    hymem    db    29        Set for the American version
  1888.  
  1889. When WordStar asks a question that requires a Y for yes or N for no response,
  1890. YNCR indicates whether or not the user must push the RETURN key before
  1891. WordStar will accept it.
  1892. 127F    yncr    db    FALSE        Don't wait for RETURN key
  1893.  
  1894. WordStar can index every word in a document as well as selected words and
  1895. phrases. IDXALL determines whether this is the default or not.
  1896. 1280    idxall    db    FALSE        Don't index every word
  1897.  
  1898. Using ^B or ^QU in a nondocument normally strips the eighth bit from
  1899. each character in a line. STRPFL can disable stripping.
  1900. 1281    strpfl    db    TRUE        Stripping is enabled
  1901.  
  1902. Normally, the display will be inactive when reformatting paragraphs with
  1903. ^QU.  Change RFINTR to TRUE if you would like to watch the progress on
  1904. the screen.  This can slow down paragraph reform.
  1905. 1282    rfintr    db    FALSE        Use fast mode (no display)
  1906.  
  1907. The following flags are used to control the way WordStar processes
  1908. certain commands. CTLNFL and CTLHFL are provided primarily to allow
  1909. WordStar users to use ^N and ^H in the same way as they are accustomed.
  1910.  
  1911. Set non-zero if ^N to break line and RETURN moves down a line when insert off.
  1912. Set to zero so ^N converts paragraph lines and turns auto indent on/off for
  1913. nondocuments, and RETURN always inserts CRLF.
  1914. 1283    ctlnfl    db    TRUE
  1915.  
  1916. Set non-zero if ^H to be same as ^S instead of DEL.
  1917. 1284    ctlhfl    db    0
  1918.  
  1919. Set non-zero if ^^ is case toggle. When zero and CLTNFL is non-zero, use as
  1920. paragraph line and auto-indent on/off.
  1921. 1285    casefl    db    0
  1922.  
  1923. Set non-zero if DEL erases to left, zero to erase to right (like ^G).
  1924. 1286    delflg    db    0
  1925.  
  1926. Set non-zero if the cursor should move to column 1 if the cursor is next to a
  1927. block marker at the left edge of the screen
  1928. 1287    blkflg    db    0ffh
  1929.  
  1930. Set non-zero if lines with soft carriage returns should not be added to
  1931. paragraphs for line spacing other than 1
  1932. 1288  lspflg    db    0
  1933.  
  1934. Set non-zero if the Esc key should work the same as ^K in dialog boxes.
  1935. 1289    escflg    db    0
  1936.  
  1937. Set zero if ^QX should go to the left side of the screen.
  1938. 128A    quxflg    db    0ffh
  1939.  
  1940. Set non-zero if WS commands should work when cursor is at leftmost end of
  1941. pulldown menu bar
  1942. 128B    pulflg    db    0
  1943.  
  1944. Set non-zero to use the old way of going to a page.  Normally, the cursor
  1945. will be put on the first printable line of the specified page.
  1946. 128C    gpgflg    db    0
  1947.  
  1948. Set non-zero to see the full directory of files when logging to another drive
  1949. or directory.
  1950. 128D    sdirfl    db    0
  1951. 128E        db    0,0,0        Reserved
  1952.  
  1953. AHEAD indicates whether type ahead is allowed for ^E, ^X, ^W, ^Z,
  1954. ^G, DEL, ^T, ^Y, ^QY, and ^QDEL. If AHEAD is 0, WordStar's type
  1955. ahead buffer will be flushed whenever one of the functions is
  1956. encountered. If it is non-zero, no flushing will occur. This
  1957. flag should be used primarily for external keyboard enhancers where
  1958. the functions shown above are to be used. WordStar's function key
  1959. and shorthand processing automatically compensate.
  1960. 1291    ahead    db    0        Flush
  1961.  
  1962. Maximum size for the shorthand definitions. Should be optimized to
  1963. match actual usage since it reduces the amount of memory available
  1964. for text while editing and printing. The size of each definition
  1965. is equal to 5 plus the number of characters defined. If this value
  1966. is smaller than the size of the shorthand file (see SVFILE above),
  1967. only some of the definitions will be used. Setting it to zero
  1968. disables shorthand and makes the ESC key clear the screen instead.
  1969.  
  1970. Size of shorthand buffer in records (4 times 128 = 512 bytes)
  1971. 1292    hanmax    db    4
  1972.  
  1973. Spelling checking and correction
  1974.  
  1975. SPFLAG is used to indicate how WordStar is to use the dictionaries
  1976. each bit is defined as follows...
  1977.  
  1978. This flag is also used for the thesaurus dictionary.
  1979. Bit    Definition
  1980.  
  1981.  0    Set if swapping between dictionary disk and program disk
  1982.  1    If swapping, set if personal dictionary is on dictionary disk
  1983.  2    No longer used.
  1984.  3    Set if the main dictionary is to be entirely loaded to RAM
  1985.  4    Set to always prompt user for personal dictionary
  1986. 5-7    Reserved
  1987.  
  1988. If neither bits 1 and 2 are set when swapping, the personal
  1989. dictionary is assumed to be on the document disk.
  1990. 1293    spflag    db    0        Not swapping, personal is on work disk
  1991.  
  1992. UDMEM is the number of kbytes allocated to hold the user dictionary.
  1993. The minimum used is 2k. This is the amount held in ram. The actual
  1994. size of the dictionary is limited by disk space.
  1995. 1294    udmem    dw    2        Use minimum.
  1996.  
  1997. SPLMEM indicates the amount of memory set aside for the speller.  This value
  1998. includes the overlay file, its overhead, and the dictionary memory.  For the
  1999. American speller, the overhead necessary is about 7300 bytes.
  2000.  
  2001. The main dictionary is usually the largest and slowest of the spelling check
  2002. dictionaries. If there is sufficient memory in your computer, WordStar
  2003. can speed up dictionary look-ups significantly by "learning" which words
  2004. you look up most frequently and storing them in memory. If there is
  2005. enough memory in your computer, eventually the whole dictionary is
  2006. put in memory. If bit 3 of SPFLAG above is set, the first time you do
  2007. a spelling check, the entire dictionary will be loaded into memory all at
  2008. once (if enough memory was set aside). The minimum for the main
  2009. dictionary is about 7k. Setting SPLMEM to 0 disables the speller.
  2010.  
  2011. Normally, because of memory restrictions, the speller overlay and
  2012. dictionary and the thesaurus overlay and dictionary use the same
  2013. parts of memory for running (See MEMFLG).
  2014.  
  2015. The thesaurus dictionary requires a minimum of about 46k.
  2016. So to run the thesaurus when the memory is being shared, SPLMEM must
  2017. be at least 46k plus the size of the thesaurus overlay plus its overhead
  2018. (currently about 7300 bytes). Larger values do not help the thesaurus.
  2019. Smaller values disable it.
  2020.  
  2021. If the thesaurus memory is separate from the spelling memory, then
  2022. the proper amounts will be allocated for the thesaurus dictionary
  2023. automatically.
  2024.  
  2025. Set for minimum to use speller and thesaurus
  2026. 1296    splmem    dw    71
  2027.  
  2028. WordStar normally doesn't check the spelling of very small words since
  2029. single letters are used for many things besides the words "a" or "I".
  2030. SPMIN is used to indicate the smallest word to be checked.
  2031.  
  2032. Don't check 1-letter words
  2033. 1298    spmin    db    2
  2034.  
  2035. Two words in a row (e.g. the the) will be flagged as a misspelling if
  2036. CKDBL is set TRUE.
  2037.  
  2038. Check for double words
  2039. 1299    ckdbl    db    TRUE
  2040.  
  2041. Normally, the display will be inactive when spell checking.  Change SPINTR
  2042. to TRUE if you would like to watch the progress on the screen.  This can
  2043. slow down spell checking.
  2044.  
  2045. Use fast mode (no display)
  2046. 129A    spintr    db    FALSE
  2047.  
  2048. When WordStar begins printing, InSet can be loaded.  If you don't normally
  2049. print with graphics, you can set this flag to false.
  2050.  
  2051. Load InSet at print-time
  2052. 129B    iinset    db    TRUE
  2053.  
  2054. When you type the name of a graphics tag with the ^P* command, and
  2055. it doesn't contain a period indicating a file type, this file type
  2056. is added to the end of the file name specification.
  2057.  
  2058. File type string length PIX for inset
  2059. 129C    grphft    db    4
  2060. 129D    db    '.PIX'
  2061.  
  2062. When you type ^P* to insert a graphics tag, this is the directory mask
  2063. used to show file names of possible graphics files.
  2064.  
  2065. Show only .PIX files
  2066. 12A1    grphmk    db    '????????PIX'
  2067.  
  2068. You can insert the current date or time into a document with either
  2069. shorthand or during merge printing. FDATE indicates how the date should
  2070. be displayed, and FTIME the time, as follows...
  2071.  
  2072. Code    Example
  2073.  1    Day of the month
  2074.  2    Month as a number
  2075.  3    Month as a word
  2076.  4    Year as 4 digits
  2077.  5    Year as 2 digits
  2078.  6    First 3 letters of month
  2079.  7    Day of the month as 2 digits
  2080.  8    Month as 2 digits
  2081.  9    Hour in 24-hour format
  2082.  A    Hour in 24-hour 2-digit format
  2083.  B    Hour in 12-hour format
  2084.  C    Minute as 2 digits
  2085.  D    AM or PM
  2086.  
  2087. For example:
  2088. 3 1, 4    becomes September 19, 1985
  2089. 2/1/5    becomes 9/19/85
  2090. 7 6 5    becomes 19 Sep 86
  2091. 9:C    becomes 14:27
  2092. B:C D    becomes 2:27 PM
  2093.  
  2094. September 19, 1985 format
  2095. 12AC    fdate    db    6
  2096. 12AD        db    '3 1, 4'
  2097. 12B3        db    0
  2098.  
  2099. 2:27 PM format
  2100. 12B4    ftime    db    5
  2101. 12B5        db    'B:C D'
  2102. 12BA        db    0,0
  2103.  
  2104. With shorthand you can insert the dollar-formatted results of the last
  2105. math you performed. WordStar uses the format below when you do this.
  2106. (Make sure that the character count includes the zero at the end.)
  2107. 12BC    dollar    db    17
  2108. 12BD        db    '--,---,---,---.99'
  2109. 12CE        db    0,0,0
  2110.  
  2111. Special characters
  2112. 12D1    splchr    db    ','        Thousands separator for numbers
  2113. 12D2        db    '.'        Decimal point for numbers & decimal tabbing
  2114. 12D3        db    4 dup(0)    Reserved
  2115.  
  2116. Memory allocation for editing. Must be big enough to hold the current
  2117. text being allocated as well as WordStar's fixed variables and allocated
  2118. variables (at least 36k). The maximum usable is 64k. This amount of
  2119. memory is also allocated to split screen editing.
  2120. 12D7    edtmem    db    64        64 kilobytes
  2121.  
  2122. Memory allocation for the merge print buffer. Each variable name in the
  2123. buffer requires 1 byte plus the size of the name. Each data requires
  2124. 1 byte plus the size of the data. Set to zero to disable merge printing.
  2125. The maximum usable is 64k.
  2126. 12D8    mrgmem    db    4        4 kilobytes
  2127.  
  2128. When text is too big to fit in the memory buffer, the excess normally
  2129. "spills" to temporary disk files. If there is expanded memory (EMS) in your
  2130. computer, this can be used instead to increase performance for large files.
  2131. Set to zero to disable EMS usage. Otherwise, set to the number of 16-kbyte
  2132. pages of memory of EMS to use.
  2133.  
  2134. For future use
  2135. 12D9    emsmem    db    0
  2136.  
  2137. 12DA        db    71 dup(0)    Reserved
  2138.  
  2139. EXTRA is a large buffer area for general patching. Some versions of
  2140. the WINSTALL installation program use EXTRA.
  2141.  
  2142. Extra .5k of patching space
  2143. 1321    extra    db    512 dup(0)
  2144.  
  2145. UPPERCASE and LOWERCASE are a upper/lower case conversion tables. Each
  2146. character is either mapped to itself or the upper/lowercase equivalent.
  2147.             0    1    2    3    4    5    6    7
  2148. 1521    upcase    db    000h,001h,002h,003h,004h,005h,006h,007h     0 ..  7
  2149. 1529        db    008h,009h,00ah,00bh,00ch,00dh,00eh,00fh     8 ..  F
  2150. 1531        db    010h,011h,012h,013h,014h,015h,016h,017h    10 .. 17
  2151. 1539        db    018h,019h,01ah,01bh,01ch,01dh,01eh,01fh    18 .. 1F
  2152. 1541        db    020h,021h,022h,023h,024h,025h,026h,027h    20 .. 27
  2153. 1549        db    028h,029h,02ah,02bh,02ch,02dh,02eh,02fh    28 .. 2F
  2154. 1551        db    030h,031h,032h,033h,034h,035h,036h,037h    30 .. 37
  2155. 1559        db    038h,039h,03ah,03bh,03ch,03dh,03eh,03fh    38 .. 3F
  2156. 1561        db    040h,041h,042h,043h,044h,045h,046h,047h    40 .. 47
  2157. 1569        db    048h,049h,04ah,04bh,04ch,04dh,04eh,04fh    48 .. 4F
  2158. 1571        db    050h,051h,052h,053h,054h,055h,056h,057h    50 .. 57
  2159. 1579        db    058h,059h,05ah,05bh,05ch,05dh,05eh,05fh    58 .. 5F
  2160. 1581        db    060h,041h,042h,043h,044h,045h,046h,047h    60 .. 67
  2161. 1589        db    048h,049h,04ah,04bh,04ch,04dh,04eh,04fh    68 .. 6F
  2162. 1591        db    050h,051h,052h,053h,054h,055h,056h,057h    70 .. 77
  2163. 1599        db    058h,059h,05ah,07bh,07ch,07dh,07eh,07fh    78 .. 7F
  2164. 15A1        db    080h,09ah,045h,041h,08eh,041h,08fh,043h    80 .. 87
  2165. 15A9        db    045h,045h,045h,049h,049h,049h,08eh,08fh    88 .. 8F
  2166. 15B1        db    090h,092h,092h,04fh,099h,04fh,055h,055h    90 .. 97
  2167. 15B9        db    059h,099h,09ah,09bh,09ch,09dh,09eh,09fh    98 .. 9F
  2168. 15C1        db    041h,049h,04fh,055h,0a5h,0a5h,0a6h,04fh    A0 .. A7
  2169. 15C9        db    0a8h,0a9h,0aah,0abh,0ach,0adh,0aeh,0afh    A8 .. AF
  2170. 15D1        db    0b0h,0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h    B0 .. B7
  2171. 15D9        db    0b8h,0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh    B8 .. BF
  2172. 15E1        db    0c0h,0c1h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h    C0 .. C7
  2173. 15E9        db    0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh    C8 .. CF
  2174. 15F1        db    0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h    D0 .. D7
  2175. 15F9        db    0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh    D8 .. DF
  2176. 1601        db    0e0h,0e1h,0e2h,0e3h,0e4h,0e5h,0e6h,0e7h    E0 .. E7
  2177. 1609        db    0e8h,0e9h,0eah,0ebh,0ech,09dh,0eeh,0efh    E8 .. EF
  2178. 1611        db    0f0h,0f1h,0f2h,0f3h,0f4h,0f5h,0f6h,0f7h    F0 .. F7
  2179. 1619        db    0f8h,0f9h,0fah,0fbh,0fch,0fdh,0feh,0ffh    F8 .. FF
  2180.  
  2181.             0    1    2    3    4    5    6    7
  2182. 1621    locase    db    000h,001h,002h,003h,004h,005h,006h,007h     0 ..  7
  2183. 1629        db    008h,009h,00ah,00bh,00ch,00dh,00eh,00fh     8 ..  F
  2184. 1631        db    010h,011h,012h,013h,014h,015h,016h,017h    10 .. 17
  2185. 1639        db    018h,019h,01ah,01bh,01ch,01dh,01eh,01fh    18 .. 1F
  2186. 1641        db    020h,021h,022h,023h,024h,025h,026h,027h    20 .. 27
  2187. 1649        db    028h,029h,02ah,02bh,02ch,02dh,02eh,02fh    28 .. 2F
  2188. 1651        db    030h,031h,032h,033h,034h,035h,036h,037h    30 .. 37
  2189. 1659        db    038h,039h,03ah,03bh,03ch,03dh,03eh,03fh    38 .. 3F
  2190. 1661        db    040h,061h,062h,063h,064h,065h,066h,067h    40 .. 47
  2191. 1669        db    068h,069h,06ah,06bh,06ch,06dh,06eh,06fh    48 .. 4F
  2192. 1671        db    070h,071h,072h,073h,074h,075h,076h,077h    50 .. 57
  2193. 1679        db    078h,079h,07ah,05bh,05ch,05dh,05eh,05fh    58 .. 5F
  2194. 1681        db    060h,061h,062h,063h,064h,065h,066h,067h    60 .. 67
  2195. 1689        db    068h,069h,06ah,06bh,06ch,06dh,06eh,06fh    68 .. 6F
  2196. 1691        db    070h,071h,072h,073h,074h,075h,076h,077h    70 .. 77
  2197. 1699        db    078h,079h,07ah,07bh,07ch,07dh,07eh,07fh    78 .. 7F
  2198. 16A1        db    080h,081h,082h,083h,084h,085h,086h,087h    80 .. 87
  2199. 16A9        db    088h,089h,08ah,08bh,08ch,08dh,084h,086h    88 .. 8F
  2200. 16B1        db    090h,091h,091h,093h,094h,095h,096h,097h    90 .. 97
  2201. 16B9        db    098h,094h,081h,09bh,09ch,0edh,09eh,09fh    98 .. 9F
  2202. 16C1        db    0a0h,0a1h,0a2h,0a3h,0a4h,0a4h,0a6h,0a7h    A0 .. A7
  2203. 16C9        db    0a8h,0a9h,0aah,0abh,0ach,0adh,0aeh,0afh    A8 .. AF
  2204. 16D1        db    0b0h,0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h    B0 .. B7
  2205. 16D9        db    0b8h,0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh    B8 .. BF
  2206. 16E1        db    0c0h,0c1h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h    C0 .. C7
  2207. 16E9        db    0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh    C8 .. CF
  2208. 16F1        db    0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h    D0 .. D7
  2209. 16F9        db    0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh    D8 .. DF
  2210. 1701        db    0e0h,0e1h,0e2h,0e3h,0e4h,0e5h,0e6h,0e7h    E0 .. E7
  2211. 1709        db    0e8h,0e9h,0eah,0ebh,0ech,0edh,0eeh,0efh    E8 .. EF
  2212. 1711        db    0f0h,0f1h,0f2h,0f3h,0f4h,0f5h,0f6h,0f7h    F0 .. F7
  2213. 1719        db    0f8h,0f9h,0fah,0fbh,0fch,0fdh,0feh,0ffh    F8 .. FF
  2214.  
  2215.             0    1    2    3    4    5    6    7
  2216. 1721    colate    db    042h,043h,044h,045h,046h,047h,048h,049h     0 ..  7
  2217. 1729        db    04ah,04bh,04ch,04dh,04eh,04fh,050h,051h     8 ..  F
  2218. 1731        db    052h,053h,054h,055h,056h,057h,058h,059h    10 .. 17
  2219. 1739        db    05ah,05bh,05ch,05dh,05eh,05fh,060h,061h    18 .. 1F
  2220. 1741        db    000h,062h,063h,064h,065h,066h,067h,068h    20 .. 27
  2221. 1749        db    069h,06ah,06bh,06ch,000h,06eh,06fh,070h    28 .. 2F
  2222. 1751        db    001h,002h,003h,004h,005h,006h,007h,008h    30 .. 37
  2223. 1759        db    009h,00ah,071h,072h,073h,074h,075h,076h    38 .. 3F
  2224. 1761        db    077h,00bh,014h,015h,018h,019h,01dh,01eh    40 .. 47
  2225. 1769        db    01fh,020h,025h,026h,027h,028h,029h,02bh    48 .. 4F
  2226. 1771        db    031h,032h,033h,034h,036h,037h,03ch,03dh    50 .. 57
  2227. 1779        db    03eh,03fh,041h,078h,079h,07ah,07bh,07ch    58 .. 5F
  2228. 1781        db    07dh,00bh,014h,015h,018h,019h,01dh,01eh    60 .. 67
  2229. 1789        db    01fh,020h,025h,026h,027h,028h,029h,02bh    68 .. 6F
  2230. 1791        db    031h,032h,033h,034h,036h,037h,03ch,03dh    70 .. 77
  2231. 1799        db    03eh,03fh,041h,07eh,07fh,080h,081h,082h    78 .. 7F
  2232. 17A1        db    016h,03bh,01ch,00ch,010h,00dh,012h,017h    80 .. 87
  2233. 17A9        db    01ch,01ah,01bh,021h,022h,023h,010h,011h    88 .. 8F
  2234. 17B1        db    01ch,013h,013h,02ch,030h,02dh,038h,039h    90 .. 97
  2235. 17B9        db    040h,030h,03bh,084h,085h,086h,087h,088h    98 .. 9F
  2236. 17C1        db    00eh,024h,02eh,03ah,02ah,02ah,00fh,02fh    A0 .. A7
  2237. 17C9        db    089h,08ah,08bh,08ch,08dh,08eh,08fh,090h    A8 .. AF
  2238. 17D1        db    091h,092h,093h,094h,095h,096h,097h,098h    B0 .. B7
  2239. 17D9        db    099h,09ah,09bh,09ch,09dh,09eh,09fh,0a0h    B8 .. BF
  2240. 17E1        db    0a1h,0a2h,0a3h,0a4h,0a5h,0a6h,0a7h,0a8h    C0 .. C7
  2241. 17E9        db    0a9h,0aah,0abh,0ach,0adh,0aeh,0afh,0b0h    C8 .. CF
  2242. 17F1        db    0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h,0b8h    D0 .. D7
  2243. 17F9        db    0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh,0c0h    D8 .. DF
  2244. 1801        db    0c1h,035h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h    E0 .. E7
  2245. 1809        db    0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh    E8 .. EF
  2246. 1811        db    0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h    F0 .. F7
  2247. 1819        db    0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh    F8 .. FF
  2248.  
  2249. Keyboard scan code translation table
  2250.  
  2251. On IBM PC's this table is used to translate one scan code into any other
  2252. scan code as it is typed. It is used primarily for European keyboards.
  2253.  
  2254. On other machines, this table can be used to translate any single ASCII
  2255. keystroke into any other ASCII code as it is typed.
  2256.  
  2257. Number of translation entries
  2258. 1821    kbxlat    db    0
  2259. 1822        dw    0,0
  2260. 1826        dw    0,0
  2261. 182A        dw    0,0
  2262.  
  2263. Line numbering control
  2264. 182E    lnmch    dw    7*180        Left margin line at .7"
  2265. 1830        db    0bah        Left margin character, double vertical bar
  2266. 1831        dw    74*180        Right margin line at 7.4"
  2267. 1833        db    0b3h        Right margin character, single vertical bar
  2268. 1834        dw    3*180        Number is .3" before left margin character
  2269.                     See end of INIEDT for more
  2270.  
  2271. Paragraph numbering format
  2272.  
  2273. Up to 30 characters containing the format to use for paragraph numbering.
  2274.  
  2275. 9 is numbering from 0 up
  2276. 1 is numbering from 1 up
  2277. Z is upper case alpha, A-Z, AA-AZ,...
  2278. z is lower case alpha, a-z, aa-az,...
  2279. I is upper case roman numerals, I-MMMCMXCIX (1-3999)
  2280. i is lower case roman numerals, i-mmmcmxcix (1-3999)
  2281.  
  2282. Other characters are used as part of the paragraph number (for instance,
  2283. leading and trailing characters, and separator characters).
  2284. Up to 8 levels of numbers are allowed within the paragraph number,
  2285. i.e. '9.a.9.A.9.9.9.9'. A zero byte indicates the end of the string.
  2286. 1836    ipfrmt    db    '1.1.1.1.1.1.1.1'
  2287. 1845        db    31-15 dup(0)
  2288.  
  2289. The separator after the last part of the paragraph number will be
  2290. printed if PPRSEP below is TRUE (i.e. 1.1.1. versus 1.1.1).
  2291. Setting PPRSEP to TRUE will suppress the use of trailing characters
  2292. in the paragraph format (except when the characters are used as the
  2293. separator characters after the last paragraph number level).
  2294. 1855    pprsep    db    FALSE        Set for normal separators
  2295.  
  2296. The preceding numbers in the paragraph number will not print if
  2297. PROUTL below is TRUE. This is useful when numbering an outline:
  2298. If your paragraph format was 'I)A)a)', you could use PROUTL in
  2299. conjunction with PPRSEP to get 'I)' for the first number, then
  2300. 'A)' for the next level in, and 'a)' for the third level.
  2301. 1856    proutl    db    FALSE        Set for normal numbering
  2302.  
  2303. Print control screen characters
  2304.  
  2305. Since control can't be edited, entire print control is displayed
  2306. 1857    pbrack    db    '<'        Print control display leading char
  2307. 1858        db    '>'        Print control display trailing char
  2308.  
  2309. Index screen characters
  2310. 1859    ibrack    db    '{'        Index entry display leading char
  2311. 185A        db    '}'        Index entry display trailing char
  2312. 185B        db    15        Length of displayed index entry
  2313.  
  2314. Footnote/endnote screen characters
  2315. 185C    nbrack    db    '['        Note display leading char
  2316. 185D        db    ']'        Note display trailing character
  2317. 185E        db    15        Length of displayed note text
  2318.  
  2319. Initial paragraph style name
  2320. 185F    parsty    db    'Body text               '    24 characters
  2321.  
  2322. Line numbering font and style
  2323. 1877    lnfont    dw    180        Normal font for ^PN. Width
  2324. 1879        dw    240        Height
  2325. 187B        dw    0        Typestyle
  2326. 187D        dw    0        Attribute
  2327.  
  2328. Footnote/endnote font and style
  2329. (note text attributes are defaulted to 0)
  2330. 187F    fnfont    dw    180        Normal font for ^PN. Width
  2331. 1881        dw    240        Height
  2332. 1883        dw    0         Typestyle
  2333. 1885        db    0        Default ruler to use
  2334. 1886        db    0        Default color to use    
  2335.  
  2336. 1887    enfont    dw    180        Normal font for ^PN. Width
  2337. 1889        dw    240        Height
  2338. 188B        dw    0        Typestyle
  2339. 188D        db    0        Default ruler to use
  2340. 188E        db    0        Default color to use    
  2341.  
  2342. Footnote tag type:
  2343. 1 for upper case alphabet, 2 for lower case alphabet, 3 for numeric
  2344. 4 for repeating characters
  2345. 188F    fntyp    db    3
  2346.  
  2347. 0 for reset at each page break, 1 for increment across page breaks
  2348. 1890        db    0
  2349.  
  2350. Footnote repeating character table. Up to 8 characters may be entered
  2351. here to be used one at a time for in text footnote reference marks. Once
  2352. all characters are used, the beginning character in the table will be
  2353. used twice, then three times, etc. as needed for the number of footnotes
  2354. in the text.
  2355. 1891    fnrch    db    2        Count
  2356. 1892        db    '*','~',0,0    Set for *,~,**,~~,***,~~~
  2357. 1896        db    0,0,0,0
  2358.  
  2359. Endnote tag type
  2360. 1 for upper case alphabet, 2 for lower case alphabet, 3 for numeric
  2361. 4 for repeating characters
  2362. 189A    entyp    db    3
  2363.  
  2364. Endnote repeating character table. Up to 8 characters may be entered
  2365. here to be used one at a time for in text endnote reference marks. Once
  2366. all characters are used, the beginning character in the table will be
  2367. used twice, then three times, etc. as needed for the number of endnotes
  2368. in the text.
  2369. 189B    enrch    db    2        Count
  2370. 189C        db    '#','@',0,0    Set for #,@,##,@@,###,@@@
  2371. 18A0        db    0,0,0,0
  2372.  
  2373. Footnote in-text reference mark control:
  2374. 00H - normal, 08H - underlined, 10H - subscripted, 20H - superscripted
  2375. 40H - bold, 80H - italic
  2376. 18A4    fntxt    dw    20h
  2377. 18A6        db    0        Lead character
  2378. 18A7        db    0        Trailing character
  2379.  
  2380. Footnote in-note reference mark control
  2381. 18A8        dw    0h        Attributes
  2382. 18AA        db    0        Lead character
  2383. 18AB        db    '.'        Trailing character
  2384.  
  2385. Endnote in-text reference mark control
  2386. 18AC        dw    20h        Attributes
  2387. 18AE        db    0        Lead character
  2388. 18AF        db    0        Trailing character
  2389.  
  2390. Endnote in-note reference mark control
  2391. 18B0        dw    0        Attributes
  2392. 18B2        db    '('        Lead character
  2393. 18B3        db    ')'        Trailing character
  2394.  
  2395. Footnote separator between body text and footnote text.
  2396. 18B4    fnsep    db    20
  2397. 18B5        db    20 dup ('-')    20-wide line
  2398. 18C9        db    60 dup (0,0,0)    Spare
  2399.  
  2400. Footnote continuation text.
  2401. 197D    fncntu    db    15        Length
  2402. 197E        db    '...Continued...'
  2403. 198D        db    60 dup (0,0,0)    Spare
  2404.  
  2405. Footnote position.  If zero, place footnote against bottom of page, right
  2406. above footer.  If 1, place footnote right below body text. 
  2407. 1A41    fnposn    db    0        Place at bottom
  2408.  
  2409. FNRUN determines when to create a running footnote.  If the accumulated
  2410. footnote text  is bigger than the space available at the bottom of the
  2411. page, and FNRUN is greater than or equal to the note size, then put the
  2412. note on the following page.
  2413.  
  2414. Page break if 8 lines of footnote text won't fit
  2415. 1A42    fnrun    db    8
  2416.  
  2417. Footnote VMI settings
  2418. 1A43    fnvmi    dw    1440/6        VMI between notes
  2419. 1A45        dw    1440/6        VMI for each footnote line
  2420. 1A47        dw    1440/6        VMI between text and FNSEP
  2421. 1A49        dw    1440/6        VMI between FNSEP and first note
  2422.  
  2423. Endnote VMI settings
  2424. 1A4B    envmi    dw    1440/6        VMI between notes
  2425. 1A4D    dw    1440/6            VMI for each endnote line
  2426.  
  2427. Lines in top and bottom windows
  2428.  
  2429. This value will be used as a ratio, so that when the help level changes
  2430. the lines in each window will be proportionally the same
  2431.  
  2432. Set to 0FFh if full screen window flipping is required. Set to 0 to
  2433. disable the second window.
  2434. 1A4F    wratio    db    128        LTOP*256/(LTOP+LBOT)
  2435.  
  2436. Ask for document type when opening another window.
  2437. 1A50    wprmpt    db    0        Dont ask for document type
  2438.  
  2439. The keyboard repeat rate may be changed upon entering and exiting WordStar.
  2440. This only works on IBM machines manufactured after 15 Nov 85.
  2441. 1A51    kspeed    label    word        Typing repeat hold-off and speed
  2442. 1A51        db    0        1st byte: 0=30 cps, ..., 1FH=2 cps
  2443. 1A52        db    1        2nd byte: 0=250 msec, 1=500, 2=750, 3=1000
  2444. 1A53        db    5        For deletions
  2445. 1A54        db    1
  2446. 1A55        db    -1        No change upon exiting
  2447. 1A56        db    -1
  2448.  
  2449. The shape of the cursor may be changed upon entering and exiting WordStar.
  2450. See the IBM BIOS video INT 10, AH=1 for information on how to pick a
  2451. cursor size. (Each word below is loaded into CX before the video call is
  2452. performed.) On a 25 by 80 display, a value of 0007H would produce a block
  2453. cursor, and 0607H would produce the normal underline cursor.
  2454. 1A57    cursiz    dw    0ffffh        No cursor size upon entering
  2455. 1A59    dw    0ffffh        No cursor for overtype mode
  2456. 1A5B        dw    0ffffh        No cursor size upon exiting
  2457.  
  2458. HMI units (1800ths of an inch) used for ruler line
  2459.  
  2460. If you have many old WordStar documents set up for 12-pitch, you may want
  2461. to set RLUNIT to 150 so that the ruler line is in 12ths of an inch.
  2462. 1A5D    rlunit    dw    1800/10        Ruler line is in 10ths of an inch
  2463.  
  2464. Line height units used for computing standard line height values
  2465.  
  2466. This is the value used when typing in a dialog box or a dot command
  2467. and the measuring unit is set for 'L' (see DBUNITL, above).
  2468. Assumes a standard line height of 6 lines per inch (66 lines
  2469. per page for an 11 inch page).
  2470. 1A5F    lhunit    dw    1440/6        Line height units in 6ths of an inch
  2471.  
  2472. The memory allocated to handling of fonts and proportional tables from the
  2473. PDF is determined from the following variables. 
  2474. 1A61    mfdsiz    db    100        Number of Menu font definitions 
  2475. 1A62        db    ?
  2476. 1A63    famsiz    db    20        Number of font family member definitions
  2477. 1A64        db    ?
  2478. 1A65    pstsiz    db    4        Number of proportional space data tables
  2479. 1A66        db    ?
  2480. 1A67    lrusiz    db    16        Number of 256 byte PDF record buffers
  2481. 1A68    STYSIZ    db    8        Number of 512 byte block buffers
  2482.  
  2483. FNSIZE and ENSIZE indicates the number of 128-byte records is to be used
  2484. footnote and endnote accumulation before writing them to disk
  2485. 1A69    fnsize    db    8        Size of footnote accumulation buffer
  2486. 1A6A    ensize    db    2        Size of endnote accumulation buffer
  2487.  
  2488. The autosave timer will perform an automatic ^KS if you are editing and
  2489. the keyboard is idle for the number of seconds specified (1 hour max).
  2490. This function only works on IBM machines manufactured after November 1985.
  2491. 1A6B    autsav    dw    0        Turned off if zero
  2492.  
  2493. DOS command tails used to run Additional Menu items. Each command must
  2494. be null terminated. 32 bytes are available for each command tail.  Comments
  2495. indicate which program file name the command is associated with.  A "~"
  2496. means that WordStar should pass its colors to the application program.
  2497. 1A6D    addrun    db    ' ~',0            For TelMerge
  2498. 1A70        db    (32-($-addrun)) dup(0)
  2499. 1A8D        db    ' ~',0            For MailList
  2500. 1A90        db    (32-($-addrun-32)) dup(0)
  2501.  
  2502. Default character set (code page) code.
  2503. 1AAD    codepg    dw    437        Default to U.S.. Other option is 850
  2504. 1AAF    dbunitp    db    'pt'        Default units, scalable font point size
  2505. 1AB1    dbunitc    db    '" '        Default units, scalable font pitch
  2506.  
  2507. User Area date
  2508. 1AB3    udate    db    01,16,90
  2509.  
  2510.