ex.hlp (Topic list)
INP Function and OUT Statement Example
                        Example                Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
' This example uses the OUT statement and the INP function to control the
' timer and speaker to produce a note.
 
' To try this example:
' 1. Choose New Project from the File menu
' 2. Copy the code example below to the code window
' 3. Press F5 to run the example
 
 DECLARE SUB Sounds (Freq!, Length!)   ' Play a scale using speaker and timer
 CONST WHOLE = 5000!, QRTR = WHOLE / 4!
 CONST C = 523!, D = 587.33, E = 659.26, F = 698.46, G = 783.99, A = 880!
 CONST B = 987.77, C1 = 1046.5
 CLS                                   ' Clear the screen
 CALL Sounds(C, QRTR): CALL Sounds(D, QRTR)
 CALL Sounds(E, QRTR): CALL Sounds(F, QRTR)
 CALL Sounds(G, QRTR): CALL Sounds(A, QRTR)
 CALL Sounds(B, QRTR): CALL Sounds(C1, WHOLE)
 
 STATIC SUB Sounds (Freq!, Length!)
     Clicks% = CINT(1193280! \ Freq!) ' Ports 66, 67, and 97 control timer
     LoByte% = Clicks% AND &HFF        ' and speaker; divide clock frequency
     HiByte% = Clicks% \ 256          ' by sound frequency to get number of
                                       ' "clicks" clock must produce
     OUT 67, 182                       ' Tell timer that data is coming
     OUT 66, LoByte%                   ' Send count to timer
     OUT 66, HiByte%
     SpkrOn% = INP(97) OR &H3          ' Turn speaker on by setting bits 0 and
     OUT 97, SpkrOn%                   ' 1 of PPI chip
     FOR I! = 1 TO Length!: NEXT I!    ' Leave speaker on
     SpkrOff% = INP(97) AND &HFC       ' Turn speaker off
     OUT 97, SpkrOff%
 END SUB