home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG075.ARC / ANYCODE.DOC < prev    next >
Text File  |  1979-12-31  |  17KB  |  420 lines

  1.                                 ANYCODE
  2.  
  3.                        Original by : Doug Hurst
  4.                        Modified by : C.G. SIEBEN
  5.  
  6.      PLEASE!íá  Givσá thi≤á articlσá ß looδ eveε iµá i⌠á seem≤á somewha⌠ ì
  7. complicated«á  I⌠ i≤ ß useful¼á valuablσ modificatioε t∩ WordSta≥ anΣ i≤ ì
  8. quitσ simplσ iµ yo⌡ wil∞ takσ i⌠ ste≡ b∙ step«  
  9.  
  10. VALUE«á  Make≤á WordSta≥ morσ powerfu∞ anΣ tex⌠ file≤ morσ flexiblσá anΣ ì
  11. portable«á  ANYCOD┼á doe≤á thi≤ withou⌠ enlarginτ thσ sizσ oµá thσá maiε ì
  12. WordSta≥á prograφ WS.COM«á Thi≤ i≤ ß ver∙ importan⌠ point«á  B∙á keepinτ ì
  13. WS.CO═á confineΣá t∩ it≤ "stockó size¼á i⌠ ma∙ installeΣ o≥á reinstalleΣ ì
  14. usinτá INSTALL.CO═á a⌠á wil∞ withou⌠ affectinτ o≥á havinτá t∩á reinstal∞ ì
  15. ANYCODE.
  16.  
  17. INTRODUCTION.
  18.  
  19.      Thσ EPSO╬ FX¼á M╪ (w/Graftrax⌐ anΣ R╪ series¼ a≤ wel∞ a≤ man∙ othe≥ ì
  20. brand≤ oµ printers¼ havσ man∙ morσ mode≤ oµ operatioε availablσ thaε caε ì
  21. bσ accesseΣ b∙ ß normall∙ installeΣ WordStar¼á eveε iµ onσ use≤ al∞á thσ ì
  22. built-iε anΣ use≥ defineΣ prin⌠ contro∞ codσ facilitie≤ available«á  No⌠ ì
  23. onl∙á caεá thesσ built-iε anΣ use≥ defineΣ code≤ NO╘ kee≡ pacσ witΦá thσ ì
  24. printer'≤á capability¼á oncσ installed¼á the∙ arσ no⌠ alterablσá withou⌠ ì
  25. usinτá DDT/SID.CO═á o≥á WordStar'≤á INSTALL.COM«áá  Therσá arσáá severa∞ ì
  26. commerciall∙á availablσ program≤ tha⌠ wil∞ le⌠ yo⌡ senΣ al∞ thσá contro∞ ì
  27. code≤ ß printe≥ wil∞ accept«  The∙ diffe≥ froφ thσ onσ presenteΣ iε thi≤ ì
  28. articlσá iεá tha⌠ thi≤ onσ i≤ free«á  Thi≤ articlσ i≤ als∩á designeΣá t∩ ì
  29. servσá thσ dua∞ purposσ oµ displayinτ ho≈ mucΦ untappeΣ potentia∞á therσ ì
  30. i≤ iε standarΣ WordStar« 
  31.  
  32. USING ANYCODE.
  33.  
  34.      Beforσá gettinτ int∩ thσ codinτ anΣ installatioε oµ ANYCODE¼á i⌠ i≤ ì
  35. importan⌠ t∩ seσ wha⌠ thσ outcomσ oµ you≥ effort≤ wil∞ be«á  Thi≤á will¼ ì
  36. i⌠á i≤ hoped¼á piquσ you≥ interes⌠ anΣ kee≡ yo⌡ froφ givinτ up«á  Iµ yo⌡ ì
  37. regularl∙ usσ ß WordSta≥ witΦ CHARTEC╚ o≥ simila≥ prograφ installed¼ yo⌡ ì
  38. alread∙ posses≤ thσ functioε tha⌠ ANYCOD┼ wil∞ perform«á  You'rσ welcomσ ì
  39. t∩ continuσ anyway«á  A≤ mentioneΣ earlier¼ ß nicσ featurσ oµ ANYCOD┼ i≤ ì
  40. tha⌠ i⌠ doe≤ no⌠ enlargσ thσ sizσ oµ WS.CO═ a≤ man∙ simila≥ commerciall∙ ì
  41. availablσ product≤ do.
  42.  
  43.      Oncσ installed¼ usσ oµ ANYCOD┼ code≤ ha≤ thσ samσ functiona∞ effec⌠ ì
  44. a≤á WordStar'≤ prin⌠ contro∞ codes«á  InsteaΣ oµ embeddinτ theφá iεá thσ ì
  45. tex⌠ witΦ ß prin⌠ contro∞ codσ sucΦ a≤ ^PS¼á however¼á yo⌡ ente≥ ANYCOD┼ ì
  46. ver∙á mucΦ a≤ thσ code≤ actuall∙ appea≥ iε you≥ printer'≤ user'≤ manual«  ì
  47. ANYCOD┼á codes¼á however¼á arσ no⌠ invisiblσ t∩ thσá editor«á  Iεá othe≥ ì
  48. words¼á wheεá yo⌡ placσ ANYCODE'≤ code≤ iε you≥ text¼á the∙ arσá treateΣ ì
  49. jus⌠ likσ norma∞ tex⌠ b∙ WordStar«á  Thi≤ mean≤ the∙ wil∞ bσ includeΣ iε ì
  50. sucΦ function≤ a≤ wordwra≡ anΣ paragrapΦ reformatting«  Fo≥ thi≤ reason¼ ì
  51. i⌠ i≤ suggesteΣ tha⌠ yo⌡ ente≥ al∞ you≥ text¼á ge⌠ i⌠ formatteΣ jus⌠ thσ ì
  52. wa∙ yo⌡ want¼ theε g∩ bacδ anΣ inser⌠ thσ ANYCOD┼ codes« 
  53.  
  54.  
  55.      Thi≤á ma∙á forcσ yo⌡ t∩ usσ thσ ^O╪ (releasσ margin⌐á commanΣá morσ ì
  56. thaεá yo⌡á arσ useΣ t∩ (somσ line≤ wil∞ extenΣ fa≥ beyonΣá thσá margin)«  ì
  57. Thi≤á shoulΣá bσ oµ n∩ concerε t∩ yo⌡ thougΦ becausσ ANYCOD┼á code≤á arσ ì
  58. non-printinτ jus⌠ likσ WordStar'≤ prin⌠ contro∞ codes«á  Thσ actua∞ linσ ì
  59. wil∞ fi⌠ withiε thσ margin≤ iµ i⌠ diΣ prio≥ t∩ codσ insertion.
  60.  
  61.      ANYCOD┼ code≤ wil∞ usuall∙ takσ onσ oµ thσ threσ form≤ showε below¼ ì
  62. jus⌠ a≤ mos⌠ printer≤ accep⌠ code≤ iε onσ oµ thesσ threσ forms.
  63.  
  64. straight hex code
  65. escape + hex code
  66. escapσ + he° codσ + traile≥ code 1 + traile≥ code 2....+ trailer code n
  67.  
  68. Belo≈ arσ ANYCOD┼ example≤ oµ eacΦ typσ fo≥ EPSO╬ printers:
  69.  
  70. `0F     Would transmit 0Fh (turn condensed print mode on).
  71. ~45     Would transmit <ESC>,45h (turn emphasized print on).
  72. ~2D`0▒  WoulΣ transmi⌠ <ESC>,2Dh,0▒ (turε oε continuou≤ ì
  73.         underline).
  74.  
  75.      A≤ ß furthe≥ example¼á ß shor⌠ sectioε oµ text¼ firs⌠ withou⌠ code≤ ì
  76. anΣ theε witΦ ANYCOD┼ code≤ embedded.
  77.  
  78. Dear Bob,
  79.      Just wanted to let you know I was thrilled with the modified 
  80. BIOS you sent me.  It worked SUPER.
  81.  
  82. Dear Bob,
  83.      Just wanted to let you know I was ~34thrilled~35 with the modified 
  84. ~2D`01BIOS~2D`00 you sent me.  It worked `0ESUPER!`14.
  85.  
  86.      Iε thσ lowe≥ examplσ witΦ thσ embeddeΣ (agaiε EPSON⌐ codes¼ ~3┤ anΣ ì
  87. ~3╡á turε italic≤ on/off¼á ~2D`0▒ anΣ ~2D`0░ turn≤ underlinσ on/ofµá anΣ ì
  88. `0┼ anΣ `1┤ turε expandeΣ prin⌠ on/off.
  89.  
  90.      Noticσá ho≈á thσá firs⌠ linσ no≈ extend≤ pas⌠á thσá norma∞á margin«  ì
  91. Again¼á i⌠ WIL╠ NO╘ wheε thσ printinτ actuall∙ take≤ placσ sincσ ANYCOD┼ ì
  92. codσ i≤ non-printing.
  93.  
  94.      Herσ arσ ß wrong¼ theε ß righ⌠ examplσ oµ ANYCOD┼ syntax.
  95.  
  96. WRONG
  97.  
  98. `FNo≈ i≤ thσ timσ fo≥ ......« thσ aiΣ oµ thei≥ countries.`12
  99.  
  100.      Meaninτ t∩ turε compresseΣ prin⌠ on/off«á  N∩ zer∩ ░ betweeε thσá α ì
  101. anΣ ╞ a⌠ beginninτ oµ thσ sentence«  PROMISEí Thi≤ wil∞ no⌠ work.
  102.  
  103. RIGHT
  104.  
  105. `0FNo≈ i≤ thσ timσ fo≥ ......« thσ aiΣ oµ thei≥ countries.`12
  106.   
  107. PROMISEí Thi≤ wil∞ work.
  108.  
  109.      Iµá yo⌡á haven'⌠ seeε thσ obviou≤ advantagσ t∩ sendinτ thσá printe≥ ì
  110. code≤á iε thσ ANYCOD┼ forma⌠ ove≥ WordStar'≤ code≤ yet¼á herσá arσá two«  ì
  111. First¼ yo⌡ caε senΣ an∙ codσ t∩ thσ printer«  (Okay¼ thσ cat≤ ou⌠ oµ thσ ì
  112. bag¼á no≈ yo⌡ kno≈ wherσ thσ namσ oµ thσ prograφ camσ from.⌐ Second¼ sa∙ ì
  113. yo⌡ prepareΣ thσ documen⌠ oε you≥ Microbeσ whicΦ i≤ installeΣ witΦ Prin⌠ ì
  114. Control≤ t∩ senΣ EPSO╬ codes«  Thσ compute≥ a⌠ work¼ however¼ i≤ drivinτ ì
  115. ß NE├ printer«á  WitΦ ANYCOD┼ code≤ embeddeΣ iε thσ text¼ wouldn'⌠ i⌠ bσ ì
  116. eas∙á t∩ usσ thσ FinΣ anΣ Replacσ (^QA⌐ commanΣ t∩ finΣ thσ EPSO╬á code≤ ì
  117. anΣ substitutσ NE├ codes┐  Answe≥ ye≤ s∩ wσ caε continue.
  118.  
  119.  
  120.      Therσ arσ ß fe≈ cautions¼ anΣ yo⌡ ma∙ a≤ wel∞ kno≈ theφ now«  
  121.  
  122.           1«á Usσ al∞ capita∞ letter≤ ¿ `0A¼ NO╘ `0ß )¿ anΣ that'≤  zer∩ ì
  123. no⌠ o ).
  124.           2«á EacΦá he° codσ mus⌠ bσ tw∩ digits«á ( ╡ entereΣ a≤á 05¼á ┼ ì
  125. entereΣ a≤ 0E¼ etc. )
  126.           3«á Duσá t∩ spacσ limitation≤ anΣ ß desirσ oε thσ par⌠ oµ  thσ ì
  127. autho≥ t∩ kee≡ ANYCOD┼ confineΣ t∩ thσ MORPAT║á areß (explaineΣá later)¼ ì
  128. n∩ provision≤ werσ madσ t∩ bσ ablσ t∩ prin⌠ thσ lead-iε character≤ α anΣ ì
  129. ~«á  Iµá yo⌡á usσá eithe≥ oµ thesσ character≤ frequentl∙á iεá you≥á worΣ ì
  130. processinτ operations¼ yo⌡ shoulΣ conside≥ pickinτ othe≥ character≤ tha⌠ ì
  131. yo⌡á d∩á no⌠ usσ often«á  Thσ comment≤ t∩ ANYCODE.AS═ indicatσ wherσá t∩ ì
  132. makσ substitution≤ t∩ thσ defaul⌠ lead-iε characters.
  133.           4«á Thσá MORPAT║á areßá mus⌠ bσ free«á  Late≥  iε thσá articlσ ì
  134. DDT.CO═ i≤ useΣ t∩ makσ somσ modification≤ t∩ WordSta≥ anΣ checδ t∩á seσ ì
  135. tha⌠ thσ MORPAT║ areß i≤ clear«  Iµ i⌠ i≤ not¼ ABORTí  
  136.           5«á ANYCOD┼ a≤ installeΣ belo≈ i≤ fo≥ WordStar'≤ installeΣ  t∩ ì
  137. usσá thσ CP/═ Primar∙ Lis⌠ Device«á  Yo⌡ caε checδ thi≤ wheεá yo⌡á firs⌠ ì
  138. boo⌠á WordSta≥á anΣá observσá thσ sign-oε messagσ ¿á Als∩á wheεá runninτ ì
  139. INSTALL.CO═á oε WordStar¼á checδ thσ labe∞ CSWTCH:«á  I⌠ mus⌠ bσ 0░á fo≥ ì
  140. ANYCOD┼ t∩ bσ guaranteeΣ t∩ worδ )«  
  141.  
  142.      Follo≈á thσá simplσá rule≤ laiΣ ou⌠ above¼á anΣ yo⌡á wil∞á havσá n∩ ì
  143. problem«  No≈ fo≥ thσ work.
  144.  
  145.  
  146. WHA╘ D╧ W┼ MODIF┘ AN─ WHER┼ D╧ TH┼ MODIFICATION╙ GO?
  147.  
  148.      Withiε WordSta≥ therσ i≤ aε areß labeleΣ MORPAT║á tha⌠ contain≤ 12╢ ì
  149. empt∙á byte≤á anΣá exist≤á fo≥ thσ solσ purposσá oµá use≥á defineΣá sub-ì
  150. routines«  ANYCOD┼ wil∞ bσ installeΣ iε thi≤ MORPAT║ area.
  151.  
  152.      Wherσá i≤ thσ MORPAT║á area┐á  Fo≥ threσ WordSta≥ version≤ knowε t∩ ì
  153. havσ ANYCOD┼ successfull∙ installed¼á i⌠ reside≤ a⌠ thσ addresse≤á showε ì
  154. below:
  155.  
  156.                             WordSta≥ Version
  157.  
  158.                    2.26           3.0            3.3
  159.  
  160.                   02DEh          02DEh          02BBh
  161.  
  162. THE CODE AND ASSEMBLY.
  163.  
  164.      Thσá comment≤á t∩á thσá codσá ma∙ seeφ ßá littlσá cryptiπá s∩á thi≤ ì
  165. narrativσá explanatioε i≤ supplieΣ iε advance«á  Wσ wil∞ modif∙á onσá oµ ì
  166. WordStar'≤á printe≥á driver≤ t∩ diver⌠ al∞ character≤ t∩ bσ sen⌠ t∩á thσ ì
  167. CP/═ Primar∙ Lis⌠ Devicσ t∩ ou≥ ANYCOD┼ subroutine«á  EacΦ characte≥á i≤ ì
  168. firs⌠á checkeΣ t∩ seσ iµ i⌠ i≤ aε ANYCOD┼ lead-iε character«á  Iµ i⌠ is¼ ì
  169. i⌠á i≤ stored¼á ß flaτ i≤ se⌠ anΣ thσ nex⌠ characte≥ i≤á read«á Iµá thi≤ ì
  170. characte≥ wasn'⌠ ß lead-iε character¼á i⌠ i≤ checkeΣ t∩ seσ iµ i⌠ i≤ thσ ì
  171. firs⌠ o≥ seconΣ characte≥ followinτ ß lead-iε character«á  Iµ i⌠ wasn't¼ ì
  172. i⌠á i≤á sen⌠á ou⌠á t∩ thσ primar∙ lis⌠ devicσá normally«á  Iµá thσá leaΣ ì
  173. characte≥á i≤á beinτ storeΣ anΣ thσ flaτ i≤ set¼á i⌠ mean≤á thσá curren⌠ ì
  174. characte≥ i≤ thσ firs⌠ characte≥ followinτ thσ leaΣ character«  Thσ flaτ ì
  175. i≤á lowered¼á anΣá thσ characte≥ processeΣ t∩ becomσ halµ oµá thσá tota∞ ì
  176. follow-oε code«á  Theε thσ las⌠ characte≥ i≤ read«  I⌠ to∩ i≤ checkeΣ t∩ ì
  177. seσá iµá i⌠ i≤ ß lead-iε characte≥ o≥ i≤ thσ firs⌠ o≥á seconΣá follow-oε ì
  178. character«á  Iµ i⌠ i≤ thσ seconΣ follow-oε character¼ i⌠ i≤ addeΣ t∩ thσ ì
  179. firs⌠á follow-oεá character¼á anΣá thσ resul⌠ sen⌠ t∩á thσá lis⌠á devicσ ì
  180. (printer)«á  Iµ yo⌡ didn'⌠ understanΣ mos⌠ oµ tha⌠ don'⌠ worr∙ abou⌠ it«  ì
  181. Understandinτ i≤ no⌠ ß requiremen⌠ fo≥ ANYCOD┼ t∩ work.
  182.  
  183.      T∩á assemblσ thσ ANYCODE.AS═ code¼á placσ you≥ CP/═ systeφ disδá iε ì
  184. drivσá ┴á anΣá thσ disδ containinτ ANYCODE.AS═ iε drivσá B«á  Ente≥á thσ ì
  185. followinτ commanΣ linσ froφ thσ A╛ prompt:
  186.  
  187. A>ASM ANYCODE.ASM
  188.  
  189.      Afte≥ assembly¼á yo⌡ shoulΣ bσ lef⌠ witΦá ANYCODE.ASM¼á ANYCODE.HE╪ ì
  190. anΣ ANYCODE.PR╬ oε drivσ B.
  191.  
  192. INSTALLATION:
  193.  
  194.      Very¼á ver∙ simple«á  AlthougΦ havinτ al∞ thesσ file≤ presen⌠ isn'⌠ ì
  195. necessary¼áá placσáá WS.COM¼áá WSMSGS.OVR¼áá WSOVLY1.OVR¼áá MAILMRGE.OV╥ ì
  196. (MRGEPRIN.OVR)¼á DDT.CO═á anΣ ANYCODE.HE╪ oε ß SYSGEN'Σ disδ iε drivσ A« ì
  197. ¿ Remembe≥ ANYCODE.HE╪ wa≤ generateΣ b∙ thσ assembl∙ oµ ANYCODE.ASM)«  
  198.  
  199. Wheε yo⌡ havσ performeΣ thi≤ task¼ ente≥ thσ following:
  200.  
  201.     Version 2.26             Version 3.0              Version 3.30
  202.  
  203. A>DDT WS.COM<RETURN>     A>DDT WS.COM<RETURN>     A>DDT WS.COM<RETURN>
  204.  
  205. You should see:
  206.  
  207. A>DDT WS.COM             A>DDT WS.COM             A>DDT WS.COM         
  208. DDT Vers 2.2             DDT Vers 2.2             DDT Vers 2.2     
  209. NEXT  PC                 NEXT  PC                 NEXT  PC
  210. 400░ 010░                3F00 0100                4600 0100ì
  211. -                        -                        -
  212.  
  213.  
  214.      Thσ MORPAT║á areß mus⌠ bσ clear«á So¼á froφ thσ "-ó promp⌠ typσ thσ ì
  215. following:
  216.  
  217.      Version 2.26             Version 3.0              Version 3.30
  218.  
  219.     -d2de<RETURN>            -d2de<RETURN>            -d2bb<RETURN>   
  220.  
  221.      Yo⌡á shoulΣ seσ somethinτ likσ thσ followinτ provideΣá you≥á WS.CO═ ì
  222. ha≤ no⌠ beeε previousl∙ modifieΣ b∙ anothe≥ add-oε program«  Iµ therσ i≤ ì
  223. anythinτ beside≤ zero≤ iε thi≤ area¼á ABORT!«  You≥ WordSta≥ ha≤ alread∙ ì
  224. beeεá modifieΣ b∙ someone«á  Continuinτ wil∞ overwritσ thσ codσ iεá thi≤ ì
  225. area« 
  226.  
  227. 02BB 00 00 00 00 00 ..... (WS.COM 2.26 and 3.0 will start at 02DE)
  228. 02C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  229. 02D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  230. 02E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  231.  
  232.                   .... Repeated ....
  233.  
  234.      You may find information from 034B onwards but ignore this.
  235. -
  236.  
  237. Now, from the "-" prompt type the following:
  238.  
  239. -IANYCODE.HEX<RETURN>
  240. -R<RETURN>
  241.  
  242. Now type:
  243.  
  244. -d2bb<RETURN>    (WS.COM 2.26 and 3.0 type -d2de<RETURN>) 
  245.  
  246. Yo⌡ shoulΣ seσ somethinτ likσ this║ ì
  247.  
  248. 02BB FE 60 C2 23 01 .`.#. ( WS 2.26 and 3.0 will start at 02DE )
  249. 02C0 32 92 01 3E 01 32 93 01 C9 FE 7E C2 35 01 32 92 2..>.2....~.5.2.
  250. 02D0 01 3E 01 32 93 01 3E 1B C3 8B 01 47 3A 92 01 FE .>.2..>....G:...
  251. 02E░ 6░ 7╕ C┴ 4├ 0▒ 4╖ 3┴ 9▓ 0▒ F┼ 7┼ 7╕ C┴ 4├ 0▒ C│ `x.L.G:...~x.L..
  252. 02F0 8B 01 47 3A 93 01 fE 00 78 CA 70 01 47 3E 00 32 ..G:....x.p.G>.2
  253. 0300 93 01 78 FE 39 FA 64 01 D6 07 D6 30 07 07 07 07 ..X.9.D....0....
  254. 031░ E╢ F░ 3▓ 9┤ 0▒ C╣ 4╖ 3┼ 0░ 2▒ 9▓ 0▒ 7╖ 2│ 7╖ 7╕ ..2...G>.!..w#wx
  255. 0320 FE 39 FA 81 01 D6 07 D6 30 21 94 01 46 80 C3 8B .9......0!..F...
  256. 0330 01 0e 05 5F CD 05 00 C9 00 00 00 00 00 00 00 00 ................
  257. 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
  258.                ......
  259.  
  260.      Thσá codσá fo≥ ANYCOD┼ no≈ reside≤ iε thσ MORPAT║á areßá previousl∙ ì
  261. occupieΣ b∙ al∞ thosσ 00's.
  262.  
  263.      Thσ las⌠ modificatioε insidσ WS.CO═ i≤ t∩ alte≥ thσ printe≥á drive≥ ì
  264. t∩á jum≡á t∩á ou≥á sub-routinσ rathe≥ thaε simpl∙á senΣá eacΦá characte≥ ì
  265. directl∙á t∩á thσ primar∙ lis⌠ device«á  Wσ d∩ thi≤ b∙á overwritinτá thσ ì
  266. assembl∙ languagσ startinτ a⌠ thσ addres≤ correspondinτ t∩ you≥á versioε ì
  267. oµ WS.COM.
  268.  
  269. Version 2.26             Version 3.0              Version 3.30
  270.  
  271. -a71d                    -a71d                    -a71c              
  272. 071D  call     2de       071D  call     2de       071C  call     2bb 
  273. 0720  jmp      723       0720  jmp      723       071f  jmp      722 
  274. 0723  <RETURN>           0723  <RETURN>           0722  <RETURN>     
  275. -                        -                        -                  
  276.  
  277.  
  278.      Aεá optiona∞ modificatioε i≤ t∩ alte≥ thσ Wordsta≥ Headinτ t∩á sho≈ ì
  279. tha⌠ thi≤ i≤ ß modifieΣ versioε oµ Wordstar« Thi≤ ha≤ onl∙ beeε donσ fo≥ ì
  280. versioεá 3.3░ bu⌠ thσ othe≥ version≤ shoulΣ bσ thσ same«á I⌠ attempt≤ t∩ ì
  281. alter the word "Release" to "ANYCODE" in the Wordstar Heading.
  282.  
  283. -d100       Use this command to check heading present from ASCII list
  284. -s163
  285. 0163 52 41     - Enter 41
  286. 0164 65 4E
  287. 0165 6C 59
  288. 0166 65 43
  289. 0167 61 4F
  290. 0168 73 44
  291. 0169 65 45
  292. 0170 20 .
  293. -
  294. -d100     Check wording has changed to read ANYCODE 3.30
  295.  
  296.  
  297. To close out, type:
  298.  
  299. -G0<RETURN>  or  -^C
  300.  
  301. Then type 
  302.  
  303. A>save XX WS.COM         ( Where xx = 69 for Version 3.3, 63 for
  304.                            versioε 2.26¼ 62 fo≥ versioε 3.0 )
  305.  
  306.      That'≤ ití  Yo⌡ ma∙ no≈ erasσ ANYCODE.HE╪ anΣ DDT.CO═ froφ thσ disδ ì
  307. containinτ thσ WS.CO═ yo⌡ jus⌠ modified.
  308.  
  309.      Belo≈á i≤ ß tes⌠ filσ fo≥ EPSO╬ printers«á  Iµ yo⌡ havσ ß differen⌠ ì
  310. printe≥ type¼ consul⌠ you≥ user'≤ manua∞ anΣ substitutσ simila≥ workablσ ì
  311. codes.
  312.  
  313. *******************************************************************
  314.  
  315. `0FCompressed print`12        (All)
  316.  
  317. `0EExpanded print`14            "
  318.  
  319. ~45Emphasized~46                "
  320.  
  321. ~34Italic print mode~35       (MX w/Graftrax ,FX, RX only)
  322.  
  323. ~2D`01Continuous underline~2D`00          "
  324.  
  325. ~53`01Sub~48~54`01script                  "   
  326.  
  327. ~53`00Super~48~54`01script                "
  328.  
  329. *******************************************************************
  330.  
  331.  
  332. ; ANYCODE.ASM - A program to allow printer codes to be 
  333. ;            transmitted to EPSON or other dot matrix 
  334. ;            printer from within WordStar text.
  335. ;
  336. ;        Author:  D. M. Hurst
  337. ;        Date:    March 3, 1984
  338. ;        Modified : C.G. Sieben Jan 87
  339. ;             Allowed Upper/Lower Case commands
  340. ;             Tidy code
  341. ;
  342. LEADCH    equ    '`'    ;Hex lead in character
  343. ESCHAR  equ     '~'    ;Escape lead in character
  344. ;
  345. ;    ORG    02DEh    ;WS 2.26/3.0 (02DEh) 
  346.     ORG    02BBh    ;WS 3.3 (02BBh)
  347. ;
  348. mysub:    cpi    LEADCH    ;is it a code character?
  349.     jnz    ncheck    ;no, so next check
  350.     sta    lead    ;yes, so store temporarily
  351.     mvi    a,1    ;get a 1 in accumulator
  352.     sta    fl    ;set fl flag
  353.     ret        ;get another character
  354.             ;without printing
  355. ncheck: cpi    ESCHAR    ;is it other code character?
  356.     jnz    hcheck    ;no, so check if part of
  357.             ;code sequence
  358.     sta    lead    ;yes so store temporarily 
  359.     mvi    a,1    ;get a 1 in accumulator
  360.     sta    fl    ;set fl flag
  361.     mvi    a,1bh    ;escape required so 
  362.     jmp    pout    ;send it.
  363. hcheck: mov    b,a    ;set input char aside
  364.     lda    lead    ;get contents of lead
  365.     cpi    LEADCH    ;are we in a code seq?
  366.     mov    a,b    ;char back in accumulator
  367.     jz    flchk    ;yes, so check if flag set
  368.     mov    b,a    ;no, so char back to b
  369.     lda    lead    ;check lead again
  370.     cpi    ESCHAR    ;are we in a code seq?
  371.     mov    a,b    ;char back in accumulator
  372.     jz    flchk    ;yes, so check if flag set    
  373.     jmp    pout    ;no, so print char normally
  374. flchk:    mov    b,a    ;set char aside again
  375.     lda    fl    ;get fl flag
  376.     cpi    00h    ;1 if set set
  377.     mov    a,b    ;char back in accumulator
  378.     jz    addsnd    ;not set, so last char in seq
  379.     mov    b,a    ;yes, so set char aside again        
  380.     mvi    a,00h    ;no, so place 00h in accumulator
  381.     sta    fl    ;and lower the flag
  382.     mov    a,b    ;char back in accumulator    
  383.         cpi    39h    ;is code char a letter?
  384.         jm    nolet1  ;no, so never mind 
  385.         sui    07h    ;yes, so make it a numberè
  386. nolet1:    sui    30h    ;now down it form ASCII
  387.     rlc        ;first char in code so 
  388.     rlc        ;move 4 low bits to high
  389.     rlc
  390.     rlc
  391.     ani    0f0h    ;0 4 lower bits
  392.     sta    first    ;store it
  393.     ret        ;go get second char code
  394. addsnd:    mov    b,a    ;set 2nd code char aside
  395.     mvi    a,00    ;0 the accumulator
  396.     lxi    h,lead    ;get lead addr pointer in hl
  397.     mov    m,a    ;0 out the lead
  398.     inx    h    ;up the hl
  399.     mov    m,a    ;also 0 the flag
  400.     mov    a,b    ;get char back
  401.     cpi    39h    ;was 2nd code char a letter?
  402.     jm    nolet2    ;if not then skip it
  403.     ANI    05FH    ;Upper case it first
  404.     sui    07h    ;yes so make it a number
  405. nolet2:    sui    30h    ;now down either from ASCII
  406.     lxi    h,first    ;point to first code char addr
  407.     mov    b,m    ;move actual char to b
  408.     add    b    ;add a to b (result in a)
  409. pout:    mvi    c,5    ;print full code char
  410.     mov    e,a
  411.     call    5
  412.     ret        ;back for next real char
  413. ;
  414. lead    ds    1    ;space for lead code
  415. fl    ds    1    ;flag space
  416. first    ds    1    ;store first code while
  417.             ;waiting for 2nd to pro-
  418.             ;cess.
  419.     end
  420.