home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / teachapl.zip / APL2OS2T.ZIP / TEACH41.ATF next >
Text File  |  1996-04-03  |  82KB  |  1,005 lines

  1. XNÉIO 0 1                                                                      °
  2. XNÉCT 0 1.000000000000011E²13                                                  °
  3. XCÉFC 1 6 .,*0_²                                                               °
  4. XNÉRL 0 16807                                                                  °
  5. XCÉPR 0                                                                        °
  6. XCÉLX 1 5 TEACH                                                                °
  7. *(1991 11 11 8 25 10 304)                                                      °
  8.  FDISPLAY ÉFX 'D╜S DISPLAY A;ÉIO;R;C;HL;HC;HT;HB;VL;VB;V;W;N;B'                °
  9.   'Σ DISPLAY A GENERAL ARRAY IN PICTORIAL FORM'                                °
  10.   'Σ  NORMAL CALL IS MONADIC.  DYADIC CALL USED ONLY IN'                       °
  11.   'Σ    RECURSION TO SPECIFY DISPLAY RANK, SHAPE, AND DEPTH.' 'ÉIO╜0'          °
  12.   '»(0=ÉNC ''S'')/''S╜µA''' 'R╜╞µ,S                   Σ PSEUDO RANK.'          °
  13.   'C╜''┐┌└┘''                 Σ UR, UL, LL, AND LR CORNERS.'                   °
  14.   'HL╜''─''                   Σ HORIZONTAL LINE.'                              °
  15.   'HC╜HL,''Θ╕'',HL,''~+ε''      Σ HORIZONTAL BORDERS.'                         °
  16.   'HT╜HC[(0<R)⌡1+0<╞²1╞,S]' 'ΣW╜,0╧■╞0µΓ(1⌐µA)╞A'                              °
  17.   'HB╜HC[3+3╛(''2⌡~A╧«A'' ÉEA ''1+╞ε0⌡(1⌐⌡/µA)╞,A'')+3⌡1<µµS]'                 °
  18.   'VL╜''│''                   Σ VERTICAL LINE.'                                °
  19.   'VB╜VL,''Φ╟''               Σ VERTICAL BORDER.'                              °
  20.   'V╜VB[(1<R)⌡1+0<²1╞²1╟,S]'                                                   °
  21.   '»(0εµA)/''A╜(1⌐µA)µΓ╞A''   Σ SHOW PROTOTYPE OF EMPTIES.'                    °
  22.   '╕(1<╧A)/GEN' '╕(2<µµA)/D3'                                                  °
  23.   'D╜«A                     Σ SIMPLE ARRAYS.' 'W╜1╞µD╜(²2╞1 1,µD)µD'           °
  24.   'N╜²1+1╟µD' '╕(0=µµA)/SS'                                                    °
  25.   'D╜(C[1],V,((W-1)µVL),C[2]),((HT,NµHL),[0]D,[0]HB,NµHL),C[0],(WµVL),C[       °
  26.  3]' '╕0' 'SS:HB╜((0 '' '')=╞0µΓA)/'' -'''                                     °
  27.   'D╜'' '',('' '',[0]D,[0]HB,Nµ'' ''),'' ''' '╕0'                              °
  28.   'GEN:D╜«DISPLAY■A          Σ ENCLOSED ...' 'N╜Dδ.⌠'' '''                     °
  29.   'D╜(Nδ~1ΦN)≡D' 'D╜(δ≡~''  ''╤D)/D' 'D╜((1,µS)µS)DISPLAY D'                   °
  30.   '╕(2≥µ,S)╟D3E,0' 'D3:D╜0 ²1╟0 1╟«ΓA         Σ MULT-DIMENSIONAL ...'          °
  31.   'W╜1╞µD' 'N╜²1+1╟µD'                                                         °
  32.   'D╜(C[1],V,((W-1)µVL),C[2]),((HT,NµHL),[0]D,[0]HB,NµHL),C[0],(WµVL),C[       °
  33.  3]' 'D3E:N╜²2+µ,S'                                                            °
  34. X 'V╜C[Nµ1],[0]VB[1+0<²2╟,S],[0](((²3+╞µD),N)µVL),[0]C[Nµ2]' 'D╜V,D'           °
  35. *(1991 11 11 8 25 12 312)                                                      °
  36.  FGO ÉFX 'GO;b;e;t' 'Σ Expression driver' 'L0:b╜e╜''''' 'æ╜''       '''        °
  37.   't╜æ' '╕(^/'' ''=t)/L0' '╕((^/'')OFF ''=5╞6╟t)doif ''exit'')/0'              °
  38.   '╕(('':''εt)doif ''b╜evaldd (+/^\'''' ''''=t)╟t'')/L0'                       °
  39.   '''e╜ÉEM'' ÉEA t' '╕(0=µ,e)/L0' '╕b/L0'                                      °
  40.   '''This is not a valid APL2 expression''' 'æ╜''*'''                          °
  41. X '╕(''?''⌠╞1╟æ)/L0' 'e' '╕L0'                                                 °
  42. *(1995 6 28 13 23 19 416)                                                      °
  43. XFLOOP ÉFX 'LOOP' '''LOOPING'',ÉDL 1' '╕1'                                     °
  44. *(1995 7 18 13 40 35 512)                                                      °
  45.  FSCROLL ÉFX 'SCROLL;T' 'This line displayed every second' 'T╜ÉDL 1'           °
  46. X '╕1'                                                                         °
  47. *(1995 4 23 14 14 6 304)                                                       °
  48.  FSVOFFER ÉFX 'DC╜PID SVOFFER SV' 'SV╜(²2╞1 1,µSV)µSV╜πSV'                     °
  49.   '╕(2=ÉNC ''PID'')/DYADIC' 'DC╜ÉSVO SV ╪ ╕0'                                  °
  50.   'DYADIC:╕(1^.⌠DC╜PID ÉSVO SV)/END' 'ÉSVE╜15'                                 °
  51.   'CHECK:╕(1^.⌠DC╜ÉSVO SV)/END' '╕(0⌠ÉSVE)/CHECK'                              °
  52. X 'END:SV╜1 0 1 0 ÉSVC SV'                                                     °
  53.  AT╜4 4µ('t')('e')('s')('t')(2)(' ')(' ')(' ')('o')('n')('e')(' ')(3)('        °
  54. X')(' ')(' ')                                                                  °
  55. *(1996 3 29 15 54 22 556)                                                      °
  56.  FTEACH ÉFX 'TEACH' 'Σ Introduction to APL2OS2 tutorials' 'copyright'          °
  57.   'welcome' 'do' 'exa' 'TEACH1      Σ Installing APL2OS2'                      °
  58.   'TEACH2      Σ Defining libraries and APL2 invocation'                       °
  59.   'TEACH3      Σ The SESSION LOG' 'TEACH4      Σ The SESSION editor'           °
  60.   'TEACH5      Σ Opening and APL2 object'                                      °
  61.   'TEACH6      Σ The SIGNALS menu' 'TEACH7      Σ The OPTIONS menu'            °
  62.   'TEACH8      Σ Customizing the keyboard'                                     °
  63.   'TEACH9      Σ Setting up fonts' 'TEACH10     Σ Changing colors'             °
  64.   'TEACH11     Σ Changing colors of fields'                                    °
  65.   'TEACH12     Σ Setting up F-keys'                                            °
  66. X 'TEACH13     Σ The WINDOW and HELP menus'                                    °
  67. *(1996 3 29 16 14 17 380)                                                      °
  68.  FTEACH1 ÉFX 'TEACH1' 'Σ Installing APL2OS2' '''INSTALLING APL2OS2'',r'        °
  69.   '''When you install APL2OS2, your desktop acquires a new icon. It is''       °
  70.  '                                                                             °
  71.   '''the one that shows a globe with a highway paved with APL2 boxes.'''       °
  72.   '''Clicking on this icon reveals a window containing additional icons.       °
  73.  '',r'                                                                         °
  74.   '''You may try out the "READ ME", "SERVICE INFO" icons for an up to da       °
  75.  te'''                                                                         °
  76.   '''status of your installed product. The "USER''''S GUIDE" icon provid       °
  77.  es'''                                                                         °
  78.   '''the entry to the on line version of the User''''s Guide manual. Sin       °
  79.  ce'''                                                                         °
  80.   '''you most likely have an updated version of APL2OS2, this on-line'''       °
  81.   '''manual contains corrections and additions not in your hard copy. It       °
  82.  '''                                                                           °
  83.   '''is therefore highly recommended that you access this on-line docume       °
  84.  nt'''                                                                         °
  85.   '''for the most up-to-date information. The same thing can be said for       °
  86.  '''                                                                           °
  87.   '''the icons that represent entries to the "LANGUAGE REFERENCE" and th       °
  88.  e''' '''"GRAPHPAK: USER''''S GUIDE AND REFERENCE.'',r'                        °
  89.   '''HINT: Click on the "User''''s Guide" icon. Then move the window to        °
  90.  the'''                                                                        °
  91.   '''      right edge of your screen. Do the same thing for the "Languag       °
  92.  e'''                                                                          °
  93.   '''      Reference" icon and the "Graphpack:..." icon. Then, click on        °
  94.  the'''                                                                        °
  95.   '''      red APL2/2 icon to activate APL2. This will overlay the APL2'       °
  96.  ''                                                                            °
  97.   '''      Session Manager window on your screen. As you use APL2, you c       °
  98.  an'''                                                                         °
  99.   '''      always find answers to your APL2 questions by clicking on the       °
  100.  ''' '''      manuals-windows at the right edge of your screen.''' 'do'        °
  101.   '''The bright red APL2/2 icon is your entry into APL2. Clicking on thi       °
  102.  s'''                                                                          °
  103.   '''icon invokes a batch file named APL2.CMD which resides in the sub-'       °
  104.  '' '''directory BIN  of APL2OS2 (the main directory for APL2OS2).'',r'        °
  105.   '''At this point you are ready to start using APL2. However, you may''       °
  106.  '                                                                             °
  107.   '''wish to define your own libraries, and change some of the default''       °
  108.  ' '''parameters.''' 'do' '''ADDING LIBRARIES'',r'                             °
  109.   '''To add libraries, you will have to modify the APL2.CMD file.'''           °
  110.   '''Here is the step by step procedure for customizing your APL2/2:'''        °
  111.   '''  1. Click on the small square in the upper right hand corner of yo       °
  112.  ur'''                                                                         °
  113.   '''     APL2 Session Manager window. This will "minimize " it i.e. it'       °
  114.  ''                                                                            °
  115.   '''     will make it disapear from the screen but still keep it active       °
  116.  .'''                                                                          °
  117.   '''  2. Double click on the OS/2 System Editor icon on your desktop.''       °
  118.  '                                                                             °
  119.   '''     (You may have to move windows around to make this icon visible       °
  120.  )''' '''  3. Click on the FILE pull down menu, and select OPEN'''             °
  121.   '''  4. In the Directory box double click on C:(or D:...) where APL re       °
  122.  sides''' '''  5. In the same box double click on APL2OS2'''                   °
  123.   '''  5. Again in the same column, double click on BIN'''                     °
  124.   '''  7. Now look in the FILE box for APL2.CMD and click on that. Your'       °
  125.  ''                                                                            °
  126.   '''     Sytem Editor box will display the contents of that file. It wi       °
  127.  ll'''                                                                         °
  128.   '''     look like the listing on page 11 of your User''''s Guide.'''         °
  129.   '''    | If you want to find a listing of APL2.CMD from your on-line         °
  130.  |'''                                                                          °
  131.   '''    | "User''''s Guide", click on the Guide window. Then select the       °
  132.     |'''                                                                       °
  133.   '''    | + sign on the item "Installing and Customizing APL2/2". Then        °
  134.  |'''                                                                          °
  135.   '''    | select the "Customizing APL2/2" box, then "APL2.CMD" box,           °
  136.  |'''                                                                          °
  137.   '''    | and finally select "Rexx Command File".                             °
  138.  |''' '''  8. At this point you are ready to modify this file'',r' 'do'        °
  139.   '''  To illustrate the process, assume that you have a directory in'''       °
  140.   ''' C:\MINE that contains some of your APL2 workspaces. You would like       °
  141. X''' '''  to define this directory as LIB 12.''' 'end'                         °
  142. *(1996 3 28 16 47 13 492)                                                      °
  143.  FTEACH10 ÉFX 'TEACH10' 'Σ The color palette' '''CHANGING COLORS'',r'          °
  144.   '''You can change both background colors, and the colors of the APL'''       °
  145.   '''fields. Changing the background color is easy:'',r'                       °
  146.   '''From the Options menu, select the "Color Palette". A window will'''       °
  147.   '''appear with 9 rows and 13 columns of colors. Place the pointer on''       °
  148.  '                                                                             °
  149.   '''the color you wish to have in the background. Press the right mouse       °
  150.  '''                                                                           °
  151.   '''button, and drag it to any spot on the Session Manager window. (A''       °
  152.  '                                                                             °
  153.   '''paint bucket will appear as the prompt). When you release the mouse       °
  154.  '''                                                                           °
  155.   '''button, the background color will change. In the same way you can a       °
  156.  lso''' '''change the color of the other window components.''' 'do'            °
  157.   '''If you do not find a color to your liking on the color palette, you       °
  158.  ''' '''can design your own color:'''                                          °
  159.   '''1. Point to the color that most closely approaches the one you want       °
  160.  ,'''                                                                          °
  161.   '''   and click the left button. A box will surround the color sample.       °
  162.  '''                                                                           °
  163.   '''2. Click on the "Edit color" button. A new window will appear on th       °
  164.  e''' '''   screen.'''                                                         °
  165.   '''3. Move this window to one side so that both the "Color palette" an       °
  166.  d''' '''   the "Edit color" window appear side by side.'''                    °
  167.   '''4. Using the mouse, move the cross-hairs on the color circle and on       °
  168.  '''                                                                           °
  169.   '''   releasing the button, observe the effect on the selected color o       °
  170.  f''' '''   the color palette.'''                                              °
  171.   '''5. Again, using the mouse, move the brightness bar to see the effec       °
  172.  t.'''                                                                         °
  173.   '''6. When satisfied with the color, close the "Edit color" window.'''       °
  174. X 'end'                                                                        °
  175. *(1996 4 3 14 2 56 380)                                                        °
  176.  FTEACH11 ÉFX 'TEACH11' 'Σ Changing colors of the fields'                      °
  177.   '''CHANGING COLORS OF THE FIELDS'',r'                                        °
  178.   '''When you select the "Fields..." option, a window named "Fields" com       °
  179.  es'''                                                                         °
  180.   '''up on the screen. The window gives instructions on how to change'''       °
  181.   '''the colors of different APL2 fields. Below the instructions it list       °
  182.  s'''                                                                          °
  183.   '''the types of fields using the default color scheme: Some fields are       °
  184.  ''' '''blue, some black, and two are red.''' 'do'                             °
  185.   '''If you try to follow the instructions, you will quickly find that s       °
  186.  imply'''                                                                      °
  187.   '''clicking on the two needed options (Color Palette and Fields) does        °
  188.  not'''                                                                        °
  189.   '''produce the desired effect, namely to have the two windows side by        °
  190.  side.'''                                                                      °
  191.   '''Although there may be other ways to change the color of fields, her       °
  192.  e is''' '''one approach that works:'',r'                                      °
  193.   '''1. Select the "Color Palette" option. and then minimize it'''             °
  194.   '''2. Select the "Fields..." option'''                                       °
  195.   '''3. Click on the "Window list" (the easiest way is to press Ctrl and       °
  196.  ''' '''   Esc at the same time)'''                                            °
  197.   '''4. Double click on the "APL2 Color Palette". Then move the two wind       °
  198.  ows''' '''   so that they do not overlay each other.'''                       °
  199.   '''5. Select the color from the color palette, and pressing the Ctl ke       °
  200.  y'''                                                                          °
  201.   '''   to drag the color to the desired Field on the "Filelds..." windo       °
  202. Xw.''' 'end'                                                                   °
  203. *(1996 3 28 16 47 54 656)                                                      °
  204.  FTEACH12 ÉFX 'TEACH12;SCROLL;T' 'Σ Setting up F-keys'                         °
  205.   '''SETTING UP F-KEYS'',r'                                                    °
  206.   '''Function keys are used in APL2OS2 in many contexts. A complete'''         °
  207.   '''discussion of their usage must be delayed until such time we cover'       °
  208.  '' '''the various Auxilliary Processors.'',r'                                 °
  209.   '''However, as long as one deals only with the Session Manager, and'''       °
  210.   '''the related "Options" pull down menu, there is a way to define F-ke       °
  211.  ys'''                                                                         °
  212.   '''with the objective of saving typing effort. On installation, APL2OS       °
  213.  2'''                                                                          °
  214.   '''defines a default for the first 12 F-keys. To find out what these''       °
  215.  '                                                                             °
  216.   '''defaults are, simply select the "F-keys..." option. The "F keys"'''       °
  217.   '''widow displays the current meaning of the 12 F-keys. A button in'''       °
  218.   '''front of each definition provides for a check mark. A check mark'''       °
  219.   '''will cause the definition to be displayed on the screen, but not to       °
  220.  '''                                                                           °
  221.   '''be evaluated. A definition without the checkmark will be immediatel       °
  222.  y''' '''evaluated.''' 'do'                                                    °
  223.   '''To change a definition, mark the desired F-key line and enter the n       °
  224.  ew'''                                                                         °
  225.   '''definition. To place (or remove) a check mark, simply click on the'       °
  226.  '' '''button. Pressing OK will complete the definition process.'''            °
  227.   'do'                                                                         °
  228.   'T╜ÉFX ''SCROLL;T'' ''''''This line displayed every second'''''' ''T╜É       °
  229.  DL 1'' ''╕1''' '''SCROLL and DISPLAY STACK'',r'                               °
  230.   '''The last two items on the "Options..." pull down menu are toggle'''       °
  231.   '''switches. To see how checkmarks affect the action of APL2, enter:''       °
  232.  ,r' '''    SCROLL'',r'                                                        °
  233.   '''and wait until the listing goes to the bottom of the window. Then''       °
  234.  '                                                                             °
  235.   '''press BREAK, and display the stack ")SI". Repeat this exercise for'       °
  236.  ''                                                                            °
  237.   '''different combinations of the "Scroll" and "Display stack" options.       °
  238. X''' 'end'                                                                     °
  239. *(1996 4 3 14 7 26 280)                                                        °
  240.  FTEACH13 ÉFX 'TEACH13' 'Σ The Windows and Help pull down menus'               °
  241.   '''THE WINDOW and HELP MENUS'',r'                                            °
  242.   '''The last two pull down menus (WINDOW and HELP) are of not much use.       °
  243.  '''                                                                           °
  244.   '''The "Windows" menu contains only one option: the "APL2 Window list"       °
  245.  .'''                                                                          °
  246.   '''When selected, it will display ONLY the currently active APL2 objec       °
  247.  ts.''' '''To see a list of ALL OS/2 objects, press Ctrl AND Esc'',r'          °
  248.   '''The "Help" pull down menu DOES NOT provide the APL2 documentation.'       °
  249.  ''                                                                            °
  250.   '''There are five items on this pull down menu, none particularly usef       °
  251.  ul:'''                                                                        °
  252.   ''' HELP INDEX lists an outline of the OS/2 features associated with a       °
  253.  '''                                                                           °
  254.   '''            window, editing text and pull down menus (most of it ha       °
  255.  s''' '''            been covered by this lesson).'''                          °
  256.   ''' GENERAL HELP describes the behavior of the APL2OS2 window.'''            °
  257.   ''' USING HELP describes how to access the OS/2 documentation.'''            °
  258.   ''' KEYS HELP lists the usage of key combinations to produce specific'       °
  259.  '' '''           effects (as an alternate to the use of the mouse).'''        °
  260.   ''' PRODUCT INFORMATION is just an expanded copyright note'',r'              °
  261.   '''If you need help in the use of APL2, you can follow the procedure''       °
  262.  ' '''described earlier in this lesson:'',r'                                   °
  263.   ''' 1. minimize the Session Manager"'''                                      °
  264.   ''' 2. Open the User''''s Guide or the Language Reference icons and mo       °
  265.  ve'''                                                                         °
  266.   '''    these windows to the right edge, where they will be visible fro       °
  267.  m''' '''    the Session Manager.'''                                           °
  268.   ''' 3. Get back to the Session Manager.''' 'do'                              °
  269.   '''This completes the first tutorial lesson on using APL2OS2. Future''       °
  270.  '                                                                             °
  271.   '''lessons will discuss some of the Auxilliary Processors and their us       °
  272. Xage''' '''in developping new applications.''' 'end'                           °
  273. *(1996 3 29 16 15 44 492)                                                      °
  274.  FTEACH2 ÉFX 'TEACH2' 'Σ Defining new libraries'                               °
  275.   '''Move the pointer to the end of a line, say the one that reads'''          °
  276.   '''SET APL00002=C:... and press ENTER. A blank line will appear below.       °
  277.  ''' '''On this new line type:'',r' '''SET APL00012=C:\MINE'',r'               °
  278.   '''(You may wish to enter more library numbers in this manner, provide       °
  279.  d'''                                                                          °
  280.   '''the named directories already exist.) At this time you may also wis       °
  281.  h'''                                                                          °
  282.   '''to review the list of Environment variables (p. 17 of User''''s Gui       °
  283.  de).'''                                                                       °
  284.   '''However, unless there is a specific need, the default values should       °
  285.   be'''                                                                        °
  286.   '''adequate. Then, when you have finished, click on the FILE pull down       °
  287.  ''' '''menu, press SAVE and exit from the System Editor.'',r'                 °
  288.   '''To get back to APL2, click on the "Window list" button; then double       °
  289.  '''                                                                           °
  290.   '''click on the APL2 Session Manager line. Remember that your newly'''       °
  291.   '''defined libraries (such as 12) will not become active until the nex       °
  292.  t''' '''time you load APL2OS2.''' 'do' '''APL2 INVOCATION'',r'                °
  293.   '''You may also wish to modify the invocation by adding keywords to th       °
  294.  e'''                                                                          °
  295.   '''"AOSAPL2.EXE" command (next to the last line of APL2OS2.CMD).There        °
  296.  is,'''                                                                        °
  297.   '''however, another way to introduce parameters to AOSAPL2.EXE. If you       °
  298.  '''                                                                           °
  299.   '''plan to invoke APL2 by double clicking on the red APL2 icon, you ca       °
  300.  n'''                                                                          °
  301.   '''modify the way it invokes APL2. The procedure is quite simple, but'       °
  302.  '' '''again, requires a number of steps:'',r'                                 °
  303.   '''Look over pages 15-16 of your User''''s Guide. Let us assume that y       °
  304.  ou'''                                                                         °
  305.   '''have decided to always use the "-ws 2m,7m" option to specify your''       °
  306.  '                                                                             °
  307.   '''workspace size. You may also wish to provide for an optional entry        °
  308.  of''' '''one or more additional keywords. Here is how to proceed:'''          °
  309.   'do'                                                                         °
  310.   '''  1. As before, minimize the APL2 Session Manager by clicking on th       °
  311.  e''' '''     small square in the upper right corner'''                        °
  312.   '''  2. Point to the red APL2 icon, and click on the RIGHT button. A p       °
  313.  ull''' '''     down menu will appear.'''                                      °
  314.   '''  3. Select the line that reads SETTINGS. This will produce the fir       °
  315.  st'''                                                                         °
  316.   '''     of several pages defining the manner in which APL2 will behave       °
  317.  '''                                                                           °
  318.   '''  4. The first page has three boxes. Ignore the one labelled Pathna       °
  319.  me.'''                                                                        °
  320.   '''     Move the pointer to the one labelled Optional Parameters and''       °
  321.  ' '''     click on it. Then enter:  -ws 2m,7m []'''                           °
  322.   '''      (ws -2m,7m will give you initially a WS size of 2 megs, and w       °
  323.  hen'''                                                                        °
  324.   '''      that gets full will increment it by 7 megs. The brackets [] w       °
  325.  ill'''                                                                        °
  326.   '''      cause a small window to appear each time you start APL2, wher       °
  327.  e'''                                                                          °
  328.   '''      you will be able to enter additional invocation parameters.)'       °
  329.  ''                                                                            °
  330.   '''  5. Double click on the upper left corner to close the SETTINGS bo       °
  331. Xx''' 'end'                                                                    °
  332. *(1996 3 29 15 48 32 572)                                                      °
  333.  FTEACH3 ÉFX 'TEACH3' 'Σ Associated Windows'                                   °
  334.   '''Now that you have initialized APL2 on your system, let us take a lo       °
  335.  ok'''                                                                         °
  336.   '''at the OS2 environment. Your APL2 Session Manager has the following       °
  337.  ''' '''labels on the pull-down menu list:'',r'                                °
  338.   '''  Log'',r,''  Edit'',r,''  Signals'',r,''  Options'',r,''  Windows'       °
  339.  ',r,''  Help''' 'do' '''THE SESSION LOG'',r'                                  °
  340.   '''You will note that the title of the APL2 window is "APL2 Session'''       °
  341.   '''Manager". This window is a partial view of a file called the Sessio       °
  342.  n'''                                                                          °
  343.   '''log. (The actual file name is not important now). You can scroll'''       °
  344.   '''the screen, change its size, move it around, and "minimize" it.'''        °
  345.   '''When you click on the "Log" pull-down menu, you will see a list of'       °
  346.  '' '''options dealing with your APL2 SESSION.'',r'                            °
  347.   '''There are three parts to this list. The first part deals with the''       °
  348.  '                                                                             °
  349.   '''Session log file(s). You can save this file, rename it, erase it,''       °
  350.  ' '''change its size and delete portions of it.'',r'                          °
  351.   '''The second portion of the "Log" pop up menu provides a way to quit'       °
  352.  '' '''APL2. It is equivalent to the )OFF System Command.'',r'                 °
  353.   '''The last portion of the "Log" pull-down menu allows you to print al       °
  354.  l'''                                                                          °
  355.   '''or parts of the session. The "Print Setup..." gives you the ability       °
  356.  '''                                                                           °
  357.   '''to select the printer. The third option wil print the entire conten       °
  358.  ts'''                                                                         °
  359.   '''of the Session log. (Not recommended if your Session file is large)       °
  360.  '''                                                                           °
  361.   ''' It is the second option, however, that may be most useful. It allo       °
  362.  ws''' '''you to print selected portions of the log.''' 'do'                   °
  363.   '''Before we leave this section, consider trying the following exercis       °
  364. Xe:''' 'testlog' 'end'                                                         °
  365. *(1996 3 28 16 48 49 640)                                                      °
  366.  FTEACH4 ÉFX 'TEACH4' '''SESSION EDITOR'',r'                                   °
  367.   '''When you click on the "Edit" pull-down menu, only three of the 7'''       °
  368.   '''options are highlighted:'',r'                                             °
  369.   '''Paste'',r,''Find'',r,''Open Object...'',r'                                °
  370.   '''You will also notice that the seven options fall into four separate       °
  371.  ''' '''partitions:'',r' '''              Copy'''                              °
  372.   '''   Cut        Paste            Find     Open Object...'''                 °
  373.   '''              Delete Marked''' '''              Unmark all'',r'           °
  374.   '''Obviously in order to "Cut" "Copy" "Delete" or "Unmark" blocks of''       °
  375.  ' '''data, one has to first mark it.''' 'do'                                  °
  376.   '''There are two ways of marking lines:'''                                   °
  377.   ''' 1) Place the mouse at the line to be marked, then press the left''       °
  378.  '                                                                             °
  379.   '''    button and move the mouse to the left or right. The line will''       °
  380.  '                                                                             °
  381.   '''    become highlighted. If the mouse is also moved up or down, a'''       °
  382.   '''    block of lines may be so highlighted. Marked blocks need not'''       °
  383.   '''    be continuous. Marking an already highlighted line or block wil       °
  384.  l''' '''    "unmark" it.'''                                                   °
  385.   ''' 2) Another way to mark lines is to place the cursor on the line'''       °
  386.   '''    BELOW (or ABOVE) the line to be marked, and by pressing the SHI       °
  387.  FT''' '''    and the UP or DOWN arrow.'',r'                                   °
  388.   '''Once text or APL expressions have been highlighted, they can be'''        °
  389.   '''erased or copied. To see how this works, try the following exercise       °
  390.  :''' 'tested'                                                                 °
  391.   '''The "Find" option on the Edit menu allows you to search for specifi       °
  392.  c'''                                                                          °
  393.   '''character strings. The search always proceeds from the current plac       °
  394.  e'''                                                                          °
  395.   '''of the prompt. You can not only specify the string to be found,'''        °
  396.   '''but also give a replacement string. The buttons allow you to search       °
  397.  '''                                                                           °
  398.   '''forward or backwards. You can replace a specific string wherever'''       °
  399.   '''it ocurrs, you can ignore case, and you can search only for APL nam       °
  400.  es.'''                                                                        °
  401.   '''Try the following exercise to get acquainted with this feature:'',r       °
  402. X' 'testfi' 'end'                                                              °
  403. *(1996 3 29 16 24 8 384)                                                       °
  404.  FTEACH5 ÉFX 'TEACH5' 'Σ Opening an APL2 object'                               °
  405.   '''  The last item on the Edit pull down menu provides a way to edit''       °
  406.  '                                                                             °
  407.   '''APL2 defined functions, defined operators and rank 2 character arra       °
  408.  ys.'''                                                                        °
  409.   '''There is one other restriction: In the early versions of APL2OS2 th       °
  410.  e'''                                                                          °
  411.   '''object to be edited had to exist in the workspace. This no longer i       °
  412.  s''' '''a requirement.'''                                                     °
  413.   '''When you select the "Open Object..." of the "Edit" pull down menu,        °
  414.  an'''                                                                         °
  415.   '''"Open Object" window appears. There are three buttons in the middle       °
  416.   of'''                                                                        °
  417.   '''this box. They are labelled: Variables, Functions, Operators. The''       °
  418.  '                                                                             °
  419.   '''Function button is selected by default. Above these buttons, there        °
  420.  is'''                                                                         °
  421.   '''a box named "Open object name". You need not write in this box. Loo       °
  422.  k'''                                                                          °
  423.   '''instead down in the box labelled "Objects" and click on the name th       °
  424.  at'''                                                                         °
  425.   '''you wish to edit. Then press on the OK button. (If you pressed the'       °
  426.  ''                                                                            °
  427.   '''"Variables" button, and then selected a variable not containing a''       °
  428.  '                                                                             °
  429.   '''rank-2 character array, you will hear a beep, and the bottom line o       °
  430.  f''' '''the Session manager window will display an error message.)'''         °
  431. X 'do' 'testob' 'end'                                                          °
  432. *(1996 3 31 14 51 43 632)                                                      °
  433.  FTEACH6 ÉFX 'TEACH6;LOOP' 'Σ Signals pull down menu'                          °
  434.   '''THE SIGNALS MENU'',r'                                                     °
  435.   '''If, as it happens occasionally, something goes wrong, you will want       °
  436.  '''                                                                           °
  437.   '''to interrupt the APL2 processing. You can use the SIGNALS pull down       °
  438.  '''                                                                           °
  439.   '''menu to do that. Of course, the PAUSE and ESC PAUSE (BREAK) keys ca       °
  440.  n'''                                                                          °
  441.   '''also be used In fact, the first two options on the Signals pull dow       °
  442.  n''' '''menu contain two words:'',r'                                          °
  443.   ''' SUPPRESS  PAUSE'',r,'' ATTENTION BREAK'',r'                              °
  444.   '''(The second word gives the key name on the keyboard). Why the'''          °
  445.   '''terminology? (Suppress=Pause and Attention=Break) A mystery!'',r'         °
  446.   ''' When the PAUSE option is pressed, APL processing stops but no othe       °
  447.  r''' '''action takes place.'''                                                °
  448.   ''' When the BREAK option is pressed, evaluation stops immediately. Th       °
  449.  e'''                                                                          °
  450.   '''function name and the line number will appear. The prompt also move       °
  451.  s''' '''to a new line waiting for a keyboard entry.''' 'do'                   °
  452.   ''' The third line on the Signals pull down menu is the INTERRUPT. Thi       °
  453.  s'''                                                                          °
  454.   '''simulates an error interrupt. As for the BREAK, processing will'''        °
  455. X '''continue if you enter ╕ÉLC.''' 'do' 'testsi' 'end'                        °
  456. *(1996 3 28 16 49 33 580)                                                      °
  457.  FTEACH7 ÉFX 'TEACH7' 'Σ Options pull down menu'                               °
  458.   '''THE OPTIONS MENU'',r'                                                     °
  459.   '''The next pull down menu is called "Options". It allows you to modif       °
  460.  y'''                                                                          °
  461.   '''the behavior of your keyboard, and the Session Manager window. You'       °
  462.  ''                                                                            °
  463.   '''should test out the available options in the following exercises'''       °
  464.   '''even if you are satisfied with the installed setup defaults.'''           °
  465.   'do' '''APL On'',r'                                                          °
  466.   '''There is a toggle switch that allows you to make the keyboard behav       °
  467.  e'''                                                                          °
  468.   '''as either APL2 or ASCII. You can activate this toggle switch by one       °
  469.   of''' '''two ways:'',r'                                                      °
  470.   ''' 1. by simultaneously pressing Ctl and Backspace'''                       °
  471.   ''' 2. by marking the "APL On" line on the Options pull down menu'',r'       °
  472.   '''Look at the bottom line of the Session Manager window. It should re       °
  473.  ad'''                                                                         °
  474.   '''"Input [APL]". Now select the "Options menu" and remove the check''       °
  475.  '                                                                             °
  476.   '''mark from the "APL On" line. The "[APL]" will disappear from the'''       °
  477.   '''bottom line, meaning that the keyboard is now an ASCII keyboard. To       °
  478.  '''                                                                           °
  479.   '''return to the APL font place a check mark on the "APL On" line of t       °
  480. Xhe''' '''Options menu, or just press Ctl AND Backspace.''' 'end'              °
  481. *(1996 3 28 16 49 45 628)                                                      °
  482.  FTEACH8 ÉFX 'TEACH8' 'Σ Keyboards' '''CUSTOMIZING KEYBOARDS'',r'              °
  483.   '''There are on the market a variety of keyboards. When you installed'       °
  484.  ''                                                                            °
  485.   '''APL2OS2 the process may not have defined the layout of the keys the       °
  486.  '''                                                                           °
  487.   '''way as they are shown on your keyboard. The line "Select Keyboard"'       °
  488.  ''                                                                            °
  489.   '''gives you the capability to re-define your keyboard to one of sever       °
  490.  al'''                                                                         °
  491.   '''common standards. When you select "Select Keyboard", a window named       °
  492.  '''                                                                           °
  493.   '''"Keyboard Layout Selection" appears. A window within this window'''       °
  494.   '''called "Layout Names" displays a list of available layouts.'',r'          °
  495.   '''The current setting is highlighted in this window. As an exercise,'       °
  496.  ''                                                                            °
  497.   '''select the line labelled "APL2 Union with European Characters", the       °
  498.  n'''                                                                          °
  499.   '''press OK. Now hold Alt down, and press in turn the keys for Q,P and       °
  500.   M.'''                                                                        °
  501.   '''You should see characters used in writing Spanish. To return back t       °
  502.  o'''                                                                          °
  503.   '''APL2, select "Select Keyboard" again and this time highlight the'''       °
  504.   '''keyboard option that is most convenient for your configuration.'''        °
  505.   'do'                                                                         °
  506.   '''Suppose now, that your keyboard does not fit the pattern of any one       °
  507.  '''                                                                           °
  508.   '''of the available layouts. You can not only inspect what characters'       °
  509.  ''                                                                            °
  510.   '''are associated with your current keyboard, but you can even design'       °
  511.  '' '''your own layout.'',r'                                                   °
  512.   ''' All of this is possible if you select the "Modify Keyboard" option       °
  513.  .'''                                                                          °
  514.   '''When you select "Modify Keyboard ...", a new window called the'''         °
  515.   '''"Keyboard Layout Modification" appears. On the left side there is a       °
  516.  '''                                                                           °
  517.   '''keyboard display (6 pages) showing all the possible characters that       °
  518.  '''                                                                           °
  519.   '''are available to you. At the top right an option window displays th       °
  520.  e''' '''current layout name.'',r'                                             °
  521.   '''(You can look at other layout names by pressing the button to the''       °
  522.  ' '''right of this window, and selecting other names.)'',r'                   °
  523.   '''In fact, do the following exercise: Select in turn each of the'''         °
  524.   '''layout names, and then inspect the keyboard layout (displayed on th       °
  525.  e'''                                                                          °
  526.   '''window)for each of the four states: Base, Shift, Ctrl and Alt. (You       °
  527.  '''                                                                           °
  528.   '''select the state by pressing the appropriate button on the "State"'       °
  529.  '' '''panel.)''' 'do'                                                         °
  530.   '''Even if you are an accomplished user of APL, there may come a time'       °
  531.  ''                                                                            °
  532.   '''when you may not recall what key to press to get a specific APL2'''       °
  533.   '''symbol. The "Modify Keyboard" option lets you see quickly the'''          °
  534.   '''keyboard layout for any of the 4 keyboard states: BASE SHIFT CTRL''       °
  535.  ' '''and ALT.''' 'do'                                                         °
  536.   '''Now that you have become familiar with what is available, suppose t       °
  537.  hat'''                                                                        °
  538.   '''you desire to design your own keyboard. To do that, select the "Add       °
  539.  "'''                                                                          °
  540.   '''button. Then enter the name of the keyboard of your own design on t       °
  541.  he'''                                                                         °
  542.   '''"Add New Layout" window and press OK. A copy of your current keyboa       °
  543.  rd'''                                                                         °
  544.   '''will be transferred to your layout. To modify your own keyboard,'''       °
  545.   '''select a character from the keyboard display table by clicking on i       °
  546.  t,'''                                                                         °
  547.   '''and then select the key where that characte is to be placed. Contin       °
  548.  ue'''                                                                         °
  549.   '''this process until you have satisfied your requirements. You save t       °
  550.  he'''                                                                         °
  551.   '''newly defined keyboard layout by pressing the "Apply" button.'''          °
  552. X 'end'                                                                        °
  553. *(1996 3 28 16 49 57 676)                                                      °
  554.  FTEACH9 ÉFX 'TEACH9' 'Σ Setting up fonts' '''SETTING UP FONTS'',r'            °
  555.   '''The choice of characters on the "Characters Notebook" of the "Modif       °
  556.  y'''                                                                          °
  557.   '''Keyboard" option can be changed by selecting different fonts.'',r'        °
  558.   '''Of course as long as you plan to use APL2, your choice of fonts is'       °
  559.  ''                                                                            °
  560.   '''limited to those that support the special APL symbols. If, however,       °
  561.  '''                                                                           °
  562.   '''you have an application that does not use APL2 symbols, you can sel       °
  563.  ect'''                                                                        °
  564.   '''any one of the many fonts supported by your Operating System.'',r'        °
  565.   '''When you select the "Font..." option, a "Font" window will appear o       °
  566.  n'''                                                                          °
  567.   '''your screen. There are four fields on this window (Name, Size, Styl       °
  568.  e''' '''and Sample).'',r' '''Name'''                                          °
  569.   '''  This field contains the font name that is currently active. If yo       °
  570.  u'''                                                                          °
  571.   '''press the button at the right of this field, you will see a listing       °
  572.   of'''                                                                        °
  573.   '''other fonts supported by OS2. Marking any one of these names will m       °
  574.  ark'''                                                                        °
  575.   '''this font as a possible change. The box labelled "Sample" will disp       °
  576.  lay'''                                                                        °
  577.   '''a sample text in that font. To select the font, press the "Apply"''       °
  578.  ' '''button.''' 'do' '''Size'''                                               °
  579.   '''  This window displays a measure of the size of the characters. To'       °
  580.  ''                                                                            °
  581.   '''see how this works, mark the button at right and then select some''       °
  582.  '                                                                             °
  583.   '''numbers from the list. The Sample window will display the text in t       °
  584.  he''' '''selected sizes.''' 'do' '''Style'''                                  °
  585.   '''  The Style window may or may not provide one or more styles depend       °
  586.  ing'''                                                                        °
  587.   '''on the font. If the font supports both the "Normal" and "Bold" styl       °
  588.  es,'''                                                                        °
  589.   '''you can see best the difference on a large size (e.g. 24). By the w       °
  590.  ay,''' '''the font named "Helvetica" supports four distinct styles.'''        °
  591.   'do'                                                                         °
  592.   '''If you have selected a font a size and/or a style that you prefer,'       °
  593.  ''                                                                            °
  594.   '''select the "Apply" button. Pressing the "Reset" button will return'       °
  595.  ''                                                                            °
  596.   '''to the original font/size/style. Pressing the OK button will change       °
  597. X''' '''the setup of the setting and end the "Font" window.''' 'end'           °
  598. XCa 0 %                                                                        °
  599. *(1991 11 11 8 25 11 308)                                                      °
  600.  Faddquote ÉFX 'u╜addquote w'                                                  °
  601.   'Σ Put quotes around a string, and double existing quotes'                   °
  602. X 'u╜ÉAV[40],((1+w=ÉAV[40])/w),ÉAV[40]'                                        °
  603. *(1991 11 11 8 25 11 308)                                                      °
  604. XFaq ÉFX 'u╜aq w' 'Σ Enclose quoted string' 'u╜Γaddquote w'                    °
  605. *(1991 11 11 8 25 11 308)                                                      °
  606.  Fav ÉFX 'av;a;n;i;ÉIO' 'Σ Display characters in the Atomic vector'            °
  607.   'ÉIO╜0' 'a╜22 78µ'' ''' 'n╜3 0«φ12 22µ1+∞256'                                °
  608.   'a[;,(6⌡∞12)°.+2 3 4]╜n' 'a[;6+6⌡∞12]╜φ12 22µÉAV'                            °
  609. X 'a[7 8 10 13;6]╜'' ''' 'a[14+∞8;68 69 70 72]╜'' ''' 'a'                      °
  610. *(1996 3 29 15 43 50 624)                                                      °
  611.  Fcopyright ÉFX 'copyright' 'Σ Copyright statement'                            °
  612.   '(10µ'' ''),''Copyright, Z. V. Jizba, 1995'',r'                              °
  613.   '''This and subsequent workspaces labelled TEACHxx are made available'       °
  614.  ''                                                                            °
  615.   '''at no cost to anyone who desires to learn how to use effectively'''       °
  616.   '''the IBM/OS2 version of APL2.'',r'                                         °
  617.   '''This software is provided "AS IS" with no WARRANTY of any kind, eit       °
  618.  her'''                                                                        °
  619.   '''express or implied. Any risk in its use resides with you, the user        °
  620. Xof''' '''these tutorials.''' '''(PRESS ENTER to continue)''' 'do'             °
  621. XCd 0 "                                                                        °
  622. *(1991 11 11 8 25 13 316)                                                      °
  623.  Fdate ÉFX 'u╜date w' 'Σ Format date and time of day' 'u╜«6╞w'                 °
  624. X 'u╜('' ''⌠u)Γu' 'u╜εu,■''-- .. '''                                           °
  625. XCdig 1 10 1234567890                                                          °
  626. *(1991 11 11 8 25 10 304)                                                      °
  627.  Fdo ÉFX 'do;t;e;b' 'Σ Expression driver' 'e╜''''' 'æ╜''       ''' 't╜æ'       °
  628.   '╕(^/'' ''=t)/0'                                                             °
  629.   '╕(('':''εt)doif ''b╜evaldd (+/^\'''' ''''=t)╟t'')/2'                        °
  630.   '''e╜ÉEM'' ÉEA t' '╕(0=µ,e)/2'                                               °
  631.   '''This is not a valid APL2 expression''' 'æ╜''*''' '╕(''?''⌠╞1╟æ)/2'        °
  632. X 'e' '╕2'                                                                     °
  633. *(1992 8 16 11 5 26 312)                                                       °
  634.  Fdoif ÉFX 'U╢╜V╢ doif W╢;t╢;e╢;c╢;r╢' 'Σ Rule' '╕(^/~U╢╜V╢)/0'                °
  635. X 'W╢╜V╢/W╢' '╕(1<╧W╢)/L1' '»W╢' '╕0' 'L1:t╢╜»■W╢'                             °
  636. XCe 1 0                                                                        °
  637. *(1996 3 31 14 34 39 548)                                                      °
  638.  Fend ÉFX 'end' '''²²''' 'e╜''''' 'æ╜''       ''' 't╜æ' '╕(^/'' ''=t)/0'       °
  639.   '╕(('':''εt)doif ''b╜evaldd (+/^\'''' ''''=t)╟t'')/3'                        °
  640.   '''e╜ÉEM'' ÉEA t' '╕(0=µ,e)/0'                                               °
  641.   '''This is not a valid APL2 expression''' 'æ╜''*''' '╕(''?''⌠╞1╟æ)/0'        °
  642. X 'e'                                                                          °
  643. *(1991 11 11 8 25 11 308)                                                      °
  644. XFendd ÉFX 'endd' 'Σ End of document' '20µ''²''' 'do'                          °
  645. *(1995 4 23 14 14 25 380)                                                      °
  646.  Ferase ÉFX 'erase;t;DISPLAY;DOS;GO;PROFILE;SVOFFER' 't╜ÉNL 3'                 °
  647.   't╜(~t^.εlc,'' '')≡t' 't╜ÉEX(~t[;∞5]^.=''TEACH'')≡t' 't╜ÉNL 2'               °
  648. X 't╜ÉEX(~t^.εlc,'' '')≡t' 't╜ÉNL 4' 't╜ÉEX(~t^.εlc,'' '')≡t'                  °
  649. *(1991 11 11 8 25 12 312)                                                      °
  650.  Fevaldd ÉFX 'u╜evaldd w;c;n'                                                  °
  651.   'Σ Evaluate a direct definition expression' 'u╜0' 'n╜(w∞''Σ'')-1'            °
  652.   'c╜(((n╞w)⌠'':'')Γn╞w),Γ''ΣDD '',(n+1)╟w' '╕(label╞c)/0'                     °
  653.   '╕((2=µc)doif ''u╜showdd 1╙c'')/0'                                           °
  654.   '╕((3=ÉNC╞c)doif ''u╜⌡µÉ╜(╞c),'''' is already defined.'''''')/0'             °
  655.   '╕((3=µc)doif ''u╜simdd c'')/0' 'c╜(Γ''α∙ aw'')replace■c'                    °
  656.   'u╜ε''u╜'',((''a''εεc[2 3 4])/''a ''),(╞c),'' w;t;b'''                       °
  657.   'u╜u(5πc)(''b╜(t╜'',(3πc),'')/'',addquote ''u╜'',4πc)'                       °
  658. X 'u╜u,''╕(t doif b)/0''(''u╜'',2πc)' 'u╜╧ÉFX u'                               °
  659. *(1995 5 24 13 49 1 428)                                                       °
  660.  Fexa ÉFX 'exa' 'Σ OS2 exercise' '''OS/2 EXERCISE'',r'                         °
  661.   '''Before discussing APL, it is useful do an exercise using the mouse'       °
  662.  '' '''to switch between APL2 and the desktop'',r'                             °
  663.   '''In the upper right hand corner of the APL2 Session Manager window,'       °
  664.  ''                                                                            °
  665.   '''there are two buttons. The one with the small square will "minimize       °
  666.  "'''                                                                          °
  667.   '''this window. Before you try it, be sure to write down the following       °
  668.  ''' '''steps (so you can return back to APL2 quickly):'',r'                   °
  669.   ''' 1. Click on the "minimize" button. (The APL2 window will disappear       °
  670.  )'''                                                                          °
  671.   ''' 2. Click on the "Window list" (in OS/2 2.1 double click on the rig       °
  672.  ht'''                                                                         °
  673.   '''    mouse button) A "Window list" window will appear. This list has       °
  674.  '''                                                                           °
  675.   '''    the names of all active windows (whether they are visible or no       °
  676.  t).'''                                                                        °
  677.   ''' 3. Click on the line "APL2 Session Manager". This will return you'       °
  678.  '' '''    back to APL''' 'do'                                                 °
  679.   '''Remember these steps. They will be useful on a number of occasions'       °
  680.  ''                                                                            °
  681.   '''in these tutorials, whenever there will be reference to "minimizing       °
  682. X''' '''the Session Manager".''' 'do'                                          °
  683. *(1991 11 11 8 25 11 308)                                                      °
  684.  Fexit ÉFX 'exit w' 'Σ Exit if there are too many suspended functions'         °
  685. X '╕((10>µÉLC)doif ''w'')/0' '''Please re-enter '',w' '╕'                      °
  686. XCf 1 2  {                                                                     °
  687. *(1992 8 16 11 27 52 504)                                                      °
  688.  Ffkeys ÉFX 'fkeys W;B;T' 'Σ Display currenttly defined fkeys'                 °
  689.   'B╜~^/W=ÉAV[1]'                                                              °
  690.   '╕((^/B)doif ''''''Currently no F keys are defined'''''')/0'                 °
  691.   '''The following Fkeys are currently defined (r stands for ÉAF 0)'',r'       °
  692. X 'T╜(r,'' r'')replace W' '0 tab B≡(π«■∞30),'' '',T'                           °
  693. XCg 1 2  }                                                                     °
  694. *(1991 11 11 8 25 12 312)                                                      °
  695.  Fget ÉFX 'u╜v get w;t' 'Σ Prompt for response from keyboard'                  °
  696.   't╜(0=ÉNC ''V'')doif ''V╜1''' 'w╜w,(~²1╞v)/'': ''' 'L0:æ╜w' 't╜æ'            °
  697.   '╕((''╕''=(µw)╟t)doif ''╕'')/0' '╕(^/'' ''=w)/L1'                            °
  698.   '╕((~w╧(µw)╞t)doif ''''''PLEASE DO NOT BACKSPACE'''''')/L0'                  °
  699.   't╜(µw)╟t' 'L1:u╜(²1+(,'' ''⌠t)∞1)╟t' '╕(1╞v)/0' 't╜(u⌠'' '')Γu'             °
  700. X 'u╜(µt),(Γu),t'                                                              °
  701. *(1991 11 11 8 25 11 308)                                                      °
  702.  Fglobals ÉFX 'globals' 'Σ Initialize useful global variables' 'r╜2╙ÉTC'       °
  703.   'q╜40╙ÉAV' 's╜Φp╜'' '',d╜35╙ÉAV' 'uc╜''ABCDEFGHIJKLMNOPQRSTUVWXYZ'''         °
  704.   'lc╜''abcdefghijklmnopqrstuvwxyz''' 'dig╜''1234567890'''                     °
  705. X 'g╜'' '',h╜126╙ÉAV' 'f╜ÉAV[33 124]' 'a╜38╙ÉAV'                               °
  706. XCh 0 }                                                                        °
  707. *(1996 3 28 16 45 40 592)                                                      °
  708.  Fhelp ÉFX 'help'                                                              °
  709.   '''If you feel that a single linear reading of these lessons is not th       °
  710.  e'''                                                                          °
  711.   '''best way to lear about APL2OS2, you may try to do the following.'',       °
  712.  r' '''1. At any pause enter: ÉCR ''''TEACH'''''''                             °
  713.   '''   (a listing of the components of the tutorial workspace will appe       °
  714.  ar)'''                                                                        °
  715.   '''2. Jot down the names that appear in UPPER CASE --mostly TEACHxx--'       °
  716.  ''                                                                            °
  717.   '''3. Each of these is a component of the lesson that can be invoked''       °
  718.  '                                                                             °
  719.   '''   at the pause simply by entering its name. This will repeat that'       °
  720.  ''                                                                            °
  721.   '''   portion of the tutorial. The completion of each portion is marke       °
  722. Xd''' '''   by a line containing ²².''' 'end'                                  °
  723. *(1991 11 11 8 25 12 312)                                                      °
  724.  Finitialize ÉFX 'initialize;t' 'Σ  Initialize workspace' 'erase'              °
  725. X 'globals'                                                                    °
  726. *(1991 11 11 8 25 11 308)                                                      °
  727.  Fkeys ÉFX 'keys' 'Σ Display keyboard'                                         °
  728.   '''        1  2  3  4  5  6  7  8  9  0  +  ⌡'''                             °
  729.   '''SHFT ╒  ■  ²  <  ≤  =  ≥  >  ⌠  δ  ^  -  ÷'''                             °
  730.   '''ALT  ╘  ƒ  ·  ⁿ  √  Φ  φ  Θ  ╡  τ  σ  !  Æ''' ''''''                      °
  731.   '''         Q  W  E  R  T  Y  U  I  O  P  ╜  ╙  ╧'''                         °
  732.   '''SHFT     ?  ∙  ε  µ  ~  ╞  ╟  ∞  Ω  *  ╕  ╨  ╤'''                         °
  733.   '''ALT      q  w  e  r  t  y  u  i  o  p  æ  ≈  ╥'''                         °
  734.   '''CTRL     ┌  ┬  ┐              ╔  ╦  ╗''' ''''''                           °
  735.   '''          A  S  D  F  G  H  J  K  L  [  ]'''                              °
  736.   '''SHFT      α  ⌐  ╛  _  ╖  ╢  °  ''''  É  (  )'''                           °
  737.   '''ALT       a  s  d  f  g  h  j  k  l  »  «'''                              °
  738.   '''CTRL     ├  ┼  ┤       ─  ═    ╠  ╬  ╣''' ''''''                          °
  739.   '''           Z  X  C  V  B  N  M  ,  .  /'''                                °
  740.   '''SHFT       Γ  π  ∩  ¼  ¥  ÿ  |  ;  :  \'''                                °
  741.   '''ALT        z  x  c  v  b  n  m  Σ  ±  ≡'''                                °
  742.   '''CTRL      └  ┴  ┘  │  ║      ╚  ╩  ╝''' ''''''                            °
  743. X '''Toggle switch to ASCII is CTL-BACKSPACE''' '''CTRL+G gives beep'''        °
  744. *(1991 11 11 8 25 12 312)                                                      °
  745.  Flabel ÉFX 'u╜label w'                                                        °
  746.   'Σ Return 1 if w is not a valid character string label (also excludes        °
  747. Xl.c.)' '╕(u╜(1<µµw)δ1<╧w)/0' '╕(u╜~^/wεlc,uc,dig)/0' 'u╜w[1]εlc,dig'          °
  748. XClc 1 26 abcdefghijklmnopqrstuvwxyz                                           °
  749. *(1991 11 11 8 25 12 312)                                                      °
  750.  Fnon ÉFX 'non;t;rc;et;r'                                                      °
  751.   'Σ Ignore invalid keyboard entries, but evaluate valid APL2 expression       °
  752.  s' 'æ╜''       ''' 't╜æ' '╕(0=µ(t⌠'' '')/t)/0' '(rc et r)╜ÉEC t'              °
  753. X '╕(0=rc)/2' '╕((1=rc)doif ''r'')/2' '╕2'                                     °
  754. *(1991 11 11 8 25 12 312)                                                      °
  755.  Fnotb ÉFX 'u╜notb w' 'Σ Remove trailing blanks'                               °
  756.   '╕((1<╧w)doif ''u╜notb■ w'')/0' '╕((1<µµw)doif ''u╜πnotb Γ[2]w'')/0'         °
  757. X 'u╜(1-(,'' ''⌠Φw)∞1)╟w'                                                      °
  758. XCp 1 2  "                                                                     °
  759. *(1991 11 11 8 25 12 312)                                                      °
  760.  Fpause ÉFX 'v pause w;t'                                                      °
  761.   'Σ Pause, then print w v spaces right and return'                            °
  762. X 't╜(0=ÉNC ''v'')doif ''v╜6''' 'do' '(vµ'' ''),w' 'do'                        °
  763. XCq 0 '                                                                        °
  764. XCr 0                                                                         °
  765. *(1992 8 16 10 55 24 500)                                                      °
  766.  Freplace ÉFX 'u╜v replace w;i;r;s;t' 'Σ  Replace elements in v in w'          °
  767.   '╕((1<µµw)doif ''u╜π(Γv) replace■ Γ[µµw]w'')/0' 'i╜Γ∞µu╜w'                   °
  768.   't╜(1=╧v)doif ''v╜(v⌠'''' '''')Γv''' 's╜,2πv' 'i╜⌡r╜i⌡(1πv)╤■Γw'             °
  769.   '╕((2≥╧v)doif ''u[(εi)/εr]╜s[(εi)/εi⌡■∞µs]'' ''u╜εu'')/0'                    °
  770. X '''u╜w'' ÉEA ''u╜(╞r)╢rep╞╞v'''                                              °
  771. *(1991 11 11 8 25 12 312)                                                      °
  772.  Fround ÉFX 'u╜v round w' 'Σ Half adjust w to vth decimal'                     °
  773. X 'u╜(╛0.5+w⌡10*v)÷10*v'                                                       °
  774. XCs 1 2 "                                                                      °
  775. *(1991 11 11 8 25 12 312)                                                      °
  776.  Fshow ÉFX '╢v show ╢w;╢t;╢b' 'Σ Display and execute ╢w'                       °
  777.   '╢t╜(0=ÉNC ''╢v'')doif ''╢v╜0'''                                             °
  778.   '╕((0=╧╢w)doif ''show ╢w,'''' '''''')/0'                                     °
  779.   '╕((1<╧╢w)doif ''╢v show■ ╢w'')/0' '''      '',╢w'                           °
  780. X '╕((╢v^'':''ε╢w)doif ''╢t╜evaldd ╢w'')/L0' '''ÉEM'' ÉEA ╢w' 'L0:do'          °
  781. *(1991 11 11 8 25 13 316)                                                      °
  782.  Fshowdd ÉFX 'u╜showdd w;a;b;c;r'                                              °
  783.   'Σ  Display a direct definition function'                                    °
  784.   '╕((1=╧w)doif ''u╜showdd Γw'')/u╜0'                                          °
  785.   '╕((3⌠ÉNC╞w)doif ''(ε╞w),'''' is not a function'''''')/0'                    °
  786.   'c╜Γ[2]ÉCR╞w' 'c╜notb(2╞c),(Γ''aw α∙'')replace■2╟c'                          °
  787.   '╕((~''ΣDD''╧3╞2πc)doif ''''''Not a direct definition function'''''')/       °
  788.  0' 'u╜1' 'b╜('' ''⌠╞c)Γ╞c' 'a╜''      ''' 'r╜2╟3πc'                           °
  789.   '╕((3=µc)doif ''a,(╞w),'''':'''',r,(3<µ2πc)/''''   Σ'''',3╟2πc'')/0'         °
  790.   'a╜a,(╞w),'':'',(2╟5πc),'':''' 'b╜(+\r=''('')-+\r='')''' 'b╜b∞0'             °
  791. X 'a╜a,(²3╟(b-1)╞3╟r),'':'',2╟»(b+2)╟r' 'a,(3<µ2πc)/''  Σ'',3╟2πc'             °
  792. *(1991 11 11 8 25 13 316)                                                      °
  793.  Fshowfn ÉFX 'u╜v showfn w;f;n;t;ÉIO' 'Σ Simulate the STSC ÉVR command'        °
  794.   't╜(0=ÉNC ''v'')doif ''v╜0''' 'ÉIO╜0'                                        °
  795.   'u╜r,''      '',''╖'',w,''[É]'',(╞v)╞''╖''' 'n╜1╞µf╜ÉCR w' 'n╜«∞n'           °
  796.   'n╜(n⌠'' '')Γn' 'f╜(π''['',■n,■Γ''] ''),f'                                   °
  797.   't╜(1<µ,v)doif ''f╜f[1╟v;]'' ''u╜''''''''''' 'u╜²1╟u,r,,f,r'                 °
  798. X 'u╜((-+/^\'' ''=Φu)╟u),('' ''(r,''      ╖'',date 2 ÉAT w))[╞v],r'            °
  799. *(1991 11 11 8 25 13 316)                                                      °
  800.  Fsimdd ÉFX 'u╜simdd w;e' 'Σ Simple direct definition mode' 'u╜0'              °
  801.   '╕((0⌠ÉNC╞w)doif ''''''Already defined'''''')/0' 'e╜''α''ε2πw'               °
  802.   'w[2]╜Γ''u╜'',''α∙ aw'' replace 2πw' 'w╜w[1 3 2]'                            °
  803. X 'w[1]╜Γε''u╜'',(e/''a ''),w[1],'' w''' 'u╜╧ÉFX w'                            °
  804. XCt 1 17        S╢TEACH╜''                                                     °
  805. *(1992 6 3 9 59 17 424)                                                        °
  806.  Ftab ÉFX 'U╜V tab W;T;A;B;C;D;E;F;G;M;ÉPW' 'Σ Tabulate list W'                °
  807.   'T╜(0=ÉNC ''V'')doif ''V╜0''' 'M╜''Invalid data for tabulation'''            °
  808.   'V╜4╞V' 'ÉPW╜130╛30⌐G╜V[2]+79⌡V[2]=0'                                        °
  809.   'L1:╕((1<╧W)doif ''''''W╜∞0'''' ÉEA ''''W╜πW'''''')/L1'                      °
  810.   '╕(((0=µεW)δ2<µµW)doif ''U╜(~V╧4╞0)/M'')/0'                                  °
  811.   'T╜(1≥µµU╜«W)doif ''U╜πW╜(U⌠'''' '''')ΓU'''                                  °
  812.   'T╜(0<V[1])doif ''U╜(«(Φ1,╞µW)µ(V[3]µ'''' ''''),∞(╞µW)-V[3]),'''' ''''       °
  813.  ,U''' '╕(G<30)/0' 'T╜(F╜µεV[4])+C╜1╟B╜µA╜(V[3],0)╟U'                          °
  814.   'T╜⌐(1╞B)÷1⌐╛(ÉPW+F)÷T' 'U╜(E╜(V[3],C)╞U),[1](B╜T,1╟B)╞A'                    °
  815.   '''D╜εV[4]'' ÉEA ''D╜ÉAV[εV[4]+33⌡V[4]=0]''' 'L0:A╜(T,0)╟A'                  °
  816. X '╕(0=1╞µA)/0' 'U╜U,(((T+V[3]),µD)µD),E,[1]B╞A' '╕L0'                         °
  817. *(1992 12 19 18 32 12 420)                                                     °
  818.  Ftestap ÉFX 'U╜V testap W;B;D;S;T'                                            °
  819.   'Σ Test for existence of specific AP"s' 'D╜''D'',■«■W╜,W'                    °
  820.   'T╜W ÉSVO■D' 'U╜0' '╕((^/B╜2=ÉSVO■D)doif ''T╜ÉEX■ D'')/0'                    °
  821.   '╕(2=ÉNC ''V'')/L0'                                                          °
  822.   'T╜''The following Auxilliary Processor'',(S╜1<+/~B)╞''s'''                  °
  823.   'T,(ε(S+1)╙'' is'' '' are''),'' not available'',(~B)/W' 'L0:U╜1'             °
  824. X 'T╜ÉEX■D'                                                                    °
  825. *(1995 6 11 13 18 39 408)                                                      °
  826.  Ftested ÉFX 'tested' 'Σ Exercise the Edit pull down menu'                     °
  827.   '''First, mark one or more lines of the above text.'''                       °
  828.   ''' ( Since plain text is not executable by APL, be sure that the last       °
  829.  '''                                                                           °
  830.   '''   marked line is a blank one -- because it is the last line that A       °
  831.  PL''' '''   tries to evaluate.)''' 'do'                                       °
  832.   '''Select "Copy" from the Edit menu. The marked text will be stored in       °
  833.   a'''                                                                         °
  834.   '''buffer. Now place the pointer at the BOTTOM of the page and pull do       °
  835.  wn'''                                                                         °
  836.   '''the "Edit" menu again. This time select the "Paste" line. The selec       °
  837.  ted'''                                                                        °
  838.   '''text will be pasted at the pointer. Mark this pasted text again,'''       °
  839.   '''and this time select the "Cut" option from the pull down menu. The'       °
  840.  '' '''selected text will disappear.''' 'do'                                   °
  841.   '''In addition to the "Cut", "Copy" and "Paste", you should also try t       °
  842.  he'''                                                                         °
  843.   '''"Delete Marked", and the "Unmark all" options. Try to find the'''         °
  844. X '''difference between "Cut" and "Delete marked".''' 'do'                     °
  845. *(1995 6 11 14 35 37 472)                                                      °
  846.  Ftestfi ÉFX 'testfi' 'Σ Exercise the FIND option'                             °
  847.   '''Place the cursor at the top of the page, then select the "Find" opt       °
  848.  ion'''                                                                        °
  849.   '''from the "Edit" menu. A FIND window will appear on the screen. Ente       °
  850.  r'''                                                                          °
  851.   '''the string "CUT" on the "Find text:" line. Then press the FIND butt       °
  852.  on.'''                                                                        °
  853.   '''If you have followed these instructions, there should be a QUAD ove       °
  854.  r'''                                                                          °
  855.   '''the C of the word "CUT" above. Press FIND again. The QUAD moves to        °
  856.  the''' '''next ocurrence of the word.'',r'                                    °
  857.   '''Now click on the buttons labelled "Reverse search" and "Ignore case       °
  858.  "'''                                                                          °
  859.   '''and press again on the FIND button. Then press FIND button again. T       °
  860.  hen'''                                                                        °
  861.   '''press "cancel"- or the left mouse button outside the FIND window. (       °
  862.  The'''                                                                        °
  863.   '''QUAD will be replaced by the pointer, and the FIND window disappear       °
  864.  s.)''' 'do'                                                                   °
  865.   '''This time the search went bacwards, and the QUAD was replaced by th       °
  866.  e''' '''pointer.'',r'                                                         °
  867.   '''To see how the replacement option works, move the pointer to the to       °
  868.  p'''                                                                          °
  869.   '''of the second last paragraph. Then open the FIND window fom the Edi       °
  870.  t menu'''                                                                     °
  871.   '''(note that its contents remain unchanged). Enter the string "REMOVE       °
  872.  "'''                                                                          °
  873.   '''on the line labelled "Replace text:". Then click on "Reverse search       °
  874.  "'''                                                                          °
  875.   '''to remove the check, and on the "Change all ocurrences" (to place a       °
  876.  '''                                                                           °
  877.   '''check mark there). This time, pressing the REPLACE button, all'''         °
  878.   '''ocurrences of "cut" past the pointer will be replaced by REMOVE.'''       °
  879. X 'do'                                                                         °
  880. *(1995 5 29 14 34 10 428)                                                      °
  881.  Ftestlog ÉFX 'testlog' 'Σ Store and retrieve a session log'                   °
  882.   '''Take a blank formatted diskette and insert it into drive A:; then c       °
  883.  lick'''                                                                       °
  884.   '''on the "Log" pull down menu and select "Save as...". A "Save as" wi       °
  885.  ndow'''                                                                       °
  886.   '''will appear. It has five boxes labelled: "Save as filename", "Save        °
  887.  file'''                                                                       °
  888.   '''as type", "Drive", "File", and "Directory". The name shown on "Save       °
  889.   as'''                                                                        °
  890.   '''filename" apl00001.log is the default name of the log file. You can       °
  891.  '''                                                                           °
  892.   '''change this name if you wish. Next, click on the arrow button of th       °
  893.  e'''                                                                          °
  894.   '''"Drive" box and select the A: drive. When you do that, the "File" b       °
  895.  ox'''                                                                         °
  896.   '''should become empty (unless you have some files on your A:drive flo       °
  897.  ppy).'''                                                                      °
  898.   '''Press the OK button. The contents of the current session log will b       °
  899.  e''' '''transferred to the A disk.''' 'do'                                    °
  900.   '''Now, click on the "Log" pull down list again, and this time select        °
  901.  the'''                                                                        °
  902.   '''"NEW" line. A "Session Manager Message" box will appear. Click on t       °
  903.  he''' '''OK button. Your session manager screen will clear.'',r'              °
  904.   '''To recover your session log, click on the "Log" pull down menu agai       °
  905.  n,'''                                                                         °
  906.   '''and click on OPEN. Select the A: drive, and the session log. When y       °
  907. Xou''' '''click on OK, your original session will be restored.''' 'do'         °
  908. *(1996 3 31 14 39 3 424)                                                       °
  909.  Ftestob ÉFX 'testob;T;FOO;ARRAY;OP' 'Σ Test the Edit Object option'           °
  910.   'T╜ÉFX ''FOO'' ''Σ Sample APL2 function'' ''''''Replace this line by t       °
  911.  ext'''''''                                                                    °
  912.   'T╜ÉFX ''(X OP) W'' ''Σ Sample APL2 defined operator'' ''X/W'''              °
  913.   'ARRAY╜2 2µ''ABCD'''                                                         °
  914.   '''This exercise will show how the Edit function works. When you press       °
  915.  '''                                                                           °
  916.   '''"Open object..", there is a sample function (FOO), a sample array''       °
  917.  ' '''(ARRAY) and a sample operator (OP) that you can edit without'''          °
  918.   '''disturbing the functions of this workspace.'',r'                          °
  919.   '''To see these objects, enter ÉCR ''''FOO'''', then ÉCR ''''OP'''', a       °
  920.  nd'''                                                                         °
  921.   '''finally DISPLAY ARRAY. (Or just enter: FOO, then +OP ∞5 and ARRAY)'       °
  922.  '' 'do'                                                                       °
  923.   '''Now, select the VARIABLES button from the "Open object" window. The       °
  924.  '''                                                                           °
  925.   '''"Objects" box will show a list of active variables in this workspac       °
  926.  e.'''                                                                         °
  927.   '''Click on the ARRAY line. The word ARRAY will appear on the top box.       °
  928.  '''                                                                           °
  929.   '''If you now click on the OK button, a new window will appear showing       °
  930.  '''                                                                           °
  931.   '''the contents of this variable. You can now make changes to the arra       °
  932.  y.'''                                                                         °
  933.   '''When finished, enter DISPLAY ARRAY, to see the contents of this'''        °
  934.   '''variable. Befoe you quit this exercise, try also to edit the functi       °
  935. Xon''' '''FOO and the operator OP.'',r' '''WARNING: If you''' 'do'             °
  936. *(1996 3 31 14 54 53 684)                                                      °
  937.  Ftestsi ÉFX 'testsi;LOOP;T'                                                   °
  938.   'Σ Test pulldown options in the Signals pull down menu'                      °
  939.   '''A function such as LOOP can be used here to test the three options'       °
  940.  ''                                                                            °
  941.   '''of the Signals pull down menu. This function does not work well unl       °
  942.  ess'''                                                                        °
  943.   '''you place a check mark on "Scroll" line of the OPTONS pull down men       °
  944.  u.'''                                                                         °
  945.   '''(Be sure THERE IS A CHECK on the SCROLL line of the OPTIONS menu be       °
  946.  fore''' '''you proceed with this exercise!)'''                                °
  947.   'T╜ÉFX ''LOOP'' ''É╜''''DELAY='''',ÉDL 1'' ''╕1''' 'showfn ''LOOP'''         °
  948.   'do'                                                                         °
  949.   '''When you enter LOOP, a message will appear on the screen every'''         °
  950.   '''second. By pressing PAUSE this activity will stop. To continue, you       °
  951.  '''                                                                           °
  952.   '''have to press either BREAK or INTERRUPT, followed by ╕ÉLC. The mess       °
  953.  age''' '''will continue appearing every second or so.'''                      °
  954.   '''After pressing BREAK, the prompt moves to a new line. Enter ÉLC to'       °
  955.  ''                                                                            °
  956.   '''see where in the execution stack you are. Now enter ╕ÉLC again to''       °
  957.  '                                                                             °
  958.   '''continue execution of the loop. Then select the INTERRUPT option'''       °
  959.   '''from the menu. This will cause an INTERRUP message to be displayed'       °
  960.  ''                                                                            °
  961.   '''on the screen. To exit the loop enter ╕0 after a BREAK or INTERRUPT       °
  962.  ''' '''Now, enter: LOOP'',r' 'æ╜''      '' ╪ »æ'                              °
  963.   '''In summary, PAUSE will just halt the execution. BREAK will interrup       °
  964.  t'''                                                                          °
  965.   '''and place the prompt on a new line waiting for an keyboard entry.''       °
  966.  ' '''BREAK will simulate an error by displaying an error message.'''          °
  967. X 'do'                                                                         °
  968. XCuc 1 26 ABCDEFGHIJKLMNOPQRSTUVWXYZ                                           °
  969. *(1996 3 29 15 48 20 524)                                                      °
  970.  Fwelcome ÉFX 'welcome' 'Σ Introduction to APL2OS2 tutorials'                  °
  971.   '''Welcome to the APL2OS2 tutorial. If you are not acquainted with APL       °
  972.  ,'''                                                                          °
  973.   '''you should begin with the workspace TEACH1. If you already know APL       °
  974.  '''                                                                           °
  975.   '''and if you use APL2/PC, the workspaces named TEACH23 trough TEACH40       °
  976.  '''                                                                           °
  977.   '''have tutorials on the auxilliary processors supported by that versi       °
  978.  on'''                                                                         °
  979.   '''of APL2. This lesson is first of the series explaining APL2OS2.'',r       °
  980.  ' '''The objective of this and subsequent lessons is to provide an'''         °
  981.   '''interactive environment for learning and testing of those features'       °
  982.  ''                                                                            °
  983.   '''of APL2OS2 that are unique to this product. Although most if not al       °
  984.  l'''                                                                          °
  985.   '''of the information is available on-line, it is not in a form that''       °
  986.  '                                                                             °
  987.   '''can be tested at the same time as one reads the text. To be sure,''       °
  988.  '                                                                             °
  989.   '''the documentation is displayed in a separate window, so that it can       °
  990.  '''                                                                           °
  991.   '''be moved, minimized and manipulated. If you feel that the IBM on li       °
  992.  ne'''                                                                         °
  993.   '''documentation is adequate, you may wish to exit from this workspace       °
  994.  ,'''                                                                          °
  995.   '''and ignore these tutorials. Nevertheless, you might try to read on,       °
  996.  ''' '''and possibly find this approach useful.'',r'                           °
  997.   '''NOTE: Whenever there is a pause, you are expected to:'''                  °
  998.   ''' a) read the text'',r,'' b) follow the instructions (if any)'''           °
  999.   ''' c) press Enter to continue the lesson'',r'                               °
  1000.   '''As the lesson proceeds, you may on occasion scroll back to see any'       °
  1001.  ''                                                                            °
  1002.   '''discussion or explanation that may no longer be visible. If this'''       °
  1003.   '''is not adequate, you may also enter "help" (in l.c. and no quotes)'       °
  1004. X'' '''for another way to use this tutorial.'''                                °
  1005.