home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
AMOD095.ZIP
/
GUSHDR.INC
< prev
next >
Wrap
Text File
|
1995-11-27
|
3KB
|
95 lines
const
(* Voice register mapping. *)
SET_CONTROL = $00;
SET_FREQUENCY = $01;
SET_START_HIGH = $02;
SET_START_LOW = $03;
SET_END_HIGH = $04;
SET_END_LOW = $05;
SET_VOLUME_RATE = $06;
SET_VOLUME_START = $07;
SET_VOLUME_END = $08;
SET_VOLUME = $09;
SET_ACC_HIGH = $0a;
SET_ACC_LOW = $0b;
SET_BALANCE = $0c;
SET_VOLUME_CONTROL = $0d;
SET_VOICES = $0e;
GET_CONTROL = $80;
GET_FREQUENCY = $81;
GET_START_HIGH = $82;
GET_START_LOW = $83;
GET_END_HIGH = $84;
GET_END_LOW = $85;
GET_VOLUME_RATE = $86;
GET_VOLUME_START = $87;
GET_VOLUME_END = $88;
GET_VOLUME = $89;
GET_ACC_HIGH = $8a;
GET_ACC_LOW = $8b;
GET_BALANCE = $8c;
GET_VOLUME_CONTROL = $8d;
GET_VOICES = $8e;
GET_IRQV = $8f;
(* RESET control register *)
GF1_MASTER_RESET = $01;
GF1_OUTPUT_ENABLE = $02;
GF1_MASTER_IRQ = $04;
DMA_CONTROL = $41;
SAMPLE_CONTROL = $49;
(* TIMER *)
TIMER_CONTROL = $45;
TIMER1 = $46;
TIMER2 = $47;
GF1_MIX_CTRL = $000; (* 2X0 *)
GF1_TIMER_CTRL = $008; (* 2X8 *)
GF1_TIMER_DATA = $009; (* 2X9 *)
GF1_IRQ_CTRL = $00B; (* 2XB *)
(* GF1_IRQ_STATUS (PORT 3X6) *)
MIDI_TX_IRQ = $01;
MIDI_RX_IRQ = $02;
GF1_TIMER1_IRQ = $04;
GF1_TIMER2_IRQ = $08;
WAVETABLE_IRQ = $20;
ENVELOPE_IRQ = $40;
DMA_TC_IRQ = $80;
_active_voice = $102;
_command = $103;
_data_low = $104;
_data_high = $105;
_dram_io = $107;
active_voice : word = _active_voice;
command : word = _command;
data_low : word = _data_low;
data_high : word = _data_high;
dram_io : word = _dram_io;
gus_info : array[0..7] of byte = ($42,$45,$54,$41,$2f,$41,$44,$4e);
gus_cnt : integer = 0;
Procedure GUSDelay;
Function GUSPeek(Loc : Longint) : Byte;
Procedure GUSPoke(Loc : Longint; B : Byte);
Function GUSProbe(adr : word) : Boolean;
Procedure GUSFind;
Function GUSFindMem : Longint;
Procedure GUSVoiceControl( V, B : Byte);
Procedure GUSSetFreq( V : Byte; hz : Word);
Procedure GUSSetBalance( V, Bal : Byte);
Procedure GUSSetVolume( V : Byte; Vol : Word);
Procedure GUSStopVoice( V : Byte);
Procedure GUSPlayVoice( V, Mode : word;VBegin, VStart, VEnd : Longint);
Procedure GUSPlayAll( V, Mode : word;VBegin, VStart, VEnd : Longint;
freq,vol : word);
procedure gussetramp(chn,vstart,vend,rate : integer);
procedure GusSetOfs(v : byte;vbegin : longint);
Procedure GUSReset;
procedure gusdeinit;