PLINK V2.3 REVIEW ----------------- By Eisbaer Corp. PACKER/LINKER Hey Gatekeeper, do you accept this article for passing the gate? (:-<) This is a review of PLINK V2.3, a code packer and linker written by Torsten Karwoth. PLINK is a utility distributed with the Macroassembler 130 XE+ which is, as you already know, a shareware programm.( My favorite! :-] ) In contrast to MAGNUS' packer this program is really comfortable and offers a lot of useful functions like linking. Linking? Yeah! You don't need a working COM-file to start packing. Just load fonts, code and music to the right memory-locations, generate (or even exchange!) init and run adresses, pack it and then save it as executable COM-file with relocatible decruncher. But you can also pack executable COM-files which might have run and init(!) adresses. PLINK recognizes such adresses and generates new vectors. Now some technical data: -35 KB free RAM -up to 64 blocks in a compound file -can also restore packed data -uses probably RLE (runlength encoding) -automation by batchfile programming! -auto-compact function -relocatable decruncher The last function seems a little bit strange but it is very useful for old tape to disk copies or old assembler output. These files constist of compound blocks of $FC bytes each. The link list can only hold 64 links of compound blocks. The auto-compact function makes one large block of several small blocks that are actually one memory block. I hope you get the meaning. Another useful funtion is the automation by batchfile programming. You can write a textfile with your favourite editor to automize all functions. Imagine you have written a game which consists of the following files. -TITEL.COM -FONT.FNT -MUZAX.BIN -GRAFTAB.BIN -SCREEN.PIC -MAIN.COM Would you like to link those files again and again during the tests of your game? Just write a small batch file and PLINK will do it again and again for you! The appearance of PLINK is very conventional. You can see a graphics 0 screen showing a small survey of all functions. When the sreen is full it scrolls just like Basic's Editor. I think that is all enough for serious working. Additional graphics and colors costs memory which is very rare. What I like very much is a kind of memory map which displays occupied memory locations and init and run adresses. Also the length of occupied memory blocks is displayed. After having packed the memory contents, this function shows the original and the packed length of memory blocks. When you have lost your original unpacked version so don't eat your joystick. Torsten has written a small Basic program which will generate an unpacked version. Now, how about 35 KB RAM? It seems not very much, but when you do not only pack but link you can pack one file before you load and pack the next. Packed memory is marked so that a second packing will not pack already packed memory. (Im going to feel like Pac(k) Man crunch crunch ...) In order to avoid memory conflicts with your programs you can relocate the decruncher to almost everywhere you want it. Normally it lies in memory from $0400 to $0477. PLINK is able to put it in the processor stack, so that it is almost invisible. Now I'll turn to the (few) 'negative' aspects of PLINK. -It is not so colorful as MAGNUS' packer. -The packer ist not as effective as MAGNUS' packer. -The instruction is only in German. A new version with a new (and better) algorhythm would make this packer/linker the best on XL. (As far as I only know MAGNUS' packer and PLINK) Editor's opinion: I have to agree with you Eisbaer. The userfriendlyness of PLINK is very good, but with packers it's the pack percentage which counts. RLE doesn't take any memory for lookup tables and it's much (and I mean MUCH) easier to write a RLE packer/unpacker than one which uses LZW or Huffman. And why should a packer be colourful? If the lay-out is OK, there's nothing to worry about. Just take a look at the lay-outs from Robert Puff (ARC24, UNARC24, UNLZH). I personally like it a lot because you don't have to use a manual to use the programs anymore. The 'shell' from PLINK could be used for other packers too, and maybe add a menu like the Puff programs. The option of pasting separate small blocks of $FC bytes is really nice. Isn't it the Atari macro assembler which generates such blocks? (Naah, it's the Mac/65!!!) I think combining the method used by MAGNUS and the environment from PLINK would make a hell of a packer!