home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / AMOD095.ZIP / GUSHDR.INC < prev    next >
Text File  |  1995-11-27  |  3KB  |  95 lines

  1. const
  2.   (* Voice register mapping. *)
  3.   SET_CONTROL           = $00;
  4.   SET_FREQUENCY         = $01;
  5.   SET_START_HIGH        = $02;
  6.   SET_START_LOW         = $03;
  7.   SET_END_HIGH          = $04;
  8.   SET_END_LOW           = $05;
  9.   SET_VOLUME_RATE       = $06;
  10.   SET_VOLUME_START      = $07;
  11.   SET_VOLUME_END        = $08;
  12.   SET_VOLUME            = $09;
  13.   SET_ACC_HIGH          = $0a;
  14.   SET_ACC_LOW           = $0b;
  15.   SET_BALANCE           = $0c;
  16.   SET_VOLUME_CONTROL    = $0d;
  17.   SET_VOICES            = $0e;
  18.  
  19.   GET_CONTROL           = $80;
  20.   GET_FREQUENCY         = $81;
  21.   GET_START_HIGH        = $82;
  22.   GET_START_LOW         = $83;
  23.   GET_END_HIGH          = $84;
  24.   GET_END_LOW           = $85;
  25.   GET_VOLUME_RATE       = $86;
  26.   GET_VOLUME_START      = $87;
  27.   GET_VOLUME_END        = $88;
  28.   GET_VOLUME            = $89;
  29.   GET_ACC_HIGH          = $8a;
  30.   GET_ACC_LOW           = $8b;
  31.   GET_BALANCE           = $8c;
  32.   GET_VOLUME_CONTROL    = $8d;
  33.   GET_VOICES            = $8e;
  34.   GET_IRQV              = $8f;
  35.  
  36.   (* RESET control register *)
  37.   GF1_MASTER_RESET      = $01;
  38.   GF1_OUTPUT_ENABLE     = $02;
  39.   GF1_MASTER_IRQ        = $04;
  40.  
  41.   DMA_CONTROL           = $41;
  42.   SAMPLE_CONTROL        = $49;
  43.  
  44.   (* TIMER *)
  45.   TIMER_CONTROL         = $45;
  46.   TIMER1                = $46;
  47.   TIMER2    = $47;
  48.  
  49.   GF1_MIX_CTRL    = $000;  (* 2X0 *)
  50.   GF1_TIMER_CTRL  = $008;  (* 2X8 *)
  51.   GF1_TIMER_DATA  = $009;  (* 2X9 *)
  52.   GF1_IRQ_CTRL    = $00B;  (* 2XB *)
  53.  
  54.   (* GF1_IRQ_STATUS (PORT 3X6) *)
  55.   MIDI_TX_IRQ           = $01;
  56.   MIDI_RX_IRQ           = $02;
  57.   GF1_TIMER1_IRQ        = $04;
  58.   GF1_TIMER2_IRQ        = $08;
  59.   WAVETABLE_IRQ         = $20;
  60.   ENVELOPE_IRQ          = $40;
  61.   DMA_TC_IRQ    = $80;
  62.  
  63.   _active_voice = $102;
  64.   _command = $103;
  65.   _data_low = $104;
  66.   _data_high = $105;
  67.   _dram_io = $107;
  68.  
  69.   active_voice : word =  _active_voice;
  70.   command : word = _command;
  71.   data_low : word = _data_low;
  72.   data_high : word = _data_high;
  73.   dram_io : word = _dram_io;
  74.   gus_info : array[0..7] of byte = ($42,$45,$54,$41,$2f,$41,$44,$4e);
  75.   gus_cnt : integer = 0;
  76.  
  77. Procedure GUSDelay;
  78. Function  GUSPeek(Loc : Longint) : Byte;
  79. Procedure GUSPoke(Loc : Longint; B : Byte);
  80. Function GUSProbe(adr : word) : Boolean;
  81. Procedure GUSFind;
  82. Function  GUSFindMem : Longint;
  83. Procedure GUSVoiceControl( V, B : Byte);
  84. Procedure GUSSetFreq( V : Byte; hz : Word);
  85. Procedure GUSSetBalance( V, Bal : Byte);
  86. Procedure GUSSetVolume( V : Byte; Vol : Word);
  87. Procedure GUSStopVoice( V : Byte);
  88. Procedure GUSPlayVoice( V, Mode : word;VBegin, VStart, VEnd : Longint);
  89. Procedure GUSPlayAll( V, Mode : word;VBegin, VStart, VEnd : Longint;
  90.                       freq,vol : word);
  91. procedure gussetramp(chn,vstart,vend,rate : integer);
  92. procedure GusSetOfs(v : byte;vbegin : longint);
  93. Procedure GUSReset;
  94. procedure gusdeinit;
  95.