mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 16:49:17 +02:00
amunits: syscallified lowlevel unit
git-svn-id: trunk@28610 -
This commit is contained in:
parent
5279693919
commit
2722421d96
@ -31,11 +31,7 @@
|
|||||||
|
|
||||||
nils.sjoholm@mailbox.swipnet.se
|
nils.sjoholm@mailbox.swipnet.se
|
||||||
}
|
}
|
||||||
|
{$PACKRECORDS 2}
|
||||||
{$I useamigasmartlink.inc}
|
|
||||||
{$ifdef use_amiga_smartlink}
|
|
||||||
{$smartlink on}
|
|
||||||
{$endif use_amiga_smartlink}
|
|
||||||
|
|
||||||
UNIT lowlevel;
|
UNIT lowlevel;
|
||||||
|
|
||||||
@ -267,22 +263,21 @@ Const
|
|||||||
|
|
||||||
VAR LowLevelBase : pLibrary;
|
VAR LowLevelBase : pLibrary;
|
||||||
|
|
||||||
FUNCTION AddKBInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
|
FUNCTION AddKBInt(const intRoutine : POINTER location 'a0'; const intData : POINTER location 'a1') : POINTER; syscall LowLevelBase 060;
|
||||||
FUNCTION AddTimerInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
|
FUNCTION AddTimerInt(const intRoutine : POINTER location 'a0'; const intData : POINTER location 'a1') : POINTER; syscall LowLevelBase 078;
|
||||||
FUNCTION AddVBlankInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
|
FUNCTION AddVBlankInt(const intRoutine : POINTER location 'a0'; const intData : POINTER location 'a1') : POINTER; syscall LowLevelBase 108;
|
||||||
FUNCTION ElapsedTime(context : pEClockVal) : ULONG;
|
FUNCTION ElapsedTime(context : pEClockVal location 'a0') : ULONG; syscall LowLevelBase 102;
|
||||||
FUNCTION GetKey : ULONG;
|
FUNCTION GetKey : ULONG; syscall LowLevelBase 048;
|
||||||
FUNCTION GetLanguageSelection : BYTE;
|
FUNCTION GetLanguageSelection : BYTE; syscall LowLevelBase 036;
|
||||||
PROCEDURE QueryKeys(queryArray : pKeyQuery; arraySize : ULONG);
|
PROCEDURE QueryKeys(queryArray : pKeyQuery location 'a0'; arraySize : ULONG location 'd1'); syscall LowLevelBase 054;
|
||||||
FUNCTION ReadJoyPort(port : ULONG) : ULONG;
|
FUNCTION ReadJoyPort(port : ULONG location 'd0') : ULONG; syscall LowLevelBase 030;
|
||||||
PROCEDURE RemKBInt(intHandle : POINTER);
|
PROCEDURE RemKBInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 066;
|
||||||
PROCEDURE RemTimerInt(intHandle : POINTER);
|
PROCEDURE RemTimerInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 084;
|
||||||
PROCEDURE RemVBlankInt(intHandle : POINTER);
|
PROCEDURE RemVBlankInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 114;
|
||||||
FUNCTION SetJoyPortAttrsA(portNumber : ULONG;const tagList : pTagItem) : BOOLEAN;
|
FUNCTION SetJoyPortAttrsA(portNumber : ULONG location 'd0'; const tagList : pTagItem location 'a1') : BOOLEAN; syscall LowLevelBase 132;
|
||||||
PROCEDURE StartTimerInt(intHandle : POINTER; timeInterval : ULONG; continuous : LONGINT);
|
PROCEDURE StartTimerInt(intHandle : POINTER location 'a1'; timeInterval : ULONG location 'd0'; continuous : LONGINT location 'd1'); syscall LowLevelBase 096;
|
||||||
PROCEDURE StopTimerInt(intHandle : POINTER);
|
PROCEDURE StopTimerInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 090;
|
||||||
FUNCTION SystemControlA(const tagList : pTagItem) : ULONG;
|
FUNCTION SystemControlA(const tagList : pTagItem location 'a1') : ULONG; syscall LowLevelBase 072;
|
||||||
|
|
||||||
|
|
||||||
{Here we read how to compile this unit}
|
{Here we read how to compile this unit}
|
||||||
{You can remove this include and use a define instead}
|
{You can remove this include and use a define instead}
|
||||||
@ -301,188 +296,6 @@ IMPLEMENTATION
|
|||||||
uses amsgbox;
|
uses amsgbox;
|
||||||
{$endif dont_use_openlib}
|
{$endif dont_use_openlib}
|
||||||
|
|
||||||
FUNCTION AddKBInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intRoutine,A0
|
|
||||||
MOVEA.L intData,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -060(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION AddTimerInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intRoutine,A0
|
|
||||||
MOVEA.L intData,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -078(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION AddVBlankInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intRoutine,A0
|
|
||||||
MOVEA.L intData,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -108(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION ElapsedTime(context : pEClockVal) : ULONG;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L context,A0
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -102(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION GetKey : ULONG;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -048(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION GetLanguageSelection : BYTE;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -036(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE QueryKeys(queryArray : pKeyQuery; arraySize : ULONG);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L queryArray,A0
|
|
||||||
MOVE.L arraySize,D1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -054(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION ReadJoyPort(port : ULONG) : ULONG;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVE.L port,D0
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -030(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE RemKBInt(intHandle : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intHandle,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -066(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE RemTimerInt(intHandle : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intHandle,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -084(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE RemVBlankInt(intHandle : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intHandle,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -114(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION SetJoyPortAttrsA(portNumber : ULONG;const tagList : pTagItem) : BOOLEAN;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVE.L portNumber,D0
|
|
||||||
MOVEA.L tagList,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -132(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
TST.W D0
|
|
||||||
BEQ.B @end
|
|
||||||
MOVEQ #1,D0
|
|
||||||
@end: MOVE.B D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE StartTimerInt(intHandle : POINTER; timeInterval : ULONG; continuous : LONGINT);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intHandle,A1
|
|
||||||
MOVE.L timeInterval,D0
|
|
||||||
MOVE.L continuous,D1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -096(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE StopTimerInt(intHandle : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L intHandle,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -090(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION SystemControlA(const tagList : pTagItem) : ULONG;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L tagList,A1
|
|
||||||
MOVEA.L LowLevelBase,A6
|
|
||||||
JSR -072(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Change VERSION and LIBVERSION to proper values }
|
{ Change VERSION and LIBVERSION to proper values }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user