home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / tutor / l7p040 < prev    next >
Text File  |  1990-07-15  |  4KB  |  97 lines

  1.        ╔════════════════════════════════════════════════════╗
  2.        ║  Lesson 7 Part 044 F-PC 3.5 Tutorial by Jack Brown ║
  3.        ╚════════════════════════════════════════════════════╝
  4.  
  5.             ┌────────────────────────────────────────┐
  6.             │  Demonstration of Vocabulary Word Set  │
  7.             └────────────────────────────────────────┘
  8. ORDER <enter>                   \ See also status display top right.
  9. Context: FORTH FORTH ROOT       <--- Default search path
  10. Current: FORTH ok               <--- Default defining vocabulary
  11.  
  12. ONLY ORDER <enter>              \ Clear vocabulary search order
  13. Context: ROOT ROOT              \ See the status display top right.
  14. Current: FORTH ok
  15.  
  16. DEFINITIONS ORDER <enter>       \ Make defining or CURRENT vocabulary
  17. Context: ROOT ROOT              \ the first vocabulary in the CONTEXT
  18. Current: ROOT                   \ search path.
  19.  
  20. FORTH ORDER <enter>             \ Place FORTH in the search path.
  21. Context: FORTH ROOT
  22. Current: ROOT  ok
  23.  
  24. ALSO ORDER <enter>               \ See the status display.
  25. Context: FORTH FORTH ROOT        \ ALSO is like DUP in that two copies
  26. Current: ROOT  ok                \ of FORTH are in the search path.
  27.  
  28. DEFINITIONS ORDER  <enter>       \ Make FORTH the CURRENT vocabulary
  29. Context: FORTH FORTH ROOT        \ This is how F-PC is initialized.
  30. Current: FORTH  ok
  31.  
  32. The following sequence will restore F-PCs default start up search order.
  33.  
  34. ONLY FORTH DEFINITIONS ALSO
  35.  
  36.              ┌───────────────────────────────────────┐
  37.              │  Creating and Using New Vocabularies  │
  38.              └───────────────────────────────────────┘
  39.  
  40. VOCABULARY SOUND <enter>  ok     \ Make a new vocabulary
  41. VOCS <enter>                     \ See our new vocabulary
  42. SOUND EDITOR BUG HIDDEN ROOT USER ASSEMBLER FILES FORTH  ok
  43.  
  44. \ Place duplicate copy of the SOUND vocabulary in the ROOT directory
  45. \ so that it can be found when the FORTH directory is not in the
  46. \ search path.
  47. ROOT DEFINITIONS  <enter> ok     \ Place an extra copy in ROOT
  48. : SOUND  SOUND ;                 \ vocabulary.
  49. SOUND isn't unique  ok
  50. WORDS <enter>   \ see ROOT words displayed.
  51.  
  52. \ Get ready to add some new word definitions to the SOUND vocabulary.
  53. SOUND DEFINITIONS ORDER <enter>
  54. Context: SOUND FORTH ROOT
  55. Current: SOUND  ok
  56.  
  57. \  New words to fetch and store to 8 bit I/O ports.
  58. \  PC!  ( byte  n   --  )  Output byte to port number n.
  59. \  PC@  ( n        byte )  Input  byte from port number n.
  60.  
  61. HEX
  62. :   S.ON  ( -- )      \  Turn speaker on.
  63.         61 PC@ 3  OR   61 PC! ;
  64. :   S.OFF ( -- )       \ Turn speaker off.
  65.         61 PC@  FFFC AND  61 PC! ;
  66. DECIMAL
  67.  
  68. : TONE  ( freq -- )        \ Make tone of specified frequency.
  69.     21 MAX                 \ Lowest frequency.
  70.     1.190000  ROT          \ Get divisor for timer.
  71.     MU/MOD                 \ 16bit.rem   32bit.quot
  72.     DROP NIP               \ Keep 16-bit quotient only.
  73.     [ HEX ]                \ Want HEX radix base for following.
  74.     0B6   043 PC!          \ Write to timer mode register.
  75.     100  /MOD SWAP         \ Split into hi and low byte.
  76.     42 PC! 42 PC!          \ Store low and high byte in timer.
  77.       S.ON ;               \ turn speaker on.
  78. DECIMAL
  79.  
  80. \ Define some notes.
  81. : C  ( -- )  131 TONE ;   : D  ( -- )  147 TONE ;
  82. : E  ( -- )  165 TONE ;   : F  ( -- )  175 TONE ;
  83. : G  ( -- )  196 TONE ;   : A  ( -- )  220 TONE ;
  84. : B  ( -- )  247 TONE ;   : CC ( -- )  262 TONE ;
  85.  
  86. \ Delay for one beat time period.
  87. : BEAT   ( -- ) 1 SECONDS ( 20000 0 DO LOOP ) ;
  88.  
  89. : SCALE  ( -- ) \ Play the musical scale.
  90.          C BEAT D BEAT E BEAT F BEAT G BEAT
  91.          A BEAT B BEAT CC BEAT BEAT BEAT S.OFF ;
  92.  
  93. ┌───────────────────────────────────┐
  94. │  Please Move to Lesson 7 Part 050 │
  95. └───────────────────────────────────┘
  96.  
  97.