mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 19:10:18 +02:00
amunits: syscall-ified ASL
git-svn-id: trunk@28585 -
This commit is contained in:
parent
bb4659ceb6
commit
842a5ecc4d
@ -553,15 +553,15 @@ Const
|
|||||||
VAR AslBase : pLibrary;
|
VAR AslBase : pLibrary;
|
||||||
|
|
||||||
|
|
||||||
FUNCTION AllocAslRequest(reqType : ULONG; tagList : pTagItem) : POINTER;
|
FUNCTION AllocAslRequest(reqType : ULONG location 'd0'; tagList : pTagItem location 'a0') : POINTER; syscall AslBase 048;
|
||||||
FUNCTION AllocFileRequest : pFileRequester;
|
FUNCTION AllocFileRequest : pFileRequester; syscall AslBase 030;
|
||||||
FUNCTION AslRequest(requester : POINTER; tagList : pTagItem) : BOOLEAN;
|
FUNCTION AslRequest(requester : POINTER location 'a0'; tagList : pTagItem location 'a1') : LongInt; syscall AslBase 060;
|
||||||
PROCEDURE FreeAslRequest(requester : POINTER);
|
PROCEDURE FreeAslRequest(requester : POINTER location 'a0'); syscall AslBase 054;
|
||||||
PROCEDURE FreeFileRequest(fileReq : pFileRequester);
|
PROCEDURE FreeFileRequest(fileReq : pFileRequester location 'a0'); syscall AslBase 036;
|
||||||
FUNCTION RequestFile(fileReq : pFileRequester) : BOOLEAN;
|
FUNCTION RequestFile(fileReq : pFileRequester location 'a0') : LongInt; syscall AslBase 042;
|
||||||
|
|
||||||
PROCEDURE AbortAslRequest(requester : POINTER);
|
PROCEDURE AbortAslRequest(requester : POINTER location 'a0'); syscall AslBase 078;
|
||||||
PROCEDURE ActivateAslRequest(requester : POINTER);
|
PROCEDURE ActivateAslRequest(requester : POINTER location 'a0'); syscall AslBase 084;
|
||||||
|
|
||||||
{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}
|
||||||
@ -580,104 +580,6 @@ IMPLEMENTATION
|
|||||||
uses amsgbox;
|
uses amsgbox;
|
||||||
{$endif dont_use_openlib}
|
{$endif dont_use_openlib}
|
||||||
|
|
||||||
FUNCTION AllocAslRequest(reqType : ULONG; tagList : pTagItem) : POINTER;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVE.L reqType,D0
|
|
||||||
MOVEA.L tagList,A0
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -048(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION AllocFileRequest : pFileRequester;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -030(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
MOVE.L D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION AslRequest(requester : POINTER; tagList : pTagItem) : BOOLEAN;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L requester,A0
|
|
||||||
MOVEA.L tagList,A1
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -060(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
TST.W D0
|
|
||||||
BEQ.B @end
|
|
||||||
MOVEQ #1,D0
|
|
||||||
@end: MOVE.B D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE FreeAslRequest(requester : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L requester,A0
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -054(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE FreeFileRequest(fileReq : pFileRequester);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L fileReq,A0
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -036(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
FUNCTION RequestFile(fileReq : pFileRequester) : BOOLEAN;
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L fileReq,A0
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -042(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
TST.W D0
|
|
||||||
BEQ.B @end
|
|
||||||
MOVEQ #1,D0
|
|
||||||
@end: MOVE.B D0,@RESULT
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE AbortAslRequest(requester : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L requester,A0
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -078(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
PROCEDURE ActivateAslRequest(requester : POINTER);
|
|
||||||
BEGIN
|
|
||||||
ASM
|
|
||||||
MOVE.L A6,-(A7)
|
|
||||||
MOVEA.L requester,A0
|
|
||||||
MOVEA.L AslBase,A6
|
|
||||||
JSR -084(A6)
|
|
||||||
MOVEA.L (A7)+,A6
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Change VERSION and LIBVERSION to proper values }
|
{ Change VERSION and LIBVERSION to proper values }
|
||||||
|
@ -142,7 +142,7 @@ BEGIN
|
|||||||
|
|
||||||
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
||||||
IF fr <> NIL THEN BEGIN
|
IF fr <> NIL THEN BEGIN
|
||||||
IF AslRequest(fr,NIL) THEN BEGIN
|
IF AslRequest(fr,NIL) <> 0 THEN BEGIN
|
||||||
IF (strlen(fr^.rf_Dir) >0) and (strlen(fr^.rf_File) > 0) THEN begin
|
IF (strlen(fr^.rf_Dir) >0) and (strlen(fr^.rf_File) > 0) THEN begin
|
||||||
strcopy(path,fr^.rf_Dir);
|
strcopy(path,fr^.rf_Dir);
|
||||||
strcopy(fname,fr^.rf_File);
|
strcopy(fname,fr^.rf_File);
|
||||||
@ -248,7 +248,7 @@ BEGIN
|
|||||||
|
|
||||||
fr := AllocAslRequest(ASL_FontRequest,@mytags);
|
fr := AllocAslRequest(ASL_FontRequest,@mytags);
|
||||||
IF fr <> NIL THEN BEGIN
|
IF fr <> NIL THEN BEGIN
|
||||||
IF AslRequest(fr,NIL) THEN BEGIN
|
IF AslRequest(fr,NIL) <> 0 THEN BEGIN
|
||||||
WITH finfo DO BEGIN
|
WITH finfo DO BEGIN
|
||||||
nfi_Name := strpas(fr^.fo_Attr.ta_Name);
|
nfi_Name := strpas(fr^.fo_Attr.ta_Name);
|
||||||
nfi_Size := fr^.fo_Attr.ta_YSize;
|
nfi_Size := fr^.fo_Attr.ta_YSize;
|
||||||
@ -322,7 +322,7 @@ BEGIN
|
|||||||
|
|
||||||
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
||||||
IF fr <> NIL THEN BEGIN
|
IF fr <> NIL THEN BEGIN
|
||||||
IF AslRequest(fr,NIL) THEN BEGIN
|
IF AslRequest(fr,NIL) <> 0 THEN BEGIN
|
||||||
IF (strlen(fr^.rf_Dir) >0) THEN begin
|
IF (strlen(fr^.rf_Dir) >0) THEN begin
|
||||||
strcopy(path,fr^.rf_Dir);
|
strcopy(path,fr^.rf_Dir);
|
||||||
result := true;
|
result := true;
|
||||||
@ -382,7 +382,7 @@ BEGIN
|
|||||||
|
|
||||||
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
||||||
IF fr <> NIL THEN BEGIN
|
IF fr <> NIL THEN BEGIN
|
||||||
IF AslRequest(fr,NIL) THEN BEGIN
|
IF AslRequest(fr,NIL) <> 0 THEN BEGIN
|
||||||
IF (strlen(fr^.rf_Dir) >0) THEN begin
|
IF (strlen(fr^.rf_Dir) >0) THEN begin
|
||||||
strcopy(path,fr^.rf_Dir);
|
strcopy(path,fr^.rf_Dir);
|
||||||
result := true;
|
result := true;
|
||||||
@ -445,7 +445,7 @@ BEGIN
|
|||||||
|
|
||||||
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
fr := AllocAslRequest(ASL_FileRequest,@mytags);
|
||||||
IF fr <> NIL THEN BEGIN
|
IF fr <> NIL THEN BEGIN
|
||||||
IF AslRequest(fr,NIL) THEN BEGIN
|
IF AslRequest(fr,NIL) <> 0 THEN BEGIN
|
||||||
IF (strlen(fr^.rf_Dir) >0) and (strlen(fr^.rf_File) > 0) THEN begin
|
IF (strlen(fr^.rf_Dir) >0) and (strlen(fr^.rf_File) > 0) THEN begin
|
||||||
strcopy(path,fr^.rf_Dir);
|
strcopy(path,fr^.rf_Dir);
|
||||||
strcopy(fname,fr^.rf_File);
|
strcopy(fname,fr^.rf_File);
|
||||||
|
@ -232,7 +232,7 @@ end;
|
|||||||
|
|
||||||
FUNCTION AslRequestTags(requester : POINTER; Const argv : Array Of Const) : BOOLEAN;
|
FUNCTION AslRequestTags(requester : POINTER; Const argv : Array Of Const) : BOOLEAN;
|
||||||
begin
|
begin
|
||||||
AslRequestTags := AslRequest(requester,readintags(argv));
|
AslRequestTags := AslRequest(requester,readintags(argv)) <> 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FUNCTION ObtainInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
|
FUNCTION ObtainInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
|
||||||
|
Loading…
Reference in New Issue
Block a user