home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 10 / Sonderheft_12.iso / best-of-tools / packer / xpk3.11 / xpk_source / modula2 / interfaces / xpksubd.def < prev    next >
Text File  |  1996-11-26  |  5KB  |  96 lines

  1. (*************************************************************************
  2.  
  3. :Program.    XpkSubD.def
  4. :Contents.   structure definitions for XpkSub libraries
  5. :Author.     Oliver Knorr
  6. :Remark.     Derived from Hartmut Goebel's Oberon Interface
  7. :Remark.     This is yet untested!
  8. :Copyright.  Copyright © 1992 by Oliver Knorr
  9. :Copyright.  May be freely distributed with the Xpk-Package
  10. :Copyright.  permission is given to be included with M2Amiga
  11. :Language.   Modula-2
  12. :Translator. M2Amiga V4.0
  13. :History.    V1.0, 29 Jul 1992 Oliver Knorr
  14. :History.    V2.0, 30 Jul 1992 Oliver Knorr
  15. :Date.       30 Jul 1992 01:45:17
  16.  
  17. *************************************************************************)
  18.  
  19. DEFINITION MODULE XpkSubD;
  20. (*$ Implementation:=FALSE *)
  21.  
  22. FROM XpkMasterD IMPORT StrPtr, XpkModePtr, XpkInfoFlagSet ;
  23. FROM SYSTEM     IMPORT ADDRESS ;
  24.  
  25. (**************************************************************************
  26.  *
  27.  *                     The XpkInfo structure
  28.  *
  29.  *)
  30.  
  31. (* Sublibs return this structure to xpkmaster when asked nicely
  32.  * This is version 1 of XpkInfo.  It's not #define'd because we don't want
  33.  * it changing automatically with recompiles - you've got to actually update
  34.  * your code when it changes.
  35.  *)
  36.  
  37. TYPE
  38.  
  39.   XpkInfoPtr = POINTER TO XpkInfo;
  40.   XpkInfo = RECORD
  41.     xpkInfoVersion : INTEGER          ; (* Version number of this structure   *)
  42.     libVersion     : INTEGER          ; (* The version of this sublibrary     *)
  43.     masterVersion  : INTEGER          ; (* The required master lib version    *)
  44.     modesVersion   : INTEGER          ; (* Version number of mode descriptors *)
  45.     name           : StrPtr           ; (* Brief name of the packer           *)
  46.     longName       : StrPtr           ; (* Full name of the packer            *)
  47.     description    : StrPtr           ; (* One line description of packer     *)
  48.     id             : LONGINT          ; (* ID the packer goes by (XPK format) *)
  49.     flags          : XpkInfoFlagSet   ; (* Defined in XpkMasterD.def          *)
  50.     maxPkInChunk   : LONGINT          ; (* Max input chunk size for packing   *)
  51.     minPkInChunk   : LONGINT          ; (* Min input chunk size for packing   *)
  52.     defPkInChunk   : LONGINT          ; (* Default packing chunk size         *)
  53.     packMsg        : StrPtr           ; (* Packing message, present tense     *)
  54.     unpackMsg      : StrPtr           ; (* Unpacking message, present tense   *)
  55.     packedMsg      : StrPtr           ; (* Packing message, past tense        *)
  56.     unpackedMsg    : StrPtr           ; (* Unpacking message, past tense      *)
  57.     defModes       : INTEGER          ; (* Default mode number                *)
  58.     pad            : INTEGER          ; (* for future use                     *)
  59.     modeDesc       : XpkModePtr       ; (* Array of (MaxMode+1) individual
  60.                                                                   descriptors *)
  61.     reserved : ARRAY [0..5] OF ADDRESS; (* Future expansion - set to zero     *)
  62.   END;
  63.  
  64.  
  65. (**************************************************************************
  66.  *
  67.  *                     The XpkSubParams structure
  68.  *
  69.  *)
  70.  
  71.   XpkSubParamsFlags = (stepDown,   (* May reduce pack eff. to save mem   *)
  72.                        prevChunk,  (* Previous chunk available on unpack *)
  73.                        xspf2, xspf3, xspf4, xspf5, xspf6, xspf7,
  74.                        xspf8, xspf9, xspf10, xspf11, xspf12, xspf13,
  75.                        xspf14, xspf15, xspf16, xspf17, xspf18, xspf19,
  76.                        xspf20, xspf21, xspf22, xspf23, xspf24, xspf25,
  77.                        xspf26, xspf27, xspf28, xspf29, xspf30, xspf31);
  78.   XpkSubParamsFlagSet = SET OF XpkSubParamsFlags;
  79.  
  80.   XpkSubParamsPtr = POINTER TO XpkSubParams;
  81.   XpkSubParams = RECORD
  82.     inBuf     : ADDRESS                 ; (* The input data               *)
  83.     inLen     : LONGINT                 ; (* The number of bytes to pack  *)
  84.     outBuf    : ADDRESS                 ; (* The output buffer            *)
  85.     outBufLen : LONGINT                 ; (* The length of the output buf *)
  86.     outLen    : LONGINT                 ; (* Number of bytes written      *)
  87.     flags     : XpkSubParamsFlagSet     ; (* Flags for master/sub comm.   *)
  88.     number    : LONGINT                 ; (* The number of this chunk     *)
  89.     mode      : LONGINT                 ; (* The packing mode to use      *)
  90.     password  : ADDRESS                 ; (* The password to use          *)
  91.     arg       : ARRAY [0..3] OF ADDRESS ; (* Reserved; don't use          *)
  92.     sub       : ARRAY [0..3] OF ADDRESS ; (* Sublib private data          *)
  93.   END;
  94.  
  95. END XpkSubD.noimp
  96.