home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / bas / ruckus / ruckmidi.bi < prev    next >
Text File  |  1994-10-20  |  4KB  |  118 lines

  1. 'RUCKMIDI.BI 1.0
  2.  
  3. DECLARE FUNCTION RUCKMIDI% (SEG packinfo AS ANY)
  4.  
  5. CONST SysInfoMidi = 0, InitMidi = 1, ExitMidi = 2, AtExitMidi = 3
  6. CONST LoadMidi = 4, PlayMidi = 5
  7. CONST EndMidi = 8, PauseMidi = 9
  8. CONST DeallocMidi = 10, FastFwdMidi = 11, OutMsgMidi = 12
  9.  
  10. CONST SetAllMidi = 20, SetVolumeMidi = 21, SetToneMidi = 22
  11. CONST SetPatchMidi = 23, SetChMaskMidi = 24
  12.  
  13. CONST SetAllFMSBP = 30
  14.  
  15. TYPE DeallocMidiPackTYPE        'DMP
  16.  Func       AS INTEGER
  17.  stat       AS INTEGER
  18.  HandSeg    AS INTEGER          'RUCKUS allocates DOS segment (para)
  19.  TypeFlag   AS INTEGER          '0=DOS para (must=0)
  20. END TYPE '8
  21.  
  22. TYPE FastFwdMidiPackTYPE        'FFMP
  23.  Func       AS INTEGER
  24.  stat       AS INTEGER
  25.  TickCount  AS LONG             'tick count to fast forward to
  26. end type '8
  27.  
  28. TYPE GetMidiDataPackTYPE        'GDP
  29.  Func       AS INTEGER
  30.  stat       AS INTEGER
  31.  BytePos    AS LONG             'current byte relative base ptr (27)
  32. END TYPE '8
  33.  
  34. TYPE mInitMidiPackTYPE          'MIMP (can't use IMP with BASIC)
  35.  Func       AS INTEGER
  36.  stat       AS INTEGER
  37.  DeviceID   AS INTEGER          '0=AdLib melodic, 1=AdLib percussive
  38.  IOport     AS INTEGER
  39.  PercCh     AS INTEGER
  40.  ChMask     AS INTEGER
  41.  Flags      AS INTEGER          '(see source)
  42.  InfoPtrOff AS INTEGER          'ret:far ptr to Midi info
  43.  InfoPtrSeg AS INTEGER
  44.  MidiExitPtrOff AS INTEGER      'ret:far ptr to Midi's ExitXB routine
  45.  MidiExitPtrSeg AS INTEGER
  46. END TYPE '22
  47.  
  48. TYPE LoadMidiPackTYPE           'LMP
  49.  Func       AS INTEGER
  50.  stat       AS INTEGER
  51.  FilenamePtrOff AS INTEGER      'far ptr to filenameZ to load
  52.  FilenamePtrSeg AS INTEGER
  53.  StartPos   AS LONG             'offset into file to start load at
  54.  LoadSize   AS LONG             'number of bytes to load (or 0 for autosize)
  55.  LoadPtrOff AS INTEGER          'ret:DOS seg:offset (offset always 0)
  56.  LoadPtrSeg AS INTEGER
  57. END TYPE '20
  58.  
  59. TYPE OutMsgMidiPackTYPE         'OMMP
  60.  Func       AS INTEGER
  61.  stat       AS INTEGER
  62.  Mstatus    AS INTEGER          'status byte (8n, 9n...)
  63.  Mdata      AS INTEGER          'data
  64. END TYPE '8
  65.  
  66. TYPE PlaybackMidiPackTYPE       'PMBP
  67.  Func       AS INTEGER
  68.  stat       AS INTEGER
  69.  Mode       AS INTEGER          'playback mode (0=interrupt FG,1=BG)
  70.  LoadPtrOff AS INTEGER          'seg:off to start of data to play
  71.  LoadPtrSeg AS INTEGER
  72. END TYPE '10
  73.  
  74. TYPE PauseMidiPackTYPE          'PMP
  75.  Func       AS INTEGER
  76.  stat       AS INTEGER
  77.  Pause      AS INTEGER          '0=unpause else pause
  78. END TYPE '6
  79.  
  80. TYPE SetFMProPackTYPE           'SFMPP (FM mixer control for SB PRO-compatibles)
  81.  Func       AS INTEGER
  82.  stat       AS INTEGER
  83.  IOport     AS INTEGER          'base I/O port (&H220, &H240)
  84.  MasterVol  AS INTEGER          '0F0F (low=right ch, high=left,-1 no change)
  85.  Steer      AS INTEGER          '0=none,1=left,2=right,3=mute,-1 no change)
  86.  FMVol      AS INTEGER          '0F0F (low=right,high=left,cannot skip)
  87. END TYPE '12
  88.  
  89. TYPE SetMidiPackTYPE            'SMP
  90.  Func       AS INTEGER
  91.  stat       AS INTEGER
  92.  Channel    AS INTEGER          'channel to set (bit mask of channels 0-15)
  93.  Volume     AS INTEGER          'volume adjust
  94.  Tone       AS INTEGER          'tone adjust
  95.  ChMask     AS INTEGER          'if bit=0 then that channel is ignored
  96.  PatchMapID AS INTEGER          'patch map ID
  97.  PatchMapPtrOff AS INTEGER      'far ptr to alternate patch map or
  98.  PatchMapPtrSeg AS INTEGER      'address of patch map ID selected
  99. END TYPE '18
  100.  
  101. TYPE SysInfoMidiPackTYPE        'SIMP
  102.  Func       AS INTEGER          'this (or any) TYPE will be expanded as needed
  103.  stat       AS INTEGER          'to accomodate additional MIDI devices
  104.  Device0    AS INTEGER          '=1 AdLib melodic mode available
  105.  D0port     AS INTEGER          '388h
  106.  D0mask     AS INTEGER          '
  107.  Device1    AS INTEGER          '=1 AdLib percussive mode available
  108.  D1port     AS INTEGER          '388h
  109.  D1mask     AS INTEGER
  110. END TYPE '16
  111.  
  112. TYPE XitMidiPackTYPE            'XMP
  113.  Func       AS INTEGER
  114.  stat       AS INTEGER
  115. END TYPE '4
  116.  
  117. 'END RUCKMidi.BI -----------------------
  118.