amunits: syscall-ified ASL

git-svn-id: trunk@28585 -
This commit is contained in:
Károly Balogh 2014-09-02 23:56:19 +00:00
parent bb4659ceb6
commit 842a5ecc4d
3 changed files with 14 additions and 112 deletions

View File

@ -553,15 +553,15 @@ Const
VAR AslBase : pLibrary;
FUNCTION AllocAslRequest(reqType : ULONG; tagList : pTagItem) : POINTER;
FUNCTION AllocFileRequest : pFileRequester;
FUNCTION AslRequest(requester : POINTER; tagList : pTagItem) : BOOLEAN;
PROCEDURE FreeAslRequest(requester : POINTER);
PROCEDURE FreeFileRequest(fileReq : pFileRequester);
FUNCTION RequestFile(fileReq : pFileRequester) : BOOLEAN;
FUNCTION AllocAslRequest(reqType : ULONG location 'd0'; tagList : pTagItem location 'a0') : POINTER; syscall AslBase 048;
FUNCTION AllocFileRequest : pFileRequester; syscall AslBase 030;
FUNCTION AslRequest(requester : POINTER location 'a0'; tagList : pTagItem location 'a1') : LongInt; syscall AslBase 060;
PROCEDURE FreeAslRequest(requester : POINTER location 'a0'); syscall AslBase 054;
PROCEDURE FreeFileRequest(fileReq : pFileRequester location 'a0'); syscall AslBase 036;
FUNCTION RequestFile(fileReq : pFileRequester location 'a0') : LongInt; syscall AslBase 042;
PROCEDURE AbortAslRequest(requester : POINTER);
PROCEDURE ActivateAslRequest(requester : POINTER);
PROCEDURE AbortAslRequest(requester : POINTER location 'a0'); syscall AslBase 078;
PROCEDURE ActivateAslRequest(requester : POINTER location 'a0'); syscall AslBase 084;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@ -580,104 +580,6 @@ IMPLEMENTATION
uses amsgbox;
{$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
{ Change VERSION and LIBVERSION to proper values }

View File

@ -142,7 +142,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
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
strcopy(path,fr^.rf_Dir);
strcopy(fname,fr^.rf_File);
@ -248,7 +248,7 @@ BEGIN
fr := AllocAslRequest(ASL_FontRequest,@mytags);
IF fr <> NIL THEN BEGIN
IF AslRequest(fr,NIL) THEN BEGIN
IF AslRequest(fr,NIL) <> 0 THEN BEGIN
WITH finfo DO BEGIN
nfi_Name := strpas(fr^.fo_Attr.ta_Name);
nfi_Size := fr^.fo_Attr.ta_YSize;
@ -322,7 +322,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
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
strcopy(path,fr^.rf_Dir);
result := true;
@ -382,7 +382,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
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
strcopy(path,fr^.rf_Dir);
result := true;
@ -445,7 +445,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
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
strcopy(path,fr^.rf_Dir);
strcopy(fname,fr^.rf_File);

View File

@ -232,7 +232,7 @@ end;
FUNCTION AslRequestTags(requester : POINTER; Const argv : Array Of Const) : BOOLEAN;
begin
AslRequestTags := AslRequest(requester,readintags(argv));
AslRequestTags := AslRequest(requester,readintags(argv)) <> 0;
end;
FUNCTION ObtainInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;