;
; RISC OS Digital Signal Processor C Module
; By A.V.Bartram
;
; THIS SOFTWARE IS PROVIDED  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
; FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
; IN NO EVENT SHALL A.V.Bartram BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL
; ,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO
; ),PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS
; ;OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

help-string:  RDSP 0.17

title-string: RDSP

initialisation-code: rs_initialise

finalisation-code: rs_finalise

module-is-runnable:

; TBD - Waiting for ROOL assignment
swi-chunk-base-number: 0x88000

swi-handler-code: rs_swi

; TBD - Possibly this should be removed
service-call-handler: rs_service 4 6 8

; TODO - Rename ROSE to RDSP
vector-handlers: rosesound_entry/rosesound_handler

command-keyword-table: rs_cmd

  rstart(min-args:0, max-args:0,
      help-text: "Start RDSP engine\nSyntax\trstart \n"),

  rstop(min-args:0, max-args:0,
      help-text: "Stop RDSP engine Syntax\trstop\n"),

  rfilter(min-args:3, max-args:3,
      help-text: "Configure Low Pass Filter for channel\nSyntax\trfilter <channel> <cut-off> <resonance>\n"),

  rsound(min-args:6, max-args:6,
      help-text:"Play synthesiser sound\nSyntax\trsound <channel> <flags> <wave | instrument> <volume> <pitch> <duration>\n"),

  renvelope(min-args:8, max-args:8,
      help-text:"Define instrument to play via sound command\nSyntax\trenvelope <number> <name> <wave>  <cutoff-resonance> <options/ASR-steptime> <ASR steps> <AR delta> <ADSR levels>\nn.b. All options are in hex.\ne.g. *renvelope 1 synthstring1 1A 8004 C201 200020 01FF 20004020"),

  rfxmix(min-args:2, max-args:2,
      help-text: "Mix sound channel into the effects processor input.\nSyntax\trfxmix <channel> <0|1>\n"),

  rfx(min-args:1, max-args:1,
      help-text: "Turn on sound effects algorithms:\n   1 = Warm.   2 = Drive\n  4 = Chorus\n   8  = Delay.\nSyntax\trfx <algorithm mask>\n"),

  rdelay(min-args:2, max-args:2,
      help-text: "Delay (echo) effect configuration\n   1 = Warm.   2 = Driv\nSyntax\trdelay <time in centiseconds> <feedback>\n"),

  rload(min-args:2, max-args:2,
      help-text: "Load a 44khz 16 bit sample into sample memory bank\nSyntax\trload <sample bank> <pathname>\n"),

  rverbose(min-args:0, max-args:0,
      help-text: "Output status and error reporting \nSyntax\trverbose \n"),

  rlegacy(min-args:0, max-args:0,
      help-text: "Enable legacy DSP/envelope compatibility mode.\nSyntax\trlegacy \n"),

  radvanced(min-args:0, max-args:0,
      help-text: "Disable legacy DSP/envelope compatibility mode\nSyntax\tradvanced \n"),

  rlist(min-args:0, max-args:0,
      help-text: "List envelope memory\nSyntax\trlist \n")