; Module header definitions for the MIDI 4 port driver module

title-string: MIDI
help-string: MIDI 0.06 MIDI 4 Port driver  Pete Everett
date-string: 30 Oct 2023

initialisation-code: module_init
finalisation-code: module_term
service-call-handler: service_midi 0x58
generic-veneers: service_callback, timer_callback,
  driver1_info, driver1_init, driver1_receive,
  driver2_info, driver2_init, driver2_receive,
  driver3_info, driver3_init, driver3_receive,
  driver4_info, driver4_init, driver4_receive

error-base: &20400
swi-chunk-base-number: &404C0
swi-handler-code: module_swi
swi-decoding-table: MIDI,
  SoundEnable,
  SetMode,
  SetTxChannel,
  SetTxActiveSensing,
  InqSongPositionPointer,
  InqBufferSize,
  InqError,
  RxByte,
  RxCommand,
  TxByte,
  TxCommand,
  TxNoteOff,
  TxNoteOn,
  TxPolyKeyPressure,
  TxControlChange,
  TxLocalControl,
  TxAllNotesOff,
  TxOmniModeOff,
  TxOmniModeOn,
  TxMonoModeOn,
  TxPolyModeOn,
  TxProgramChange,
  TxChannelPressure,
  TxPitchWheel,
  TxSongPositionPointer,
  TxSongSelect,
  TxTuneRequest,
  TxStart,
  TxContinue,
  TxStop,
  TxSystemReset,
  IgnoreTiming,
  SynchSoundScheduler,
  FastClock,
  Init,
  SetBufferSize,
  Interface,
  37,
  38,
  39,
  40,
  41,
  USBInfo,
  Options,
  Remap

command-keyword-table: module_command
  MidiSound(,
    min-args:1,
    max-args:2,
    help-text: "Not Implemented\n"),

  MidiTouch(,
    min-args:1,
    max-args:1,
    help-text: "Not Implemented\n"),

  MidiChannel(,
    min-args:1,
    max-args:1,
    help-text: "Not Implemented\n"),

  MidiMode(,
    min-args:1,
    max-args:1,
    help-text: "Not Implemented\n"),

  MidiStart(,
    min-args:0,
    max-args:1,
    invalid-syntax: "Syntax:\tMidiStart <time>\n",
    help-text: "Syntax:\tMidiStart <time>\n"
"Transmits a Start message and starts transmission of Timing Clock "
"messages every <time> milliseconds\n"),

  MidiStop(,
    min-args:0,
    max-args:0,
    invalid-syntax: "Syntax:\tMidiStop\n",
    help-text: "Syntax:\tMidiContinue\n"
"Transmits a Stop message and stops transmission of Timing Clock messages\n"),

  MidiContinue(,
    min-args:0,
    max-args:0,
    invalid-syntax: "Syntax:\tMidiContinue\n",
    help-text: "Syntax:\tMidiContinue\n"
"Transmits a Continue message and restarts transmission of Timing Clock "
"messages\n"),

  MidiTxChannel(,
    min-args:1,
    max-args:1,
    invalid-syntax: "Syntax:\tMidiTxChannel <channel>\n",
    help-text: "Syntax:\tMidiTxChannel <channel>\n"
"Sets the MIDI channel and port number (1..64) for subsequent commands.\n"
" 1..16 port0, 17..32 port1, 33..48 port2, 49..64 port3.\n"),

  Midi4debug(,
    min-args:1,
    max-args:10,
    invalid-syntax: "Syntax:\tMidi4debug [-option [-option ...]]\n",
    help-text: "Syntax:\tMidi4debug [-option [-option ...]]\n"
"Options:\n"
  "\t-i display module status\n\n"
  "\t-o open log file in the current directory\n"
  "\t-c close log file\n"
  "\t-d<x> x = the sum of the following values\n"
    "\t\t1 = log midi messages\n")

