home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Bila Vrana
/
BILA_VRANA.iso
/
031A
/
CMOD313.ZIP
/
CAPAPLA2.ZIP
/
CAPAPLA2.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-04-17
|
20KB
|
635 lines
(*
CapaPlay II Unit for Pascal
Don't forget to add the {$M stacksize,0,0} into your program header!
*)
{$G+}
unit capapla2;
interface
(****************************** GUS Settings *********************************)
function CP_GetIRQ:byte; far;
procedure CP_SetIRQ(NewIRQ:byte); far;
function CP_GetDMA:byte; far;
procedure CP_SetDMA(NewDMA:byte); far;
function CP_GetBasePort:word; far;
procedure CP_SetBasePort(NewBasePort:word); far;
procedure CP_SetLineIn(LineInState:byte); far;
procedure CP_SetMicIn(MicInState:byte); far;
(******************************* Load/Unload *********************************)
function CP_LoadModule(ModName:string;StartOffset:longint;TransferMode:byte):byte; far;
function CP_LoadOnlyPatterns(ModName:string;StartOffset:longint;TransferMode:byte):byte; far;
procedure CP_FreeModule; far;
(***************************** Start/Stop/Pause ******************************)
procedure CP_StartModule(Amplification:byte;DefaultPanning:byte;TimerMode:byte); far;
procedure CP_StopModule; far;
function CP_PauseModule:byte; far;
(********************** Set General Module Information ***********************)
procedure CP_SetSpeedZeroMode(SpeedZeroMode:byte); far;
procedure CP_SetPanEffectMode(PanEffectMode:byte); far;
procedure CP_SetVBlankMode(VBlankMode:byte); far;
procedure CP_SetAmigaLimitsMode(AmigaLimitsMode:byte); far;
(********************** Get General Module Information ***********************)
function CP_GetModuleName:string; far;
function CP_GetModuleType:byte; far;
function CP_GetModuleLength:byte; far;
function CP_GetNumOfPatterns:word; far;
function CP_GetNumOfInstruments:byte; far;
function CP_GetNumOfChannels:byte; far;
function CP_GetNumOfUsedChannels:byte; far;
function CP_GetRestartPosition:byte; far;
function CP_GetUsedPatternMemory:longint; far;
function CP_GetUsedInstrumentInfoMemory:longint; far;
function CP_GetUsedGUSMemory:longint; far;
function CP_GetFileSize:longint; far;
(********************** Set General Playing Information **********************)
procedure CP_SetPosition(NewPosition:word); far;
procedure CP_SetGlobalVolume(NewVolume:word); far;
procedure CP_SetMainVolume(NewVolume:word); far;
procedure CP_SetSpeed(NewSpeed:word); far;
procedure CP_SetTempo(NewTempo:word); far;
procedure CP_RestoreSpeedAndTempo; far;
procedure CP_SetDefaultPanning(DefaultPanning:shortint); far;
(********************** Get General Playing Information **********************)
function CP_GetRow:byte; far;
function CP_GetNumOfRows(PositionNum:word):word; far;
function CP_GetPosition:byte; far;
function CP_GetPattern:byte; far;
function CP_GetGlobalVolume:byte; far;
procedure CP_RestoreInitialVolume; far;
function CP_GetMainVolume:byte; far;
function CP_GetSpeed:byte; far;
function CP_GetTempo:byte; far;
function CP_GetPlayingTime:word; far;
function CP_GetTimer:longint; far;
function CP_GetLoopCounter:byte; far;
(************************* Set Channel Information ***************************)
function CP_SetChannelMute(ChannelNum:word;MuteState:byte):byte; far;
procedure CP_SetChannelPanning(ChannelNum:word;NewPanning:byte); far;
procedure CP_PlaySample(ChannelNum:word;InstrumentNum:word;SampleNum:word;Note:byte;Octave:byte); far;
procedure CP_StopSample(ChannelNum:word); far;
(************************* Get Channel Information ***************************)
function CP_GetChannelNote(ChannelNum:word):byte; far;
function CP_GetChannelOctave(ChannelNum:word):byte; far;
function CP_GetChannelVolume(ChannelNum:word):byte; far;
function CP_GetChannelEffect(ChannelNum:word):byte; far;
function CP_GetChannelEffectParams(ChannelNum:word):byte; far;
function CP_GetChannelInstrument(ChannelNum:word):byte; far;
function CP_GetChannelSample(ChannelNum:word):byte; far;
function CP_GetChannelBar(ChannelNum:word):byte; far;
function CP_GetChannelNoteTrigger(ChannelNum:word):byte; far;
function CP_GetChannelPanning(ChannelNum:word):byte; far;
function CP_GetChannelMute(ChannelNum:word):byte; far;
(******************** Set Instrument/Sample Information **********************)
function CP_SetSampleMute(InstrumentNum:word;SampleNum:word;MuteState:byte):byte; far;
(******************** Get Instrument/Sample Information **********************)
function CP_GetInstrumentName(InstrumentNum:word):string; far;
function CP_GetNumOfSamples(InstrumentNum:word):byte; far;
function CP_GetSampleName(InstrumentNum:word;SampleNum:word):string; far;
function CP_GetSampleSize(InstrumentNum:word;SampleNum:word):longint; far;
function CP_GetSampleC4Spd(InstrumentNum:word;SampleNum:word):word; far;
function CP_GetSampleVolume(InstrumentNum:word;SampleNum:word):byte; far;
function CP_GetSamplePanning(InstrumentNum:word;SampleNum:word):byte; far;
function CP_GetSampleLoopType(InstrumentNum:word;SampleNum:word):byte; far;
function CP_GetSampleLoopBegin(InstrumentNum:word;SampleNum:word):longint; far;
function CP_GetSampleLength(InstrumentNum:word;SampleNum:word):longint; far;
function CP_GetSample16Bit(InstrumentNum:word;SampleNum:word):byte; far;
function CP_GetSampleMute(InstrumentNum:word;SampleNum:word):byte; far;
implementation
function _CP_GetIRQ:byte; far; external;
procedure _CP_SetIRQ(NewIRQ:byte); far; external;
function _CP_GetDMA:byte; far; external;
procedure _CP_SetDMA(NewDMA:byte); far; external;
function _CP_GetBasePort:word; far; external;
procedure _CP_SetBasePort(NewBasePort:word); far; external;
procedure _CP_SetLineIn(LineInState:byte); far; external;
procedure _CP_SetMicIn(MicInState:byte); far; external;
function _CP_LoadModule(TransferMode:byte;StartOffset:longint;ModSeg:word;ModOfs:word):byte; far; external;
function _CP_LoadOnlyPatterns(TransferMode:byte;StartOffset:longint;ModSeg:word;ModOfs:word):byte; far; external;
procedure _CP_FreeModule; far; external;
procedure _CP_StartModule(TimerMode:byte;DefaultPanning:byte;Amplification:byte); far; external;
procedure _CP_StopModule; far; external;
function _CP_PauseModule:byte; far; external;
procedure _CP_SetSpeedZeroMode(SpeedZeroMode:byte); far; external;
procedure _CP_SetPanEffectMode(PanEffectMode:byte); far; external;
procedure _CP_SetVBlankMode(VBlankMode:byte); far; external;
procedure _CP_SetAmigaLimitsMode(AmigaLimitsMode:byte); far; external;
function _CP_GetModuleName:longint; far; external;
function _CP_GetModuleType:byte; far; external;
function _CP_GetModuleLength:byte; far; external;
function _CP_GetNumOfPatterns:word; far; external;
function _CP_GetNumOfInstruments:byte; far; external;
function _CP_GetNumOfChannels:byte; far; external;
function _CP_GetNumOfUsedChannels:byte; far; external;
function _CP_GetRestartPosition:byte; far; external;
function _CP_GetUsedPatternMemory:longint; far; external;
function _CP_GetUsedInstrumentInfoMemory:longint; far; external;
function _CP_GetUsedGUSMemory:longint; far; external;
function _CP_GetFileSize:longint; far; external;
procedure _CP_SetPosition(NewPosition:word); far; external;
procedure _CP_SetGlobalVolume(NewVolume:word); far; external;
procedure _CP_SetMainVolume(NewVolume:word); far; external;
procedure _CP_SetSpeed(NewSpeed:word); far; external;
procedure _CP_SetTempo(NewTempo:word); far; external;
procedure _CP_RestoreSpeedAndTempo; far; external;
procedure _CP_SetDefaultPanning(DefaultPanning:shortint); far; external;
function _CP_GetRow:byte; far; external;
function _CP_GetNumOfRows(PositionNum:word):word; far; external;
function _CP_GetPosition:byte; far; external;
function _CP_GetPattern:byte; far; external;
function _CP_GetGlobalVolume:byte; far; external;
procedure _CP_RestoreInitialVolume; far; external;
function _CP_GetMainVolume:byte; far; external;
function _CP_GetSpeed:byte; far; external;
function _CP_GetTempo:byte; far; external;
function _CP_GetPlayingTime:word; far; external;
function _CP_GetTimer:longint; far; external;
function _CP_GetLoopCounter:byte; far; external;
function _CP_SetChannelMute(MuteState:byte;ChannelNum:word):byte; far; external;
procedure _CP_SetChannelPanning(NewPanning:byte;ChannelNum:w