home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / p / wspatch.lbr / WSPATCH2.DZC / WSPATCH2.DOC
Encoding:
Text File  |  1993-10-25  |  24.8 KB  |  547 lines

  1. .pf on:
  2. .rm 65
  3.                           WSPATCH2.DOC
  4.  
  5.                                         
  6. Wordsta≥á patche≤á combineΣ froφ man∙ othe≥á patche≤ ì
  7. published¼ witΦ somσ enhancement≤ anΣ modifications«                              
  8.  
  9. Fo≥á Wordsta≥ 2.2╢ only!!!!!íá  Work≤ witΦ singlσ o≥ ì
  10. double density systems.
  11.  
  12. Writteε b∙ Mikσ Schwab¼á assistan⌠ librarian¼ Denve≥ ì
  13. Osbornσ Grou≡ 
  14.   (303⌐ 986-3102¼  CompuServσ 71555,222
  15. Pleasσ contac⌠ mσ (telephonσ i≤ faster⌐ iµ yo⌡á finΣ ì
  16. an∙ problem≤ o≥ havσ an∙ suggestions.
  17.  
  18.  
  19. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>  HELP! <<<<<<<<<<<<<<
  20.  
  21. Iµá thosσá wh∩ havσ acces≤ t∩ thσá sourcσá codσá fo≥ ì
  22. Wordsta≥ noticσ an∙ problem≤ witΦ thσ patche≤ ╔ havσ ì
  23. made¼á o≥ woulΣ kno≈ ho≈ t∩ achievσ thσ samσ result≤ ì
  24. witΦá Wordsta≥á 3.0¼á pleasσ contac⌠ mσ a≤á sooεá a≤ ì
  25. possible«  Thσ location≤ tha⌠ ╔ havσ patcheΣ o≥ useΣ ì
  26. with Wordstar 2.26 are as follows:
  27.  
  28.  194-1D4  - Terminal and printer logos.
  29.  248-2D2  - Terminal and option patch area.
  30.  2D9-35B  - Seems to be a free patch area - I used
  31.              for special patch subroutines.
  32.  360-422  - Program option patch area.
  33.  691-70C  - Printer patch area.
  34.  1BB4     - Patched to call scroll routine.
  35.  1BBB     - Return point from scroll routine.
  36.  202B     - Patched to correct memory mapped addr 
  37.             calculation to use 128 instead of WID.
  38.  204F     - Patched to correct memory mapped addr 
  39.              calculation to use 128 instead of WID.
  40.  234C     - Patched to correct memory mapped addr 
  41.              calculation to use 128 instead of WID.
  42.  2E74     - Patched to correct memory mapped addr 
  43.             calculation to use 128 instead of WID.
  44.  30D2     - Patched to jump to scroll routine.
  45.  3718     - Current Help level variable.
  46.  371E     - Current cursor column.
  47.  
  48.  
  49. 1.░ HISTORY AND PATCH OVERVIEW
  50.  
  51. Thi≤ histor∙ sectioε describe≤ thσ patche≤ made¼ anΣ ì
  52. thσá motivatioε fo≥ thσ patche≤ made«á  Pleasσá reaΣ ì
  53. througΦá i⌠ quickly¼á eveε thougΦ somσ portion≤á arσ ì
  54. somewha⌠á technical¼á a≤ i⌠ wil∞ hel≡ yo⌡ understanΣ ì
  55. the principals involved.
  56.  
  57. Thσá goa∞á iεá creatinτ thi≤ patcΦá wa≤á t∩á combinσ ìèalmos⌠á al∞ oµ thσ nicσ operationa∞ patche≤ whicΦá ╔ ì
  58. havσá found¼á anΣ includσ al∞ oµ thσ prograφá optioε ì
  59. patcΦ location≤ previousl∙ accessiblσ onl∙ b∙á usinτ ì
  60. thσ Wordsta≥ INSTAL╠ program«á  Somσ oµ thσ previou≤ ì
  61. patche≤áá didn'⌠á worδá together¼áá o≥á didn'⌠á worδ ì
  62. properl∙ oε doublσ densit∙ machines«á  Plus¼ INSTAL╠ ì
  63. i≤á somewha⌠á awkwarΣ t∩ use¼á anΣ require≤á yo⌡á t∩ ì
  64. ente≥á everythinτ iε hexidecimal«á  Wha⌠ ╔ havσá no≈ ì
  65. createΣ i≤ aε assembl∙ languagσ filσ whicΦ give≤ yo⌡ ì
  66. onσ sto≡ shopping«á  Yo⌡ ge⌠ man∙ nicσá enhancement≤ ì
  67. 11 thσ operatioε oµ thσ program¼ plu≤ thσ abilit∙ t∩ ì
  68. enter patch options in ASCII or decimal.  
  69.  
  70. Thi≤ filσ include≤ thσ optioε formall∙ calleΣ smootΦ ì
  71. scrolling«áá  Thi≤áá includeΣá memor∙á mappeΣá vide∩ ì
  72. access¼áá whicΦáá make≤á fo≥á almos⌠áá instantaneou≤ ì
  73. vertica∞á scrollinτ (^C¼á ^R)«á  I⌠ als∩ include≤á ß ì
  74. mucΦ nice≥ horizonta∞ scrollinτ techniquσ wheε usinτ ì
  75. ßá 5▓á columεá display«áá  Thesσá tw∩á patche≤á makσ ì
  76. Wordsta≥ mucΦ nice≥ t∩ use¼á anΣ virtuall∙ eliminatσ ì
  77. thσá annoyinτ jumpinτ oµ thσ screeε anΣ garbagσ datß ì
  78. lef⌠ oε thσ screen.
  79.  
  80. Thi≤á patcΦá prograφ include≤ al∞ oµ thσ idea≤á froφ ì
  81. thσ WSFAST.AS═ prograφ whicΦ ╔ founΣ oε FOG/APP.006«  ì
  82. Thi≤ patcΦ originateΣ iε FOGHORN¼ wa≤ miscopieΣ int∩ ì
  83. thσá firs⌠á Portablσ Companion¼á anΣá correcteΣá anΣ ì
  84. slightl∙ modifieΣ iε WSFAST«  WSFAS╘ diΣ no⌠ worδ oε ì
  85. doublσ densit∙ machines¼á eveε afte≥ correctinτá thσ ì
  86. BIO╙ references«  ╔ founΣ thσ probleφ t∩ bσ witΦ thσ ì
  87. embeddeΣ Z8░ code≤ usσ oµ thσ EX╪ instruction¼ whicΦ ì
  88. conflict≤á witΦá thσ usσ oµ thσ samσ instructioεá iε ì
  89. BIO╙á 1.4«á  Studyinτá thσ Osbornσ Technica∞á Manua∞ ì
  90. revealeΣ thσ change≤ madσ betweeε BIO╙ 1.│ anΣá 1.4«  ì
  91. ╔á thereforσá rewrotσ thσ Z8░ codσ iε 808░á assembl∙ ì
  92. language¼á correctinτá thσ problem¼á anΣ eveεá usinτ ì
  93. les≤ byte≤ thaε thσ previou≤ version«  
  94.  
  95. Afte≥á ß tediou≤ disassembl∙ oµ thσá Wordsta≥á code¼ ì
  96. anΣ man∙ tria∞ anΣ erro≥ attempts¼á ╔ discovereΣ ho≈ ì
  97. t∩ adΣ severa∞ enhancements¼á thσ mos⌠ noticeablσ oµ ì
  98. whicΦá i≤ t∩ allo≈ specifyinτ ß screeε widtΦ oµ les≤ ì
  99. thaεá 128¼á withou⌠á screwinτ u≡á thσá memory-mappeΣ ì
  100. vide∩ addres≤ calculations«  Thus¼ witΦ aε 8░ o≥ 10┤ ì
  101. columε display¼á thσ screeε widtΦ ma∙ bσ se⌠ s∩ tha⌠ ì
  102. thσá specia∞ flaτ character≤ iε thσ righ⌠ columε ma∙ ì
  103. bσ displayeΣ oε thσ screen«á  Thi≤ requireΣ patchinτ ì
  104. thσá Wordsta≥ codσ iε fou≥ places¼á t∩á correc⌠á thσ ì
  105. addres≤á calculation≤ b∙ usinτ thσ 12╕ columεá vide∩ ì
  106. memor∙á widtΦ iε thσ appropriatσá calculations«á  Iµ ì
  107. WIDT╚á i≤ se⌠ t∩ 128¼á thσ fou≥ patche≤ havσ n∩á ne⌠ ì
  108. effect.
  109.  
  110. Anothe≥ enhancemen⌠ i≤ ß rewritσ oµ thσ routinσ froφ ì
  111. WSPATC╚á (FOG/APP.005⌐ whicΦ set≤ thσ arro≈ key≤á t∩ ìèWordsta≥á oε entry¼á anΣ reset≤ theφ bacδ t∩ CP/═ oε ì
  112. exit«á  Also¼á iµá memor∙ mappeΣ vide∩ operatioεá i≤ ì
  113. selecteΣ (FAST=TRUE)¼á thσ aut∩ horizonta∞ scrol∞ i≤ ì
  114. disableΣ oε prograφ entry¼á anΣ turneΣ bacδ oεá wheε ì
  115. Wordsta≥ exits.
  116.  
  117. Iεá addition¼á al∞á oµ thσá terminal¼á printer¼á anΣ ì
  118. prograφá optioε patcΦ location≤ whicΦ ╔á coulΣá finΣ ì
  119. arσá includeΣá iεá thi≤ routine«á  Thi≤á allow≤á thσ ì
  120. patche≤ t∩ bσ donσ iε ASCI╔ o≥ decimal¼á insteaΣá oµ ì
  121. hex¼á likσ iε INSTALL«á  Also¼á al∞ oµ thσ necessar∙ ì
  122. patche≤á ma∙á bσ donσ iε onσ place¼á iεá onσá simplσ ì
  123. step¼á withou⌠ usinτ INSTAL╠ a⌠ all«á  ╔ havσ testeΣ ì
  124. thσá patche≤ iε thσ Anade° versioε (WSP2ANA.ASM⌐á oε ì
  125. m∙áá Anade°áá 950▒á printer«áá  Thσá EPSO╬áá versioε ì
  126. (WSP2EPSN.ASM⌐áá wa≤á deriveΣá froφá severa∞áá othe≥ ì
  127. patchinτ document≤ ╔ founΣ iε thσ library¼á anΣá ha≤ ì
  128. no⌠á beeε testeΣ oε aε EPSON«á  Pleasσ contac⌠ mσ iµ ì
  129. yo⌡ havσ patche≤ fo≥ othe≥ printers¼á o≥ suggestion≤ ì
  130. fo≥ improvement≤ iε thσ tw∩ existinτ versions«á  Thσ ì
  131. tw∩á version≤ arσ identica∞ excep⌠ fo≥á thσá printe≥ ì
  132. patches.
  133.  
  134. Thσááá origina∞áá WSFAS╘áá combineΣáá tw∩áá somewha⌠ ì
  135. independen⌠á functions║áá memor∙á mappeΣá vide∩á fo≥ ì
  136. speed¼á anΣá ß patcΦ t∩ givσ ßá smoothe≥á horizonta∞ ì
  137. scrol∞á theεá thσ aut∩ scrol∞ iε thσ BIO╙á provided«  ì
  138. Thσá smootΦá scrol∞ wa≤ dependen⌠á oεá usinτá memor∙ ì
  139. mappeΣ vide∩ fo≥ prope≥ operation¼ bu⌠ thσ function≤ ì
  140. werσáá otherwisσáá independent«áá  Thσá tw∩áá shoulΣ ì
  141. generall∙á g∩ togethe≥ iε 5▓ columεá displa∙á units«  ì
  142. However¼á wheε usinτ ß 8░ o≥ 10┤ columε display¼á i⌠ ì
  143. i≤ nicσ t∩ se⌠ thσ screeε widtΦ (WIDTH⌐ equa∞ t∩ thσ ì
  144. 8░ o≥ 10┤ columε displa∙ widtΦ (DWIDTH)¼ s∩ tha⌠ thσ ì
  145. specia∞ flaτ character≤ iε thσ right-mos⌠ columε arσ ì
  146. alway≤ displayed«  Iε thi≤ case¼ smootΦ scrollinτ i≤ ì
  147. n∩á longe≥á needed¼á sincσá al∞ oµá thσá displayablσ ì
  148. portioεá oµá thσ Wordsta≥ screeεá i≤á alway≤á shown«  ì
  149. But¼á thσá memor∙ mappeΣ vide∩ i≤ stil∞á desirable¼ ì
  150. jus⌠á becausσ oµ thσ speeΣ increase¼á whicΦ wil∞á bσ ì
  151. eveε morσ noticeablσ oε large≥ displays«  Therefore¼ ì
  152. thi≤á patcΦá ha≤á ß facilit∙ t∩á enablσá thσá memor∙ ì
  153. mappeΣá displa∙á withou⌠ thσá smootΦá scrolling¼á b∙ ì
  154. leavinτ thσ FAS╘ flaτ set¼á anΣ resettinτ SMOOT╚á t∩ ì
  155. FALSE«á  Iµ thi≤ i≤ done¼á DWIDT╚ anΣ thσ horizonta∞ ì
  156. scrol∞á columε (COLSCR⌐ wil∞ havσ n∩á effect«á  Notσ ì
  157. tha⌠á thσ CP/═ aut∩ horizonta∞ scrol∞ wil∞ alway≤ bσ ì
  158. disableΣ wheneve≥ FAS╘ i≤ set¼ sincσ n∩ scrollinτ i≤ ì
  159. needeΣ a⌠ all.
  160.  
  161. Sincσ somσ oµ thσ patche≤ useΣ direc⌠ BIO╙ call≤á o≥ ì
  162. accesses¼á anΣá thσ locatioε oµ BIO╙ moveΣ froφá 1.│ ì
  163. (singlσá density⌐ t∩ 1.┤ (doublσ density)¼á thσá olΣ ì
  164. version≤á oµ smootΦ scrollinτ diΣ no⌠ worδ oε doublσ ì
  165. density«á  ╔ changeΣ al∞ accesse≤ t∩ BIO╙á location≤ ìèt∩á dynamicall∙ calculatσ thσ curren⌠ BIO╙á startinτ ì
  166. address¼á anΣ theε adΣ thσ appropriatσ offset«  Thi≤ ì
  167. haΣ t∩ bσ donσ dynamically¼á sincσ thσ patcΦ areß i≤ ì
  168. reloadeΣ froφ disδ wheneve≥ thσ ╥ (ruε ß program⌐ i≤ ì
  169. used«á  Thσá location≤á accesseΣ withiε BIO╙ arσá a≤ ì
  170. follow≤ (assuminτ tha⌠ BIO╙ start≤ a⌠á xx00H¼á whicΦ ì
  171. is E500H for single density, and E100H for double):
  172.  
  173.   xx06H - Console status routine
  174.   xx0CH - Console output routine (C=char to output)
  175.   xx68H - Auto horizontal scroll flag
  176.   xx7FH - Pointer to first arrow key definition
  177.  
  178. Thσá BMRA═ curso≥ positioε variablσ ha≤ no⌠ changed¼ ì
  179. and is located at EF5AH.
  180.  
  181. Anothe≥ featurσ ╔ havσ addeΣ t∩ thσ smootΦ scrollinτ ì
  182. routinσ camσ abou⌠ a≤ follows«  ╔ basicall∙ havσ tw∩ ì
  183. mode≤áá oµáá operatioεá oµá Wordsta≥á whicΦá ╔áá usσ ì
  184. constantly¼áá usuall∙á mixeΣá withiεá onσá document«  ì
  185. First¼á ╔ ente≥ ordinar∙ tex⌠ witΦ thσ righ⌠á margiε ì
  186. se⌠á a⌠ 52¼á s∩ tha⌠ ╔ caε seσ al∞ oµ thσá paragrapΦ ì
  187. withou⌠ scrollinτ thσ screen«  ╔ theε prin⌠ thσ filσ ì
  188. usinτá MergePrin⌠á witΦ ß righ⌠ margiε oµ 6╡ o≥á 70¼ ì
  189. whicΦá adjust≤ al∞ oµ m∙á paragraph≤á automatically«  ì
  190. Bu⌠á othe≥á times¼á likσ wheεá addinτá diagrams¼á o≥ ì
  191. editinτ prograφ code¼ ╔ usσ ß wide≥ margin¼ anΣ neeΣ ì
  192. ßá smootΦá horizonta∞ codσ t∩ kee≡ froφá wearinτá m∙ ì
  193. eye≤ out«á  Fo≥ thσ firs⌠ mode¼ ╔ woulΣ likσ t∩ havσ ì
  194. thσ smootΦ scrol∞ no⌠ star⌠ unles≤ ╔ movσ thσ curso≥ ì
  195. pas⌠á columεá 52¼á whicΦá mean≤ yo⌡á caεá neve≥á seσ ì
  196. anythinτ t∩ thσ righ⌠ oµ thσ cursor«  Fo≥ thσ seconΣ ì
  197. mode¼ ╔ woulΣ likσ thσ scrol∞ t∩ star⌠ mucΦ earlier¼ ì
  198. s∩á tha⌠ thσ curso≥ remain≤ close≥ t∩ thσ middlσá oµ ì
  199. thσá displayeΣ area«á  ╔ thereforσ createΣ ß specia∞ ì
  200. modσá oµ operatioε oµ thσ smootΦ scrollinτá routine¼ ì
  201. s∩á tha⌠ i⌠ use≤ ß scrol∞ columε whicΦ i≤á equa∞á t∩ ì
  202. thσ configureΣ column¼á minu≤ thσ curren⌠ hel≡ leve∞ ì
  203. (^JHn⌐á time≤á 8¼á whicΦá allow≤ yo⌡ t∩á changσá thσ ì
  204. scroll column on the fly.
  205.  
  206. Le⌠ mσ illustratσ thi≤ witΦ aε example«  WitΦ norma∞ ì
  207. smootΦ scrolling¼á yo⌡ woulΣ se⌠ you≥ scrol∞á columε ì
  208. a⌠ sa∙ 44«á  Thi≤ mean≤ tha⌠ a≤ yo⌡ movσ you≥ curso≥ ì
  209. t∩á columε 45¼á thσ screeε woulΣ movσ onσ columεá t∩ ì
  210. thσá left¼á anΣ wil∞ continuσ t∩ movσ onσ columε fo≥ ì
  211. eacΦá curso≥ columε moveΣ unti∞ thσ flaτá character≤ ì
  212. iε thσ righ⌠ columε arσ visible«á  WitΦ thσá specia∞ ì
  213. flaτ se⌠ (SPECL=TRUE)¼ ╔ woulΣ se⌠ thσ scrol∞ columε ì
  214. t∩á 5▓ (COLSCR=52)¼á anΣ woulΣ se⌠ thσ initia∞á hel≡ ì
  215. leve∞ t∩ 0«  M∙ screeε woulΣ theε no⌠ scrol∞ unti∞ ╔ ì
  216. tr∙ t∩ movσ thσ curso≥ ofµ oµ thσ screen«  Iµ ╔ theε ì
  217. se⌠á thσá hel≡ leve∞ t∩ ▒ (^JH1)¼á thσ scrol∞á woulΣ ì
  218. begiε a⌠ columε 44«  Hel≡ leve∞ ▓ (^JH2⌐ woulΣ causσ ì
  219. thσ scrol∞ t∩ begiε a⌠ columε 36¼á whicΦ woulΣá meaε ìètha⌠ ╔ caε alway≤ seσ thσ 1╢ column≤ t∩ thσ righ⌠ oµ ì
  220. the cursor.
  221.  
  222. T∩á accomplisΦá thi≤á enhancement¼áá ╔á founΣá wherσ ì
  223. Wordsta≥á store≤ thσ curren⌠ hel≡ level¼á shifteΣ i⌠ ì
  224. lef⌠ (RLC) │ time≤ (givinτ ▓ t∩ thσ 3rΣ powe≥ ╜ ¬ 8)¼á anΣ ì
  225. subtracteΣá tha⌠á figurσ froφá thσá selecteΣá scrol∞ ì
  226. column«á  Yo⌡á ma∙ choosσ an∙ startinτ scrol∞ columε ì
  227. fo≥ thi≤ feature¼á anΣ se⌠ thσ initia∞ righ⌠á margiε ì
  228. anΣ hel≡ level¼ a≤ desired«  Yo⌡ ma∙ eveε changσ thσ ì
  229. multiplie≥á t∩ ┤ b∙ deletinτ onσ oµ thσ RL├ line≤ iε ì
  230. thσá SCRO╠á code¼á o≥ t∩ 1╢ b∙á addinτá anothe≥á RL├ ì
  231. instruction«á  Thσá followinτ tablσ shoulΣ hel≡á yo⌡ ì
  232. keep this straight:
  233.  
  234.    Help Level Selected        Column to start scroll
  235.  
  236.           0                        COLSCR
  237.           1                        COLSCR-8
  238.           2                        COLSCR-16
  239. .pa
  240. è2.░  MODIFICATIO╬ O╞ TH┼ PROGRA═ FO╥ CUSTO═ OPTIONS
  241.  
  242.  
  243. Thσá tw∩ supplieΣ version≤ oµ thσ patcΦ routine≤ arσ ì
  244. alread∙á assembleΣá int∩á .HE╪á versions¼áá anΣá ma∙ ì
  245. installeΣ as-is«á  However¼á iµ yo⌡ havσ ß differen⌠ ì
  246. printer¼á o≥ jus⌠ wan⌠ t∩ changσ somσ oµ thσ option≤ ì
  247. t∩ sui⌠ you≥ persona∞ preferences¼á thσ routinσá ma∙ ì
  248. bσá modified«á  Jus⌠ renamσ thσ filσ t∩ ß namσ whicΦ ì
  249. i≤ meaningfu∞ t∩ yo⌡ (witΦ ß .AS═ extension¼ still)¼ ì
  250. anΣ theε edi⌠ i⌠ witΦ thσ Wordsta≥ ╬á (non-document⌐ ì
  251. command«á  N∩á knowledgσá oµá assembl∙á languagσá i≤ ì
  252. needeΣá t∩á changσá thσ options¼á a≤ ╔ wil∞á tr∙á t∩ ì
  253. thoroughl∙á documen⌠ oµ thσ possiblσá change≤á below«  ì
  254. Afte≥ editinτ thσ file¼á alway≤ usσ thσ Wordsta≥ ^Q├ ì
  255. commanΣá t∩á positioε thσ curso≥ oε thσá las⌠á blanδ ì
  256. linσ oµ thσ file¼ beforσ savinτ thσ file«  Thi≤ wil∞ ì
  257. avoiΣ ß documenteΣ buτ betweeε Wordsta≥ anΣ thσ CP/═ ì
  258. AS═ assembler«  
  259.  
  260. Afte≥áá savinτá thσá modifieΣá file¼áá anΣáá leavinτ ì
  261. Wordstar¼ thσ filσ mus⌠ bσ assembled«  Assuminτ tha⌠ ì
  262. thσá AS═á prograφá i≤á iεá drivσá A¼á you≥á modifieΣ ì
  263. WSP2xxxx.AS═ filσ i≤ oε drivσ B¼á anΣ yo⌡ arσ loggeΣ ì
  264. t∩ drivσ A¼á thσ followinτ commanΣ wil∞ assemblσ thσ ì
  265. program:
  266.  
  267.      A>AS═ WSP2xxxx.BBB
  268.  
  269. Thi≤ wil∞ producσ thσ followinτ lines:
  270.  
  271.      CP/═ ASSEMBLE╥ - VE╥ 2.0
  272.      zzzz
  273.      yyy╚ US┼ FACTOR
  274.      EN─ O╞ ASSEMBLY
  275.  
  276. Iµá an∙ othe≥ line≤ appea≥ afte≥ thσ CP/═á ASSEMBLE╥ ì
  277. line¼á the∙ indicatσ error≤ iε thσ file¼á whicΦ mus⌠ ì
  278. bσ correcteΣ beforσ proceeding«  Iµ n∩ error≤ occur¼ ì
  279. yo⌡á shoulΣ havσ ß WSP2xxxx.HE╪ objec⌠ file¼á anΣá ß ì
  280. WSP2xxxx.PR╬á listinτá file«á  Yo⌡ shoulΣ prin⌠á thσ ì
  281. listinτá file¼á alonτ witΦ thσ listinτ filσ fo≥á thσ ì
  282. original¼áá un-modifieΣá routine¼á anΣá comparσá thσ ì
  283. addresse≤á iε thσ lef⌠ column¼á t∩ insurσ tha⌠á you≥ ì
  284. patche≤á havσ no⌠ moveΣ an∙ oµ thσ patcΦá locations¼ ì
  285. whicΦá arσá critical«á  Iµ yo⌡ arσá carefu∞á t∩á no⌠ ì
  286. changσá thσ lengtΦ oµ patches¼á b∙ alway≤ usinτá thσ ì
  287. samσá numbe≥á oµá parameter≤á (bytes¼á separateΣá b∙ ì
  288. commas⌐á afte≥ eacΦ D┬ command¼á yo⌡ shoulΣ havσá n∩ ì
  289. problem«á  Fo≥ example¼ iµ yo⌡ choosσ t∩ change USR▒ ì
  290. froφá al∞á zero≤ t∩ aε ES├ ┼á sequence¼á thσá changσ ì
  291. woulΣ looδ likσ this:
  292.  
  293.   USR▒  D┬    0,0,0,0,░ ;take≤ fivσ byte≤ originally
  294.  
  295. è changσ to:
  296.  
  297.   USR▒  D┬    2,ESC,'E',0,░  ;stil∞ fivσ bytes
  298.  
  299. .pa
  300. è2.▒  Patchablσ Options
  301.  
  302. Therσá arσá patchablσá option≤ throughou⌠á thσá tex⌠ ì
  303. file¼ somσ oµ whicΦ arσ morσ sensitivσ t∩ erro≥ thaε ì
  304. others«á  ╔á wil∞á tr∙ t∩ direc⌠á yo⌡á t∩á correctl∙ ì
  305. modif∙á an∙á oµá thσ desirablσá options¼á shor⌠á oµ ì
  306. actuall∙ modifyinτ thσ assembl∙ languagσá code«á  Iµ ì
  307. yo⌡ arσ ß hacke≥ wh∩ find≤ ß bette≥ wa∙ t∩ codσ somσ ì
  308. oµ thσ routines¼á pleasσ le⌠ mσ kno≈ wha⌠ yo⌡ found«  ì
  309. Fo≥á thσ res⌠ oµ you¼á thσ onl∙ rea∞ concern≤ arσ t∩ ì
  310. bσá surσ tha⌠ yo⌡ instal∞ thσ patche≤ oε ßá COP┘á oµ ì
  311. thσ Wordsta≥ WS.CO═ file¼ anΣ tha⌠ yo⌡ d∩ no⌠ modif∙ ì
  312. onσá optioε sucΦ tha⌠ i⌠ move≤ thσ memor∙á location≤ ì
  313. oµá subsequen⌠ options«á  Thσ bes⌠ wa∙ t∩ checδ thi≤ ì
  314. is¼áá a≤áá mentioneΣá above¼áá firs⌠á assemblσáá thσ ì
  315. unmodifieΣá program¼á prin⌠ it≤á listing¼á anΣá theε ì
  316. comparσá thσ listinτ froφ you≥ modifieΣ version¼á t∩ ì
  317. seσá tha⌠á nonσ oµ thσ addresse≤ iεá thσá lef⌠á hanΣ ì
  318. columεá havσá changed¼áá arounΣá thσá areßá oµá you≥ ì
  319. modifications«áá  Thσáá addresse≤áá arσáá thσáá fou≥ ì
  320. hexidecimal digits in the left most column.
  321.  
  322. Note║á Iµ yo⌡ havσ no⌠ useΣ thσ Non-documen⌠ modσ oµ ì
  323. Wordsta≥á before¼á yo⌡á wil∞ noticσ tha⌠ thσ wa∙á i⌠ ì
  324. handle≤á tab≤á i≤á ßá littlσá different«áá  Thσá taΓ ì
  325. characte≥ i≤ actuall∙ storeΣ a≤ is¼ whicΦ mean≤ tha⌠ ì
  326. iµ yo⌡ accidentl∙ typσ ove≥ ß hiddeε taΓá character¼ ì
  327. thσá tex⌠ t∩ thσ righ⌠ oµ you≥ curso≥ wil∞á suddenl∙ ì
  328. jum≡ lef⌠ u≡ t∩ ╕ columns«á  Yo⌡ wil∞ neeΣ t∩ inser⌠ ì
  329. ß taΓ characte≥ o≥ space≤ iµ thi≤ happens¼á t∩ cleaε ì
  330. up the line again.
  331.  
  332. 2.1.2 Adjustable Options
  333.  
  334. Thσá firs⌠á change≤ oµ interes⌠ arσ iεá thσá sectioε ì
  335. calleΣá Adjustablσá Options¼á nea≥á thσ to≡á oµá thσ ì
  336. program«á  Somσá arσ true/falsσ flag≤ whicΦá contro∞ ì
  337. thσ naturσ oµ thσ codσ subsequentl∙á generated¼á anΣ ì
  338. other≤ arσ decima∞ number≤ indicatinτ column≤ oε thσ ì
  339. screen«á  Thσá FAS╘á flaτ control≤ whethe≥á yo⌡á arσ ì
  340. usinτ memor∙ mappeΣ video¼á whicΦ yo⌡ arσ iµ yo⌡ se⌠ ì
  341. FAS╘áá t∩á TRUE«áá  Iµá yo⌡á als∩á wan⌠á thσá smootΦ ì
  342. scrolling¼á yo⌡ ma∙ se⌠ SMOOT╚ t∩ TRUE¼ bu⌠ yo⌡ mus⌠ ì
  343. havσ FAST=TRU┼ first«  
  344.  
  345. Onσá undesirablσá sidσá effec⌠ oµ usinτá thσá memor∙ ì
  346. mappeΣá vide∩á i≤ tha⌠ yo⌡ losσ thσá halµá intensit∙ ì
  347. highlighting¼á whicΦ wa≤ useΣ fo≥ commanΣ menu≤á anΣ ì
  348. markinτáá blocks«áá  Iεá it≤á place¼áá yo⌡á ma∙á usσ ì
  349. underlining¼ b∙ settinτ flaτ HILIT┼ t∩ TRUE«  Iµ yo⌡ ì
  350. d∩ no⌠ likσ this¼ yo⌡ ma∙ eliminatσ it¼ bu⌠ yo⌡ wil∞ ì
  351. havσ n∩ indicatioε oµ wha⌠ tex⌠ i≤ markeΣ a≤ ß blocδ ì
  352. (╔ gues≤ wσ stil∞ can'⌠ quitσ havσ everything).
  353.  
  354. Thσá othe≥á variable≤ iε thi≤á sectioεá contro∞á thσ ìèwidtΦá oµá thσá tota∞ screeε areß useΣá b∙á Wordsta≥ ì
  355. (WIDTH)¼á thσ widtΦ oµ thσ actua∞ displa∙á (DWIDTH)¼ ì
  356. anΣ thσ desireΣ columε t∩ begiε horizonta∞ scrollinτ ì
  357. afte≥á (COLSCR)«áá  Also¼áá thσá specia∞á horizonta∞ ì
  358. scrollinτá mode¼á wherσá thσá scrol∞ columεá ma∙á bσ ì
  359. changeΣá oε thσ fl∙ witΦ thσ ^JHεá command¼á ma∙á bσ ì
  360. enableΣá b∙á settinτ SPEC╠ t∩ TRUE«á  Iε thi≤á case¼ ì
  361. COLSC╥ wil∞ designatσ thσ scrol∞ columε t∩ usσá wheε ì
  362. the help level is at 0.
  363.  
  364. 2.1.2  Terminal Patch Area
  365.  
  366. Thσá onl∙ patche≤ oµ interes⌠ iε thσ termina∞á patcΦ ì
  367. areßá arσá DEL│ anΣ DEL4«á  Thesσ contro∞á thσá timσ ì
  368. dela∙á fo≥á displayinτ thσ hel≡á commanΣá menu≤á anΣ ì
  369. signoεá screen¼áá respectively«á  Sincσá thσá signoε ì
  370. screeεá i≤ no⌠ ver∙ useful¼á ╔ havσ se⌠ DEL┤ t∩á 12¼ ì
  371. whicΦá i≤ abou⌠ a≤ lo≈ a≤ i≤ meaningful¼á sincσá thσ ì
  372. primar∙ dela∙ i≤ theε causeΣ b∙ thσ disδ access«  Iµ ì
  373. yo⌡á wan⌠á ßá longe≥á dela∙ beforσá thσá hel≡á menu≤ ì
  374. (assuminτ tha⌠ you≥ hel≡ leve∞ i≤ >0)¼á yo⌡ increasσ ì
  375. DEL3¼á althougΦ ╔ havσ alread∙ increaseΣ i⌠ froφá 2╡ ì
  376. t∩ 3╡ (╔ don'⌠ kno≈ thσ unit≤ oµ time¼á bu⌠ i⌠ seem≤ ì
  377. to be around 1/10 sec.).
  378.  
  379. 2.1.3  Special Routines for Osborne 1
  380.  
  381. Mos⌠áá peoplσá shoulΣá no⌠á attemp⌠á t∩á modif∙á an∙ ì
  382. assembl∙ languagσ routines«  However¼ iµ yo⌡ likσ m∙ ì
  383. specia∞á adjustablσ smootΦ scrollinτ mode¼á bu⌠á yo⌡ ì
  384. reall∙ wisΦ tha⌠ ╔ haΣ multiplieΣ thσ hel≡ leve∞á b∙ ì
  385. ┤ o≥ 16¼á insteaΣ oµ 8¼ yo⌡ ma∙ changσ thσ numbe≥ oµ ì
  386. RL├á shif⌠á instruction≤ (currentl∙ 3⌐ iε thσá SCRO╠ ì
  387. routine«á  EacΦ RL├ instructioε multiplie≤ thσá hel≡ ì
  388. leve∞ numbe≥ b∙ 2¼á s∩ onσ RLC=*2¼ two=*4¼ three=*8¼ ì
  389. four=*16¼á five=*32¼á six=*64¼á anΣá seveε woulΣá bσ ì
  390. ridiculous«á  Notσá tha⌠á an∙ change≤ madσ t∩á thesσ ì
  391. routine≤á mus⌠ no⌠ extenΣ thσ routine≤ pas⌠á addres≤ ì
  392. 035BH.
  393.  
  394. 2.1.4  Program Option Patch Section
  395.  
  396. Thi≤á sectioε contain≤ patcΦ location≤á whicΦá allo≈ ì
  397. thσ use≥ t∩ changσ thσ defaul⌠ initia∞ setting≤ oµ ß ì
  398. numbe≥á oµ prograφ options«á  Mos⌠ oµ thesσá option≤ ì
  399. ma∙á bσ changeΣ witΦ command≤ insidσ oµ thσ program¼ ì
  400. bu⌠á i⌠á i≤ ofteε easie≥ t∩ havσá Wordsta≥á comσá u≡ ì
  401. alread∙á configureΣ thσ wa∙ yo⌡ prefer¼á rathe≥ thaε ì
  402. ente≥á thσá command≤ manually¼á o≥ tiσá u≡á ßá largσ ì
  403. functioεá t∩á d∩ them«á  Somσ oµ thσá variable≤á arσ ì
  404. flags¼ whicΦ ma∙ bσ designateΣ a≤ O╬ o≥ OFF«  Other≤ ì
  405. requirσá ßá decima∞á numbe≥ fo≥á ßá parameter«á  Thσ ì
  406. prograφá filσ comment≤ describσ eacΦá variable¼á anΣ ì
  407. givσ thσ correspondinτ Wordsta≥ commanΣ whicΦá woulΣ ì
  408. also change that variable, if there is one.
  409. è
  410. ╔á havσá alread∙á changeΣ thσá default≤á whicΦá mos⌠ ì
  411. peoplσá likσá t∩ change«á  Thσá initia∞á hel≡á leve∞ ì
  412. (ITHELP⌐á ha≤á beeε changeΣ t∩ 0«á  Thσ inser⌠á modσ ì
  413. flaτá (ITITOG⌐ wa≤ changeΣ t∩ OFF¼á s∩ tha⌠ Wordsta≥ ì
  414. doe≤á no⌠ comσ u≡ witΦ Inser⌠ On«á  Thσ Hypheεá Hel≡ ì
  415. flaτá (INITWF+4⌐ ha≤ beeε se⌠ OFF¼á s∩ tha⌠á thσá ^┬ ì
  416. command does not pause in the middle of a paragraph.  
  417.  
  418. Thσá mos⌠á importan⌠ parameter¼á sincσ i⌠á i≤á ofteε ì
  419. differen⌠ fo≥ differen⌠ people¼ i≤ thσ desireΣ righ⌠ ì
  420. margin¼ INITRM«  ╔ havσ entereΣ i⌠ a≤ columε 52¼ bu⌠ ì
  421. yo⌡ ma∙ prefe≥ ß differen⌠ column«  Wordsta≥ expect≤ ì
  422. thσ actua∞ valuσ storeΣ t∩ bσ thσ margiε minu≤á one¼ ì
  423. s∩ ╔ havσ expresseΣ i⌠ a≤ thσ desireΣ valuσ followeΣ ì
  424. b∙ ß -1¼ t∩ simplif∙ thσ entr∙ (i.e.║ 52-1).
  425.  
  426. Man∙ othe≥ option≤ ma∙ bσ changed¼ sucΦ a≤ thσ pape≥ ì
  427. dimensions¼á lef⌠ margin¼á worΣ wrap¼ justification¼ ì
  428. rule≥ display¼á pagσ breaδ display¼ o≥ linσ spacing«  ì
  429. Yo⌡ caε changσ thσ defaul⌠ prin⌠ questioε responses¼ ì
  430. sucΦá a≤ alway≤ thσ prin⌠ usσ forφ feed≤ unles≤á yo⌡ ì
  431. specificall∙ answe≥ ╬ t∩ thσ question«  Yo⌡ caε eveε ì
  432. changσá somσá option≤á no⌠ accessiblσá witΦá prograφ ì
  433. commands¼á sucΦá a≤ changinτ thσá actua∞á character≤ ì
  434. useΣá fo≥ decima∞ tab¼á DO╘ commands¼á o≥á MailMergσ ì
  435. special variable markers and delimiters.
  436.  
  437. 2.1.5  Printer Patch Section
  438.  
  439. Thσá printe≥ patcΦ sectioε i≤ thσ onσ yo⌡ wil∞á havσ ì
  440. t∩á heavil∙ modif∙ iµ you≥ printe≥ doe≤ no⌠ usσá thσ ì
  441. contro∞á code≤á tha⌠ thσ version≤ provideΣá support«  ì
  442. Thesσá patche≤á arσ probabl∙ thσá trickies⌠á fo≥á thσ ì
  443. novice¼ sincσ the∙ requirσ ß knowledgσ oµ thσ prope≥ ì
  444. contro∞á code≤ fo≥ you≥ particula≥ printer¼á whicΦ ╔ ì
  445. canno⌠ possiblσ givσ yo⌡ iε thi≤ document«  Yo⌡ mus⌠ ì
  446. stud∙á carefull∙á thσá manua∞á provideΣá witΦáá you≥ ì
  447. printe≥á (hopefull∙á yo⌡ havσ one!)¼á anΣá determinσ ì
  448. whicΦá contro∞á code≤ producσá thσá specia∞á printe≥ ì
  449. option≤á o≥á mode≤ whicΦ yo⌡ desirσ t∩ contro∞á froφ ì
  450. Wordstar.  
  451.  
  452. Therσá arσ tw∩ differen⌠ specificatioεá method≤á fo≥ ì
  453. thesσáá parameters¼áá dependinτáá oεá thσáá variablσ ì
  454. involved«á  Thσ firs⌠ two¼á BLDST╥ anΣá DBLSTR¼á arσ ì
  455. jus⌠ ß singlσ decima∞ number¼á specifyinτ thσ numbe≥ ì
  456. oµ time≤ t∩ overprin⌠ fo≥ boldfacσ anΣ doublestrike¼ ì
  457. respectively«á  Thσ res⌠ oµ thσ variable≤ consis⌠ oµ ì
  458. ßá ░ t∩ ε characte≥ strinτ oµ contro∞á codes¼á whicΦ ì
  459. wil∞áá bσá outpu⌠á t∩á thσá printe≥á unde≥áá certaiε ì
  460. conditions«á  Thesσ strinτ alway≤ star⌠ witΦ ß coun⌠ ì
  461. oµ thσ numbe≥ oµ character≤ whicΦ follow¼á whicΦ ma∙ ì
  462. bσá zero«á  Wheε Wordsta≥ want≤ t∩ usσ onσ oµá thesσ ì
  463. strings¼á i⌠á firs⌠ grab≤ thi≤ characte≥ count¼á anΣ ìètheεá fetche≤ tha⌠ man∙ morσá bytes¼á anΣá transmit≤ ì
  464. theφ t∩ you≥ printer«  Thσ numbe≥ oµ byte≤ availablσ ì
  465. fo≥á eacΦ functioε i≤ fixed¼á anΣ mus⌠ bσ maintaineΣ ì
  466. b∙ addinτ zero≤ afte≥ thσ strinτ used«á  Aε examplσ ì
  467. of this was shown at the beginning of section 2.0.
  468.  
  469. Somσ oµ thσ string≤ indicateΣ arσ outpu⌠ iε responsσ ì
  470. t∩ embeddeΣ printe≥ contro∞ code≤ (^PA¼á ^PN¼ etc.)«  ì
  471. Thesσ arσ identifieΣ iε thσ prograφ comments«á  Somσ ì
  472. oµá thσá string≤á arσ outpu⌠á eacΦá timσá thσá prin⌠ ì
  473. contro∞ i≤ encountereΣ (^PQ¼á ^PW¼á ^PE¼á ^PR)¼ wil∞ ì
  474. thσá ribboε contro∞ (^PY⌐ output≤ thσ RIBBO╬á strinτ ì
  475. oεá thσ firs⌠ occurrence¼á anΣ output≤ thσ RIBOF╞á oε ì
  476. thσ second¼á alternatinτ bacδ anΣ forth«á  Thσ pitcΦ ì
  477. contro∞ code≤ arσ ß littlσ trick∙ t∩ use«á  Wordsta≥ ì
  478. tha⌠ i⌠ come≤ u≡ alread∙ iε standarΣ pitch¼ s∩ usinτ ì
  479. ß ^P╬ a⌠ thσ beginninτ oµ you≥ documen⌠ t∩ forcσ thσ ì
  480. printe≥ t∩ standarΣ pitcΦ wil∞ havσ n∩á effect«á  Iµ ì
  481. yo⌡á havσá firs⌠á useΣ thσ ^P┴ t∩á selec⌠á alternatσ ì
  482. pitch¼áá theεá ßá subsequen⌠á ^P╬á wil∞á outpu⌠á thσ ì
  483. specifieΣ strinτ (PSTD)«  Sincσ ╔ kee≡ m∙ printe≥ iε ì
  484. compresseΣá fo≥á al∞á othe≥á printing¼á ╔á useΣá thσ ì
  485. printe≥ initializatioε strinτ (PSINIT⌐ t∩ outpu⌠ thσ ì
  486. contro∞á codσ t∩ forcσ thσ printe≥ bacδ t∩á standarΣ ì
  487. pitch«á  Also¼á iµá yo⌡á havσ morσ thaεá ▓á possiblσ ì
  488. characte≥á pitchs¼á anΣá usσ onσ oµ thσá use≥á prin⌠ ì
  489. control≤á (likσá ^P╤ - USR1⌐ t∩á selec⌠á thσá pitch¼ ì
  490. Wordsta≥áá wil∞á stil∞á conside≥á itselµá t∩á bσá iε ì
  491. standarΣ pitch¼ anΣ wil∞ no⌠ d∩ anythinτ iµ yo⌡ theε ì
  492. specif∙ ^PN¼á unles≤ yo⌡ d∩ thσá following║á ^PA^PN«  ì
  493. Onσá fina∞ note║á Thσ Footnotσ prograφ froφá Osbornσ ì
  494. use≤ ^P┼ anΣ ^P╥ fo≥ it≤ owε interna∞ codes¼á s∩ yo⌡ ì
  495. shoulΣá avoiΣá programminτ thosσ string≤á (USR│á anΣ ì
  496. USR4⌐á iµ yo⌡ plaε t∩ usσ Footnote«á  Footnotσá als∩ ì
  497. use≤ thσ ^PY¼á bu⌠ onl∙ iε pairs¼á sidσ b∙ side¼á t∩ ì
  498. marδ aε inserteΣ "softó linσ feed«á  Iµ you≥ string≤ ì
  499. fo≥ RIBBO╬ anΣ RIBOFF¼á strunτ righ⌠ together¼á havσ ì
  500. n∩ ne⌠ effect¼ yo⌡ shoulΣ no⌠ havσ ß conflict.
  501.  
  502. Thσ othe≥ contro∞ string≤ whicΦ ma∙ bσ specifieΣ arσ ì
  503. generateΣá b∙ Wordsta≥ iε certaiεá situations«á  Yo⌡ ì
  504. ma∙á specif∙á thσ contro∞ code≤ t∩ bσá sen⌠á t∩á thσ ì
  505. printe≥á t∩á star⌠á i⌠á (PSINIT)¼á afte≥á thσá prin⌠ ì
  506. sessioε (PSFINI)¼ afte≥ eacΦ linσ (PSCRLF)¼ o≥ afte≥ ì
  507. ß linσ whicΦ neeΣ t∩ bσ overprinteΣ (PSCR)«  Iµ you≥ ì
  508. printe≥ ha≤ specia∞ contro∞ code≤ fo≥ halµ linσ feeΣ ì
  509. o≥á superscript/subscript¼á yo⌡á ma∙ inser⌠ theφá iε ì
  510. PSHALF, ROLUP, and ROLDWN.  
  511.  
  512. Note║á ╔ thinδ yo⌡ ma∙ stil∞ havσ t∩ usσá Wordstar'≤ ì
  513. INSTAL╠á prograφ iµ yo⌡ wan⌠ t∩ selec⌠ ß daisy-whee∞ ì
  514. typσá printer«á  Iµ tha⌠ i≤ thσá case¼á ruεá INSTAL╠ ì
  515. before installing this patch procedure.
  516. .pa
  517. è3.░  INSTALLATIO╬ INSTRUCTIONS
  518.  
  519.  
  520. Yo⌡á ma∙á instal∞ eithe≥ onσ oµ thσá origina∞á patcΦ ì
  521. routines¼áá o≥áá ßá modifieΣá one¼áá witΦá followinτ ì
  522. instructions:
  523.  
  524. Placσ ß cop∙ -- repeat¼ cop∙ -- oµ WS.CO═ iε drivσ ┬ ì
  525. anΣ DDT.CO═ iε drivσ A«  A⌠ thσ A╛ prompt¼ type
  526.      B:
  527. A⌠ thσ B╛ prompt¼ type
  528.      A:DD╘ WS.COM
  529. No≈á placσá WSP2xxxx.HE╪ iε drivσá B«á  A⌠á DDT'≤á - ì
  530. prompt¼ type
  531.      IWSP2xxxx.HEX
  532.      R
  533. Thi≤ wil∞ causσ WSP2xxxx.HE╪ t∩ overla∙ (patch⌐ 
  534. WS.COM«  Nex⌠ reloaΣ WS.CO═ int∩ drivσ B«  Pres≤ 
  535. <CTRL-C>«  A⌠ thσ B╛ prompt¼ type
  536.      SAV┼ 5╢ WS.COM
  537.  
  538.  
  539. Notσá tha⌠ i⌠ i≤ n∩ longe≥ necessar∙ t∩ usσ SETU╨ t∩ ì
  540. se⌠ thσ arro≈ key≤ fo≥ Wordstar¼á sincσ thσá patcheΣ ì
  541. versioεá wil∞á automaticall∙ se⌠ thσ arro≈á key≤á t∩ ì
  542. Wordsta≥ oε entry¼ anΣ wil∞ se⌠ theφ bacδ t∩ CP/═ oε ì
  543. exit«á  Also¼á iµá yo⌡á arσ usinτ smootΦá scrolling¼ ì
  544. WSFAS╘á requireΣá yo⌡ t∩ usσ SETU╨ t∩ se⌠á thσá aut∩ ì
  545. horizonta∞á scrol∞ off¼á bu⌠ thi≤ ne≈á versioεá wil∞ ì
  546. disablσ i⌠ automatically«  Yo⌡ wil∞ no≈ onl∙ neeΣ t∩ ì
  547. usσá SETU╨ t∩ configurσ thσ printer¼á anΣ t∩ se⌠ thσ ì
  548. functioε keys«  ╔ jus⌠ usσ ß functioε ke∙ configureΣ ì
  549. a≤ B:<CR>A:WS<CR╛ t∩ star⌠ Wordstar¼ whicΦ bring≤ i⌠ ì
  550. up logged to the B: drive.
  551. : drive.
  552.