home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / utilities / editors / textra / scripts / tutorial.textra < prev    next >
Text File  |  1993-01-05  |  24KB  |  635 lines

  1.     /*******************************************************************
  2.      *   TEXTRA AREXX script -- Mike Haas, ©1993, All Rights Reserved. *
  3.      * Freely distributable ONLY as a component of the TEXTRA package. *
  4.      * This banner may not be removed or altered (improvements to the  *
  5.      *    actual program welcome).  Please document and send to me.    *
  6.      *        !!! PLACE THIS FILE IN YOUR REXX: DIRECTORY !!!          *
  7.      *******************************************************************/
  8.  
  9. /* Tutorial for TEXTRA (v1.13 required)
  10.  *
  11.  * by Mike Haas
  12.  *
  13.  * This script is a training aid to give the user a sense of the
  14.  * user-interface of the editor.
  15.  *
  16.  * It accepts one optional argument... if the keyword "delay" is
  17.  * supplied, the Tutorial will delay between text pieces spilled
  18.  * to the screen as a 'pacing' mechanism.
  19.  *
  20.  */
  21.  
  22. OPTIONS results
  23.  
  24. rex = 0; result = "NOTSUPPORTED"    /*00002*/
  25. textraversion
  26. parse var result maj min rex
  27. if (result == "NOTSUPPORTED") | (rex < 5) then do
  28.     notify "Textra 1.13 or later required to run this script."
  29.     exit
  30. end
  31.  
  32. parse arg delay
  33.  
  34. openfile "ram disk:Textra Tutorial"; tutwin = result
  35. clear
  36.  
  37. if (tutwin == 0) then do
  38.    notify "Can't open the window"
  39.    exit
  40. end
  41.  
  42. prefs autoindent read
  43. wasai = result
  44. prefs autoindent off
  45.  
  46.  
  47.  
  48. quitflag = 0
  49.  
  50. do while (quitflag == 0)
  51.     clear
  52.     newline
  53.     textn '"                 Welcome to the Textra Tutorial"'
  54.     textn '"                 =============================="'
  55.     newline;newline
  56.     textn '"                   A - All topics in sequence"'
  57.     newline
  58.     textn '"    1 - Introduction                  2 - Provided documentation"'
  59.     textn '"    3 - Using the mouse               4 - Positioning the cursor"'
  60.     textn '"    5 - Selecting ranges of text      6 - The window scroll bars"'
  61.     textn '"    7 - Working with selected text    8 - Textra Preferences"'
  62.     textn '"    9 - Textra and Fonts             10 - The ARexx Interface"'
  63.     newline
  64.     textn '"                  R - Registration Information"'
  65.     newline
  66.     textn '"                        X - Exit tutorial"'
  67.     newline;newline
  68.     response = getreturn('"                         Choose a topic: "')
  69.     
  70.     parse var response stx sty endx endy
  71.     gotoxy stx sty;selectto endx endy
  72.     get select text;parse var result numleft' 'theSelection
  73.     if (numleft == 0) then do
  74.         if ((theSelection == "A") | (theSelection == "a")) then
  75.             call DoSequence
  76.         if (theSelection == 1) then
  77.             call DoIntro
  78.         if (theSelection == 2) then
  79.             call DoDocs
  80.         if (theSelection == 3) then
  81.             call DoMouseInfo
  82.         if (theSelection == 4) then
  83.             call DoPositionCursor
  84.         if (theSelection == 5) then
  85.             call DoSelectRanges
  86.         if (theSelection == 6) then
  87.             call DoScrollBars
  88.         if (theSelection == 7) then
  89.             call DoSelectTextInfo
  90.         if (theSelection == 8) then
  91.             call DoPrefs
  92.         if (theSelection == 9) then
  93.             call DoFonts
  94.         if (theSelection == 10) then
  95.             call DoARexx
  96.         if ((theSelection == "R") | (theSelection == "r")) then
  97.             call DoReg
  98.         if ((theSelection == "X") | (theSelection == "x")) then do
  99.             prefs autoindent wasai
  100.             CloseWindow
  101.             exit
  102.         end
  103.     end
  104. end
  105.  
  106. exit
  107.  
  108.  
  109. DoSequence:
  110.     call DoIntro
  111.     call DoDocs
  112.     call DoMouseInfo
  113.     call DoPositionCursor
  114.     call DoSelectRanges
  115.     call DoScrollBars
  116.     call DoSelectTextInfo
  117.     call DoPrefs
  118.     call DoFonts
  119.     call DoARexx
  120.     call DoReg
  121. return
  122.  
  123.  
  124. DoIntro:
  125. clear;wfs=waitforsub(1);newline;newline
  126. textn '"                Welcome to TEXTRA V1.13!"'
  127. wfs=waitforsub(2)
  128. newline
  129. textn '"     This tutorial is designed to give you a feel for"'
  130. textn '"     what Textra can do by guiding you through some of"'
  131. textn '"     its basic editing operations and features."'
  132. wfs=waitforsub(2)
  133. newline
  134. textn '"     Occasionally, the tutorial will suggest some things"'
  135. textn '"     to try.  As the editor functions independantly of this"'
  136. textn '"     ARexx tutorial, you may try them immediately.  Simply"'
  137. textn '"     press RETURN when done, as prompted."'
  138. wfs=waitforsub(2)
  139. newline
  140. text  '"     Like now..."';
  141. wfs=waitforsub(2)
  142. response = getreturn('"    Please hit the RETURN key..."')
  143.  
  144. clear;wfs=waitforsub(1);newline;newline
  145. textn '"                    What is TEXTRA?"'; newline
  146. newline
  147. wfs=waitforsub(1)
  148. text '"     "';textn "It's an easy-to-use, powerful text editor.";
  149. newline
  150. wfs=waitforsub(2)
  151. textn '"     A great deal of effort has been put into making the user"';
  152. text  '"     interface... "';wfs=waitforsub(1);text '"well... "';wfs=waitforsub(1);
  153. textn '"easy-to-use AND powerful."';
  154. newline
  155. wfs=waitforsub(1)
  156. textn '"     Working with the Textra menus, keyboard and ARexx scripts"'
  157. textn '"     is about the best way to get to know it.  Experimentation"'
  158. textn '"     (and registering as a Textra user) is heartily encouraged."'
  159. newline
  160. wfs=waitforsub(1)
  161. response = getreturn('"                 (RETURN to continue)"')
  162. return
  163.  
  164. DoDocs:
  165. clear;wfs=waitforsub(1);newline
  166. textn '"                 The Textra Documentation"'
  167. textn '"                 ------------------------"';newline
  168. wfs=waitforsub(1.5)
  169. textn '"     Please refer to the Textra.doc file (in the docs drawer)"' 
  170. textn '"     for detailed information about all editor features and"'
  171. textn '"     facilities."'
  172. newline;wfs=waitforsub(1)
  173. textn '"     If you are interested in programming your own Textra-"'
  174. textn '"     Arexx scripts, the RexxCommand.doc file (also in docs)"'
  175. textn '"     describes the Textra-resident command set."'
  176. newline;wfs=waitforsub(1)
  177. textn '"     For previous Textra users, the complete change history"'
  178. textn '"     contained in WhatsNew.doc (same place) may be of interest."'
  179. newline;wfs=waitforsub(1)
  180. textn '"     Finally, a list of known gotchas is listed in a file"'
  181. textn '"     called zKnownProblems.doc (which has shrunk to just"'
  182. textn '"     about nothing!  Yay!)."'
  183. newline;wfs=waitforsub(1)
  184. response = getreturn('"                   (RETURN to continue)"')
  185. return
  186.  
  187. DoMouseInfo:
  188. clear;wfs=waitforsub(1);newline;newline
  189. textn '"              Use of the mouse in Textra"'
  190. textn '"              --------------------------"';newline
  191. wfs=waitforsub(1.5)
  192. textn '"    The LEFT MOUSE BUTTON is used primarily to either..."';newline
  193. wfs=waitforsub(2)
  194. textn '"       1. Position the text cursor (topic 4)"';wfs=waitforsub(1)
  195. textn '"       2. Establish a select range (topic 5)"';wfs=waitforsub(1)
  196. textn '"       3. Control the window scroll bars (topic 6)"'
  197. newline;newline;wfs=waitforsub(2)
  198. text  '"    "';textn "The RIGHT MOUSE BUTTON is used to access Textra's"
  199. textn '"    Amiga-standard menus."'
  200. newline
  201. response = getreturn('"            (RETURN to continue)"')
  202. return
  203.  
  204. DoPositionCursor:
  205. clear;wfs=waitforsub(1);newline;newline
  206. textn '"              Positioning the cursor"'
  207. textn '"              ----------------------"';newline
  208. wfs=waitforsub(1.5)
  209. textn '"    The Textra cursor is a vertical bar that always"'
  210. textn '"    lies on the extreme left edge of the character"';
  211. textn '"    position it is occupying."';newline
  212. response = getreturn('"                (RETURN to continue)"')
  213. gotoxy 0 5;
  214. selectto 0 10
  215.  
  216. textn '"    While pointing the mouse pointer at some word on"'
  217. textn '"    this page, Single-Click the LEFT MOUSE BUTTON..."';newline
  218. response = getreturn('"    (Do that several times, then RETURN to continue)"')
  219. gotoxy 0 5;
  220. selectto 0 9
  221.  
  222. textn '"    Place the cursor in the middle of a line, then"'
  223. textn '"    experiment with the keyboard arrow-keys..."';newline
  224. response = getreturn('"      (When finished, press RETURN to continue)"')
  225. return
  226.  
  227. DoSelectRanges:
  228. clear;wfs=waitforsub(1);newline;newline
  229. textn '"            Selecting a Range of Text"'
  230. textn '"            -------------------------"'
  231. newline
  232. wfs=waitforsub(1.5)
  233. textn '"    Any contiguous series of characters may be SELECTED"'
  234. textn '"    in a variety of ways.  As you will later see, such"'
  235. textn '"    a SELECT RANGE may be used as a single object; it may"'
  236. textn '"    be CUT, COPIED, PASTED, passed to ARexx scripts"'
  237. textn '"    and more."';
  238. newline
  239. wfs=waitforsub(2)
  240. textn '"    This section illustrates several methods of"'
  241. textn '"    SELECTING TEXT..."';newline
  242. response = getreturn('"           (Press RETURN to continue)"')
  243. gotoxy 0 5;
  244. selectto 0 15
  245.  
  246. textn '"    While pointing the mouse pointer at some word on"'
  247. textn '"    this page, DOUBLE-Click the LEFT MOUSE BUTTON..."';newline
  248. response = getreturn('"     (Do that several times, then RETURN to continue)"')
  249. gotoxy 0 5;
  250. selectto 0 9
  251.  
  252. textn '"    Now try TRIPLE-Clicking the LEFT MOUSE BUTTON on a line..."';newline
  253. response = getreturn('"    (Do that several times, then RETURN to continue)"')
  254. gotoxy 0 5;
  255. selectto 0 8
  256.  
  257. textn '"    Place the cursor over some word, then press & hold the"'
  258. textn '"    LEFT MOUSE BUTTON.  Then move the mouse around a little"'
  259. textn '"    and finally let the LEFT MOUSE BUTTON up."'
  260. newline
  261. response = getreturn('"      (Do that several times, then RETURN to continue)"')
  262. gotoxy 0 5;
  263. selectto 0 10
  264.  
  265. textn '"    Wherever the cursor is at the moment, move the mouse"'
  266. textn '"    pointer such that it is over some other word.  Then,"'
  267. textn '"    while holding down a SHIFT key, Single-click the LEFT"'
  268. textn '"    MOUSE BUTTON."'
  269. newline
  270. response = getreturn('"      (Do that several times, then RETURN to continue)"')
  271. return
  272.  
  273.  
  274. DoScrollBars:
  275. clear;wfs=waitforsub(1);newline;newline
  276. textn '"          Controlling the Window Scroll Bars"'
  277. textn '"          ----------------------------------"';newline
  278. wfs=waitforsub(1.5)
  279. textn '"    Every Textra window includes vertical and horizontal"'
  280. textn '"    scroll bars which become active as soon as text"'
  281. textn '"    exceeds the visible window dimensions in either"'
  282. textn '"    direction."'
  283. newline;wfs=waitforsub(1.5)
  284. textn '"    They afford continuous scrolling in the appropriate"'
  285. textn '"    direction to make all text visible.  Also, there are"'
  286. textn '"    times when Textra will scroll by itself (such as when"'
  287. textn '"    you try to type off the edge of the window) and the"'
  288. textn '"    scroll bars will reflect such changes."'
  289. newline;wfs=waitforsub(1)
  290. response = getreturn('"                (RETURN to continue)"')
  291. gotoxy 0 5;
  292. selectto 0 17
  293.  
  294. text  '"    Observe the horizontal scroll bar below..."'
  295. waitfor 1
  296. text  '" as this line..."';waitfor 1;text '" gets "';waitfor 1;
  297. text  '" longer "';waitfor 1;text '" and "';waitfor 1;text '" longer..."'
  298. waitfor 2;newline;newline;wfs=waitforsub(2)
  299. textn '"    The above line is longer than the window is wide,"'
  300. textn '"    and the horizontal scroll bar reflects that."';newline
  301. wfs=waitforsub(1.5)
  302. textn '"    Go ahead and click on the scroll bar components"'
  303. textn '"    (arrows, slider, non-slider), drag the slider"'
  304. textn '"    around, get a feel for the horizontal window control..."'
  305. newline;wfs=waitforsub(1)
  306. response = getreturn('"        (Press RETURN when finished experimenting)"')
  307. gotoxy 0 5;
  308. selectto 0 15
  309.  
  310. textn '"    Lets illustrate both scroll bars in action..."';newline
  311. wfs=waitforsub(1.5)
  312. textn '"    This window will soon fill with enough text such"'
  313. textn '"    that both scroll bars will activate."';newline
  314. wfs=waitforsub(1.5)
  315. textn '"    Once it does, play with both scroll bars, moving the"'
  316. textn '"    text around.  When finished experimenting, press"'
  317. textn '"    RETURN."';newline
  318. wfs=waitforsub(1.5)
  319. get cursor position; parse var result cx cy;
  320. response = getreturn('"     (Press RETURN to activate both scroll bars)"')
  321. gotoxy 0 cy;selectto 0 cy+1
  322. del
  323. newline;newline;newline;newline;
  324. textn '"    Four score and seven years ago, our forefathers brought forth upon this continent"'
  325. textn '"    a new nation, dedicated to the proposition that all men are created equal.  We hold"'
  326. textn '"    these truths to be self-evident..."';newline;newline;newline
  327. response = getreturn('"                (Press the RETURN key when finished experimenting)"')
  328. return
  329.  
  330. DoSelectTextInfo:
  331. clear;wfs=waitforsub(1);newline;newline
  332. textn '"           Working with selected ranges of text"'
  333. textn '"           ------------------------------------"';newline
  334. wfs=waitforsub(1.5)
  335. textn '"    Once a section of text is SELECTED (see topic 5),"'
  336. textn '"    it may be CUT, or COPIED into a Textra internal buffer."'
  337. textn '"    It is then a simple matter to re-position the cursor"'
  338. textn '"    to another location (perhaps even in a different"'
  339. textn '"    Textra window), and PASTE that text there."';newline
  340. wfs=waitforsub(1.5)
  341. textn '"    To illustrate, select any section of text in the"'
  342. textn '"    preceeding paragraph, then press Right-Amiga-C (copy)."'
  343. textn '"    Position the cursor just past the paragraph and press"'
  344. textn '"    Right-Amiga-V (paste)."'
  345. newline;wfs=waitforsub(1)
  346. response = getreturn('"              (Press RETURN when finished)"')
  347. clear;newline;newline
  348. textn '"           Working with SELECTED RANGES of text"'
  349. textn '"           ------------------------------------"';newline
  350. wfs=waitforsub(1.5)
  351. textn '"    When a SELECT RANGE exists, the DEL and BACKSPACE keys"'
  352. textn '"    on the keyboard work similar to the CUT operation,"'
  353. textn '"    except that the removed text is NOT saved in the"'
  354. textn '"    internal Textra buffer."'
  355. newline;wfs=waitforsub(1)
  356. response = getreturn('"                 (Press RETURN to continue)"')
  357. return
  358.  
  359. DoPrefs:
  360. clear;wfs=waitforsub(1);newline;newline
  361. textn '"               Textra Preference Settings"'
  362. textn '"               --------------------------"';newline
  363. wfs=waitforsub(1.5)
  364. textn '"    Textra provides a set of user-configurable Preference"'
  365. textn '"    settings which can be saved to disk such that they will"'
  366. textn '"    be re-assumed whenever Textra starts-up."'
  367. newline;wfs=waitforsub(1.5)
  368. textn '"    Optionally, these settings may be invoked temporarily"'
  369. textn '"    without being saved to disk."'
  370. newline;wfs=waitforsub(1.5)
  371. textn '"    The settings are grouped into 3 areas of use:"'
  372. newline;wfs=waitforsub(1)
  373. textn '"                1. Printing Preferences"';wfs=waitforsub(1)
  374. textn '"                2. Editing Preferences"';wfs=waitforsub(1)
  375. textn '"                3. Font Preferences"';wfs=waitforsub(1)
  376. newline;wfs=waitforsub(1.5)
  377. response = getreturn('"                 (Press RETURN to continue)"')
  378.  
  379. clear;wfs=waitforsub(1);newline;newline
  380. textn '"               Textra Printing Preferences"'
  381. textn '"               ---------------------------"'
  382. newline;wfs=waitforsub(1.5)
  383. textn '"    Under the Project menu is the Printing Preferences... item."'
  384. textn '"    Pull it down now and observe the various settings available."'
  385. textn '"    Then press the CANCEL button on the requester."'
  386. newline;wfs=waitforsub(1.5)
  387. textn '"    Refer to Textra.doc for more information about any of the"'
  388. textn '"    available Printing Preference settings."'
  389. newline;wfs=waitforsub(1.5)
  390. response = getreturn('"         (When finished, press RETURN to continue)"')
  391.  
  392. clear;wfs=waitforsub(1);newline;newline
  393. textn '"                 Textra Editing Preferences"'
  394. textn '"                 --------------------------"'
  395. newline;wfs=waitforsub(1.5)
  396. textn '"    Under the Edit menu is the Editing Preferences... item."'
  397. textn '"    Pull it down now and observe the various settings available."'
  398. textn '"    Then press the CANCEL button on the requester."'
  399. newline;wfs=waitforsub(1.5)
  400. textn '"    Refer to Textra.doc for more information about any of the"'
  401. textn '"    available Editing Preferences."'
  402. newline;wfs=waitforsub(1.5)
  403. response = getreturn('"         (When finished, press RETURN to continue)"')
  404.  
  405. clear;wfs=waitforsub(1);newline;newline
  406. textn '"                   Textra Font Preferences"'
  407. textn '"                   -----------------------"'
  408. newline;wfs=waitforsub(1.5)
  409. textn '"    Under the Utilities menu is the Font Preferences... item."'
  410. textn '"    This item will be enabled if the asl.library (usually"'
  411. textn '"    associated with WB2.0 and later) is available on your"'
  412. textn '"    system."'
  413. newline;wfs=waitforsub(1.5)
  414. textn '"    Currently, the only save-able Preference setting is"'
  415. textn '"    the specification of which font to use for newly-opened"'
  416. textn '"    Textra windows."'
  417. newline;wfs=waitforsub(1.5)
  418. textn '"    If enabled, pull it down now and experiment.  Then press"'
  419. textn '"    the CANCEL button on the requester."'
  420. newline;wfs=waitforsub(1.5)
  421. response = getreturn('"         (When finished, press RETURN to continue)"')
  422. return
  423.  
  424. DoFonts:
  425. clear;wfs=waitforsub(1)
  426. text  '"                 "';textn "Textra's use of fonts"
  427. textn '"                 ---------------------"';newline
  428. wfs=waitforsub(1.5)
  429. textn '"    Every Textra window may have a different fixed-space"'
  430. textn '"    font.  Under the Utilities... menu is the Set Window"'
  431. textn '"    Font item.  This item will be enabled if the asl.library"'
  432. textn '"    (usually associated with WB2.0 and later) is available"'
  433. textn '"    on your system."'
  434. newline; wfs=waitforsub(1.5)
  435. textn '"    Feel free to experiment with it now.  When finished,"'
  436. textn '"    you should set the Tutorial window to Topaz8 or equiv-"'
  437. textn '"    alent, where the page-formatting routines of this"'
  438. textn '"    tutorial work best."'
  439. newline;wfs=waitforsub(1)
  440. textn '"    As an alternative, you could pull down the Project menu,"'
  441. textn '"    Open New File item which will give you a new window to"'
  442. textn '"    type some text into and change fonts with.  If you do so,"'
  443. textn '"    just come back to this window when done.  Then..."'
  444. newline;wfs=waitforsub(1)
  445. response = getreturn('"                   (RETURN to continue)"')
  446. return
  447.  
  448. DoARexx:
  449. clear;wfs=waitforsub(1);newline
  450. textn '"                 The Textra-ARexx Interface"'
  451. textn '"                 --------------------------"'
  452. newline;wfs=waitforsub(1.5)
  453. textn '"    Almost sounds like a new TV Space show, eh?"'; newline
  454. textn '"    Textra opens an ARexx port called (appropriately) TEXTRA."'
  455. textn '"    The resident 40+ command set provides a range of features:"'
  456. newline
  457. textn '"       ...from manipulating window text...  to window and file"'
  458. textn '"       management... interactivity with the TEXTRA user..."'
  459. newline
  460. textn '"    (this tutorial, remember, is but a Textra-ARexx script)"'
  461. newline;wfs=waitforsub(1.5)
  462. textn '"    Refer to Textra.doc for information on running scripts."'
  463. newline;wfs=waitforsub(1.5)
  464. textn '"    Refer to RexxCommand.doc for information on writing scripts."'
  465. newline;wfs=waitforsub(1.5)
  466. response = getreturn('"               (Press RETURN to continue)"')
  467. gotoxy 0 4;
  468. selectto 0 19
  469. textn '"    The Textra package also includes 25+ ARexx scripts that"'
  470. textn '"    are quite varied in scope.  Heres an example... say"'
  471. textn '"    you hastily type in the following angry note:"'
  472. newline;wfs=waitforsub(1.5)
  473. textn '"    Dear cBS News,"'
  474. newline
  475. textn '"I am writing to say I am simply APPALLED at the"'
  476. textn '"     manner in which you dress Mr. Rathernot of your evening news!"'
  477. newline
  478. textn '"                     I am tempted to boycott your presentation"'
  479. textn '" until he"'
  480. textn '"          is attired in the manner we have all come accustomed"'
  481. textn '" to expect him... in a Neru jacket."'
  482. newline;newline;wfs=waitforsub(1.5)
  483. response = getreturn('"               (Press RETURN to continue)"')
  484. gotoxy 0 4
  485. selectto 0 5;del;selectto 0 5;del;selectto 0 5;del;
  486. gotoxy 0 16;selectto 0 17;del
  487. wfs=waitforsub(1.5)
  488. get cursor position;parse var result cx cy
  489. textn '"    By use of the command:  paragraph 8 4 60,  one can"'
  490. textn '"    easily reformat each paragraph..."'
  491. newline;wfs=waitforsub(1.5)
  492. response = getreturn('"        (Press RETURN to see what that does)"')
  493. gotoxy 0 cy;selectto 0 cy+4;del
  494. wfs=waitforsub(1.5)
  495. gotoxy 0 7;wfs=waitforsub(1)
  496. selectto 0 8;wfs=waitforsub(0.5)
  497. selectto 0 9;wfs=waitforsub(0.5)
  498. selectto 0 10;wfs=waitforsub(0.5)
  499. selectto 0 11;wfs=waitforsub(0.5)
  500. selectto 0 12;wfs=waitforsub(0.5)
  501. selectto 0 13;wfs=waitforsub(0.5)
  502. selectto 0 14;wfs=waitforsub(0.5)
  503. paragraph 8 4 60
  504. newline;newline;newline;wfs=waitforsub(2.0)
  505. response = getreturn('"                 (Press RETURN to continue)"')
  506. return
  507.  
  508. DoReg:
  509. clear;wfs=waitforsub(1);newline;newline
  510. textn '"                Textra Registration Information"'
  511. textn '"                -------------------------------"'
  512. newline;wfs=waitforsub(1)
  513. textn '"    I hope you find Textra a professional-quality text editor."'
  514. textn '"    Many suggestions from users have gone into Textra which"'
  515. textn '"    have helped it to become a popular tool."'
  516. newline;wfs=waitforsub(1.5)
  517. textn '"    Many important features have been added to the Shareware"'
  518. textn '"    versions... this version sports undo, multi-processing,"'
  519. textn '"    ASL font support, ARexx control of windows and files,"'
  520. textn '"    full ARexx interactivity with the user, and much more..."'
  521. textn '"    none of which exists in the older freeware versions."'
  522. newline;wfs=waitforsub(1.5)
  523. response = getreturn('"                   (Press RETURN to continue)"')
  524. gotoxy 0 5;
  525. selectto 0 16
  526.  
  527. textn '"    The registration fee for Textra is $25.00.  You will"'
  528. textn '"    receive the latest version (probably newer than the"'
  529. textn '"    one you are using here).  Instead of the 60 second"'
  530. textn '"    delay screens, it displays a short 2.5-second registra-"'
  531. textn '"    tion notice (personalized to you), which can be closed"'
  532. textn '"    earlier via its OK button if desired."'
  533. newline;wfs=waitforsub(1.5)
  534. textn '"    Registered users may ask for updates anytime for $5 (or"'
  535. textn '"    include your own SASE+floppy).  Generally, it is best to"'
  536. textn '"    wait at least 6 months before doing so."'
  537. newline;wfs=waitforsub(1.5)
  538. response = getreturn('"                   (Press RETURN to continue)"')
  539. gotoxy 0 5;
  540. selectto 0 17
  541.  
  542. textn '"    If you are a JForth Professional 3.x owner and registered"'
  543. textn '"    with Delta Research, I will register you for free.  Just"'
  544. textn '"    drop me a line and include your JForth serial number."'
  545. newline;wfs=waitforsub(1.5)
  546. textn '"    The serial number appears on the back of the original"'
  547. textn '"    JForth Extras disk, and is available by typing into JForth:"'
  548. newline
  549. textn '"          SERIAL# ?"'
  550. newline;wfs=waitforsub(1.5)
  551. textn '"    This version of Textra will work fine as a substitute for"'
  552. textn '"    the V1.11 that comes with JForth."'
  553. newline;wfs=waitforsub(1.5)
  554. response = getreturn('"                   (Press RETURN to continue)"')
  555. gotoxy 0 5;
  556. selectto 0 18
  557. cut
  558.  
  559. waitfor .5
  560. textn '"           Textra is written in JForth Professional 3.1"'
  561. newline
  562. textn '"                           Mike Haas"'
  563. textn '"                       3867 La Colina Rd."'
  564. textn '"                     El Sobrante, CA. 94803"'
  565. newline;newline
  566. get cursor position;parse var result cx cy
  567. waitfor 1
  568. text '"                "';textn "THERE'S A TEXTRA WAITING FOR YOU"
  569. i = 0
  570. do while (i < 3)
  571.    waitfor 0.5
  572.    gotoxy 16 cy;selectto 48 cy
  573.    waitfor 0.5
  574.    unselect;right 1
  575.    i = i+1
  576. end
  577. prefs AlphanumericHops read;ahops = result
  578. prefs AlphanumericHops off
  579. gotoxy 0 cy
  580. i = 0
  581. do while (i < 6)
  582.    waitfor 0.1
  583.    hopselect next word
  584.    i = i+1
  585. end
  586. i = 0
  587. do while (i < 5)
  588.    waitfor 0.1
  589.    hopselect prev word
  590.    i = i+1
  591. end
  592. i = 0
  593. do while (i < 5)
  594.    waitfor 0.1
  595.    hopselect next word
  596.    i = i+1
  597. end
  598. i = 0
  599. do while (i < 1)
  600.    waitfor 0.1
  601.    hopselect prev word
  602.    i = i+1
  603. end
  604. prefs AlphanumericHops ahops
  605. down 2
  606. /*
  607.                    THERE'S A TEXTRA WAITING FOR YOU
  608. */
  609. newline;newline;wfs=waitforsub(1.5)
  610. response = getreturn('"                   (press RETURN to continue)"')
  611. return
  612.  
  613. DoByeBye:
  614. prefs autoindent wasai
  615. notify "end of script"
  616. exit
  617. return
  618.  
  619. getreturn:
  620.     parse arg theprompt
  621.     checkcancel
  622.     if (result == CANCEL) then do
  623.         notify "Aborting"
  624.         prefs autoindent wasai
  625.         exit
  626.     end
  627.     returnprompt theprompt
  628. return result
  629.  
  630. waitforsub:
  631.    parse arg wfval
  632.    if (delay == "delay") then
  633.       waitfor wfval
  634. return wfval
  635.