ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ JUP 1.70 - December 1995 ÃÄÄ¿ ³ ³ ³ ³ ³ ³ easy util to list & unpack files ³ ³ ³ ³ ³ ³ ³ ³ ALL RIGHTS RESERVED ³ ³ ³ ÀÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ PART II: HOW TO CONFIGURE THE PROGRAM ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ Ú´ JenSoft Systems, Inc. ³³ c/o Jens Weynans ³³ Wieselpfad 27 ³³ 47809 Krefeld, GERMANY ³³ ³³ Phone +49-2151-548042 ³³ FIDO: 2:2433/920.26 ³³ ³³ E-MAIL: jweynan@ibm.net ³³ ³³ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍϾ CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Before you run JUP, you must configure it by compiling the ASCII file JUP.DAT, which is already predefined. But maybe you want to change something or add another archive type. Because of the JUP's features variety there are different types of the configuration avaiable. Of course, you can configure JUP with only the method that exist from the first version of JUP and for that exactly 12 lines are recommanded for each entry. But if you have e.g. an entry that only should recognize a file, you must enter seven empty lines. Let's take an second example. You have an program, which uses 3 different ID-Pattern for e.g. three different versions. Normally you have to create 3 entries for it, that means 36 lines. Don't be afraid, you can do it even with 12 lines, because you can give an entry as many ID-Patterns you want. On the following pages four configurations types are mentioned. These are some informations about them: HUGE: the first type that was avaiable. You need at least 12 lines for configuration and you can do the following actions: identify, extract, test, list, overwrite with or without path a.s.o. COMPACT: like HUGE, but at least only 9 configuration lines are required, because of a special new feature. SMALL: at least 6 configuration lines needed. Only two features avaiable: identify files/archive and list contents. TINY: at least 5 configuration lines needed. Only one feature: identify file/archive. The archives will check in the configured sequence, so be careful with archives which are very similar in their recognation process. The configuration process works very silent, an error occurs only near an configuration example line and so be care of the messages given by JUP: C:\JUP\JUP.DAT: 821 error ocurred near line 821 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-2 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The following table will show you the relationship between the configuration type, the function of the single configuration lines and the number of lines needed for the configuration. "Version" means, when the feature was introduced. the line symbols for the function (e.g. L for the file extension) will used in the de- scription of the lines and their formats. * symbolize, that the option is not avaiable and this will be done automatically by the program, if this method is selected. the [5] means, that the line 5 is copied to that line, regardless of it's contents. if this options is active or not can only be checked during the program is running depending on the users input. ÚÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿ ³VERSIONº 0.80 ³ 1.55 ³ 1.30 ³ 1.20 ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ ³ \TYPE º ³ ³ ³ ³ ³ FUNCTION ³ \ º HUGE ³COMPACT³ SMALL ³ TINY ³ ³ ³ LINE\ º ³ ³ ³ ³ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍ͵ ³ SHORT NAME ³ A º 1 ³ 1 ³ 1 ³ 1 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ (DE)ARCER ³ B º 2 ³ 2 ³ 2 ³ 2 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ ARCER TYPE ³ C º 3 ³ 3 ³ 3 ³ 3 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ ID PATTERN ³ D# º 4# ³ 4# ³ 4# ³ 4# ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ´ ³ # line can appear multiple times up from ver. 1.20 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ EXTRACT ³ E º 5 ³ 5 ³ * ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ EXTR.+ PATH ³ F º 6 ³ [5] ³ * ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ REPLACE ³ G º 7 ³ [5] ³ * ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ REPL.+ PATH ³ H º 8 ³ [5] ³ * ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ TEST FILE ³ I º 9 ³ 6 ³ * ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ DISP. FILES ³ J º 10 ³ 7 ³ * ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ LIST FILES ³ K º 11 ³ 8 ³ 5 ³ * ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ³ EXTENSION ³ L º 12 ³ 9 ³ 6 ³ 5 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-3 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Some of the configuration must be entered in JES (JEnsoft Syntax). JES in an small and easy script language and consists of strings variables and functions. #xxx represents an variable and @xxx an function. the following table show you a short summary of the defined JES symbols and when they appeared first: ÚÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ VER. º VARIABLES AND FUNCTIONS ³ ÆÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ 0.80 º #END, #OFN, #PFD, #FIL, #FEX, #DRV, #EXT, #MSK, ³ ³ º #UNP, #DUM, #TIM, #NAM, #ALL, #YES, #NOT, #RET, ³ ³ º #KEY, #CLS, #LST, #CAP ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.00 º #TMP ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.10 º #JMP, #WRT, #IEX, #NEX, #ERR, #NER, #DUP, #DEL ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.20 º #ALT, #SKP, #BRK ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.40 º @CHR, @POS, @STR, @SHR, @VAL ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.50 º @CHF, @FEX, @FIL, @CON ³ ³ 1.55 º @PWD, @OUT, @PFD, @OWR, #OUT, #PWD ³ ³ 1.57 º @MSG ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.60 º @CAS ³ ÀÄÄÄÄÄÄÐÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ the following table shows, in which lines you can use which symbols: ÚÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ LINE º VARIABLES AND FUNCTIONS ³ ÆÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ³ D º @CHR, @POS, @STR, @SHR, @VAL, @CON, @CAS ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ E º @PFD, @OWR ³ ÃÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ º #END, #OFN, #PFD, #FIL, #FEX, #DRV, #EXT, #MSK ³ ³ º #UNP, #DUM, #TIM, #NAM, #ALL, #YES, #NOT, #RET ³ ³ E--K º #KEY, #CLS, #LST, #CAP, #TMP, #JMP, #WRT, #IEX ³ ³ º #NEX, #ERR, #NER, #DUP, #DEL, #ALT, #SKP, #BRK ³ ³ º @CHF, @FEX, @FIL, @PWD, @OUT, #OUT, #PWD, @MSG ³ ÀÄÄÄÄÄÄÐÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ JES is used for the subversion configuration and for the options configuration. In the options configuration the lines entered represents BATCH/SCRIPT files to execute. normally you need only one line for executing the UNPACKING PROGRAM e.g. to list the archive contents. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-4 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ But now the variables and functions avaiable for the options configurations and what they means: #END marks the end of a line. all following inputs will be written in a new line. #OFN this variable contains the original archive name given by the user including full path and extension. e.g. "C:\JUP\JUP_PROG.ZIP" #PFD this variable contains the path of the orginal file name e.g. "C:\JUP\" #FIL this variable contains only the name of the orignal archive e.g. "JUP_PROG" #FEX this variable contains the extension of the archive name e.g. ".ZIP" #DRV this variable contains the drive-letter of the archive name e.g. "C" #EXT this variable contains the default archive extension configured in LINE L e.g. ".ZIP" #MSK this variable contains the file mask for the archive includes files e.g. "*.doc *.txt", as it was given in the program command line #UNP this variable contains the name of the unarchiver given in the configuration LINE B e.g. "PKUNZIP" or the name of the archive, if it is an self extraction one like e.g. "!JUPARC.EXE" #ALT this variable contains the name of the alternative program given in the configuration LINE B e.g. "RAR UNRAR" will cause the replacement of #ALT with "UNRAR" #DUM an dummy name like "C:\TEMP\CU$3D32X" for diffent purposes including the path for the directory given by the TEMP enviroment variable. #TIM an second dummy name like "15443201" for diffent purposes without an path. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-5 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ #NAM this variable contains the Orignal-File-Name defined as #PFD#FIL#FEX or an dummy name, if the archive must be renamed, where the dummy name is defined as #PFD#TIM#EXT #OUT represents the output path or "." #PWD represents the password or "" #SKP is replaced with " < JUP@JUP@.83" and represents a file, witch only includes an "S". #YES is replaced with " < JUP@JUP@.89" and represents a file, witch includes many "Y" for questions like "overwrite YES,no..." . #NOT is replaced with " < JUP@JUP@.78" and represents a file, witch includes many "N" . #RET is replaced with " < JUP@JUP@.0" and represents a file, witch includes only an Cariage Return. #ALL is replaced with " < JUP@JUP@.65" and represents a file, witch only includes an "A". #TMP includes the TEMP-environment if defined, otherwise the current directory. #KEY will be replaced with "JENKEYS" or "KEYSTACK" and fits up to 30 characters into the keybuffer. see also page II-18 for more information. #JMP this expression is used for jumps in batch files and will be replaced with "goto", see examples for #ERR and #NER. #BRK this expression will be replaced with the expression "#JMP break" and the effect is, that the current JES-Job will be cancelled. #WRT will be replaced with "echo" . You must remenber that the length of the configuration lines is limited and the JES configuration style should be valid for others plattform too, where such an expression maybe could be replaced with another string (e.g. "printf") ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-6 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ #IEX will be replaced with the expression "if exist" for such programs, where overwriting can not be forced. maybe the expression "#IEX #PAK.NAM del #PAK.NAM" can be used but only, when one single name was given in the command line. #NEX this expression will be replaced with "if not exist" . some program e.g. requires a configuration file. so check it before like "#NEX packer.cfg #WRT.> packer.cfg". #ERR some programs tells nothing during their execution, but they returns an errorlevel. #ERR is replaced with "if errorlevel" e.g.: "#ERR 1 #JMP error#END#JMP ok#END:error#END ...." #NER by the other way you can check for the opposite case if an specific errorlevel does not exist. the expression will be replaced with "if not errorlevel" . look the example: "#NER 1 #JMP ok#END#JMP error#END:ok#END ...." #DUP will be replaced with "copy" for duplicating files, maybe together with #NEX or the other JES-variables like "#NEX #PAK.EXE #DUP #PAK.EXP #PAK.EXE > #NUL" #DEL will be replaced with "del" for deleting files, if it is possible. you should use it together with #IEX e.g. "#IEX #PAK.TMP #DEL #PAK.TMP" *** the following variables are only valid in the Windows-Version *** *** and the quiet+ modus of JUP, but must be used for configuration *** *** to work on both versions. the dos verbose mode ignores them. *** #CLS this line will clear the screen, calls DOS 'CLS' #LST is replaced with " > #DUM.LST" and creates the file, witch is used by the windows version to get the output of the called DOS-Unpacker. #CAP will be replaced with "JENCAPT #DUM.LST /X" and creates an capture file of the screen contents. it is uses for DOS programs, whose output can not be redirected to an file e.g. "PAH" . normally used together with #CLS as the first command in the configuration line. if you want to to create a pseudo batch file which contains more then one line, you can enter the variable #END to ensure JUP, that the line is finished. For example the line "#WRT hi folks" creates the following batch file: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-7 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ MS-DOS: @echo off 4DOS: @echo off break off break off SWAPPING OFF echo hi folks echo hi folks :BREAK :BREAK SWAPPING ON QUIT !! the normal configuration line must include the variables #UNP and #LST, !! e.g. the line "#UNP -l #MSK #LST#END" includes also #MSK for the file !! mask which should be shown. how already metioned, #LST is only needed !! for the windows version, which redirects the output of the called MS- !! DOS window into a file, but the configuration should be valid for both !! versions. for a program, which output could not be redirect, the next !! line shows, how such a program could be handled with the variables #UNP !! and #CAP: "#CLS#END#UNP l #NAM #END#CAP#END". JES FUNCTIONS: - @CHF(chr,cnt,met) ; default is @CHF(0,1,0) this function creates a file with characters, for programs which needs an input for running - chr: represents a ASCII character - cnt: how often the character will be written into the file negative values force overwriting of existing file - met: if zero, an CR-LF after each character will be done, if one, no CR-LF will be done. e.g. @CHF(65,1,0) will create a file named @JUP@JUP.65, which contains an single character A. the string would be replaced with " < @JUP@JUP.65 ". As you see, it is similar to #ALL in this special case. - @FEX(start,cnt) ; default is @FEX(1,4) this function will work like #FEX, but here you can use a part of the file extension - start: where to begin in the extension (the first character is always the dot ".") if you use an negative value, "cnt" characters are taken form backward of the strings - cnt: how much characters you want to use ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-8 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ - @FIL(start,cnt) ; default is @FIL(1,8) this function will work like #FIL, but here you can use a part of the file name - start: where to begin in the file name. if you use an negative value, "cnt" characters are taken form backward of the strings - cnt: how much characters you want to use - @PWD(true) ; default is @PWD(#PWD) this function will insert the string for the password - true: the string to insert (in use with #PWD ) e.g. password was HALLO and you defined @PWD(-<#PWD>) JUP will insert - - @OUT(true) ; default is @OUT(#OUT) this function will insert the string for the output path. - true: the string to insert (in use with #OUT ) e.g. outpath was TEMP and you defined @OUT(/L#OUT) JUP will insert /LTEMP when you uses one of the next two functions in LINE E, you are going to activate the compact configuration type: - @PFD(true,false) ; default is @PFD(,) - true: string to insert if you selected the option to use the inserted path, -false if not. - @OWR(true,false) ; default is @OWR(,) - true: string to insert if you selected the option to overwrite existing files, -false if not. - @MSG(true,false) ; default is @MSG(,) - true: string to insert if you selected subquiet mode -false if not. (subquiet mode with /Q+ ) ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-9 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Now the contents of every configuration line will be explained. Line A: in the first line you must enter the short name for the archive type, e.g. SXF-ZIP. The short name will be displayed during a JUP session and the maximum length is 16 Characters. The short name is also used when the JUPARC enviroment variable will be set. This feature is only avaiable with a DOS-Session and one archive. The name will be changed to an valid dos name for goto marks in an batch file (eg. LH(arc) would be set like JUPARC=LHARC) Line B: in the second line you must enter the name of the unpacking program including the path (* when not in the PATH-Enviroment *) or an asterik "*", when the archive type is an self extraction one. Line C: this line contains the type of archive. normally zero is given But there are some exceptions: +1 in only a few cases it is necessary, to make an backup of the original archive file, because it would be deleted by the unarcing process ( e.g. GZIP). in this case the you must add 1 and the following commands are included in JES: "copy #OFN #DUM.BAK ... your config ... copy #DUM.BAK #OFN #END" +2 When the archive must have an static extension (eg. .HAP or .EXE for the self extraction ones), you must add an 2. the extension must be entered in LINE L. if the archive extension differs from the default extension, the archive will be renamed temporary. in JES this would be realized like the following line: "ren #OFN #TIM#EXT #END ... your config ... ren #NAM #FIL#FEX #END" !!+4 add this to activate the small configuration type. !!+8 add this to activate the tiny configuration type. !!+16 prevent program from swapping. changed function !!! !!+32 To use the compact configuration type (if @OWR and @PFD not used) Line D: in the this line you must enter the pattern(s) for recognizing the archive. you must have at least one and you can have up to seven patterns for an archive type. The pattern string includes the pattern offset and the pattern string in decimal-Ascii code and it is build like the following examples will show: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-10 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ [A] SQZ : [D] 0:#72#76#83#81#90 this mean the pattern "HLSQZ" is matched at offset 0 of the archive file. The offset zero is the default, so you were allowed to write only #72#76#83#81#90 or :#72#76#83#81#90 in this case. The patterns are often described in the archivers documentation. You can also use an HEX-EDITOR to find out the static patterns for an archive type (* if there any *). Some archivers leave there patterns at the end of the archive, so you must count backward to find them e.g.: [A] DWC : [D] -3:#68#87#67 This search the pattern "DWC" as the last three characters in an archive. As also mentioned, you can mix up to seven patterns, like the example for self-extracting small zip-files: [A] sxf ZIP : [D] -22:#80#75#5#6 0:#77#90#186 if you have very similiar archive-types which can be handled by one program, it is possible to enter an questionmark (? or #63) at any position of the pattern, which contents doesn't matter. e.g. the program LHARC uses the pattern -lh1- and LHA normally uses -lh5-. in this case you would place a ? at the fourth position of the pattern like the following example shows: [A] LHA(rc) : [D] 2:#45#108#104?#45 ÀÄÄÄÄ the questionmark you can also enter an "symbolic" questionmark for the position of the pattern like: [A] ZIP : [D] 0:#80#75#3#4? -63:#80#75#5#6#0 or [D] 0:#80#75#3#4? 63:#80#75#5#6#0 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-11 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ with an -63 the search for the pattern starts at the end of file, with an 63 it starts at the begin of the file. do not use in this way, because the whole file will be checked, when the pattern doesn't exist. better use it with the range option, to say JUP to check only e.g. 5003 characters: [A] ZIP : [D] 0:#80#75#3#4? -63,5003:#80#75#5#6#0 up from 1.60 you can do something special more. first you can use in a line the result of the last pattern search, useful for range searches: [A] ZIP : [D] -63,100:#80#75#3#4 100,4,-1:#5#6 ÀÄÄÄÄ typ-id if the first pattern e.g. was found at position 1000, typ-id -1 effects that to the last position the value 100 will be added and in a range of 4 chars the next pattern will be searched. Also useful for large pattern with much spaces in it. possible typ-id's are: typ-id offset relative to ... (all files) -1: position of last pattern found (EXE files only, for non EXE-files the search will be aborted) -10: check for EXE-File -11: EXE size -12: EXE header size -13: EXE code reloc size -14: EXE start code position -15: position of NEW-EXE id (Windows/DLL files) you can repeat the fourth line multiple times, if there are different identification strings possible e.g. for different versions of an program. look at this example: [A] RAR 1.X : [D] 0:#82#69#126#94 ; RAR 1.30 [D] 0:#82#97#114#33#26#07#00 ; RAR 1.50 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-12 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ normally an ; marks an comment. to configure the subversion information, you must enter an == after to mark the comment. Repeating the last example: [A] RAR 1.X : [D] 0:#82#69#126#94 ; == RAR 1.30 [D] 0:#82#97#114#33#26#07#00 ; == RAR 1.50 is possible to use some specific functions in the subversions configuration. following functions are currently avaiable: - @CHR( chr ) ; default is @CHR(64) this function is for creating an simple character. chr: is the ascii-number of an character, if it can not be entered by an editor. - @POS( shift ) ; default is @POS(0) this function is for getting the number of the position, where the last pattern was found. shift: with the shift flag you can add an integer value to this position. - @STR( pos , count, maxl ) ; default is @STR(1,1,count) this function will given an string from the pattern found in the archive. pos: means the position in the result pattern. the result pattern is build by all pattern given for one archiver, e.g. [D] 0:#80#75#3#4#? -63,5003:#80#75#5#6#0 will create the pattern #80#75#3#4#(?)#80#75#5#6#0. count>0: the number of characters to build the string. blanks at the begin and the end will be deleted always. =-1: first character contains the length information. =-2: string is ASCII-Z terminated. maxl: the maximum numbers of chars to display. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-13 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ - @SHR( pos , count, maxl ) ; default is @SHR(1,1,count) this function works similar like @STR(), but it deletes blanks and non valid characters in the whole string. - @VAL( posx ,type ,dig ,dez ,add ,mult ) ; @VAL(1,0,0,0,0.0,1.0) this function will read binary codes characters and change them to readable information. posx: like pos, where pos=0 represents the position of the last found pattern type: following types are currently avaiable; 0=1 Byte as unsigned short 1=1 Byte as short int 2=2 Bytes as unsigned int 3=2 Bytes as int 4=4 Bytes as long int 5=4 Bytes as single float -2=2 Bytes as unsigned int ( MSB mode ) -3=2 Bytes as int ( MSB mode ) dig: the number of characters to be used for the string. an zero will give you an unformated result. dez: the number of digits after the dezimal point. an zero causes the ignoration of these digits. add: float value which should be added to the created result. mul: float value to multiply the result with. this step is done after an optional addition. one example should show that. for more see the file JUP.DAT: [A] SFX ZIP : [D] 1500,100,-10:?#46#??? & -63:#80#75#5#6#0#0#0#0?? ;& == PKzip @STR(1,5) (@VAL(14,2) sets) Self Extract could create e.g.: PKzip 2.04g (5 sets) Self Extract ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-14 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ - @CON( posx ,type ,cond ,value, true, false ) ; @CON(1,0,0,0.0,,) this function will compare binary codes characters with an given value and depending of the condition an string will be shown. cond: following condition types are avaiable; -4: pattern & value <> value --> NAND -3: pattern < value --> .LT. -2: pattern <= value --> .LE. -1,1: pattern <> value --> .NE. 0: pattern = value --> .EQ. 2: pattern >= value --> .GE. 3: pattern > value --> .GT. 4: pattern & value = value --> AND value: the value to compare the pattern result with true: string to show, if the condition was true. Spaces must be represented with "_" (underscore). false: string to show, if the condition was false. - @CAS( posx ,type, value_1, true_1, [...value_n,true_n] , false ) ; Default is @CAS(1,0,0.0,,) this function will compare binary codes characters with many given values returns an desired string. value_n: the value to compare the pattern result with true_n: string to show, if the condition was true. Spaces must be represented with "_" (underscore). an modified example taken form JUP.DAT will show it: [A] COMPRESSED EXE : [D] 28,-10:??#80#75#76#73#84#69 ; & == PkLite @CAS(2,0,33,-e,17,old,normal) EXE shows " PKLite -e EXE" if the pattern byte at position 2 is equal to 33, "..old.." if it is 17 and in all other cases "..normal.." Line E: in the fifth line you must enter the configuration for extracting the archive to the current directory without replacing existing files and without using included archive paths. the configuration must be entered in JES. e.g.: [B] HYPER : [E] #UNP -x #NAM #MSK #NOT #LST ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-15 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Line F: in the sixth line you must enter the configuration for extracting the archive without replacing existing files but the path included in the archive. the configuration must be entered in JES. e.g.: [B] PKUNPAK : [F] #UNP -x -n #NAM #MSK #LST Line G: in this line you must enter the configuration for extracting the archive with replacing existing files but without using the path included in the archive. enter the configuration in JES. [B] ARJ : [G] #UNP e -y #NAM #MSK #LST Line H: in this line you must enter the configuration for extracting the archive with replacing existing files and using the paths included in the archive. the configuration must be entered in JES. Example: [B] PAK : [H] #UNP e /WA /PATH #NAM #MSK #LST Line I: in this line you must enter the configuration for testing the archives integrity. the configuration must be entered in JES. [B] KATANA : [I] #UNP t -f:#DRV #NAM #MSK < nul #LST Line J: in this line you must enter the configuration for displaying files included in the archive. enter the configuration in JES. [B] LIMIT : [J] #UNP e -es #NAM #MSK #LST Line K: in this line you must enter the configuration for getting a list of the files included in the archive. the configuration must be entered in JES. Example: [B] PAH : [K] #CLS#END#UNP l #NAM #MSK#END#CAP Line L: this line can be normally left emtpy. it includes the default extension for the archive like ".ARJ". It must be filled out, when the archive typ in line [C] is set to 2. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-16 CONFIGURATION ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ How to create the compact mode configuration if you have already the huge one ? Huge mode example: [B] PKUNZIP : [E] #UNP -n #NAM #MSK #LST ; no overwrite, no path [F] #UNP -n -d #NAM #MSK #LST ; no overwrite use path [G] #UNP -o #NAM #MSK #LST ; overwrite, no path [H] #UNP -o -d #NAM #MSK #LST ; overwrite and uses path so for overwriting use @OWR(-o,-n) and for path use @PFD(-d,) result in compact mode: [B] PKUNZIP : [E] #UNP @OWR(-o,-n) @PFD(-d) #NAM #MSK #LST that's all. let's extend this example and include the password feature: [B] PKUNZIP : [E] #UNP @OWR(-o,-n) @PFD(-d) @PWD(-s#PWD) #NAM #MSK #LST and now the output path feature: [B] PKUNZIP : [E] #UNP @OWR(-o,-n) @PFD(-d) @PWD(-s#PWD) #NAM #MSK @OUT() #LST and last but not least the message outputh feature to use with the supquiet mode: [B] PKUNZIP : [E] #UNP @OWR(-o,-n) @PFD(-d) @PWD(-s#PWD) #NAM #MSK & @OUT() @MSG(>_CON,#LST) to force the output even if the supquiet mode is active. to break over long lines you can use & as the last char i a line, to JUP knows that the next belongs to the actual one. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-17 4DOS-SUPPORT ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ A) Starting with version 1.70 JUP handles the 4DOS command interpreter in a different way than the MS-DOS compliant, to prevent 4DOS from swapping (because JUP will swap already) and other little things. B) To work without problems under 4DOS, KSTACK.COM must be loaded already and the COMSPEC enviroment variable must be set with the complete path to the command interpreter e.g. COMSPEC=c:\4dos\4dos.com). 4DOS comes along with it own keybuffer filling program KEYSTACK, so you don't need the program JENKEYS. You can still use the syntax of previous versions of JENKEYS, but to make sure to have the same configuration under MS-DOS and 4DOS, please use only the new syntax, which is compatible with KEYSTACK. #KEY examples: 0.) #KEY ! ; clears the keybuffer 1.) #KEY "dir" ; fits the string "dir" into the keybuffer, no blanks inside the string are allowed. 2.) #KEY 13 10 ; fits the characters 13 (dec) and 10 (dec) into the keybuffer. you can use 0.) or instead any combination of 1) and 2) like: #KEY "echo" 32 "hallo" 13 10 "dir" 32 "*.*" 13 10 !!!! please remember: no blanks inside the "quoted" strings !!!!! C) Also under 4DOS the program JENPIPE is not required, the internal command TEE will be used instead. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ JEN SOFT SYSTEMS, Inc. JUP II-18