IFND LIBRARIES_XFDMASTER_I LIBRARIES_XFDMASTER_I SET 1 ** ** $Filename: libraries/xfdmaster.i $ ** $Release: 1.0 $ ** ** (C) Copyright 1994 Georg Hoermann ** All Rights Reserved ** ** include retyped from decrunch.i ** by Turbo/Infect on 4-Apr-94 ** include written for Devpac]|[ assembler XFDMASTERNAME MACRO dc.b 'xfdmaster.library',0 ENDM ** Let's start with the library base. There's not too much in it... rsset 34 ;standard lib base dc_seglist rs.l 1 ;segment list of library (private) dc_DOSBase rs.l 1 ;DOSBase, can be used (no problemo) dc_crunchlist rs.l 1 ;ptr to crunchliststruc (first entry!private?!?) dc_sizeof = __RS ** Ok, now let's come to the CrunchInfo(BI) structure. ** There is also another structure called SI, but don't ask me for the USE rsreset bi_data rs.l 1 ; pointer to crunched file bi_len rs.l 1 ; length of crunched file bi_strucptr rs.l 1 ; ptr to crunchlist (actual entry!private?!?) bi_packname rs.l 1 ; ptr to name of cruncher bi_packtype rs.w 1 ; type of packer (look at packtypes) bi_err rs.w 1 ; error nr for use with _LVOGetError() bi_depackbuf rs.l 1 ; ptr to depacked datas bi_unknown rs.l 1 ; ??? bi_depacklen rs.l 1 ; bufferlen (memory usage for imp etc) bi_reallen rs.l 1 ; real decrunched filelen!!! bi_decrunchadr rs.l 1 ; decrunchadress (pt_absolut ONLY) bi_jumpadr rs.l 1 ; jumpdress (pt_absolut ONLY) bi_unknown2 rs.l 1 ; ??? bi_sizeof = __RS ** packertypes pt_reloc = 1 pt_absolut = 2 pt_data = 4 pt_encrypt = $10 ;can be logical ored to the other ones ** Library vector offsets for this release. See them as constants for ** further updates. _LVOAllocBI=-30 ; IN: OUT:d0=ptr 2 alloc _LVOFreeBI=-36 ; IN:a1=ptr alloc OUT: _LVOAllocSI=-42 ; like AllocBI _LVOFreeSI=48 ; like FreeBI _LVOGetCruncher=-54 ; IN:a0=BI OUT:d0=0(fail) or 1(packed) _LVODecrunch=-60 ; IN:a0=BI OUT=d0=0 or error ** the next two offsets are not tested yet. please use them carefully... ** _LVOGetCruncherSI=-66 ; IN:a0=ptrSI??? OUT d0=0(fail) or ??? _LVODecrunchSI=-72 ; IN:a0=ptrSI??? OUT d0=0(fail) or ??? _LVOGetError=-78 ; IN:d0=errnum OUT:a0=ptr->errstring _LVOTestHunkStructure=-84 ; IN:a0=ptr->file OUT:d0=0(fail) or 1(ok) ** last but not least a short description of the library-internal ** cruncher-list. (private or not private, that's the question :-) rsreset cl_nextpacker rs.l 1 ; list-node -> next list entry or zero for end of list cl_something0 rs.w 1 ; don't ask me, what this can be (always 1) cl_something1 rs.w 1 ; don't ask me, what this can be (always $21) cl_packname rs.l 1 ; ptr to name of cruncher cl_packtype rs.w 1 ; look at packertypes cl_something2 rs.w 1 ; don't ask me, what this can be (always 0) cl_check rs.l 1 ; ptr to checkcode cl_decruch rs.l 1 ; ptr to decrunchcode cl_unused0 rs.l 1 ; ???, always zero cl_unused1 rs.l 1 ; ???, always zero cl_sizeof = __RS ENDC ;LIBRARIES_XFDMASTER_I