(************************************************************************* :Program. XpkSubD.def :Contents. structure definitions for XpkSub libraries :Author. Oliver Knorr :Remark. Derived from Hartmut Goebel's Oberon Interface :Remark. This is yet untested! :Copyright. Copyright © 1992 by Oliver Knorr :Copyright. May be freely distributed with the Xpk-Package :Copyright. permission is given to be included with M2Amiga :Language. Modula-2 :Translator. M2Amiga V4.0 :History. V1.0, 29 Jul 1992 Oliver Knorr :History. V2.0, 30 Jul 1992 Oliver Knorr :Date. 30 Jul 1992 01:45:17 *************************************************************************) DEFINITION MODULE XpkSubD; (*$ Implementation:=FALSE *) FROM XpkMasterD IMPORT StrPtr, XpkModePtr, XpkInfoFlagSet ; FROM SYSTEM IMPORT ADDRESS ; (************************************************************************** * * The XpkInfo structure * *) (* Sublibs return this structure to xpkmaster when asked nicely * This is version 1 of XpkInfo. It's not #define'd because we don't want * it changing automatically with recompiles - you've got to actually update * your code when it changes. *) TYPE XpkInfoPtr = POINTER TO XpkInfo; XpkInfo = RECORD xpkInfoVersion : INTEGER ; (* Version number of this structure *) libVersion : INTEGER ; (* The version of this sublibrary *) masterVersion : INTEGER ; (* The required master lib version *) modesVersion : INTEGER ; (* Version number of mode descriptors *) name : StrPtr ; (* Brief name of the packer *) longName : StrPtr ; (* Full name of the packer *) description : StrPtr ; (* One line description of packer *) id : LONGINT ; (* ID the packer goes by (XPK format) *) flags : XpkInfoFlagSet ; (* Defined in XpkMasterD.def *) maxPkInChunk : LONGINT ; (* Max input chunk size for packing *) minPkInChunk : LONGINT ; (* Min input chunk size for packing *) defPkInChunk : LONGINT ; (* Default packing chunk size *) packMsg : StrPtr ; (* Packing message, present tense *) unpackMsg : StrPtr ; (* Unpacking message, present tense *) packedMsg : StrPtr ; (* Packing message, past tense *) unpackedMsg : StrPtr ; (* Unpacking message, past tense *) defModes : INTEGER ; (* Default mode number *) pad : INTEGER ; (* for future use *) modeDesc : XpkModePtr ; (* Array of (MaxMode+1) individual descriptors *) reserved : ARRAY [0..5] OF ADDRESS; (* Future expansion - set to zero *) END; (************************************************************************** * * The XpkSubParams structure * *) XpkSubParamsFlags = (stepDown, (* May reduce pack eff. to save mem *) prevChunk, (* Previous chunk available on unpack *) xspf2, xspf3, xspf4, xspf5, xspf6, xspf7, xspf8, xspf9, xspf10, xspf11, xspf12, xspf13, xspf14, xspf15, xspf16, xspf17, xspf18, xspf19, xspf20, xspf21, xspf22, xspf23, xspf24, xspf25, xspf26, xspf27, xspf28, xspf29, xspf30, xspf31); XpkSubParamsFlagSet = SET OF XpkSubParamsFlags; XpkSubParamsPtr = POINTER TO XpkSubParams; XpkSubParams = RECORD inBuf : ADDRESS ; (* The input data *) inLen : LONGINT ; (* The number of bytes to pack *) outBuf : ADDRESS ; (* The output buffer *) outBufLen : LONGINT ; (* The length of the output buf *) outLen : LONGINT ; (* Number of bytes written *) flags : XpkSubParamsFlagSet ; (* Flags for master/sub comm. *) number : LONGINT ; (* The number of this chunk *) mode : LONGINT ; (* The packing mode to use *) password : ADDRESS ; (* The password to use *) arg : ARRAY [0..3] OF ADDRESS ; (* Reserved; don't use *) sub : ARRAY [0..3] OF ADDRESS ; (* Sublib private data *) END; END XpkSubD.noimp