Răsfoiți Sursa

amunits: syscall-ified ASL

git-svn-id: trunk@28585 -
Károly Balogh 11 ani în urmă
părinte
comite
842a5ecc4d

+ 8 - 106
packages/amunits/src/coreunits/asl.pas

@@ -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 }

+ 5 - 5
packages/amunits/src/utilunits/easyasl.pas

@@ -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);

+ 1 - 1
packages/amunits/src/utilunits/systemvartags.pas

@@ -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;