home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / forth / fig86.arc / FORTH1.DOC < prev    next >
Text File  |  1982-11-18  |  31KB  |  1,002 lines

  1.  
  2.  
  3.  
  4.         I.  Introduction
  5.         II.  User's guide
  6.              A.  System requirements
  7.              B.  FORTH, calculator style
  8.                   1.  Getting started
  9.                   2.  Compiling definitions
  10.                   3.  Exiting FORTH
  11.              C.  Using the disk
  12.                   1.  FORTH's view of the disk
  13.                        a. Blocks
  14.                        b. Screens
  15.                   2.  Creating and editing new words
  16.                   3.  Compiling source definitions
  17.              D.  Modifying FORTH
  18.                   1.  Saving new FORTH's
  19.                   2.  Patching
  20.                   3.  Assembly source modification
  21.              E.  Glossary extension
  22.                   1.  Assembly listing definitions
  23.                   2.  Deleted words
  24.                   3.  High-level extensions
  25.              F.  FORTH application screens
  26.                   1.  Moving DOS files to FORTH screens
  27.                   2.  Using the screens
  28.         III.  Technical matters
  29.              A.  Modifications to fig-FORTH v1.0
  30.                   1.  Boot parameters
  31.                   2.  Machine code definitions
  32.                   3.  High-level utility definitions
  33.                   4.  Installation dependent code
  34.                        a.  Terminal i/o
  35.                        b.  Printer i/o
  36.                        c.  Disk i/o
  37.                   5.  High-level definitions
  38.                   6.  System tools
  39.                   7.  RAM workspace
  40.                   8.  Memory map
  41.         III.  Future extensions
  42.         IV.  FORTH sources
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.                                         1
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.              Thi≤ i≤ ß descriptioε oµ modification≤ to¼á anΣ instruction≤ 
  71.         fo≥ usσ of¼ 808╢ fig-FORT╚ v1.0╗ a≤ modifieΣ fo≥ MS-DO╙ by:
  72.  
  73.              Joe Smith
  74.              University of Pennsylvania
  75.              Dept. of Chemistry
  76.              250 S. 33rd St.
  77.              Philadelphia, PA 19104
  78.  
  79.         I.  Introduction
  80.  
  81.              Iεá Augus⌠ oµ 1981¼á havinτ aε 8086¼á bu⌠ preciou≤ littlσ t∩ 
  82.         ruεá oεá it¼á ╔á begaε t∩ investigatσá FORT╚á a≤á aεá alternativσ 
  83.         programminτ language«á  Thσ fiτ assembl∙ listinτ fo≥ thσ 808╢ wa≤
  84.         editeΣá ont∩ disδ durinτ Apri∞ oµ 1982¼á usinτ thσ mnemonic≤á fo≥ 
  85.         Seattlσáá Compute≥á Product≤á 808╢á assembler«áá  Oncσá thσá tex⌠ 
  86.         interprete≥ wa≤ running¼ thσ disδ interfacσ wa≤ re-writteε t∩ ruε 
  87.         unde≥ SCP'≤ 86-DOS«  Iε augus⌠ oµ 1982¼ sligh⌠ modification≤ werσ 
  88.         madσ t∩ takσ advantagσ oµ feature≤ supporteΣ b∙ MS-DO╙ v1.25.
  89.  
  90.              Thσá origina∞ goa∞ wa≤ t∩ instal∞ ß languagσ fo≥ m∙ owε use«  
  91.         Tha⌠á i≤á stil∞ m∙ primar∙á interest«á   Fo≥á thi≤á reason¼á thi≤ 
  92.         versioεá oµá thσá languagσá i≤ recommendeΣá fo≥á peoplσá wh∩á arσ 
  93.         familia≥á witΦá thei≥á computer¼á anΣ (somewha⌠á les≤á important⌐ 
  94.         familia≥ witΦ FORTH«á  Iµ yo⌡ arσ ne≈ t∩ FORTH¼á yo⌡ wil∞ havσ t∩ 
  95.         diτ fo≥ somσ oµ thσ basiπ information«  Whilσ i⌠ i≤ certainl∙ onσ 
  96.         wa∙ t∩ learn¼ i⌠ i≤ slo≈ anΣ sometime≤ frustrating«  Iµ yo⌡ arσ ß 
  97.         persoε wh∩ enjoy≤ understandinτ anΣ tinkerinτ witΦ thσ mechanism≤ 
  98.         (reaΣ 'hacker')¼á yo⌡ shoulΣ fee∞ righ⌠ a⌠ home«á  Iµ  yo⌡ arσ aε 
  99.         experienceΣá FORT╚á user¼á yo⌡ caε tel∞ mσ al∞ thσ thing≤á ╔á diΣ 
  100.         wrong!
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                         2
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.         II.  User's guide
  137.  
  138.              Thi≤á documentatioεá present≤ specifiπ detail≤ necessar∙á t∩ 
  139.         usσ FORT╚ unde≥ MS-DO╙ (e⌠ al.)«á  I⌠ i≤ no⌠ mean⌠ t∩ bσ ß user'≤ 
  140.         guide to FORTH in general.
  141.  
  142.              A.  System requirements
  143.  
  144.              Minimum:  16K + system, no disks   
  145.              Maximum║  64╦ ½ system¼ ▓ disk≤  ╜   standarΣ configuratioε 
  146.  
  147.              B.  FORTH, calculator style
  148.                   1.  Getting started
  149.  
  150.              Afte≥ executinτ FORT╚ b∙ givinτ COMMAN─ thσ namσ oµ thσ .CO═ 
  151.         prograφ wherσ FORT╚ resides¼ ß banne≥ wil∞ appea≥ t∩ le⌠ yo⌡ kno≈ 
  152.         FORT╚á i≤á read∙á t∩ executσá you≥á commands«á  Thi≤á i≤á FORTH'≤ 
  153.         executioε state«á  A⌠ thi≤ point¼á typσ ß carriagσ return╗  FORT╚ 
  154.         shoulΣá responΣá witΦá 'ok'«á  Iµ i⌠ doesn't¼á theεá yo⌡á havσá ß 
  155.         problem«  
  156.  
  157.              KeyboarΣ entrie≤ arσ handleΣ b∙ thσ FORT╚ worΣ EXPECT¼ whicΦ 
  158.         onl∙ know≤ abou⌠ tw∩ 'specialº keys║á <BACKSPACE╛ anΣ <CR>«á  An∙ 
  159.         othe≥ ke∙ i≤ assumeΣ t∩ bσ ß valiΣ character«á  N∩ MS-DO╙ editinτ 
  160.         function≤ arσ available«á  Thσ exac⌠ ke∙ whicΦ EXPEC╘á recognize≤ 
  161.         a≤á <BACKSPACE╛ i≤ se⌠ iε FORTH'≤ colΣ star⌠ parameter≤ t∩ <CTRL-
  162.         H╛ ¿ notσ changσ froφ fig¼á wherσ <BACKSPACE╛ ╜ 5╞ he° )«  Iµ yo⌡ 
  163.         tr∙á t∩ backspacσ pas⌠ thσ beginninτ oµ thσá line¼á thσá termina∞ 
  164.         shoulΣá bee≡á anΣ leavσ thσ curso≥ a⌠ thσ beginninτ oµ thσá line«  
  165.         Notσ als∩ tha⌠ thσ backspacσ i≤ destructive¼á anothe≥ changσ froφ 
  166.         thσ fig-FORT╚ EXPECT.
  167.  
  168.              Othe≥ keyboarΣ function≤ arσ provideΣ b∙á MS-DOS«á  <CTRL-S╛ 
  169.         wil∞á pausσ consolσ output╗á   <CTRL-P>/<CTRL-N╛ toggle≤á printe≥ 
  170.         echo«  <CTRL-C╛ cause≤ executioε oµ thσ FORT╚ worΣ (ABORT)¼ whicΦ 
  171.         execute≤ ABORT¼á haltinτ an∙ i/o¼á resettinτ thσ tex⌠ interprete≥ 
  172.         anΣ printinτ thσ start-u≡ banner«á  ABOR╘ clear≤ thσ stacks¼á bu⌠ 
  173.         doesn'⌠á empt∙ thσ disδ buffers«á  T∩ tes⌠ thesσ functions¼á typσ 
  174.         VLIS╘á <CR>«á  VLIS╘á shoulΣá begiεá printinτá thσá entirσá FORT╚ 
  175.         vocabular∙ a⌠ thσ console«á  T∩ pausσ thσ listing¼ typσ <CTRL-S>╗ 
  176.         t∩ abor⌠ thσ listing¼ typσ <CTRL-C>.
  177.  
  178.              Notσ tha⌠ (ABORT⌐ ma∙ bσ patcheΣ b∙ FORT╚ t∩ executσ ß user-
  179.         defined error handler.
  180.  
  181.                   2.  Compiling definitions
  182.  
  183.              Therσá i≤ nothinτ peculia≥ abou⌠ enterinτ definition≤ a⌠ thσ 
  184.         keyboard«á  Oncσ yo⌡ typσ ß ':'¼á yo⌡ arσ iε thσ compilinτ state«  
  185.         N∩á 'okºá i≤ printeΣ unti∞ yo⌡ finisΦ you≥ definitioεá witΦá ';'«  
  186.         Definition≤ ma∙ havσ u≡ t∩ 8░ character≤ oε ß line¼á anΣ a≤á man∙ 
  187.         line≤ a≤ needed«á However¼á n∩ editinτ i≤ possiblσ oncσ ß linσ i≤ 
  188.         endeΣ b∙ <CR>«á  Iµ yo⌡ makσ ß mistake¼á you≥ definitioε mus⌠á bσ 
  189.         starteΣ over.
  190.  
  191.  
  192.  
  193.                                         3
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.              Try the following definition.
  203.  
  204.              : STAR   42 EMIT ;<CR>
  205.  
  206.         FORT╚ shoulΣ responΣ 'okº afte≥ yo⌡ typσ thσ <CR>«á  No≈ tr∙ you≥ 
  207.         definitioεá b∙ typinτ STAR<CR>«á  FORT╚ shoulΣ prin⌠á '*ok'«á  Iµ 
  208.         tha⌠ worked¼ tr∙ this:
  209.  
  210.              : MILKY-WAY
  211.                BEGIN  
  212.                   STAR SPACE SPACE 
  213.                   ?TERMINAL 
  214.                UNTIL ;
  215.  
  216.         Remembe≥á yo⌡ won'⌠ ge⌠ aε 'okº unti∞ yo⌡ finisΦá thσá definitioε 
  217.         witΦá thσ semi-colon«á  An∙ leadinτ space≤ oε ß linσ arσ ignored«  
  218.         Tes⌠ you≥ definitioε b∙ typinτ MILKY-WAY<CR>«  Wheε yo⌡ ge⌠ tireΣ 
  219.         oµ sta≥ gazing¼á sto≡ thσ prograφ b∙ hittinτ an∙ key«á Thσá star≤ 
  220.         should stop, and FORTH should say 'ok'.
  221.  
  222.              Iµáá yo⌡á wan⌠á t∩á tr∙á morσá definitions¼áá fee∞á freσá t∩ 
  223.         experiment¼á bu⌠ don'⌠ tr∙ an∙ disδ operations«á  A⌠ thi≤á point¼ 
  224.         all you would get is garbage.
  225.  
  226.                   3.  Exiting FORTH
  227.  
  228.              BY┼á i≤ thσ usua∞ fig-FORT╚ worΣ t∩ exi⌠ FORT╚ anΣ returε t∩ 
  229.         the calling program; COMMAND normally, or DEBUG.
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.                                         4
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.              D.  Using the disk
  269.  
  270.                   1.  FORTH's view of the disk
  271.                        a.  Blocks
  272.  
  273.              Thσá commoεá FORT╚ mas≤ storagσ devicσ i≤ seeε a≤á ßá simplσ 
  274.         arra∙á oµá blocks¼á referreΣ t∩ b∙ number¼á froφ zer∩ u≡á t∩á thσ 
  275.         physica∞ capacit∙ oµ thσ disk«á  Thesσ block≤ arσ accesseΣ iε an∙ 
  276.         orde≥á anΣá completel∙á independen⌠ oµ thσá MS-DO╙á filσá system«  
  277.         Thus¼á FORT╚á canno⌠á acces≤ MS-DO╙ files¼á anΣ FORT╚á disk≤á arσ 
  278.         nonsensσ t∩ MS-DOS«á  Fo≥ thi≤ reason¼á yo⌡ wil∞ neeΣ ßá seperatσ 
  279.         disk¼á dedicateΣá t∩á FORT╚á screen≤ ONLY«á  Thσ disδá shoulΣá bσ 
  280.         formatteΣá fo≥á single-densit∙á IB═á format«áá  Thσá exac⌠áá disδ 
  281.         parameter≤á caε bσ changeΣ t∩ othe≥ formats¼á bu⌠ yo⌡ shoulΣá usσ 
  282.         thσá standarΣ one≤ unti∞ yo⌡ kno≈ wha⌠ yo⌡ arσ doing«á  Iµá therσ 
  283.         arσ an∙ file≤ oε thσ disk¼ it'≤ alrigh⌠ becausσ FORT╚ wil∞ ignorσ 
  284.         them«  
  285.  
  286.  
  287.                        b. Screens
  288.  
  289.              Internally¼á FORT╚á see≤á thσá disδ a≤á block-sizeΣá pieces╗ 
  290.         however¼á thσ use≥ i≤ presenteΣ witΦ ßá fixed¼á 1024-byte¼á chunδ 
  291.         referreΣá t∩ a≤ ß screen«á  Notσ tha⌠ ß screeε may¼á o≥ ma∙á not¼ 
  292.         corresponΣá t∩ onσ block«á  ┴ FORT╚ screeε appear≤ a≤ 1╢ line≤ oµ 
  293.         6┤á characters«á  Thi≤á i≤ ONL┘ fo≥ appearancσ íá  Therσá arσá n∩ 
  294.         physica∞á <CR>/<LF╛á character≤á betweeεá lines¼áá anΣá thσá 63rΣ  
  295.         characte≥á iεá an∙á linσá i≤á logicall∙á adjacen⌠á t∩á thσá firs⌠ 
  296.         characte≥ iε thσ followinτ line«á  Thσ firs⌠ linσ oµ tex⌠ screen≤ 
  297.         i≤ usuall∙ reserveΣ fo≥ ß shor⌠ descriptioε oµ thσ contents.
  298.  
  299.              Usinτá 128-bytσá blocks¼á aε 8ó disδ iε thσ standarΣá forma⌠ 
  300.         hold≤ 187▓ block≤ ¿ 0-187▒ )¼á o≥ 23┤ screen≤ ¿ 0-23│á )«á  Blocδ 
  301.         1872 is the first block on drive 1.
  302.  
  303.              T∩á tes⌠ FORTH'≤ disδ interface¼á tr∙ thσá following«á Star⌠ 
  304.         FORT╚ and¼á afte≥ yo⌡ ge⌠ thσ 'ok'¼ replacσ you≥ systeφ disδ witΦ 
  305.         ß scratcΦ disδ a≤ describeΣ above«  Bσ prepareΣ t∩ LOS┼ AN┘ FILE╙ 
  306.         oεá thi≤ diskíá  Checδ thσ curren⌠ screeε b∙ typinτ 'SC╥ ?º «á I⌠ 
  307.         shoulΣ bσ ┤ ¿ whicΦ i≤ thσ initia∞ valuσ fo≥ thσ variablσ SC╥á )«  
  308.         Iµá i⌠ isn't¼á typσ COLD¼á anΣ repea⌠ thσ abovσá procedure«á  Thσ 
  309.         curren⌠ screeε shoulΣ no≈ bσ 4«  Typσ EDITO╥ t∩ selec⌠ thσ edito≥ 
  310.         vocabulary¼á theεá ente≥ 'WIPEº t∩ fil∞ thi≤ screeε witΦá blanks«  
  311.         Don'⌠ bσ alarmeΣ iµ therσ i≤ n∩ disδ activit∙ a⌠ thi≤ point«  No≈ 
  312.         typσ 'Lº t∩ vie≈ thσ screeε - i⌠ shoulΣ bσ al∞ blanks«á  No≈ typσ 
  313.         'FLUSH'«á  No≈á therσá shoulΣ bσ somσ disδá activity¼á anΣá FORT╚ 
  314.         shoulΣ returε 'ok'«  Iµ therσ seem≤ t∩ bσ somσ problem¼ d∩ ß COL─ 
  315.         start¼á anΣ tr∙ again«á  Iµ thσ probleφ persists¼á makσ surσá thσ 
  316.         scratcΦá disδ i≤ properl∙ formatted¼á anΣ tr∙ again«á  Hopefully¼ 
  317.         therσ won'⌠ bσ an∙ hangups¼á anΣ you'l∞ ge⌠ thσ 'ok'«á  No≈á typσ 
  318.         'Lºá again«á  FORT╚á shoulΣ g∩ bacδ t∩ thσ disk¼á theεá lis⌠á thσ 
  319.         blanδá screen«á  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                         5
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.              Ente≥ somσ tex⌠ int∩ linσ zer∩ oµ thσ screeε b∙ typinτ '░ Tº 
  335.         followeΣá b∙ '╨ ¿ thi≤ i≤ screeε 4¼á linσ ░ )'«á  Lis⌠ thσ screeε 
  336.         agaiε t∩ makσ surσ thσ tex⌠ i≤ properl∙ placed¼á anΣ usσ FLUS╚ t∩ 
  337.         senΣ i⌠ t∩ thσ disk«  Wheε yo⌡ typσ 'Lº again¼ thσ tex⌠ shoulΣ bσ 
  338.         jus⌠ a≤ yo⌡ lef⌠ it.
  339.  
  340.                   2.  Creating and editing new words
  341.  
  342.              Therσá arσá tw∩ line-orienteΣ editor≤ includeΣ iε thσá FORT╚ 
  343.         screens«  Onσ i≤ thσ edito≥ a≤ describeΣ iε "Startinτ FORTH"╗ thσ 
  344.         othe≥áá i≤á thσá fig-FORT╚á portablσá edito≥á describeΣá iεáá thσ 
  345.         Installatioεá Manual«á  Thσá editor≤ ma∙ bσ useΣ t∩ placσá sourcσ 
  346.         tex⌠á oε disk¼á wherσ i⌠ caε bσ modifieΣ withou⌠á re-writinτá thσ 
  347.         wholσá definition«á  Thσ edito≥ describeΣ iε "Startinτ FORTHó ha≤ 
  348.         beeε compileΣ anΣ includeΣ iε thσ .CO═ file.
  349.  
  350.              Tr∙á editinτá thσ definition≤ abovσ fo≥ STA╥á anΣá MILKY-WA┘ 
  351.         onto a screen on your scratch disk.
  352.  
  353.                   3.  Compiling source screens
  354.  
  355.              Wheεá yo⌡ havσ finisheΣ enterinτ thσ definitions¼á usσ FLUS╚ 
  356.         t∩ makσ surσ thσ disδ ha≤ thσ lates⌠ versioε oµ thσ screen¼á theε 
  357.         typσ '┤ LOAD'«  Iµ FORT╚ say≤ 'ok'¼ tes⌠ you≥ ne≈ version≤ oµ thσ 
  358.         definition≤á t∩ makσ surσ the∙ werσ compileΣ correctly«á  Iµá yo⌡ 
  359.         ge⌠á aε erro≥ whilσ loading¼á usσ WHER┼ t∩ seσ thσ linσ wherσ thσ 
  360.         problem is.
  361.  
  362.              Iµ everythinτ look≤ 'okº u≡ t∩ thi≤ point¼á theε yo⌡ caε usσ 
  363.         DEBU╟, a≤ describeΣ below anΣ iε thσ termina∞ sessioε listing¼ t∩ 
  364.         movσá thσ MS-DO╙ filσ oµ FORT╚ screen≤ ove≥ t∩ you≥ scratcΦá disδ 
  365.         where FORTH can use them.
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                         6
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.               E«  Modifyinτ FORTH
  401.                   1.  Saving new FORTHs
  402.  
  403.              Onσ oµ thσ nicσ thing≤ abou⌠ FORT╚ i≤ thσ abilit∙ t∩á extenΣ 
  404.         thσ language«á  Iµ yo⌡ definσ ß worΣ whicΦ yo⌡ wan⌠ t∩ usσ often¼ 
  405.         withou⌠ re-compilinτ i⌠ ever∙ time¼ yo⌡ caε savσ thσ change≤ iε ß 
  406.         ne≈ .CO═ file«á  Thσ proces≤ involve≤ usinτ DEBU╟ t∩ loaΣ FORTH'≤ ì
  407.         FORT╚ itselµ )¼ executinτ thσ FORT╚ word≤ NE╫ ¿ whicΦ update≤ al∞ ì
  408.         thσ COL─ star⌠ parameter≤ ⌐ anΣ SIZE┐á ¿ whicΦ tell≤ yo⌡ ho≈á biτ ì
  409.         thσá ne≈ dictionar∙ i≤ )¼á theε exitinτ FORT╚ anΣ usinτ DEBU╟á t∩ ì
  410.         writσá thσá ne≈á .CO═ file«á  Fo≥ ßá detaileΣá example¼á seσá thσ ì
  411.         termina∞ sessioε listing.
  412.  
  413.              FORTH'≤áá .CO═á filσá a≤á distributeΣá wa≤á constructeΣáá b∙ 
  414.         assemblinτ thσ source¼á theε LOADinτ additiona∞ word≤ ¿ includinτ 
  415.         thσá edito≥ )¼á anΣ savinτ thσ resultinτ dictionar∙ usinτá DEBUG«  ì
  416.         Thσ FORT╚ screen≤ loadeΣ t∩ producσ FORTH.CO═ caε bσ founΣ iε thσ ì
  417.         termina∞ sessioε listing.
  418.  
  419.                   2.  Patching
  420.  
  421.              Mostá oµ thσ parameter≤ whicΦ affec⌠ thσ operatioε oµá FORT╚ 
  422.         arσ placeΣ iε thσ boot-u≡ paramete≥ areß a⌠ thσ lo≈ enΣ oµ FORTH«  
  423.         Thesσ ma∙ bσ freel∙ modifieΣ usinτ DEBUG¼á o≥ froφ withiεá FORTH«  
  424.         Oεá executioεá oµá COLD¼á thσ change≤ wil∞ bσá incorporateΣá int∩ 
  425.         FORTH«  Patche≤ sucΦ a≤ thi≤ caε bσ madσ permanen⌠ usinτ DEBUG.
  426.  
  427.                   2.  Assembly source modification
  428.  
  429.              Change≤á no⌠ possiblσ througΦ thσ othe≥ tw∩ method≤á caεá bσ 
  430.         incorporateΣá int∩á thσ assembl∙ source«á  Yo⌡ caε stud∙ thσá fiτ 
  431.         listinτ fo≥ detail≤ oε thσ inne≥ working≤ oµ thσ interpreter;á o≥ 
  432.         my listing for details specific to MS-DOS.
  433.  
  434.              Notσá thσá alignmen⌠ requirements«á  Thσ ALIG╬ pseudo-o≡á i≤ ì
  435.         requireΣá wheεá thσá namσá lengtΦ i≤á even¼á anΣá als∩á wheεá thσ ì
  436.         alignmen⌠á ma∙á havσ beeε los⌠ iε thσá previou≤á word«á  Thi≤á i≤ ì
  437.         s∩ tha⌠ yo⌡ caε calculatσ thσ linδ fielΣ fo≥ thσ followinτ word.
  438.  
  439.              Bσá awarσ oµ tw∩ problem≤ here║á first¼á i⌠ i≤ ver∙ eas∙á t∩ 
  440.         losσáá tracδáá oµá thσá change≤á yo⌡á make¼áá s∩á documen⌠áá EAC╚ 
  441.         modification«á  Second¼á morσ change≤ makσ you≥ versioε oµá FORT╚ 
  442.         morσ uniquσ ¿ o≥ maybσ jus⌠ strangσ )¼á anΣ an∙ definition≤ usinτ 
  443.         tha⌠á uniquσ featurσ les≤ portable«á  WeigΦ thesσ factor≤á beforσ 
  444.         makinτ change≤ t∩ thσ source«á  Don'⌠ adΣ bell≤ anΣ whistle≤ jus⌠ 
  445.         to be different.
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.                                         7
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.              F.  Glossary extension
  467.  
  468.              Thσá followinτá i≤á aε extensioε oµ thσá fig-FORT╚á glossar∙ 
  469.         included in the fig Installation manual.
  470.  
  471.                   1.  Assembly listing additions
  472.  
  473.              Thσá followinτá word≤ werσ addeΣ t∩á thσá assembl∙á listing«  
  474.         They are all CODE level words.
  475.  
  476.              (2ARR)                   n1 n2 PFA -- addr
  477.         Tw∩á dimensiona∞ arra∙ primitivσ useΣ b∙ 2ARRAY«á  Thσ addres≤ oµ 
  478.         thσ arra∙ elemen⌠ a⌠ ro≈ n1¼á columε n▓ oµ aε arra∙ beginninτá a⌠ 
  479.         PFA+┤á i≤á lef⌠ oε thσ stack«á  I⌠ i≤ assumeΣ tha⌠ thσ rowsizσá ¿ 
  480.         i.e.¼á ú column≤ ⌐ i≤ storeΣ a⌠ PFA«  Thσ content≤ oµ PFA+▓ woulΣ 
  481.         normall∙á holΣá thσá numbe≥á oµ rows¼á bu⌠ i≤á no⌠á useΣá iεá thσ 
  482.         calculation.
  483.  
  484.              (2CARR)                  n1 n2 PFA -- addr
  485.         Tw∩á dimensiona∞á bytσá arra∙ primitivσá useΣá b∙á STRINGS«á  Thσ 
  486.         addres≤á oµá thσ arra∙ elemen⌠ a⌠ ro≈ n1¼á columε n▓ oµ aεá arra∙ 
  487.         beginninτ a⌠ PFA+┤ i≤ lef⌠ oε thσ stack«á  I⌠ i≤ assumeΣ tha⌠ thσ 
  488.         rowsizσá i≤ storeΣ a⌠ PFA«á  Thσ content≤ oµ PFA+▓ coulΣ holΣ thσ 
  489.         numbe≥á oµ row≤ o≥ thσ curren⌠ lengtΦ oµ thσ string╗á i⌠á i≤á no⌠ 
  490.         useΣ iε thσ calculation.
  491.  
  492.              (ARRAY)                  n PFA -- addr
  493.         Intege≥á arra∙ primitivσ useΣ b∙ ARRAY«á  Thσ addres≤ oµ thσá ntΦ 
  494.         elemen⌠ iε thσ arra∙ beginninτ a⌠ PFA+▓ i≤ calculateΣ anΣ lef⌠ oε 
  495.         the stack.  The length of the array is stored at PFA.
  496.  
  497.              (CARR)                   n PFA -- addr
  498.         Bytσá arra∙á primitivσ useΣ b∙ CARRAY«á  Thσ addres≤ oµá thσá ntΦ 
  499.         characte≥ iε thσ arra∙ beginninτ a⌠ PFA+▓ i≤ calculateΣ anΣá lef⌠ 
  500.         oε thσ stack«á  Thσ lengtΦ oµ thσ array¼ o≥ curren⌠ lengtΦ oµ thσ 
  501.         string may be stored at PFA.
  502.  
  503.              (XOF)                    n1 n2 -- n1 ( no match, n1<>n2 )
  504.                                       n1 n2 --    ( match, n1=n2 )
  505.         Contro∞á structurσ primitivσ compileΣ b∙ OF«á  Iµ thσ casσá beinτ 
  506.         scanneΣá fo≥ (n1⌐ matche≤ thσ curren⌠ casσ (n2)¼á thσ taτá n▒á i≤ 
  507.         dropped¼á anΣ thσ FORT╚ word≤ followinτ thσ brancΦ compileΣ b∙ O╞ 
  508.         arσ executed«á  Iµ thi≤ i≤ no⌠ thσ casσ selected¼ thσ taτ i≤ lef⌠ 
  509.         oε thσ stack¼ anΣ scanninτ continue≤ witΦ thσ nex⌠ case.
  510.  
  511.              1-                       n -- n-1
  512.              2-                       n -- n-2
  513.         Decrement operators.
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.                                         8
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.              :!                       n seg offset --
  533.              :@                       seg offset   -- n
  534.              :C!                      n seg offset --
  535.              :C@                      seg offset   -- n
  536.         Fa≥ fetch/storσ operators«á  Thesσ arσ simila≥ t∩ thσ usua∞ FORT╚ 
  537.         fetch/storσ words¼á excep⌠ the∙ usσ ß double-worΣ address«á  Notσ 
  538.         that the absolute location accessed is: seg*16 + offset.
  539.  
  540.              BLOCK-READ               --
  541.              BLOCK-WRITE              --
  542.         Primitivσá routine≤ responsiblσ fo≥ disδ access«á  Thesσ routine≤ 
  543.         usσá thσá FORT╚ variable≤ DRIVE¼á USE¼á SEC/BLK¼á anΣá RECOR─á t∩ 
  544.         transfe≥á thσá appropriatσá numbe≥ oµ disδá record≤á to/froφá thσ 
  545.         buffe≥á specifieΣá b∙á USE«á  Thσ FORT╚á variablσá DISK-ERRO╥á i≤ 
  546.         set/rese⌠á t∩á signa∞á aεá error«á  DISK-ERRO╥á i≤á zer∩á iµá thσ 
  547.         operatioεá wa≤ successful╗á non-zer∩ iµ not«á  Thσ erro≥ codσá i≤ 
  548.         tha⌠ returneΣ b∙ thσ MS-DO╙ read/writσ interrupt≤ ¿ 25╚ ª 26╚á )¼ 
  549.         excep⌠ tha⌠ writσ error≤ are negative.
  550.  
  551.              DATE!                    mon day yr --
  552.              DATE@                    -- yr day mon
  553.         Datσ fetch/storσ operators«á  Iµ an∙ oµ thσ parameter≤ arσ ou⌠ oµ 
  554.         range, no changes are made.
  555.  
  556.              MYSEG                    -- seg
  557.         Thi≤á worΣá return≤ thσ valuσ oµ FORTH'≤ curren⌠á segment«á  Thi≤ 
  558.         allow≤á thσá thσ fa≥ fetch/storσ operator≤á t∩á acces≤á location≤ 
  559.         inside FORTH in the usual way.
  560.  
  561.              PRINTER                  -- addr
  562.         ┴á variablσ whicΦ cause≤ consolσ i/∩ t∩ bσ echoeΣ t∩ thσ printer«  
  563.         Iµ PRINTE╥ i≤ non-zero¼á thσ printe≥ i≤ 'on'«á  Notσ tha⌠ thi≤ i≤ 
  564.         independen⌠ oµ thσ <CTRL-P>/<CTRL-N╛ ech∩ !
  565.  
  566.              RECORD                   -- addr
  567.         ┴á variablσ whicΦ contain≤ thσ numbe≥ oµ thσ las⌠ logica∞á recorΣ 
  568.         accessed«á  RECOR─á i≤ se⌠ b∙ T&SCAL├ anΣ useΣ b∙ BLOCK-REA─á anΣ 
  569.         BLOCK-WRITE.
  570.  
  571.              TIME!          [sec csec] [hr min] --
  572.              TIME@          -- [sec csec] [hr min]
  573.         Timσá store/fetcΦ operators«á  Thesσ routine≤ set/ge⌠ thσá systeφ 
  574.         time«  Iµ an∙ oµ thσ parameter≤ arσ invalid¼ n∩ change≤ arσ made«  
  575.         Al∞ oµ thσ value≤ arσ bytes¼á bu⌠ arσ packeΣ int∩ ▓ words╗á i.e.¼ 
  576.         thσá lo≈ bytσ oµ thσ to≡ stacδ iteφ hold≤ thσ minutes¼á thσá higΦ 
  577.         byte holds the hours, and so on.
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.                                         9
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                   2.  Deleted words
  599.  
  600.              Thσá followinτá word≤ appearinτ iε thσ fiτ assembl∙á listinτ 
  601.         were not used, and therefore deleted.
  602.  
  603.              SEC
  604.              TRACK
  605.              SET-IO
  606.              SET-DRIVE
  607.              SECRD
  608.              SECWT
  609.  
  610.                   3.  High-level extensions.
  611.  
  612.              Thσá followinτá word≤ werσ addeΣ b∙ compilinτ FORT╚á screen≤ 
  613.         anΣá savinτá thσ ne≈ versioε oµ FORT╚á usinτá DEBUG«á  Thσá FORT╚ 
  614.         sourcσ fo≥ al∞ oµ thesσ word≤ i≤ includeΣ iε thσ screeε file.
  615.  
  616.              ARRAY
  617.              2ARRAY
  618.              STRING
  619.              STRINGS
  620.         ▒ anΣ ▓ dimensiona∞ arra∙ defininτ words«  Seσ thσ sourcσ screen≤ 
  621.         for more comments.
  622.  
  623.              CASE
  624.              OF  ENDOF
  625.              ENDCASE
  626.         Thesσá word≤á adΣá ß casσ construc⌠ t∩á FORTH«á  The∙á havσá beeε 
  627.         documenteΣá iεá severa∞ differen⌠ places«á  Seσ screeε 2▓ fo≥á aε 
  628.         example.
  629.  
  630.              DUMP                addr -- addr2
  631.         Thi≤á worΣá display≤ thσ content≤ oµ locatioεá add≥á t∩á addr2-1╗ 
  632.         addr▓á i≤á lef⌠ oε thσ stacδ s∩ tha⌠ DUM╨ caε bσ entereΣá withou⌠ 
  633.         keepinτ tracδ oµ thσ address«á  Thσ dum≡ i≤ iε thσ curren⌠ numbe≥ 
  634.         base«á  ┴á variablσ SEGMEN╘ i≤ useΣ a≤ thσ base¼á anΣ add≥ i≤á aε 
  635.         offset in that segment.  SEGMENT is initialized to MYSEG.
  636.  
  637.              NEW                      --
  638.         NE╫ update≤ thσ start-u≡ parameter≤ t∩ reflec⌠ thσ curren⌠á statσ 
  639.         oµá FORTH«á  Thi≤ allow≤ compileΣ definition≤ t∩ bσ retaineΣ wheε 
  640.         COL─ i≤ executed«á  Notσ tha⌠ oncσ NE╫ i≤ executed¼á iµ thσ addeΣ 
  641.         word≤á arσá deleteΣ b∙ FORGET¼á thσ start-u≡ parameter≤á wil∞á bσ 
  642.         wrong, and NEW must be done again before a cold start.
  643.  
  644.              SIZE?                    --
  645.         Show≤á thσá curren⌠ sizσ oµ thσ FORT╚ dictionary¼á anΣá thσá freσ 
  646.         spacσ remaining«á  Thi≤ i≤ primaril∙ usefu∞ fo≥ tellinτ DEBU╟ ho≈ 
  647.         biτá ß filσ t∩ creatσ wheε savinτ ß ne≈ versioεá oµá FORTH«á  NE╫ 
  648.         must be run before saving a different version.
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.                                        10
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.              G.  FORTH application screens
  665.                   1.  Moving DOS files to FORTH screens
  666.              
  667.              Occasionall∙á i⌠ ma∙ bσ usefu∞ t∩ havσ FORT╚ screen≤á residσ 
  668.         iε ß DO╙ file«  DEBU╟ ma∙ bσ employeΣ t∩ transfe≥ screen≤ betweeε 
  669.         thσ tw∩ environments«á  Bσ careful¼ back-u≡ botΦ disk≤ BEFOR┼ yo⌡ 
  670.         makσ ß mistake«  Seσ thσ termina∞ sessioε listing≤ fo≥ ß detaileΣ 
  671.         example.
  672.  
  673.                   2.  Using the screens
  674.  
  675.              Sincσá mos⌠á oµ thσ screen≤ arσ simplσ utilties¼á thei≥á usσ 
  676.         shoulΣ bσ self-evident«á  Hopefully¼á iε thσ future¼ morσ comple° 
  677.         applications can be distributed.
  678.  
  679.              LIFE
  680.  
  681.         Thσá LIF┼á prograφá provideΣ i≤ nicσ t∩ watch¼á bu⌠ i≤á no⌠á ver∙ 
  682.         clearl∙á written«á  Yo⌡ wil∞ havσ t∩ writσ you≥ owεá routine≤á t∩ 
  683.         positioε thσ curso≥ oε you≥ terminal«  Thσ word≤ oε screeε 3▒ ma∙ 
  684.         servσá a≤ ß model«á  Afte≥ loadinτ thσ firs⌠ screeε ¿ 3╡ LOA─á )¼ 
  685.         FORT╚á wil∞á inforφá yo⌡ ho≈ t∩ star⌠ thσ game«á  T∩ se⌠á u≡á thσ 
  686.         board¼á  usσá <SPACE╛ » <BACKSPACE╛ t∩ movσ thσ curso≥ righ⌠á anΣ 
  687.         left¼á anΣ <LINEFEED╛ t∩ movσ down¼á o≥ <CR╛ t∩ movσ dowε anΣá t∩ 
  688.         the beginning of the line.  <ESC> starts the activity.
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.                                        11
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.         III.  Technical matters
  731.  
  732.              A.  Modifications to fig-FORTH v1.0
  733.  
  734.              Thi≤á sectioε describe≤ specifiπ change≤ t∩ thσ fiτá listinτ 
  735.         a≤á outlineΣá iεá thσ Installatioε Manual«á  Thσá heading≤á belo≈ 
  736.         corresponΣ t∩ thosσ iε thσ manual╗á iµ n∩ change≤ arσá noted¼á n∩ 
  737.         change≤ havσ beeε madσ t∩ tha⌠ par⌠ oµ thσ model.
  738.  
  739.                   1.  Boot parameters
  740.  
  741.              14 +ORIGIN ( BSIN ) Changed to 08 ( ASCII CTRL-H )
  742.  
  743.                   2.  Machine code definitions
  744.  
  745.              (FIND⌐  ChangeΣ t∩ accomodatσ word-aligneΣ LFA's« Seσ CREAT┼ 
  746.         below.
  747.  
  748.                   3.  High-level utility definitions
  749.  
  750.              1+  2+   Changed to CODE level definitions.
  751.              TRAVERSE Modified to handle word-aligned LFA's
  752.              PFA      Modified to handle word-aligned PFA's
  753.              EXPECT   Backspace made destructive
  754.              ID.      Modified to reset MSB of last character
  755.              CREAT┼á  ModifieΣá t∩ compilσ dictionar∙ entrie≤ witΦá word-
  756.         aligneΣá LFA«á  Iµá D╨ i≤ odΣ afte≥ compilinτá thσá name¼á D╨á i≤ 
  757.         incremented¼á s∩á tha⌠á thσ res⌠ oµ thσ definitioε fall≤ a⌠á eveε 
  758.         adresses«á  Iµá bytσá value≤á arσ compileΣá int∩á thσá definitioε 
  759.         subsequently¼á thσ alignmen⌠ ma∙ bσ lost«á  Notσ tha⌠ thσá lengtΦ 
  760.         bytσá a⌠á NF┴ stil∞ give≤ thσ exac⌠ lengtΦ oµ thσ name¼á bu⌠á no⌠ 
  761.         necessaril∙ thσ displacemen⌠ t∩ thσ LFA.
  762.              QUIT     Prints lower case 'ok'
  763.              ABORT    Changed to print the user version as well
  764.              COLD     Sets SCR to 4
  765.  
  766.                   4.  Installation dependent code
  767.                        a.  Terminal i/o
  768.  
  769.              (KEY)          uses MS-DOS function 8
  770.              (EMIT)         uses MS-DOS function 2
  771.              (?TERMINAL)    uses MS-DOS function 11
  772.              (CR)           uses MS-DOS function 2
  773.  
  774.                        b.  Printer i/o
  775.  
  776.              EPRINT   Changed to PRINTER
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.                                        12
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                        c.  Disk i/o
  797.              Al∞á disδá parameter≤á werσ moveΣ t∩ thσá beginninτá oµá thσ 
  798.         listing¼á anΣ al∞ LITERA╠ parameter≤ iε definition≤ werσá changeΣ 
  799.         t∩ usσ thσ EQ╒ symbols¼á o≥  FORT╚ variable≤ ¿ +BUF¼á R/╫ )«  Al∞ 
  800.         disδá i/∩á i≤ donσ througΦ thσ blocδ read/writσá interrupt≤á 25H¼ 
  801.         26H«á  Thσá variable≤á DISK¼á RECORD¼á SEC/BL╦ anΣ US┼  servσá t∩ 
  802.         specif∙ thσ disδ record anΣ transfe≥ address.
  803.  
  804.              T&SCAL├ set≤ DIS╦ anΣ RECOR─  froφ thσ blocδ numbe≥ supplieΣ 
  805.         b∙ R/W.
  806.  
  807.              R/╫ call≤ T&SCALC¼ theε BLOCK-REA─ o≥ BLOCK-WRITE«  Iµ DISK-
  808.         ERRO╥ i≤ non-zero¼á messagσ #╕ i≤ issueΣ anΣ thσ buffe≥ i≤ markeΣ 
  809.         a≤á unused«á  DISK-ERRO╥ caε bσ examineΣ b∙ thσ use≥ t∩ finΣá thσ 
  810.         exac⌠á causσ oµ thσ error«á  Thσ erro≥ code≤ arσ a≤ specifieΣá iε 
  811.         thσá MS-DO╙ documentation¼á excep⌠ writσ error≤ arσá returneΣá a≤ 
  812.         negativσá number≤ ¿ e.g«á DISK-ERRO╥ ╜ -▓ fo≥ no⌠ read∙ erro≥á oε 
  813.         writσ operatioε ).
  814.  
  815.                   5.  High-level definitions
  816.                   6.  System tools
  817.                   7.  Ram workspace
  818.                   8.  Memory map
  819.  
  820.              Thσá memor∙ ma≡ wa≤ expandeΣ t∩ usσ al∞ 64╦ ¿ LIMI╘ ╜á ░á )¼ 
  821.         and 16 block-buffers.
  822.  
  823.                   9.  Other
  824.  
  825.              COL─á set≤á thσ <CTRL-C╛ interrup⌠ vecto≥ ¿ MS-DO╙á functioε 
  826.         25Φ ⌐ t∩ thσ addres≤ oµ ß codσ fragmen⌠ whicΦ vector≤ thσá inter-
  827.         prete≥ t∩ (ABORT).
  828.              BYE causes execution of interrupt 20h.
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.                                        13
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.              H.  Future extensions
  863.  
  864.              Therσá arσ ß numbe≥ oµ thing≤ ╔ woulΣ likσ t∩ adΣ t∩á FORTH╗ 
  865.         al∞á involvσ ß certaiε amoun⌠ oµ work¼á anΣ somσ arσ no⌠á a⌠á al∞ 
  866.         trivial«á  Iµá yo⌡á arσ interesteΣ iε makinτ somσ suggestion≤á o≥ 
  867.         contributinτá an∙ changes¼á ╔ woulΣ certainl∙ enjo∙á talkinτá anΣ 
  868.         trading.  A list of these extensions would include:
  869.  
  870.              Immediate future:   High-level character string operators
  871.                                  High-level floating point
  872.                                  Screen editor(s)
  873.                                  Assembler
  874.                                  CommanΣ linσ argument≤ ¿ thi≤ i≤ ßá ver∙ 
  875.                                       simple  possibility, I just haven't 
  876.                                       found a good use for it )
  877.  
  878.              Nea≥á future║á      Rea∞ MS-DO╙ filσ interfacσ ¿ no⌠á jus⌠ 
  879.                                    random access )
  880.                                  I/O redirection via execution vectors
  881.                                  CODE level character string functions
  882.  
  883.              ???   future:       Cross/target compiler
  884.                                  COD┼ leve∞ floating-poin⌠ » 808╖ support
  885.                                  Multi-segmented
  886.                                  Multi-tasking
  887.                                  Tree structured vocabularies/file system
  888.                                  High-level interrupt handling
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.                                        14
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.                      IV«  FORT╚ sources
  929.              Thσáá followinτáá arσá source≤á oµáá informatioεáá regardinτ 
  930.         implementatioε anΣ usσ oµ FORTH.
  931.  
  932.              Startinτ FORTH«  Le∩ Brodie¼ FORTH¼ Inc« Prentice-Hal∞ 1981
  933.         Excellen⌠ introductor∙ material.
  934.  
  935.              Byte¼ vol.╡ no.8¼ Augus⌠ 1980
  936.         Languagσá issuσá devoteΣ t∩ FORTH«á GooΣ discussioεá oµá defininτ 
  937.         word≤ anΣ FORT╚ internals.
  938.  
  939.              Dr« Dobb≤ Journal¼ vol.╢ no.9¼ Septembe≥ 1980
  940.              Dr« Dobb≤ Journal¼ vol.╖ no.9¼ Septembe≥ 1981
  941.         Issue≤ devoteΣ t∩ FORT╚ topics.
  942.  
  943.              FORT╚ Interes⌠ Group
  944.              P.O« Bo° 1105
  945.              Saε Carlos¼ C┴  94070
  946.         Publiπ domaiε listings¼ bi-monthl∙ newlette≥ FORT╚ Dimensions.
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.                                        15
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.         This disk copy was originally provided by "The Public Library",
  995.         the software library of the Houston Area League of PC Users.
  996.  
  997.         Programs are available from the Public Library at $2 per disk
  998.         on user-provided disks.  To get a listing of the disks in the
  999.         Public Library, send a self-addressed, stamped envelope to
  1000.  
  1001.              Nelson Ford,  P.O.Box 61565,  Houston, TX 77208.
  1002.