home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / wp / ws4pat_2.zip / PATCH.LST next >
File List  |  1987-07-03  |  91KB  |  2,545 lines

  1.             WORDSTAR USER JUMP TABLE
  2.  
  3. Thi≤ ájum≡ átablσ provide≤ commonl∙ useΣ subroutine≤ fo≥ usσ b∙ custoφ subroutine≤ áiε áthσ ì
  4. Use≥ Area« I⌠ mus⌠ no⌠ bσ modifieΣ iε an∙ way.
  5.  
  6. NOTE║    Lowe≥ casσ label≤ canno⌠ bσ useΣ iε WSCHANG┼ fo≥ eithe≥ patchinτ o≥ aut∩-patching.
  7.  
  8. Terminal I/O, near calls, registers except AX preserved.
  9.  
  10. 0200 E9 0000 E        DISPLA:    JMP    CO        ;Display character in AL
  11.  
  12. 0203 E9 0000 E        STRING:    JMP    STROUT        ;Display string at CS:BX
  13.  
  14. Printer I/O, far calls, registers except AX & DX prserved.
  15.  
  16. 0206 E9 0000 E        LSTOUT:    JMP    FLO        ;Prints char in AL.
  17.  
  18. 0209 áE9 0000 E        LSOSTA:    JMP    FLOSTAT        ;Iµ áA╠ char≤ arσ printed¼ wil∞ ái⌠ ì
  19. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;bσ busy?
  20.                             ;Return≤ outpu⌠ statu≤ t∩ A╠ (░ áiµ ì
  21. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;busy).
  22.  
  23. 020C E9 0000 E        LSTIN:    JMP    FLI        ;Input≤ ácha≥ froφ printe≥ át∩ áAL« ì
  24. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;(Onl∙ áwork≤ iµ custoφ ULIST╔ áexì
  25. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ist≤ o≥ IB═ COMx.)
  26.  
  27. 020F E9 0000 E        LSISTA:    JMP    FLISTAT        ;Return≤ áinpu⌠ statu≤ t∩ A╠ (░ áiµ ì
  28. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;n∩ char).
  29.                             ;(Onl∙ áwork≤ iµ custoφ áULIST┴ áo≥ ì
  30. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;IB═ COMx.)
  31.  
  32. 0212 E9 0000 E        LSTRNG:    JMP    FLSTSTR        ;Print string at CS:BX
  33.  
  34. Miscellaneous, far calls.
  35.  
  36. 0215 E9 0000 E        UPPER:    JMP    FUPPER        ;Conver⌠ ácha≥ iε A╠ t∩ uppe≥ ácasσ ì
  37. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;iε AL
  38.  
  39. 0218 E9 0000 E        EXTIO:    JMP    FEXTIO        ;External IO functions
  40.  
  41. 021B 001E[             DB    30 DUP(0)    ;Reserved
  42.     00
  43.         ]
  44. Thσ áfollowinτ addres≤ i≤ thσ firs⌠ addres≤ oµ availablσ RA═ fo≥ WordStar'≤ ádatß ásegment« ì
  45. Thi≤ addres≤ caε bσ modifieΣ b∙ INISU┬ iµ necessar∙ t∩ ge⌠ somσ additiona∞ buffe≥ spacσ fo≥ ì
  46. use≥ ásubroutines« However¼ usinτ thi≤ RA═ wil∞ als∩ reducσ thσ amoun⌠ oµ tex⌠ tha⌠ caε ábσ ì
  47. iε memor∙ a⌠ an∙ giveε timσ proportionately.
  48.             ;
  49. 0239 213A R        RAM1ST    DW    MEMRY        ;Firs⌠ locatioε afte≥ enΣ oµ ávariì
  50. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ables
  51.  
  52. Thσ áIB═ áflaτ bit≤ shoulΣ bσ se⌠ fo≥ aε IB═ compatiblσ computer« Thσ bit≤ arσ ádefineΣ áa≤ ì
  53. follows:
  54.  
  55.     Bit    Function
  56.  
  57.     0    BIOS ROM is IBM compatible for video & keyboard.
  58.  
  59.     1    Counter-timer I/O ports same as IBM (used for beep).
  60. è    2    Usσ vide∩ RA═ directl∙ (ma∙ producσ "hashó o≥ no⌠ worδ a⌠ al∞ oε somσ ácomì
  61. ááááááááááááááááputers).
  62.  
  63.     3    Use IBM tick timer at INT 1CH
  64.  
  65.     4-7    Reserved for future use.
  66.  
  67. 023B 1F            IBMFLG    DB    00011111B    ;IB═ áROM¼ bee≡ ok¼ ádirec⌠ ávideo¼ ì
  68. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ticδ timer
  69.  
  70. Thσ áWordSta≥ áflaτ bit≤ arσ useΣ t∩ tel∞ WordSta≥ ho≈ i⌠ wil∞ bσ operated«  Thσ ábit≤ áarσ ì
  71. defineΣ a≤ follows:
  72.  
  73.     Bit    Function
  74.  
  75.     0    Tr∙ át∩ makσ WordSta≥ completel∙ RA═ residen⌠ (limitatioε oµ án∩ áoε-screeε ì
  76. ááááááááááááááááhel≡ messages).
  77.  
  78.     1    Makσ ádefaul⌠ áprinte≥ drive≥ RA═ residen⌠ (limitatioε oµ án∩ áindexinτ áo≥ ì
  79. áááááááááááááááátable≤ oµ contents)« Can'⌠ selec⌠ othe≥ printers.
  80.  
  81.     2    LoaΣ maiε spellinτ dictionar∙ int∩ RA═ wheε WordSta≥ begin≤ runninτ insteaΣ ì
  82. ááááááááááááááááoµ durinτ spellinτ checks.
  83.  
  84.     3-7    Reserved for future use.
  85.  
  86. 023C 00            NWFLG    DB    0        ;Normal operation
  87.  
  88. This flag is used for multi-user or networked systems.
  89.  
  90.     Bit    Meaning
  91.  
  92.     0    Set to 1 if a system reset is not to be used when logging.
  93.  
  94.     1    Morσ áthaε onσ use≥ caε acces≤ thσ samσ documen⌠ iµ 1« Iµ 0¼ file≤ arσ áno⌠ ì
  95. ááááááááááááááááshared.
  96.  
  97.     2    Morσ áthaε onσ use≥ caε sharσ thσ defaul⌠ lis⌠ devicσ iµ 1« Iµ 0¼ áWordSta≥ ì
  98. ááááááááááááááááwil∞ immediatel∙ usσ thσ printer.
  99.  
  100.     3    Reserved.
  101.  
  102.     4    Operating system date is correct if 1. Don't use date if 0.
  103.  
  104.     5    Systeφ ácontain≤ ß keyboarΣ typσ aheaΣ buffe≥ iµ 1« WordSta≥ mus⌠ ád∩ ámorσ ì
  105. ááááááááááááááááfrequen⌠ keyboarΣ check≤ iµ 0.
  106.  
  107.     6-7    Reserved.
  108.  
  109. 023D 30            MPMFLG    DB    00110000B    ;Singlσ-use≥ ásystem¼ ádatσ ááokay¼ ì
  110. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;typσ ahead
  111.  
  112. SHAR┼ indicate≤ wha⌠ happen≤ wheε file≤ caε bσ shareΣ (seσ MPMFLG)«  Iµ i⌠ i≤ 0¼ anΣ ß filσ ì
  113. i≤ áalread∙ ábeinτ edited¼ othe≥ user≤ canno⌠ edi⌠ thσ file« Iµ i⌠ i≤ 1¼ áothe≥ áuser≤ áarσ ì
  114. askeΣ iµ the∙ wan⌠ t∩ looδ a⌠ thσ filσ iε protecteΣ modσ (bu⌠ onl∙ a≤ mucΦ oµ thσ filσ tha⌠ ì
  115. wil∞ fi⌠ iε memor∙ a⌠ once).
  116.  
  117. 023E 01            SHARE    DB    1        ;Look at files
  118. 023F 00 00 00            DB    0,0,0        ;Reserved
  119. èEdit Menu Function Keys
  120.  
  121. Thσ functioε ke∙ tablσ allow≤ yo⌡ t∩ prograφ an∙ functioε key≤ tha⌠ you≥ termina∞ ásupport≤ ì
  122. int∩ áonσ o≥ morσ othe≥ keystrokes« Oε thσ IB═ persona∞ computer¼ functioε key≤ generatσ áß ì
  123. nul∞ plu≤ ß keycode.
  124.  
  125.     Function Key        Keycode (in hex)
  126.  
  127.     Ctrl+Break        00
  128.     Shift+Tab        0F
  129.     Ctrl+PrtSc        72
  130.     Home            47
  131.     Ctrl+Home        77
  132.     UpArrow            48
  133.     PgUp            49
  134.     Ctrl+PgUp        84
  135.     LeftArrow        4B
  136.     Ctrl+LeftArrow        73
  137.     RightArrow        4D
  138.     Ctrl+RightArrow        74
  139.     End            4F
  140.     Ctrl+End        75
  141.     DownArrow        50
  142.     PgDn            51
  143.     Ctrl+PgDn        76
  144.     Ins            52
  145.     Del            53
  146.     F1 thru F10        3B thru 44
  147.     Shift+F1 thru F10    54 thru 5D
  148.     Ctrl+F1 thru F10    5E thru 67
  149.     Alt+F1 thru F10        68 thru 71
  150.  
  151. EacΦ áfunctioε ke∙ iε thσ tablσ belo≈ i≤ representeΣ b∙ tw∩ strings« Thσ áfirs⌠ árepresent≤ ì
  152. thσ strinτ oµ character≤ generateΣ b∙ thσ functioε key«  Thσ seconΣ represent≤ wha⌠ ástrinτ ì
  153. thσ functioε ke∙ shoulΣ generatσ a≤ it≤ replacement« Becausσ thσ string≤ arσ packeΣ nex⌠ t∩ ì
  154. eacΦ other¼ yo⌡ ma∙ no⌠ usσ strinτ indirection≤ (sizσ oµ -▒ plu≤ address).
  155.  
  156. Thσ enΣ oµ thσ functioε ke∙ tablσ i≤ indicateΣ wheε thσ sizσ oµ thσ functioε ke∙ strinτ ái≤ ì
  157. zero« áIµ thσ functioε ke∙ string≤ won'⌠ al∞ fi⌠ here¼ yo⌡ caε pu⌠ ß ácontinuatioε áaddres≤ ì
  158. afte≥ thσ zer∩ t∩ poin⌠ t∩ morσ table« Thσ tablσ a⌠ tha⌠ addres≤ mus⌠ bσ thσ samσ forma⌠ a≤ ì
  159. thi≤ one« N∩ continuatioε i≤ indicateΣ b∙ aε addres≤ oµ zero.
  160.  
  161. 0242 FE            FUNDLY    DB    -2    ;Functioε ákey≤ enabled« FixeΣ sizσ áoµ á2«  ì
  162. áááááááááááááááááááááááááááááááááááááááááááááááá;N∩ ádela∙ betweeε burs⌠ chars« áChangσ át∩ ì
  163. áááááááááááááááááááááááááááááááááááááááááááááááá;zer∩ t∩ disablσ functioε keys.
  164.  
  165. 0243 00                DB    0    ;Ever∙ áburs⌠ start≤ witΦ ß nul∞ Se⌠ t∩ á-▒ ì
  166. áááááááááááááááááááááááááááááááááááááááááááááááá;iµ eacΦ burs⌠ doesn'⌠ star⌠ witΦ thσ ásamσ ì
  167. áááááááááááááááááááááááááááááááááááááááááááááááá;character
  168. 0244 02            FUNTBL    DB    2
  169. 0245 00 47             DB    0,47H        ;Home
  170. 0247 02                DB    2
  171. 0248 11 05             DB    CTRLQ,CTRLE
  172.  
  173. 024A 02                DB    2
  174. 024B 00 4F             DB    0,4FH        ;End
  175. 024D 02                DB    2
  176. 024E 11 18             DB    CTRLQ,CTRLX
  177.  
  178. 0250 02                DB    2è0251 00 77             DB    0,77H        ;Ctrl+Home
  179. 0253 02                DB    2
  180. 0254 11 12             DB    CTRLQ,CTRLR
  181.  
  182. 0256 02                DB    2
  183. 0257 00 75             DB    0,75H        ;Ctrl+End
  184. 0259 02                DB    2
  185. 025A 11 03             DB    CTRLQ,CTRLC
  186.  
  187. 025C 02                DB    2
  188. 025D 00 52             DB    0,52H        ;Ins
  189. 025F 01                DB    1
  190. 0260 16                DB    CTRLV
  191.  
  192. 0261 02                DB    2
  193. 0262 00 72             DB    0,72H        ;Ctrl+PrtSc
  194. 0264 05                DB    5
  195. 0265 0B 04 10 12 0D        DB    CTRLK,CTRLD,CTRLP,CTRLR,CR
  196.  
  197. 026A 02            funtb1    DB    2        ;Two chars define function key
  198. 026B 00 48             DB    0,48H        ;Null plus keycode
  199. 026D 01                DB    1        ;One char in replacement
  200. 026E 05                DB    CTRLE        ;Convert UpArrow to ^E
  201.  
  202. 026F 02                DB    2
  203. 0270 00 50             DB    0,50H        ;DownArrow
  204. 0272 01                DB    1
  205. 0273 18                DB    CTRLX
  206.  
  207. 0274 02                DB    2
  208. 0275 00 4B             DB    0,4BH        ;LeftArrow
  209. 0277 01                DB    1
  210. 0278 13                DB    CTRLS
  211.  
  212. 0279 02                DB    2
  213. 027A 00 4D             DB    0,4DH        ;RightArrow
  214. 027C 01                DB    1
  215. 027D 04                DB    CTRLD
  216.  
  217. 027E 02                DB    2
  218. 027F 00 49             DB    0,49H        ;PgUp
  219. 0281 01                DB    1
  220. 0282 12                DB    CTRLR
  221.  
  222. 0283 02                DB    2
  223. 0284 00 51             DB    0,51H        ;PgDn
  224. 0286 01                DB    1
  225. 0287 03                DB    CTRLC
  226.  
  227. 0288 02                DB    2
  228. 0289 00 73             DB    0,73H        ;Ctrl+LeftArrow
  229. 028B 01                DB    1
  230. 028C 01                DB    CTRLA
  231.  
  232. 028D 02                DB    2
  233. 028E 00 74             DB    0,74H        ;Ctrl+RightArrow
  234. 0290 01                DB    1
  235. 0291 06                DB    CTRLF
  236.  
  237. 0292 02                DB    2è0293 00 00             DB    0,00H        ;Ctrl+ScrollLock
  238. 0295 01                DB    1
  239. 0296 00                DB    0
  240.  
  241. 0297 02                DB    2
  242. 0298 00 53             DB    0,53H        ;Del
  243. 029A 01                DB    1
  244. 029B 7F                DB    7FH
  245.  
  246. 029C 02                DB    2
  247. 029D 00 03             DB    0,03H        ;^@
  248. 029F 01                DB    1
  249. 02A0 00                DB    0
  250.  
  251. 02A1 02            funtb2    DB    2
  252. 02A2 00 84             DB    0,84H        ;Ctrl+PgUp
  253. 02A4 01                DB    1
  254. 02A5 17                DB    CTRLW
  255.  
  256. 02A6 02                DB    2
  257. 02A7 00 76             DB    0,76H        ;Ctrl+PgDn
  258. 02A9 01                DB    1
  259. 02AA 1A                DB    CTRLZ
  260.  
  261. 02AB 02                DB    2
  262. 02AC 00 0F             DB    0,0FH        ;Shift+BackTab
  263. 02AE 00                DB    0
  264.  
  265. 02AF 00                DB    0        ;EnΣ oµ IB═ functioε key≤ oε árigh⌠ ì
  266. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;hanΣ side
  267. 02B0 0657 R            DW    MORPAT        ;F1-F10 in MORPAT
  268.  
  269. = 006E            funtbz    EQU    $-FUNTBL    ;Size of FUNTBL
  270.  
  271. 02B2 005A[             DB    (200-funtbz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
  272. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;200tΦ byte
  273.     00
  274.         ]
  275.  
  276. FUNLA┬ i≤ usuall∙ useΣ t∩ sho≈ functioε ke∙ label≤ a⌠ thσ bottoφ oµ thσ screen« However¼ i⌠ ì
  277. coulΣ bσ useΣ fo≥ an∙ purpose« Thσ firs⌠ bytσ indicate≤ ho≈ man∙ line≤ arσ t∩ bσ used¼ witΦ ì
  278. ß pointe≥ t∩ eacΦ linσ immediatel∙ afte≥ it.
  279.  
  280. ┴ he° 0▓ encountereΣ withiε thσ linσ mean≤ t∩ turε highlightinτ on«  ┴ he° 0▒ mean≤ t∩ turε ì
  281. i⌠ off« ┴ he° 0░ indicate≤ thσ enΣ oµ thσ line.
  282.  
  283. Currently available on the IBM PC only.
  284.  
  285. 030C            FUNLAB    LABEL    BYTE
  286. 030C 02                DB    2        ;Two lines of labels for IBM PC
  287.  
  288. 030D 0311 R            DW    funla1        ;Points to 2nd line from bottom
  289. 030F 0375 R            DW    funla2        ;Points to 1st line from bottom
  290.  
  291. 0311 20 02 44 69 73 70 6C funla1 DB    ' ',2,'Display' ;Shifted F1-F10
  292.     61 79
  293. 031A 01 20 02 43 65 6E 74     DB    1,' ',2,'Center '
  294.     65 72 20
  295. 0324 01 20 02 43 68 6B 52     DB    1,' ',2,'ChkRest'
  296.     65 73 74è032E 01 20 02 43 68 6B 57     DB    1,' ',2,'ChkWord'
  297.     6F 72 64
  298. 0338 01 20 02 44 65 6C 20     DB    1,' ',2,'Del Blk'
  299.     42 6C 6B
  300. 0342 01 20 02 48 69 64 65     DB    1,' ',2,'HideBlk'
  301.     42 6C 6B
  302. 034C 01 20 02 4D 6F 76 65     DB    1,' ',2,'MoveBlk'
  303.     42 6C 6B
  304. 0356 01 20 02 43 6F 70 79     DB    1,' ',2,'CopyBlk'
  305.     42 6C 6B
  306. 0360 01 20 02 42 65 67 20     DB    1,' ',2,'Beg Blk'
  307.     42 6C 6B
  308. 036A 01 31 02 45 6E 64 20     DB    1,'1',2,'End Blk'
  309.     42 6C 6B
  310. 0374 00                 DB    0
  311.             ;
  312. 0375 31 02 48 65 6C 70 20 funla2 DB    '1',2,'Help' ;F1-F10
  313.     20 20
  314. 037E 01 32 02 55 6E 64 6F     DB    1,'2',2,'Undo'
  315.     20 20 20
  316. 0388 01 33 02 55 6E 64 72     DB    1,'3',2,'Undrlin'
  317.     6C 69 6E
  318. 0392 01 34 02 42 6F 6C 64     DB    1,'4',2,'Bold'
  319.     20 20 20
  320. 039C 01 35 02 44 65 6C 4C     DB    1,'5',2,'DelLine'
  321.     69 6E 65
  322. 03A6 01 36 02 44 65 6C 57     DB    1,'6',2,'DelWord'
  323.     6F 72 64
  324. 03B0 01 37 02 41 6C 69 67     DB    1,'7',2,'Align '
  325.     6E 20 20
  326. 03BA 01 38 02 52 75 6C 65     DB    1,'8',2,'Ruler '
  327.     72 20 20
  328. 03C4 01 39 02 53 61 76 65     DB    1,'9',2,'Save & '
  329.     20 26 20
  330. 03CE 01 30 02 44 6F 6E 65     DB    1,'0',2,'Done'
  331.     20 20 20
  332. 03D8 00                 DB    0
  333.  
  334. Opening Menu function key assignments
  335.  
  336. 03D9 02            OPNTBL    DB    2        ;Two chars define function key
  337. 03DA 00 48             DB    0,48H        ;Null plus keycode
  338. 03DC 00                DB    0        ;No replacement
  339.  
  340. 03DD 02                DB    2
  341. 03DE 00 50             DB    0,50H        ;DownArrow
  342. 03E0 00                DB    0
  343.  
  344. 03E1 02                DB    2
  345. 03E2 00 4B             DB    0,4BH        ;LeftArrow
  346. 03E4 00                DB    0
  347.  
  348. 03E5 02                DB    2
  349. 03E6 00 4D             DB    0,4DH        ;RightArrow
  350. 03E8 00                DB    0
  351.  
  352. 03E9 02                DB    2
  353. 03EA 00 49             DB    0,49H        ;PgUp
  354. 03EC 00                DB    0
  355. è03ED 02                DB    2
  356. 03EE 00 51             DB    0,51H        ;PgDn
  357. 03F0 00                DB    0
  358.  
  359. 03F1 02                DB    2
  360. 03F2 00 47             DB    0,47H        ;Home
  361. 03F4 00                DB    0
  362.  
  363. 03F5 02                DB    2
  364. 03F6 00 4F             DB    0,4FH        ;End
  365. 03F8 00                DB    0
  366.  
  367. 03F9 02                DB    2
  368. 03FA 00 72             DB    0,72H        ;Ctrl+PrtSc
  369. 03FC 00                DB    0
  370.  
  371. 03FD 02                DB    2
  372. 03FE 00 52             DB    0,52H        ;Ins
  373. 0400 00                DB    0
  374.  
  375. 0401 02                DB    2
  376. 0402 00 53             DB    0,53H        ;Del
  377. 0404 00                DB    0
  378.  
  379. 0405 00                DB    0        ;End
  380. 0406 02A1 R            DW    funtb2        ;Sharσ ásomσ definition≤ witΦ áEdi⌠ ì
  381. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Menu
  382.  
  383. = 002F            opntbz    EQU    $-OPNTBL    ;Size of OPNTBL
  384.  
  385. 0408 0035[             DB    (100-opntbz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
  386. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;100tΦ byte
  387.  00
  388.         ]
  389.  
  390. Prompts function key assignments
  391.  
  392. 043D 02            PRMTBL    DB    2
  393. 043E 00 47             DB    0,47H        ;Home
  394. 0440 00                DB    0
  395.  
  396. 0441 02                DB    2
  397. 0442 00 4F             DB    0,4FH        ;End
  398. 0444 00                DB    0
  399.  
  400. 0445 02                DB    2
  401. 0446 00 77             DB    0,77H        ;Ctrl+Home
  402. 0448 00                DB    0
  403.  
  404. 0449 02                DB    2
  405. 044A 00 75             DB    0,75H        ;Ctrl+End
  406. 044C 00                DB    0
  407.  
  408. 044D 02                DB    2
  409. 044E 00 52             DB    0,52H        ;Ins
  410. 0450 00                DB    0
  411.  
  412. 0451 02                DB    2
  413. 0452 00 72             DB    0,72H        ;Ctrl+PrtSc
  414. 0454 00                DB    0è
  415. 0455 00                DB    0        ;End
  416. 0456 026A R            DW    funtb1        ;Sharσ ásomσ definition≤ witΦ áEdi⌠ ì
  417. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Menu
  418.  
  419. = 001B            prmtbz    EQU    $-PRMTBL    ;Size of PRMTBL
  420.  
  421. 0458 0049[             DB    (100-prmtbz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
  422. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;100tΦ byte
  423.     00
  424.         ]
  425.         TERMINAL PATCH AREA
  426.  
  427. This sectioε ácontain≤ áthσ use≥-modifiablσ constant≤ anΣ routine≤ áfo≥ áhardwarσ-dependen⌠ ì
  428. áááááááátermina∞ function≤ anΣ characteristic≤ requireΣ b∙ thσ editor.
  429.  
  430. There arσ threσ type≤ oµ patche≤ iε thi≤ area« Onσ caε patcΦ datß value≤ (HITE¼ WID⌐ áwhicΦ ì
  431. áááááááádescribσ thσ terminal¼ string≤ (CLEAD1¼ ERAEOL⌐ whicΦ definσ contro∞ sequences¼ áo≥ ì
  432. ááááááááactua∞ microprocesso≥ instructions.
  433.  
  434. For the strinτ sequences¼ thσ firs⌠ bytσ oµ thσ patcΦ indicate≤ thσ numbe≥ oµ byte≤ iε áthσ ì
  435. áááááááástring¼ áfolloweΣ b∙ tha⌠ man∙ strinτ bytes« Iµ therσ i≤ insufficien⌠ rooφ fo≥ áthσ ì
  436. ááááááááwholσ string¼ thσ forma⌠ caε bσ modifieΣ b∙ puttinτ ß -▒ (0FFH⌐ wherσ thσ numbe≥ oµ ì
  437. áááááááábyte≤ woulΣ go¼ anΣ theε puttinτ thσ addres≤ iε thσ followinτ tw∩ byte≤ (lo≈ áorde≥ ì
  438. áááááááábytσ áfirst⌐ oµ thσ addres≤ wherσ thσ longe≥ patcΦ resides« Thσ longe≥ ápatcΦ ámus⌠ ì
  439. áááááááátheε bσ oµ thσ norma∞ forma⌠ whicΦ i≤ thσ numbe≥ oµ byte≤ followeΣ b∙ thσ string.
  440.  
  441. This areß ái≤ normall∙ patcheΣ fo≥ you≥ specifiπ termina∞ b∙ thσ interactivσ INSTAL╠ áprogì
  442. ááááááááram« Additiona∞ patchinτ t∩ thi≤ areß i≤ needeΣ onl∙ fo≥ unusua∞ terminal≤ o≥ vide∩ ì
  443. ááááááááboards¼ o≥ t∩ mee⌠ specia∞ requirements¼ o≥ t∩ enhancσ o≥ personalizσ you≥ cop∙ áoµ ì
  444. ááááááááWordStar.
  445.  
  446. Video screen height, width, and wrap-around parameters are required.
  447.  
  448. 04A1 19            HITE    DB    25         ;Mus⌠ bσ exac⌠ screeε heigh⌠ iε lines
  449.  
  450. 04A2 50            WID    DB    80         ;Mus⌠ bσ <╜ exac⌠ screeε widtΦ iε co∞ì
  451. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;umns.
  452.  
  453. 04A3 00            WRAP    DB    FALSE         ;Indicate≤ áiµ termina∞ áwrap≤ áarounΣ ì
  454. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;t∩ ánex⌠ linσ iµ ß characte≥ i≤ ádi≤ì
  455. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;playeΣ iε WIDtΦ columε oµ screeε (se⌠ ì
  456. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;FALS┼ iµ i⌠ doesn't)
  457.  
  458. 04A4 00            XONOFF    DB    FALSE         ;TRU┼ iµ XON/XOF╞ protoco∞ t∩ bσ áuseΣ ì
  459. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;fo≥ thσ CR╘ terminal
  460.  
  461. 04A5 14            SCROLL    DB    20         ;Numbe≥ áoµ column≤ tha⌠ arσ áhorizoεì
  462. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;tall∙ scrolleΣ wheε curso≥ move≤ ábσì
  463. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;yonΣ righ⌠ o≥ lef⌠ sidσ oµ ;screen.
  464.  
  465. 04A6 05            DIRSIZ    DB    5         ;Numbe≥ oµ line≤ availablσ fo≥ direc⌠ì
  466. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;or∙ a⌠ bottoφ oµ screen« Iµ zero¼ án∩ ì
  467. ááááááááááááááááááááááááááááááááááááááááááááááááááááá;directory.
  468.  
  469. 04A7 0B                DB    11         ;Lines for document selection screens.
  470.  
  471.  
  472. Delete String
  473. èThσ áfollowinτ strinτ indicate≤ t∩ WordSta≥ ho≈ t∩ displa∙ ß deletσ characte≥ (he° á7F⌐ áoε ì
  474. thσ áscreeε áwhilσ editing« Oε terminal≤ tha⌠ interpre⌠ thσ deletσ characte≥ ácodσ áint∩ áß ì
  475. displayablσ ácharacter¼ ái⌠ i≤ recommendeΣ tha⌠ DELST╥ bσ translateΣ int∩ thσ ádeletσ ácodσ ì
  476. itselµ (lengtΦ oµ 1¼ theε 7FH)« Al∞ character≤ iε thσ strinτ mus⌠ display.
  477.  
  478. 04A8 01            DELSTR    DB    1        ;Number of chars in string
  479. 04A9 7F                DB    DEL        ;What is displayed
  480. 04AA 00 00 00            DB    0,0,0        ;3 spare bytes
  481.  
  482.  
  483. Soft and End of Line Hyphen String
  484.  
  485. Iε orde≥ t∩ distinguisΦ sof⌠ hyphen≤ froφ norma∞ hyphen≤ iε thσ text¼ WordSta≥ wil∞ substiì
  486. tutσ thσ followinτ strinτ wheε onσ i≤ encountered.
  487.  
  488. 04AD 01            SHYSTR    DB    1        ;Number of chars in string
  489. 04AE 3D                DB    '='        ;What is displayed
  490. 04AF 00 00 00            DB    0,0,0        ;Spare bytes
  491.  
  492.  
  493. Block Marker Strings
  494.  
  495. Blocδ ámarke≥ string≤ arσ displayeΣ oε thσ screeε t∩ sho≈ thσ star⌠ anΣ enΣ oµ ß áblocδ áoµ ì
  496. text« áThσ string≤ arσ iε thσ typica∞ forma⌠ oµ thσ lengtΦ followeΣ b∙ a≤ man∙ ácharacters« ì
  497. Contro∞ ácharacter≤ shoulΣ no⌠ bσ includeΣ withiε thesσ string≤ becausσ the∙ woulΣ áno⌠ ábσ ì
  498. sen⌠ directl∙ t∩ thσ screen.
  499.  
  500. 04B2 03            BBLOCK    DB    3        ;Three chars
  501. 04B3 3C 42 3E            DB    '<B>'        ;Begin block
  502. 04B6 00                DB    0        ;1 spare
  503.  
  504.             ;
  505. 04B7 03            KBLOCK    DB    3        ;Three chars
  506. 04B8 3C 4B 3E            DB    '<K>'        ;End block
  507. 04BB 00                DB    0        ;1 spare
  508.  
  509.  
  510. Special character used when displaying soft spaces
  511.  
  512. 04BC FA            SOFTSP    DB    0FAH        ;Small dot on IBM PC
  513.  
  514. 04BD 00 00 00 00 00        DB    0,0,0,0,0    ;Reserved
  515.  
  516. Thσ áfollowinτ ástrinτ i≤ useΣ a⌠ sigε-oε t∩ describσ thσ typσ oµ termina∞ ábeinτ áuseΣ áb∙ ì
  517. WordStar« U≡ t∩ 4░ byte≤ arσ availablσ fo≥ thσ string¼ includinτ it≤ nul∞ terminator.
  518.  
  519. 04C2 49 42 4D 20 50 43 20 CRTID DB    'IBM PC Compatible',CR,LF,0    ;Terminal name
  520.     43 6F 6D 70 61 74 69
  521.     62 6C 65 0D 0A 00
  522. 04D6 20 20 20 20 20 20 20    DB    '        '        ;Extra room
  523.     20 20 20 20 20 20 20
  524.     20 20 20 20 20 20
  525.  
  526. Cursor positioning control sequences are required.
  527.  
  528. Cursor positioning for most terminals is accomplished
  529.     by sending:
  530.  
  531.     1. A 'leaΣ-inº strinτ oµ onσ o≥ morσ termina∞ specifiπ characters.
  532.     2. The linσ ánumber¼ áwitΦ aε offse⌠ (ofteε 20H⌐ added«  Fo≥ ásomσ áterminals¼ áthσ ìèáááááááááááááááácolumε numbe≥ i≤ sen⌠ first.
  533.     3. For some terminals, another 'lead-in' string.
  534.     4. The column (or line) number, with an offset.
  535.     5. For some terminals, a terminating string.
  536.  
  537. For most terminals¼ áthσ linσ anΣ columε numbe≥ arσ sen⌠ a≤ onσ-bytσ binar∙ ánumbers« áSomσ ì
  538. ááááááááterminal≤ requirσ tha⌠ ß tw∩¡ o≥ threσ-digi⌠ ASCI╔ numbe≥ i≤ sent.
  539.  
  540. For terminal≤ tha⌠ d∩ no⌠ fi⌠ thσ abovσ patterns¼ yo⌡ mus⌠ codσ you≥ owε subroutine.
  541.  
  542. ááááááááFo≥ example¼ thσ curso≥ i≤ positioneΣ oε thσ TeleVide∩ termina∞ b∙ sending:
  543.  
  544.     ESCAPE, '=',
  545.     line number plus 20H,
  546.     column number plus 20H.
  547.  
  548. 04EA 00            CLEAD1    DB    0        ;Initial lead-in string
  549. 04EB 00                DB    0        ;First character
  550. 04EC 00                DB    0        ;Second character
  551. 04ED 00 00             DB    0,0        ;Space for two more characters
  552.  
  553. 04EF 00            CLEAD2    DB    0        ;Sent between line and column
  554. 04F0 00                DB    0        ;example. First character
  555. 04F1 00 00 00            DB    0,0,0        ;Space for three more characters
  556.  
  557. 04F4 00            CTRAIL    DB    0        ;Terminating string
  558. 04F5 00 00 00 00        DB    0,0,0,0        ;Space for four characters
  559.  
  560. 04F9 00            CB4LFG    DB    0        ;Send column before line?
  561.                             ;Set non-zero to send column first
  562.  
  563. 04FA            CUROFF    LABEL    WORD        ;Both bytes used at one time
  564.  
  565. 04FA 00                DB    0        ;Offset to add to line
  566.  
  567. 04FB 00                DB    0        ;Offset to add to column
  568.  
  569. 04FC 00            ASCUR    DB    0        ;Binary/ASCII digit flag
  570.                             ;0 to send binary line and column
  571.                             ;2 to send 2-digit ASCII numbers
  572.                             ;3 to send 3-digit ASCII numbers
  573.                             ;F╞ iµ WordSta≥ t∩ determinσ áASCI╔ ì
  574. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;digits
  575.  
  576. Provisioε áfo≥ ápositioninτ curso≥ b∙ use≥-codeΣ subroutine¼ insteaΣ oµ áunde≥ ácontro∞ áoµ ì
  577. ááááááááabovσ áitems« Fo≥ usσ iε exceptiona∞ case≤ only«  Notσ tha⌠ thi≤ routinσ áoverride≤ ì
  578. ááááááááthσ interna∞ IB═ driver≤ eveε iµ IBMFL╟ i≤ set.
  579.  
  580. Insert a JM╨ áinstructioε át∩ you≥ subroutinσ iε thσ followinτ threσ ábytes« áWheneve≥ áthσ ì
  581. ááááááááfirs⌠ bytσ i≤ noε-NOP¼ thi≤ locatioε wil∞ bσ calleΣ t∩ positioε thσ cursor¼ anΣ thσ ì
  582. ááááááááabovσ curso≥ patcΦ item≤ wil∞ bσ ignored.
  583.  
  584. Your subroutinσ áwil∞ áreceivσ thσ linσ numbe≥ iε thσ B╠ registe≥ (░ ╜ to≡ line)¼ áanΣ áthσ ì
  585. áááááááácolumε ánumbe≥ áiε thσ B╚ registe≥ (░ ╜ lef⌠-mos⌠ column)« A╠ ácontain≤ áthσ ávide∩ ì
  586. áááááááácondition≤ áa⌠ áthσ ánex⌠ typinτ positioε (seσ VIDAT╘ fo≥ ábi⌠ ádefinition≤ áexcep⌠ ì
  587. áááááááádoublσ-strikσ replace≤ warnings).
  588.  
  589. Your subroutine may alter all registers.
  590.  
  591. 04FD 90            UCRPOS:    NOP            ;Normally NOP, or JMP to your curs-è04FE 90                NOP            ;o≥ positioning routine.
  592. 04FF C3                RET
  593.  
  594. Displayinτ ácharacter≤ áoε somσ screen≤ caε bσ significantl∙ faste≥ iµ thσ ácurso≥ ácaε ábσ ì
  595. turneΣ off.
  596.  
  597. 0500 90            ONCUR:    NOP            ;Turn cursor on by changing to JMP
  598. 0501 90                NOP            ;t∩ a custom subroutine«  BL con-
  599. 0502 C3                RET            ;tain≤ thσ curren⌠ cursor line, BH
  600.                                                         ;the column.
  601.  
  602. 0503 90            OFFCUR:    NOP            ;Turn cursor off by changing to JMP
  603. 0504 90                NOP            ;t∩ a custom subroutine«  BL con-
  604. 0505 C3                RET            ;tain≤ thσ curren⌠ cursor line, BH 
  605.                                                         ;the column.
  606.  
  607. Everythinτ áiε thσ res⌠ oµ thi≤ sectioε i≤ optional«  Thσ item≤ relatσ eithe≥ át∩ áenhanceΣ ì
  608. ááááááááperformance¼ o≥ fo≥ accomodatinτ unusua∞ terminals.
  609.  
  610. Erase screen« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ firs⌠ bytσ zero¼ anΣ thσ áedito≥ ì
  611. ááááááááwil∞ eithe≥ senΣ linσ feeds¼ o≥ updatσ ß screeε oµ tex⌠ usinτ ERAEO╠ below.
  612.  
  613. After thσ áscreeε i≤ erased¼ WordSta≥ assume≤ tha⌠ thσ vide∩ attribute≤ arσ se⌠ t∩ ánormal¼ ì
  614. ááááááááanΣ tha⌠ thσ curso≥ i≤ a⌠ thσ homσ positioε (uppe≥ lef⌠ hanΣ corner).
  615.  
  616. 0506 01            ERASCR    DB    1        ;Number of characters
  617. 0507 1A                DB    CTRLZ        ;First character
  618. 0508 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0    ;15 more
  619.     00
  620. 0510 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0
  621.  
  622. Backspacσ áonσ ácharacte≥ string« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ áfirs⌠ ábytσ ì
  623. áááááááázero¼ anΣ thσ edito≥ wil∞ usσ curso≥ addressinτ t∩ backspace.
  624.  
  625. 0517 00            BAKSPC    DB    0        ;Number of characters
  626. 0518 00                DB    0        ;First character
  627. 0519 00 00 00            DB    0,0,0        ;Additional characters
  628.  
  629. Erase to enΣ oµ linσ string« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ firs⌠ bytσ ázero¼ ì
  630. ááááááááanΣ thσ edito≥ wil∞ perforφ thσ functioε morσ slowl∙ viß software.
  631.  
  632. 051C 01            ERAEOL    DB    1        ;Number of characters
  633. 051D 14                DB    CTRLT        ;First character
  634. 051E 00 00 00            DB    0,0,0        ;Additional characters
  635.  
  636. Erase to enΣ áoµ áscreeε string« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ áthσ áfirs⌠ ábytσ ì
  637. áááááááázero¼ anΣ thσ edito≥ wil∞ use≥ erasσ b∙ blanking.
  638.  
  639. 0521 00            ERAEOS    DB    0        ;Number of characters
  640. 0522 00                DB    0        ;First character
  641. 0523 00 00 00            DB    0,0,0        ;Additional characters
  642.  
  643. Delete screeε álinσ containinτ thσ cursor¼ anΣ movσ lowe≥ line≤ oε thσ screeε u≡ onσ áline« ì
  644. ááááááááIµ áthi≤ functioε i≤ no⌠ available¼ leavσ thσ firs⌠ bytσ zero¼ anΣ thσ edito≥ áwil∞ ì
  645. ááááááááperforφ thσ functioε morσ slowl∙ viß software.
  646.  
  647. 0526 01            LINDEL    DB    1        ;Number of characters
  648. 0527 12                DB    CTRLR        ;First character
  649. 0528 00 00 00            DB    0,0,0        ;Additional characters
  650. èInsert a blanδ álinσ áoε thσ screen¼ movinτ thσ linσ containinτ thσ cursor¼ anΣ áthσ áline≤ ì
  651. áááááááábelo≈ ái⌠ ádowε onσ line« Iµ thi≤ functioε i≤ no⌠ available¼ leavσ thσ áfirs⌠ ábytσ ì
  652. áááááááázero¼ anΣ thσ edito≥ wil∞ perforφ thσ functioε morσ slowl∙ viß software.
  653.  
  654. 052B 01            LININS    DB    1        ;Number of characters
  655. 052C 05                DB    CTRLE        ;First character
  656. 052D 00 00 00            DB    0,0,0        ;Additional characters
  657.  
  658. WordStar wil∞ áusσ LINDE╠ anΣ LININ╙ t∩ deletσ o≥ inser⌠ ß grou≡ oµ line≤ rathe≥ thaε ájus⌠ ì
  659. áááááááádisplayinτ ß wholσ ne≈ screenfu∞ oµ characters« LINMA╪ belo≈ indicate≤ thσ ámaximuφ ì
  660. áááááááánumbe≥ áoµ áline≤ tha⌠ thi≤ woulΣ generall∙ bσ faste≥ thaε thσ rσ-display« áSe⌠ át∩ ì
  661. áááááááázer∩ iµ don'⌠ care.
  662.  
  663. 0530 00            LINMAX    DB    0        ;Don't care
  664.  
  665. Delete thσ ácharacte≥ a⌠ thσ curren⌠ curso≥ position¼ movinτ al∞ followinτ character≤ álef⌠ ì
  666. ááááááááonσ position« Iµ no⌠ availablσ leavσ thσ firs⌠ bytσ zer∩ anΣ WordSta≥ wil∞ árepain⌠ ì
  667. ááááááááthσ line.
  668.  
  669. 0531 00            CHRDEL    DB    0        ;Number of characters
  670. 0532 00                DB    0        ;First character
  671. 0533 00 00 00            DB    0,0,0        ;Additional characters
  672.  
  673. Insert a blanδ oε thσ screeε a⌠ thσ curren⌠ curso≥ position¼ movinτ followinτ character≤ t∩ ì
  674. ááááááááthσ right« Leavσ firs⌠ bytσ zer∩ iµ unavailablσ s∩ tha⌠ WordSta≥ wil∞ repain⌠ line.
  675.  
  676. 0536 00            CHRINS    DB    0        ;Number of characters
  677. 0537 00                DB    0        ;First character
  678. 0538 00 00 00            DB    0,0,0        ;Additional characters
  679.  
  680. Terminal initializatioε string« ┴ strinτ oµ byte≤ whicΦ wil∞ bσ sen⌠ t∩ thσ termina∞ a⌠ thσ ì
  681. áááááááábeginninτ oµ ß session« Seσ als∩ INISUB.
  682.  
  683. 053B FF            TRMINI    DB    -1        ;Number of bytes
  684. 053C 0506 R            DW    ERASCR        ;Use extension mechanism (-1 as
  685. 053E 00 00             DB    0,0        ;bytσ count) to erase screen as
  686.  ááááááá                                                ;initialization.
  687.  
  688. Terminal uε-initializatioε string« ┴ strinτ oµ byte≤ whicΦ wil∞ bσ sen⌠ t∩ thσ termina∞ áa⌠ ì
  689. ááááááááthσ enΣ oµ ß session« Seσ als∩ UNISUB.
  690.  
  691. 0540 00            TRMUNI    DB    0        ;Number of bytes
  692. 0541 00 00             DB    0,0
  693. 0543 00 00             DB    0,0
  694.  
  695. User-patchablσ áinitializatioε ásubroutine« CalleΣ beforσ thσ TRMIN╔ strinτ i≤ ásent« áThi≤ ì
  696. áááááááásubroutinσ áma∙ bσ useΣ fo≥ specia∞ consolσ initializatioε o≥ othe≥ ápurposes« áSeσ ì
  697. ááááááááUCRPO╙ comments.
  698.  
  699. 0545 90            INISUB:    NOP            ;Normally NOP, or JMP to
  700. 0546 90                NOP            ;your subroutine
  701. 0547 C3                RET
  702.  
  703. User patchablσ uε-initializatioε subroutine« CalleΣ beforσ thσ TRMUN╔ strinτ i≤ sent« áThi≤ ì
  704. áááááááásubroutinσ áma∙ bσ useΣ t∩ 'undoº an∙ specia∞ termina∞ statu≤ useΣ fo≥ thσ áeditor« ì
  705. ááááááááSeσ UCRPO╙ comments.
  706.  
  707. 0548 90            UNISUB:    NOP            ;Normally NOP, or JMP to
  708. 0549 90                NOP            ;your subroutine
  709. 054A C3                RETè
  710. Vide∩ attribute≤ arσ useΣ iε variou≤ place≤ oε thσ WordSta≥ display«  Wheε ß vide∩ áattribì
  711. utσ changes¼ WordSta≥ call≤ thσ VIDAT╘ subroutinσ belo≈ witΦ ß vide∩ attributσ codσ iε áthσ ì
  712. C╪ áregister« áIµ thσ C╚ registe≥ i≤ zero¼ WordSta≥ i≤ displayinτ regula≥ tex⌠ anΣ áthσ áC╠ ì
  713. registe≥ bit≤ meaε thσ followinτ vide∩ attribute≤ arσ t∩ bσ used...
  714.  
  715.     Bit    Video Attribute
  716.  
  717.     none    Normal text
  718.     0    Strike-out
  719.     1    Warnings & errors
  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.  
  737. Wheε áIBMFL╟ i≤ set¼ WordSta≥ expect≤ thσ vide∩ attributσ fo≥ thσ characte≥ t∩ bσ áreturneΣ ì
  738. iε áthσ A╠ register« Herσ i≤ thσ defaul⌠ mappinτ fo≥ somσ oµ thσ WordSta≥ vide∩ áattribute≤ ì
  739. int∩ IB═ attributes...
  740.  
  741.     WordStar Video    IBM Video    Function
  742.  
  743.     00000000    00000111    Normal
  744.     01110001    00001000    Bright
  745.     00001000    00000001    Underline
  746.     00000100    00010000    Inverse
  747.     00000010    10000000    Blink
  748.  
  749. Thσ VIDAT╘ subroutinσ i≤ useΣ t∩ changσ vide∩ attribute≤ oε thσ screen«  Oε entry¼ WordSta≥ ì
  750. wil∞ ásuppl∙ áthσ attribute≤ t∩ turε oε iε thσ C╪ register«  Yo⌡ mus⌠ translatσ átheφ áint∩ ì
  751. whateve≥ you≥ particula≥ termina∞ requires.
  752.  
  753. Return the IBM video attribute byte in AL.
  754.  
  755. IBM Video Conversion
  756.  
  757. 054B            VIDATT:
  758. 054B BE 0614 R            MOV    SI,OFFSET VCOLOR+1
  759. 054E 2E: 8A 04            MOV    AL,CS:[SI]    ;Get normal color
  760.  
  761. 0551 E3 35             JCXZ    vida3        ;Normal?
  762.  
  763. 0553 F6 C5 1E            TEST    CH,00011110B    ;Special text?
  764. 0556 75 15             JNZ    vida1
  765.  
  766. 0558 2E: 8A 36 05D3 R        MOV    DH,BYTE PTR CS:vidax ;Know video type?
  767. 055D FE C6             INC    DH
  768. 055F 75 32             JNZ    vida5è
  769. Initialize
  770.  
  771. 0561 51                PUSH    CX
  772. 0562 B4 0F             MOV    AH,15        ;Get video type
  773. 0564 CD 10             INT    10H
  774. 0566 2E: A2 05D3 R         MOV    BYTE PTR CS:vidax,AL
  775. 056A 59                POP    CX
  776. 056B EB DE             JMP    VIDATT
  777.  
  778. Non-text attributes
  779.  
  780. 056D 8A C5         vida1:    MOV    AL,CH        ;Status line?
  781. 056F B3 11             MOV    BL,17
  782. 0571 D0 E8             SHR    AL,1
  783. 0573 D0 E8             SHR    AL,1
  784. 0575 72 0C             JC    vida2
  785.  
  786. 0577 D0 E8             SHR    AL,1        ;Menu?
  787. 0579 72 0E             JC    vida4
  788.  
  789. 057B B3 14             MOV    BL,17+3        ;Function key labels?
  790. 057D D0 E8             SHR    AL,1
  791. 057F 72 02             JC    vida2
  792.  
  793. 0581 FE C3             INC    BL        ;Must be ruler line
  794.  
  795. 0583 32 FF         vida2:    XOR    BH,BH        ;Get video attribute from VCOLOR
  796. 0585 2E: 8A 00            MOV    AL,CS:[SI+BX]
  797. 0588 C3            vida3:    RET
  798.  
  799. 0589 FE C3         vida4:    INC    BL        ;Normal menu text?
  800. 058B 0A C9             OR    CL,CL
  801. 058D 74 F4             JZ    vida2
  802.  
  803. 058F FE C3             INC    BL        ;Highlighted
  804. 0591 EB F0             JMP    vida2
  805.  
  806. Use VCOLOR table to convert WordStar video bits
  807.  
  808. 0593 8A E0         vida5:    MOV    AH,AL        ;Normal color to AH
  809.  
  810. 0595 8A E9             MOV    CH,CL        ;Original bits to CH
  811.  
  812. 0597 B2 08             MOV    DL,8        ;Go through table
  813. 0599 46                INC    SI
  814. 059A D0 E9         vida6:    SHR    CL,1        ;Bit not set?
  815. 059C 73 07             JNC    vida7
  816.  
  817. 059E 2E: 22 04            AND    AL,CS:[SI]    ;AND with mask, OR with new color
  818. 05A1 2E: 0A 44 01         OR    AL,CS:[SI+1]
  819.  
  820. 05A5 46            vida7:    INC    SI        ;Next color in table
  821. 05A6 46                INC    SI
  822. 05A7 FE CA             DEC    DL
  823. 05A9 75 EF             JNZ    vida6
  824.  
  825. 05AB B1 04             MOV    CL,4        ;CL=4
  826.  
  827. 05AD 84 E9             TEST    CH,CL        ;Not marking a block?è05AF 74 21             JZ    vida10
  828.  
  829. 05B1 80 FE 08            CMP    DH,8        ;Color screen?
  830. 05B4 75 08             JNZ    vida9
  831.  
  832. B&W
  833.  
  834. 05B6 A8 76             TEST    AL,01110110B    ;Not underlining?
  835. 05B8 75 02             JNZ    vida8
  836.  
  837. 05BA 8A C4             MOV    AL,AH        ;Use normal color
  838.  
  839. 05BC 34 08         vida8:    XOR    AL,00001000B    ;Invert bright
  840.  
  841. Color
  842.  
  843. 05BE 8A F0         vida9:    MOV    DH,AL        ;Swap foreground & background col-
  844. 05C0 8A D0             MOV    DL,AL        ;ors
  845. 05C2 D2 E6             SHL    DH,CL
  846. 05C4 80 E6 70            AND    DH,01110000B
  847. 05C7 D2 EA             SHR    DL,CL
  848. 05C9 80 E2 07            AND    DL,00000111B
  849. 05CC 24 88             AND    AL,10001000B
  850. 05CE 0A C6             OR    AL,DH
  851. 05D0 0A C2             OR    AL,DL
  852. 05D2 C3            vida10:    RET
  853.  
  854. 05D3 FF            vidax    DB    -1        ;Video type
  855.  
  856. = 0089            vidatz    EQU    $-VIDATT    ;Size of VIDATT code
  857.  
  858. 05D4 003F[             DB    (200-vidatz) DUP(0) ;Extrß ábyte≤ át∩ fil∞ áou⌠ át∩ ì
  859. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;200tΦ byte
  860.     00
  861.         ]
  862.  
  863. Iµ áIBMFL╟ ái≤ TRUE¼ anΣ VIDAT╘ i≤ disableΣ (NOP)¼ thσ followinτ tablσ i≤ useΣ t∩ áse⌠ áthσ ì
  864. vide∩ áattribute≤ áfo≥ thσ IB═ compatiblσ vide∩ RAM« Notσ tha⌠ thσ tablσ i≤ useΣ ábotΦ áfo≥ ì
  865. monochromσ áanΣ colo≥ anΣ shoulΣ bσ installeΣ accordingly« Thσ defaul⌠ i≤ se⌠ u≡ fo≥ ámonoì
  866. chrome.
  867.  
  868. EacΦ entr∙ iε thσ tablσ contain≤ botΦ ß masδ tha⌠ i≤ AND'Σ witΦ thσ vide∩ attribute¼ anΣ áß ì
  869. colo≥ codσ tha⌠ i≤ OR'd.
  870.  
  871. Thσ IB═ P├ use≤ ß vide∩ attributσ bytσ fo≥ eacΦ character« I⌠ i≤ organizeΣ iε thσ followinτ ì
  872. way:
  873.  
  874.     Bit    Function
  875.  
  876.     0,1,2    Foreground color (characters)
  877.     3    Bright
  878.     4,5,6    Background color
  879.     7    Blink
  880.  
  881. The color codes for the IBM PC are:
  882.  
  883.     0 - black
  884.     1 - blue
  885.     2 - green
  886.     3 - cyanè    4 - red
  887.     5 - magenta
  888.     6 - brown
  889.     7 - white (light grey)
  890.  
  891. 0613 00 07         VCOLOR    DB    00000000B,00000111B    ;Norma∞ tex⌠ whitσ oε blacδ ì
  892. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;(n∩ blinδ o≥ bright)
  893. 0615 FF 08             DB    11111111B,00001000B    ;Make strike-out bright
  894. 0617 88 70             DB    10001000B,01110000B    ;Inversσ fo≥ warning≤ ª e≥ì
  895. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;rors
  896. 0619 FF 00             DB    11111111B,00000000B    ;Reversσ ávide∩ i≤ áinversσ ì
  897. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oµ normal
  898. 061B F8 01             DB    11111000B,00000001B    ;Monochromσ underlinσ (bluσ ì
  899. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;iµ color)
  900. 061D FF 08             DB    11111111B,00001000B    ;Make subscripts bright
  901. 061F FF 08             DB    11111111B,00001000B    ;Make superscripts bright
  902. 0621 FF 08             DB    11111111B,00001000B    ;Makσ ábolΣ ª ádoublestrikσ ì
  903. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;bright
  904. 0623 FF 08             DB    11111111B,00001000B    ;Bright italics
  905.  
  906. 0625 70                DB    01110000B        ;Status line, black on white
  907. 0626 07                DB    00000111B        ;Norma∞ men⌡ text¼ whitσ oε ì
  908. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;black
  909. 0627 0F                DB    00001111B        ;Brigh⌠ ámen⌡ text¼ ábrigh⌠ ì
  910. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;white
  911. 0628 70                DB    01110000B        ;Functioε ke∙ labels¼ blacδ ì
  912. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oε white
  913. 0629 07                DB    00000111B        ;Ruler line, white on black
  914.  
  915. = 0017            vcoloz    EQU    $-VCOLOR        ;Size of VCOLOR
  916.  
  917. 062A 0007[             DB    (30-vcoloz) DUP(0)    ;Extrß byte≤ t∩ fil∞ ou⌠ t∩ ì
  918. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;30tΦ byte
  919.     00
  920.         ]
  921.  
  922. Normall∙ áthσ statu≤ linσ anΣ tex⌠ arσ displayeΣ iε diφ intensit∙ s∩ tha⌠ bolΣ anΣ ádoubleì
  923. strucδ átex⌠ caε bσ showε iε higΦ intensity«  Settinτ BRIT┼ t∩ 0FF╚ reverse≤ thσ áusagσ áoµ ì
  924. brigh⌠ anΣ diφ fo≥ thσ statu≤ line¼ text¼ anΣ directories;zer∩ normally.
  925.  
  926. 0631 00            BRITE    DB    0        ;Don't reverse
  927.  
  928. WordSta≥ áattempt≤ t∩ dra≈ ß bo° arounΣ mos⌠ oµ thσ menu≤ usinτ thσ followinτ ábo° ádrawinτ ì
  929. characters.
  930.  
  931. 0632 CD            BOXCHR    DB    0CDH        ;Horizontal line
  932. 0633 BA                DB    0BAH        ;Vertical line
  933. 0634 C9                DB    0C9H        ;Upper left corner
  934. 0635 C8                DB    0C8H        ;Lower left corner
  935. 0636 BB                DB    0BBH        ;Upper right corner
  936. 0637 BC                DB    0BCH        ;Lower right corner
  937.  
  938. 0638 00 00 00 00 00 00        DB    0,0,0,0,0,0    ;Reserved
  939.  
  940. Delays executeΣ afte≥ variou≤ termina∞ functions¼ beforσ thσ nex⌠ characte≥ i≤ sen⌠ t∩ áthσ ì
  941. ááááááááterminal¼ t∩ allo≈ responsσ timσ requireΣ b∙ certaiε terminal≤ wheε operatinτ a⌠ áß ì
  942. ááááááááhigΦ ábauΣ rate« Se⌠ t∩ ß large≥ valuσ iµ yo⌡ suffe≥ ß los≤ oµ character≤ áafte≥ áß ì
  943. áááááááátermina∞ function.
  944.  
  945. Note that an additional delay FUNDLY is located near theè    function key table FUNTBL above.
  946.  
  947. Each dela∙ i≤ approximatel∙ thσ numbe≥ oµ millisecond≤ oε aε 808╕ processor« Aε 808╢ ma∙ bσ ì
  948. ááááááááconsiderab∙ faster.
  949.  
  950. 063E 00            DELCUS    DB    0        ;N∩ dela∙ afte≥ curso≥ ápositioninτ ì
  951. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;(iµ áyou≥ átermina∞ áwork≤ ábette≥ ì
  952. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;witΦ ╡ millisecond≤ oµ delay¼ áyo⌡ ì
  953. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;woulΣ pu⌠ ß "5ó here)
  954.  
  955. 063F 00            DELMIS    DB    0        ;No delay after ERASCR and TRMINI
  956.  
  957. 0640 0000         DXOFF    DW    0        ;Iµ áXON/XOF╞ áuseΣ áfo≥ áterminal¼ ì
  958. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;sometime≤ ß legitimatσ ^╙ wil∞ ábσ ì
  959. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;interpreteΣ a≤ aε XOF╞ ácharacter« ì
  960. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;DXOF╞ i≤ useΣ t∩ timσ ou⌠ s∩ átha⌠ ì
  961. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;thσ termina∞ wil∞ continue.
  962.  
  963. 0642 07D0         DLONG    DW    2000        ;Lonτ ádelay≤ á(▓ second≤ á╜ á2,00░ ì
  964. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;milliseconds)
  965.                             ╗¡ betweeε sigε-oε messagσ anΣ áO≡ì
  966. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;eninτ Menu
  967.                             ╗¡ holΣ ofµ accidenta∞ unerasσ áaµì
  968. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;te≥ ^╒ i≤ useΣ t∩ cance∞ something
  969.  
  970. 0644 03E8         DMED    DW    1000        ;Mediuφ ádelay≤ (▒ seconΣ á╜ á1,00░ ì
  971. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;milliseconds)
  972.                             ╗¡ áholΣ ofµ submen⌡ (^╤ ^╦ á^╧ á^╨ ì
  973. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Esc⌐ t∩ preven⌠ menu≤ froφ appearì
  974. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inτ wheε typinτ command≤ quickly
  975.  
  976. 0646 00C8         DSHORT    DW    200        ;Short delays (200 milliseconds)
  977.                             ╗¡ áfinΣ anΣ replacσ flashinτ áratσ ì
  978. áááááááááááááááááááááááááááááááááááááááááááááááááááááááábetweeε tex⌠ anΣ Replacσ Y/╬ áquesì
  979. áááááááááááááááááááááááááááááááááááááááááááááááááááááááátion
  980.                             ╗¡ dela∙ betweeε ^Q╤ repeateΣ ácoφì
  981. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;mands
  982.                             ╗¡ director∙ holΣ ofµ dela∙ iµ ty≡ì
  983. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inτ fas⌠ a⌠ prompts
  984.                             ╗¡ holΣ ofµ hel≡ fo≥ promp⌠ iµ ty≡ì
  985. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inτ fast
  986.  
  987. 0648 00C8         UPDLY    DW    200        ;Page/line/columε updatσ dela∙ af⌠ì
  988. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;e≥ ámovinτ thσ curso≥ (20░ ámilliì
  989. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;seπonds)
  990.  
  991. 064A 0000         DDISK    DW    0        ;Disδ áacces≤ delay« áIµ ácharacte≥ ì
  992. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;typeΣ durinτ disδ access¼ wai⌠ fo≥ ì
  993. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;morσ typinτ beforσ continuing.
  994.  
  995. 064C 0032         DFAST    DW    50        ;Dela∙ wheε typinτ fast« Hold≤ áofµ ì
  996. áááááááááááááááááááááááááááááááááááááááááááááááááááááááádisplayinτ áthσ áres⌠ oµ áthσ álinσ ì
  997. áááááááááááááááááááááááááááááááááááááááááááááááááááááááábriefly.
  998.  
  999. Optional use≥-supplieΣ áconsolσ I/╧ subroutines« Yo⌡ ma∙ patcΦ JMP'≤ herσ t∩ you≥ owε áconì
  1000. áááááááásolσ áinput¼ áconsolσ output¼ anΣ consolσ statu≤ subroutines¼ iε whicΦ ácasσ áthesσ ì
  1001. áááááááároutines¼ áinsteaΣ oµ thσ operatinτ systeφ BIO╙ entr∙ points¼ wil∞ bσ useΣ fo≥ áal∞ ì
  1002. ááááááááconsolσ I/O« Thesσ subroutine≤ ma∙ alte≥ al∞ registers.
  1003.  
  1004. These routine≤ wil∞ overridσ thσ interna∞ WordSta≥ IB═ driver≤ eveε iµ IBMFL╟ i≤ set.è
  1005. Use of a custoφ subroutinσ accesseΣ herσ i≤ suggested¼ fo≥ example¼ t∩ drivσ ß vide∩ áboarΣ ì
  1006. áááááááátha⌠ canno⌠ bσ driveε viß outpu⌠ t∩ thσ operatinτ system.
  1007.  
  1008. 064E 90            UCNSTA:    NOP            ;User console status subroutine.
  1009. 064F 90                NOP            ;Normally NOP,  or JMP to your own
  1010. 0650 C3                RET            ;subroutine. Must return 0 in AL if
  1011.                             ;no character ready, 0FFH if one is
  1012.                             ;ready.
  1013.  
  1014. 0651 90            UCONI:    NOP            ;User console input subroutine.
  1015. 0652 90                NOP            ;Normally NOP¼  or JMP to your own
  1016. 0653 C3                RET            ;subroutine. Must return thσ char-
  1017.                             ;acter in AL. May be calleΣ before
  1018.                             ;a character is ready. Iµ n∩ char-
  1019.                             ;acter is ready, routinσ mus⌠ wait
  1020.                             ;until onσ i≤ available.
  1021.  
  1022. 0654 90            UCONO:    NOP            ;User console output subroutine.
  1023. 0655 90                NOP            ;Normally NOP, or JMP to your own
  1024. 0656 C3                RET            ;subroutine«  Subroutine receives
  1025.                             ;the character in AL, video attri-
  1026.                             ;bute≤ iε CH¼  and current cursor 
  1027. áááááááá                                                ;address in BX.
  1028.  
  1029. Thi≤ ái≤ á38┤ byte≤ se⌠ asidσ fo≥ anythinτ tha⌠ thσ use≥ wishe≤ t∩ use« Fo≥ thσ IB═ ái⌠ ái≤ ì
  1030. useΣ fo≥ defininτ functioε key≤ F▒ througΦ F10.
  1031.  
  1032. 0657 02            MORPAT    DB    2
  1033. 0658 00 3B             DB    0,3BH        ;F1
  1034. 065A 01                DB    1
  1035. 065B 0A                DB    CTRLJ
  1036.  
  1037. 065C 02                DB    2
  1038. 065D 00 3C             DB    0,3CH        ;F2
  1039. 065F 01                DB    1
  1040. 0660 15                DB    CTRLU
  1041.  
  1042. 0661 02                DB    2
  1043. 0662 00 3D             DB    0,3DH        ;F3
  1044. 0664 02                DB    2
  1045. 0665 10 13             DB    CTRLP,CTRLS
  1046.  
  1047. 0667 02                DB    2
  1048. 0668 00 3E             DB    0,3EH        ;F4
  1049. 066A 02                DB    2
  1050. 066B 10 02             DB    CTRLP,CTRLB
  1051.  
  1052. 066D 02                DB    2
  1053. 066E 00 3F             DB    0,3FH        ;F5
  1054. 0670 01                DB    1
  1055. 0671 19                DB    CTRLY
  1056.  
  1057. 0672 02                DB    2
  1058. 0673 00 40             DB    0,40H        ;F6
  1059. 0675 01                DB    1
  1060. 0676 14                DB    CTRLT
  1061.  
  1062. 0677 02                DB    2
  1063. 0678 00 41             DB    0,41H        ;F7è067A 03                DB    3
  1064. 067B 02 11 10            DB    CTRLB,CTRLQ,CTRLP
  1065.  
  1066. 067E 02                DB    2
  1067. 067F 00 42             DB    0,42H        ;F8
  1068. 0681 04                DB    4
  1069. 0682 11 13 0F 0F        DB    CTRLQ,CTRLS,CTRLO,CTRLO
  1070.  
  1071. 0686 02                DB    2
  1072. 0687 00 43             DB    0,43H        ;F9
  1073. 0689 02                DB    2
  1074. 068A 0B 13             DB    CTRLK,CTRLS
  1075.  
  1076. 068C 02                DB    2
  1077. 068D 00 44             DB    0,44H        ;F10
  1078. 068F 02                DB    2
  1079. 0690 0B 04             DB    CTRLK,CTRLD
  1080.  
  1081. 0692 02                DB    2
  1082. 0693 00 54             DB    0,54H        ;Shift+F1
  1083. 0695 02                DB    2
  1084. 0696 0F 04             DB    CTRLO,CTRLD
  1085.  
  1086. 0698 02                DB    2
  1087. 0699 00 55             DB    0,55H        ;Shift+F2
  1088. 069B 02                DB    2
  1089. 069C 0F 03             DB    CTRLO,CTRLC
  1090.  
  1091. 069E 02                DB    2
  1092. 069F 00 56             DB    0,56H        ;Shift+F3
  1093. 06A1 02                DB    2
  1094. 06A2 11 0C             DB    CTRLQ,CTRLL
  1095.  
  1096. 06A4 02                DB    2
  1097. 06A5 00 57             DB    0,57H        ;Shift+F4
  1098. 06A7 02                DB    2
  1099. 06A8 11 0E             DB    CTRLQ,CTRLN
  1100.  
  1101. 06AA 02                DB    2
  1102. 06AB 00 58             DB    0,58H        ;Shift+F5
  1103. 06AD 02                DB    2
  1104. 06AE 0B 19             DB    CTRLK,CTRLY
  1105.  
  1106. 06B0 02                DB    2
  1107. 06B1 00 59             DB    0,59H        ;Shift+F6
  1108. 06B3 02                DB    2
  1109. 06B4 0B 08             DB    CTRLK,CTRLH
  1110.  
  1111. 06B6 02                DB    2
  1112. 06B7 00 5A             DB    0,5AH        ;Shift+F7
  1113. 06B9 02                DB    2
  1114. 06BA 0B 16             DB    CTRLK,CTRLV
  1115.  
  1116. 06BC 02                DB    2
  1117. 06BD 00 5B             DB    0,5BH        ;Shift+F8
  1118. 06BF 02                DB    2
  1119. 06C0 0B 03             DB    CTRLK,CTRLC
  1120.  
  1121. 06C2 02                DB    2
  1122. 06C3 00 5C             DB    0,5CH        ;Shift+F9è06C5 02                DB    2
  1123. 06C6 0B 02             DB    CTRLK,CTRLB
  1124.  
  1125. 06C8 02                DB    2
  1126. 06C9 00 5D             DB    0,5DH        ;Shift+F10
  1127. 06CB 02                DB    2
  1128. 06CC 0B 0B             DB    CTRLK,CTRLK
  1129.  
  1130. 06CE 02                DB    2
  1131. 06CF 00 68             DB    0,68H        ;Alt+F1
  1132. 06D1 01                DB    1
  1133. 06D2 B3                DB    179
  1134.  
  1135. 06D3 02                DB    2
  1136. 06D4 00 69             DB    0,69H        ;Alt+F2
  1137. 06D6 01                DB    1
  1138. 06D7 C4                DB    196
  1139.  
  1140. 06D8 02                DB    2
  1141. 06D9 00 6A             DB    0,6AH        ;Alt+F3
  1142. 06DB 01                DB    1
  1143. 06DC DA                DB    218
  1144.  
  1145. 06DD 02                DB    2
  1146. 06DE 00 6B             DB    0,6BH        ;Alt+F4
  1147. 06E0 01                DB    1
  1148. 06E1 BF                DB    191
  1149.  
  1150. 06E2 02                DB    2
  1151. 06E3 00 6C             DB    0,6CH        ;Alt+F5
  1152. 06E5 01                DB    1
  1153. 06E6 C0                DB    192
  1154.  
  1155. 06E7 02                DB    2
  1156. 06E8 00 6D             DB    0,6DH        ;Alt+F6
  1157. 06EA 01                DB    1
  1158. 06EB D9                DB    217
  1159.  
  1160. 06EC 02                DB    2
  1161. 06ED 00 6E             DB    0,6EH        ;Alt+F7
  1162. 06EF 01                DB    1
  1163. 06F0 C2                DB    194
  1164.  
  1165. 06F1 02                DB    2
  1166. 06F2 00 6F             DB    0,6FH        ;Alt+F8
  1167. 06F4 01                DB    1
  1168. 06F5 C1                DB    193
  1169.  
  1170. 06F6 02                DB    2
  1171. 06F7 00 70             DB    0,70H        ;Alt+F9
  1172. 06F9 01                DB    1
  1173. 06FA C3                DB    195
  1174.  
  1175. 06FB 02                DB    2
  1176. 06FC 00 71             DB    0,71H        ;Alt+F10
  1177. 06FE 01                DB    1
  1178. 06FF B4                DB    180
  1179.  
  1180. 0700 02                DB    2
  1181. 0701 00 5E             DB    0,5EH        ;Ctrl+F1è0703 02                DB    2
  1182. 0704 11 06             DB    CTRLQ,CTRLF
  1183.  
  1184. 0706 02                DB    2
  1185. 0707 00 5F             DB    0,5FH        ;Ctrl+F2
  1186. 0709 02                DB    2
  1187. 070A 11 01             DB    CTRLQ,CTRLA
  1188.  
  1189. 070C 02                DB    2
  1190. 070D 00 60             DB    0,60H        ;Ctrl+F3
  1191. 070F 01                DB    1
  1192. 0710 0C                DB    CTRLL
  1193.  
  1194. 0711 02                DB    2
  1195. 0712 00 61             DB    0,61H        ;Ctrl+F4
  1196. 0714 02                DB    2
  1197. 0715 11 09             DB    CTRLQ,CTRLI
  1198.  
  1199. 0717 02                DB    2
  1200. 0718 00 62             DB    0,62H        ;Ctrl+F5
  1201. 071A 06                DB    6
  1202. 071B 11 13 2E 4C 4D 0E        DB    CTRLQ,CTRLS,'.LM',CTRLN
  1203.  
  1204. 0721 02                DB    2
  1205. 0722 00 63             DB    0,63H        ;Ctrl+F6
  1206. 0724 06                DB    6
  1207. 0725 11 13 2E 52 4D 0E        DB    CTRLQ,CTRLS,'.RM',CTRLN
  1208.  
  1209. 072B 02                DB    2
  1210. 072C 00 64             DB    0,64H        ;Ctrl+F7
  1211. 072E 07                DB    7
  1212. 072F 11 13 2E 50 4D 36 0D    DB    CTRLQ,CTRLS,'.PM6',CR
  1213.  
  1214. 0736 02                DB    2
  1215. 0737 00 65             DB    0,65H        ;Ctrl+F8
  1216. 0739 06                DB    6
  1217. 073A 11 13 2E 50 41 0D        DB    CTRLQ,CTRLS,'.PA',CR
  1218.  
  1219. 0740 02                DB    2
  1220. 0741 00 66             DB    0,66H        ;Ctrl+F9
  1221. 0743 02                DB    2
  1222. 0744 11 13             DB    CTRLQ,CTRLS
  1223.  
  1224. 0746 02                DB    2
  1225. 0747 00 67             DB    0,67H        ;Ctrl+F10
  1226. 0749 02                DB    2
  1227. 074A 11 04             DB    CTRLQ,CTRLD
  1228.  
  1229. 074C 00                DB    0        ;End of function keys
  1230. 074D 0000             DW    0
  1231.  
  1232. = 00F8            morpaz    EQU    $-MORPAT
  1233.  
  1234. 074F 0088[             DB    (384-morpaz) DUP(0) ;Fill out to 384th byte
  1235.     00
  1236.         ]
  1237.  
  1238. Thσ followinτ strinτ i≤ useΣ t∩ describσ thσ namσ oµ thσ defaul⌠ printe≥ useΣ b∙ áWordStar« ì
  1239. U≡ t∩ 4░ byte≤ arσ provideΣ fo≥ thσ string¼ includinτ it≤ nul∞ terminator.
  1240. è07D7 44 72 61 66 74 20 50 PRNID DB    'Draft Printer',CR,LF,0        ;Printer name
  1241.     72 69 6E 74 65 72 0D
  1242.     0A 00
  1243. 07E7 20 20 20 20 20 20 20    DB    '            '    ;Additional room
  1244.     20 20 20 20 20 20 20
  1245.     20 20 20 20 20 20 20
  1246.     20 20 20
  1247.  
  1248. WordSta≥ áuse≤ ß defaul⌠ printe≥ drive≥ iµ nonσ i≤ specifieΣ b∙ thσ user« Thσ followinτ ái≤ ì
  1249. it≤ name« I⌠ ma∙ bσ u≡ t∩ si° character≤ long¼ nul∞ terminated.
  1250.  
  1251. 07FF 44 52 41 46 54 00    DEFPRN    DB    'DRAFT',0    ;Standard driver
  1252. 0805 20            DB    ' '        ;One extra char
  1253. 0806 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0    ;Reserved
  1254.  
  1255. Thσ prin⌠ dela∙ time≥ i≤ useΣ t∩ timσ ho≈ lonτ thσ printe≥ i≤ bus∙ beforσ tellinτ thσ áuse≥ ì
  1256. tha⌠ áit'≤ beeε bus∙ ß lonτ time« Thi≤ woulΣ primaril∙ bσ useΣ wheε thσ printe≥ wa≤ iε áanì
  1257. othe≥ rooφ anΣ yo⌡ migh⌠ no⌠ kno≈ tha⌠ i⌠ wa≤ bus∙ duσ t∩ ß pape≥ jaφ o≥ beinτ ofµ line.
  1258.  
  1259. 080D 4E20         PRNDLY    DW    20000        ;Delay before saying printer busy
  1260.                             ;20 seconds = 20,000 milliseconds
  1261.                             ;Disabled if zero
  1262.  
  1263. Pausinτ betweeε eacΦ pagσ i≤ useΣ iµ singlσ sheet≤ oµ pape≥ arσ beinτ printed.
  1264.  
  1265. 080F 00            PPAUSE    DB    FALSE        ;Continuous form (don't pause)
  1266.  
  1267. 0810 00                DB    0        ;Reserved
  1268.  
  1269. Man∙ printer≤ caε usσ forφ feed≤ t∩ quickl∙ ge⌠ froφ onσ pagσ t∩ thσ next« Iµ you≥ áprinte≥ ì
  1270. can't¼ se⌠ PFFEE─ t∩ FALS┼ anΣ WordSta≥ wil∞ insteaΣ usσ carriagσ return≤ anΣ linσ feeds.
  1271.  
  1272. 0811 00            PFFEED    DB    FALSE        ;Carriage returns to next page
  1273.  
  1274. 0812 00                DB    0        ;Reserved
  1275.  
  1276. Somσ users¼ likσ programmers¼ ma∙ wan⌠ t∩ usuall∙ prin⌠ noε-documents«  Iε thi≤ case¼ Wordì
  1277. Sta≥ áprint≤ an∙ line≤ tha⌠ begiε witΦ ß perioΣ (do⌠ commands)¼ anΣ expand≤ taΓ ácharacter≤ ì
  1278. (09H⌐ accordinτ t∩ thσ filetypσ iε thσ EDCON─ tablσ elsewherσ iε thσ Use≥ Area.
  1279.  
  1280. 0813 00            PNODOC    DB    FALSE        ;Don't print as a non-document
  1281.  
  1282. 0814 00                DB    0        ;Reserved
  1283.  
  1284. Normall∙ WordSta≥ wil∞ prin⌠ you≥ documen⌠ iε thσ backgrounΣ s∩ tha⌠ yo⌡ caε theε d∩ ásomeì
  1285. thinτ elsσ whilσ i⌠ i≤ printing« Thi≤ featurσ caε bσ turneΣ off.
  1286.  
  1287. 0815 FF            BAKPRN    DB    TRUE        ;Background printing is on
  1288.  
  1289. Whilσ printinτ iε thσ background¼ BPRSP─ tell≤ WordSta≥ ho≈ fas⌠ thσ printer≤ arσ áattacheΣ ì
  1290. t∩ thσ primar∙ anΣ alternatσ printe≥ port≤ (seσ LSTDE╓ below)« Iµ yo⌡ picδ ß speeΣ tha⌠ ái≤ ì
  1291. to∩ áhigh¼ áWordSta≥ ma∙ "hanτ upó sometime≤ whilσ waitinτ fo≥ thσ printe≥ t∩ bσ áread∙ áiµ ì
  1292. you≥ LSTDE╓ i≤ se⌠ u≡ t∩ usσ thσ LS╘ o≥ AU╪ device« ┴ speeΣ oµ zer∩ mean≤ tha⌠ WordSta≥ ái≤ ì
  1293. t∩ áalway≤ áprin⌠ a⌠ maximuφ speed« Otherwisσ ente≥ you≥ printe≥ speeΣ áiε ácharacter≤ ápe≥ ì
  1294. seconΣ (cps).
  1295.  
  1296. 0816 00            BPRSPD    DB    0        ;Full speed for primary port
  1297. 0817 00                DB    0        ;Full speed for alternate port
  1298.  
  1299. 0818 00 00             DB    0,0        ;Reservedè
  1300. Printe≥ áprotoco∞ áflags« Onl∙ onσ oµ thesσ flag≤ ma∙ bσ se⌠ TRU┼ a⌠ onσ time« áIµ áneithe≥ ì
  1301. flaτ i≤ set¼ WordSta≥ assume≤ al∞ printe≥ bus∙ handshakinτ i≤ donσ externall∙ t∩ WordStar.
  1302.  
  1303. 081A 00            LXOFF    DB    FALSE        ;Printer XON/XOFF protocol.
  1304.  
  1305. 081B 00            LETX    DB    FALSE        ;Printer ETX/ACK protocol.
  1306.  
  1307. 081C 80            LCHRMX    DB    128        ;Maximum chars before sending ETX.
  1308.                             ;Half of printer's buffer size.
  1309.  
  1310. Use≥ lis⌠ devicσ outpu⌠ subroutine≤ arσ useΣ iµ thσ norma∞ system≤ lis⌠ devicσ i≤ no⌠ t∩ bσ ì
  1311. used« Thσ use≥ subroutinσ override≤ thσ LSTDE╓ selectioε below.
  1312.  
  1313. 081D 90            ULOSTA:    NOP            ;User list output status subroutine.
  1314. 081E 90                NOP            ;Normally NOP, or JMP to your own
  1315. 081F C3                RET            ;subroutine. Must return 0 in AL if
  1316.                             ;list device is busy, 0FFH if idle.
  1317.  
  1318. 0820 90            ULSTO:    NOP            ;User list output subroutine.
  1319. 0821 90                NOP            ;Normally NOP, or JMP to your own
  1320. 0822 C3                RET            ;subroutine«  Subroutine receives 
  1321.                             ;thσ character in AL.
  1322.  
  1323. Use≥ ális⌠ inpu⌠ subroutine≤ arσ useΣ iµ eithe≥ XON/XOF╞ o≥ ETX/AC╦ protocol≤ arσ áuseΣ át∩ ì
  1324. indicatσ wheε thσ printe≥ i≤ busy.
  1325.  
  1326. On IBM PCs, if LSTDEV is defined for COMx, these routines are not
  1327. required.
  1328.  
  1329. 0823 90            ULISTA:    NOP            ;User list input status subroutine.
  1330. 0824 90                NOP            ;Normally NOP, or JMP to your own
  1331. 0825 C3                RET            ;subroutine¼  if LXOFF or LETX is 
  1332.                             ;TRUE«  Must return 0 in AL if no 
  1333.                                                         ;char pending.
  1334.  
  1335. 0826 90            ULSTI:    NOP            ;User list input subroutine.
  1336. 0827 90                NOP            ;Normally NOP, or JMP to your own
  1337. 0828 C3                RET            ;subroutine¼  if LXOFF or LETX is
  1338.                             ;TRUE« Return≤ character in AL.
  1339.  
  1340. Printer Output Selection
  1341.  
  1342. Wheε áWordSta≥ prints¼ i⌠ send≤ it≤ outpu⌠ t∩ onσ oµ thσ device≤ specifieΣ witΦ LSTDEV« áIµ ì
  1343. yo⌡ áhavσ tw∩ printer≤ attacheΣ t∩ you≥ computer¼ WordSta≥ use≤ thσ firs⌠ onσ an∙ timσ áyo⌡ ì
  1344. usσ thσ defaul⌠ drive≥ DEFPRN¼ anΣ thσ seconΣ onσ fo≥ an∙ drive≥ othe≥ thaε DEFPRN« Iµ áyo⌡ ì
  1345. onl∙ havσ onσ printer¼ botΦ byte≤ woulΣ normall∙ bσ thσ same.
  1346.  
  1347. For MS-DOS:
  1348.  
  1349.     00H = AUX device
  1350.     01H = LPT1 (IBM PC only)
  1351.     02H = LPT2 (IBM PC only)
  1352.     03H = LPT3 (IBM PC only)
  1353.     11H = COM1 (IBM PC only)
  1354.     12H = COM2 (IBM PC only)
  1355.     FFH = LST device
  1356.  
  1357. For CP/M:
  1358. è    00H = TTY device
  1359.     01H = CRT device
  1360.     02H = LPT device
  1361.     03H = UL1 device
  1362.     FFH = Default LST device
  1363.  
  1364. For MP/M or Concurrent CP/M:
  1365.  
  1366.     00H-FEH = Printer number
  1367.     FFH = Default LST device
  1368.  
  1369. For TurboDOS:
  1370.  
  1371.     00H-7EH = Printer or queue number (01=A, 02=B, etc.)
  1372.     7FH = Default LST device
  1373.     MSB = 1 if spooling, 0 if direct printing
  1374.  
  1375. 0829            LSTDEV    LABEL    BYTE
  1376. 0829 01 01             DB    1,1        ;LPT1, 1 printer
  1377.  
  1378. Regardles≤ áoµ LSTDE╓ above¼ a≤ thσ defaul⌠ prin⌠ outpu⌠ caε bσ redirecteΣ t∩ ß devicσ á(o≥ ì
  1379. file⌐ a≤ specifieΣ below.
  1380.  
  1381. 082B 00            LSTRED    DB    0        ;No redirection
  1382. 082C 000F[             DB    15 DUP(0)
  1383.     00
  1384.         ]
  1385. 083B 0010[             DB    16 DUP(0)    ;Reserved
  1386.     00
  1387.         ]
  1388.  
  1389. Beforσ printing¼ WordSta≥ wil∞ cal∞ ULPOR╘ belo≈ t∩ allo≈ fo≥ custoφ prin⌠ outpu⌠ áredirecì
  1390. tion« á┴ pointe≥ t∩ thσ namσ oµ thσ printe≥ (nul∞ terminated¼ al∞ capita∞ letters⌐ wil∞ ábσ ì
  1391. passeΣ át∩ áthσ subroutinσ iε BX«  I⌠ i≤ u≡ t∩ thi≤ subroutinσ t∩ theε ároutσ áthσ áprinte≥ ì
  1392. outpu⌠ t∩ thσ appropriatσ outpu⌠ por⌠ b∙ whateve≥ mean≤ i≤ availablσ t∩ it.
  1393.  
  1394. 084B 90            ULPORT:    NOP            ;Normall∙ NO╨ iµ n∩ redirectioε át∩ ì
  1395. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;bσ done.
  1396. 084C 90                NOP            ;Changσ t∩ JM╨ t∩ you≥ owε ásubro⌡ì
  1397. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;tine.
  1398. 084D C3                RET
  1399.  
  1400. Thσ use≥ lis⌠ devicσ uninitializσ routinσ i≤ calleΣ afte≥ printinτ i≤ completed¼ anΣ caε bσ ì
  1401. useΣ t∩ restorσ thσ printe≥ statσ fo≥ noε-WordSta≥ applications.
  1402.  
  1403. 084E 90            ULUNPT:    NOP            ;Uninitializσ ális⌠ ádevicσ ááafte≥ ì
  1404. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;printing
  1405. 084F 90                NOP
  1406. 0850 C3                RET
  1407.  
  1408. Thσ áULIN╔ strinτ i≤ sen⌠ t∩ thσ lis⌠ devicσ afte≥ ULPOR╘ i≤ executeΣ anΣ beforσ thσ ádocuì
  1409. men⌠ i≤ printed.
  1410.  
  1411. 0851 00            ULINI    DB    0        ;List device initialization string
  1412. 0852 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0,0
  1413.     00 00
  1414.  
  1415. 085B 000A[             DB    10 DUP(0)    ;Reserved
  1416.     00
  1417.         ]è
  1418. Thσ áULUN╔ strinτ i≤ sen⌠ t∩ thσ lis⌠ devicσ afte≥ thσ documen⌠ i≤ printeΣ anΣ ábeforσ áthσ ì
  1419. ULUNP╘ routinσ i≤ executed.
  1420.  
  1421. 0865 00            ULUNI    DB    0        ;List device uninitialization string
  1422. 0866 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0,0
  1423.     00 00
  1424.  
  1425. 086F 000A[             DB    10 DUP(0)    ;Reserved
  1426.     00
  1427.         ]
  1428.  
  1429. Wheε áWordSta≥ ábegin≤ printing¼ spacσ i≤ allocateΣ fo≥ thσ threσ heade≥ anΣ áthreσ áfoote≥ ì
  1430. lines« HFMA╪ determine≤ ho≈ mucΦ spacσ t∩ allocate.
  1431.  
  1432. 0879 0064         HFMAX    DW    100        ;U≡ t∩ 10░ character≤ iε heade≥ áo≥ ì
  1433. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;footer
  1434.  
  1435. DATSE╨ i≤ thσ characte≥ useΣ whilσ mergσ printinτ t∩ separatσ datß item≤ iε ß datß file.
  1436.  
  1437. 087B 2C            DATSEP    DB    ','        ;Comma
  1438.  
  1439. DLIS╘ i≤ thσ lis⌠ outpu⌠ delay« Ever∙ timσ ß characte≥ i≤ outpu⌠ t∩ thσ printer¼ thi≤ dela∙ ì
  1440. i≤ used.
  1441.  
  1442. 087C 00            DLIST    DB    0        ;No delay
  1443.  
  1444. 087D 00                DB    0        ;Reserved
  1445.  
  1446. Custoφ Printe≥ Contro∞ Strings║ Thesσ string≤ arσ sen⌠ t∩ thσ printe≥ wheε thσ custoφ prin⌠ ì
  1447. contro∞ ácharacters¼ ^Q¼ ^W¼ ^E¼ o≥ ^╥ arσ encountereΣ iε tex⌠ beinτ printed« The∙ ácaε ábσ ì
  1448. useΣ át∩ áinvokσ specia∞ printe≥ function≤ no⌠ controlleΣ b∙ thσ standarΣ driver¼ ásucΦ áa≤ ì
  1449. expandeΣ o≥ compresseΣ mode≤ oµ printing¼ o≥ contro∞ oµ shee⌠ feeders.
  1450.  
  1451. ┴ áfixeΣ lengtΦ oµ 2╡ byte≤ i≤ reserveΣ fo≥ eacΦ string¼ wherσ thσ firs⌠ bytσ i≤ thσ ácoun⌠ ì
  1452. oµ character≤ t∩ bσ sen⌠ t∩ thσ printer¼ anΣ thσ followinτ byte≤ (u≡ t∩ 24⌐ arσ thσ characì
  1453. ter≤ át∩ bσ sent« Iµ longe≥ string≤ arσ required¼ thσ firs⌠ bytσ caε bσ -1¼ followeΣ áb∙ áß ì
  1454. tw∩ bytσ addres≤ pointinτ int∩ ß patcΦ area¼ wherσ thσ actua∞ coun⌠ anΣ strinτ caε bσ found.
  1455.  
  1456. 087E            UPRCTL    LABEL    BYTE        ;Custom Print Controls
  1457.  
  1458. 087E 00            UPRQ    DB    0        ;^Q , length
  1459. 087F 0018[             DB    24 DUP(0)    ;character string
  1460.     00
  1461.         ]
  1462.  
  1463. 0897 00            UPRW    DB    0        ;^W
  1464. 0898 0018[             DB    24 DUP(0)
  1465.     00
  1466.         ]
  1467.  
  1468. 08B0 00            UPRE    DB    0        ;^E
  1469. 08B1 0018[             DB    24 DUP(0)
  1470.     00
  1471.         ]
  1472.  
  1473. 08C9 00            UPRR    DB    0        ;^R
  1474. 08CA 0018[             DB    24 DUP(0)
  1475.     00
  1476.         ]è
  1477. Strike-out character
  1478.  
  1479. 08E2 2D            STKCHR    DB    '-'        ;Strike out character
  1480.  
  1481. Iµ PFFEE─ abovσ i≤ TRUE¼ o≥ yo⌡ specificall∙ tel∞ WordSta≥ t∩ usσ forφ feed≤ durinτ áprintì
  1482. ing¼ áthσ followinτ strinτ i≤ sen⌠ t∩ thσ printe≥ t∩ ejec⌠ thσ pape≥ t∩ thσ nex⌠ page« áAl∞ ì
  1483. printe≥ driver≤ usσ thi≤ string.
  1484.  
  1485. 08E3 01            FORMF    DB    1        ;^L
  1486. 08E4 0C                DB    FFEED
  1487. 08E5 0017[             DB    23 DUP(0)
  1488.     00
  1489.         ]
  1490.  
  1491. Thesσ áspecia∞ prin⌠ control≤ arσ useΣ onl∙ b∙ thσ CUSTO═ anΣ SIMPL┼ printe≥ ádrivers« áThσ ì
  1492. SIMPL┼ ádrive≥ simpl∙ send≤ thσ string≤ a≤ the∙ arσ needeΣ iε thσ text« Thσ áCUSTO═ ádrive≥ ì
  1493. trie≤ t∩ makσ morσ intelligen⌠ usσ oµ thσ strings.
  1494.  
  1495. 08FC 02            CRLF    DB    2        ;Movσ át∩ álef⌠ sidσ anΣ ádowε áonσ ì
  1496. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line
  1497. 08FD 0D 0A 00 00 00        DB    CR,LF,0,0,0
  1498.  
  1499. 0902 01            CRET    DB    1        ;Movσ áprin⌠ heaΣ t∩ lef⌠ ásidσ áoµ ì
  1500. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;carriage
  1501. 0903 0D 00 00 00 00        DB    CR,0,0,0,0
  1502.  
  1503. 0908 00            HALFLF    DB    0        ;Move down the paper 1/2 line (but
  1504. 0909 00 00 00 00 00        DB    0,0,0,0,0    ;n∩ carriage return) for sub/super-
  1505. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;script
  1506.  
  1507. 090E 01            BACKSP    DB    1        ;^H Move print head left one column
  1508. 090F 08 00 00 00 00        DB    BS,0,0,0,0
  1509.  
  1510. 0914 00            NORMWD    DB    0        ;^N Select normal character width
  1511. 0915 00 00 00 00 00        DB    0,0,0,0,0
  1512.  
  1513. 091A 00            ALTRWD    DB    0        ;^A Select alternate character width
  1514. 091B 00 00 00 00 00        DB    0,0,0,0,0
  1515.  
  1516. 0920 01            PHSP    DB    1        ;^F Phantom space
  1517. 0921 20 00 00 00 00        DB    ' ',0,0,0,0
  1518.  
  1519. 0926 01            PHRUB    DB    1        ;^G Phantom rubout
  1520. 0927 20 00 00 00 00        DB    ' ',0,0,0,0
  1521.  
  1522. 092C 01            BINDSP    DB    1        ;^O Binding space
  1523. 092D 20 00 00 00 00        DB    ' ',0,0,0,0
  1524.  
  1525. 0932 00            BLDON    DB    0        ;^B Boldface on
  1526. 0933 00 00 00 00 00        DB    0,0,0,0,0
  1527.  
  1528. 0938 00            BLDOFF    DB    0        ;^B Boldface off
  1529. 0939 00 00 00 00 00        DB    0,0,0,0,0
  1530.  
  1531. 093E 00            DBLON    DB    0        ;^D Doublestrike on
  1532. 093F 00 00 00 00 00        DB    0,0,0,0,0
  1533.  
  1534. 0944 00            DBLOFF    DB    0        ;^D Doublestrike off
  1535. 0945 00 00 00 00 00        DB    0,0,0,0,0è
  1536. 094A 00            UNDON    DB    0        ;^S Underline on
  1537. 094B 00 00 00 00 00        DB    0,0,0,0,0
  1538.  
  1539. 0950 00            UNDOFF    DB    0        ;^S Underline off
  1540. 0951 00 00 00 00 00        DB    0,0,0,0,0
  1541.  
  1542. 0956 00            SPRON    DB    0        ;^T Superscript on
  1543. 0957 00 00 00 00 00        DB    0,0,0,0,0
  1544.  
  1545. 095C 00            SPROFF    DB    0        ;^T Superscript off
  1546. 095D 00 00 00 00 00        DB    0,0,0,0,0
  1547.  
  1548. 0962 00            SUBON    DB    0        ;^V Subscript on
  1549. 0963 00 00 00 00 00        DB    0,0,0,0,0
  1550.  
  1551. 0968 00            SUBOFF    DB    0        ;^V Subscript off
  1552. 0969 00 00 00 00 00        DB    0,0,0,0,0
  1553.  
  1554. 096E 00            STKON    DB    0        ;^X Strikeout on
  1555. 096F 00 00 00 00 00        DB    0,0,0,0,0
  1556.  
  1557. 0974 00            STKOFF    DB    0        ;^X Strikeout off
  1558. 0975 00 00 00 00 00        DB    0,0,0,0,0
  1559.  
  1560. 097A 00            ITLON    DB    0        ;^Y Italics on
  1561. 097B 00 00 00 00 00        DB    0,0,0,0,0
  1562.  
  1563. 0980 00            ITLOFF    DB    0        ;^Y Italics off
  1564. 0981 00 00 00 00 00        DB    0,0,0,0,0
  1565.  
  1566. 0986 00            EXTON    DB    0        ;Extended character set on
  1567. 0987 00 00 00 00 00        DB    0,0,0,0,0
  1568.  
  1569. 098C 00            EXTOFF    DB    0        ;Extended character set off
  1570. 098D 00 00 00 00 00        DB    0,0,0,0,0
  1571.  
  1572. 0992 00            NLQON    DB    0        ;Near letter quality on (.LQ ON)
  1573. 0993 00 00 00 00 00        DB    0,0,0,0,0
  1574.  
  1575. 0998 00            NLQOFF    DB    0        ;Near letter quality off (.LQ OFF)
  1576. 0999 00 00 00 00 00        DB    0,0,0,0,0
  1577.  
  1578. 099E 0030[             DB    8*6 DUP(0)    ;Reserved
  1579.     00
  1580.         ]
  1581.  
  1582. Thσ overstrikσ value≤ arσ useΣ b∙ thσ CUSTO═ drive≥ only¼ anΣ onl∙ iµ thσ ^┬ o≥ ^─ ástring≤ ì
  1583. d∩ no⌠ exis⌠ above.
  1584.  
  1585. 09CE 03                DB    3        ;Number of overstrikes for bold
  1586. 09CF 02                DB    2        ;Numbe≥ oµ overstrike≤ fo≥ ádoublσì
  1587. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;strike
  1588.  
  1589. ExtendeΣ ácharacter≤ áarσ storeΣ iε ß filσ witΦ ES├ (1BH⌐ t∩ thσ immediatσ álef⌠ áanΣ áBES├ ì
  1590. (1CH⌐ t∩ thσ right« Thσ extendeΣ characte≥ i≤ printeΣ usinτ thσ followinτ table« EacΦ posiì
  1591. tioε iε thσ tablσ contain≤ tw∩ bytes« Thσ firs⌠ bytσ i≤ printed¼ anΣ iµ thσ seconΣ bytσ ái≤ ì
  1592. noε-zero¼ thσ seconΣ bytσ overprint≤ thσ firs⌠ one.
  1593.  
  1594. 09D0 00 00         COMPOS    DB    CTRL@,0        ;^@è09D2 01 00             DB    CTRLA,0        ;^A
  1595. 09D4 02 00             DB    CTRLB,0        ;^B
  1596. 09D6 03 00             DB    CTRLC,0        ;^C
  1597. 09D8 04 00             DB    CTRLD,0        ;^D
  1598. 09DA 05 00             DB    CTRLE,0        ;^E
  1599. 09DC 06 00             DB    CTRLF,0        ;^F
  1600. 09DE 07 00             DB    CTRLG,0        ;^G
  1601. 09E0 08 00             DB    CTRLH,0        ;^H
  1602. 09E2 09 00             DB    CTRLI,0        ;^I
  1603. 09E4 0A 00             DB    CTRLJ,0        ;^J
  1604. 09E6 0B 00             DB    CTRLK,0        ;^K
  1605. 09E8 0C 00             DB    CTRLL,0        ;^L
  1606. 09EA 0D 00             DB    CTRLM,0        ;^M
  1607. 09EC 0E 00             DB    CTRLN,0        ;^N
  1608. 09EE 0F 00             DB    CTRLO,0        ;^O
  1609. 09F0 10 00             DB    CTRLP,0        ;^P
  1610. 09F2 11 00             DB    CTRLQ,0        ;^Q
  1611. 09F4 12 00             DB    CTRLR,0        ;^R
  1612. 09F6 13 00             DB    CTRLS,0        ;^S
  1613. 09F8 14 00             DB    CTRLT,0        ;^T
  1614. 09FA 15 00             DB    CTRLU,0        ;^U
  1615. 09FC 16 00             DB    CTRLV,0        ;^V
  1616. 09FE 17 00             DB    CTRLW,0        ;^W
  1617. 0A00 18 00             DB    CTRLX,0        ;^X
  1618. 0A02 19 00             DB    CTRLY,0        ;^Y
  1619. 0A04 1A 00             DB    CTRLZ,0        ;^Y
  1620. 0A06 1B 00             DB    CTRLLB,0    ;^[
  1621. 0A08 1C 00             DB    CTRLSL,0    ;^\
  1622. 0A0A 1D 00             DB    CTRLRB,0    ;^]
  1623. 0A0C 1E 00             DB    CTRLUP,0    ;^^
  1624. 0A0E 1F 00             DB    CTRLUN,0    ;^_
  1625. 0A10 20 00             DB    ' ',0        ;blank
  1626. 0A12 21 00             DB    '!',0        ;!
  1627. 0A14 22 00             DB    '"',0        ;"
  1628. 0A16 23 00             DB    '#',0        ;#
  1629. 0A18 24 00             DB    '$',0        ;$
  1630. 0A1A 25 00             DB    '%',0        ;%
  1631. 0A1C 26 00             DB    '&',0        ;&
  1632. 0A1E 27 00             DB    "'",0        ;'
  1633. 0A20 28 00             DB    '(',0        ;(
  1634. 0A22 29 00             DB    ')',0        ;)
  1635. 0A24 2A 00             DB    '*',0        ;*
  1636. 0A26 2B 00             DB    '+',0        ;+
  1637. 0A28 2C 00             DB    ',',0        ;,
  1638. 0A2A 2D 00             DB    '-',0        ;-
  1639. 0A2C 2E 00             DB    '.',0        ;.
  1640. 0A2E 2F 00             DB    '/',0        ;/
  1641. 0A30 30 00             DB    '0',0        ;0
  1642. 0A32 31 00             DB    '1',0        ;1
  1643. 0A34 32 00             DB    '2',0        ;2
  1644. 0A36 33 00             DB    '3',0        ;3
  1645. 0A38 34 00             DB    '4',0        ;4
  1646. 0A3A 35 00             DB    '5',0        ;5
  1647. 0A3C 36 00             DB    '6',0        ;6
  1648. 0A3E 37 00             DB    '7',0        ;7
  1649. 0A40 38 00             DB    '8',0        ;8
  1650. 0A42 39 00             DB    '9',0        ;9
  1651. 0A44 3A 00             DB    ':',0        ;:
  1652. 0A46 3B 00             DB    ';',0        ;;
  1653. 0A48 3C 00             DB    '<',0        ;<è0A4A 3D 00             DB    '=',0        ;=
  1654. 0A4C 3E 00             DB    '>',0        ;>
  1655. 0A4E 3F 00             DB    '?',0        ;?
  1656. 0A50 40 00             DB    '@',0        ;@
  1657. 0A52 41 00             DB    'A',0        ;A
  1658. 0A54 42 00             DB    'B',0        ;B
  1659. 0A56 43 00             DB    'C',0        ;C
  1660. 0A58 44 00             DB    'D',0        ;D
  1661. 0A5A 45 00             DB    'E',0        ;E
  1662. 0A5C 46 00             DB    'F',0        ;F
  1663. 0A5E 47 00             DB    'G',0        ;G
  1664. 0A60 48 00             DB    'H',0        ;H
  1665. 0A62 49 00             DB    'I',0        ;I
  1666. 0A64 4A 00             DB    'J',0        ;J
  1667. 0A66 4B 00             DB    'K',0        ;K
  1668. 0A68 4C 00             DB    'L',0        ;L
  1669. 0A6A 4D 00             DB    'M',0        ;M
  1670. 0A6C 4E 00             DB    'N',0        ;N
  1671. 0A6E 4F 00             DB    'O',0        ;O
  1672. 0A70 50 00             DB    'P',0        ;P
  1673. 0A72 51 00             DB    'Q',0        ;Q
  1674. 0A74 52 00             DB    'R',0        ;R
  1675. 0A76 53 00             DB    'S',0        ;S
  1676. 0A78 54 00             DB    'T',0        ;T
  1677. 0A7A 55 00             DB    'U',0        ;U
  1678. 0A7C 56 00             DB    'V',0        ;V
  1679. 0A7E 57 00             DB    'W',0        ;W
  1680. 0A80 58 00             DB    'X',0        ;X
  1681. 0A82 59 00             DB    'Y',0        ;Y
  1682. 0A84 5A 00             DB    'Z',0        ;Z
  1683. 0A86 5B 00             DB    '[',0        ;[
  1684. 0A88 5C 00             DB    '\',0        ;\
  1685. 0A8A 5D 00             DB    ']',0        ;]
  1686. 0A8C 5E 00             DB    '^',0        ;^
  1687. 0A8E 5F 00             DB    '_',0        ;_
  1688. 0A90 60 00             DB    '`',0        ;`
  1689. 0A92 61 00             DB    'a',0        ;a
  1690. 0A94 62 00             DB    'b',0        ;b
  1691. 0A96 63 00             DB    'c',0        ;c
  1692. 0A98 64 00             DB    'd',0        ;d
  1693. 0A9A 65 00             DB    'e',0        ;e
  1694. 0A9C 66 00             DB    'f',0        ;f
  1695. 0A9E 67 00             DB    'g',0        ;g
  1696. 0AA0 68 00             DB    'h',0        ;h
  1697. 0AA2 69 00             DB    'i',0        ;i
  1698. 0AA4 6A 00             DB    'j',0        ;j
  1699. 0AA6 6B 00             DB    'k',0        ;k
  1700. 0AA8 6C 00             DB    'l',0        ;l
  1701. 0AAA 6D 00             DB    'm',0        ;m
  1702. 0AAC 6E 00             DB    'n',0        ;n
  1703. 0AAE 6F 00             DB    'o',0        ;o
  1704. 0AB0 70 00             DB    'p',0        ;p
  1705. 0AB2 71 00             DB    'q',0        ;q
  1706. 0AB4 72 00             DB    'r',0        ;r
  1707. 0AB6 73 00             DB    's',0        ;s
  1708. 0AB8 74 00             DB    't',0        ;t
  1709. 0ABA 75 00             DB    'u',0        ;u
  1710. 0ABC 76 00             DB    'v',0        ;v
  1711. 0ABE 77 00             DB    'w',0        ;w
  1712. 0AC0 78 00             DB    'x',0        ;xè0AC2 79 00             DB    'y',0        ;y
  1713. 0AC4 7A 00             DB    'z',0        ;z
  1714. 0AC6 7B 00             DB    '{',0        ;{
  1715. 0AC8 7C 00             DB    '|',0        ;|
  1716. 0ACA 7D 00             DB    '}',0        ;}
  1717. 0ACC 7E 00             DB    '~',0        ;~
  1718. 0ACE 7F 00             DB    DEL,0        ;DEL
  1719.  
  1720. 0AD0 80 00         COMEXT    DB    080H,0        ;Extended characters
  1721. 0AD2 81 00             DB    081H,0
  1722. 0AD4 82 00             DB    082H,0
  1723. 0AD6 83 00             DB    083H,0
  1724. 0AD8 84 00             DB    084H,0
  1725. 0ADA 85 00             DB    085H,0
  1726. 0ADC 86 00             DB    086H,0
  1727. 0ADE 87 00             DB    087H,0
  1728. 0AE0 88 00             DB    088H,0
  1729. 0AE2 89 00             DB    089H,0
  1730. 0AE4 8A 00             DB    08AH,0
  1731. 0AE6 8B 00             DB    08BH,0
  1732. 0AE8 8C 00             DB    08CH,0
  1733. 0AEA 8D 00             DB    08DH,0
  1734. 0AEC 8E 00             DB    08EH,0
  1735. 0AEE 8F 00             DB    08FH,0
  1736. 0AF0 90 00             DB    090H,0
  1737. 0AF2 91 00             DB    091H,0
  1738. 0AF4 92 00             DB    092H,0
  1739. 0AF6 93 00             DB    093H,0
  1740. 0AF8 94 00             DB    094H,0
  1741. 0AFA 95 00             DB    095H,0
  1742. 0AFC 96 00             DB    096H,0
  1743. 0AFE 97 00             DB    097H,0
  1744. 0B00 98 00             DB    098H,0
  1745. 0B02 99 00             DB    099H,0
  1746. 0B04 9A 00             DB    09AH,0
  1747. 0B06 9B 00             DB    09BH,0
  1748. 0B08 9C 00             DB    09CH,0
  1749. 0B0A 9D 00             DB    09DH,0
  1750. 0B0C 9E 00             DB    09EH,0
  1751. 0B0E 9F 00             DB    09FH,0
  1752. 0B10 A0 00             DB    0A0H,0
  1753. 0B12 A1 00             DB    0A1H,0
  1754. 0B14 A2 00             DB    0A2H,0
  1755. 0B16 A3 00             DB    0A3H,0
  1756. 0B18 A4 00             DB    0A4H,0
  1757. 0B1A A5 00             DB    0A5H,0
  1758. 0B1C A6 00             DB    0A6H,0
  1759. 0B1E A7 00             DB    0A7H,0
  1760. 0B20 A8 00             DB    0A8H,0
  1761. 0B22 A9 00             DB    0A9H,0
  1762. 0B24 AA 00             DB    0AAH,0
  1763. 0B26 AB 00             DB    0ABH,0
  1764. 0B28 AC 00             DB    0ACH,0
  1765. 0B2A AD 00             DB    0ADH,0
  1766. 0B2C AE 00             DB    0AEH,0
  1767. 0B2E AF 00             DB    0AFH,0
  1768. 0B30 B0 00             DB    0B0H,0
  1769. 0B32 B1 00             DB    0B1H,0
  1770. 0B34 B2 00             DB    0B2H,0
  1771. 0B36 B3 00             DB    0B3H,0è0B38 B4 00             DB    0B4H,0
  1772. 0B3A B5 00             DB    0B5H,0
  1773. 0B3C B6 00             DB    0B6H,0
  1774. 0B3E B7 00             DB    0B7H,0
  1775. 0B40 B8 00             DB    0B8H,0
  1776. 0B42 B9 00             DB    0B9H,0
  1777. 0B44 BA 00             DB    0BAH,0
  1778. 0B46 BB 00             DB    0BBH,0
  1779. 0B48 BC 00             DB    0BCH,0
  1780. 0B4A BD 00             DB    0BDH,0
  1781. 0B4C BE 00             DB    0BEH,0
  1782. 0B4E BF 00             DB    0BFH,0
  1783. 0B50 C0 00             DB    0C0H,0
  1784. 0B52 C1 00             DB    0C1H,0
  1785. 0B54 C2 00             DB    0C2H,0
  1786. 0B56 C3 00             DB    0C3H,0
  1787. 0B58 C4 00             DB    0C4H,0
  1788. 0B5A C5 00             DB    0C5H,0
  1789. 0B5C C6 00             DB    0C6H,0
  1790. 0B5E C7 00             DB    0C7H,0
  1791. 0B60 C8 00             DB    0C8H,0
  1792. 0B62 C9 00             DB    0C9H,0
  1793. 0B64 CA 00             DB    0CAH,0
  1794. 0B66 CB 00             DB    0CBH,0
  1795. 0B68 CC 00             DB    0CCH,0
  1796. 0B6A CD 00             DB    0CDH,0
  1797. 0B6C CE 00             DB    0CEH,0
  1798. 0B6E CF 00             DB    0CFH,0
  1799. 0B70 D0 00             DB    0D0H,0
  1800. 0B72 D1 00             DB    0D1H,0
  1801. 0B74 D2 00             DB    0D2H,0
  1802. 0B76 D3 00             DB    0D3H,0
  1803. 0B78 D4 00             DB    0D4H,0
  1804. 0B7A D5 00             DB    0D5H,0
  1805. 0B7C D6 00             DB    0D6H,0
  1806. 0B7E D7 00             DB    0D7H,0
  1807. 0B80 D8 00             DB    0D8H,0
  1808. 0B82 D9 00             DB    0D9H,0
  1809. 0B84 DA 00             DB    0DAH,0
  1810. 0B86 DB 00             DB    0DBH,0
  1811. 0B88 DC 00             DB    0DCH,0
  1812. 0B8A DD 00             DB    0DDH,0
  1813. 0B8C DE 00             DB    0DEH,0
  1814. 0B8E DF 00             DB    0DFH,0
  1815. 0B90 E0 00             DB    0E0H,0
  1816. 0B92 E1 00             DB    0E1H,0
  1817. 0B94 E2 00             DB    0E2H,0
  1818. 0B96 E3 00             DB    0E3H,0
  1819. 0B98 E4 00             DB    0E4H,0
  1820. 0B9A E5 00             DB    0E5H,0
  1821. 0B9C E6 00             DB    0E6H,0
  1822. 0B9E E7 00             DB    0E7H,0
  1823. 0BA0 E8 00             DB    0E8H,0
  1824. 0BA2 E9 00             DB    0E9H,0
  1825. 0BA4 EA 00             DB    0EAH,0
  1826. 0BA6 EB 00             DB    0EBH,0
  1827. 0BA8 EC 00             DB    0ECH,0
  1828. 0BAA ED 00             DB    0EDH,0
  1829. 0BAC EE 00             DB    0EEH,0
  1830. 0BAE EF 00             DB    0EFH,0è0BB0 F0 00             DB    0F0H,0
  1831. 0BB2 F1 00             DB    0F1H,0
  1832. 0BB4 F2 00             DB    0F2H,0
  1833. 0BB6 F3 00             DB    0F3H,0
  1834. 0BB8 F4 00             DB    0F4H,0
  1835. 0BBA F5 00             DB    0F5H,0
  1836. 0BBC F6 00             DB    0F6H,0
  1837. 0BBE F7 00             DB    0F7H,0
  1838. 0BC0 F8 00             DB    0F8H,0
  1839. 0BC2 F9 00             DB    0F9H,0
  1840. 0BC4 FA 00             DB    0FAH,0
  1841. 0BC6 FB 00             DB    0FBH,0
  1842. 0BC8 FC 00             DB    0FCH,0
  1843. 0BCA FD 00             DB    0FDH,0
  1844. 0BCC FE 00             DB    0FEH,0
  1845. 0BCE FF 00             DB    0FFH,0
  1846.  
  1847. The following string is used to describe the name of a sheet feeder.
  1848.  
  1849. 0BD0 00            SHTID    DB    0        ;No sheet feeder
  1850. 0BD1 20 20 20 20 20 20 20    DB    '        '
  1851.     20 20 20 20 20 20 20
  1852.     20 20 20 20 20 20
  1853. 0BE5 20 20 20 20 20 20 20    DB    '        '
  1854.     20 20 20 20 20 20 20
  1855.     20 20 20 20 20
  1856.  
  1857. Sheet Feeders
  1858.  
  1859. The sheet feeder strings are only used for the primary printer driver.
  1860.  
  1861. 0BF8 00            SHEET    DB    0        ;Select and load bin 1
  1862. 0BF9 00 00 00 00        DB    0,0,0,0
  1863. 0BFD 00 00 00 00        DB    0,0,0,0
  1864. 0C01 00 00 00 00        DB    0,0,0,0
  1865.  
  1866. 0C05 00                DB    0        ;Select and load bin 2
  1867. 0C06 00 00 00 00        DB    0,0,0,0
  1868. 0C0A 00 00 00 00        DB    0,0,0,0
  1869. 0C0E 00 00 00 00        DB    0,0,0,0
  1870.  
  1871. 0C12 00                DB    0        ;Select and load bin 3
  1872. 0C13 00 00 00 00        DB    0,0,0,0
  1873. 0C17 00 00 00 00        DB    0,0,0,0
  1874. 0C1B 00 00 00 00        DB    0,0,0,0
  1875.  
  1876. 0C1F 00                DB    0        ;Select and load bin 4
  1877. 0C20 00 00 00 00        DB    0,0,0,0
  1878. 0C24 00 00 00 00        DB    0,0,0,0
  1879. 0C28 00 00 00 00        DB    0,0,0,0
  1880.  
  1881. 0C2C 00                DB    0        ;Eject final page
  1882. 0C2D 00 00 00 00        DB    0,0,0,0
  1883. 0C31 00 00 00 00        DB    0,0,0,0
  1884. 0C35 00 00 00 00        DB    0,0,0,0
  1885.  
  1886. This is 128 bytes set aside for printer subroutines & strings.
  1887.  
  1888. 0C39 0000 0000 0000 0000 PRNPAT DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1889.     0000 0000 0000 0000è    0000 0000 0000 0000
  1890.     0000 0000 0000 0000
  1891. 0C59 0000 0000 0000 0000    DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1892.     0000 0000 0000 0000
  1893.     0000 0000 0000 0000
  1894.     0000 0000 0000 0000
  1895. 0C79 0000 0000 0000 0000    DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1896.     0000 0000 0000 0000
  1897.     0000 0000 0000 0000
  1898.     0000 0000 0000 0000
  1899. 0C99 0000 0000 0000 0000    DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1900.     0000 0000 0000 0000
  1901.     0000 0000 0000 0000
  1902.     0000 0000 0000 0000
  1903.  
  1904. Iµ noε-standarΣ initializatioε parameter≤ arσ used¼ thσ followinτ identificatioε strinτ caε ì
  1905. bσ ádisplayeΣ a⌠ sigε-on« U≡ t∩ 4░ byte≤ arσ availablσ fo≥ thσ string¼ includinτ áthσ ánul∞ ì
  1906. terminator.
  1907.  
  1908. 0CB9 00            INITID    DB    0        ;No ID if standard
  1909. 0CBA 20 20 20 20 20 20 20    DB    '        '
  1910.     20 20 20 20 20 20 20
  1911.     20 20 20 20 20
  1912. 0CCD 20 20 20 20 20 20 20    DB    '        '
  1913.     20 20 20 20 20 20 20
  1914.     20 20 20 20 20 20
  1915.  
  1916. Legal Drives
  1917.  
  1918. Notσ átha⌠ thσ firs⌠ drivσ i≤ assumeΣ t∩ bσ thσ defaul⌠ drivσ wherσ an∙ specia∞ áfile≤ áarσ ì
  1919. locateΣ ásucΦ a≤ thσ WSMSGS.OV╥ file« Thσ drive≤ listeΣ shoulΣ bσ reduceΣ t∩ thσ one≤ átha⌠ ì
  1920. arσ actuall∙ iε usσ oε thσ systeφ upoε whicΦ WordSta≥ i≤ running.
  1921.  
  1922. Iµ thσ mos⌠ significan⌠ bi⌠ oµ thσ drivσ lette≥ i≤ se⌠ t∩ 1¼ WordSta≥ wil∞ assumσ tha⌠ áthσ ì
  1923. drivσ i≤ noε-removable« ┴ disδ rese⌠ wil∞ no⌠ bσ donσ wheε noε-removablσ drive≤ arσ logged.
  1924.  
  1925. 0CE1 41 42 43 44 45 46 47 LGLDRV DB    'ABCDEFGHIJKLMNOP'
  1926.     48 49 4A 4B 4C 4D 4E
  1927.     4F 50
  1928. 0CF1 51 52 53 54 55 56 57    DB    'QRSTUVWXYZ',0
  1929.     58 59 5A 00
  1930.  
  1931. WordSta≥ áuse≤ severa∞ files« Thei≥ name≤ arσ specifieΣ here« Thσ firs⌠ bytσ oµ eacΦ áfileì
  1932. namσ indicate≤ whicΦ drivσ thσ filσ shoulΣ bσ on« Iµ i⌠ i≤ zero¼ WordSta≥ use≤ thσ áfollowì
  1933. inτ searcΦ patterε t∩ tr∙ t∩ finΣ thσ file:
  1934.  
  1935.     For MS-DOS:
  1936.  
  1937.         1. Look on the current drive and path.
  1938.         2. Default path (DEFUSR) on the current drive.
  1939.         3. Current path on the default drive (the first
  1940.         drive listed in LGLDRV)
  1941.         4. Default path on the default drive.
  1942.  
  1943.     For CP/M:
  1944.  
  1945.         1. Look on the current drive and user.
  1946.         2. Default user (DEFUSR) on the current drive.
  1947.         3. Current user on the default drive.
  1948.         4. Default user on the default drive.è
  1949. Iµ áthσ drivσ bytσ oµ thσ filenamσ i≤ noε-zero¼ i⌠ shoulΣ bσ se⌠ t∩ ß numbe≥ ▒ áthrougΦ á1╢ ì
  1950. representinτ drive≤ ┴ througΦ ╨ respectively« Iε thi≤ case¼ WordSta≥ wil∞ looδ onl∙ oε áthσ ì
  1951. specifieΣ drivσ fo≥ thσ file.
  1952.  
  1953. 0CFC 00 57 53 4D 53 47 53 MSFILE DB    0,'WSMSGS OVR'    ;Menus and messages
  1954.     20 20 4F 56 52
  1955.  
  1956. 0D08 00 57 53 49 4E 44 45 IXFILE DB    0,'WSINDEX XCL'    ;Indexer exclusion list
  1957.     58 20 58 43 4C
  1958.  
  1959. 0D14 00 57 53 50 52 49 4E OVFILE DB    0,'WSPRINT OVR'    ;Print driver overlays
  1960.     54 20 4F 56 52
  1961.  
  1962. 0D20 00 57 53 53 48 4F 52 SVFILE DB    0,'WSSHORT OVR'    ;Shorthand definitions
  1963.     54 20 4F 56 52
  1964.  
  1965. 0D2C 00 57 53 53 50 45 4C SPFILE DB    0,'WSSPELL OVR'    ;CorrectStar overlay
  1966.     4C 20 4F 56 52
  1967.  
  1968. 0D38 00 4D 41 49 4E 20 20 MDFILE DB    0,'MAINDCT'    ;Main dictionary
  1969.     20 20 44 43 54
  1970.  
  1971. 0D44 00 49 4E 54 45 52 4E QDFILE DB    0,'INTERNALDCT'    ;Internal dictionary
  1972.     41 4C 44 43 54
  1973.  
  1974. 0D50 00 50 45 52 53 4F 4E UDFILE DB    0,'PERSONALDCT'    ;Personal dictionary
  1975.     41 4C 44 43 54
  1976.  
  1977. 0D5C 0054[             DB    7*12 DUP(0)    ;Reserved
  1978.     00
  1979.         ]
  1980.  
  1981. Fo≥ M╙-DOS¼ DEFUS╥ i≤ thσ defaul⌠ patΦ tha⌠ WordSta≥ use≤ iε it≤ searcΦ pattern« Thσ áfirs⌠ ì
  1982. bytσ i≤ thσ lengtΦ oµ thσ patΦ namσ strinτ tha⌠ immediatel∙ follows« Iµ thσ strinτ i≤ longì
  1983. e≥ áthaε 2┤ characters¼ se⌠ thσ lengtΦ bytσ t∩ -▒ anΣ follo≈ i⌠ witΦ thσ addres≤ áoµ áwherσ ì
  1984. thσ longe≥ strinτ is« Se⌠ thσ lengtΦ bytσ t∩ zer∩ t∩ disablσ thσ DEFUS╥ path.
  1985.  
  1986. Fo≥ CP/M¼ DEFUS╥ i≤ thσ defaul⌠ use≥ numbe≥ tha⌠ WordSta≥ use≤ iε it≤ searcΦ pattern« áUse≥ ì
  1987. number≤ caε bσ froφ ░ througΦ 31« Se⌠ t∩ -▒ t∩ disablσ thσ DEFUS╥ user.
  1988.  
  1989. 0DB0            DEFUSR    LABEL    BYTE
  1990. 0DB0 04 5C 57 53 34        DB    4,'\WS4'    ;WordStar path
  1991. 0DB5 0014[             DB    20 DUP(0)    ;Room for 20 more characters
  1992.     00
  1993.         ]
  1994.  
  1995. INILO╟ áallow≤ thσ use≥ t∩ specif∙ ß drivσ anΣ use≥ numbe≥ o≥ pathnamσ fo≥ WordSta≥ t∩ áloτ ì
  1996. ont∩ áwheε firs⌠ started« Thσ firs⌠ bytσ i≤ ß coun⌠ oµ followinτ characters;thσ nex⌠ ábyte≤ ì
  1997. (u≡ t∩ three⌐ caε contaiε ß drivσ namσ (┴-P⌐ anΣ eithe≥ ß use≥ numbe≥ fo≥ CP/═ (░-31)¼ o≥ ß ì
  1998. patΦ ánamσ fo≥ M╙-DOS« (Caε bσ redirecteΣ witΦ ß coun⌠ oµ -▒ followeΣ b∙ aε áaddres≤ áwherσ ì
  1999. thσ strinτ actuall∙ is.)
  2000.  
  2001. 0DC9 00            INILOG    DB    0        ;Don't change directories
  2002. 0DCA 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0    ;Room for 24 chars
  2003.     00
  2004. 0DD2 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0
  2005.     00
  2006. 0DDA 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0
  2007.     00è
  2008. WordSta≥ ácreate≤ backu≡ anΣ temporar∙ files« Thσ followinτ arσ thσ filσ type≤ t∩ ábσ áuseΣ ì
  2009. fo≥ them.
  2010.  
  2011. 0DE2 42 41 4B        BAKTYP    DB    'BAK'        ;Type for backup files
  2012.  
  2013. 0DE5 24 42 24        BFTYPE    DB    '$B$'        ;Typσ oµ spillove≥ filσ beforσ meφì
  2014. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ory
  2015.  
  2016. 0DE8 24 41 24        AFTYPE    DB    '$A$'        ;Typσ oµ spillove≥ filσ afte≥ mem∩ì
  2017. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ry
  2018.  
  2019. 0DEB 24 43 24        BLKTYP    DB    '$C$'        ;Typσ oµ filσ useΣ t∩ buffe≥ áblocδ ì
  2020. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;move/copy
  2021.  
  2022. 0DEE 000C[             DB    3*4 DUP(0)    ;Reserved
  2023.     00
  2024.         ]
  2025.  
  2026. Wheε thσ director∙ i≤ displayed¼ filσ type≤ froφ thi≤ tablσ arσ suppressed« ┴ questioε marδ ì
  2027. iε ß filσ typσ matche≤ an∙ character.
  2028.  
  2029. 0DFA 43 4F 4D        NOTYPE    DB    'COM'        ;Command files
  2030. 0DFD 45 58 45            DB    'EXE'        ;Execution files
  2031. 0E00 4F 56 52            DB    'OVR'        ;Overlays
  2032. 0E03 24 3F 24            DB    '$?$'        ;Temporar∙ ábeforσ anΣ afte≥ áfile≤ ì
  2033. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;($A$¼ $B$)
  2034. 0E06 43 4D 44            DB    'CMD'        ;CP/M-86 command files
  2035. 0E09 44 43 54            DB    'DCT'
  2036. 0E0C 00 00 00            DB    0,0,0        ;Room for 6 more
  2037. 0E0F 00 00 00            DB    0,0,0
  2038. 0E12 00 00 00            DB    0,0,0
  2039. 0E15 00 00 00            DB    0,0,0
  2040. 0E18 00 00 00            DB    0,0,0
  2041. 0E1B 00 00 00            DB    0,0,0
  2042. 0E1E 00                DB    0        ;End of table
  2043.  
  2044. DIRFI╠ i≤ ß filσ namσ "imageó tha⌠ i≤ useΣ iε conjunctioε witΦ NOTYP┼ (above⌐ t∩ ádeterminσ ì
  2045. whicΦ áfile≤ arσ t∩ bσ displayeΣ iε WordStar'≤ directories«  DIRFI╠ determine≤ whicΦ áfile≤ ì
  2046. caε possibl∙ bσ included¼ anΣ NOTYP┼ theε eliminate≤ certaiε type≤ oµ files« Usσ ß questioε ì
  2047. marδ iε DIRFI╠ a⌠ eacΦ spo⌠ wherσ an∙ filσ namσ characte≥ caε match.
  2048.  
  2049. 0E1F 3F 3F 3F 3F 3F 3F 3F DIRFIL DB    "???????????"    ;All files match
  2050.     3F 3F 3F 3F
  2051.  
  2052. Thσ ánamσ oµ thσ filσ t∩ bσ editeΣ caε bσ specifieΣ a⌠ thσ operatinτ systeφ prompt« áININO╬ ì
  2053. indicate≤ whethe≥ thσ filσ shoulΣ bσ editeΣ a≤ ß documen⌠ o≥ nondocument.
  2054.  
  2055. 0E2A 00            ININON    DB    FALSE        ;Document (not a nondocument)
  2056.  
  2057. WordSta≥ ánormall∙ ámake≤ BA╦ backu≡ file≤ ever∙ timσ yo⌡ savσ you≥ work«  INITBA╦ ácaε ábσ ì
  2058. useΣ t∩ disablσ backup≤ b∙ settinτ i⌠ FALSE.
  2059.  
  2060. 0E2B FF            INIBAK    DB    TRUE        ;Make backups
  2061.  
  2062. 0E2C 00 00 00            DB    0,0,0        ;Reserved
  2063.  
  2064. Wheε áß ánondocumen⌠ i≤ edited¼ WordSta≥ wil∞ decidσ ho≈ t∩ expanΣ tab≤ á(ASCI╔ á09H)¼ áanΣ ì
  2065. whethe≥ o≥ no⌠ t∩ usσ aut∩-indentinτ b∙ lookinτ iε thi≤ table.
  2066. èTherσ i≤ ß specia∞ casσ oµ thσ taΓ mask≤ showε below« Wheε thσ mos⌠ significan⌠ bi⌠ oµ áthσ ì
  2067. taΓ masδ i≤ se⌠ t∩ 1¼ WordSta≥ wil∞ assumσ tha⌠ yo⌡ wan⌠ t∩ usσ variablσ tabbing« Wheε áthσ ì
  2068. taΓ áke∙ i≤ typed¼ insteaΣ oµ insertinτ aε ASCI╔ 09╚ int∩ thσ file¼ space≤ wil∞ bσ áentereΣ ì
  2069. u≡ t∩ thσ nex⌠ taΓ stop« Thσ taΓ stop≤ useΣ arσ iε thσ INIRL╥ table« Aε ASCI╔ 09╚ caε stil∞ ì
  2070. bσ entereΣ iε thi≤ mode¼ however¼ b∙ typinτ ^PI.
  2071.  
  2072. 0E2F 50 41 53 01 FF    EDCOND    DB    'PAS',00000001B,TRUE    ;File extension¼  followed
  2073. 0E34 50 4C 49 03 FF        DB    'PLI',00000011B,TRUE    ;b∙ ß binary tab mask (e.g.
  2074. 0E39 43 20 20 03 FF        DB    'C ',00000011B,TRUE    ;ß masδ oµ 00000111B expands
  2075. 0E3E á48 20 20 03 FF        DB    'H ',00000011B,TRUE    ;taΓ ácharacter≤ át∩ áever∙ ì
  2076. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;8tΦ ácolumn)¼ followeΣ áb∙ ì
  2077. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;TRU┼ áiµ áaut∩-inden⌠ áái≤ ì
  2078. áááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá;turneΣ on.
  2079.  
  2080. 0E43 00 00 00 07 00        DB    0,0,0,00000111B,FALSE    ;EnΣ oµ tablσ witΦ default≤ ì
  2081. ááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááiµ filσ typσ doesn'⌠ ámatcΦ ì
  2082. ááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááabove
  2083.  
  2084. 0E48 00 00 00 00 00        DB    0,0,0,0,0        ;Room for four more
  2085. 0E4D 00 00 00 00 00        DB    0,0,0,0,0
  2086. 0E52 00 00 00 00 00        DB    0,0,0,0,0
  2087. 0E57 00 00 00 00 00        DB    0,0,0,0,0
  2088.  
  2089. WordSta≥ normall∙ onl∙ consider≤ alphabetiπ o≥ numeriπ character≤ a≤ beinτ withiε ß "word"« ì
  2090. Iµ áothe≥ ácharacter≤ arσ legall∙ par⌠ oµ ß worΣ too¼ theε thσ bi⌠ áfo≥ áthσ ácorrespondinτ ì
  2091. characte≥ codσ iε thσ followinτ tablσ mus⌠ bσ se⌠ t∩ ß 1.
  2092.  
  2093. Therσ áarσ 25╢ bit≤ iε thσ tablσ t∩ allo≈ fo≥ ╕-bi⌠ characte≥ sets«  Thσ defaul⌠ tablσ áha≤ ì
  2094. thσ ábit≤ áse⌠ fo≥ thσ number≤ "0ó througΦ "9ó (ASCI╔ code≤ oµ 30╚ througΦ á39H)¼ áfo≥ áthσ ì
  2095. uppe≥ ácasσ letter≤ "Aó througΦ "Zó (41╚ througΦ 5AH)¼ anΣ thσ lowe≥ casσ letter≤ "aó áthr⌡ ì
  2096. "zó (61╚ througΦ 7AH)« Bit≤ froφ 80╚ througΦ FF╚ arσ se⌠ accordinτ t∩ thσ IB═ P├ ácharacte≥ ì
  2097. set.
  2098.  
  2099.                 ;    01234567  89ABCDEF
  2100. 0E5C 00 00         LGLCHR    DB    00000000B,00000000B    ;Codes 00H to 0FH
  2101. 0E5E 00 00             DB    00000000B,00000000B    ;Codes 10H to 1FH
  2102. 0E60 00 00             DB    00000000B,00000000B    ;Codes 20H to 2FH
  2103. 0E62 00 00             DB    00000000B,00000000B    ;Codes 30H to 3FH
  2104. 0E64 7F FF             DB    01111111B,11111111B    ;Codes 40H to 4FH
  2105. 0E66 FF E0             DB    11111111B,11100000B    ;Codes 50H to 5FH
  2106. 0E68 7F FF             DB    01111111B,11111111B    ;Codes 60H to 6FH
  2107. 0E6A FF E0             DB    11111111B,11100000B    ;Codes 70H to 7FH
  2108. 0E6C FF FF             DB    11111111B,11111111B    ;Codes 80H to 8FH
  2109. 0E6E FF E0             DB    11111111B,11100000B    ;Codes 90H to 9FH
  2110. 0E70 FF 00             DB    11111111B,00000000B    ;Codes A0H to AFH
  2111. 0E72 00 00             DB    00000000B,00000000B    ;Codes B0H to BFH
  2112. 0E74 00 00             DB    00000000B,00000000B    ;Codes C0H to CFH
  2113. 0E76 00 00             DB    00000000B,00000000B    ;Codes D0H to DFH
  2114. 0E78 FF F0             DB    11111111B,11110000B    ;Codes E0H to EFH
  2115. 0E7A 00 0C             DB    00000000B,00001100B    ;Codes F0H to FFH
  2116.  
  2117. Wheε yo⌡ usσ ^┴ o≥ ^╞ t∩ movσ ß worΣ a⌠ ß time¼ WordSta≥ use≤ thσ followinτ tablσ t∩ deterì
  2118. minσ whicΦ character≤ t∩ skip« I⌠ i≤ organizeΣ iε thσ samσ manne≥ a≤ LGLCH╥ above.
  2119.  
  2120.                 ;    01234567  89ABCDEF
  2121. 0E7C FF 92         MOVCHR    DB    11111111B,10010010B    ;Codes 00H to 0FH
  2122. 0E7E FB C3             DB    11111011B,11000011B    ;Codes 10H to 1FH
  2123. 0E80 3F F5             DB    00111111B,11110101B    ;Codes 20H to 2FH
  2124. 0E82 FF CE             DB    11111111B,11001110B    ;Codes 30H to 3FH
  2125. 0E84 FF FF             DB    11111111B,11111111B    ;Codes 40H to 4FHè0E86 FF FF             DB    11111111B,11111111B    ;Codes 50H to 5FH
  2126. 0E88 FF FF             DB    11111111B,11111111B    ;Codes 60H to 6FH
  2127. 0E8A FF FE             DB    11111111B,11111110B    ;Codes 70H to 7FH
  2128. 0E8C FF FF             DB    11111111B,11111111B    ;Codes 80H to 8FH
  2129. 0E8E FF FF             DB    11111111B,11111111B    ;Codes 90H to 9FH
  2130. 0E90 FF 7B             DB    11111111B,01111011B    ;Codes A0H to AFH
  2131. 0E92 FF FF             DB    11111111B,11111111B    ;Codes B0H to BFH
  2132. 0E94 FF FF             DB    11111111B,11111111B    ;Codes C0H to CFH
  2133. 0E96 FF FF             DB    11111111B,11111111B    ;Codes D0H to DFH
  2134. 0E98 FF FF             DB    11111111B,11111111B    ;Codes E0H to EFH
  2135. 0E9A FF FE             DB    11111111B,11111110B    ;Codes F0H to FFH
  2136.  
  2137. Certaiε specia∞ character≤ caε bσ inserteΣ int∩ thi≤ tablσ t∩ causσ WordSta≥ t∩ áautomaticì
  2138. all∙ ágeneratσ ß backspacσ characte≥ (^H⌐ precedinτ thσ characte≥ a≤ yo⌡ type« Thi≤ caε ábσ ì
  2139. especiall∙ usefu∞ fo≥ accen⌠ character≤ iε somσ foreigε languages.
  2140.  
  2141. 0E9C 00            AUTOBS    DB    0        ;Number of characters in table
  2142. 0E9D 00 00 00 00        DB    0,0,0,0        ;Up to 8 character codes
  2143. 0EA1 00 00 00 00        DB    0,0,0,0
  2144.  
  2145. CASTB╠ i≤ ß upper/lowe≥ casσ conversioε table« I⌠ i≤ primaril∙ useΣ fo≥ foreigε álanguages« ì
  2146. Iµ áthσ tablσ i≤ no⌠ biτ enough¼ redirec⌠ t∩ ß large≥ patcΦ areß b∙ settinτ thσ ánumbe≥ áoµ ì
  2147. pair≤ t∩ -▒ (FF⌐ followeΣ b∙ thσ addres≤ oµ thσ large≥ table« Default≤ arσ baseΣ oε thσ IB═ ì
  2148. P├ extendeΣ characte≥ set.
  2149.  
  2150. 0EA5 08            CASTBL    DB    8        ;Number of upper/lower pairs
  2151. 0EA6 80 87             DB    080H,087H
  2152. 0EA8 8E 84             DB    08EH,084H
  2153. 0EAA 8F 86             DB    08FH,086H
  2154. 0EAC 90 82             DB    090H,082H
  2155. 0EAE 92 91             DB    092H,091H
  2156. 0EB0 99 94             DB    099H,094H
  2157. 0EB2 9A 81             DB    09AH,081H
  2158. 0EB4 A5 A4             DB    0A5H,0A4H
  2159. 0EB6 00 00             DB    0,0        ;Room for 8 more upper/lower pairs
  2160. 0EB8 00 00             DB    0,0
  2161. 0EBA 00 00             DB    0,0
  2162. 0EBC 00 00             DB    0,0
  2163. 0EBE 00 00             DB    0,0
  2164. 0EC0 00 00             DB    0,0
  2165. 0EC2 00 00             DB    0,0
  2166. 0EC4 00 00             DB    0,0
  2167.  
  2168. 0EC6 00 00 00 00        DB    0,0,0,0        ;Reserved
  2169.  
  2170. Wheε WordSta≥ open≤ ß filσ fo≥ editing¼ i⌠ use≤ thσ followinτ initia∞ conditions.
  2171.  
  2172. 0ECA 03            INIDOC    DB    3        ;Top of page margin.
  2173.  
  2174. 0ECB 08                DB    8        ;Bottom of page margin.
  2175.  
  2176. 0ECC 42                DB    66        ;Total lines per page.
  2177.  
  2178. 0ECD 0001             DW    1        ;Initial page number (note 2 bytes).
  2179.  
  2180. 0ECF FF                DB    TRUE        ;Pagσ ánumbe≥ print≤ a⌠ ábottoφ áoµ ì
  2181. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pagσ áiµ TRUE« N∩ pagσ ánumbe≥ áiµ ì
  2182. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;FALSE.
  2183.  
  2184. 0ED0 1C                DB    28        ;Column where page number prints.è
  2185. 0ED1 02                DB    2        ;Headinτ margin« Thi≤ i≤ thσ numbe≥ ì
  2186. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oµ line≤ abovσ thσ tex⌠ wherσ áthσ ì
  2187. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;headinτ i≤ t∩ print.
  2188.  
  2189. 0ED2 02                DB    2        ;Footinτ margin« Thi≤ i≤ thσ numbe≥ ì
  2190. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;oµ line≤ belo≈ thσ tex⌠ wherσ áthσ ì
  2191. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;footinτ i≤ t∩ print.
  2192.  
  2193. 0ED3 07                DB    00000111B    ;Default document tab mask (must be
  2194.                             ;binary, 00000000B thru 01111111B).
  2195.  
  2196. 0ED4 08                DB    8        ;Left column where printing starts.
  2197.  
  2198. 0ED5 FF                DB    TRUE        ;Bidirectiona∞ áprintinτ áiµ áTRUE« ì
  2199. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Unidirectiona∞ o≥ printe≥ controlì
  2200. ááááááááááááááááááááááááááááááááááááááááááááááááááááááááleΣ iµ FALSE.
  2201.  
  2202. 0ED6 FF                DB    TRUE        ;Lette≥ áqualit∙ printinτ iµ áTRUE« ì
  2203. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Draf⌠ qualit∙ iµ FALSE« (Onl∙ su≡ì
  2204. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;porteΣ oε somσ printers.)
  2205.  
  2206. 0ED7 02                DB    2        ;MicrojustifieΣ áprinting« ░ áturn≤ ì
  2207. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;i⌠ off¼ ▒ turn≤ i⌠ on¼ anΣ ▓ make≤ ì
  2208. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;i⌠ discretionar∙ (dependinτ oε thσ ì
  2209. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;printe≥ drive≥ iε use).
  2210.  
  2211. 0ED8 00                DB    FALSE        ;Underlinσ blank≤ betweeε word≤ áiµ ì
  2212. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;TRUE.
  2213.  
  2214. 0ED9 0C                DB    12        ;StandarΣ ácharacte≥ widtΦ (iε áHM╔ ì
  2215. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;units)« áThσ printe≥ i≤ árese⌠ át∩ ì
  2216. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;thi≤ wheε donσ printing.
  2217.  
  2218. 0EDA 08                DB    8        ;StandarΣ álinσ heigh⌠ (iε VM╔ áuεì
  2219. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;its)« Thσ printe≥ i≤ rese⌠ t∩ thi≤ ì
  2220. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;afte≥ .L╚ do⌠ commands« I⌠ i≤ als∩ ì
  2221. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;useΣ t∩ determinσ thσ pagσ sizσ iε ì
  2222. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;VM╔ áunit≤ b∙ multiplyinτ áb∙ áthσ ì
  2223. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line≤ pe≥ pagσ above.
  2224.  
  2225. 0EDB 0C                DB    12        ;Characte≥ widtΦ (iε HM╔ units⌐ fo≥ ì
  2226. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;norma∞ ápitch« Iµ HM╔ i≤ 120¼ áteε ì
  2227. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pitcΦ ái≤ 12/120¼ twelvσ pitcΦ ái≤ ì
  2228. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;10/120.
  2229.  
  2230. 0EDC 0A                DB    10        ;Characte≥ ááwidtΦ áfo≥ ááalternatσ ì
  2231. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pitcΦ (usσ ^P┴ t∩ selec⌠ alternatσ ì
  2232. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;pitcΦ whilσ editing).
  2233.  
  2234. 0EDD 03                DB    3        ;Subscrip⌠ anΣ superscrip⌠ rol∞ (iε ì
  2235. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;VM╔ units)« Thi≤ valuσ ádetermine≤ ì
  2236. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ho≈ áfa≥ u≡ o≥ dowε áthσ ácarriagσ ì
  2237. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;move≤ wheε subscriptinτ o≥ ásupe≥ì
  2238. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;scripting.
  2239.  
  2240. 0EDE 08                DB    8        ;Linσ áheigh⌠ (iε VM╔ units)« áThi≤ ì
  2241. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;valuσ ádetermine≤ ho≈ fa≥ t∩ árol∞ ì
  2242. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;thσ ácarriagσ t∩ ge⌠ t∩ áthσ ánex⌠ ì
  2243. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line.è
  2244. Thσ ádefaul⌠ rule≥ linσ caε bσ describeΣ b∙ defininτ thσ followinτ values«  Notσ átha⌠ áthσ ì
  2245. taΓ sto≡ table≤ mus⌠ contaiε value≤ iε ascendinτ orde≥ only«  Thσ regula≥ taΓ stop≤ arσ pu⌠ ì
  2246. iε thσ tablσ first¼ immediatel∙ followeΣ b∙ thσ decima∞ tabs.
  2247.  
  2248. 0EDF 01            INIRLR    DB    1        ;Left ruler margin
  2249. 0EE0 41                DB    65        ;Right ruler margin
  2250. 0EE1 00                DB    0        ;Paragraph margin
  2251.  
  2252. 0EE2 00                DB    0        ;Reserved
  2253.  
  2254. 0EE3 0B                DB    11        ;Number of tab stops in tab table
  2255. 0EE4 00                DB    0        ;Number of decimal tabs
  2256.  
  2257. 0EE5 06 0B 10 15        DB    6,11,16,21    ;Tab stops
  2258. 0EE9 1A 1F 24 29        DB    26,31,36,41    ;(Must be in
  2259. 0EED 2E 33 38            DB    46,51,56    ;ascending order)
  2260.  
  2261. 0EF0 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0    ;Room for 21 more
  2262.     00
  2263. 0EF8 00 00 00 00 00 00 00    DB    0,0,0,0,0,0,0,0
  2264.     00
  2265. 0F00 00 00 00 00 00        DB    0,0,0,0,0
  2266.  
  2267. INIRL╔ determine≤ whethe≥ thσ rule≥ linσ i≤ rσ-initializeΣ froφ INIRL╥ eacΦ timσ an∙ ádocuì
  2268. men⌠ ái≤ edited« Iµ INIRL╔ i≤ FALSE¼ yo⌡ caε changσ thσ initia∞ rule≥ linσ witΦ á^OL¼ á^OR¼ ì
  2269. ^OI¼ áanΣ ^O╬ commands¼ anΣ havσ thosσ change≤ bσ useΣ fo≥ ever∙ documen⌠ editeΣ unti∞ áyo⌡ ì
  2270. exi⌠ WordStar.
  2271.  
  2272. 0F05 FF            INIRLI    DB    TRUE        ;Initialize ruler for each document
  2273.  
  2274. A≤ yo⌡ movσ througΦ ß document¼ WordSta≥ execute≤ somσ oµ thσ do⌠ commands¼ likσ .R╥ árule≥ ì
  2275. linσ commands¼ a≤ the∙ arσ encountered« A≤ WordSta≥ move≤ forwarΣ througΦ thσ text¼ thσ olΣ ì
  2276. rule≥ linσ i≤ storeΣ iε memor∙ s∩ tha⌠ i⌠ caε bσ restoreΣ wheε yo⌡ movσ backward≤ ove≥ áthσ ì
  2277. .R╥ later« Othe≥ do⌠ command≤ worδ iε ß simila≥ manner.
  2278.  
  2279. DSTKS┌ ái≤ useΣ t∩ allocatσ storagσ fo≥ thσ do⌠ commands« Whilσ yo⌡ arσ áediting¼ áWordSta≥ ì
  2280. put≤ ß Do⌠-Limi⌠ indicato≥ iε thσ statu≤ linσ iµ yo⌡ usσ to∩ man∙ do⌠ commands.
  2281.  
  2282.     Dot Command        Size
  2283.     .RR            38
  2284.     .RM .LM .LH .PL        1
  2285.     .MT .MB            1
  2286.     .PN            2
  2287.  
  2288. 0F06 01F4         DSTKSZ    DW    500        ;Rooφ áfo≥ 1│ .R╥ command≤ áo≥ á50░ ì
  2289. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;.R═ ª .LM
  2290.  
  2291. INIDI╥ determine≤ whethe≥ thσ director∙ i≤ initiall∙ displayeΣ o≥ not«  DIRSR╘ tell≤ áWordì
  2292. Sta≥ áwhethe≥ áo≥ áno⌠ t∩ sor⌠ directorie≤ iε alphabetica∞ orde≥ ábeforσ ádisplayinτ áthem« ì
  2293. DSPAC┼ áindicate≤ whethe≥ o≥ no⌠ WordSta≥ i≤ t∩ displa∙ oε directorie≤ thσ spacσ áremaininτ ì
  2294. fo≥ thσ currentl∙ loggeΣ drive.
  2295.  
  2296. 0F08 FF            INIDIR    DB    TRUE        ;Directory on
  2297.  
  2298. 0F09 FF            DIRSRT    DB    TRUE        ;Sort directory
  2299.  
  2300. 0F0A FF            DSPACE    DB    TRUE        ;Display remaining space
  2301.  
  2302. INIHLP is the default help level. It can have a value from 0 to 3.
  2303. è0F0B 03            INIHLP    DB    3        ;All help
  2304.  
  2305. Wheε editing¼ thσ las⌠ erasurσ caε bσ undonσ witΦ ^U« UNON┼ determine≤ whethe≥ singlσ charì
  2306. acte≥ erasure≤ witΦ ^╟ anΣ DE╠ caε als∩ bσ undone.
  2307.  
  2308. UNSIZ┼ i≤ thσ maximuφ erasurσ tha⌠ caε late≥ bσ undone« Thσ unerasσ buffe≥ share≤ thσ ásamσ ì
  2309. memor∙ áspacσ a≤ thσ tex⌠ yo⌡ arσ editing« Makinτ UNSIZ┼ ver∙ largσ ma∙ causσ áWordSta≥ át∩ ì
  2310. "spil∞ overó t∩ disδ morσ frequently¼ slowinτ dowε editing.
  2311.  
  2312. 0F0C 00            UNONE    DB    FALSE        ;Don't unerase single erasures
  2313.  
  2314. 0F0D 01F4         UNSIZE    DW    500        ;Unerase up to 500 characters
  2315.  
  2316. VMSIZ┼ áindicate≤ thσ numbe≥ oµ 12╕-bytσ record≤ tha⌠ caε bσ reaΣ froφ thσ disδ áfo≥ áWordì
  2317. Star'≤ message≤ anΣ menus.
  2318.  
  2319. 0F0F 04            VMSIZE    DB    4        ;Four records (.5k byte)
  2320.  
  2321. OVSIZ┼ indicate≤ thσ numbe≥ oµ 12╕-bytσ record≤ tha⌠ caε bσ reaΣ froφ thσ disδ fo≥ áprinte≥ ì
  2322. drive≥ loadinτ anΣ fo≥ spellinτ check≤ tha⌠ usσ thσ UPDIC╘ updatσ dictionary.
  2323.  
  2324. 0F10 08            OVSIZE    DB    8        ;Eight records (1k byte)
  2325.  
  2326. Iµ áß documen⌠ become≤ to∩ largσ t∩ fi⌠ iε memor∙ a⌠ onσ time¼ WordSta≥ begin≤ át∩ á"spilló ì
  2327. thσ exces≤ t∩ thσ disk« TYSIZ┼ determine≤ ho≈ man∙ 12╕-byte≤ record≤ t∩ usσ fo≥ eacΦ spillì
  2328. over« áPickinτ ß correc⌠ sizσ i≤ importan⌠ bu⌠ caε usuall∙ bσ donσ b∙ tria∞ anΣ áerror« áIµ ì
  2329. TYSIZ┼ i≤ to∩ large¼ yo⌡ ma∙ seσ lonτ delay≤ durinτ scrollinτ o≥ typinτ wheε memor∙ fills.
  2330.  
  2331. Iµ áTYSIZ┼ ái≤ zero¼ WordSta≥ calculate≤ it≤ sizσ t∩ bσ 1/╕ oµ thσ maximuφ amoun⌠ áoµ átex⌠ ì
  2332. tha⌠ caε bσ storeΣ iε memory.
  2333.  
  2334. 0F11 00            TYSIZE    DB    0        ;Le⌠ áWordSta≥ calculatσ áspillove≥ ì
  2335. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;size
  2336.  
  2337. ┴ á"findó o≥ "finΣ anΣ replaceó use≤ thσ INIFI╬ option≤ iµ yo⌡ d∩ no⌠ explicitl∙ ente≥ áan∙ ì
  2338. a⌠ thσ "Options?ó prompt« Thσ possiblσ option≤ tha⌠ caε bσ useΣ are:
  2339.  
  2340.     W whole words only
  2341.     U ignore case
  2342.     B backwards search
  2343.     G whole file
  2344.     R rest of file
  2345.     N replace without asking
  2346.     A align paragraph after replacement
  2347.  
  2348. Blank the unused options.
  2349.  
  2350. 0F12 20 20 20 20 20 20    INIFIN    DB    '    '    ;No options
  2351.  
  2352. Fo≥ áhel≡ álevel≤ othe≥ thaε zero¼ thσ statu≤ linσ i≤ usuall∙ displayeΣ a⌠ thσ to≡ áoµ áthσ ì
  2353. screen« INIST┴ let≤ yo⌡ alway≤ turε i⌠ off« STFIL╠ specifie≤ wha⌠ characte≥ t∩ usσ t∩ áfil∞ ì
  2354. unuseΣ spacσ iε thσ statu≤ line.
  2355.  
  2356. 0F18 FF            INISTA    DB    TRUE        ;Display status line
  2357.  
  2358. 0F19 20            STFILL    DB    ' '        ;Fill with blanks
  2359.  
  2360. Wheε áparagraph≤ arσ aligneΣ witΦ ^┬ o≥ ^Q╒ anΣ hypheε hel≡ i≤ on¼ HYMA╪ i≤ useΣ t∩ ádeterì
  2361. minσ wheε t∩ asδ thσ use≥ t∩ hyphenatσ ß word.
  2362. è0F1A 05            HYMAX    DB    5        ;Asδ áuse≥ áwheε thσ áworΣ áextend≤ ì
  2363. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;morσ áthaε ╡ character≤ ápas⌠ áthσ ì
  2364. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;righ⌠ margin
  2365.  
  2366. Wheε WordSta≥ ask≤ ß questioε tha⌠ require≤ ß ┘ fo≥ ye≤ o≥ ╬ fo≥ n∩ response¼ YNC╥ indicatì
  2367. e≤ whethe≥ o≥ no⌠ thσ use≥ mus⌠ pusΦ thσ RETUR╬ ke∙ beforσ WordSta≥ wil∞ accep⌠ it.
  2368.  
  2369. 0F1B 00            YNCR    DB    FALSE        ;Don't wait for RETURN key
  2370.  
  2371. WordSta≥ ácaε inde° ever∙ worΣ iε ß documen⌠ a≤ wel∞ a≤ selecteΣ word≤ anΣ phrases« áIDXAL╠ ì
  2372. determine≤ whethe≥ thi≤ i≤ thσ defaul⌠ o≥ not.
  2373.  
  2374. 0F1C 00            IDXALL    DB    FALSE        ;Don't index every word
  2375.  
  2376. Usinτ á^┬ o≥ ^Q╒ iε ß nondocumen⌠ normall∙ strip≤ thσ eightΦ bi⌠ froφ eacΦ characte≥ áiε áß ì
  2377. line« STRPF╠ caε disablσ stripping.
  2378.  
  2379. 0F1D FF            STRPFL    DB    TRUE        ;Stripping is enabled
  2380.  
  2381. Editor Entry Conditions
  2382.  
  2383. 0F1E FF            INIEDT    DB    TRUE        ;Right justification when typing
  2384. 0F1F FF                DB    TRUE        ;WorΣ áwra≡ wheε typinτ a⌠ áenΣ áoµ ì
  2385. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;line
  2386. 0F20 FF                DB    TRUE        ;Insert on
  2387. 0F21 FF                DB    TRUE        ;Print controls displayed
  2388. 0F22 00                DB    FALSE        ;No hyphen help
  2389. 0F23 FF                DB    TRUE        ;Ruler displayed
  2390. 0F24 00                DB    FALSE        ;Not column mode
  2391. 0F25 00                DB    FALSE        ;Column replace off
  2392. 0F26 01                DB    1        ;Single spacing
  2393. 0F27 03                DB    3        ;Scrolling speed
  2394. 0F28 00                DB    FALSE        ;Preview mode off
  2395. 0F29 00                DB    FALSE        ;Proportional spacing off
  2396. 0F2A 00                DB    FALSE        ;ReserveΣ áfo≥ futurσ áwidow/orphaε ì
  2397. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;control
  2398. 0F2B 00                DB    FALSE        ;Soft space dots not displayed
  2399.  
  2400. 0F2C 00 00 00 00 00 00        DB    0,0,0,0,0,0    ;Reserved
  2401.  
  2402. Thσ followinτ flag≤ arσ useΣ t∩ contro∞ thσ wa∙ WordSta≥ processe≤ certaiε commands« CTLNF╠ ì
  2403. anΣ CTLHF╠ arσ provideΣ primaril∙ t∩ allo≈ WordSta≥ user≤ t∩ usσ ^╬ anΣ ^╚ iε thσ samσ áwa∙ ì
  2404. a≤ the∙ arσ accustomed.
  2405.  
  2406. 0F32 FF            CTLNFL    DB    TRUE        ;Se⌠ ánoε-zer∩ iµ ^╬ t∩ breaδ álinσ ì
  2407. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;anΣ RETUR╬ move≤ dowε ß linσ áwheε ì
  2408. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inser⌠ áoff« áSe⌠ t∩ ázer∩ ás∩ á^╬ ì
  2409. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;convert≤ paragrapΦ line≤ anΣ turn≤ ì
  2410. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;aut∩ áinden⌠ on/ofµ áfo≥ ánondoc⌡ì
  2411. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;ments¼ áanΣ RETUR╬ alway≤ áinsert≤ ì
  2412. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;CRLF.
  2413.  
  2414. 0F33 00            CTLHFL    DB    0        ;Se⌠ ánoε-zer∩ iµ ^╚ t∩ bσ samσ áa≤ ì
  2415. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá^╙ insteaΣ oµ DEL.
  2416.  
  2417. 0F34 00            CASEFL    DB    0        ;Se⌠ noε-zer∩ iµ ^▐ i≤ casσ toggle« ì
  2418. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;Wheε zer∩ anΣ CLTNF╠ i≤ ánoε-zero¼ ì
  2419. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;usσ áa≤ paragrapΦ linσ áanΣ áaut∩-ì
  2420. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;inden⌠ on/off.
  2421. è0F35 00            DELFLG    DB    0        ;Se⌠ ánoε-zer∩ áiµ áDE╠ áerase≤ át∩ ì
  2422. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;left¼ zer∩ t∩ erasσ t∩ righ⌠ (likσ ì
  2423. áááááááááááááááááááááááááááááááááááááááááááááááááááááááá;^G).
  2424.  
  2425. 0F36 00 00 00 00        DB    0,0,0,0        ;Reserved
  2426.  
  2427. AHEA─ indicate≤ whethe≥ typσ aheaΣ i≤ alloweΣ fo≥ ^E¼ ^X¼ ^W¼ ^Z¼ ^G¼ DEL¼ ^T¼ ^Y¼ ^QY¼ anΣ ì
  2428. ^QDEL« áIµ áAHEA─ i≤ 0¼ WordStar'≤ typσ aheaΣ buffe≥ wil∞ bσ flusheΣ wheneve≥ áonσ áoµ áthσ ì
  2429. function≤ ái≤ encountered« Iµ i⌠ i≤ noε-zero¼ n∩ flushinτ wil∞ occur« Thi≤ flaτ áshoulΣ ábσ ì
  2430. useΣ áprimaril∙ fo≥ externa∞ keyboarΣ enhancer≤ wherσ thσ function≤ showε abovσ arσ át∩ ábσ ì
  2431. used« WordStar'≤ functioε ke∙ anΣ shorthanΣ processinτ automaticall∙ compensate.
  2432.  
  2433. 0F3A 00            AHEAD    DB    0        ;Flush
  2434.  
  2435. Maximuφ sizσ fo≥ thσ shorthanΣ definitions« ShoulΣ bσ optimizeΣ t∩ matcΦ actua∞ usagσ sincσ ì
  2436. i⌠ reduce≤ thσ amoun⌠ oµ memor∙ availablσ fo≥ tex⌠ whilσ editinτ anΣ printing« Thσ sizσ áoµ ì
  2437. eacΦ definitioε i≤ equa∞ t∩ ╡ plu≤ thσ numbe≥ oµ character≤ defined« Iµ thi≤ valuσ i≤ smalì
  2438. le≥ áthaε thσ sizσ oµ thσ shorthanΣ filσ (seσ SVFIL┼ above)¼ onl∙ somσ oµ áthσ ádefinition≤ ì
  2439. wil∞ bσ used« Settinτ i⌠ t∩ zer∩ disable≤ shorthanΣ anΣ make≤ thσ ES├ ke∙ clea≥ thσ áscreeε ì
  2440. instead.
  2441.  
  2442. 0F3B 04            HANMAX    DB    4        ;Size of shorthand buffer in records
  2443.  
  2444. Spelling checking and correction
  2445.  
  2446. SPFLA╟ ái≤ useΣ t∩ indicatσ ho≈ WordSta≥ i≤ t∩ usσ thσ dictionarie≤ eacΦ bi⌠ i≤ defineΣ áa≤ ì
  2447. follows...
  2448.  
  2449.     Bit    Definition
  2450.  
  2451.     0    Set if swapping between dictionary disk and program disk
  2452.     1    If swapping, set if personal dictionary is on dictionary disk
  2453.     2    If swapping, set if personal dictionary is on program disk
  2454.     3    Set if the main dictionary is to be entirely loaded to RAM
  2455.     4    Set to always prompt user for personal dictionary
  2456.     5-7    Reserved
  2457.  
  2458.     Iµ áneithe≥ bit≤ ▒ anΣ ▓ arσ se⌠ wheε swapping¼ thσ persona∞ dictionar∙ i≤ áassumeΣ ì
  2459. áááááááát∩ bσ oε thσ documen⌠ disk.
  2460.  
  2461. 0F3C 00            SPFLAG    DB    0        ;Not swapping
  2462.  
  2463. SPSIZE is the number of kbytes allocated to hold WSSPELL.OVR
  2464.  
  2465. 0F3D 0034         SPSIZE    DW    52        ;52k
  2466.  
  2467. Thσ maiε dictionar∙ i≤ usuall∙ thσ larges⌠ anΣ slowes⌠ oµ thσ spellinτ checδ ádictionaries« ì
  2468. Iµ átherσ i≤ sufficien⌠ memor∙ iε you≥ computer¼ WordSta≥ caε speeΣ u≡ dictionar∙ álooδ-up≤ ì
  2469. significantl∙ b∙ "learningó whicΦ word≤ yo⌡ looδ u≡ mos⌠ frequentl∙ anΣ storσ theφ iε memoì
  2470. ry« áIµ therσ i≤ enougΦ memor∙ iε you≥ computer¼ eventuall∙ thσ wholσ dictionar∙ i≤ pu⌠ áiε ì
  2471. memory« Iµ bi⌠ │ oµ SPFLA╟ abovσ i≤ set¼ thσ firs⌠ timσ yo⌡ d∩ ß spellinτ check¼ thσ entirσ ì
  2472. dictionar∙ wil∞ bσ loadeΣ int∩ memor∙ al∞ a⌠ once.
  2473.  
  2474. 0F3F 0020         SPMEM    DW    32        ;Use 32k for the main dictionary
  2475.  
  2476. WordSta≥ ánormall∙ doesn'⌠ checδ thσ spellinτ oµ ver∙ smal∞ word≤ sincσ singlσ letter≤ áarσ ì
  2477. useΣ fo≥ man∙ thing≤ beside≤ thσ word≤ "aó o≥ "I"«  SPMI╬ i≤ useΣ t∩ indicatσ thσ ásmalles⌠ ì
  2478. worΣ t∩ bσ checked.
  2479.  
  2480. 0F41 02            SPMIN    DB    2        ;Don't check 1-letter wordsè
  2481. Iµ áyo⌡ átel∞ WordSta≥ t∩ substitutσ ß correctioε fo≥ ß misspelling¼ thσ paragrapΦ ácaε ábσ ì
  2482. automaticall∙ rσ-aligneΣ (thσ worΣ "alignó appear≤ iε thσ statu≤ line)« SPALG╬ indicate≤ iµ ì
  2483. automatiπ alignmen⌠ i≤ thσ defaul⌠ o≥ not.
  2484.  
  2485. 0F42 FF            SPALGN    DB    TRUE        ;Re-align
  2486.  
  2487. Yo⌡ ácaε áinser⌠ thσ curren⌠ datσ o≥ timσ int∩ ß documen⌠ witΦ eithe≥ shorthanΣ áo≥ ádurinτ ì
  2488. mergσ áprinting« FDAT┼ indicate≤ ho≈ thσ datσ shoulΣ bσ displayed¼ anΣ FTIM┼ thσ átime¼ áa≤ ì
  2489. follows...
  2490.  
  2491.     Code    Example
  2492.     1    Day of the month
  2493.     2    Month as a number
  2494.     3    Month as a word
  2495.     4    Year as 4 digits
  2496.     5    Year as 2 digits
  2497.     6    First 3 letters of month
  2498.     7    Day of the month as 2 digits
  2499.     8    Month as 2 digits
  2500.     9    Hour in 24-hour format
  2501.     A    Hour in 24-hour 2-digit format
  2502.     B    Hour in 12-hour format
  2503.     C    Minute as 2 digits
  2504.     D    AM or PM
  2505.  
  2506. For example:
  2507.  
  2508.     3 1, 4    becomes September 19, 1985
  2509.     2/1/5    becomes 9/19/85
  2510.     7 6 5    becomes 19 Sep 86
  2511.     9:C    becomes 14:27
  2512.     B:C D    becomes 2:27 PM
  2513.  
  2514. 0F43 06            FDATE    DB    6
  2515. 0F44 33 20 31 2C 20 34        DB    '3 1, 4'    ;September 19, 1985 format
  2516. 0F4A 00                DB    0        ;Spare
  2517.  
  2518. 0F4B 05            FTIME    DB    5
  2519. 0F4C 42 3A 43 20 44        DB    'B:C D'        ;2:27 PM format
  2520. 0F51 00 00             DB    0,0        ;Spare
  2521.  
  2522. WitΦ shorthanΣ yo⌡ caε inser⌠ thσ dolla≥-formatteΣ result≤ oµ thσ las⌠ matΦ yo⌡ áperformed« ì
  2523. WordSta≥ áuse≤ thσ forma⌠ belo≈ wheε yo⌡ d∩ this« (Makσ surσ tha⌠ thσ characte≥ ácoun⌠ áiεì
  2524. clude≤ thσ zer∩ a⌠ thσ end.)
  2525.  
  2526. 0F53 11            DOLLAR    DB    17        ;Character count
  2527. 0F54 2D 2D 2C 2D 2D 2D 2C    DB    '--,---,---,---.99'
  2528.     2D 2D 2D 2C 2D 2D 2D
  2529.     2E 39 39
  2530. 0F65 00 00 00            DB    0,0,0        ;Spare
  2531.  
  2532. 0F68 0050[             DB    80 DUP(0)    ;Reserved
  2533.     00
  2534.         ]
  2535.  
  2536. EXTR┴ i≤ ß largσ buffe≥ areß fo≥ genera∞ patching« Somσ version≤ oµ thσ WINSTAL╠ áinstallaì
  2537. tioε prograφ usσ EXTRA.
  2538.  
  2539. 0FB8 0200[         EXTRA    DB    512 DUP(0)    ;Extra .5k of patching spaceè    00
  2540.         ]
  2541.  
  2542. User Area date
  2543.  
  2544. 11B8 01 13 57        UDATE    DB    01,19,87
  2545.