mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-28 20:40:37 +02:00
amunits: syscall-ified PTReplay. also removed dependency on the deprecated PasToC unit
git-svn-id: trunk@30974 -
This commit is contained in:
parent
d0d3cef868
commit
d5d84be2a2
@ -31,11 +31,6 @@
|
||||
|
||||
}
|
||||
|
||||
{$I useamigasmartlink.inc}
|
||||
{$ifdef use_amiga_smartlink}
|
||||
{$smartlink on}
|
||||
{$endif use_amiga_smartlink}
|
||||
|
||||
UNIT ptreplay;
|
||||
|
||||
INTERFACE
|
||||
@ -66,32 +61,32 @@ USES Exec;
|
||||
|
||||
VAR PTReplayBase : pLibrary;
|
||||
|
||||
FUNCTION PTLoadModule(name : pCHAR) : pModule;
|
||||
PROCEDURE PTUnloadModule(module : pModule);
|
||||
FUNCTION PTPlay(module : pModule) : ULONG;
|
||||
FUNCTION PTStop(module : pModule) : ULONG;
|
||||
FUNCTION PTPause(module : pModule) : ULONG;
|
||||
FUNCTION PTResume(module : pModule) : ULONG;
|
||||
PROCEDURE PTFade(module : pModule; speed : BYTE);
|
||||
PROCEDURE PTSetVolume(module : pModule; vol : BYTE);
|
||||
FUNCTION PTSongPos(module : pModule) : BYTE;
|
||||
FUNCTION PTSongLen(module : pModule) : BYTE;
|
||||
FUNCTION PTSongPattern(module : pModule; Pos : WORD) : BYTE;
|
||||
FUNCTION PTPatternPos(Module : pModule) : BYTE;
|
||||
FUNCTION PTPatternData(Module : pModule; Pattern : BYTE; Row : BYTE) : POINTER;
|
||||
PROCEDURE PTInstallBits(Module : pModule; Restart : SHORTINT; NextPattern : SHORTINT; NextRow : SHORTINT; Fade : SHORTINT);
|
||||
FUNCTION PTSetupMod(ModuleFile : POINTER) : pModule;
|
||||
PROCEDURE PTFreeMod(Module : pModule);
|
||||
PROCEDURE PTStartFade(Module : pModule; speed : BYTE);
|
||||
PROCEDURE PTOnChannel(Module : pModule; Channels : SHORTINT);
|
||||
PROCEDURE PTOffChannel(Module : pModule; Channels : SHORTINT);
|
||||
PROCEDURE PTSetPos(Module : pModule; Pos : BYTE);
|
||||
PROCEDURE PTSetPri(Pri : SHORTINT);
|
||||
FUNCTION PTGetPri : SHORTINT;
|
||||
FUNCTION PTGetChan : SHORTINT;
|
||||
FUNCTION PTGetSample(Module : pModule; Nr : smallint) : pPTSample;
|
||||
FUNCTION PTLoadModule(name : pCHAR location 'a0') : pModule; syscall PTReplayBase 030;
|
||||
PROCEDURE PTUnloadModule(module : pModule location 'a0'); syscall PTReplayBase 036;
|
||||
FUNCTION PTPlay(module : pModule location 'a0') : ULONG; syscall PTReplayBase 042;
|
||||
FUNCTION PTStop(module : pModule location 'a0') : ULONG; syscall PTReplayBase 048;
|
||||
FUNCTION PTPause(module : pModule location 'a0') : ULONG; syscall PTReplayBase 054;
|
||||
FUNCTION PTResume(module : pModule location 'a0') : ULONG; syscall PTReplayBase 060;
|
||||
PROCEDURE PTFade(module : pModule location 'a0'; speed : BYTE location 'd0'); syscall PTReplayBase 066;
|
||||
PROCEDURE PTSetVolume(module : pModule location 'a0'; vol : BYTE location 'd0'); syscall PTReplayBase 072;
|
||||
FUNCTION PTSongPos(module : pModule location 'a0') : BYTE; syscall PTReplayBase 078;
|
||||
FUNCTION PTSongLen(module : pModule location 'a0') : BYTE; syscall PTReplayBase 084;
|
||||
FUNCTION PTSongPattern(module : pModule location 'a0'; Pos : WORD location 'd0') : BYTE; syscall PTReplayBase 090;
|
||||
FUNCTION PTPatternPos(Module : pModule location 'a0') : BYTE; syscall PTReplayBase 096;
|
||||
FUNCTION PTPatternData(Module : pModule location 'a0'; Pattern : BYTE location 'd0'; Row : BYTE location 'd1') : POINTER; syscall PTReplayBase 102;
|
||||
PROCEDURE PTInstallBits(Module : pModule location 'a0'; Restart : SHORTINT location 'd0'; NextPattern : SHORTINT location 'd1'; NextRow : SHORTINT location 'd2'; Fade : SHORTINT location 'd3'); syscall PTReplayBase 108;
|
||||
FUNCTION PTSetupMod(ModuleFile : POINTER location 'a0') : pModule; syscall PTReplayBase 114;
|
||||
PROCEDURE PTFreeMod(Module : pModule location 'a0'); syscall PTReplayBase 120;
|
||||
PROCEDURE PTStartFade(Module : pModule location 'a0'; speed : BYTE location 'd0'); syscall PTReplayBase 126;
|
||||
PROCEDURE PTOnChannel(Module : pModule location 'a0'; Channels : SHORTINT location 'd0'); syscall PTReplayBase 132;
|
||||
PROCEDURE PTOffChannel(Module : pModule location 'a0'; Channels : SHORTINT location 'd0'); syscall PTReplayBase 138;
|
||||
PROCEDURE PTSetPos(Module : pModule location 'a0'; Pos : BYTE location 'd0'); syscall PTReplayBase 144;
|
||||
PROCEDURE PTSetPri(Pri : SHORTINT location 'd0'); syscall PTReplayBase 150;
|
||||
FUNCTION PTGetPri : SHORTINT; syscall PTReplayBase 156;
|
||||
FUNCTION PTGetChan : SHORTINT; syscall PTReplayBase 162;
|
||||
FUNCTION PTGetSample(Module : pModule location 'a0'; Nr : smallint location 'd0') : pPTSample; syscall PTReplayBase 168;
|
||||
|
||||
FUNCTION PTLoadModule(name : string) : pModule;
|
||||
FUNCTION PTLoadModule(const name : String) : pModule;
|
||||
|
||||
{You can remove this include and use a define instead}
|
||||
{$I useautoopenlib.inc}
|
||||
@ -105,305 +100,18 @@ var
|
||||
|
||||
IMPLEMENTATION
|
||||
|
||||
uses
|
||||
{$ifndef dont_use_openlib}
|
||||
amsgbox,
|
||||
uses
|
||||
amsgbox;
|
||||
{$endif dont_use_openlib}
|
||||
pastoc;
|
||||
|
||||
FUNCTION PTLoadModule(name : pCHAR) : pModule;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L name,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -030(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTUnloadModule(module : pModule);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -036(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTPlay(module : pModule) : ULONG;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -042(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTStop(module : pModule) : ULONG;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -048(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTPause(module : pModule) : ULONG;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -054(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTResume(module : pModule) : ULONG;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -060(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTFade(module : pModule; speed : BYTE);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVE.L speed,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -066(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTSetVolume(module : pModule; vol : BYTE);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVE.L vol,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -072(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTSongPos(module : pModule) : BYTE;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -078(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.B D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTSongLen(module : pModule) : BYTE;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -084(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.B D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTSongPattern(module : pModule; Pos : WORD) : BYTE;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L module,A0
|
||||
MOVE.L Pos,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -090(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.B D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTPatternPos(Module : pModule) : BYTE;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -096(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.B D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTPatternData(Module : pModule; Pattern : BYTE; Row : BYTE) : POINTER;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.L Pattern,D0
|
||||
MOVE.L Row,D1
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -102(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTInstallBits(Module : pModule; Restart : SHORTINT; NextPattern : SHORTINT; NextRow : SHORTINT; Fade : SHORTINT);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.L Restart,D0
|
||||
MOVE.L NextPattern,D1
|
||||
MOVE.L NextRow,D2
|
||||
MOVE.L Fade,D3
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -108(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTSetupMod(ModuleFile : POINTER) : pModule;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L ModuleFile,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -114(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTFreeMod(Module : pModule);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -120(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTStartFade(Module : pModule; speed : BYTE);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.L speed,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -126(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTOnChannel(Module : pModule; Channels : SHORTINT);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.L Channels,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -132(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTOffChannel(Module : pModule; Channels : SHORTINT);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.L Channels,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -138(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTSetPos(Module : pModule; Pos : BYTE);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.L Pos,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -144(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE PTSetPri(Pri : SHORTINT);
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVE.L Pri,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -150(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTGetPri : SHORTINT;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -156(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.B D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTGetChan : SHORTINT;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -162(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.B D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTGetSample(Module : pModule; Nr : smallint) : pPTSample;
|
||||
BEGIN
|
||||
ASM
|
||||
MOVE.L A6,-(A7)
|
||||
MOVEA.L Module,A0
|
||||
MOVE.W Nr,D0
|
||||
MOVEA.L PTReplayBase,A6
|
||||
JSR -168(A6)
|
||||
MOVEA.L (A7)+,A6
|
||||
MOVE.L D0,@RESULT
|
||||
END;
|
||||
END;
|
||||
|
||||
FUNCTION PTLoadModule(name : string) : pModule;
|
||||
FUNCTION PTLoadModule(const name : string) : pModule;
|
||||
var
|
||||
s: RawByteString;
|
||||
begin
|
||||
PTLoadModule := PTLoadModule(pas2c(name));
|
||||
s:=name;
|
||||
PTLoadModule := PTLoadModule(PChar(s));
|
||||
end;
|
||||
|
||||
const
|
||||
@ -489,9 +197,3 @@ begin
|
||||
|
||||
|
||||
END. (* UNIT PTREPLAY *)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user