home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D2.DMS / in.adf / Module / OberonSupport.mod < prev    next >
Encoding:
Text File  |  1994-08-05  |  3.2 KB  |  111 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Interface Module: OberonSupport      Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1992 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE OberonSupport;
  10.  
  11. IMPORT e   * := Exec,
  12. (* $IF Internal (internal version for compiler authors :-) *)
  13.        ot    := OberonTypes,
  14. (* $END *)
  15.        avl * := UntracedAVL,
  16.        I     := Intuition,
  17.               Dos,
  18.        rx  * := Rexx,
  19.        s     := SYSTEM;
  20.  
  21. TYPE
  22.   Error* = STRUCT
  23.     num-, line-, column-: INTEGER;
  24.   END;
  25.   ErrorHeaderPtr* = UNTRACED POINTER TO ErrorHeader;
  26.   ErrorHeader* = STRUCT
  27.     numErrors-: INTEGER;
  28.     error-: ARRAY MAX (INTEGER) OF Error;
  29.     (* really: ARRAY numErrors OF Error !! *)
  30.   END;
  31.  
  32. CONST
  33.  
  34. (* $IF Internal *)
  35.  
  36. (* Results of LoadSyms() *)
  37.  
  38.   ok * = 0;
  39.   readerr * = 1;
  40.   notfound * = 2;
  41.   formaterr * = 3;
  42.   namewrong * = 4;
  43.   oom * = 5;
  44.   versconfl * = 6;
  45.  
  46. (* $END *)
  47.  
  48.   name * = "oberonsupport.library";
  49.   version * = 3;
  50.  
  51. VAR
  52.   base * : e.LibraryPtr;
  53.  
  54. PROCEDURE ARexxQuery         * {base,- 30} (RxMsg{8}   : rx.RexxMsgPtr): LONGINT;
  55.  
  56. PROCEDURE FreeErrorFile      * {base,- 36} (errors{8}  : ErrorHeaderPtr);
  57. PROCEDURE ReadErrorFile      * {base,- 42} (name{8}    : e.STRPTR): ErrorHeaderPtr;
  58. PROCEDURE GetErrorText       * {base,- 48} (num{0}     : INTEGER): e.STRPTR;
  59.  
  60. (* $IF Internal   private routines, do not use! *)
  61. PROCEDURE GetSymID           * {base,- 54} (): INTEGER;
  62. PROCEDURE FreeSymID          * {base,- 60} (id{3}      : INTEGER);
  63. PROCEDURE LoadSyms           * {base,- 66} (VAR namePtr: ot.String;
  64.                                             VAR syms   : ot.SymbolFilePtr;
  65.                                             outH       : Dos.FileHandlePtr): INTEGER;
  66. PROCEDURE FreeSyms           * {base,- 72} (syms{8}    : ot.SymbolFilePtr);
  67. (* $END *)
  68.  
  69.  
  70. PROCEDURE MarkChanged        * {base,- 78} (VAR name{8}: avl.String);
  71. (* mark resident symbol file of module name invalid. It's memory will be freed
  72.  * ASAP (when its usecount reached zero) and it will be reloaded the next time
  73.  * it's used (even if the old version's usecount is > 0)
  74.  *)
  75.  
  76.  
  77. (* $IF Internal   private routines, do not use! *)
  78. PROCEDURE GetStdTypes        * {base,- 84} (): ot.StdTypesPtr;
  79. (* $END *)
  80.  
  81.  
  82. PROCEDURE RemoveAllResidents * {base,- 90};
  83. (* mark all resident symbol files as invalid (see MarkChanged) and clear the
  84.  * list of files to be kept resident.
  85.  *)
  86.  
  87. PROCEDURE AllResident        * {base,- 96};
  88. (* tells oberonsupport.library to keep all symbol files resident
  89.  *)
  90.  
  91. PROCEDURE AddResident        * {base,-102} (VAR name   : avl.String);
  92. (* tells oberonsupport.library to keep the symbol file of module name resident
  93.  *)
  94.  
  95.  
  96. BEGIN
  97.  
  98.   base := e.OpenLibrary(name,version);
  99.   IF base=NIL THEN
  100.     s.SETREG(0,I.DisplayAlert(0,"\x00\x64\x14missing oberonsupport.library V3.0\o\o",50));
  101.     HALT(0)
  102.   END;
  103.  
  104. CLOSE
  105.  
  106.   IF base#NIL THEN e.CloseLibrary(base) END;
  107.  
  108. END OberonSupport.
  109.  
  110.  
  111.