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 >
Wrap
Text File
|
1996-11-26
|
5KB
|
96 lines
(*************************************************************************
: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