Home
User Manual FLAM V4.2 (MVS)
Contents
1. 5 Bo m m m m m m m m uU Lu 0 u cn DU LL LL LL LL LL LL LL LL no jac lt m m m m m m m m vo 2 6 m m m m m m m m o TE TERE 5D 5C 4E 9 d E F9 7A 5E 4D 8 F8 amp 50 4 5 6 F4 F5 F6 5B 6C 7B F3 DC2 DC3 DC4 SYN ETB EM SUB ESC FS 12 13 3C 3D 32 26 18 19 3F 27 1 7D 7 F7 DC1 11 Oo 3m ms o lt bs oN eps Io m ps m 1 LL Su gA in st X en x m s I Translation table from ASCII to EBCDIC A E TRANSLATE FLAM V4 5 MVSR 2015by limes datentechnik gmbh 2 Frankenstein Limes Access Method BEL BS CAN CR DC1 DC2 DC3 DC4 DEL DLE EM ENQ EOT ESC ETB ETX FF FS GS HT LF NAK NUL RS SI SO SOH SP STX SUB SYN US BLAM V4 5 MVS Frankenstein Limes Access Method Appendix Explanation of abbreviations acknowledge positive bell backspace cancel carriage return device control 1 device control 2 device control 3 stop output device control 4 delete data link escape end of medium enquiry station call end of transmission escape end of transmission block end of text form feed file separator group separater horizontal tabulation line feed negative acknowledge null no operation
2. 18 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 END OF FILE REC NOT FOUND NEW HEADER NO FLAMFILE FORMAT ERR RECLEN ERR FILELEN ERR CHECKSUM ERR MAXB INVALID COMPMODE INVALID COMPSYNTAX ERR BLKSIZE INVALID RECSIZE INVALID FLAMCODE INVALID FILE EMPTY NO DATA SET 02 RETCO X REDEFINES 03 RETCO 1 PIC X 88 FLAM ERROR RC VALUE LOW VALUE 03 RETCO 2 4 USED FOR FLAM OPEN 02 02 02 02 LASTPAR PIC S9 8 OPENMODE PIC S9 8 DDNAME PIC X 8 STATIS PIC S9 8 USED FOR FLAM GET 02 02 DATLEN 59 8 59 8 PROCEDURE DIVISION MAIN SECTION OPEN OUTPUT DATA VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE RETCO COMP SYNC VALUE 0 COMP SYNC VALUE 0 FLAMFILE COMP SYNC VALUE 0 VALUE 10 11 12 13 14 21 22 23 24 25 26 30 31 Chapter 5 COMP SYNC VALUE 80 OPEN DATA SET TO WRITE RECORDS OPEN OUTPUT OUTDAT OPEN FLAM OPEN FLAM FOR INPUT DECOMPRESSION CALL FLMOPN USING FILE ID RETCO LASTPAR OPENMODE DDNAME STATIS IF NOT FLAMOK THEN MOVE OPEN TO OPERATION PERFORM FLAM ERROR GO TO CLOSE DATA READ RECORD READ A RECORD WITH FLAM IN OUTPUT AREA Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples C
3. 5 05 KEYPOS6 DS KEYLEN6 DS 62 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh KEYFLAGS NUMBER OF KEYPARTS KEYPOSITION OF 1 KEYPART LENGTH OF 1 KEYPART DATATYPE OF 1 KEYPART T TN N N N N N N N N N N N N N N N N N Chapter 5 Application examples KEYTYPE6 DS KEYPOS7 DS KEYLEN7 DS KEYTYPE7 DS KEYPOS8 DS KEYLEN8 DS KEYTYPE8 DS END KEYPOSITION OF 8 KEYPART LENGTH OF 8 KEYPART DATATYPE OF 8 KEYPART N N N N N FLAM V4 5 MVS 63 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 IDENTIFICATION DIVISION 5 3 2 COBOL example The user I O can also be implemented in COBOL or in another higher programming language The following example implements two different functions that can be selected via the symbolic file name LINKNAME or DDNAME Using the DD name DATBASE ten records can be read with the content THIS IS A DATA BASE RECORD FROM THE USER VO Then return code END OF FILE is returned Using DD name USER with the content 20 records can be read THIS IS A USER RECORD FROM THE USER 1 0 Then return code END OF FILE is returned In addition in both cases the call protocols are written to the terminal precisely the sequence of the different calls PROGRAM ID USERIO THOR LIMES DATENTECHNIK GMBH AU OH EN co This allows to observe USER
4. 12 88 KEYDESC STRUCT KEYFLAGS F 0 1 KEYPARTS 0 8 51 1 32759 KEYLEN1 F KEYPOS8 F 1 32759 KEYLEN8 BLKSIZE F PRCTRL F SYSTEM x 0000 x 0080 x 0101 x 0102 x 0103 x 0104 x 0105 x 02XX x 0301 x 0302 x 0401 x 0402 x 0403 x 0501 x 0502 x 06XX x 07XX x 08XX x 11XX x 12XX Frankenstein Limes Access Method Chapter 3 Key description Options No duplicate keys Duplicate keys allowed Number of key parts 0 No keys available First byte of first key part Value Record length Length of first key part Data type of first key part Printable characters Binary values First byte of eighth key part Value lt record length Length of eighth key part Data type of eighth key part Printable characters Binary values Block length unblocked Printer control characters none ASA control characters Machine specific control characters XL2 Operating system where FLAMFILE was created unknown MS DOS IBM MVS z OS IBM VSE SP zVSE IBM VM SP VM XA IBM DPPX 8100 IBM DPPX 370 UNISYS DEC VMS DEC ULTRIX SIEMENS 52000 SIEMENS SINIX SIEMENS SYSTEM V NIXDORF 886X NIXDORF TARGON WANG PHILLIPS OLIVETTI INTEL 80286 INTEL 80386 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces x13XX INTEL 80486 FLAM V4 5 MVS 89 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh In
5. 7 RECSIZE F 0O 32760 RECFORM V RECFORM RECFORM RECFORM F U 6 8 lt RECDELIM XLn FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 11 Function FLMGHD The function FLMGHD Get File Header is only allowed during decompression The file header describes the file format of the original records It is possible to request the file header information with function FLMGHD at any time between FLAM OPEN FLMOPN FLMOPD FLMOPF FLAM CLOSE FLMCLS If there are several file headers in the FLAMFILE see FLMPHD the last file header recognized by FLAM is transferred with FLMGHD The first file header is usually available immediately after FLAM OPEN see FLMOPF HEADER 1 When FLAM recognizes additional file headers it will inform the user via the return code RETCO 6 of FLMGET or FLMLOC Identification Return code No error Invalid identification or function Length of file name or of area File name not known File name of original file File format sequential index sequential relative random access library physically Record format VARIABEL V 8 VARBLK 16 SPNBLK FIX F 9 FIXBLK UNDEFINED U STREAM 5 11 text delimiter 19 length Record length Maximum record length or 0 Record length Maximum record length or 0 Length of text delimiter or of length field Record delimiter 87 2015 by limes datentechnik gmbh Interfaces 9 10 11
6. Format errors which are reported by FLAM as checksum errors are relatively common occurrence connection with file transfers involving FLAMb d data All the parties concerned can thus be certain that the transfer was error free from the user s point of view beyond the limits of the FT protocol Some PC products do not even have a checksum for the compressed file but 11 2015 by limes datentechnik gmbh Introduction Chapter 1 instead just a single checksum for the complete original file which may be up to 4 GB in size FLAM does not impose any restrictions on the file s type or size FLAM V4 5 MVS 2015 by limes datentechnik gmbh 12 Frankenstein Limes Access Method Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction What an irony without FLAM this kind of error would often not even be noticed It is thus easy to gain the false impression that the error would never had occurred if FLAM had not been around to interfere The combination of and FLAM exhibits particularly remarkable synergy effects which are indispensable on account of the inadequate security and stability of the FTP FLAM is also very important as a pre post process for file transfers with checkpoint restart There is actually a whole series of problems related to file transfers that can only be solved using FLAM In the very few instances where this is not the case the reason lies in the probl
7. 1 File header to be created or available 8 MAXREC Maximum record number in matrix 1 255 in mode CX7 CX8 VR8 1 4095 in mode ADC 9 KEYDESC STRUCT Key description for original records the address of the KEYFLAGS F 0 1 KEYPARTS 0 8 51 1 32759 KEYLEN1 F 1 255 KEYTYPE1 F 0 1 KEYPOS8 F 1 32759 KEYLEN8 F 1 255 KEYTYPE8 0 1 10 BLKMODE F compressed files 0 data 78 Frankenstein Limes Access Method data structure must be passed Option No duplicate keys Duplicate keys allowed Number of key parts 0 no key Byte position of first part of key Length of first part of key Data type of first part of key Printable characters Binary values Byte position last part of key Length of last part of key Data type of last part of key Printable characters Binary values DEFAULT Blocked or unblocked output for sequential Unblocked one compressed record contains only from one matrix Blocked one compressed record can contain data from many matrices FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces 11 20 CL8 Blank or name of user exit for output of compressed file 12 EXD20 CL8 Blank or name of user exit of input of compressed file lt If the exit STREAM is activated automatically during decompression FLAM V4 5 MVS 79 Frankenstein Limes Access Method 2015 by limes datentechnik gmb
8. before the file name means the file contains a list of files to be decompressed DUMMY acts like the DD statement DD DUMMY File name for the output file Possible values File name with max 54 characters DUMMY Default no name Valid for decompression Note Specifying the file name is an alternative to assigning the file by means of a DD statement The specification can contain a conversion rule for file names see chapter 3 1 4 DUMMY acts like the DD statement DD DUMMY Create file header Possible values 17 2015 by limes datentechnik gmbh Interfaces HELP IBLKSIZE IBLK 18 Frankenstein Limes Access Method Chapter 3 YES Create file header NO Don t create file header Default YES Valid for compression Note The header consists of three parts The first part is independent from the operating system and contains file attributes that are compatible The second part depends on the operating system and contains file attributes specific for the according operating system The third part is optional and contains the file name when specified with the parameter FILEINFO FLAM and FLAMUP evaluate the file header in order to create with the most similar characteristics The simplest case is when the file is reconstructed the original system environment In this case the second operating system specific part of the file header can be used In all other cases only the
9. 1 lt gt WORKAREA 256F WORK AREA 2 lt RETCO F RETURN CODE 0 NO ERROR 1 RECORD TRUNCATED 4 RECORD FILLED WITH PADDING CHARACTER 5 INVALID KEY 1 UNSUPPORTED FUNCTION i X OFXXXXXX ELSE 3 gt RECLEN F RECORD LENGTH IN BYTES 4 gt RECORD XL RECORD NOTES IF THE GIVEN KEY IS THE SAME LIKE THE LAST KEY READ THE RECORD SHALL BE OVERWRITTEN REWRITE OTHERWISE THE RECORD SHALL BE INSERTED 2 gt K gt lt gt lt ok gt lt ok gt gt ok ok ok gt gt gt gt gt gt gt ok gt K gt K K ok ok ok ok ok gt K ok FK FK SK ok ok ok ok ok ok FK FK gt K K ok ok 2K ok ok K K ok K ok KR 2K 9 2 9 K K ok ok ok ok ok FK CE ok ok K K SAVE REGISTER AND LOAD PROGRAM REGISTER 5 R14 R12 12 R13 LR R10 R15 LOAD PARAMETER LM R1 R5 0 R1 ADDRESS WORK AREA LR R12 R1 USING WORKAREA R12 58 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples WRITE THE RECORD RETURN CODE 0 ERROR LA RO OK ST R0 0 R2 RETURN LM R14 R12 12 R13 BR R14 RELEASE WORK AREA REGISTER DROP R12 gt K gt lt gt lt ok gt lt ok gt gt gt lt ok gt gt gt gt gt gt gt gt ok gt ok gt ok ok 5k ok ok FK gt K ok FK FK FK ok ok ok ok ok ok FK FK gt F K ok ok ok ok ok FK K ok ok ok ok ok FK K 9 FK K ok ok ok ok FK ok K ok ok ok K LO
10. 2015 by limes datentechnik gmbh Chapter 3 SPLITSIZE SPLITS STORCLAS STORC UNIT VOLUME FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces All fragments have to be catalogued and ready to read It is not possible to decompress one fragment alone Using this parameter needs SPLITMODE PARALLEL Amount in MB of a fragment on serial split Possible values 1 4095 Default 100 Vaild for compression Note The number of created files depends on the amount of compressed data The information is stored in the FLAMFILE Using this parameter requires SPLITMODE SERIAL Storage class for allocation of the FLAMFILE Possible values name name of the SMS storage class Default none Valid for compression Unit for allocation of the FLAMFILE Possible values name name of the unit e g SYSDA 3390 Default none Valid for compression Volume for allocation of the output file 41 2015 by limes datentechnik gmbh Interfaces VOL TRANSLATE TRA 42 Frankenstein Limes Access Method Chapter 3 Possible values name name of the volume e g SYSWK1 Default none Valid for compression Code conversion lt CODE gt Possible values E A Converts EBCDIC to ASCII Converts ASCII to EBCDIC TRE2A00 Converts IMB273 to ISO 8859 1 TRA2E00 Converts ISO 8859 1 to IBM273 name Name of a data module 1 8 characters that contains a 256 byte table for code conversion Defau
11. 22 14 Frankenstein Limes Access Method Chapter 8 RUN TIME Elapsed time for decompression with FLAM This includes the time needed for tape mounting None DATA SET Name of the file to be decompressed FLAMFILE or of the target file FLAMOUT None DATA SET ORGANIZATION NOT SUPPORTED The target file cannot be created because FLAM does not support this file organization Assign an output file that FLAM can support WRITTEN RECORDS BYTES Number of records and bytes written into the target file A difference to the original file FLM0457 is caused by file conversion None DECOMPRESSION ERROR CODE Decompression was terminated with error code See also chapter 8 4 File none FLAMFILE FLAMFILE format error Record length error File length error Check sum error Invalid OPENMODE Invalid size of matrix buffer Invalid compression method FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 23 24 25 26 40 41 42 43 49 52 57 60 78 96 98 Action FLMO465 Explanation Action FLMO468 Explanation Action FLMO469 Explanation FLAM V4 5 MVS Frankenstein Limes Access Method Messages Invalid code in FLAMFILE Invalid MAXRECORDS parameter Invalid record length Invalid character code Module or table cannot be loaded Module cannot be called Module cannot be unloaded Abortion caused by exit routine
12. Licence fees apply to some of these interfaces For electronic banking BCS some banks and their partners provide complete solutions for PC users For the manufacturers of FLAM each new cooperation with software houses based on the FLAM standard is welcome This allows maximum benefit for all partners 5 2015 by limes datentechnik gmbh Introduction 6 Frankenstein Limes Access Method Chapter 1 The advantages of FLAM in key words Data transmission e Cost reduction by volume reduction e g packet switching Faster transmission by virtualisation e Implicit acceleration of other transmissions Change to slower physical lines possible Lower access and operation costs Less transmission faults due to physically slower transmission Solution for technological bottlenecks Increase of potential transmission frequency Reduction of network node and buffer workload More efficient reaction possible to line breakdowns transmission faults or operating mistakes FLAMFILE in parking position saves space allows immediate restart of transmission and can be archived Compatibility of the FLAMFILE in heterogeneous networks Portability of the FLAMFILE due to format options Convertibility of the FLAMFILE for printable data by pre and post character conversion possible e Conversion of record and file formats possible Utility Transparency of FLAMFILE to other a
13. PIC X 1012 PIC PIC S9 8 S9 8 VALUE 0 VALUE 1 PIC PIC X 4 X 4 THIS EXAMPLE WE DO NOT NEED THE FOLLOWING PARAMETERS 01 DSORG 01 RECFORM 01 RECSIZE 01 BLKSIZE 01 KEYDESC 03 KEYENTRY 01 DEVICE 01 RECDELIM 01 PADCHAR 01 PRCTRL 01 CLOSMODE 01 ACCESS 01 DSNLEN 01 DATA SET NAME USED FOR READING 01 DATALEN 01 DATA AREA 03 DATA 1 03 DATA 2 01 BUFFLEN FLAM V4 5 MVS Frankenstein Limes Access Method PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC S9 8 S9 8 S9 8 S9 8 03 KEYFLAGS PIC S9 8 COMP 03 KEYPARTS PIC S9 8 COMP S9 8 X 4 X S9 8 S9 8 S9 8 S9 8 X 44 S9 8 X 72 X 8 S9 8 COMP COMP COMP OCCURS 8 TIMES 05 KEYPOS PIC S9 8 COMP 05 KEYLEN PIC S9 8 COMP 05 KEYTYPE PIC S9 8 COMP COMP COMP COMP COMP COMP COMP COMP 65 2015 by limes datentechnik gmbh Application examples Chapter 5 X KH 66 PROCEDURE DIVISION USROPN MAIN SECTION OPEN ROUTINE USROPN MAIN 1 ENTRY USROPN USING USER WORK RETCO OPENMODE DDNAME IN THIS EXAMPLE WE DO NOT USE THE OTHER PARAMETERS SO IT IS NOT NECESSARY TO MENTION THEM FLAM STANDARDS ARE USED SEQUENTIAL VARIABLE LENGTH UP TO 32752 BYTE BUT
14. decompression The module is loaded dynamically Activate user exit for processing original data Possible values Name Default Valid for name of the module max 8 characters no user exit compression The module is loaded dynamically Activate user exit for processing compressed data Possible values name Default Valid for name of the module max 8 characters no user exit compression The module is loaded dynamically Transfer file name of original into file header Possible values YES NO Default Valid for Transfer file name of original into out of FLAM file header Don t transfer file name when compression On decompression a file name is generated FILEOOO1 FILE9999 which can be used for conversion rules YES compression decompression FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces FLAM V4 5 MVS 15 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces FLAMCODE FLAMC FLAMDDN FLAMD FLAMFILE FL 16 Frankenstein Limes Access Method Chapter 3 Code for FLAM syntax Possible values EBCDIC FLAM syntax is created in EBCDIC code ASCII FLAM syntax is created in ASCII code Default EBCDIC Valid for compression Note If the original data are in ASCII character code a better compression ratio is obtained using FLAMCODE ASCII Symbolic file name for compressed file FLA
15. ok ak Ek ok afk kaf ok leak okee kok K PARAMETERLIST FOR USROPN NOTE ADDRESSES ARE GIVEN NOT THE VALUES ok gt lt ok ok ok gt ok ok ok ok k ok FK FK ok ok FK ok R oK ok ok KOK ok ok ok K K ak OR R ok X ok ok FK ok KR ok ok K KR ok ok ok ok K R FK FK ok ok FK ok ok R R R ok ok K OR R ADWORKA DS WORK AREA ADRETCO DS RETCO ADOPMO DS OPENMODE ADDDN DS DDNAME ADDSORG DS DSORG ADRECFO DS RECFORM ADRECSI DS RECSIZE ADBLKSI DS A BLKSIZE ADKEYDE DS A KEYDESC ADEVICE DS DEVICE ADRECDE DS A RECDELIM ADPADC DS PADCHAR ADPRCTL DS PRCNTRL ADCLOSDI DS CLOSDISP ADACC 05 55 ADDSNLEN DS LENGTH DSN ADDSN DS DATA SET EJECT ok ok ok ok ok gt ok ok ok R ok K FK ok FK ok ok ok ok ok ok ok ok ok ak KR ok ok K ok ok FK ok KR K ok K K ok ok ok ok R K ok FK ok ok FK ok FK OR OR R OK ok OR OR R DUMMY SECTION gt K gt lt gt lt gt lt gt lt gt K gt ok ok gt gt ok gt gt ok gt gt ok gt gt K gt K gt k ok ok ok ok K gt K gt k FK ok FK ok ok ok ok ok ok FK FK gt K K ok ok FK ok ok FK K ok ok ok K ok FK 2 9 FK K ok ok ok ok 32 FK ok ok ok K K KEYDESC DSECT KEY DESCRIPTION KEYFLAGS DS KEYPARTS DS KEYPOS1 DS KEYLEN1 DS KEYTYPE1 DS 052 DS KEYLEN2 DS 2 DS KEYPOS3 DS KEYLEN3 DS KEYTYPE3 DS KEYPOS4 DS KEYLEN4 DS KEYTYPE4 DS 055 DS KEYLENS 05
16. A user header is to be transferred with FLMPUH FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces 3 3 20 Function FLMPKY The function FLMPKY allows to insert records into an index sequential FLAMFILE or to update records within such a file via a key Parameters 1 FLAMID Identification 2 lt RETCO F Return code 0 No error I Invalid identification or function 5 Key not allowed 15 Original record greater than 32763 bytes 16 Original record greater than matrix 4 43 Abort by user exit 52 Too many or invalid duplicate keys x FFXXXXXX DMS error code 3 RECLEN F Record length data length in bytes without record length field exclusive length 4 RECORD XLn Original record Data with key FLAM V4 5 MVS 99 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces Parameters 1 FLAMID F F N t A m a Boo 5 40 78 3 POSITION F MAXINT 99999999 MAXINT 99999999 N 9999 9998 start of the 9999 9998 100 Frankenstein Limes Access Method X FFXXXXXX Chapter 3 3 3 21 Function FLMPOS FLMPOS allows to position the record pointer within compressed files Identification Return code No error Invalid identification or function Invalid position see function FLMGET DMS error code Position File start 2147483648 or X 80000000 or File end 2147483647 or X 7FFFFFFF or N rec
17. Action FLM0470 Explanation Action FLM0471 Explanation Action FLM0472 Explanation Action FLM0474 Explanation Action FLMO475 Explanation Action FLAM V4 5 MVS Frankenstein Limes Access Method Messages INTEL 80486 Motorola 68000 UNIX None SPLIT ID To identify each fragment of a splitted FLAMFILE a unique code is displayed The correspondig file name was displayed FLMO410 or FLMO460 None OUTPUT SUPPRESSED Output file was not processed None INPUT DATA SET IS EMPTY The file to be compressed FLAMFILE is empty Assign a FLAMFILE for decompression ILLEGAL MEMORY FUNCTION OR INSUFFICIENT An illegal function was requested or the available memory space is insufficient Possibly a licence error is detected so all function calls are illegal Check memory space and increase the REGION entry if necessary Check your licence number has your environment changed CRYPTOKEY WRONG OR MISSING The FLAMFILE has been encrypted and you entered a wrong key for decryption or you forgot it at all Please enter the correct key for parameter CRYPTOKEY decryption 17 2015 by limes datentechnik gmbh Messages FLM0476 Explanation Action FLM0479 Explanation Action FLMO480 Explanation Action FLMO481 Explanation Action FLMO482 Explanation OLD DSN OLD CODE OLD DSORG OLD RECFORM 18 Frankenstein Limes Acces
18. After pressing the ENTER key control will be given back to the FLAM start menu All inputs are stored into the ISPF PROFILE file and will be available for future calls of FLAM panels The function keys PF3 and PF4 will cancel the process the inputs are discarded and not stored 8 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 FLAM user interface 9 2 1 Example for compression For compression c is specified as option C Compress data set or member I FLAMFILE info D Decompress data set or member 0 Processing options Specify original data set or member blank for DUMMY DATA SET NAME gt dat fb Specify FLAMFILE data set or member blank for DUMMY DATA SET NAME gt dat cmp Reuse existing data sets N Y N yes no Specify Listing for temporary blank for none DATA SET NAME gt FLAM Parameter gt mode vr8 gt Submit F F B Foreground or Batch The file DAT FB of the users identification shall be compressed into file DAT CMP of the users identification Since this file shall not exist already overwrite is inhibited as a protection for mistakes during entry The compression shall use compression mode VR8 After the ENTER key is pressed the file name is checked and the existence of the file is tested FLAM V4 5 MVS 9 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface C
19. Empty records or records with an asterisk in the first column are regarded as comment lines All file names used in MVS are legal Wildcard syntax is allowed Example If the records in the file USER DAT LIST contain the following file names 51 2015 by limes datentechnik gmbh Interfaces 52 Frankenstein Limes Access Method Chapter 3 USER DAT PS USER VSAM ESDS USER POLIB USER PO MEMBER the specification EXEC PGM FLAM PARM C FLAMIN gt USER DAT LIST leads to all the files specified being compressed into one FLAMFILE group file The file that contains the list of file names can have any format supported by FLAM and be of any type For in stream files i e input files temporarily created by JES it is advisable to assign the file names by means of DD names EXEC PGM FLAM PARM C IDDN gt DDNAME DDNAME DD USER DAT PS USER VSAM ESDS USER POLIB USER PO MEMBER This allows the file name list to be specified directly in the job 3 1 4 2 Wildcard syntax File names can be specified in FLAM by means of parameters written with wildcard syntax Correspondingly the entry FLAMIN USER DATA BC leads to the compression of all files with the 1st qualifier USER any 2nd qualifier DATA as the third part of their name a three digit 4th qualifier which ends with BC and begins with any character The asterisk stands for any even a
20. FLMGET FLMGHD FLMGKY FLMGRN FLMGTR FLMGUH FLMIKY FLMLCR FLMLOC FLMOPN FLAM V4 5 MVS Frankenstein Limes Access Method Functions FLMFRN Find Record Number positions the record pointer in an index sequential FLAMFILE that has been created from a relative or sequential file in such a way that the record with the specified record number can be read when FLMGET is subsequently activated FLMGET Get Record reads one and only one decompressed record from a specified buffer Using FLMGHD Get File Header all header information containing the file format of the original file can be read If more than one file header is contained in the compressed file the information is valid for that records that are read next FLMGET FLMLOC With FLMGKY Get KEY it is possible to read a record by key out of an index sequential FLAMFILE In addition the record pointer is positioned to the record with the nearest greater key to allow sequential read with FLMGET or FLMLOC FLMGRN Get Record Number reads the record with the specified record number from an index sequential FLAMFILE that has been created from a relative or sequential file FLMGTR Get Reverse reads the next decompressed original record progressing towards the start of the file into a specified buffer Information that has been added to the compressed data with FLMPUH during compression can be read by means of FLMGUH Get User Header during
21. Frankenstein Limes Access Method Messages The compressed data of a matrix has been stored in several parts with their own length fields During decompression an inconsistency of these length fields is detected without an invalid checksum having been found This error arises if entire records have been deleted from a compressed file not used not used Errors 60 to 78 describe all of the errors possible in the compressed data These errors identify program errors in FLAM itself and therefore must not arise during operation Since the ability to detect a corruption in a compressed file via checksums is limited to a certain level of probability it is possible that in few cases decompression error is reported inappropriately even though there is a corruption If decompression error arises it should be reported to the manufacturer enclose error documentation not used Syntax error during parameter input The syntax of the parameter string is incorrect If a number of parameters have been transferred at a time the error can be localized by shortening the parameter string by one parameter each time Unknown key word The parameter string contains an unknown key word or a parameter value is interpreted as a key word due to a syntax error Unknown parameter value An invalid value has been specified for a parameter with a fixed range of allowed values such as MODE Parameter value not decimal A non numeri
22. Original record length of area BUFLEN Record length in bytes Compressed record Length of compressed record in bytes The next two parameters are only needed for biserial decompression Sample record length of area BUFLEN Length of sample record in bytes Return code FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 8 Utilities Some utilities are released that improves support form FLAM and FLAMFILEs 3 8 1 FLAMCKV FLAMCKV analyses a cataloged VSAM KSDS FLAMFILE It displays the procentual distribution of record lengths and the number of records needed for one FLAM matrix in FLPRINT RECFM VB LRECL 124 This is very important for direct access to a VSAM KSDS FLAMFILE Please remember FLAM needs a complete matrix i e a block of self contained compressed records for decompression Even for direct access to a single record this complete matrix is requirerd So performance 15 best when this matrix is stored in one VSAM record If the VSAM record is too small to fit a complete matrix FLAM has to read or write mutiple records This decreases perfomance These requirements are not so important for a small amount of data But if thousands or millions of records are stored it becomes more and more relevant Example CKV EXEC PGM FLAMCKV STEPLIB DD DSN FLAM LOAD DISP SHR FLPRINT DD SYSOUT FLAMFILE D
23. With CRYPTOMODE AES the compression mode defaults to ADC rather than the mode specified in the default settings By specifying SECUREINFO YES additional information is saved with the compressed file that allows verifying the integrity of the FLAMFILE without decompressing it Changes to such a FLAMFILE e g by updating adding or deleting members from an group FLAMFILE are detected already by a formal check This information is always added when encryption is used It is ignored by FLAM 3 0 and does not cause decompression errors there SECUREINFO IGNORE suppresses this security check This may be desirable with secure FLAMFILEs that have been concatenated SECUREINFO MEMBER limits application of these integrity checks just to specified compressed members in an group FLAMFILE rather than to the entire FLAMFILE FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAMFILE splitting Serial Splitting Parallel Splitting FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates During compression a FLAMFILE can be splitted serially or in parallel into several parts subject to the settings of the parameters SPLITMODE SPLITNUMBER and SPLITSIZE Only the filename or DD name of the first fragment of a split FLAMFILE must be specified at decompression and no additional settings are required FLAM detects automatically whether and if so how a FLAMFILE has been splitted and searches by itself for the
24. by JES is displayed FLAM V4 5 MVS Frankenstein Limes Access Method 9 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 7 Technical data FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 7 Technical data Content 7 Technical data 3 7 1 System environment 3 7 2 Memory requirements 4 7 3 Performance 4 7 4 Statistics 5 FLAM V4 5 MVS 1 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Technical data Chapter 7 2 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 7 FLAM V4 5 MVS Frankenstein Limes Access Method Technical data 7 Technical data 7 1 System environment FLAM can be executed under the operating systems MVS XA MVS ESA OS 390 and z OS from IBM FLAM does not need authorization and does not need to be started out of an authorizised library FLAM is independent from the address mode 24 or 31 bit and from the load address upper lower address space But you cannot use data from above the bar 2 GB Because of compatibility calling application modules may reside in the lower address space FLAM modules are loaded into the lower address space The address mode is inherited from the calling program As an option FLAM can be configured to be loaded into the upper address space see installation procedure FLAM JOBLIB 5 02 If FLAM runs
25. datentechnik FLAM FRANKENSTEIN LIMES ACCESS METHOD MVS USER MANUAL Edition February 2015 Version 4 5 Copyright 1989 2015 by limes datentechnik amp gmbh Louisenstra e 21 D 61348 Bad Homburg Telephone 49 6172 5919 0 Telefax 49 6172 5919 39 http www flam de I http www limes datentechnik de FLAM V4 5 MVS Frankenstein Limes Access Method User Manual FLAM V4 5 MVS Copyright 2015 by limes datentechnik gmbh All rights reserved The reproduction transmission or use of this document is not permitted without express written authority Offender will be liable for damages Delivery subject to availability right of technical modifications reserved 2015 by limes datentechnik gmbh FLAM V4 5 MVS Frankenstein Limes Access Method Preface Preface This Manual describes data compression and decompression with the Frankenstein Limes Access Method This method is implemented by the product FLAM FLAM compresses structurally related data using the algorithm upon which the Frankenstein Limes Access Method is based This method has been patented by the German U S and European Patent Offices registered by the inventor at the 19 7 1985 FLAM FLAMFILE FLIES FLUC and limes datentechnik are registered trademarks 2015 by limes datentechnik gmbh Introduction Functions Interfaces This manual consists of the following ch
26. overhead the FLAM syntax which organizes a frame for the compressed data to fulfil the different requirements The overhead is the same for each record 4 byte in 7 bit format and 6 byte in 8 bit format The user should consider this when he defines the record length for the FLAMFILE The shorter the record length the bigger the overhead In addition the FLAMFILE contains the following syntactical elements an optional file header for each original file a compulsory block header for each matrix etc Usually the FLAMFILE starts with a file header This file header consists of a system independent on a system dependent part The file header contains various information about the original file During decompression FLAM will use this information if not provided otherwise to create the decompressed target file It is possible to concatenate multiple compressed files In this case the FLAMFILE contains multiple file header The FLAM utility ignores these file headers during decompres sion and will use only the first one However the others appear in the protocol With this feature FLAM is prepared for the insertion of identical file headers into archive files a feature that may help to identify a file even in the case of hardware faults If the FLAM record level interface is used the different files be separated during decompression An empty file is converted into a FLAMFILE that consists only out of a file header
27. record separator shift in switch back character set shift out switch character set start of heading space blank start of text substitute character synchronous idle unit separator vertical tabulation 2015 by limes datentechnik gmbh
28. 05 BYTES PIC 9 8 COMP SYNC 01 BYTECNT REDEFINES BYTEFIELD PIC S9 18 COMP SYNC 80 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 gt FLAMID F Interfaces 3 3 5 Function FLMDEL With function FLMDEL it is possible to delete the last read original record from an index sequential FLAMFILE Identification 2 lt RETCO F Return code 0 No error 1 Invalid identification or function invalid 5 No active record found 43 49 Abort by user exit x FFXXXXXX DMS error code see FLMOPN FLAM V4 5 MVS Frankenstein Limes Access Method 81 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 3 6 Function FLMEME The function FLMEME finishes the current data as member of Group FLAMFILE end member During compression the content of the matrix is compressed and written immediately enlarged with some security information if required SECUREINFO YES during decompression the next matrix is decompressed On AES encryption a member MAC is created and written The MAC is returned On AES decryption the member MAC is returned Statistical values are returned To end only a matrix and not the entire member function FLMFLU is provided Parameter 1 FLAMID F Identification 2 lt RETCO F Return code 0 No error 1 Invalid identification 43 49 Abort by user exit x FFXXXXXX DMS error code 3 CPUTIME F CPU in millisec
29. Code conversion is controlled via standard code tables or user defined code tables For special cases where a 1 1 code conversion is not possible for all characters user exits are provided 2 1 2 Decompression of files using FLAM FLAM reads a compressed file FLAMFILE decompresses the content and writes the result into a target file FLAM automatically configures itself according to the parameters 0 buffer size or record set size used during compression The general layout of the compressed file is described in a separate chapter FLAM version 2 7 can decompress all FLAMFILES created with FLAM V1 0 2 6 upward compatibility FLAM V2 0 V2 1 can decompress sequential FLAMFILES created with FLAM V2 5 V2 7 downward compatibility To adapt the decompression process to the requirements of the user it is possible to specify parameters during the program call interactively It is also possible to define the parameters using a parameter file or while generating the system FLAM creates a job protocol for each execution on screen or into a log file During decompression the characteristic parameters of the original files are restored depending on the information in the file header By specifying certain parameters it is possible to generate a target file differing from the original file All conversions are possible provided that the target system caters for the appropriate access method That the FLAMFILE eventual
30. DATA ZAWRK1 FLAMT CMP KSDS INDEX ZAWRK1 Command gt Scroll gt CSR produces the following output Menu Utilities Compilers Help BROWSE FLAMT FTMP L3508 Line 00000000 Col 001 080 lt K KK ok ok ok ok ok CE lt ok ok ok ok K CE x K K ok ok ok E K K K K ok ok ok K Top of Data lt K KK ok ok ok ok K CE lt lt ok ok ok CE CE x K x ok ok ok E K K K K ok ok ok K 34 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface FLAMCKV a program of FLAM utilities copyright c 2009 2014 by limes dat Utility to check a VSAM KSDS FLAMFILE for proper settings Data Set Name FLAMT CMP KSDS RECSIZE 1 024 CINV 8 192 RKP 0 KEYLEN 9 High used relative byte address HURBA 147 456 Number of Records 6 Number of Bytes 4 895 Min RECSIZE 138 Max RECSIZE 1 024 Number of VSAM records needed for one FLAM matrix 1 1 i 0 3 0 4 0 5 1 6 0 7 0 8 0 9 0 10 0 gt 0 Record length distribution RECSIZE No Records in Percent 1 1 1 1 i 1 T 1 1 1 1 1 1 1 1 1 1 m m O OOOOOOODO ANNANNNN AN N UI 0 100 66 Bottom of Data Kok ok K ok ok ok ok ok FK FK x x ok ok x CE x x K ok K ok ok K OK OK OK OK OK K Command gt Scroll gt CSR This
31. DISPLAY 20 UPON TERMOUT ACCEPT EXD20 FROM TERMIN END IF ELSE DISPLAY HEADER 0 0 1 5 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO HEADER IF OPEN INOUT THEN DISPLAY MAXREC 1 4095 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO MAXREC DISPLAY EXK20 UPON TERMOUT ACCEPT EXK20 FROM TERMIN END IF DISPLAY KEYDESC FUER ORIGINALDATEI UPON TERMOUT PERFORM KEYDESC EINGABE DISPLAY EXD20 UPON TERMOUT ACCEPT EXD20 FROM TERMIN END IF CALL FLMOPF USING FLAMID RETCO VERSION FLAMCODE COMPMODE MAXBUFF HEADER MAXREC KEYDESC ORIG BLKMODE 20 EXD20 IF NOT OK THEN DISPLAY ERROR OPENING FILE FILENAME UPON TERMOUT PERFORM FEHLER MELDUNG DISPLAY UPON TERMOUT DISPLAY PROGRAM ABNORMAL END UPON TERMOUT STOP RUN ELSE DISPLAY VERSION VERSION UPON TERMOUT DISPLAY FLAMCODE FLAMCODE UPON TERMOUT DISPLAY COMPMODE COMPMODE UPON TERMOUT DISPLAY MAXBUFF MAXBUFF UPON TERMOUT DISPLAY HEADER HEADER UPON TERMOUT DISPLAY MAXREC MAXREC UPON TERMOUT PERFORM KEYDESC AUSGABE DISPLAY BLKMODE BLKMODE UPON TERMOUT DISPLAY EXK20 EXK20 UPON TERMOUT DISPLAY EXD20 EXD20 UPON TERMOUT END IF FLAM V4 5 MVS 35 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 END IF END IF gt K gt lt gt ok gt gt gt gt ok ok gt gt gt gt gt ok
32. During the redesign some changes were necessary The message that an original file is already a FLAMFILE has been removed This statement could only be made with a certain probability but not with absolute certainty Modification of the code conversion table via PATCH parameter is not longer supported The CLIMIT parameter is only evaluated with INFO YES For efficiency reasons no statistic is evaluated for INFO NO Parameters from previous versions are always accepted and mapped on the new parameters if possible eg SANZ 1 is equivalent to MAXRECORDS 1 Other parameters are simply ignored e g PATCH The program size has been increased due to functional improvements and the combination of compression and decompression On the other hand FLAM can run entirely in the high order address space The dynamic memory requirements for the matrix buffer have been doubled This memory may now also be allocated in the high order address space The CPU work load did not change or was reduced by 15 The receiving and sending of compressed data at the KOFLAM DEFLAM interface is not longer supported This has been replaced by the repeatedly usable reentrant and XA capable record level interface FLAMREC For return of compressed data the user interface for file access USERIO is provided List of significant changes made with this version The modules for compression decompression are now combined into only one program Th
33. FLMSET PARAM FLMSET VALUE DISPLAY RETURNCODE INFOCODE UPON TERMOUT DISPLAY FLMSET RC RETCO FLMSET RC INFO UPON TERMOUT SETPARM OPF DISPLAY ENTER PARAMETER UPON TERMOUT DISPLAY 2001 CRYPTOMODE 2002 SECUREINFO UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO FLMSET PARAM DISPLAY ENTER VALUE 0 1 2 3 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO FLMSET VALUE BIN CALL FLMSET USING FLAMID FLMSET RC FLMSET PARAM FLMSET VALUE DISPLAY RETURNCODE INFOCODE UPON TERMOUT DISPLAY FLMSET RC RETCO FLMSET RC INFO UPON TERMOUT QUERY PARMS DISPLAY ENTER PARAMETER UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO FLMSET PARAM CALL FLMQRY USING FLAMID FLMSET RC FLMSET PARAM FLMSET VALUE DISPLAY RETURNCODE INFOCODE UPON TERMOUT DISPLAY FLMSET RC RETCO FLMSET RC INFO UPON TERMOUT IF FLMSET PARAM lt 6 OR FLMSET PARAM gt 10 THEN DISPLAY VALUE FLMSET VALUE BIN UPON TERMOUT ELSE DISPLAY VALUE FLMSET VALUE CHAR UPON TERMOUT END IF ok ok ok ok ok ok ok ok ak FK ok ok K ok ok ok ok R ok ok K X ok ok ok FK ok ok K ok ok ok K ok K R ok FK ok ok R ok R FK ok ok FK ok OR OR R HILFSFUNKTIONEN ok ok lt gt ok ok gt ok gt lt gt ok ok ok ok gt ok ak ok FK ok gt K ok ok gt K ok ok FK ok FK ok FK ok ok ok ok ok FK ok ok FK ok FK ok FK K ok ok ok ok FK ok k ok K ok K K K FEHLER M
34. No values Valid for compression 9 2015 by limes datentechnik gmbh Interfaces CRYPTOKEY CRYPTOK CRYPTOMODE CRYPTOM 10 Frankenstein Limes Access Method Chapter 3 Key to encrypt or decrypt a FLAMFILE This parameter activates the crytographic method entered with parameter CRYPTOMODE Possible values 1 64 characters starting with A C ora string Using A all characters are translated to ASCII with the internal translation table A E ch A Default no key Valid for compression decompression Note Please take care of the different code tables or national character sets used on the different platforms E g using the password FLAM both on Windows systems ASCII and on MVS EBCDIC leads to a password error You have to pass X 464C414D20 this is in ASCII or A FLAM on MVS instead We recommend to use the hex input for a heterogeneous environment Choose the algorithm for encryption Possible values AES Advanced Encryption Standard FLAM the internal FLAM algorithm Default FLAM Valid for Compression Note AES was introduced in FLAM V4 0 and is not compatible to older versions The encryption will be activated by the parameter CRYPTOKEY The encryption mode is stored in the FLAMFILE only the key is necessary on decompression and decryption Encryption implies MODE ADC or NDC Without entering a MODE parameter ADC is used FLAM V4
35. On online data storage media files compressed with FLAM can be used in connection with both sequential and index sequential access methods without additional intermediate conversions The same transparency applies for data exchange file transfer in a heterogeneous network between computers with different hardware and different operating systems Formatting of the compressed files can be controlled in a way that all requirements are met for maximum memory usage and for portability on any type of transmission lines with any file transfer product This is especially true for punched card formats 80 columns and for FTAM formats Compressed records can be created in both fixed and variable format FLAM is even able to generate compressed files in a printable format This allows to convert the compressed file from EBCDIC to ASCII and vice versa at any time At the other hand code conversions can be performed in combination with compression or decompression Optionally FLAM can convert file record formats This allows FLAM to solve compatibility problems between heterogeneous systems version dependent file management systems Restrictions regarding record format fix duplicate key etc are neutralized using FLAM as an access method System independency A FLAMFILE can be used on all computer Continuity Data security 2 Frankenstein Limes Access Method systems where FLAM is available The FLAMFILE is the base fo
36. Parameter 1 gt FLAMID F 2 lt RETCO F 0 1 2 otherwise 3 RECLEN F FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 17 Function FLMLCR The function FLMLCR is equivalent to FLMGTR Get reverse The data will not be transmitted but only a pointer on the record is provided locate Mode Identification Return code No error Invalid identification or function Beginning of file found see FLMGET or chapter 8 4 Record length in bytes of the passed record Record address data address Note With return codes 2 and 6 no record address is passed With return code 3 the length 0 is passed 95 2015 by limes datentechnik gmbh Interfaces Parameters 1 gt FLAMID F 2 lt RETCO F 0 1 2 3 6 read otherwise 3 RECLEN F 4 lt RECPTR A 96 Frankenstein Limes Access Method Chapter 3 3 3 18 Function FLMLOC The function FLMLOC is equivalent to FLMGET But data is not transferred Instead a pointer to the record is set LOCATE mode Identification Return code No error Invalid identification or function END OF FILE found gap in relative file found New file begins eventually a new file header can See function FLMGET or chapter 8 4 record length in bytes of record passed record address data address Note With return codes 2 and 6 no record address is passed With return code 3 the length 0 is passed FLAM
37. T A ADDRESS POSITION FOR F AREST gt gt gt gt gt gt gt gt gt gt VALUE T T N mm m CL54 LMGHD AND FLMPHD ADDRESS NAMLENE ADDRESS FILENAME ADDRESS FILE FORMAT ADDRESS RECORD FORMAT ADDRESS RECORD LENGTH ADDRESS RECDELIM ADDRESS KEYDESC ADDRESS BLOCK LENGTH ADDRESS PRINTER CONTROL ADDRESS ATTRIBUTE LENGTH ADDRESS SYSTEMSPEC ADDRESS OPERATING SYSTEM S FOR FLAMREC RETURN CODE FLAMFILE ID END OF PARAMETERS INPUT OPENMODE RELATIVE POSITION ABSOLUTE POSITION LENGTH OF FILE NAME FLAMFILE FILE NAME OF FLAMFILE DSORG RECFORM 71 2015 by limes datentechnik gmbh Interfaces 72 Frankenstein Limes Access Method MAXSIZE DS RECDELIM DS KEYSIZE DS BLKSIZE DS CLOSDISP DS DEVICE 05 VERSION DS CODE DS COMPMODE DS MAXBUFF DS HEADER 05 MAXREC 05 BLKMODE DS EXK20 05 EXD20 05 CPUTIME DS ELATIME DS SECONDS RECORDS DS BYTES 05 BYTEOFL DS CMPRECS DS CMPBYTES DS CBYTEOFL DS FSATTRL DS FSYSATTR DS KEY DESCRIPTION KEYDESC DS KEYFLAGS DS KEYPARTS DS KEYPOS1 DS KEYLEN1 DS XL4 T T m nnn N N m CL8 CL8 0x n mum m Chapter 3 MAXSIZE RECDELIM LENGTH OF ALL PARTIAL KEYS BLKSIZE CLOSDISP DEVICE FLAM VERSION FLAMCODE COMPMODE MAXBUFFER HEADER MAXRECORDS BLKMODE EXK20 EXD20 CPU TIME IN MILLI SECONDS ELAPSED TIME IN MILLI NUMBER OF ORIGINAL RECORDS NUMBER OF ORIGINAL BY
38. THEN PERFORM SCHLUESSEL EINFUEGEN ELSE IF FLMPWD THEN PERFORM PASSWORD ELSE IF FLMEME THEN PERFORM MEMBER ABSCHLIESSEN ELSE IF FLMQRY THEN PERFORM QUERY PARMS ELSE IF FLMCLS THEN DISPLAY FILENAME WILL BE CLOSED UPON TERMOUT ELSE DISPLAY FUNKTION UNBEKANNT UPON TERMOUT END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END IF END PERFORM FLAMFILE SCHLIESSEN CALL FLMCLS USING FLAMID RETCO CPUTIME REC ORDS BYTES BYTEOFL CMPRECS CMPBYTES CMPBYOFL IF NOT DISPLAY ERROR CLOSING FLAM FLMCLS UPON TERMOUT PERFORM FEHLER MELDUNG ELSE IF STATISTIK THEN DISPLAY UPON TERMOUT MOVE CPUTIME TO STATIS DIS FLAM V4 5 MVS 37 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 DISPLAY CPU ZEIT STATIS DIS UPON TERMOUT MOVE REC ORDS TO STATIS DIS DISPLAY ORIGINAL RECORDS STATIS DIS UPON TERMOUT MOVE BYTECNT TO STATIS DIS DISPLAY ORIGINAL BYTES STATIS DIS UPON TERMOUT MOVE CMPRECS TO STATIS DIS DISPLAY COMPRESSED RECORDS STATIS DIS UPON TERMOUT MOVE CMPBYCNT 0 STATIS DIS DISPLAY COMPRESSED BYTES STATIS DIS UPON TERMOUT END IF DISPLAY UPON TERMOUT DISPLAY PROGRAM NORMAL END UPON TERMOUT END IF STOP RUN gt K ok gt ok gt ok ok ok ok ok ok gt ok gt ok ok gt K ok ok ok gt ok gt K ok gt ok
39. This flexibility makes it mostly possible to find a suitable solution for all participating software and hardware environments as well as for special applications The FLAMFILE is principally a binary file where all 256 bit combinations are allowed With this code the FLAMFILE only be transmitted transparent mode MODE CX8 VR8 If transmission on 7 bit line is performed file transfer products expand such binary files in a way that ASCII compatibility is guaranteed Some products convert each half byte into one byte other products expand 3 bytes into 4 bytes If the original file contains only printable characters FLAM can provide a different code format of the compressed file MODE CX7 In this case characters from the original file are not combined with FLAM descriptors but simply copied into the compressed file This mode is mostly more efficient than MODE CX8 with following expansion 3 to 4 The FLAM descriptors itself consist under MODE CX7 only from printable characters that are unambiguous in the international code systems ASCII and EBCDIC These are all small and big Latin letters the ten digits and the blank Any kind of control character special characters umlauts are excluded The advantage of this method is that the resulting FLAMFILE can be converted freely between ASCII and EBCDIC and vice versa at any time between compression and decompression If the conversion is not handled by the data
40. cryptokey Pass it via FLMPWD not used FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 10 11 FLAM V4 5 MVS Frankenstein Limes Access Method Messages When compressing with the statistics switched on FLAMUP or FLAM reports that the compressed file is larger than the original file expansion Return codes 10 and higher are errors The function has not been executed or has been aborted Exception return code 98 from FLAMUP or FLAM During decompression the input file has not been recognized as being a FLAM compressed file The very beginning of the file is corrupted to such an extent that the FLAM syntax cannot be recognized Possible causes of this error are The input file is not a compressed file or it was not compressed using FLAM The very first record has been shortened or data has been inserted in front of the FLAM compressed file This error is often caused by incorrectly set file transfers When 8 bit compressed files are transferred a file transfer for printable data is used and the characters of the compressed file are corrupted as a result When index sequential compressed files are transferred from DEC VMS to a different system such MVS BS2000 etc the key length of the compressed file must be increased by the record and block counters 1 2 or 4 bytes Compressed records are shortened lengthened or wrapped while being transferred Note Some of these
41. etc These settings may be adapted to special requirements Via predefined and user defined return codes the successful execution as well as special status information and errors can be reported to the higher layers 2 USRCLS This function is called to close the file The 1024 byte working area reserved for this file is deallocated after returning control to FLAM 3 USRGET This function is called to retrieve the next record The maximal amount of characters that may be returned are specified in parameter BUFLEN If it is necessary to truncate the record this must be signalled via a return code Also the end of file condition must be signalled via a return code For each record returned the record length must be returned as well also for records with fixed record length 12 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 4 USRPUT 5 USRPOS 6 USRGKY 7 95 8 USRDEL FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation This function is called to write a record If it is not possible to write the record in full length the return code record truncated must be reported to the higher layers Another possibility is to fill the record with the padding character PADCHAR as specified USROPN and to return the corresponding return code This function is called to move the current read or write pointer Relative positioning forwa
42. gt Input of B in line FLAMT FLAMTSO1 DAT FLAMT FLAMTS LIST SEQ F 133 133 400 2 FLAMT FLAMTSO1 DAT1 SEQ V 260 264 350 i FLAMT FLAMTS02 DAT2 SEQ VB 260 23440 28500 K COMMAND gt causes a decompression of this member and the display by means of the ISPF browse function Browse Member of FLAMFILE DAT CMP originally compressed on MVS FLAMT FLAMTSO1 DAT Lines 00000000 Col 001 080 gt k gt lt ok ok ok ok ok ok ok ok ok ok ok ak FK ok K FK ok FK R ok ok K ok ok ok FK FK ok ok R Top of Data kok ok ok ok ok ok ok ok ok ok ok ok ok R ok ok FK K ok FK ok ok ok ok ok ok ok FK ok ok K K oke 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 FLAM V4 5 MVS 27 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L000050010060 000021112850 0123456780000001 0000001 19980202L00
43. gt tso exec pref flam ISPF PARMS Specify terminal and user parameters BROWSE Display source data or output listings EDIT Create or change source data UTILITIES Perform utility functions With pref as file name prefix of the FLAM CLIST library according TSO conventions Then the FLAM user interface panel will be displayed 4 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface We recommend to modify an existing ISPF panel e g ISRUTIL instead In the following example the changes are printed in bold characters UTILITY SELECTION MENU ZCMD LIBRARY Compress or print data set Print index listing Print rename delete or browse members DATASET Allocate rename delete catalog uncatalog or display information of an entire data set MOVE COPY Move copy or promote members or data sets DSLIST Print or display to process list of data set Print or display VTOC information RESET Reset statistics for members of ISPF library HARDCOPY Initiate hardcopy output OUTLIST Display delete or print held job output COMMANDS Create change an application command table CONVERT Convert old format menus messages to new format FORMAT Format definition for formatted data Edit Browse SUPERC Compare data sets Standard dialog SUPERCE Compare data sets Extended dialog SEARCH FOR Search data sets for strings of data FLAM Data Compression
44. independent from the record format of the original file Fix blocked format is recommended Additional information stored in the FLAMFILE Increasing the security of data Changing the FLAMFILE in any way leads to a decompression error Possible values YES create these information default on encryption on compression NO do not store any additional data IGNORE ignore any security violations on decompression MEMBER only member specific security informations verified decompression not the entire FLAMFILE Default without encryption YES with encryption Valid for compression decompression FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces Note Concatenation of secure FLAMFILEs lead to secure violations SECUREINFO YES needs MODE ADC or NDC SHOW Control of protocol SH Possible values ALL messages statistics generate and display NONE Don t display messages ATTRIBUT Display the parameters for compression or decompression but do not execute processing ERROR Display error messages and end of program message only DIR The names of all files and their attributes that are to be processed are listed Default ALL Valid for compression decompression Note The SHOW parameter is in effect after it is recognized The statistics inform about elapsed time and CPU time needed Also the number of bytes and records for both input and out
45. records Post processing may perform a selection of specific records or fields Instead of using the more complicated record level interface record orientated processing can be done often with user exit EXD10 FLAM V4 5 MVS 17 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 5 2 Record level interface 4 5 2 1 Compression with user exit EXK20 library user EEMPAD program FLMPU OIE compressed F ELS file Data flow during compression with user exit The user exit for compressed records can also be used under the record level interface The actual interception or original records by the interface is not affected 18 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation 4 5 2 2 Decompression with user exit EXD20 user program uncompresse d file Data flow during decompression with user exit The user exit for compressed records can also be used under the record level interface The actual interception or original records by the interface is not affected FLAM V4 5 MVS 19 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 6 Bi serial compression uncompresse d record pattern record workarea optional datentechnik compressed record Data flow during compression with BIFLAMK BIFLAMK proces
46. 1 OCCURS 32767 TIMES INDEXED BY REC INDEX RECORD DISPLAY REDEFINES REC ORD PIC X 80 RECORD KEY DISPLAY 02 RECORD KEY BYTE PIC X 1 OCCURS 80 INDEXED BY KEY INDEX BUFLEN PIC S9 8 COMP SYNC VALUE 32767 PARAMETER FLMPWD PWDLEN PIC S9 8 COMP SYNC VALUE 0 CRYPTOKEY PIC X 64 PARAMETER FLMFKY FLMGRN FLMFRN KEY LEN PIC S9 8 COMP SYNC VALUE 8 CHECKMODE PIC S9 8 COMP SYNC VALUE 0 RECNO PIC S9 8 COMP SYNC PARAMETER FLMSET FLMSET RC 05 FLMSET RC RETCO PIC S9 8 COMP 88 ERR RC TIME VALUE 90 88 ERR RC PARAM VALUE 91 88 ERR RC VALUE VALUE 92 05 FLMSET RC INFO PIC 9 8 COMP FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples 77 FLMSET PARAM 9 8 SET BEFORE FLMOPD 88 SETPRM SPLITMODE VALUE 1 88 SETPRM SPLITNUM VALUE 2 88 SETPRM SPLITSIZE VALUE 3 88 SETPRM PRIMSPACE VALUE 4 88 SETPRM SECSPACE VALUE 5 88 SETPRM VOLUME VALUE 6 88 SETPRM UNIT VALUE 7 88 SETPRM DCLASS VALUE 8 88 SETPRM SCLASS VALUE 9 88 SETPRM MCLASS VALUE 10 88 SETPRM DISPS VALUE 11 88 SETPRM DISPN VALUE 12 88 SETPRM DISPS VALUE 13 SET BEFORE FLMOPF 88 SETPRM CRYPTOMODE VALUE 2001 88 SETPRM SECUREINFO VALUE 2002 01 FLMSET VALUE 05 FLMSET VALUE CHAR PIC X 8 05 FLMSET VALUE NUM REDEFINES FLMSET VALUE CHAR 07 FLMSET VALUE BIN PIC 9 8 COMP 88 SETVAL SPLITSER VALUE 1 88 SETVAL SPLITPAR VALUE 2 88 SETVAL CRY FLAM VALUE 1 88 SETVAL CRY AES VALUE 2 88 SE
47. 36 Frankenstein Limes Access Method Chapter 3 Padding character for an output record Possible values X a hex value X 00 X FF Cy any character Default X 40 Valid for decompression Note This parameter is only used when an output record has to be filled up during decompression e g the original variable record has to be converted to a fix output format Symbolic file name for parameter file Possible values DD NAME with max 8 characters Default FLAMPAR Valid for compression decompression Note This parameter allows to change DD NAME in the DD command If no symbolic file name is specified for the parameter file PARDDN NONE FLAM will not try to read from the parameter file If the parameter file is not existent or empty no error is recorded File name for parameter file Possible values File name with max 54 characters Default no name Valid for compression decompression Note Specifying the file name is an alternative to assigning the file by means of a DD statement This file is needed only if additional parameters are to be read from a catalogued file Password used for en decryption same as CRYPTOK FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 PASSW RECDEL RECD RECFM FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Possible values Any input up to 64 characters 512 bit Default no password Valid for compress
48. 4 3 4 1 3 4 2 3 4 3 3 4 4 3 4 5 3 4 6 3 4 7 3 4 8 3 5 3 5 1 3 5 2 3 5 3 3 5 4 3 5 5 3 6 3 7 3 8 3 8 1 3 8 2 3 8 3 Chapter 3 Function FLMPUH 91 Function FLMPUT 92 Function FLMPWD 93 Function FLMQRY 94 Function FLMSET 96 Function FLMUPD 98 User I O interface 99 Function USROPN 100 Function USRCLS 102 Function USRGET 102 Function USRPUT 103 Function USRGKY 103 Function USRPOS 104 Function USRPKY 104 Function USRDEL 105 User exits 106 Input original data EXK10 106 Output compressed data EXK20 108 Output original data EXD10 110 Input compressed data EXD20 112 Key management KMEXIT 114 Bi serial compression BIFLAMK 116 Bi serial decompression BIFLAMD 118 Utilities 124 FLAMCKV 124 FLAMCTAB 127 FLAMDIR 129 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 Interfaces FLAM provides a set of interfaces that allow the use of the product within different environments and for different applications The simplest application is the execution of FLAM via the EXEC command This allows to compress or decompress complete files In addition FLAM provides a set of subprogram interfaces for integration with other programs and products This allows also to develop tailored applications where FLAM is embedded in dedicated control programs User exits provide the pre and postprocessing of the original data as well as of the compres
49. 8 X 8 59 8 59 8 80 LOW VALUE COMP SYNC VALUE 0 COMP SYNC VALUE 1 VALUE FLAMFILE COMP SYNC VALUE 0 COMP SYNC VALUE 80 OPEN DATA SET TO READ RECORDS OPEN INPUT INDAT OPEN F LAM OPEN FLAM FOR OUTPUT COMPRESSION CALL IF NOT FLAMOK THEN MOVE OPEN FLMOPN USING FILE ID RETCO LASTPAR OPENMODE DDNAME STATIS TO OPERATION PERFORM FLAM ERROR GO TO CLOSE DATA READ RECORD READ A RECORD FROM INPUT DATA SET READ INDAT INTO DATABYTES END WRITE RECORD GO TO FINISH COMPRESSION WRITE THE RECORD WITH FLAM COMPRESSION CALL FLMPUT USING FILE ID RETCO DATLEN DATABYTES FLAM V4 5 MVS Frankenstein Limes Access Method 15 2015 by limes datentechnik gmbh Application examples Chapter 5 IF FLAMOK THEN GO TO READ RECORD ELSE MOVE PUT TO OPERATION PERFORM FLAM ERROR FINISH COMPRESSION CLOSE FLAM CALL FLMCLS USING FILE ID RETCO IF FLAMOK THEN MOVE CLOSE TO OPERATION PERFORM FLAM ERROR CLOSE DATA CLOSE INDAT MAIN END STOP RUN FLAM ERROR SECTION FLAM ERROR 1 IF NODMS ERROR THEN DISPLAY FLAM ERROR UPON OUT PUT ELSE MOVE LOW VALUE TO RETCO 1 DISPLAY DMS ERROR FOR FLAMFILE UPON OUT PUT DISPLAY OPERATION OPERATION RETURNCODE RETCO UPON OUT PUT FLAM ERROR 99 EXIT 16 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Ap
50. 8 3 FLAM return codes 8 4 Condition codes Messages 20 29 1 2015 by limes datentechnik gmbh Messages Chapter 8 2 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 8 Messages 8 Messages 8 1 Messages from the Utility Messages are only printed by the FLAM utility or by the subprogram FLAMUP No messages are printed by the record level interface FLAMREC With parameter MSGDISP it is possible to control the output medium for messages MSGDISP TERMINAL Currently not supported MSGDISP MSGFILE MSGDISP SYSTEM FLAM V4 5 MVS Frankenstein Limes Access Method use allocate dsn dd flprint instead in TSO The messages are written into a catalogued file The DD NAME of this file is FLPRINT by default and can be modified using parameter MSGDDN lt name gt The messages are issued using the WTO macro to the operator console route code 11 3 2015 by limes datentechnik gmbh Messages FLMO400 Explanation Action FLMO401 Explanation Action FLMO402 Explanation Action FLM0403 Explanation Action FLM0404 Explanation Action 4 Frankenstein Limes Access Method Chapter 8 8 2 Message Listing FLAM messages FLAM COMPRESSION VERSION yyyy mm dd hh mm ACTIVE ON The FLAM compression system was activated Version year month day and time of start ar protocolled FLAM means Frankenstein Lim
51. 9 9 6 FLDISP This CLIST procedure is intended for use in panel 3 4 in ISPF file list but it can also be called directly In the latter case the file name is requested FLDISP displays the contents of the file specified in the line If a FLAMFILE exists it is decompressed into a temporary file and this file is displayed An uncompressed file is displayed directly i e the command can be used for all files that can be displayed same as function 1 BROWSE in ISPF The call can be supplemented with FLAM parameters for decompression The command is entered in the same line as the file name to be displayed FLDISP or FLDISP or with parameters FLDISP PARM FLAM parameter Without parameters a sequential PS file is created by default If a PO library has been compressed a PO library can be created again by specifying the parameter PO FLDISP PARM FLAM parameter Example DSLIST DATA SETS ROW 15 COMMAND gt SCROLL COMMAND NAME TRACKS USED XT FLDISP USER DAT USER DAT USER DAT KSDS CMP USER DAT KSDS CM 22 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface FLDISP can also be used to display a VSAM FLAMFILE using the BROWSE function Since the file is decompressed into a temporary PS file it is also possible to include parameters for FLAM if necessary DSLIST DATA SETS BEGINNING WITH USER R
52. FLAM TEMPLIST LINE 00000000 COL COMMAND gt TOP OF DATA EKKE a ok a kok a ok a kok a kkk FLM0448 FLM0428 FLM0400 FLM0410 FLM0415 FLM0415 FLM0415 FLM0415 FLM0415 FLM0410 FLM0415 FLM0415 FLM0415 FLM0415 FLM0415 FLM0415 FLM0415 FLM0408 FLM0409 COPYRIGHT C 1989 1999 BY LIMES DATENTECHNIK GMBH TEST 2000182 RECEIVED C MODE VR8 FLAM COMPRESSION VERSION 3 0A00 ACTIVE DATA USED USED USED USED USED DATA USED USED USED USED USED USED USED CPU TIME RUN TIME SET NAME PARAMETER PARAMETER PARAMETER PARAMETER PARAMETER SET NAME PARAMETER PARAMETER PARAMETER PARAMETER PARAMETER PARAMETER PARAMETER FLAM30 DAT FB ACCESS LOG IDSORG SEQUENT IRECFORM FIXBLK IRECSIZE 80 IBLKSIZE 3120 FLAM30 DAT CMP MODE VR8 MAXBUFF 32768 MAXREC 255 MAXSIZE 128 DSORG SEQUENT RECFORM FIXBLK BLKSIZE 1280 0 0390 0 3325 FLM0406 FLM0407 INPUT RECORDS BYTES 27 OUTPUT RECORDS BYTES 9 FLM0416 COMPRESSION REDUCTION IN PERCENT FLM0440 FLAM COMPRESSION NORMAL END BOTTOM OF DATA 2 160 1 152 46 67 When PF3 is pressed control is given back to the start menu 12 Frankenstein Limes Access Method FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 2 2 Example for de
53. ID 0101 7 FLM0460 DATA SET NAME USER DAT DEC FLMO465 USED PARAMETER ACCESS LOG 8 FLM0456 INPUT RECORDS BYTES 10 5120 FLM0457 OUTPUT RECORDS BYTES 155 12400 9 FLM0458 CPU TIME 0 0456 FLM0459 RUN TIME 0 1688 10 FLMO490 FLAM DECOMPRESSION NORMAL END 1 The copyright message contains the licence number test licence with expiration date at 18274 day in 2006 2 FLAM records the PARM specification 3 The current FLAM version is recorded 4 The file name for the FLAMFILE is recorded In the following the information contained in the FLAMFILE header is recorded size of compression buffer compression mode coding of FLAM control characters and the file attributes of the FLAMFILE 5 the Here all information about the original file is recorded as contained in FLAMFILE header 6 This message informs that the FLAMFILE was created by an MVS system 7 The file name of the output file is recorded Because no other file attributes are displayed the file is created with the file attributes of the original file 8 number of records and bytes for both input and output recorded always true data without record length fields 9 8 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The CPU time used and the elapsed time are displayed Chapter 5 Application examples 10 Decompression was terminated without error FLAM V4 5 MVS 9 Fr
54. IDCAMS the specifications mentioned above should be taken into account A too short key length leads to a loss of performance during further processing note Sometimes the actual used file has a different name than given found by jcl DD statement and is longer than expected If the buffer FILENAME in length of NAMELEN is too short to fit the full file name it will be truncated It is recommended to define FILENAME in length of 54 bytes to fill up the file name with blanks and to set NAMELEN to 54 On return the actual length is stored FILENAME is padded with blanks 3 3 3 Function FLMOPF The function FLMOPF defines the attributes of the compressed file FLMOPF can be called as second function after FLMOPN or as third function after FLMOPD Identification Return code No error Invalid identification invalid call e g LASTPAR 0 FLMOPN or FLMOPD Load of user exit failed Abort by user exit Further return codes see chapter 8 FLAMFILE version Version 1 6020 Version 1 6035 Version 2 Version 3 Version 4 Character code of FLAMFILE EBCDIC ASCII 77 2015 by limes datentechnik gmbh Interfaces Chapter 3 5 amp COMPMODE F Compression mode 0 CX8 1 CX7 2 VR8 3 ADC 5 NDC 6 MAXBUFF F Size of matrix buffer in BYTES Any positive value is allowed The actual used value is returned 7 gt HEADER FILEHEADER to be created or available 0 No file header to be created or available
55. IF END PERFORM IF NOT OK DISPLAY ERROR IN FLMGTR UPON TERMOUT PERFORM FEHLER MELDUNG END IF SATZNUMMER LESEN DISPLAY UPON TERMOUT DISPLAY RECORD NUMBER UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECNO MOVE SPACES TO RECORD DISPLAY CALL FLMGRN USING FLAMID RETCO RECLEN REC ORD BUFLEN RECNO IF GAP DISPLAY GAP FOUND UPON TERMOUT MOVE 0 TO RETCO ELSE IF OK OR CUT DISPLAY RECORD DISPLAY UPON TERMOUT END IF END IF IF NOT DISPLAY FEHLER BEIM POSITIONIEREN AUF SATZNUMMER UPON TERMOUT PERFORM FEHLER MELDUNG END IF SATZNUMMER POSITIONIEREN DISPLAY UPON TERMOUT DISPLAY RECORD NUMBER UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECNO DISPLAY CHECKMODE 0 1 2 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO CHECKMODE CALL FLMFRN USING FLAMID RETCO RECNO CHECKMODE IF NOT OK DISPLAY ERROR IN FLMFRN UPON TERMOUT PERFORM FEHLER MELDUNG ELSE DISPLAY RECORD NUMBER RECNO UPON TERMOUT END IF POSITIONIEREN DISPLAY UPON TERMOUT DISPLAY RELATIVE POSITION UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO REL POSITION CALL FLMPOS USING FLAMID RETCO REL POSITION FLAM V4 5 MVS 39 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 40 IF NOT DISPLAY ERROR IN FLMPOS UPON TERM
56. Interfaces 126 Frankenstein Limes Access Method Chapter 3 Return code 12 is only necessary if decompression Shall be finished before the end of the compressed file is reached Because of the necessary synchronisation with the construction of the matrix this return code is not always possible For function code 0 and 8 no record is passed to the module Table of valid function codes and return codes Funktionscode Returncode FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Name Register usage R1 U R13 R14 R15 Parameter list 1 4 gt 5e FUCO F RETCO F else PARMLEN F PARAM XLn Interfaces 3 5 5 Key management KMEXIT This user exit is an interface to a special e g user written key management system On encryption parameters KMPARM are passed to the module It returns a key for encryption of the FLAMFILE and a string up to 512 byte These data are stored in the FLAMFILE as an user header see parameter COMMENT or function FLMPUH On decryption parameters KMPARM and the data stored in the user header are passed to the exit The module returns the same key as on encryption It is up to the module how to create a key and what kind of information are to be stored into the user header of the FLAMFILE These data will help the module to find the correct key on decryption The exit is activated via the parameter KMEXIT lt
57. JCL generation O File names can be entered according to TSO conventions If a file name is not enclosed in quotes a file from the own identification is assumed Files from foreign identifications Userid must be specified with the full file name enclosed in quotes For execution in batch the file name is prefixed with the identification if the quotes are missing E g while running under identification FLAM a data set name of FLAM DAT SMF is generated from the input DAT SMF for the execution in batch But if SYS2 DAT SMF is entered the generated data set name will be SYS2 DAT SMF If no file name is entered a DUMMY statement will be generated This means that no file is read or created by FLAM This can be useful to evaluate compression ratios test and debug jobs or to use user exits with own I O routines 6 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface The file name is checked for syntax If the file is not catalogued the allocation panel will be called to allow to catalogue and allocate the file an error message is given otherwise The FLAM protocol is principally stored into a file if no other instructions are given by generation or via parameter see parameter MSGDISP Also for this file a file name can be specified If default is specified a temporary file will be allocated and released after execution For batch the statement SYSOUT
58. Library for examples and installation Library with source code examples see FLAM manual chapter 5 Library for FLAM panels Library for FLAM CLIST procedures Library for FLAM skeletons Library for FLAM messages The content of the libraries may vary depending on the maintenance level of the actual delivery Each delivery comes with a table of contents of the installation tape FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 6 FLAM V4 5 MVS Frankenstein Limes Access Method Installation 6 3 Installation of FLAM Usually FLAM is loaded from the internet by the user If wanted FLAM is delivered on a CD ROM README text files are included as guides for installation Manuals are stored as PDF documents for reading on the appropriate system Windows Unix The data for the z OS operating system are stored as a FLAMFILE A binary file transfer without any CRLF or ASCII translation and decompression with FLAM stores all libraries and data to disk LOAD library and license are stored in TSO XMIT files Use TSO RECEIVE command to extract the Libraries In addition downloads of SMPE installation files are supported 6 4 Generation of default parameters FLAM can be adapted easily to specific tasks by supplying it with suitable parameters Many tasks will have similar characteristics so that the parameters will be equal For that reason FLAM allows to specify default parameters that are
59. OH LA RO INVKEY 56 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples ST RO 0 R2 RETURN LM R14 R12 12 R13 BR R14 RELEASE WORK AREAS REGISTER DROP R12 gt K gt lt gt lt ok gt gt gt gt ok ok gt gt gt gt gt gt gt gt ok gt gt K gt K K ok 5k ok ok ok ok ok FK K FK ok ok ok ok ok FK FK FK gt K ok ok ok ok ok ok FK K ok ok ok K FK 9 2 9 akk K ok ok ok ok ok 2 ok ok ok K K LOCAL CONSTANTS gt K gt lt gt lt ok gt gt gt gt ok ok ok gt gt gt gt gt gt LTORG DROP R10 TITLE USRPUT USRPUT DS 0D ENTRY USRPUT USING USRPUT R10 ok gt x ok ok gt ok ok ok ok ok ok ok ok ok ok K ok ok K ok ak OR ok ok X ok KR OK ok ok K ok K KR ok ok ok ok K K ok FK ok ok FK ok ok R R R ok ok K OR R NAME USRPUT FUNCTION WRITE RECORD SEQUENTIAL PARAMETER 1 lt gt WORKAREA 256F WORK AREA 2 lt RETCO F RETURN CODE 0 NO ERROR 1 RECORD TRUNCATED 4 RECORD FILLED WITH PADDING CHARACTER 1 UNSUPPORTED FUNCTION X OFXXXXXX ELSE 3 gt RECLEN F RECORD LENGTH IN BYTES 4 gt RECORD XL RECORD gt K gt lt gt lt ok gt lt gt gt gt gt ok gt gt gt lt gt gt o
60. PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO DSORG ORIG DISPLAY RECFORM O VAR 1 2 UNDEF UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECFORM ORIG DISPLAY RECSIZE 0 32768 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECSIZE ORIG DISPLAY BLKSIZE 0 32768 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO BLKSIZE ORIG IF NOT KEYDESC DEFINIERT THEN 42 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples PERFORM KEYDESC EINGABE MOVE N TO KEYDESC INDIKATOR END IF DISPLAY PRCTRL 0 0 1 MACHINE 2 ASA UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO PRCTRL ORIG MOVE LOW VALUES TO SYSTEM ORIG DISPLAY LASTPAR 0 5 1 0 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO LASTPAR PHD CALL FLMPHD USING FLAMID RETCO NAMELEN ORIG FILENAME ORIG DSORG ORIG RECFORM ORIG RECSIZE ORIG RECDELIM ORIG KEYDESC ORIG BLKSIZE ORIG PRCTRL ORIG SYSTEM ORIG LASTPAR PHD IF NOT THEN DISPLAY ERROR IN FLMPHD UPON TERMOUT PERFORM FEHLER MELDUNG ELSE IF NOT LAST PARAMETER PHD THEN DISPLAY UPON TERMOUT DISPLAY WRITE USER HEADER UPON TERMOUT PERFORM USER HEADER SCHREIBEN END IF END IF USER HEADER SCHREIBEN DISPLAY LENGTH OF USER HEADER UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO UATTRLEN DISPLAY USER SPECI
61. S9 8 VALUE FLAMFILE PIC PIC S9 8 VALUE S9 8 0 COMP SYNC 2 0 1 2 3 FLAMFILE COMP SYNC 1 1 5 54 5 5 5 1 COMP SYNC COMP SYNC 512 COMP SYNC COMP SYNC 0 COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC Chapter 5 FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 77 77 77 77 77 x 77 77 77 77 77 77 77 77 77 77 01 05 KEYENTRY1 10 051 10 KEYLEN1 10 1 05 KEYENTRY 2 BIS 8 10 05 10 KEYLEN 10 BLKMODE 88 UNBLOCKED 88 BLOCKED EXK20 EXD20 SECINFO CRYPTO PARAMETER FUER FLMPHD NAMELEN ORIG FILENAME ORIG DSORG ORIG RECFORM ORIG RECSIZE ORIG RECDELIM ORIG BLKSIZE ORIG PRCTRL ORIG 88 NO CONTROL CHAR 88 ASA CONTROL CHAR 88 MACH CONTROL CHAR SYSTEM ORIG LASTPAR PHD 88 LAST PARAMETER PHD PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC VALUE 59 8 VALUE 59 8 VALUE 59 8 VALUE Application examples 1 5 1 5 9 5 1 OCCURS 7 TIMES 59 8 59 8 59 8 59 8 VALUE VALUE X 8 VALUE X 8 VALUE S9 8 VALUE S9 8 VALUE S9 8 VALUE X 54 V
62. Too many or invalid keys Invalid partially compressed data length FLAM syntax error No file name found Not all files were processed In case of error code 10 14 the FLAMFILE has been modified The error codes 40 49 are self explanatory In case of error code 60 78 please provide error documentation and contact your distributor USED PARAMETER Protocol of the decompression parameters used None SPLIT RECORDS BYTES Counter of records and Bytes of the actual fragment of the splitted FLAMFILE Cause of insertion of control and info bytes during split the counters differ from the numbers of compressed records bytes FLM0407 FLMO456 None COMPRESSED FILE FLAM ID FLAM system code of original file 15 2015 by limes datentechnik gmbh Messages 0080 000 0101 0102 0103 0104 0105 0106 0107 0109 02 0301 0302 0401 0402 0403 0501 0502 06 07 08 09 OAxx OBxx 11xx 12xx 16 Frankenstein Limes Access Method Chapter 8 Some examples MS DOS Windows all versions IBM MVS 05390 2 05 IBM VSE zVSE IBM VM IBM 81xx IBM DPPX 370 IBM AIX 05400 Linux S390 UNISYS DEC VMS DEC ULTRIX SIEMENS BS2000 SIEMENS SINIX SIEMENS SYSTEM V NIXDORF 886x NIXDORF TARGON WANG PHILLIPS OLIVETTI TANDEM PRIME STRATUS INTEL 80286 INTEL 80386 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 13xx 15xx 04
63. UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECLEN DISPLAY DATA WITH KEY UPON TERMOUT MOVE SPACES TO RECORD DISPLAY ACCEPT RECORD DISPLAY FROM TERMIN CALL FLMPKY USING FLAMID RETCO RECLEN REC ORD IF NOT OK FLAM V4 5 MVS 41 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 THEN DISPLAY ERROR IN FLMPKY UPON TERMOUT PERFORM FEHLER MELDUNG END IF SCHLUESSEL EINFUEGEN DISPLAY DATA LENGTH UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECLEN DISPLAY DATA WITH KEY UPON TERMOUT MOVE SPACES TO RECORD DISPLAY ACCEPT RECORD DISPLAY FROM TERMIN CALL FLMIKY USING FLAMID RETCO RECLEN REC ORD IF NOT OK THEN DISPLAY ERROR IN FLMIKY UPON TERMOUT PERFORM FEHLER MELDUNG END IF AENDERN DISPLAY DATA LENGTH UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECLEN DISPLAY DATA WITH KEY UPON TERMOUT MOVE SPACES TO RECORD DISPLAY ACCEPT RECORD DISPLAY FROM TERMIN CALL FLMUPD USING FLAMID RETCO RECLEN REC ORD BUFLEN IF NOT OK THEN DISPLAY ERROR FLMUPD UPON TERMOUT PERFORM FEHLER MELDUNG END IF HEADER SCHREIBEN DISPLAY FILENAME UPON TERMOUT ACCEPT FILENAME ORIG FROM TERMIN DISPLAY NAMELEN 0 54 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO NAMELEN ORIG DISPLAY DSORG 0 5 0 1 INDEX 2 REL UPON TERMOUT
64. USED PARAMETER DSORG SEQUENT FLM0415 USED PARAMETER RECFORM FIXBLK FLM0415 USED PARAMETER BLKSIZE 23040 11 FLM0435 MEMBER MAC 23F747DB6705788A 12 FLM0406 INPUT RECORDS BYTES 1 771 235 543 FLM0407 OUTPUT RECORDS BYTES 49 25 088 13 FLMO41 DATA SET NAME USER ASMOIAC LIST FLAMIN FLM0415 USED PARAMETER IDSORG SEQUENT FLM0415 USED PARAMETER IRECFORM FIX FLM0415 USED PARAMETER IRECSIZE 133 FLM0415 USED PARAMETER IBLKSIZE 133 FLM0415 USED PARAMETER IPRCNTRL ASA 11 FLM0435 MEMBER MAC 5C94AB1028E5947A FLM0406 INPUT RECORDS BYTES 2 136 284 088 FLM0407 OUTPUT RECORDS BYTES 59 30 208 FLM0410 DATA SET NAME USER ASMO2AC LIST FLAMIN FLM0415 USED PARAMETER IDSORG SEQUENT FLM0415 USED PARAMETER IRECFORM FIX FLM0415 USED PARAMETER IBLKSIZE 133 FLM0415 USED PARAMETER IPRCNTRL ASA 14 FLMO468 SPLIT RECORDS BYTES 2 048 1 048 576 15 FLM0410 DATA SET NAME USER CMPLIST ADCO2 F775020 FLM0468 SPLIT RECORDS BYTES 2 048 1 048 576 15 FLM0410 DATA SET NAME USER CMPLIST ADCO5 F775020 FLAM V4 5 MVS 11 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 FLM0407 OUTPUT RECORDS BYTES 10 5 120 16 FLM0468 SPLIT RECORDS BYTES 451 230 912 17 FLM0410 DATA SET NAME USER CMPLIST ADCO1 FLAMFILE 18 FLM0435 FLAMFILE 50E22D8B48E0726B 19 FLM0406 INPUT RECORDS BYTES 324 192 43 117 536 FLM0407 OUTPUT RECORDS BYTES 8 633 4 420 096 20 FLM04
65. YOU CAN CREATE EMPTY SLOTS GAPS USING FORWARD POSITIONING IN A RELATIVE DATA SET IN OUTPUT MODE x gt K gt lt gt lt ok K gt gt gt gt gt K gt gt gt gt gt gt gt ok ok gt K gt K gt k ok ok ok ok K gt K ok FK K FK ok ok ok ok ok ok FK K gt K K ok ok 2K ok 2 FK K ok ok ok 9 ok K 2 9 FK FK ok ok ok ok 9 86 OK ok ok K K SAVE REGISTERS AND LOAD PROGRAM REGISTER 5 R14 R12 12 R13 LR R10 R15 60 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples LOAD PARAMETER LM R1 R5 0 R1 ADDRESS WORK AREA LR R12 R1 USING WORKAREA R12 POSITION RECORD HERE RETURN CODE 1 UNSUPPORTED FUNCTION LA R0 0 R0 0 ST RO6 R2 RETURN LM R14 R15 12 R13 BR R14 RELEASE WORK AREA REGISTER DROP R12 gt K gt lt gt lt gt lt gt lt gt gt gt ok ok gt gt gt gt gt gt gt ok ok ok K gt K gt k ok ok ok ok K ok ok FK FK FK FK ok ok ok FK ok FK FK gt K K ok ok ok K ok ok ok ok K ok K ok K K 9 FK K ok ok ok ok ok ok ok K K LOCAL CONSTANTS gt K gt lt gt lt ok gt lt ok gt gt ok gt gt k gt gt gt gt gt ok ok gt ok gt CK ok ok gt K ok gt K gt K ok FK FK SK ok ok ok ok ok FK FK FK FK ok ok ok 2K ok FK K FK ok K ok ok LTORG DROP R10 TITLE FLAMUIO DUMMY SECTIONS
66. and additional copying of parameter values before and after a function call Key descriptions are organized as a structured data type in order to shorten the parameter list All parameter lists start with an identificator This identifies the compressed file between FLMOPN and FLMCLS The identification is followed by a return code that informs the caller about successful execution or occurring errors Processing of a compressed file always starts with function FLMOPN that assigns the program to the compressed file and defines the operation mode A file opened successfully must always be closed with function FLMCLS There are no messages generated at the record level interface During transfer of original data the parameter RECORD always contains the true data without any length fields or record delimiters Or the parameter RECPTR points to a field with such a content The parameter RECLEN always contains the length of the true data exclusive length COBOL programs can be translated using the DYNAM option As a result the FLAM modules loaded from the library only at the moment of execution If a dynamic call is not wanted NO DYNAM option in COBOL or V constants in ASSEMBLER the FLAM module FLAMREC should be specified explicitly when linking 66 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces E
67. assume for instance that you have a library containing a large number of small elements which first of all need to be compressed autonomously and saved as a group file so that the library can be reconstructed correctly on the basis of the element names and their attributes In this case you cannot expect an excessive amount of compression If you use FLAM V2 x with MODE CX8 and MAX RECORDS 1 for this purpose all you will achieve with this leader will be to create the above mentioned group file in which greater importance is attached to the diverse information than to the compression effect This flat can be compressed by FLAM V3 0 with MODE ADC You could also use a utility that is capable of performing a similar function group file instead of the leader with FLAM V2 x In exceptional cases you may even have very highly structured files which you can compress relatively effectively beforehand with FLAM V2 x MODE CX8 and MAXRECORDS 255 you can then compress the resulting compressed file further with FLAM V3 0 and MODE ADC Generally speaking however FLAM V3 0 with MODE ADC MAXRECORDS 4095 always performs better than the predecessor version or than a two step variant with it There is no compulsion to change to a different mode if you are satisfied with the old compression technique and syntax of FLAM V2 x Al new features e g PASSWORD enciphering require at least FLAM V3 0 with MODE ADC though especially sin
68. be an exact multiple of the record length any remainder will be ignored These specifications enable every file to be converted into an LDS format that is considerably greater degree of efficiency can be achieved during compression FLAM V4 5 MVS 37 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 5 Application examples FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples FLAM V4 5 MVS Frankenstein Limes Access Method Content 5 Application Examples 3 5 1 JCL 3 5 1 1 Compression 3 5 1 2 Decompression 5 3 1 3 A more complex example 7 5 2 How to use the record level interface 11 5 2 1 Compression 11 5 2 2 Decompression 14 5 2 3 Random access to an index sequential FLAMFILE 17 5 2 4 Example for the entire record level interface 22 5 3 User I O interface 46 5 3 1 ASSEMBLER example 46 5 3 2 COBOL example 60 5 4 How to use the user exits 66 5 4 1 EXK10 EXD10 user exits 66 5 4 2 EXK20 EXD20 user exits 70 5 5 Using FLAM with other products 73 5 5 1 Using with NATURAL 73 5 5 2 Using with SIRON 73 1 2015 by limes datentechnik gmbh Application examples Chapter 5 2 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples 5 Application examples In the following you find some examples to explain several FLAM functio
69. be used as an example not only for development but also for examining compressed file You ll find the code in the example library FLAM SRCLIB IDENTIFICATION DIVISION PROGRAM ID RECTEST gt K gt lt ok gt lt gt gt gt ok ok ok ok gt gt gt gt gt gt gt ok gt gt gt CK ok ok ok ok K ok ok FK FK FK FK ok ok ok ok ok FK FK gt K ok ok FK ok ok FK 2 FK FK K ok ok FK ok K K K ok ok ok ok K K NAME RECTEST VERSION 4 4A DATUM 23 05 2012 FUNKTION FLAMREC SCHNITTSTELLE TESTEN MIT DIESEM TESTPROGRAMM KOENNEN ALLE FUNKTIONEN DER FLAM SATZSCHNITTSTELLE FLAMREC MIT ALLEN PARA METERWERTEN BELIEBIGER REIHENFOLGE AUFGERUFEN WERDEN FUNCTION TEST ALL FLAMREC ENTRIES YOU CAN TEST ALL FUNCTIONS OF THE FLAMREC INTERFACE WITH ALL PARAMETERS AND IN ALL SEQUENCE gt K gt lt gt ok gt gt gt lt gt ok ok gt gt gt gt gt ok ok ok gt gt gt K gt K K 5k ok ok ok ok ok ok FK FK FK ok ok ok ok ok ok FK FK FK ok ok ok ok ok FK K FK K K ok ok ok ok K K 2 5 ok ok ok K K ENVIRONMENT DIVISION CONFIGURATION SECTION SPECIAL 5 5 IS TERMIN SYSOUT IS TERMOUT DATA DIVISION WORKING STORAGE SECTION PARAMETER FUER FLMOPN 77 FLAMID PIC 59 8 COMP SYNC 01 RETCO PIC 59 8 COMP SYNC 88 OK VALUE 0 88 UNZULAESSIG VALUE 1 01 RETCO RED REDEFINES RETCO 05 RETCO INDICATOR PIC X 1 88 DVS ERROR VALUE HIGH VALUE 05 SECURE INDI
70. being decompressed FLAM is able to decompress each individual file of this group file by specifying a selection rule see chapter 3 1 4 3 decompressed file can be specified by means of a command or FLAM creates the file dynamically and catalogues it Libraries are compressed into a group file by FLAM on a member by member basis i e it would be possible to decompress each member into a separate file using an appropriate conversion rule Accordingly a number of individual files can be used to generate library members This group file allows libraries that have been generated under a range of different operating systems to be exchanged between heterogeneous operating systems in a compatible way If neither a selection rule nor a conversion rule is specified the compressed files are decompressed into a specified file as in earlier FLAM versions i e all of the originally different files are now positioned one after the other decompressed Conversion is executed in accordance with the file attributes of the output Note If FILEINFO NO was set when the group file was being created no file name was stored for the compressed data in question This also means that there would be no file name available for creating the files 30 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation Despite this the co
71. by the user Each record of a file is in addition protected with a check sum Code conversions within the FLAMFILE are not allowed During transmission the file has to be treated as a binary file For files that contain only printable characters and shall be transmitted using a 7 bit line FLAM offers MODE CX7 This mode creates a compressed file which will behave during transmission in the same way as the uncompressed file FLAM does not check if the original file is suitable for transmission but will create a compressed file using a very restricted character set that is neutral to the different code conversion utilities on the marketplace Using this mode one can create compressed files that can be converted from EBCDIC to ASCII and vice versa e g during a file transfer FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 2 FLAM V4 5 MVS Frankenstein Limes Access Method Functions However it is necessary that the code conversion is reversible without any changes Otherwise FLAM will signal a syntax error in the compressed file due to differences in the byte numbers and will stop decompression Such cases are possible if the original file contains printer control characters or tabulator characters which are not converted 1 1 Apart from this code conversion can be performed integrated with the compression step FLAM offers the possibility of code conversion before compression or after decompression
72. can be separated during decompression When group files are being compressed or decompressed intermediate statistics comprising the number of records and bytes of the original and compressed records are displayed for all partially compressed data At the end of a group file overall statistics comprising the number of records and bytes the compression effect and the time values are displayed The file name of the compressed file is repeated before these overall statistics if necessary a message is displayed informing the user that not all files could be processed When group files are being decompressed only the number of records and bytes in the compressed records that have been processed are listed in the overall statistics the values for the original records are only listed in the intermediate statistics for the individual files When a file set is being processed the statistics are displayed separately for each file Only the time values are displayed altogether at the end of the program run 5 2015 by limes datentechnik gmbh Technical data Chapter 7 6 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 8 Messages FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 8 FLAM V4 5 MVS Frankenstein Limes Access Method Content 8 Messages 8 1 Messages from the Utility 8 2 Message Listing
73. compression and decompression FLAM maintains the compressed file beyond that interface It is possible that an application program processes more than one compressed file at the same time To the application program the FLAM record level interface behaves in the same way as an operating system interface for file access The difference is that the file is stored compressed and that the interface is the same on all operating systems The user interface for I O allows FLAM to use user defined file access methods instead of the operating system defined ones This is possible under the utility for the original file and under the FLAM record level interface for both original file and compressed file FLAM User exits allow pre and post processing of records before compression and after decompression under FLAM as utility as well as pre and post processing of compressed records under both FLAM as utility and FLAM record level interface E g this user exits can be used for encryption purposes or for selective processing of original data 3 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation 4 1 Processing of file with the utility 4 1 1 Compression FLAMPAR IN to be parameters compressed parameters rotoc FLAY limes datentechnik Catentechnik Y compressed messages file Data flow durin
74. compression procedure has completed approximately 16 KB of a particular segment the compression is aborted for this segment with MODE ADC and the original input of up to 64 KB segment is used instead 1 1 If the compression effect in a segment does not begin until after 16 KB it will no longer be detected because the logic function that compares the cost and the benefit 13 2015 by limes datentechnik gmbh Introduction 14 Frankenstein Limes Access Method Chapter 1 will come to the conclusion that this segment is probably not compressible Reason the poorer the compression effect the greater unfortunately the amount of CPU time that is needed ultimately out of all proportion This is an inherent drawback of the general principle FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction FLAM owes its capability for serving multiprocessor systems to its use of a layer model one process reads forms the segments and distributes them to other processes for the purpose of compression another process collects the compressed segments formats them as a FLAMFILE and writes them Although this technique is not actually critical at the present moment FLAM s model will be ready when the time comes FLAM does not simply refuse to work if the input is itself a FLAMFILE This can sometimes be an extremely useful characteristic Let us
75. datentechnik gmbh Functions 12 Frankenstein Limes Access Method Chapter 2 2 5 User exits 2 5 1 Original data input EXK10 This user exit interfaces the record passed to FLAM for compression Special processing can be defined for Start of file record level end of file Records can be passed on modified deleted or inserted This exit can be used to modify records in a structure dependent way EXK10 is only available in FLAM and FLAMUP and corresponds with EXD10 during decompression 2 5 2 Compressed data output EXK20 This exit interfaces the compressed data before it is written into the FLAMFILE Special processing can be defined for Start of file record level end of file This exit can be used to modify records in a structure independent way With this exit it is possible to modify the data with an own encryption routine or a special code translation can be applied if a non transparent file transmission method shall be used It is possible to insert own records in front of the compressed records for example archiving control records or origin information Another possibility is the extension of records to append specific revision information EXK20 is available in FLAM FLAMUP and FLAMREC and corresponds with EXD20 during decompression 2 5 3 Original data output EXD10 This exit interface the decompressed record immediately before it is written into the target file Special processing can be defi
76. decompression With FLMIKY Insert Key a new record with new key will be taken on into the compressed file The indicated key must not exist in the file FLMLCR Locate Reverse reads the next decompressed original record towards the beginning of the file in Locate Mode Instead of FLMGET function FLMLOC can be used to access to a decompressed record FLMLOC will not pass a record to the caller but an address pointer to the record The function FLMOPN Open has been partitioned into three subfunctions FLMOPD FLMOPF because of the large number of parameters FLMOPN caters for the basic parameters e g Compression Decompression FLMOPD defines the file formats of the FLAMFILE FLMOPF defines the compression parameters If the FLMOPD and FLMOPF subfunctions are not put to use fixed values are used 9 2015 by limes datentechnik gmbh Functions FLMPHD FLMPKY FLMPOS FLMPUH FLMPUT FLMPWD FLMQRY FLMSET FLMUPD 10 Frankenstein Limes Access Method Chapter 2 Function FLMPHD Put File Header will use its parameters to create a file header The file header describes the format of the original file The file header is valid for all following records from the original file received with FLMPUT until processing is closed or function FLMPHD is called again With FLMPKY Put Key it is possible to insert or update a record by key within an index sequential FLAMFILE FLMPOS Posit
77. electronic funds transfer FLAM is used because of its flexibility and the proven short turnaround time With each new FLAM implementation new benefits arise for each user without additional costs It is in the interest of each user to ask for the support of FLAM by hardware manufacturers and third party software houses and to support the installation of FLAM at sites of a business partner with whom electronic data is exchanged That is the special benefit of FLAM regarding cost effectiveness FLAM uses the algorithm of the Frankenstein Limes Access Method for structure oriented data compression This method has been patented in Germany Europe and USA beginning with 19 7 1985 FLAM works without pre analysis of the data and without additional tables This ensures that decompression can be always performed based on the syntax of the compressed file FLAMFILE and the FLAM program This also ensures upward compatibility that allows for long time archiving FLAM does not need any additional specifications about the data to be compressed The compression method is invariant to file record and field formats However the compression effect depends on the actual data Structural distortion mostly leads to worse compression results 1 2015 by limes datentechnik gmbh Introduction Transparency Portability Convertibility Compatibility Chapter 1 FLAM is the only product that caters for the following principles
78. existing data set Y N 150 K i 50 K Record truncation N Y N allowed not allowed 350 K S Translation A E module name 800 K SecureInfo MEMBER Ignore Member Yes 200 K CryptoKey 150 K 250 K Submit F F B Foreground or Batch 500 K 550 K Command gt 300 K 100 K FLAMT FLAMTS LIST SEQ F 133 133 400 K FLAMT FLAMTSO1 DAT1 SEQ V 260 264 350 K You have to enter the key for decryption if the FLAMFILE has been encrypted during compression Using AES encryption SECUREINFO should be set to MEMBER to verify the security information for the member only Above a new file name FLAM3 NEWDAT LIST was entered in the next display new attributes for this file can be allocated FLAMFILE TOC DAT CMP Row 1 of 2170 donus ic EEE TERN FLAM DECOMPRESSION Data Set FLAM3 NEWDAT LIST ace DATA SET WAS COMPRESSED ON MVS 300 K 32 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 FLAM user interface i 50 K Organization gt PS PS PO ESDS KSDS RRDS LDS 500 K Record Format gt FB F FB V VB with S A M or U 250 K Record Length gt 512 up to 32760 Byte avg max VSAM 150 K Block Size gt 23552 up to 32760 Byte CISZ for VSAM 50 K Rel Key Pos gt VSA
79. file name are already set in the panel and the user can enter further specifications for decompression see 9 2 The command is entered in the same line as the file name to be decompressed FLDECO or FLDECO DSLIST DATA SETS BEGINNING WITH USER ROW 14 OF 134 COMMAND gt SCROLL PAGE COMMAND NAME TRACKS USED XT DEVICE FLDECO USER DAT CMP USER DAT F USER DAT FB USER DAT KSDS DA USER DAT KSDS INDEX 20 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 5 FLDIR This CLIST procedure is intended for use in panel 3 4 in ISPF file list but it can also be called directly In the latter case the file name is requested FLDIR displays the FLAMFILE information about the file specified in the line same as option in the FLAM panels The file is not decompressed If no FLAMFILE exists an appropriate message is written to the result list of FLAM The command is entered in the same line as the file name to get information about FLDIR or FLDIR Example DSLIST DATA SETS BEGINNING WITH USER ROW 14 OF 134 COMMAND gt SCROLL PAGE COMMAND NAME TRACKS USED XT DEVICE FLDIR USER DAT CMP USER DAT F USER DAT FB USER DAT KSDS USER DAT KSDS DATA FLAM V4 5 MVS 21 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter
80. first part can be used and the system neutral attributes are mapped on system specific attributes of the target environment Help output parameters No values Valid for compression decompression Note If the Help function is requested in the first input line the generated FLAM parameters and their values are output and the program is then terminated Logical block length for the input file Possible values 0 32760 Default 32760 byte Valid for compression Note This parameter is not necessary for catalogued files in MVS FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 ICLOSDISP ICLO IDDN IDEVICE IDEV FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Final processing for tape input file Possible values REWIND Rewind to tape start UNLOAD Rewind and unload tape LEAVE No rewind Default REWIND Valid for compression Note Currently ignored Control of final processing may be done via JCL DD card Symbolic file name for the input file ILINK Possible values DD NAME with max 8 characters gt DD NAME with max 7 characters Default FLAMIN Valid for compression Note This parameter allows to change the DD NAME of the DD command gt before the file name means the file contains a list of files to be compressed Device assignment for input file Possible values DISK disc unit TAPE tape unit FLOPPY floppy disc drive STREAMER tape s
81. for index sequential and logically blocked data in heterogeneous environments 7 2015 by limes datentechnik gmbh Introduction 8 Frankenstein Limes Access Method Chapter 1 1 1 Introduction to FLAM with MODE ADC Since version 3 FLAM offers 3 fundamental enhancements e A universal MODE ADC Advanced Data Compression A new sophisticated FLAM syntax Frankenstein Limes Access Method An extremely efficient PASSWORD enciphering system First of all FLAM contains the complete predecessor version as a Subset so that on the one hand it is possible to compress and decompress in the familiar way with MODE CX7 CX8 and VR8 on the other hand creating the required compressed files is no problem if your partner has not yet changed over to FLAM V3 0 for example This applies not only to interfaces and user exits but also to the elegant MVS subsystem User exits are needed for inserting deleting and for editing records fields before after the compression decompression procedure The above mentioned compression modes have yielded extremely good results for the kind of data that typically arises with commercial applications on mainframes It is up to each user to decide whether or not to continue using this technique which often already permits compression scores of 85 or more The increasing penetration of PC and UNIX systems into commercial data processing has led to significant changes in data structu
82. gt gt gt K gt ok ok ok ok ok CK K ok FK FK FK ok ok ok ok FK FK FK FK CE ok ok ok FK ok K K FK K K ok ok ok ok K K SE 5 ok ok ok K K VERARBEITUNGSSCHLEIFE gt K gt lt gt ok ok gt gt gt ok ok gt gt gt gt gt gt gt K ok ok ok ok ok K ok FK FK FK ok ok ok ok ok ok FK FK CE ok ok ok ok ok 9 2 FK K ok ok ok 9 ok K K 2 5 ok ok ok K K PERFORM UNTIL FLMCLS DISPLAY PLEASE SELECT FUNCTION GET GTR GKY FKY GRN FRN QRY PUT PKY IKY POS DEL UPD GHD GUH PHD PUH PWD FLU EME CLS UPON TERMOUT ACCEPT FUNKTION FROM TERMIN IF FLMGET THEN PERFORM SEQUENTIELL LESEN ELSE IF FLMGTR THEN PERFORM SEQUENTIELL LESEN RUECKWAERTS ELSE IF FLMPOS THEN PERFORM POSITIONIEREN ELSE IF FLMDEL THEN PERFORM LOESCHEN ELSE IF FLMGKY THEN PERFORM SCHLUESSEL LESEN ELSE IF FLMFKY THEN PERFORM SCHLUESSEL POSITIONIEREN ELSE IF FLMGRN THEN PERFORM SATZNUMMER LESEN ELSE IF FLMFRN THEN PERFORM SATZNUMMER POSITIONIEREN ELSE IF FLMPUT THEN PERFORM SCHREIBEN ELSE IF FLMPKY THEN PERFORM SCHLUESSEL SCHREIBEN ELSE IF FLMUPD THEN PERFORM AENDERN ELSE IF FLMPHD THEN PERFORM HEADER SCHREIBEN ELSE IF FLMPUH THEN PERFORM USER HEADER SCHREIBEN ELSE IF FLMGHD THEN PERFORM HEADER LESEN ELSE IF FLMGUH THEN PERFORM USER HEADER LESEN ELSE 36 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples IF FLMFLU THEN PERFORM MATRIX ABSCHLIESSEN ELSE IF FLMIKY
83. gt 128 up to 32760 Byte avg max for VSAM Block Size gt 1280 up to 32760 Byte CISZ for VSAM Key Position gt VSAM KSDS Key Length gt up to 255 ONLY No Dir Blocks gt PO Data Set only Space Unit gt BLKS TRKS CYLS or RECS Primary Quantity gt in above units Secondary Quant gt in above units Volume Serial gt After ENTER is pressed processing starts 10 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface Depending on file size and CPU workload the FLAM processing can take a while Therefore the following panel is displayed Compress data set or member I FLAMFILE info D Decompress data set or member 0 Processing options Specify original data set or member blank for DUMMY DATA SET NAME gt DAT FB Specify FLAMFILE data set or member blank for DUMMY DATA SET gt DAT CMP Reuse existing data sets N Y N yes no Specify Listing for temporary blank for none DATA SET NAME gt FLAM is working now Submit F F B Foreground or Batch After compression has finished control is automatically passed to the result display All commands allowed in the BROWSE mode can be used like positioning searching etc FLAM V4 5 MVS 11 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM user interface BROWSE Chapter 9 FLAM30
84. gt K gt lt gt lt ok ok gt gt gt KK gt lt gt gt gt gt gt ok gt ok gt K K ok ok ok ok FK ok ok FK FK K ok ok ok ok ok ok FK FK FK gt K ok ok ok ok ok FK K ok ok ok ok ok 2 2 9 FK K ok ok ok ok ok FK 2K ok ok ok K DUMMY SECTIONS ok gt lt gt lt ok gt gt gt gt ok ok gt gt gt gt gt gt gt ok ok gt gt K gt K K ok ok ok ok FK ok ok FK FK K ok ok ok ok ok FK FK K gt K ok ok ok K ok ok FK K ok ok ok K WORKAREA DSECT ok oR sk a ok of ea ook ok ak ako oke ak ak k OR ak ak ok ak leak akk ak ok K WORK AREA ON DOUBLE WORD BOUNDARY ok ok KK ok ok ok ok ok ke ke kk kk kkk kk kkk kkk DS XL1024 LWORK EQU WORKAREA LENGTH MAXIMAL 1024 BYTES EJECT FLAM V4 5 MVS 61 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 ok k ok ok ok ok FK FK ok ok FK ok ok ok ok ok KR ok ok ok FK ok ok K ok K KR ok ok ok ok R K FK FK ok ok FK ok ok OR OR ok ok ok OR OR R DUMMY SECTION gt k gt K K ok ok gt x ok ok gt ok ok ok K ok k ok K FK ok ok FK ok ok ok ok ok ok ok ok ok ok K ok ok FK ok ok ok ok K K ok R ok ok R K ok FK ok ok FK ok ok R R ok ok ok K OR OR DSECT AE ok oR sk a R of oF ak ak ak FOR ak ak ok fe ok ak ak ea a
85. increases perfomance and decreases cputime Up to 30 may be saved It depends the compression ratio less compression increases time savings Particularly using packing files without compression Wildcard syntax may be used in file lists for compression not only in the FLAMIN parameter This improves better assistance for compressing in Group FLAMFILEs New utility programs for easier use of FLAM and FLAMFILEs are released 2015 by limes datentechnik gmbh Documentation updates FLAMCKV FLAMCTAB FLAMDIR 4 Frankenstein Limes Access Method Analyses a VSAM KSDS FLAMFILE The protocol allows checking for correct attributes of the cataloged file Particularly performance oriented parameter of the VSAM KSDS file are important for a fast key access Creates a translation table load module from a 256 byte input stream These bytes are read from a file of arbitrarily format or record size and stored into a load library With this program it is no longer neccessary to assemble and bind a module from an assembler source Lists a short summary of the table of contens of a FLAMFILE like ISPF 3 4 or FLTOC of FLAM panels or option i in the FLAM start panel FLAM V4 5 MVS 2015 by limes datentechnik gmbh New Parameters File allocation Record Interface FLMSET FLMFKY FLMGRN FLMUPD Messages FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updat
86. it is allowed to insert a record with return code 8 For return code 8 the record provided by the user exit module is written Then the user exit module is called again for the old compressed record Table of valid function codes and return FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Name Register usage R1 R13 R14 R15 Parameter list 1 FUCO F 0 4 8 2 lt RETCO F n H H H I RECPTR 4 RECLEN F 5e EXWORK 256 contains the FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 5 3 Output original data EXD10 In this user exit the decompressed records are passed to a user module immediately before they are written to the output file This user exit can be used with the FLAM utility or with the subprogram FLAMUP In this user exit records can be accepted modified inserted and deleted The exit is activated via the parameter EXD10 lt name gt The user exit module must be contained in the library that has been assigned with the STEPLIB command free choice max 8 characters Address of parameter list Points to save area 18 words Contains return address Contains call address Functions code First call for file after OPEN Record passed Last call for file before CLOSE Return code Accept record no error Do not accept record Insert record Enforce end of decompression Error in exit abnormal termination Record
87. lt USER UP USER CMP gt Old name USER FLAMUPOO New name USER CMPFLAMOO The UP part of the name is not mentioned in the output name and is therefore left out A conversion rule is implicitly supplemented by FLAM e g lt 5 gt corresponds to lt ASM CMP gt This can be particularly useful when converting the file names from other systems Example The FLAMFILE created under DEC VMS contains the following file names DUA1 ABC DE0051 7 DUA1 ABC DE0052 4 DUA1 ABC DE0080 2 DUA1 ABC DE0152 4 This corresponds to specification of the file versions of the user ABC on disk volume DUAI with the version number stated after the semicolon 58 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces In order to be able to create these files in MVS the following conversion rule could be specified FLAMOUT lt DE USER DE gt This implicitly deletes the name prefix DUA1 ABC takes over the part of the name beginning with DE and supplements it with the identification and deletes the rest of name USER DE0051 USER DE0052 USER DE0080 USER DE0152 The conversion rule is also important with respect to generating members of a PO library FLAMOUT lt USER LIST USER POLIB gt This rule means that the 2nd name qualifiers of the original file are used as member names of the PO library So far the conversion rule
88. messages are enhanced 2015 by limes datentechnik gmbh Documentation updates COMMENT File Allocation FLAM Panels Start Wildcards Parameter LOAD library FLTOC 6 Frankenstein Limes Access Method Comments in ASCII in the FLAMFILE are translated to EBCDIC for the output message with the internal A E translation table during decompression Entering a TRANSLATE parameter causes FLAM to use this table enn praying characters visualized by ots Until now an error on allocation was represented by the return code 31 Now additional system messages are displayed in the JCL log or on the terminal This is independent from using the utility or the record interface The interactive FLAM panels have been revised An easier call to FLAM panels is introduced but fully compatible to the older versions The start procedure includes or does not include all necessary library allocation to ISPF So it is easy to support your own TSO logon procedures Entering wildcards in the input filename 96 on compression lead to a selection of resulting filenames which may be edited parameters are now stored in a parameter file for execution So no double quotes are needed any more for C or X parameter e g CRYPTOKEY X 01AE94 instead of X 01AE94 Without any input for the FLAM LOAD library in the option panel the system concatenation LINKLIST will be used Duplic
89. not sufficient For this purpose the overflow counters are provided They allow to extend the counter to a double word 01 BYTEFIELD 05 BYTEOFL PIC 9 8 COMP SYNC 05 BYTES PIC 9 8 COMP SYNC 01 BYTECNT REDEFINES BYTEFIELD PIC S9 18 COMP SYNC FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 FLAMID F 2 lt F 0 1 5 otherwise 3 RECNO F 1 number is 4 CHECKMOD 0 1 empty 2 records FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 9 Function FLMFRN The function FLMFRN Find Record Number positions the record pointer to a record with a specified number in an index sequential FLAMFILE This number corresponds to the record number of the sequential or relative original file The record is the next record to be processed Specifying checkmod 1 or 2 allows gaps and empty records to be skipped If FLMFRN does not find a record the old position is retained Identification Return code No error Invalid identification or function Invalid position See function FLMGET Record number File start With checkmod 1 2 the true record returned Type of relation Record with specified number Record with specified number skip gaps and records Record with next number skip gaps and empty 85 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 3 10 Function FLMGET With function
90. number of files into one FLAMFILE in one run creating a group file Until now group files could be created only by appending DISP MOD in the the FLAMFILEs in several steps By entering a partially qualified file name e g USER LIST USER A OBJ FL or specifying a list of files all the files are stored in compressed format in one compressed file group file N 1 relation All the files are assigned dynamically by FLAM and the file type PS PO VSAM ESDS VSAM KSDS VSAM RRDS VSAM LDS record format F V B S M A and record and block lengths are detected automatically The files in this group file can be decompressed either individually selected by altogether Examples All files whose first qualifier is USER and third qualifier is LIST are to be compressed into the FLAMFILE called USER CMP see also chapter 3 1 4 EXEC PGM FLAM PARM C FLAMIN USER LIST FLAMFILE USER CMP Here a DD name is assigned as the input The file contains the names of files which are to be compressed in this call EXEC PGM FLAM PARM C IDDN gt DIRIN DIRIN DD 2015 by limes datentechnik gmbh Documentation updates 18 Frankenstein Limes Access Method USER1 FILE VSAMESDS USER1 DATA PSDATEI USER2 DATA POLIB USER3 DATA POLIB MEMBER FLAMFILE DD DSN FLAM V4 5 MVS 2015 by limes datentechnik gmbh Conversion rules for names FLAMFILEs C
91. of the compressed file is correct Since FLAM V3 0 with MODE ADC the segment checksums are linked together by means of a connector Providing compression and decompression are always serial the integrity of this sequence can be verified The connector is additionally given a time dependent color code so that if the same segment is compressed again later on it has a different appearance The compression effect is identical Another modification is the so called hardware ID FLAM forms a 32 bit code from the hardware information about the environment This code is incorporated in the connector If exactly the same file then happens to be compressed twice at times that do not result in different connector settings even though different hardware environments are used the connector and thus also the external appearance of the compressed file is modified automatically The aim of these techniques is that insofar as possible every data segment compressed with FLAM should be unique in terms of its contents original its environment and its time of compression The sum of the checksums for the various layers is a signature that can be used by an addressee as unequivocal confirmation of reception complete and with no loss of integrity The FLAMFILE itself is written record by record for format related reasons in the same way as in the predecessor version e g fixed 512 bytes Each FLAM V4 5 MVS 2015 by limes datente
92. ok ok ok ok K K ok FK R ok ok ok OR OR OR R R 6 Frankenstein Limes Access Method TEP 1 ALTER DEFAULT PARAMETER 5 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 6 Installation STEP1 EXEC PGM FLAMGEN STEPLIB DD DSN FLAM27 FLAM LOAD DISP SHR FLPRINT DD SYSOUT FLAMOBJ DD DSN amp amp GENDAT DISP NEW PASS SPACE 80 200 100 UNIT SYSDA THIS DATA SET CONTAINS YOUR NEW DEFAULT PARAMETER 6 GENPAR DD UB Q N FLAM V4 5 MVS 7 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Installation 10 11 12 13 14 15 16 17 18 FL FL FL FL FL FL FL FL FL FL FL FL FL FL STEP 2 STEP2 SYSPRINT D SYSUT1 FOR AUT SYSLIB OUTPUT SYSLMOD GENOBJ FLMOBJ SYSLIN STEP 3 STEP3 STEPLIB FLPRINT GENPAR M0448 M0448 M0448 M0448 M0448 M0448 ACCESS MODE HEADER LOOP MAXSIZ LINK MODULES AMODE RMODE ARE ALLOWED TO COND 4 LT STEP1 D SYSOUT D UNIT SYSDA OMATIC CALL DD MODULE LIBRARY DD DD DD DD SHOW GENERATED PARAMETER DSN STEP1 STEPLIB DISP DSN STEP1 STEPLIB DISP SECONDARY INPUT DATA SETS DSN amp amp GENDAT DISP OLD PASS DSN FLAM27 FLAMV27 0BJ DISP SHR PRIMARY INPUT DATA SET Chapter 6 CHANGE TO YOUR USAGE EXEC PGM HEWL REUS
93. on a call by call or record by record basis Bi serial compression is especially suitable for integration into other products or applications The compression effect is considerably lower than with the compression using the FL matrix The advantage is the independence of each record In many environments is this independency necessary requirement for integration BIFLAMK offers beside compression two more functions that become more and more important as requirements for data security and data integrity are rising All compressed records are encrypted and protected against modification using checksums over both original and compressed file BIFLAMK offers several compression modes that can be selected via a function code First a vanilla serial compression mode is provided that does not require a sample record All compressed records are independent from each other and can be decompressed individually Second a bi serial mode is provided that can be adapted to different environments This compression mode is based on a comparison of the record with a sample record byte by byte The result is a bitmap that denotes all positions where characters are equal and the remaining differing characters The first option allows to control the postprocessing of the remainder serial compression can be applied to the remainder or the remainder is simply encrypted The serial compression of the remainder can be bypassed if the CPU ov
94. personal keys you can also use ready made key systems with generation administration functions etc these keys must be symmetrical for enciphering with FLAM however the same PASSWORD on both sides from the binary point of view PS If you would like to work out exactly how many different PASSWORDs are possible you must start with the length in bits as a power with base 2 for purely binary codes X input this number must be divisible by 8 with no remainder so that the input length is an integer number of bytes PASSWORDs in X format are always invariable for heterogeneous applications In the case of PASSWORDs entered with C it depends how many characters are allowed In ASCII for instance there are 96 printable characters not including extended character sets Only 52 of these characters are Roman letters while 10 are digits etc etc If the PASSWORD has a length of k bytes and there are up to n permissible characters per byte the total number FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 Introduction of variations will be n k power k base n There will always be a few dregs left over that an attacker will exclude straight away It is therefore important to choose a length k with a sufficient margin see example of PASSWORD with attributes AC PASSWORD often depends to a very large extent on the character sets and their binary conversion e g if special characters or um
95. pointer Record length maximum 32760 During the first call the working storage area symbolic file name of the original file within the first 8 characters The rest of the area is padded with x 00 This area can be used by the user exit module for any purpose With each call this working storage area is made available again with the old content Note If a record shall be extended or inserted the necessary working storage area must be provided by the user exit module 123 2015 by limes datentechnik gmbh Interfaces 124 Frankenstein Limes Access Method Chapter 3 Return code 12 is only necessary if decompression Shall be finished before the end of the compressed file is reached For function code 0 and 8 no record is passed to the module For function code 8 it is allowed to insert a record with return code 8 For return code 8 the record provided by the user exit module is written Then the user exit module is called again for the old record A change of the record length is accepted if the output file is defined with RECFORM V Table of valid function codes and return codes function code return code FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Name Register usage R1 R13 R14 R15 Parameter list 1 FUCO F 0 4 8 2 lt RETCO F n H H H IH 3 RECPTR A 4 RECLEN F 5c EXWORK 256 contains the FLAM V4 5 MVS Frankenstein Lime
96. records as well as of FLAMFILE records FLAM is currently available for variety of operating systems FSC BS2000 OSD Sinix Reliant Unix HP HPUX Windows OpenVMS DEC True64 UNIX DEC Non Stop OS Tandem OSS Tandem IBM z OS 05 390 MVS MVS Subsystem Linux S 390 z Series VM VSE 05400 AIX Microsoft Windows 9x NT XP Vista 7 200x Server NCR Unix SCO SCO Open Server SCO UnixWare SUN SOLARIS PCs Windows 9x NT XP Vista 7 200x Server Linux Other versions can be made available on demand FLAM is an optional compression standard for different applications used in German banking like BCS EAF LZB DTA and others FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 Manufacturer Marketing Cooperations FLAM V4 5 MVS Frankenstein Limes Access Method Introduction limes datentechnik gmbh Louisentrasse 21 D 61348 Bad Homburg Germany Telephone 49 6172 5919 0 Telefax 49 6172 5919 39 eMail info flam de eMail info limesdatentechnik de Internet http www flam de http www limes datentechnik de Bank Verlag GmbH BCS modules limes datentechnik gmbh other systems Furthermore we refer to the ISIS reports The following products support FLAM via interfaces BCS Bank Verlag GmbH CFS OPG Online Programmierung GmbH MultiCom CoCoNet AG NATURAL Software AG SFIRM BIVG Hannover GmbH amp Co KG SIRON Ton Beller AG
97. remaining fragments Splitting of FLAMFILEs is only available for binary compression modes MODE CX8 VR8 ADC NDC Binary informations have been added to every part of a splitted FLAMFILE Serial splitting SPLITMODE SERIAL means that when the file currently used to store compressed data reaches a specified size limit it is closed and subsequent processing stores the compressed data into a newly created file fragment The number of fragments of a splitted FLAMFILE created is not limited It only depends on the amount of data generated by the compression process At decompression FLAM verifies the order the presence and the affiliation of all fragments This feature provides an efficient support for file size limitations e g with e mail attachments or file transfers It can also improve system performance by allowing transmission of fragments over a network to begin before termination of the entire compression process With parallel splitting SPLITMODE PARALLEL compressed data is stored into a specified number of fragments SPLITNUMBER number The current version can handle up to 4 parallel fragments The size of the fragments depends on the amount of data generated during compression At decompression FLAM verifies the order the presence and the affiliation of all fragments Decompression requires the accessibility of all fragments of a FLAMFILE None of the data can be recovered when one parallel fragment is missing
98. transmission system or on the data transmission path the user may use the FLAM user exits and can apply the appropriate code conversions as part of the compression decompression process FLAM always works in MODE CX7 in respect to the code system of its host If source and target are of the same code system ASCII or EBCDIC no conversion is necessary If source and target are of different code systems FLAM requires that the FLAMFILE is converted to the code system of the target host system first to decompression If the FLAMFILE in MODE CX7 shall be transmitted via a 7 bit line as well as via an 8 bit line it will be necessary to analyse the actual situation to maintain full compatibility It must be considered that FLAM offers integrated code conversion 24 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation functions not on all platforms However this problem can be solved with MODE CX7 FLAM V4 5 MVS 25 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation Chapter 4 Because the FLAMFILE has records of equal length the last record is filled with a padding character if fixed record format is used In MODE CX7 this padding character is blank otherwise binary zero If a variable record format is used no padding is done for the last record the last record is shortened instead Each record in the FLAMFILE has internal
99. used with each execution of a FLAM module The default parameters are stored within a module FLAMPAR in the load library It is only necessary to regenerate that module if the delivered module FLAMPAR with it s predefined default values shall not be used After the default parameters have been changed FLAM and also user programs calling FLAM must be linked again This allows to use different sets of parameters for different applications The program FLAMGEN can be used to change the default parameters To do so enter the modified parameters according to the FLAM syntax into the file GENPAR see chapter PARAMETER page The parameters are then generated into module FLAMPAR by the program FLAMGEN It is not necessary to assemble the module FLAMPAR 5 2015 by limes datentechnik gmbh Installation Example 11 18 03 03 03 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 J0B09128 Chapter 6 Parameters that were not specified in file GENPAR are not changed and keep their old value Entries made in the PARM instruction are used for the control of FLAMGEN like SHOW MSGDISP These entries are not used as FLAM parameters The specification INFO HOLD MSGDISP MSGFILE as a PARM entry forces FLAMGEN to display the generated default parameters For job control reasons FLAMGEN will terminate with condition code 4 in thi
100. user data to file header User Header FLMGUH Read user data This allows certain operations to be implemented with fewer function calls The FIND functions can eliminate the need for buffer storage in the calling program Furthermore it is now possible to save self defined data for each file in the compressed data User exits When user exits 10 are called their addressing mode is taken into account The parameter lists are however stored in the high order address space as long as FLAM has been linked with AMODE31 After returning from the exits FLAM adjusts itself again to its own addressing mode independent on how the return statement in the exit was programmed The user interface More CLIST procedures have been created for the user interface in particular for the ISPF panel 3 4 FLDIR This displays the directory information of the file FLDISP This displays the file BROWSE If it is FLAMFILE it is decompressed and written into a temporary file beforehand FLEDIT This edits the file If it is a FLAMFILE it is decompressed and written into a temporary file beforehand After editing it is compressed again and written into the same FLAMFILE again FLCOMP This compresses the file FLDECO This decompresses the file FLAM V4 5 MVS 2015 by limes datentechnik gmbh Documentation updates FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Documentatio
101. will be generated so the protocol will appear in the JCL result list With the specification of Reuse existing Data N an overwrite of an existing file can be inhibited An error message is given instead This applies also for the protocol file Up to 100 characters can be entered for FLAM parameters in total For execution only one string is generated So a comma must be given if the parameters are continued on the second input line The parameters are not checked by the panel They are simply passed to FLAM and checked by FLAM during execution Execution may take place under TSO foreground or as a batch process The necessary JCL is generated automatically After execution has finished control is passed automatically to the FLAM protocol file under TSO All commands of the ISPF browse mode are allowed like positioning etc Function key will terminate the display and will give control back to the FLAM start menu FLAM V4 5 MVS 7 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 FLAM options When option o is entered default values for the JCL generation shall be specified Control is given to the next panel FLAM Options FLAM Load Library Data Set Name FLAMV30A LOAD New Data Set Defaults FLAMFILE Original Data Set Record Format gt FB F FB V VB Record Length gt 2048 80 to 32760 Byte Block Size gt 26624 80 to 32
102. you have to refresh the member index using the console command LLA REFRESH before first using of the new module FLAM V4 5 MVS 139 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 8 3 FLAMDIR FLAMDIR reads a FLAMFILE DD name FLAMFILE and logs the directory of the compressed encrypted files The output DD name FLPRINT looks like an ISPF panel 3 4 or option l in FLAM start panel or FLTOC clist Using the FLAM parameter D SHOW DIR you still get a full protocol of the directory of the FLAMFILE But using FLAMDIR the protocol is a conveniently laid out short summary of the directory of a Group FLAMFILE Example DIR EXEC PGM FLAMDIR STEPLIB DD DSN FLAM LOAD DISP SHR FLPRINT DD SYSOUT FLAMFILE DD DSN USER ARCHIV ADC DISP SHR and protocol FLPRINT FLAMDIR a program of FLAM utilities copyright c 1999 2014 by limes datentechnik gmbh 3 Original File Name FLAMV43A ADATA BIFLAMD FLAMV43A ADATA BIFLAMK FLAMV42A CLIST FABOUT FLAMV43A CLIST CUST FLAMV43A CLIST FLAMLIBS FLAMV43A LISTEN ADC FLAMV42A LOAD BIFLAMD FLAMV42A LOAD BIFLAMK 140 Frankenstein Limes Access Method Table of Contents of FLAMFILE USER ARCHIV ADC System ORG RECFM RECSI BLKSI Space 205 SEQ VB 8184 27998 91150 KB z0S SEQ VB 8184 27998 91150 KB z0S SEQ FB 80 27920 250 KB z0S SEQ FB 80 27920 250 KB z0S SEQ FB 80 27920 250 KB z0S SE
103. 0050010060 000021112850 0123456780000001 0000001 Command gt Scroll gt CSR By input of BA the files will be converted from ASCII to EBCDIC before displayed according to the internal translation table A E By input of BP you can enter additional parameter for decompressing FLAMT FLAMTS LIST 5 0 ts FLAMT FLAMTS 1 DAT1 SEQ FLAMT FLAMTS02 DAT2 SEQ K Will lead to F 133 133 400 V 260 264 350 VB 260 23440 28500 Old system MVS Old data set FLAMT FLAMTSO1 DAT1 Parameter for decompression to browse this file Cryptokey to decrypt the FLAMFILE SecureInfo MEMBER Ignore Member Yes use MEMBER for an AES encrypted FLAMFILE Translation A E E A module name of transl table You have to enter the key for decryption if the FLAMFILE has been encrypted during compression Using AES encryption SECUREINFO should be set to MEMBER to verify the security information for the member only 28 Frankenstein Limes Access Method FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 9 FLAM user interface 9 8 2 Information about a FLAMFILE member FLAMFILE TOC DAT CMP Row 1 of 2170 MODE VR8 MAXBUFFER 64 FLAMCODE EBCD Original Data Set Name Dsorg Recfm Lrecl Blksi Space FLAMT AD0001NP LIST SEQ FBM 133 3059 300 K FLAMT AD0001NP CX8 SEQ FB 80 23440 50 K FLAMT AD0191NP LIST SEQ FBM 133 3059 500 K FLAMT AD0192NP LIST SEQ FBM 133 3059 250 K FLAMT EXD4TO3 LIST
104. 015 by limes datentechnik gmbh Chapter 3 Interfaces the parameters specified or values stored in the file header FLAM V4 5 MVS 49 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces 50 Frankenstein Limes Access Method Chapter 3 3 1 3 Condition Codes For job control FLAM returns the following condition codes 0 Normal termination no error e 4 Not alll O files were processed during processing of group files e 8 Less severe error occurred e g parameter error 12 Usually a data management error e 16 Severe error during compression or decompressi on 80 Compression ratio was less than the specified limit see CLIMIT parameter 88 The file assigned was not a FLAMFILE Only for condition code 0 and 80 compression was done properly In all other cases no or a faulty compressed file was created We recommend to rename this file in order to avoid using it for processing at a later time If a condition code greater 0 was returned an error message was already displayed by FLAM Condition code 16 could be caused by a FLAM system error The library FLAM SRCLIB contains the call module FLAM This can be customized as required allowing other condition codes to be returned FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 1 4 File names In principle FLAM is able to process all
105. 15 16 3 2015 by limes datentechnik gmbh Contents 4 5 2 1 Compression with user exit EXK20 16 4 5 2 2 Decompression with user exit EXD20 17 4 6 Bi serial compression 18 4 7 Bi serial decompression 19 4 8 The FLAMFILE 20 4 8 1 General description 20 4 8 2 Group file 25 4 9 Heterogeneous data exchange 26 4 10 Code Conversion 28 4 11 Transformation of file formats 29 Chapter 5 5 Application examples 3 5 1 JEL 3 5 1 1 Compression 3 5 1 2 Decompression 5 5 1 3 A more complex example 7 5 2 How to use the record level interface 11 5 2 1 Compression 11 5 2 2 Decompression 14 5 2 3 Random access to an 17 index sequential FLAMFILE 5 2 4 Example for the entire record level interface 22 5 3 User I O interface 46 5 3 1 ASSEMBLER example 46 5 3 2 COBOL example 60 5 4 How to use the user exits 66 5 4 1 EXK10 EXD10 user exit 66 5 4 2 EXK20 EXD20 user exit 70 5 5 Using FLAM with other products 73 5 5 1 Using with NATURAL 73 5 5 2 Using with SIRON 73 4 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 6 Chapter 7 Chapter 8 Chapter 9 FLAM V4 5 MVS Frankenstein Limes Access Method 6 1 6 2 6 3 6 4 7 1 7 2 7 3 7 4 8 1 8 2 8 3 8 4 9 1 9 2 9 2 1 9 2 2 9 2 3 9 3 9 4 9 5 9 6 9 7 9 8 9 8 1 Installation FLAM licence Component list Installation of FLAM Generate default parameters Technical data System environment Memory requirements Performa
106. 16 COMPRESSION REDUCTION IN PERCENT 89 75 21 FLM0408 CPU TIME 16 6414 FLM0409 RUN TIME 60 0083 22 FLM0440 FLAM COMPRESSION NORMAL END 1 The copyright message contains the licence number Here Test licence with expiration date at 182 day in 2003 2 Recording the name of the parameter file It is a JES generated file 3 Recording all parameter of this parameter file 4 combination SSHOW NONE SHOW ALL suppresses the recording of the encryption key 5 The current FLAM version is recorded 6 first input file is recorded with its file attributes 7 The split mode has been activated 8 Thecryptographic algorithm is used 9 Recording of the first FLAMFILE 10 And the corresponding file attributes 11 The member of the Group FLAMFILE is secured with the recorded Message Authorization Code MAC It is a unique value 12 The first input file is closed Record and byte counter are recorded as well as record and byte counter of the compressed data 13 The second file is opened recording its data 14 The first fragment of the FLAMFILE reached its limit Recording the record and byte counter for this file 15 The file name of the 27 FLAMFILE fragment is shown and the corresponding generated DD name 16 The last fragment has less records and bytes 17 Repeating the first FLAMFILE 18 The entire Group FLAMFILE is secured with the recorded Message Authorization Code MAC
107. 31 32 33 34 36 37 38 39 Action FLAM V4 5 MVS Frankenstein Limes Access Method Messages FLAM DECOMPRESSION NORMAL END The decompression with FLAM was completed successfully None ERROR IN OPERATION During this function an error occurred The error code is documented in the following message None DMS ERROR CODE DD NAME During processing a VSAM file or PO data set with the specified DD name an error has occurred Analyze error code and correct file FLAM ERROR CODE DD NAME During processing the file with the specified DD Name an error has occurred Some recent explanations of error codes more gt ch 8 4 Input file empty Input file does not exist Illegal open mode Illegal file type Illegal record format Illegal record length Illegal block length Illegal key position Illegal key length Illegal file name Analyze error code and correct file 21 2015 by limes datentechnik gmbh Messages Chapter 8 FLMO499 FLAM DECOMPRESSION TERMINATED WITH ERRORS Explanation Decompression with FLAM was terminated with an error Condition Code 8 or 12 or 16 is set Action Analyze error 22 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 8 FLAM V4 5 MVS Frankenstein Limes Access Method Messages 8 3 FLAM return codes FLAM reports certain exceptional situations and errors via system neut
108. 3K ok ook af K 3K a ak ak ak oaf ak ak ok ok ok ok ok ke aak K ak 3K ok oaf K 3K 3K 2K K gt K gt K 3K 3K A ke OE OK NAME FLAMUIO FUNCTION DUMMY MODULE AS EXAMPLE FOR AN USER IO MODULE INTERFACES 05 OPEN DATA SET USRCLS CLOSE DATA SET z USRGET READ SEQUENTIAL USRGKY READ WITH KEY USRPUT WRITE SEQUENTIAL USRPKY WRITE WITH KEY USRDEL DELETE ACTUAL RECORD USRPOS POSITION IN DATA SET NOTES ALL FUNCTIONS ARE REENTRANT WE NEED NO RUN TIME SYSTEM INDEPENDENT FROM 370 SYSTEM gt K gt lt gt lt ok gt lt ok gt gt ok gt gt gt gt gt gt gt gt gt gt gt ok gt K K ok ok ok ok K gt K ok FK ok FK ok ok ok ok ok ok FK K gt K ok ok ok 2K K ok ok K ok ok ok K 2K FK 2 9 FK K ok ok ok ok ok OK OK ok ok ok K ADDRESSING RESIDENCY MODE FLAMUIO AMODE ANY FLAMUIO RMODE ANY RETURN CODES o X X X 0 0 NO ERROR EQU 1 REQM ERROR INVALID HANDLE OR INVALID FUNCTION CUT EQU 1 RECORD TRUNCATED EOF EQU 2 END OF DATA SET GAP EQU 3 GAP IN RELATIVE DATA SET 50 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples FILL EQU 4 RECORD PADDED INVKEY EQU 5 KEY NOT FOUND RCEMPTY EQU 30 INPUT DATA SET EMPTY RCNEXIST EQU 31 DATA SET DOES NOT EXIST RCOPENMO EQU 32 INVALID OPEN MODE RCFCBTYP EQU 33 INVALID FILE FORMAT RCRECFOR EQU 34 INVALID R
109. 4 3 Contents Introduction Introduction to FLAM with MODE ADC FLAM and AES Functions The FLAM Utility File compression using FLAM Decompression of files using FLAM Subprogram FLAMUP Interface on record level FLAMREC VO User Interface User exits Original data input EXK10 Compressed data output EXK20 Original data output EXD10 Compressed data input EXD20 Key management KMEXIT Bi serial compression with BIFLAMK Bi serial Decompression BIFLAMD Interfaces FLAM Utility Parameters JCL for FLAM Condition codes File names File name list Wildcard syntax Selection rule for decompression 17 O O O O O ww UJ N OO 39 44 45 45 46 48 1 2015 by limes datentechnik gmbh Contents 3 1 4 4 3 2 3 3 3 3 1 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 3 3 8 3 3 9 3 3 10 3 3 11 3 3 12 3 3 13 3 3 14 3 3 15 3 3 16 3 3 17 3 3 18 3 3 19 3 3 20 3 3 21 3 3 22 3 3 23 3 3 24 3 3 25 3 3 26 3 3 27 3 4 3 4 1 3 4 2 3 4 3 3 4 4 3 4 5 3 4 6 2 Frankenstein Limes Access Method Conversion rule 49 Subprogram interface FLAMUP 53 Record level interface FLAMREC 58 Function FLMOPN 66 Function FLMOPD 67 Function FLMOPF 69 Function FLMCLS 71 Function FLMDEL 72 Function FLMEME 73 Function FLMFKY 74 Function FLMFLU 75 Function FLMFRN 76 Function FLMGET 77 Function FLMGHD 78 Function FLMGKY 80 Function FLMGRN 81 Function FLMGTR 82 Function FLMGUH 83 Function FLMI
110. 5 MVS 2015 by limes datentechnik gmbh Chapter 3 DATACLAS DATAC DECOMPRESS D DEVICE DEV DISPA DISPA FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Data storage class for allocation of the FLAMFILE Possible values name name of the SMS data storage class Default none Valid for compression Decompression UNCOMPRESS No values Valid for decompression Assignment of device assignment for compressed file Possible values DISK disc unit TAPE tape unit FLOPPY floppy disc drive STREAMER tape streamer USER user specific I O Default DISK Valid for compression decompression Note This parameter is not needed for catalogued files under MVS The device type is automatically assigned by the operating system If the user exit for I O shall be activated DEVICE USER must be specified see also User I O interface Abnormal disposition of the FLAMFILE see MVS JCL manual Possible values 11 2015 by limes datentechnik gmbh Interfaces DISPN DISPN DISPS DISPS 12 Frankenstein Limes Access Method Chapter 3 CATLG catalog DELETE delete KEEP keep UNCATLG uncatalog Default none Valid for compression decompression Note This parameter is ignored when the FLAMFILE is allocated via JCL Normal disposition of the FLAMFILE see MVS JCL manual Possible values CATLG catalog DELETE delete KEEP keep UNCATLG uncatalog Default
111. 5 MVS 2015 by limes datentechnik gmbh Chapter 6 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0440 ACCESS MODE LOG CX8 HEADER YES LOOP NO MAXSIZE 51 OPENMODE OUTPUT EXD10 EXK20 ODDN FLAMOUT CLOSDISP REWIND KEYLEN ICLOSDIS REWIND IRECSIZE 3275 IKEYLEN OCLOSDIS REWIND ORECSIZE 3275 OKEYLEN FLAMFILE FLAMIN FLAMOUT MSGFILE PARFILE t 2 8 2 8 2 8 BLKMODE CODE INFO MAXBUFF 32768 MSGDISP MSGFILE TRUNCATE NO EXD20 FLAMDDN MSGDDN DSORG BLKSIZE IDSORG SEQUENT IRECDEL 00000000 IBLKSIZE 32760 ODSORG SEQUENT ORECDEL 00000000 OBLKSIZE 32760 YES EBCDIC YES FLAMFILE FLPRINT SEQUENT 6144 FLAM COMPRESSION NORMAL END Installation COPYRIGHT C 1989 1999 BY LIMES DATENTECHNIK GMBH CLIMIT 0 FILEINFO YES KEYDISP OLD MAXREC NAMEDISP NEW TRANSLAT EXK10 IDDN PARDDN 255 FLAMIN FLAMPAR RECFORM FIXBLK DEVICE DISK IRECFORM VARBLK IKEYPOS IDEVICE DISK ORECFORM VARBLK OKEYPOS ODEVICE II II P DISK Display of the old default parameters Here the parameters specified for FLAMGEN are recorded FLAM parameters as read from file 52 0 09128 10000101 are ded Because direct entry was used GENPAR DD the job name generated
112. 56F Working storage area 2 lt RETCO F Return code 0 1 Invalid function 1 Record was truncated 2 END OF FILE found 5 Key not found X OFXXXXXX Other error codes 3 RECLEN F Record length in bytes de RECORD XLn Record with key Record 5 BUFLEN Length of available record buffer bytes FLAM V4 5 MVS 115 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 4 6 Function USRPOS Position record pointer in file Parameters 1 WORKAREA 256F Working storage area 2 lt RETCO F Return code 0 1 Invalid function 5 Invalid position X OFXXXXXX Other error codes w i 79 2 T Relative position 0 No positioning MAXINT File start 2147483648 or x 80000000 MAXINT File end 2147483647 or x 7FFFFFFF n n records backwards n n records forwards Note This function allows to create gaps within a relative file by positioning the record pointer forward 3 4 7 Function USRPKY Write record with specified key Parameters 1 WORKAREA 256F Working storage area 2 lt RETCO F Return code 0 No error 1 Invalid function 1 Record was truncated 4 Record was filled with padding characters PADCHAR 5 Key is invalid Other error code 3 RECLEN F Length of passed record in bytes 4 RECORD XLn Original record Data Note Usually the record is insert
113. 760 Byte Space Unit gt TRKS BLKS TRKS or CYLS gt Primary Quant gt 10 in above units gt 20 Secondary Qu gt 5 in above units gt 4 Volume gt gt Unit gt SYSDA gt SYSDA JOB Statement Information required for batch processing only gt FLAM30A JOB 7021000F LIMES 496172 59190 gt CLASS A MSGLEVEL 2 MSGCLASS X gt NOTIFY FLAM30 Press ENTER for return PF3 or PF4 will cancel For demonstration purposes the panel is already supplied with values The values will be used for each FLAM execution So the user doesn t have to fill in the same values again and again The specification of a FLAM load module library is mandatory Without such a library no execution is possible Usually the library name has been determined during installation but it is always possible to change this name to support version changes or test environments By default the FLAMFILE is created as a sequential PS file Here it is possible to define a certain file format file size and storage medium as default values Because the output file during decompression can be of any kind only default values for size and storage medium are required All these values can be changed during execution Here only the default values are defined The JOB card is only used for execution in batch If no default JOB card is provided each batch JCL generation will ask for the job card specification
114. 8 maximal value 2047 The value is rounded upwards according to the following table 12 aal 16 s2 4 64 96 112 128 144 512 e4o 768 ao6 1024 1536 2048 or matrix size in bytes 25 2015 by limes datentechnik gmbh Interfaces MAXRECORDS MAXR MAXSIZE MAXS 26 Frankenstein Limes Access Method Chapter 3 Minimal value 2048 This value ist rounded upwards by kBytes according to the following table or is rounded downwards to 2560 kBytes 10 i 144 416 2048 2560 default 64 kByte Valid for compression mode cx7 cx8 vr8 Note Because during decompression a buffer of the same size as during compression is needed the compressed file is only heterogeneously compatible if this buffer size is valid on the target system ADC NDC use 64 kb unchangeable The information is stored into the FLAMFILE so it is well known during decompression Maximum number of records for compression in one matrix Possible values 1 255 MO CX7 CX8 VR8 1 4095 MO ADC Default 255 4095 depending on MODE Valid for compression Maximum record length for compressed file Net true without record length fields Possible values FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 MGMTCLAS MGMTC MODE MO FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 80 32760 Default 512 bytes Valid for compression Note The record length
115. ALL FLMGET USING FILE ID RETCO DATLEN OUTDAT RECORD MAXLEN IF FLAMOK THEN NEXT SENTENCE ELSE IF END OF FILE THEN GO TO CLOSE FLAM ELSE MOVE GET TO OPERATION PERFORM FLAM ERROR GO TO CLOSE FLAM WRITE RECORD WRITE THE DECOMPRESSED RECORD WRITE OUTDAT RECORD GO TO READ RECORD CLOSE FLAM CLOSE TO FLAM CALL FLMCLS USING FILE ID RETCO IF FLAMOK THEN MOVE CLOSE TO OPERATION PERFORM FLAM ERROR CLOSE DATA CLOSE OUTPUT DATA CLOSE OUTDAT MAIN END STOP RUN FLAM ERROR SECTION FLAM ERROR 1 IF FLAM ERROR RC THEN DISPLAY FLAM ERROR UPON OUT PUT ELSE MOVE LOW VALUE TO RETCO 1 DISPLAY DMS ERROR FOR FLAMFILE UPON OUT PUT DISPLAY OPERATION OPERATION RETURNCODE RETCO UPON OUT PUT FLAM ERROR 99 EXIT FLAM V4 5 MVS 19 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 5 2 3 Random access to an index sequential FLAMFILE This example requires index sequential FLAMFILE created from an index sequential original file with 80 bytes record length and a key of 8 byte length at position 73 The keys are printable numeric from 1 to n We assume n to be greater than 40 The compressed file can be created using the FLAM utility IDENTIFICATION DIVISION PROGRAM ID SAMPLE3D AUTHOR LIMES IF RECORD FOUND DISPLAYED UNTIL DATENTECHNIK GMBH SAMPLE3D IS AN EXAMPLE
116. ALL OK TO RETCO OPN USER 99 EXIT USRCLS MAIN SECTION CLOSE ROUTINE USRCLS MAIN 1 ENTRY USRCLS USING USER WORK RETCO WE SUPPORT DIFFERENT DATA SETS CHECK FOR DDNAME IF W DDNAME DATBASE THEN PERFORM CLS DATBASE ELSE PERFORM CLS USER USRCLS MAIN 99 GO BACK TO FLAM FLAM V4 5 MVS Frankenstein Limes Access Method Application examples DONE IS DONE 67 2015 by limes datentechnik gmbh Application examples GO BACK CLS USER SECTION CLOSE ROUTINE FOR THE OTHER EXAMPLE CLS USER 1 HERE YOU HAVE TO PROCESS THE CLOSE WE ONLY DISPLAY A MESSAGE DISPLAY USER I 0 CLOSE FOR W DDNAME IS DONE UPON OUT PUT CLS USER 90 SET THE RETURN CODE MOVE ALL OK TO RETCO CLS USER 99 EXIT CLS DATBASE SECTION CLOSE ROUTINE FOR A DATA BASE CLS DATBASE 1 HERE YOU HAVE TO PROCESS THE CLOSE WE ONLY DISPLAY A MESSAGE OH DISPLAY USER I 0 CLOSE FOR DATA BASE IS DONE UPON OUT PUT CLS DATBASE 90 SET THE RETURNCODE MOVE ALL OK TO RETCO CLS DATBASE 99 EXIT USRGET MAIN SECTION ROUTINE FOR READING RECORDS USRGET MAIN 1 ENTRY USRGET USING USER WORK RETCO DATALEN DATA AREA BUFFLEN WE SUPPORT DIFFERENT DATA SETS CHECK FOR DDNAME KH IF W DDNAME DATBASE THEN PERFORM GET DATBASE ELSE PERFORM GET USER USRGET MAIN 99 Chapter 5 68
117. ALUE S9 8 VALUE S9 8 S9 8 VALUE X 4 S9 8 S9 8 VALUE VALUE VALUE VALUE X 2 VALUE S9 8 VALUE VALUE COMP SYNC COMP SYNC COMP SYNC COMP SYNC 0 1 5 5 5 5 5 0 COMP SYNC 0 COMP SYNC 54 SPACES COMP SYNC 1 5 5 512 5 5 0 0 1 2 LOW VALUES COMP SYNC 1 0 SCHLUESSELBESCHREIBUNG DER ORIGINALDATEI KEYDESC ORIG 05 KEYFLAGS ORIG 05 KEYPARTS ORIG 05 KEYENTRY1 ORIG 10 KEYPOS1 ORIG FLAM V4 5 MVS Frankenstein Limes Access Method PIC S9 8 COMP SYNC VALUE 1 59 8 5 VALUE 1 59 8 5 27 2015 by limes datentechnik gmbh Application examples 05 KEYENTRY 2 BIS 8 ORIG 77 01 01 01 77 77 77 77 77 77 01 28 VALUE 10 KEYLEN1 ORIG PIC S9 8 VALUE 10 KEYTYPE1 ORIG PIC S9 8 VALUE Chapter 5 1 5 8 5 1 OCCURS 7 TIMES INDEXED BY KEYDESC INDEX Frankenstein Limes Access Method 10 KEYPOS ORIG 59 8 COMP SYNC 10 KEYLEN ORIG 59 8 COMP SYNC 10 KEYTYPE ORIG 59 8 COMP SYNC KEYDESC INDIKATOR PIC X 1 VALUE Y 88 KEYDESC DEFINIERT VALUE Y PARAMETER FUER FLMPUH UATTRLEN PIC S9 8 COMP SYNC USERATTR 80 PARAMETER FLMGET FLMPUT RECLEN PIC S9 8 COMP SYNC VALUE 80 REC ORD 05 BYTE PIC X
118. AMFILE Comment if the pointed brackets were left out the entire FLAMFILE would be decompressed and written into the file USER FILE ORG This name must be contained in a file header of the FLAMFILE If the FLAMFILE contains other compressed files they are ignored due to the unique selection rule set If several files are to be decompressed from a group file a wildcard syntax can be specified The simplest entry possible is a lone asterisk FLAMOUT lt gt This decompresses all of the files from the FLAMFILE and locates them on the disk under their original names A selection rule is implicitly regarded by FLAM as having an asterisk at the beginning and at its end i e lt DAT ABC gt corresponds to lt DAT ABC gt When analyzing the file names FLAM synchronizes itself to the character string specified Example The FLAMFILE contains the data USER DAT1 PS and USER DAT2 PO The specification D FLAMOUT lt DATI1 gt decompresses only the file USER DATI PS Since there is no asterisk specified in the name decompression is termimated after the first hit 55 2015 by limes datentechnik gmbh Interfaces 56 Frankenstein Limes Access Method Chapter 3 Note If in addition to the selection rule a file is assigned by means of JCL the JCL specification takes priority the above specification together with the DD statement FLAMOUT DD DSN USER2 POLIB MEMBER DISP leads to decomp
119. Also the compression mode and the parameters specified have an influence FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 7 FLAM V4 5 MVS Frankenstein Limes Access Method Technical data 7 4 Statistics If the parameter SHOW ALL is specified FLAM and FLAMUP will display statistical data concerning the execution of compression or decompression FLAM calculates and displays the number of records and bytes and the compression ratio During compression the number of records and bytes is calculated both for input and output and the compression ratio is calculated as the relation between number of input bytes and number of output bytes expressed as a percentage The number of bytes is calculated from the net true lengths of the data records i e not taking the record length field into account The compression effect is always computed as the relation between input bytes and output bytes If user exits modify the record number or record length the statistics may not be correct During decompression the number of records and bytes on the FLAMFILE is evaluated Also the number of decompressed records and the number of bytes in these records is displayed The number obtained during compression and decompression are identical if no user exits are used FLAM also displays the elapsed time of the process This includes the mounting times during tape I O as well In addition the CPU time used is displayed Files
120. C ADDRESS BLKSIZE ADDRESS CLOSDISP ADDRESS DEVICE gt gt gt gt gt gt gt PARAMETERS FOR FLMOPF ORG 5 ARVERSIO DS ADDRESS VERSION ARCODE ODS ADDRESS CODE ARCOMPMO DS ADDRESS COMPMODE ARMAXBUF DS ADDRESS MAXBUFFER ARHEADER DS A ADDRESS HEADER ARMAXREC DS A ADDRESS MAXREC ARKYDESF DS A ADDRESS KEYDESC ARBLKMOD DS A ADDRESS BLKMODE AREXK20 DS A ADDRESS EXK20 AREXD20 DS A ADDRESS EXD20 PARAMETERS FOR FLMCLS ORG AREST ARCPUTIM DS ADDRESS CPUTIME ARECORDS DS ADDRESS RECORDS ARBYTES DS ADDRESS BYTES ARBYTOFL DS ADDRESS BYTEOFL ARCMPREC DS ADDRESS CMPRECS ARCMPBYT DS ADDRESS CMPBYTES ARCBYOFL DS ADDRESS CBYTEOFL gt gt gt gt gt gt gt PARAMETERS FOR FLMGET FLMLOC AND FLMPUT ORG AREST ARECLEN DS ADDRESS RECLEN ARECPTR DS A ADDRESS RECORD RECPTR WITH LOCATE FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method ARBUFLEN DS PARAMETERS ORG ARPOS 05 PARAMETERS ORG ARHNAML DS ARHNAME DS ARHFCBT DS ARHRECF DS ARHRECS DS ARHRECD DS ARHKEYD DS ARHBLKS 05 ARHPRCTR DS CHARACTER ARHSATTL DS ARHSATTR DS ATTRIBUTES ARHSYST DS ORG PARAMETERS RETCO 05 FLAMID DS LASTPAR DS OPENMODE DS POSITION DS ABSPOS 05 NAMELEN DS FILENAME DS DSORG 05 RECFORM DS A FOR F ARES Interfaces ADDRESS BUFLEN LMPOS
121. CAL CONSTANTS gt K gt lt gt lt ok gt lt gt gt gt ok ok gt gt ok gt gt ok ok gt gt gt gt K gt K K ok ok ok ok K gt K ok FK FK FK ok ok ok ok FK ok FK FK gt F ok ok ok ok ok FK K K ok ok K K ok 9 K 9 K K ok ok ok ok ok FK 6 ok ok ok K LTORG DROP R10 TITLE USRDEL USRDEL DS OD ENTRY USRDEL USING USRDEL R10 ok ok ok ok gt gt ok ok ok ok FK ok ok ok R K ok ak ok ok FK FK ok ok FK ok ok K ok K FK ok ok ok ok K K ok FK ok ok FK ok K OR OR OR ok ok K OR ok NAME USRDEL FUNCTION DELETE ACTUAL RECORD PARAMETER ii 1 lt gt WORKAREA 256F WORK AREA 2 lt RETCO F RETURN CODE 0 NO ERROR 5 NO ACTUAL RECORD READ 1 UNSUPPORTED FUNCTION X OFXXXXXX ELSE T gt K gt lt gt lt ok gt lt gt gt gt ok ok k gt gt gt gt gt gt gt gt gt gt gt FK ok ok ok ok ok ok ok ok FK FK ok ok ok ok ok ok FK FK gt K ok ok ok K ok ok FK K ok ok ok K ok 9 2 FK FK K ok ok ok ok 32 FK 2K ok ok ok K SAVE REGISTER AND LOAD PROGRAM REGISTER 5 R14 R12 12 R13 LR R10 R15 LOAD PARAMETER LM R1 R2 0 R1 ADDRESS WORK AREA LR R12 R1 USING WORKAREA R12 DELETE RECORD FLAM V4 5 MVS 59 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 HERE RETURN CODE 0 ACTUAL RECORD READ LA RO INVK
122. CATOR PIC X 1 88 FLAM ERROR VALUE LOW VALUE 05 RETCO FLAM PIC 59 4 COMP SYNC 88 CUT VALUE 1 88 EOF VALUE 2 88 GAP VALUE 3 88 INVKEY VALUE 5 77 LASTPAR 59 8 COMP SYNC VALUE 1 FLAM V4 5 MVS 25 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 88 LAST PARAMETER OPENMODE 88 88 88 88 OPEN INPUT OPEN OUTPUT OPEN INOUT OPEN OUTIN DDNAME STATIS 88 PARAMETER FUER FLMOPD STATISTIK NAMELEN FILENAME DSORG RECFORM MAXSIZE RECDELIM BLKSIZE CLOSDISP DEVICE PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PARAMETER FUER FLMOPF FLMOPY VERSION 88 88 VERSION 1 1 VERSION 1 88 VERSION 2 FLAMCODE 88 EBC DIC 88 5 COMPMODE 88 88 CX8 CX7 88 VR8 MAXBUFF HEADER 88 88 NOHEADER FILEHEADER MAXREC SCHLUESSELBESCHREIBUNG DER 01 KEYDESC 26 05 KEYFLAGS 05 KEYPARTS Frankenstein Limes Access Method PIC PIC PIC PIC PIC PIC VALUE S9 8 VALUE VALUE VALUE VALUE VALUE X 8 VALUE S9 8 VALUE VALUE S9 8 VALUE X 54 VALUE S9 8 VALUE S9 8 S9 8 VALUE X 4 S9 8 S9 8 VALUE S9 8 VALUE S9 8 VALUE VALUE VALUE S9 8 VALUE VALUE S9 8 VALUE VALUE VALUE S9 8 S9 8 VALUE VALUE VALUE
123. D DSN USER XMLDAT1 ADC DISP SHR 135 2015 by limes datentechnik gmbh Interfaces Chapter 3 FLPRINT protocol FLAMCKV a program of FLAM utilities copyright c 2014 by limes datentechnik gmbh Utility to check a VSAM KSDS FLAMFILE for proper settings Data Set Name USER XMLDAT1 ADC RECSIZE 4 096 CINV 16 384 RKP 0 KEYLEN 34 High used relative byte address HURBA 737 280 Number of Records 164 Number of Bytes 172 216 Min RECSIZE 968 Max RECSIZE 1 186 Number of VSAM records needed for one FLAM matrix T 164 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 a 0 Record length distribution RECSIZE No Records in Percent ooooooo SS 164 VSAM KSDS records are stored the FLAMFILE Only one record is to be read for one complete matrix this is best If you see many records gt 10 i e more than 10 VSAM records are to be read for one matrix it is recommended to reorganize the KSDS file decompress and compress it again with a longer RECSIZE and probably CISIZE for the new FLAMFILE You can use the FLAM subsystem if available on your machine for FLAMIN file so no original data are stored even temporarily to disk 136 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces In this example all records have lengths about 30 of the cataloged RECSIZE The file could be cataloged with a shorter RECSIZE pa
124. DER YES BLKMODE YES MAXRECORDS 4095 MAXBUFFER 65536 KEYPARTS 0 KEYPOS1 0 NO DUPLICATE KEY PRINTABLE KEYLEN1 0 NO EXK20 NO EXD20 CONSTRUCT PARAMETER LIST FOR FLMOPF 5 LA ST LA ST LA ST LA 15 VERSION 15 ARVERSIO 15 CODE 15 ARCODE 15 COMPMODE 15 ARCOMPMO 15 MAXBUFF 15 ARMAXBUF 15 HEADER FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method 5 LA ST LA ST LA ST LA ST LA ST 01 CALL FLMOPF LA L BALR PARAMETER LIST RECPAR DS OA Interfaces 15 ARHEADER 15 MAXREC 15 ARMAXREC 15 KEYDESC 15 ARKYDESF 15 BLKMODE 15 ARBLKMOD 15 EXK20 15 AREXK20 15 EXD20 15 AREXD20 AREXD20 X 80 last parameter 1 RECPAR 15 V FLMOPF 14 15 FOR FLMOPN ARFLAMID DS ADDRESS FLAMID ARETCO DS ADDRESS RETCO AREST DS OF ARLAST DS ADDRESS LASTPAR ARMODE DS ADDRESS MODE ARLINK DS ADDRESS DD NAME ARSTATIS DS ADDRESS STATIS PARAMETERS FOR FLMOPD ORG ARMODE ARNLEN DS ADDRESS NAMELEN ARNAME DS ADDRESS FILENAME ARDSORG DS ADDRESS 05056 69 2015 by limes datentechnik gmbh Interfaces 70 Frankenstein Limes Access Method Chapter 3 ARECFORM DS ARMAXSIZ DS ARECDELI DS ARKYDESD DS ARBLKSIZ DS ARCLOSDI DS ARDEVICE DS ADDRESS REFORM ADDRESS MAXSIZE ADDRESS RECDELIM ADDRESS KEYDES
125. DS KSDS RRDS Especially important is that now a FLAMFILE can be created in the VSAM KSDS format This allows direct access retrieval to compressed data using the original keys On utility level new parameters were introduced Parameters of previous versions are accepted and are mapped onto the new parameters E g the CODE parameter is equivalent to the TRANSLATE parameter Other parameters are simply ignored like PATCH A FLAM protocol is now only issued by the programs FLAM and FLAMUP The new record level interface does not return a protocol only return codes The protocol has been enhanced while keeping as much from the old layout as possible It has been homogenised and contains more information Now the used CPU time is displayed in addition to the elapsed time After decompression the FLAM version used for compression the size of the matrix buffer and the compression mode MODE are displayed The dynamic memory requirement for the FLAM matrix buffer parameter has been increased by more than 100 percent 2015 by limes datentechnik gmbh FLAM MVS User Manual Contents FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 1 Chapter 2 Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method 1 2 2 1 2411 2 1 2 2 2 2 3 2 4 2 5 2 5 1 2 5 2 2 5 3 2 5 4 2 5 5 2 6 2 7 3 1 3 1 1 3 1 2 3 1 3 3 1 4 3 1 4 1 3 1 4 2 3 1
126. DS OH LA R15 4 MVI FLAG X 00 B RET LEERSATZ DS OH 01 FLAG LOESCH LA R4 0 ST R4 0 R11 LA R15 8 B RET CONSTANTS AND WORK AREAS FCSATZ DC F 4 FCOPEN DC F 0 72 Frankenstein Limes Access Method INCREMENT RECORD POINTER SAVE RECORD POINTER FIELD LENGTH IS RECORD LENGTH FLAM RECORD ADDR FOR FLAM RETURN CODE INSERT RECORD LOAD A RC PASS RC RESTORE REGISTERS RETURN RETURN CODE DELETE RECORD RESET FLAG AND RETURN AFTER DELIMITER AT RECORD END INDICATE DELETE OPERATION FOR NEXT RUN RECORD IS EMPTY RECORD LENGTH FOR FLAM RETURN CODE INSERT RECORD AND RETURN FUNCTION CODE RECORD PASSED OPEN FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 LTRENNKZ DC Application examples A L TRENNKZ LENGTH OF DELIMITER IN CASE OF DIFFERENT DELIMITER MAKE MODIFICATIONS HERE XL2 0D25 DELIMITER TO BE FOUND EA AA nnn nnen en SE N nn a a ne EE 0 1 PARAMETER ADDRESS 2 BASE REGISTER FOR WORK AREA 3 4 5 6 7 8 9 10 11 12 BASE REGISTER 13 A SAVE AREA 14 RETURN ADDRESS 15 ENTRY ADDRESS TRENNKZ DC REGISTER RO EQU R1 EQU R2 EQU R3 EQU R4 EQU R5 EQU R6 EQU R7 EQU R8 EQU R9 EQU R10 EQU R11 EQU R12 EQU R13 EQU R14 EQU R15 EQU LTORG DC DC DC DC DC WORKAREA IS WORKAREA DSECT MODULE SEPARATE V1 02 FOR FLAM COPYRIGHT C 1990 91 BY LIMES DATENTECHNIK GMBH C DATE T
127. E 6144 7 FLM0408 CPU TIME 0 0445 FLM0409 RUN TIME 0 3382 8 FLMO406 INPUT RECORDS BYTES 155 12400 FLM0407 OUTPUT RECORDS BYTES 10 5120 9 FLM0416 COMPRESSION REDUCTION IN PERCENT 58 71 10 FLM0440 FLAM COMPRESSION NORMAL END 1 copyright message also contains the licence number Here Test licence with expiration date 182 day in 2006 2 FLAM records the PARM specification 3 The name of the parameter file is displayed As parameters were given directly in the job stream the file name generated by JES is recorded The file name is followed by the FLAM parameters contained in this file 4 current FLAM version is recorded 5 The input file is recorded Both the file name and the file attributes displayed 6 FLAMFILE is recorded Both the file name and the file attributes are dis played Also the compression parameters used are displayed 7 The CPU time used and the elapsed time is recorded 8 The number of records and bytes for both input and output is recorded 9 compression ratio is recorded in percent 10 The compression was terminated normally FLAM V4 5 MVS 5 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 6 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples 5 1 2 Decompression 1 USERDC JOB 7021000F LIMES 06172 5919 0 CLAS
128. E found Gap in relative file found Invalid record number 0 or negative New file starts eventually the new file header can See function FLMGET or chapter 8 4 Record length in bytes of the passed record Original record data Length of available record buffer in bytes Record number File start With return codes 2 6 and 7 no record is passed With return code 3 a record of length 0 is passed 91 2015 by limes datentechnik gmbh Interfaces Parameters 1 FLAMID F 2 lt RETCO F 0 1 1 larger 2 3 6 be read otherwise 3 RECLEN F 4 lt RECORD 5 BUFLEN F 92 Frankenstein Limes Access Method Chapter 3 3 3 14 Function FLMGTR With function FLMGTR Get reverse the previous Original record is read in sequential order It is possible to position to a certain record in the compressed file using FLMGKY or FLMPOS and then to read backward sequentially Data is transferred from the record buffer to the calling program MOVE mode Identification Return code No error Invalid identification or function Record was truncated because original record was than BUFLEN END OF FILE found Gap in relative file found New file starts eventually the new file header can See function FLMGET or chapter 8 4 Record length in bytes of the passed record Original record data Length of available record buffer in bytes With return codes 2 and 6 no record is passed With r
129. EBCDIC that is not yet supported by this version of FLAM Invalid maximum number of records The MAXRECORDS or MAXREC parameter contains a value greater than 255 or less than 1 Invalid record length The MAXSIZE parameter contains a value less than 80 or greater than 32 768 for 8 bit compressed data With CX7 MAXSIZE must not be greater than 4096 Invalid character code The original data uses a character code neither ASCII nor EBCDIC that is not yet supported by this version of FLAM not used not used Password missing or invalid passed by FLMPWD Input file is empty The input file exists but does not contain any data Input file does not exist Invalid OPENMODE The file cannot be opened with the OPEN mode selected For example a sequential file cannot be opened for update Invalid file type The file format desired can not or can not yet be processed by FLAM Invalid record format The record format cannot be processed by FLAM or it is not valid for the file format specified Invalid record length The record length cannot be processed by FLAM or it is not valid for the file format and record format specified 27 2015 by limes datentechnik gmbh Messages 36 37 38 39 40 41 42 43 49 50 51 52 53 56 57 28 Frankenstein Limes Access Method Chapter 8 Invalid block length The block length cannot be processed by FLAM or it is not valid for the file format
130. ECORD FORMAT RCRECSIZ EQU 35 INVALID RECORD LENGTH RCBLKSIZ EQU 36 INVALID BLOCK SIZE RCKEYPOS EQU 37 INVALID KEY POSITION RCKEYLEN EQU 38 INVALID KEY LENGTH RCDSN EQU 39 INVALID DATA SET NAME EQU X OFXXXXXX OTHER ERRORS kok ok ok ok gt x ok ok ok ok ok ok ok ok FK FK K K ok K KR ok ok FK ok R ok ok ok ok ok OR ok ok K REGISTER EQUATES gt k gt lt ok ok ok gt lt ok ok gt ok ok ok ok ok FK ok ak K ok FK FK ok ok R ok R FK ok FK ok ok OR ok RO EQU R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 DC C MODULE FLAMUIO DC C USER I 0 MODULE FOR FLAM DC C TIME DATE ASSEMBLED DC C amp SYSDATE amp SYSTIME TITLE USROPN USROPN DS OD ENTRY USROPN USING USROPN R10 ok sk ok oR OR OR ak ak ak ak ak 9k ke A EE RC A AC A ke keek kkk kkk kkk kk kkk kkk OR OR NAME USROPN FUNCTION OPEN DATA SET PARAMETER 1 lt gt WORKAREA 256F WORK AREA INITIALIZED WITH 00 THIS AREA IS CONNECTED TO THIS DATA SET USABLE AS WORK AREA DURING THE DIFFERENT CALLS FOR THE ACTUAL DATA SET 2 lt RETCO F RETURN CODE 0 NO ERROR 30 INPUT DATA SET IS EMPTY 31 DATA SET NOT CONNECTED OR DOES NOT EXIST 32 ILLEGAL OPEN MODE 33 ILLEGAL DSORG 34 ILLEGAL RECORD FORMAT 35 ILLEGAL RECORD L
131. ELDUNG IF UNZULAESSIG THEN DISPLAY ILLEGAL FUNCTION UPON TERMOUT ELSE IF DVS ERROR Chapter 5 FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples THEN MOVE LOW VALUE TO RETCO INDICATOR MOVE ZERO TO HEXDATA MOVE RETCO RED TO HEXDATA WORT PERFORM HEX TO CHAR DISPLAY DMS ERRORCODE BYTE 2 4 CHAR UPON TERMOUT ELSE IF FLAM ERROR THEN DISPLAY FLAM RETURNCODE RETCO FLAM UPON TERMOUT ELSE MOVE LOW VALUE TO RETCO INDICATOR MOVE ZERO TO HEXDATA MOVE RETCO RED TO HEXDATA WORT PERFORM HEX TO CHAR DISPLAY SECINFO CODE BYTE 2 4 CHAR UPON TERMOUT END IF END IF END IF NUMERISCHE EINGABE ACCEPT EINGABE FROM TERMIN MOVE 0 TO EINGABE NUM SET RED INDEX TO 8 PERFORM VARYING EIN INDEX FROM 9 BY 1 UNTIL EIN INDEX 0 OR RED INDEX 0 IF BYTE EIN EIN INDEX NUMERIC THEN MOVE BYTE EIN EIN INDEX TO BYTE RED RED INDEX SET RED INDEX DOWN BY 1 END IF END PERFORM IF BYTE EIN 1 THEN COMPUTE EINGABE NUM 1 EINGABE NUM END IF HEX TO CHAR PERFORM VARYING CHAR INDEX FROM 8 BY 1 UNTIL CHAR INDEX 1 DIVIDE HEXDATA BY 16 GIVING HEX QUOTIENT REMAINDER HEX REMAINDER END DIVIDE ADD 1 TO HEX REMAINDER SET HEX INDEX TO HEX REMAINDER MOVE HEX QUOTIENT TO HEXDATA MOVE DIGIT HEX INDEX TO BYTE CHAR CHAR INDEX END PERFORM KEYDESC EINGABE DISPLAY KEYPARTS 0 8 UPON TERMOUT FLAM V4 5 MVS 47 Frankenstein Li
132. ENGTH FLAM V4 5 MVS 51 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Ul RR RR X RR RR TR RR RR TR RR TR RR RT RR RR X RR KRYT 4 5 lt gt 36 37 38 1 X OFXXXXXX OPENMODE F 0 3 gt DDNAME CL8 DSORG F 0 8 1 1 9 1 2 10 1 3 11 1 4 12 2 5 13 2 0 8 1 II RECSIZE 0 3276 RECFORM RECFORM RECFORM 6 7 8 9 1 RECFORM F 6 7 RECFORM BLKSIZE 0 KEYDESC KEYFLAGS F 0 1 KEYPARTS F 0 8 KEYPOS1 F 1 3276 KEYLEN1 1 255 1 0 1 KEYPOS8 1 3276 6 6 U S F ILLEGAL BLOCK SIZE ILLEGAL KEY POSITION ILLEGAL KEY LENGTH UNSUPPORTED FUNCTION GETMAIN ERROR OTHER ERROR CODE OPEN MODE INPUT SEQUENTIAL READ DATA SET MUST EXIST OUTPUT SEQUENTIAL WRITE DATA SET WILL BE OVERWRITTEN INOUT READ OR WRITE SEQUENTIAL OR WITH KEY DATA SET MUST EXIST OUTIN WRITE OR READ SEQUENTIAL OR WITH KEY DATA SET WILL BE OVERWRITTEN DD NAME DATA SET ORGANIZATION SEQUENTIAL INDEX SEQUENTAIL RELATIVE DIRECT UNSTRUCTURED LIBRARY RECORD FORMAT VARIABELE V 8 BLOCKED 16 BLOCKED SPAN NED FIX F 9 BLOCKED 17 BLOCKED SPANNED UNDEFINED U STREAM S 11 DELIMITER 19 RECORD DESCRIPTOR WORD DATA LENGTH WITHOUT DELIMTER OR RDW MAX RECORD LENGTH OR 0
133. EQ SEQ SEQ SEQ SEQ SEQ FBM VB 133 133 133 133 133 133 260 260 Chapter 9 3059 1250 133 500 133 550 133 11300 3059 100 133 400 264 350 23440 28500 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 3 FLCOMP This CLIST procedure is intended for use in panel 3 4 in ISPF file list but it can also be called directly In the latter case the file name is requested To compress the file specified in the line FLCOMP branches to the FLAM panel routine In this routine the option and file name are already set in the panel and the user can enter further specifications for compression see 9 2 The command is entered in the same line as the file name to be compressed FLCOMP or FLCOMP Example DSLIST DATA SETS BEGINNING WITH USER ROW 15 OF 134 COMMAND gt SCROLL PAGE COMMAND NAME TRACKS USED XT DEVICE FLCOMP USER DAT 1 100 1 3390 USER DAT 1 100 1 3390 USER DAT USER DAT USER DAT KSDS INDEX FLAM V4 5 MVS 19 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 9 4 FLDECO This CLIST procedure is intended for use in panel 3 4 in ISPF file list but it can also be called directly In the latter case the file name is requested To decompress the file specified in the line FLDECO branches to the FLAM panel routine In this routine the option and
134. ERATTR UPON TERMOUT END IF END IF MATRIX ABSCHLIESSEN CALL FLMFLU USING FLAMID RETCO CPUTIME REC ORDS BYTES BYTEOFL CMPRECS CMPBYTES CMPBYOFL IF NOT OK DISPLAY ERROR IN FLMFLU UPON TERMOUT PERFORM FEHLER MELDUNG ELSE IF STATISTIK THEN DISPLAY UPON TERMOUT MOVE CPUTIME TO STATIS DIS DISPLAY CPU ZEIT STATIS DIS UPON TERMOUT MOVE REC ORDS TO STATIS DIS DISPLAY ORIGINAL RECORDS STATIS DIS UPON TERMOUT MOVE BYTECNT TO STATIS DIS DISPLAY ORIGINAL BYTES STATIS DIS UPON TERMOUT MOVE CMPRECS TO STATIS DIS DISPLAY COMP RECORDS STATIS DIS UPON TERMOUT MOVE CMPBYCNT TO STATIS DIS DISPLAY COMP BYTES STATIS DIS UPON TERMOUT 44 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples END IF END IF MEMBER ABSCHLIESSEN CALL FLMEME USING FLAMID RETCO CPUTIME REC ORDS BYTES BYTEOFL CMPRECS CMPBYTES CMPBYOFL SIGNATUR IF NOT OK DISPLAY ERROR IN FLMEME UPON TERMOUT PERFORM FEHLER MELDUNG END IF DISPLAY UPON TERMOUT MOVE CPUTIME TO STATIS DIS DISPLAY CPU ZEIT STATIS DIS UPON TERMOUT MOVE REC ORDS TO STATIS DIS DISPLAY ORIGINAL RECORDS STATIS DIS UPON TERMOUT MOVE BYTECNT TO STATIS DIS DISPLAY ORIGINAL BYTES STATIS DIS UPON TERMOUT MOVE CMPRECS TO STATIS DIS DISPLAY COMP RECORDS STATIS DIS UPON TERMOUT MOVE CMPBYCNT TO STATIS DIS DISPLAY COMP BYTES STATIS DIS UPON TERMOUT MOVE ZERO TO HEXDATA MOVE
135. EY ST R0 0 R2 RETURN TO CALLER LM R14 R12 12 R13 BR R14 RELEASE WORK AREA REGISTER DROP R12 gt K gt lt gt lt ok gt lt gt gt lt K ok ok ok gt ok gt gt gt gt gt ok ok gt K gt K K ok ok ok ok FK gt K ok FK ok FK ok ok ok ok ok ok FK FK gt K gt K ok ok 2K ok ok FK K ok ok ok 2K ok K 2 9 9 K ok ok ok ok ok OK OK ok ok K K LOCAL CONSTANTS gt K gt lt gt lt ok gt lt gt gt gt ok ok ok gt gt gt gt gt gt gt FK FK gt gt K ok ok ok ok ok gt K FK FK ok FK ok ok ok ok ok ok K FK CE ok ok ok ok K ok FK K ok ok ok K ok FK K 9 FK ok ok ok ok ok ok FK 5 ok ok K K LTORG DROP R10 TITLE USRPOS USRPOS DS OD ENTRY USRPOS USING USRPOS R10 gt k gt lt ok ok ok ok ok ok gt ok ok ok ok ok FK ok ok FK ok ok K ok ok ok K ok ok FK ok ok ok ok K KR ok ok ok ok ok K ok FK ok ok FK ok K R R OR ok ok K OR R NAME USRPOS FUNCTION POSITION IN DATA SET PARAMETER 1 lt gt WORKAREA WORK AREA 2 lt RETCO F RETURN CODE T T 0 x 5 ILLEGAL POSITION 1 UNSUPPORTED FUNCTION X OFXXXXXX ELSE 3 gt POSITION F RELATIVE POSITION 0 NO NEW POSITION id MAXINT TO BEGINNING OF DATA SET 2147483648 OR X 80000000 MAXINT TO END OF DATA SET 2147483647 OR X 7FFFFFFF RECORDS BACKWARD N RECORDS FORWARD NOTES
136. FIED DATA UPON TERMOUT ACCEPT USERATTR FROM TERMIN CALL FLMPUH USING FLAMID RETCO UATTRLEN USERATTR IF NOT OK THEN DISPLAY ERROR IN FLMPUH UPON TERMOUT PERFORM FEHLER MELDUNG END IF HEADER LESEN MOVE 54 TO NAMELEN ORIG MOVE SPACES TO FILENAME ORIG CALL FLMGHD USING FLAMID RETCO NAMELEN ORIG FILENAME ORIG DSORG ORIG RECFORM ORIG RECSIZE ORIG RECDELIM ORIG KEYDESC ORIG BLKSIZE ORIG PRCTRL ORIG SYSTEM ORIG IF NOT OK FLAM V4 5 MVS 43 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 THEN DISPLAY ERROR IN FLMGHD UPON TERMOUT PERFORM FEHLER MELDUNG ELSE DISPLAY NAMELEN NAMELEN ORIG UPON TERMOUT DISPLAY FILENAME FILENAME ORIG UPON TERMOUT DISPLAY DSORG DSORG ORIG UPON TERMOUT DISPLAY RECFORM RECFORM ORIG UPON TERMOUT DISPLAY RECSIZE RECSIZE ORIG UPON TERMOUT PERFORM X KEYDESC AUSGABE DISPLAY BLKSIZE BLKSIZE ORIG UPON TERMOUT DISPLAY PRCTRL PRCTRL ORIG UPON TERMOUT DISPLAY RECSIZE RECSIZE ORIG UPON TERMOUT MOVE SYSTEM ORIG TO BYTE 3 4 HEX PERFORM HEX TO CHAR DISPLAY SYSTEM BYTE 3 4 CHAR UPON TERMOUT END IF USER HEADER LESEN MOVE 80 TO UATTRLEN MOVE SPACES TO USERATTR CALL FLMGUH USING FLAMID RETCO UATTRLEN USERATTR IF NOT OK THEN DISPLAY ERROR IN FLMGUH UPON TERMOUT PERFORM FEHLER MELDUNG ELSE DISPLAY UATTRLEN UATTRLEN UPON TERMOUT IF UATTRLEN 0 THEN DISPLAY US
137. FIO error for original file input FLAMFIO error for original file output FLAMFIO error for compressed file FLAMFIO error for parameter file FLAMFIO error for message file Error in data management VSAM Module or table cannot be loaded Module cannot be called Module cannot be unloaded Abort by user exit Too many or invalid keys Syntax error during parameter input Unknown parameter key word Unknown parameter value Parameter value not decimal Parameter value too long No file name found or error when determining file Not all files were processed Error during memory request Parameter area Length of parameter area No parameter Length n of parameter area Note Parameters must be written in the same way as in the utility Only upper case letters are allowed FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces Example for the call of FLAMUP in COBOL IDENTIFICATION DIVISION PROGRAM ID EXAMPLE EXAMPLE FOR THE CALL OF FLAMUP ENVIRONMENT DIVISION DATA DIVISION WORKING STORAGE SECTION 77 FLAMID PIC S9 8 COMP SYNC 77 RETCO PIC S9 8 COMP SYNC 77 PARAM PIC X 80 VALUE C MODE ADC 77 PARLEN PIC S9 8 COMP SYNC VALUE 10 PROCEDURE DIVISION CALL FLAMUP USING FLAMID RETCO PARAM PARLEN STOP RUN FLAM V4 5 MVS 63 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces 64 Frankenstein Limes Access Method Chapt
138. FLAG LOESCH BO LOESATZ BEGINNA DS 0H L RA SATZPTR BEGINN DS 0H 01 FLAG SATZDA LR R7 R4 LR R6 R9 SR R6 R7 BZ LEERSATZ C R6 LTRENNKZ FLAM V4 5 MVS Frankenstein Limes Access Method A WORKAREA RESET FLAGS A A RECORD TO R10 LOAD A RECORD A RECORD LENGTH LOAD RECORD LENGTH A RECORD END A WORK AREA RECORD ALREADY PRESENT NO DELETE RECORD YES RECORD WAS ALREADY PROCESSED A FIELD FROM LAST TIME INDICATE RECORD PRESENT SAVE A FIELD BEGIN A FIELD END A FIELD BEGIN L REMAINDER L 0 PASS EMPTY RECORD 71 2015 by limes datentechnik gmbh Application examples BNL SUCH 01 FLAG LOESCH LR R4 R9 B SUCHEND SUCH DS OH LA R8 1 5 R9 LTRENNKZ SUCHLOOP DS OH SEARCH STRING IS DELIMITER CLC 0 L TRENNKZ R4 TRENNKZ BE ISTDA BXLE R4 R8 SUCHLOOP 01 FLAG LOESCH Chapter 5 L L DELIMITER HAS NO DELIMITER INDICATE DELETE OPERATION FOR NEXT RUN A RECORD END INCREMENT FOR BX INSTRUCTION FOR BX INSTR SET RECORD END L DELIMITER YES NEXT CHARACTER INDICATE DELETE OPERATION FOR NEXT RUN LA R4 L TRENNKZ 1 R4 FIELD IS BIGGER BY L 1 B SUCHEND ISTDA DS OH LA R6 L TRENNKZ R4 ST R6 SATZPTR SUCHEND DS OH FILL FLAM PARAMETER LIST SR R4 R7 ST R4 0 R11 ST R7 0 R10 LA R15 8 RET DS OH RETURN TO FLAM L R3 4 R1 ST R15 0 R3 L R14 12 R13 LM RO R12 20 R13 BR R14 LOESATZ
139. FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples GO BACK TO FLAM GO BACK GET DATBASE SECTION GET ROUTINE FOR DATA BASE GET DATBASE 1 WE RETURN ALWAYS THE SAME RECORD AFTER THE 10 RECORD WE FINISH EOF OH IF W COUNTER 10 THEN MOVE EXAMPLE DATBAS RECORD TO DATA 1 MOVE W DDNAME TO DATA 2 MOVE RECLEN TO DATALEN ADD 1 TO W COUNTER MOVE ALL OK TO RETCO ELSE MOVE ZERO TO DATALEN MOVE END OF FILE TO RETCO GET DATBASE 99 EXIT GET USER SECTION GET ROUTINE FOR THE OTHER EXAMPLE GET USER 1 WE RETURN ALWAYS THE SAME RECORD AFTER THE 20 RECORD WE FINISH EOF OH OH IF W COUNTER 20 THEN MOVE EXAMPLE USER RECORD TO DATA 1 MOVE W DDNAME TO DATA 2 MOVE RECLEN TO DATALEN ADD 1 TO W COUNTER MOVE ALL OK TO RETCO ELSE MOVE ZERO TO DATALEN MOVE END OF FILE TO RETCO GET USER 99 EXIT FLAM V4 5 MVS 69 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 5 4 How to use the user exits 5 4 1 EXK10 EXD10 user exits The following exit routine can be used for compression as well as for decompression and has the purpose of modifying fields within records The sample code is found in the library FLAM SRCLIB TITLE SEPARATE EXIT FOR FLAM COMPRESSION SEPARATE CSECT SEPARATE AMODE ANY SEPARATE RMODE ANY ok of a ok R ak
140. FLAMID RETCO LASTPAR OPENMODE DDNAME STATIS DDNAME UPON TERMOUT PERFORM FEHLER MELDUNG DISPLAY DISPLAY PROGRAM ABNORMAL END STOP RUN END IF NEXT IF THEN NOT LAST PARAMETER UPON TERMOUT UPON TERMOUT DISPLAY PLEASE SELECT FUNCTION FLMSET FLMOPD FLMOPF ACCEPT FUNKTION IF FLMSET THEN UPON TERMOUT FROM TERMIN PERFORM SETPARM OPD GO TO OPEN NEXT END IF IF FLMOPD THEN DISPLAY UPON TERMOUT DISPLAY ENTER PARAMETER FOR FLMOPD UPON TERMOUT DISPLAY FILENAME UPON TERMOUT ACCEPT FILENAME FROM TERMIN DISPLAY NAMELEN 0 54 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO NAMELEN IF OPEN OUTPUT OR OPEN OUTIN THEN DISPLAY DSORG 0 5 0 1 INDEX UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO DSORG DISPLAY RECFORM O VAR 1 FIX UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECFORM DISPLAY MAXSIZE 80 32768 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO MAXSIZE DISPLAY KEYDESC FUER ORIGINALDATEI UPON TERMOUT PERFORM KEYDESC EINGABE MOVE KEYDESC ORIG TO KEYDESC 32 Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples DISPLAY BLKSIZE 0 32768 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO BLKSIZE ELSE IF OPEN INOUT THEN DISPLAY KEYDESC FUER ORIGINALDATEI UPON TERMOUT PERFO
141. FLMGET the next original record is read in sequential order It is possible to position to a certain record in the compressed file using FLMGKY or FLMPOS and then to continue with sequential reading Data is transferred from the record buffer to the calling program MOVE mode Parameters 1 FLAMID F Identification 2 lt RETCO F Return code 0 No error 1 Invalid identification or function 1 Record was truncated because original record was larger than BUFLEN 2 END OF FILE found 3 Gap in relative file found 6 New file starts eventually the new file header can be read 7 Password required Pass it via FLMPWD 11 FLAMFILE format error 12 Record length error 13 File length error 14 Checksum error 29 Illegal password 43 49 Abort by user exit 52 Too many or invalid duplicate keys X FFXXXXXX Data management error code otherwise See chapter 8 4 3 RECLEN F Record length in bytes of the passed record 4 RECORD XLn Original record data 5 BUFLEN F Length of available record buffer in bytes Note With return codes 2 6 and 7 no record is passed With return code 3 a record of length 0 is passed 86 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 FLAMID F 2 lt RETCO F 4 FILENAME x 2 U m 5o0 F OUUWUNHO 6 lt RECFORM F 0 8 16 1 9 17 2 10 18 3 11 19
142. FLMPHD PHD 88 FLMPUH VALUES FLMPUH PUH 88 FLMGHD VALUES FLMGHD GHD 88 FLMGUH VALUES FLMGUH GUH 88 FLMPWD VALUES FLMPWD PWD 88 FLMSET VALUES FLMSET SET 88 FLMQRY VALUES FLMQRY QRY AREAS FOR FLMCLS AND FLMFLU 77 CPUTIME PIC 9 8 COMP 77 REC ORDS PIC 9 8 COMP 01 BYTEFELD 05 BYTEOFL PIC 9 8 COMP SYNC 05 BYTES PIC 9 8 COMP SYNC 01 BYTECNT REDEFINES BYTEFELD PIC S9 18 COMP SYNC 77 CMPRECS PIC 9 8 COMP 01 CMPBYFELD 05 CMPBYOFL PIC 9 8 COMP SYNC 05 5 PIC 9 8 COMP SYNC 01 REDEFINES CMPBYFELD 59 18 SYNC ZUSAETZLICHE BEREICHE FUER FLMCLF UND FLMEME 01 SIGNATUR 05 SIGNAT1 PIC X 4 05 SIGNAT2 PIC X 4 01 SIGNATUR DIS 05 SIGNAT1 DIS PIC X 8 05 SIGNAT2 DIS PIC X 8 77 STATIS DIS PIC ZZZ ZZZ ZZZ ZZZ ZZZ ZZ9 ARBEITSVARIABLEN 30 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 77 77 77 77 77 77 01 01 77 77 01 01 01 01 01 INDEX DISPLAY PIC 9 8 KEY IND DISP PIC S9 8 GET COUNT PIC 9 8 GET INDEX PIC S9 8 REL POSITION PIC S9 8 88 DATEI ENDE VALUE 88 DATEI ANFANG VALUE DIGIT PIC 9 HEXDATA PIC 9 16 HEXDATA BYTES REDEFINES HEXDATA 05 FILLER 4 02 HEXDATA WORT 05 BYTE 1 2 HEX 2 05 BYTE 3 4 HEX 2 QUOTIENT 9 16 HEX REMAINDER PIC 9 16 HEXDIGITS P
143. FOR AN INFORMATION RETRIEVAL PROGRAM BASED ON A VSAM KSDS FLAMFILE USING THE FLAM CALL INTERFACE A DIRECT READ WITH KEY IS DONE THE NEXT RECORDS ARE READ SEQUENTIAL AND A NEW SET OF KEYS START ENVIRONMENT DIVISION CONFIGURATION SECTION SPECIAL NAMES SYSOUT IS OUT PUT DATA DIVISION WORKING STORAGE SECTION 77 77 CONDITION FLAG 88 SET END 77 SET END FLAG 01 FLAM FILEID 01 FLAM RETCO PIC 9 8 PIC X VALUE X PIC X VALUE X PIC 9 8 COMP PIC S9 8 COMP 88 FLAMOK VALUE 0 88 FILEID ERR VALUE 1 88 MEMORY ERR VALUE 1 88 REC TRUNCATED VALUE 1 88 END OF FILE VALUE 2 88 REC NOT FOUND VALUE 5 88 NEW HEADER VALUE 6 88 NO FLAMFILE VALUE 10 88 FORMAT ERR VALUE 11 88 RECLEN ERR VALUE 12 88 FILELEN ERR VALUE 13 20 Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples 01 88 CHECKSUM ERR VALUE 14 88 MAXB INVALID VALUE 21 88 COMPMODE INVALID VALUE 22 88 COMPSYNTAX ERR VALUE 23 88 BLKSIZE INVALID VALUE 24 88 RECSIZE INVALID VALUE 25 88 FLAMCODE INVALID VALUE 26 88 FILE EMPTY VALUE 30 RETCO X REDEFINES FLAM RETCO 03 RETCO 1 PIC X 88 NODMS ERROR VALUE LOW VALUE 03 RETCO 2 PIC X 03 RETCO 3 4 05 RETCO 3 PICX 05 RETCO 4 PICX ok ok ok ok ok ok ok ak ok ok ok K ok ok FK ok R R ok ok ok ok FK ok ok K ok K K ok ok ok ok K FK ok ok F
144. FOR SPECIAL RECORD WITH KEY NO 2 MOVE 5 2 TO KEY DATA PERFORM GET KEY IF RECORD FOUND READ THE NEXT RECORDS IF FLAMOK THEN MOVE STOP KEY 2 TO MOVE SPACE TO CONDITION FLAG PERFORM GET SEQ UNTIL SET END MAIN SEARCH 3 SEARCH FOR SPECIAL RECORD WITH KEY NO 3 KEY DOES NOT EXIST IN DATA SET MOVE S KEY 3 TO KEY DATA PERFORM GET KEY IF RECORD NOT FOUND FLAM POSITIONS TO THE NEXT HIGHER KEY THE DATA SET IF REC NOT FOUND THEN MOVE STOP KEY 3 TO NEXT KEY MOVE SPACE TO CONDITION FLAG PERFORM GET SEQ UNTIL SET END MAIN CLOSE FILE CLOSE FLAMFILE CALL FLMCLS USING FLAM FILEID FLAM RETCO MAIN END STOP RUN FLAM ERROR SECTION FLAM RETURN CODE IS NOT ZERO DOCUMENT THE ERROR SITUATION FLAM ERROR 1 22 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples IF END OF FILE THEN GO TO FLAM ERROR 99 IF NODMS ERROR THEN DISPLAY FLAM ERROR UPON OUT PUT ELSE MOVE LOW VALUE TO RETCO 1 THIS BYTE CONTAINS SIGN FOR DATA SET ERROR WE DON T NEED TO DISPLAY DISPLAY DMS ERROR FOR FLAMFILE UPON OUT PUT FLAM ERROR 2 DISPLAY RETURNCODE FLAM RETCO UPON OUT PUT FLAM ERROR 99 EXIT GET KEY SECTION GET A RECORD WITH SPECIFIED KEY GET KEY 1 CALL FLMGKY USING FLAM FILEID FLAM RETCO DATALEN DATA AREA BUFFLEN GET KEY 2 IF FLAMOK THEN
145. HECKSUM THE COMPRESSED DATA CAN ONLY DECOMPRESSED IF THE SWAP OPERATION DONE AGAIN PARAMETER gt ID gt F IDENTIFICATION lt RETCO F RETURN CODE A RECORD POINTER gt F RECORD LENGTH VERSION 13 03 91 X X X X X X X X w AK K ok ok gt lt ok ok gt K ok ok K ok ok ok K ok ok ok ok ok FK ok ok FK ok ok K X ok ok FK ok ok K ok ok ok ok KR ok ok R R ok FK ok ok FK ok OR FK R OR OK OK OR OR OR SAVE REGISTERS AND LOAD BASE REGISTERS STM R14 R12 12 R13 LOAD PARAMETERS LM R1 R4 0 R1 PASS COMPRESSED RECORD CLC 0 4 R1 F4 BC F EQ F1001 LOAD RECORD LENGTH L R4 0 R4 RECORD LENGTH GREATER 16 LA R14 16 CR R4 R14 BC F GT F1002 SWAP 16TH AND 17TH CHARACTER L R3 0 R3 FLAM V4 5 MVS Frankenstein Limes Access Method 75 2015 by limes datentechnik gmbh Application examples LA R14 0 R3 R14 R5 0 R14 MVC 1 R14 1 R14 STC R5 1 R14 F1002 DS OH F1001 DS OH RETURN CODE ACCEPT RECORD NO ERROR LA R0 0 ST R0 0 R2 RETURN LM R14 R12 12 R13 BR R EXIT LOCAL CONSTANTS DC F 4 F16 DC F 16 LTORG DS OD DROP R PASS END 76 Frankenstein Limes Access Method Chapter 5 FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 FLAM V4 5 MVS Frankenstein Limes Access Method Application examples 5 5 Using FLAM with other products 5 5 1 I
146. IC X 16 VALUE HEXTAB REDEFINES HEXDIGITS 05 DIGIT HEX PIC X 1 OCCURS 16 TIMES Application examples COMP COMP SYNC COMP SYNC 99999999 99999999 COMP SYNC COMP SYNC COMP SYNC 01234567 89ABCDEF INDEXED BY HEX INDEX CHARDATA PIC X 8 CHARDATA BYTES REDEFINES CHARDATA 05 BYTE 1 CHAR PIC X 2 05 BYTE 2 4 CHAR 10 BYTE 2 CHAR PIC X 2 10 BYTE 3 4 CHAR PIC X 4 CHARDATA TAB REDEFINES CHARDATA 05 BYTE CHAR PIC X 1 OCCURS 8 TIMES INDEXED BY CHAR INDEX PROCEDURE DIVISION DISPLAY START MESSAGE START MELDUNG DISPLAY DISPLAY RECTEST STARTED DISPLAY OPEN FILE OPEN EINGABE DISPLAY ENTER PARAMETER FOR FLMOPN DISPLAY UPON TERMOUT UPON TERMOUT UPON TERMOUT UPON TERMOUT UPON TERMOUT DISPLAY OPENMODE O INPUT 1 OUTPUT 2 INOUT 3 0UTIN PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO OPENMODE DISPLAY DDNAME ACCEPT DDNAME DISPLAY STATISTICS 0 0 1 YES PERFORM NUMERISCHE EINGABE FLAM V4 5 MVS Frankenstein Limes Access Method UPON TERMOUT UPON TERMOUT FROM TERMIN UPON TERMOUT 31 2015 by limes datentechnik gmbh Application examples MOVE Chapter 5 EINGABE NUM TO STATIS DISPLAY LASTPAR 0 5 1 0 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE CALL FLMOPN USING IF NOT OK THEN DISPLAY ERROR DURING OPEN OF EINGABE NUM TO LASTPAR
147. IME ASSEMBLED C amp SYSDATE amp SYSTIME Coe PROVIDED BY FLAM 1024 BYTES DDNAME DS CL8 DD NAME OF CURRENT FILE SATZPTR DS A RECORD POINTER FLAG DS X INDICATORS FOR PROCESSING SATZDA EQU 1 RECORD ALREADY PRESENT LOESCH EQU 2 DELETE RECORD END FLAM V4 5 MVS 73 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples TITLE 20 Chapter 5 5 4 2 EXK20 EXD20 user exits Since FLAM protects compressed files against manipulations by applying a checksum it is possible to provide encryptions within the user exits with a very low overhead Because the compressed data is already encrypted simple deterministic character swapping within the compressed data cannot be detected easily by an unauthorized user During decompression this character swapping if not redone by an authorized user will lead to a check sum error and the compressed file cannot be read The symmetric construction of the user exits allows to use the same routine for encryption as well as for decryption provided that algorithms are used that will restore the original data when executed twice This is the case with mutual character swapping Similar results can be obtained with translate tables for cyclic cycle length 2 character code exchange K gt lt ok ok ok ok ok ok oK ok ok ok ok ok R ok ak FK ok FK FK ok ok ok ok R OK ok FK ok ok FK OK COLUMBUS ASSEMBLER SEA kkk kk kk k k kk
148. IO IS AN EXAMPLE FOR AN USER I 0 MODULE TO CONNECT TO FLAM THE PROGRAM IS WRITTEN TO SUPPORT 2 DIFFERENT DATA SETS IN THE SAME MODULE DISTINGUISHED BY THE DD NAME DATBASE OR VIRONMENT DIVISION NFIGURATION SECTION SPECIAL NAMES SYSOUT IS OUT PUT DATA DIVISION WO 77 77 77 77 77 77 77 77 77 64 USER RKING STORAGE SECTION ALL OK S9 8 COMP VALUE 0 FUNCTION ERR S9 8 COMP VALUE 1 REC TRUNCATED PIC S9 8 COMP VALUE 1 END OF FILE 59 8 COMP VALUE 2 REC NOT FOUND PIC S9 8 COMP VALUE 5 NEW HEADER PIC S9 8 COMP VALUE 6 FILE EMPTY PIC S9 8 COMP VALUE 30 FILE NOT EXIST PIC S9 8 COMP VALUE 31 OPEN MODE ERR PIC S9 8 COMP VALUE 32 Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 77 FILE NAME ERR 77 EXAMPLE USER RECORD 72 VALUE Application examples PIC S9 8 COMP VALUE 39 THIS IS A USER RECORD FROM THE USER 1 0 77 EXAMPLE DATBAS RECORD PIC X 72 VALUE THIS IS DATA BASE RECORD FROM THE USER 1 0 59 8 COMP VALUE 80 ok ok ok ok ok k K ok ok X ok FK FK ok ok K ok K ok ok FK ok ok K ok FK K ok ok ok R FK FK ok ok ok ok ok FK ok OR OR ok OR 77 RECLEN LINKAGE SECTION 01 USER WORK 03 W DDNAME 03 W COUNTER 03 W ELSE 01 RETCO 01 OPENMODE 88 OP INPUT 88 OP OUTPUT 01 DDNAME 03 DDNAME 1 03 FILLER PIC X 8 PIC S9 7 COMP 3
149. It is a unique value for this FLAMFILE 19 The whole number of records and bytes for both input and output are recorded always true data without record length fields 12 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples 20 The compression ratio is recorded in percent 21 The CPU time used and the elapsed time are displayed 22 Compression was terminated without error To decompress all data with internal allocation by FLAM and change all output names from LIST to DEC only following information are necessary DECO EXEC PGM FLAM STEPLIB DD DSN USER FLAM LOAD DISP SHR FLPRINT DD SYSOUT FLAMPAR DD DECOMPRESS Start Decompression FLAMOUT lt LIST DEC gt All files have DEC as last qualifier FLAMFILE USER CMPLIST ADCO1 Name of first FLAMFILE SHOW NO Protocol inactivated CRYPTOKEY C THIS IS A KEY FOR ENCRYPTION SHOW ALL Protocol activated FLAM V4 5 MVS 13 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 OH X X OH OH 14 5 2 How to use the record level interface 5 2 1 Compression The sequential file INDAT with fixed record length is read using a COBOL program Each record is passed to the record level interface FLAM generates the compressed FLAMFILE that will be read in the next example IDENTIFICA
150. K ok ok FK ok OR OR ok OR 01 01 01 01 FLMOPN AREA 02 LASTPAR PIC S9 8 COMP SYNC VALUE 0 02 OPENMODE PIC S9 8 COMP SYNC VALUE 0 02 DDNAME PIC X 8 VALUE FLAMFILE 02 STATIS PIC S9 8 COMP SYNC VALUE 0 FLMGET FLMGKY AREA 02 DATALEN PIC S9 8 COMP SYNC 02 DATA AREA 04 PURE DATA PIC X 72 04 KEY DATA PIC 9 8 02 BUFFLEN PIC S9 8 COMP SYNC VALUE 80 SEARCH KEYS 02 S KEY 1 PIC 9 8 VALUE 10 02 S KEY 2 PIC 9 8 VALUE 30 02 S KEY 3 9 8 VALUE 0 STOP KEYS 02 STOP KEY 1 PIC 9 8 VALUE 20 02 STOP KEY 2 PIC 9 8 VALUE 40 02 STOP KEY 3 PIC 9 8 VALUE 9 PROCEDURE DIVISION MAIN SECTION MAIN OPEN FILE FLAMFILE THE FLAMFILE WAS BUILD BY THE FLAM UTILITY 50 IT HAS A FILE HEADER CONTAINING VALUES ABOUT THE ORIGINAL DATA SET THEN WE NEED ONLY THE FLMOPN CALL CALL FLMOPN USING FLAM FILEID FLAM RETCO LASTPAR OPENMODE DDNAME STATIS IF NOT FLAMOK FLAM V4 5 MVS 21 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 THEN DISPLAY OPEN ERROR UPON OUT PUT PERFORM FLAM ERROR GO TO MAIN END MAIN SEARCH 1 SEARCH FOR SPECIAL RECORD WITH KEY NO 1 MOVE S KEY 1 TO KEY DATA PERFORM GET KEY IF RECORD FOUND READ THE NEXT RECORDS IF FLAMOK THEN MOVE STOP KEY 1 TO NEXT KEY MOVE SPACE TO CONDITION FLAG PERFORM GET SEQ UNTIL SET END MAIN SEARCH 2 SEARCH
151. KY 84 Function FLMLCR 85 Function FLMLOC 86 Function FLMPHD 87 Function FLMPKY 89 Function FLMPOS 90 Function FLMPUH 91 Function FLMPUT 92 Function FLMPWD 93 Function FLMQRY 94 Function FLMSET 96 Function FLMUPD 98 User I O interface 99 Function USROPN 100 Function USRCLS 102 Function USRGET 102 Function USRPUT 103 Function USRGKY 103 Function USRPOS 104 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 4 subprogram FLAM V4 5 MVS Frankenstein Limes Access Method 3 4 7 3 4 8 3 5 3 5 1 3 5 2 3 5 3 3 5 4 3 5 5 3 6 3 7 3 8 3 8 1 3 8 2 3 8 3 4 1 4 1 1 4 1 2 4 2 4 2 1 4 2 2 4 3 4 3 1 4 3 2 4 4 4 5 4 5 1 4 5 1 1 4 5 1 2 4 5 2 Contents Function USRPKY Function USRDEL User exits Input original data EXK10 Output compressed data EXK20 Output original data EXD10 Input compressed data EXD20 Key management KMEXIT Bi serial compression BIFLAMK Bi serial decompression BIFLAMD Utilities FLAMCKV FLAMCTAB FLAMDIR Method of Operation Processing of file with the utility Compression Decompression File processing with the FLAM Compression Decompression Processing of records Compression Decompression User I O User exits Utility Compression with user exits EXK10 EXK20 Decompression with user exits EXD10 EXD20 Record level interface 104 105 106 106 108 110 112 114 116 118 124 124 127 129 US ON 10 14 14 14
152. LAM FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 9 The FLAM user interface FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 Content 9 1 9 2 9 2 1 9 2 2 9 2 3 9 3 9 4 9 5 9 6 9 7 9 8 9 8 1 9 8 2 9 8 3 9 9 FLAM V4 5 MVS Frankenstein Limes Access Method The FLAM user interface The FLAM user interface Summary FLAM panels Example for compression Example for decompression Information about a FLAMFILE FLCOMP FLDECO FLDIR FLDISP FLEDIT FLTOC Browse a FLAMFILE member 13 15 18 19 20 21 23 24 25 Information about a FLAMFILE member Decompress a FLAMFILE member FLCKV 28 30 1 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 2 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 FLAM V4 5 MVS Frankenstein Limes Access Method The FLAM user interface 9 FLAM user interface 9 1 Summary Everyday usage of FLAM is greatly simplified under TSO ISPF by calling procedures and panels CLIST procedures enable FLAM to be called directly when a file list is available panel 3 4 in ISPF Thus directory contents of a FLAMFILE can be displayed or files can be compressed decompressed viewed or edited FLAM can also be incorporated as a menu item in a selection p
153. LIST MAP DSN amp amp SYSUT1 SPACE 1024 200 40 SHR SHR EXEC PGM FLAMGEN PARM INFO HOLD MSGDISP MSGFILE DD DD DD SYSOUT DUMMY COPYRIGHT C 1989 1999 BY LIMES DATENTECHNIK LOG CX8 YES NO BLKMODE CODE INFO MAXBUFF 32768 MSGDISP MSGFILE YES EBCDIC YES E 512 DSN STEP1 STEPLIB DISP M0448 M0448 M0448 M0448 M0448 M0448 M0448 M0448 EXD10 EXK20 ODDN KEYLEN IRECSIZE OPENMODE OUTPUT FLAMOUT CLOSDISP REWIND ICLOSDIS REWIND TRUNCATE NO EXD20 FLAMDDN MSGDDN DSORG BLKSIZE IDSORG SEQUENT IRECDEL 00000000 FLAMFILE FLPRINT SEQUENT 6144 8 32752 SHR CLIMIT FILEINFO YES KEYDISP OLD MAXREC NAMEDISP NEW TRANSLAT EXK10 IDDN PARDDN 255 FLAMIN FLAMPAR RECFORM FIXBLK DEVICE DISK IRECFORM VARBLK IKEYPOS FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0448 FLM0428 FLM0410 FLM0428 FLM0440 IKEYLEN OCLOSDIS REWIND ORECSIZE 32752 OKEYLEN 8 FLAMFILE FLAMIN FLAMOUT MSGFILE PARFILE RECEIVED INFO YES MSGDISP MSGFILE PARDDN GENPAR DATA SET NAME JES2 J0B09128 10000101 RECEIVED MODE CX8 MAXBUFFER 1 FLAM COMPRESSION NORMAL END 8 IBLKSIZE 32760 ODSORG SEQUENT ORECDEL 00000000 OBLKSIZE 32760 IDEVICE DISK ORECFORMZVARBLK OKEYPOS ODEVICE DISK Messages of STEP2 Linkage Editor 8 Frankenstein Limes Access Method FLAM V4
154. LK USED PARAMETER RECSIZE 128 USED PARAMETER BLKSIZE 1280 OLD ODSN FLAM30 DAT FB OLD ODSORG SEQUENT OLD ORECFORM FIXBLK OLD ORECSIZE 80 OLD OBLKSIZE 3120 COMPRESSED FILE FLAM ID 0101 DATA SET NAME NULLFILE USED PARAMETER ACCESS LOG CPU TIME 0 0254 RUN TIME 0 0778 INPUT RECORDS BYTES 9 1 152 OUTPUT RECORDS BYTES 27 2 160 FLAM DECOMPRESSION NORMAL END 14 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 2 3 Information about a FLAMFILE The information of the compression file can be shown in 2 different ways The instruction SHOW DIR for decompression The protocol is to be stored into EXAMPLE LIST C Compress data set or member I FLAMFILE info D Decompress data set or member 0 Processing options Specify original data set or member blank for DUMMY DATA SET NAME Specify FLAMFILE data set or member blank for DUMMY DATA SET NAME gt DAT CMP Reuse existing data sets N Y N yes no Specify Listing for temporary blank for none DATA SET NAME gt example list FLAM Parameter gt show dir gt Submit F The protocol file is generated by default in TSO on the disc assigned by the system administrator in batch on the specified unit of the FLAMFILE in the FLAM option menu or on SYSDA FLAM V4 5 MVS 15 Frankenstein Limes Access Method 2015 by limes d
155. M The other possibility is to specify FLAM within the GENAT entry for the DD name of the file HIN ddname MODUL HZFLAM 77 2015 by limes datentechnik gmbh Application examples Chapter 5 78 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples By using this GENAT entry data is compressed or decompressed with each access automatically The necessary module HZFLAM is distributed by Ton Beller AG It must be linked to the FLAM modules For further information please refer to your distributor or contact directly the manufacturers Ton Beller GmbH or limes datentechnik gmbh FLAM V4 5 MVS 79 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 6 Installation FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 6 FLAM V4 5 MVS Frankenstein Limes Access Method Content 6 1 6 2 6 3 6 4 Installation Installation 3 FLAM licence 3 Component list 4 Installation of FLAM 5 Generate default values 5 1 2015 by limes datentechnik gmbh Installation Chapter 6 2 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 6 FLAM V4 5 MVS Frankenstein Limes Access Method Installation 6 Installation 6 1 FLAM licence FLAM is protected against unauthorized use The autho rized usage
156. M KSDS 350 K S Key Length gt up to 255 ONLY 800 K No Dir Blocks zzz PO data sets only 200 K Space Unit zzz TRKS BLKS TRKS CYLS or RECS 150 K Primary Quantity gt 256 in above units 250 K Secondary Quant gt in above units 500 K Volume Serial gt MVSWK1 550 K Generic Unit gt 3380 300 K i 100 K COMMAND gt 400 K 350 K EULER FLAMTSO2 DAT2 SEQ VB 260 3059 28500 K COMMAND gt If the decompression was regular it will be branched into the display menu Otherwise the FLAM error protocol will be displayed FLAM V4 5 MVS Frankenstein Limes Access Method 33 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 9 9 FLCKV This CLIST procedure is meant for the use in the panel 3 4 in ISPF file list FLCKV analyses VSAM KSDS FLAMFILE for propper settings see program FLAMCKV ch 3 8 1 It shows the procentual distribution of record lengths of the file and the number of records per FLAM matrix Please enter in the specific row FLCKV or FLCKV or only FLCKV Example Menu Options View Utilities Compilers Help DSLIST Data Sets Matching FLAMT Row 52 of 856 Command Enter to select action Message Volume FLAMT CMP ESDS VSAM FLAMT CMP ESDS DATA ZAWRK1 flckv FLAMT CMP KSDS VSAM FLAMT CMP KSDS
157. M KSDS FLAMFILE for propper settings to get the best performance when accessing the file Two messages are changed for a better log Both messages display the starting date and time of FLAM FLAM V4 5 MVS 2015 by limes datentechnik gmbh Documentation updates Documentation updates 8 FLAM V4 3 Changes in FLAM manual V4 2 from November 2007 by this supplement from October 2009 FLAM V4 3 FLAM V4 3 is a true superset of all previous versions SO any usage that has been working with earlier FLAM versions remains compatible with FLAM V4 3 MODE ADC as default Compression mode ADC is introduced as HW AES Wildcard Syntax New Utilities FLAM V4 5 MVS Frankenstein Limes Access Method default value That means that when the MODE parameter is omitted MODE ADC ist used FLAM has been able to decompress this mode on all other platforms for about 10 years so here should be no compatibility problem at all Remember It is not allowed to mix MODE VR8 and MODE ADC as with CX7 and CX8 VR8 Take care when using DISP MOD the DD statement of existing JCL and without the FLAM MODE parameter Then enter MODE VR8 the old default value as FLAM parameter or start with a new file FLAM uses CPACF hardware for AES encryption when present This is default for z10 systems and newer FLAM automatically checks the availability so no parameter other than CRYPTOMODE AES 15 needed Encryption by hardware
158. M0428 Repeat the command with corrected value assignment INPUT RECORDS BYTES Number of records and bytes compressed with FLAM None OUTPUT RECORDS BYTES Number of records and bytes in the compressed file FLAMFILE None CPU TIME CPU time consumed by FLAM for compression None RUN TIME Elapsed time for compression with FLAM This includes the time needed for tape mounting None DATA SET NAME Name of the file compressed with FLAM FLAMIN and of the compressed file FLAMFILE or of the parameter file FLAMPAR None 5 2015 by limes datentechnik gmbh Messages FLMO411 Explanation Action FLMO413 Explanation 15 16 20 21 22 23 24 25 26 40 41 42 43 49 98 Action FLM0414 Explanation 6 Frankenstein Limes Access Method Chapter 8 DATA SET ORGANIZATION NOT SUPPORTED The input file is not compressed because FLAM does not support this file organization Assign a file that is supported by FLAM COMPRESSION ERROR CODE Compression aborted Explanation of error code Record length greater than 32764 or negative Record length greater than matrix size 4 Illegal open mode Illegal size of matrix buffer Illegal compression method Illegal code in FLAMFILE Illegal MAXREC specification Illegal record length Illegal character code Module or table cannot be loaded Module cannot be called Module cannot be
159. MLINK Possible values DD NAME with max 8 characters gt DD NAME with max 7 characters decompression Default FLAMFILE Valid for compression decompression Note This parameter allows to change the DD name of the DD command For decompression gt before the DD name means the file contains a list of FLAMFILE names File name for compressed file Possible values File name with max 54 characters gt File name with max 53 characters DUMMY Default no name Valid for compression decompression Note Specifying the file name is an alternative to assigning the file by means of a DD statement FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAMIN FLAMI FLAMOUT FLAMO HEADER HE FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces The specification can contain a conversion rule for file names see chapter 3 1 4 The name can be specified in wildcard syntax for decompression before the file name means the file contains a list of files to be decompressed DUMMY acts like the DD statement DD DUMMY File name for the input file Possible values File name with max 54 characters gt File name with max 53 characters DUMMY Default no name Valid for compression Note Specifying the file name is an alternative to assigning the file by means of a DD statement The file name can be specified in wildcard syntax see chapter 3 1 4 A
160. NC Halfword CLn PIC X n CHARACTER n printable USAGE n characters DISPLAY XLn PIC X n CHARACTER n bytes The arrows define the direction of data flow gt the field must be filled by the calling program lt the field is filled by the called program the field is filled by the calling program as well as by the called program Identification Return code No error some usual codes for all return codes see chapter 8 1 9 10 11 12 13 14 15 FLAM V4 5 5 Frankenstein Limes Access Method Records truncated CLIMIT exceeded File is not a FLAMFILE FLAMFILE format error Record length error File length error Checksum error Original record is greater than 32764 bytes 61 2015 by limes datentechnik gmbh Interfaces X AXXXXXXXx X Cxxxxxxx X DXxxxxxxx X XFXXxxxx Il H l H H l H H H H lH H H H H H H H l H HT H H H H H H H H N H H n H i UJ names 62 Frankenstein Limes Access Method Chapter 3 Original record is greater than matrix 4 Invalid OPENMODE Invalid size of matrix buffer Invalid compression mode Invalid code in FLAMFILE Invalid MAXRECORDS parameter Invalid record length MAXSIZE Password error FLAMFILE is empty FLAMFILE is not assigned Invalid OPENMODE Invalid file type Invalid record format Invalid record length Invalid block length Invalid key position not 1 Invalid key length Invalid file name FLAM
161. NEXT SENTENCE ELSE IF REC NOT FOUND THEN DISPLAY KEY NOT FOUND KEY DATA UPON OUT PUT GO TO GET KEY 99 ELSE PERFORM FLAM ERROR GO TO GET KEY 99 GET KEY 3 DISPLAY KEY FOUND KEY DATA UPON OUT PUT DISPLAY DATA UPON OUT PUT DISPLAY DATA AREA UPON OUT PUT GET KEY 99 EXIT GET SEQ SECTION GET RECORDS IN SEQUENTIAL ORDER GET SEQ 1 CALL FLMGET USING FLAM FILEID FLAM RETCO DATALEN DATA AREA BUFFLEN GET SEQ 2 CHECK RETURNCODE IF FLAMOK THEN IF RECORD CONTAINS TO THE SET DISPLAY THE DATA ELSE SET THE SET END CONDITION FLAM V4 5 MVS 23 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 IF KEY DATA NEXT KEY THEN DISPLAY DATA AREA UPON OUT PUT ELSE MOVE SET END FLAG TO CONDITION FLAG ELSE SET THE SET END CONDITION ON ERROR DISPLAY THE FLAM RETURN CODE MOVE SET END FLAG TO CONDITION FLAG IF NOT END OF FILE THEN PERFORM FLAM ERROR GET SEQ 99 EXIT 24 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples 5 2 4 level Example for the entire record interface FLAMREC In this program you are able to call all functions of the record interface FLAMREC with all parameters and in any sequence This example thus contains all the file definitions and all the subprogram calls that can be used for the record level interface It can
162. ON TERMOUT DISPLAY KEYTYPE1 KEYTYPE1 ORIG UPON TERMOUT PERFORM VARYING KEYDESC INDEX FROM 1 BY 1 UNTIL KEYDESC INDEX KEYPARTS ORIG SET DIGIT TO KEYDESC INDEX ADD 1 TO DIGIT DISPLAY KEYPOS DIGIT KEYPOS ORIG KEYDESC INDEX UPON TERMOUT DISPLAY KEYLEN DIGIT KEYLEN ORIG KEYDESC INDEX UPON TERMOUT DISPLAY KEYTYPE DIGIT KEYTYPE ORIG KEYDESC INDEX UPON TERMOUT 48 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples END PERFORM END IF FLAM V4 5 MVS 49 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 5 3 User 1 0 interface 5 3 1 ASSEMBLER example This example sets up a DUMMY device that returns immediately the return code END OF FILE during read During write all records are accepted and always OK is returned without actually writing the records to a storage medium The functions USRGKY and USRPOS always deliver the return code INVALID KEY or INVALID POSITION The function USRDEL always delivers the return code INVALID FUNCTION This functionality is equivalent with a file assignment to DUMMY By filling in appropriate code into the sequences marked with three periods this routine can be used as a template for specific user written 1 routines FLAMUIO START TITLE FLAMUIO USER I O MODULE FOR FLAM kk ok ok ok ok ok R ok ak ok kk ak ok ok of ok af kk 3K
163. OUT FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO CHECKMODE SET KEY INDEX TO 1 SET REC INDEX TO KEYPOS1 ORIG PERFORM VARYING KEY IND DISP FROM 0 BY 1 UNTIL KEY IND DISP KEYLEN1 ORIG MOVE RECORD KEY BYTE KEY INDEX BYTE REC INDEX SET KEY INDEX UP BY 1 SET REC INDEX UP BY 1 END PERFORM PERFORM VARYING KEYDESC INDEX FROM 1 BY 1 UNTIL KEYDESC INDEX KEYPARTS ORIG SET REC INDEX TO KEYPOS ORIG KEYDESC INDEX PERFORM VARYING KEY IND DISP FROM 0 BY 1 UNTIL KEY IND DISP KEYLEN ORIG KEYDESC INDEX MOVE RECORD KEY BYTE KEY INDEX TO BYTE REC INDEX SET KEY INDEX UP BY 1 SET REC INDEX UP BY 1 END PERFORM END PERFORM CALL FLMFKY USING FLAMID RETCO KEY LEN REC ORD CHECKMODE IF NOT OK THEN DISPLAY ERROR IN FLMKY UPON TERMOUT PERFORM FEHLER MELDUNG MOVE RECORD KEY DISPLAY TO RECORD DISPLAY SCHREIBEN DISPLAY SEARCHED RECORD UPON TERMOUT DISPLAY RECORD DISPLAY UPON TERMOUT END IF DISPLAY DATA LENGTH UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO RECLEN DISPLAY DATA UPON TERMOUT MOVE SPACES TO RECORD DISPLAY ACCEPT RECORD DISPLAY FROM TERMIN CALL FLMPUT USING FLAMID RETCO RECLEN REC ORD IF NOT OK THEN DISPLAY ERROR IN FLMPUT UPON TERMOUT PERFORM FEHLER MELDUNG END IF SCHLUESSEL SCHREIBEN DISPLAY DATA LENGTH
164. OUT PERFORM FEHLER MELDUNG END IF LOESCHEN CALL FLMDEL USING FLAMID RETCO IF NOT OK DISPLAY ERROR IN FLMDEL UPON TERMOUT PERFORM FEHLER MELDUNG END IF SCHLUESSEL LESEN DISPLAY RECORD KEY UPON TERMOUT MOVE SPACES TO REC ORD ACCEPT RECORD KEY DISPLAY FROM TERMIN SET KEY INDEX TO 1 SET REC INDEX TO KEYPOS1 ORIG PERFORM VARYING KEY IND DISP FROM 0 BY 1 UNTIL KEY IND DISP KEYLEN1 ORIG MOVE RECORD KEY BYTE KEY INDEX BYTE REC INDEX SET KEY INDEX UP BY 1 SET REC INDEX UP BY 1 END PERFORM PERFORM VARYING KEYDESC INDEX FROM 1 BY 1 UNTIL KEYDESC INDEX KEYPARTS ORIG SET REC INDEX TO KEYPOS ORIG KEYDESC INDEX PERFORM VARYING KEY IND DISP FROM 0 BY 1 UNTIL KEY IND DISP KEYLEN ORIG KEYDESC INDEX MOVE RECORD KEY BYTE KEY INDEX BYTE REC INDEX SET KEY INDEX UP BY 1 SET REC INDEX UP BY 1 END PERFORM END PERFORM CALL FLMGKY USING FLAMID RETCO RECLEN REC ORD BUFLEN IF NOT OK THEN DISPLAY ERROR FLMGKY UPON TERMOUT PERFORM FEHLER MELDUNG MOVE RECORD KEY DISPLAY TO RECORD DISPLAY DISPLAY SEARCHED RECORD UPON TERMOUT DISPLAY RECORD DISPLAY UPON TERMOUT ELSE DISPLAY RECORD DISPLAY UPON TERMOUT END IF SCHLUESSEL POSITIONIEREN DISPLAY KEY LENTGH UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEY LEN DISPLAY RECORD KEY UPON TERMOUT MOVE SPACES TO REC ORD ACCEPT RECORD KEY DISPLAY FROM TERMIN DISPLAY CHECKMODE 0 1 2 UPON TERM
165. OW 15 OF 134 COMMAND gt SCROLL PAGE COMMAND NAME TRACKS USED XT DEVICE USER DAT F USER DAT FB FLDISP PARM ORECS 512 TRUNC YES USER DAT KSDS CMP DTA USER DAT KSDS IDX FLAM V4 5 MVS 23 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 9 7 FLEDIT This CLIST procedure is intended for use in panel 3 4 in ISPF file list but it can also be called directly In the latter case the file name is requested FLEDIT displays the contents of the file specified in the line and allows modifications to be made If a FLAMFILE exists it is decompressed into a temporary file and this file is then edited An uncompressed file is edited directly i e the command can be used for all files that can be edited same as function 2 EDIT in ISPF If editing is terminated by means of CANCEL the modifications made are not incorporated and the file selected is left as it was same as EDIT in ISPF The call can be supplemented with FLAM parameters for compression and decompression The command is entered in the same line as the file name to be edited FLEDIT or FLEDIT or with parameters FLEDIT PARM FLAM parameter Note If the decompressed temporary file is compressed again after having been edited the original file header information is lost The values of this temporary file are then used for the file header Without parameters a seq
166. One benefit of parallel splitting can consist in improved utilization of transmission capacities Also locally distributing FLAMFILE fragments may avoid unauthorized decompression without using encryption 2015 by limes datentechnik gmbh Documentation updates FLAMFILE examination The parameter CHECKFAST effects a formal MODE NDC FLAM Panels 12 Frankenstein Limes Access Method examination of the FLAMFILE This examination includes verifying all checksums and assuring completeness and integrity of the FLAMFILE These tests are performed without decompressing it Specifying an additional parameter CRYPTOKEY causes FLAM to also decrypt the FLAMFILE and check all MACs The same tests are performed when the parameter CHECKALL is specified In addition the FLAMFILE is decompressed without storing the decompressed data With encrypted FLAMFILEs the encryption key must be provided Data compression can be suppressed using MODE NDC Data are only formatted and if requested encrypted This saves CPU time with data that do not compress efficiently e g FLAMFILEs or compressed image files The same un features are available as for compressed ata MODE NDC is downwards compatible with FLAM V3 0 The interactive FLAM panels have been extended to support the newly added encryption options In particular the FLTOC Overview allows specifying decompression parameters see ch 9 8 1 FLAM V4 5 MVS 2015 by limes date
167. PHILIPP REIS PASSAGE 2 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples D 61381 FRIEDRICHSDORF TS TEL 06172 5919 0 FAX 06172 5919 39 K ok ok ok ok gt lt ok ok ok ok ok ok ok ok K ok ok FK K K K ok KR K ok ak ok ok KR ok ok R ok ok K ok ak ok ok ok FK ok KR FK ok ok K ok ok K ok FK ok ok ok K ok FK ok ok FK ok K K FK R ok ok ok OR INTERFACE R1 POINTS TO PARAMETER LIST O RI A FUNCTION CODE 4 RI A RETURN CODE B RI A A RECORD RECORD POINTER 12 RI A RECORD LENGTH 16 R1 A WORK AREA NEW WITH FLAM V2 5 gt lt ok ok ok ok ok ok K ok FK FK FK FK FK FK FK FK FK FK ak ok ok KR ok ok FK ok ok K ok ak FK ok ok FK ok ok OK ok ok ok ok ok K K ok ok ok ok K FK FK ok ok FK ok K FK ok OR ok ok ok AK EJECT STM R14 R12 12 R13 LR R12 R15 USING SEPARATE R12 USING WORKAREA R2 LA 15 0 L R3 0 R1 CLC 0 4 R3 FCSATZ BE SATZUEB CLC 0 4 3 FCOPEN SAVE REGISTERS ENTRY ADDRESS USED AS PROGRAM BASE ASSIGN BASE REGISTER BASE REGISTER WORK AREA INITIALISE RETURN CODE WITH 0 LOAD A FC PASS RECORD YES OPEN NO AT OPEN TIME RESET WORK AREA FIELDS L R2 16 R1 MVI FLAG X 00 B RET SATZUEB DS OH RECORD WAS PASSED L R10 8 R1 L R4 0 R10 L R11 12 R1 L R5 0 R11 LA R9 0 R5 R4 L R2 16 R1 FLAG SATZDA BNO BEGINN TM
168. Q FB 512 23040 5050 KB 205 SEQ U 0 6144 3450 KB 205 SEQ U 0 6144 3450 KB In each row the filename the creating system its organization data format recordsize blocksize and the amount of space are printed If the FLAMFILE was created on a system other than z OS the space column is empty FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 4 Method of Operation FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 subprogram FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation Content 4 Method of Operation 3 4 1 Processing of file with the utility 4 4 1 1 Compression 4 4 1 2 Decompression 5 4 2 File processing with the FLAM 6 4 2 1 Compression 6 4 2 2 Decompression 7 4 3 Processing of records 8 4 3 1 Compression 8 4 3 2 Decompression 9 4 4 User I O 10 4 5 User exits 14 4 5 1 Utility 14 4 5 1 1 Compression with user exits EXK10 EXK20 14 4 5 1 2 Decompression with user exits EXD10 EXD20 15 4 5 2 Record level interface 16 4 5 2 1 Compression with user exit EXK20 16 4 5 2 2 Decompression with user exit EXD20 17 4 6 Bi serial compression 18 4 7 Bi serial decompression 19 4 8 The FLAMFILE 20 4 8 1 General description 20 4 8 2 Group file 25 4 9 Heterogeneous data exchange 26 4 10 Code Conversion 28 4 11 Transformation of file formats 29 1 2015 by limes datentechnik gmbh Method of Operation C
169. R ok OK ok ok K OR R SAVE REGISTER AND LOAD PROGRAM REGISTER STM LR R10 R LOAD PARAMETER LM 15 R14 R12 12 R13 R1 R2 0 R1 ADDRESS WORK AREA OH OH RETURN LR R12 R 1 USING WORKAREA R12 LA ST LM BR OPEN DATA SET RO OK RO 0 R2 SET RETURN CODE TO 0 ERROR R14 R12 12 R13 R14 FLAM V4 5 MVS Frankenstein Limes Access Method 53 2015 by limes datentechnik gmbh Application examples RELEASE WORK AREA REGISTER DROP R12 Chapter 5 ok ok ok gt ok ok ok ok ok k ok ak K ok FK ok ok ok R ok ak ok ok ok ok ok K ok ok K ok ok OR ok ok K ok ok FK ok KR ok ok ok K ok ok ok ok R R FK FK ok ok FK ok K OR OR ok ok ok OR OR R LOCAL CONSTANTS kok ok ok ok ok ok ok gt ok ok ok ok ok FK FK FK K ok FK FK ok ok ok FK ok ok K ok ak ok R ok FK ok ok FK ok KR ok ok K KR ok ok ok ok R K ok FK ok ok FK ok R OR OR OR ok ok OR OR R LTORG DROP R10 TITLE USRCLS USRCLS DS 00 ENTRY USRCLS USING USRCLS R10 ok ok ok gt ok ok ok ok ak FK ok ak FK ok FK K ok R FK ok ak ok ok FK ok KR K ok ak R R ok K ok ok OK ok KR ok ok K K ok ok ok ok R K FK FK ok ok FK ok FK OR OR R ok OK OR OR R NAME USRCLS FUNCTION CLOSE DATA SET PARAMETER 1 lt gt WORKAREA 256F WORK AREA 2 lt RETCO F RETURN CODE 0 NO ERROR 1 UNSUPPORTED FUNCTION
170. RECORD LENGTH MAX RECORD LENGTH OR 0 LENGTH DELIMITER OR RDW BLOCK SIZE UNBLOCKED STRUCT KEY DESCRIPTION Frankenstein Limes Access Method OPTIONS NO DUPLICATE KEYS DUPLICATES ALLOWED NUMBER OF KEY PARTS 1 BYTE OF 1 KEYPART LENGTH OF 1 KEYPART DATA TYPE OF 1 KEYPART PRINTABLE CHARACTER BINARY 1 BYTE OF 8 KEYPART FLAM V4 43 MVS 2015 by limes datentechnik gmbh XoX Xo 0X Xo X X X X X Chapter 5 X X X X 0X Chapter 5 10 11 12 13 14 15 16 17 OA X X X 0X X X KE KE YLEN8 F 1 255 YTYPE8 F 0 1 DEVICE 7 15 23 RECDELIM XL F PADCHAR 1 C PRCTRL OSDISP F CESS F OONHOFNHO F Application examples LENGTH OF 8 KEYPART DATA TYPE OF 8 KEYPART PRINTABLE CHARACTER BINARY DEVICE TYPE USER DEFINED RECORD DELIMITER PADDING CHARACTER PRINTER CONTROL CHARACTER NONE ASA CHARACTER MACHINE SPECIFIC CHARACTER CLOSE PROCESSING REWIND UNLOAD RETAIN LEAVE ACCESS METHOD LOGICAL RECORD BY RECORD PHYSICAL LENGTH OF DATA SET NAME OR BUFFER FOR NAME DATA SET NAME DATA SET NAME SHOULD BE RETURNED IF 1 BYTE OF GIVEN NAME IS C OR A DIFFERENT DATA SET IS ALLOCATED AH OH OH Xo X OH Xo X X X kok K ok ok gt lt ok ok ok gt ok ok ok ok FK FK FK K FK FK FK FK FK FK ok ok ok ok ok ok R ok ok K ok ak FK ok ok K ok FK FK ok ok K ok ok K ok ok ok ok ok K ok FK ok ok FK ok K OR
171. RM KEYDESC EINGABE MOVE KEYDESC ORIG TO KEYDESC END IF END IF DISPLAY CLOSDISP O REWIND 1 UNLOAD UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO CLOSDISP DISPLAY DEVICE O DISK 1 TAPE UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO DEVICE DISPLAY LASTPAR 0 5 1 NO UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO LASTPAR CALL FLMOPD USING FLAMID RETCO LASTPAR NAMELEN FILENAME DSORG RECFORM MAXSIZE RECDELIM KEYDESC BLKSIZE CLOSDISP DEVICE IF NOT THEN DISPLAY ERROR DURING OPEN OF FILENAME UPON TERMOUT PERFORM FEHLER MELDUNG DISPLAY UPON TERMOUT DISPLAY PROGRAM ABNORMAL END UPON TERMOUT STOP RUN ELSE DISPLAY NAMELEN NAMELEN UPON TERMOUT DISPLAY FILENAME FILENAME UPON TERMOUT DISPLAY DSORG DSORG UPON TERMOUT DISPLAY RECFORM RECFORM UPON TERMOUT DISPLAY MAXSIZE MAXSIZE UPON TERMOUT IF DSORG gt 0 AND KEYPARTS gt 0 THEN DISPLAY KEYDESC DER FLAMFILE UPON TERMOUT DISPLAY KEYFLAGS KEYFLAGS UPON TERMOUT DISPLAY KEYPARTS KEYPARTS UPON TERMOUT DISPLAY KEYPOS1 051 UPON TERMOUT DISPLAY KEYLEN1 KEYLENI UPON TERMOUT DISPLAY KEYTYPE1 KEYTYPE1 UPON TERMOUT FLAM V4 5 MVS 33 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples 34 Frankenstein Limes Access Method OPEN NEXT OPF Chapter 5 END IF DISPLAY BLKSIZE BLK
172. S A MSGLEVEL 1 1 MSGCLASSzX NOTIFY USER pede JOB FOR DECOMPRESSION WITH FLAM 2 DECOMP EXEC PGM FLAM PARM DECO 3 STEPLIB DD DSN USER FLAM LOAD DISP SHR 4 FLPRINT DD SYSOUT 5 FLAMFILE DD DSN USER DAT CMP DISP SHR 6 FLAMOUT DD DSN USER DAT DEC DISP NEW CATLG DELETE SPACE TRK 1 1 UNIT SYSDA 1 Job card 2 FLAM call for decompression 3 Assignment of FLAM module library 4 Assignment of protocol file 5 Assignment of FLAMFILE 6 Assignment of output file The output file is not catalogued DISP NEW Record and block length are generated according to the original file no DCB specification in JCL FLAM V4 5 MVS 7 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 The corresponding protocol i FLMO448 COPYRIGHT 1989 2005 BY LIMES DATENTECHNIK TEST 2006182 2 FLM0428 RECEIVED DECO 3 FLMO450 FLAMD VERSION 4 1A00 ACTIVE 4 FLM0460 DATA SET NAME USER DAT CMP FLM0465 USED PARAMETER MODE VR8 FLMO465 USED PARAMETER VERSION 200 FLM0465 USED PARAMETER MAXBUFF 4096 FLMO465 USED PARAMETER CODE EBCDIC FLMO465 USED PARAMETER 05086 SEQUENT FLM0465 USED PARAMETER RECFORM FIXBLK 5 FLMO482 OLD ODSN USER DAT FB FLMO482 OLD ODSORG SEQUENT FLM0482 OLD ORECFORM FIXBLK FLMO482 OLD ORECSIZE 80 FLM0482 OLD OBLKSIZE 3120 6 FLMO469 COMPRESSED FILE FLAM
173. SEQ FBM 133 3059 150 K FLAMT FLAMTS LIST SEQ F 133 133 400 K FLAMT FLAMTS01 DAT1 SEQ V 260 264 350 K FLAMT FLAMTS02 DAT2 SEQ VB 260 23440 28500 K COMMAND gt Input of I in line FLAMT ADOO01NP CX8 FLAMT ADOOOINP LIST 5 0 13 3059 300 K I FLAMT AD0001NP CX8 SEQ FB 80 23440 50 K FLAMT ADO191NP LIST SEQ FBM 133 3059 500 K will give out more information about this FLAMFILE member FLAMFILE TOC DAT CMP Row 1 of 2170 recl Blksi Space 33 3059 300 I Data Set was compressed on MVS 0 23440 50 K 1 33 3059 500 K Organization gt PS 33 3059 250 K FLAM V4 5 MVS 29 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM user interface Chapter 9 Record Format gt FB 1 33 3059 150 i Record Length gt 80 33 3059 50 i Block Size gt 23440 33 133 350 Rel Key Pos gt 33 133 12800 Key Length gt 1 33 133 3150 No Dir Blocks gt 33 133 1250 Space Amount gt 50 KB 1 TRKS 33 133 500 i 33 3059 550 K 33 133 11300 i FLAMT FLAMTADC LIST SEQ FBM 133 3059 100 FLAMT FLAMTS LIST SEQ F 133 133 400 i FLAMT FLAMTS01 DAT1 SEQ V 260 264 350 FLAMT FLAMTS02 DAT2 SEQ VB 260 23440 28500 K COMMAND gt 30 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 8 3 Decompressio
174. SEQ FBM 133 3059 500 K FLAMT AD0192NP LIST SEQ FBM 133 3059 250 K FLAMT EXD4T03 LIST SEQ FBM 133 3059 150 K FLAMT EXKINUL LIST SEQ FBM 133 3059 50 K FLAMT EXK3TO4 LIST SEQ F 133 133 350 K FLAMT FLAM CMP SEQ FB 512 23552 12800 K FLAMT FLAMDIR LIST SEQ FBM 133 3059 200 K FLAMT FLAMFLN LIST SEQ F 133 133 3150 K FLAM V4 5 MVS 25 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface FLAMT FLAMT FLAMT FLAMT FLAMT FLAMT FLAMT K FLAMT K FLAMG001 LIST FLAMG002 LIST FLAMHELP LIST FLAMNUC LIST FLAMTADC LIST FLAMTS LIST FLAMTSO1 DAT1 FLAMTS02 DAT2 COMMAND gt 26 Frankenstein Limes Access Method SEQ SEQ SEQ SEQ SEQ SEQ SEQ SEQ FBM VB 133 133 133 133 133 133 260 260 Chapter 9 3059 1250 133 500 133 550 133 11300 3059 100 133 400 264 350 23440 28500 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 8 1 Browse a FLAMFILE member FLAMFILE TOC DAT CMP Row 1 of 2170 MODE VR8 MAXBUFFER 64 FLAMCODE EBCD Original Data Set Name Dsorg Recfm Lrecl Blksi Space FLAMT AD0001NP LIST SEQ FBM 133 3059 300 K FLAMT AD0001NP CX8 SEQ FB 80 23440 50 K FLAMT AD0191NP LIST SEQ FBM 133 3059 500 K FLAMT AD0192NP LIST SEQ FBM 133 3059 250 K FLAMT FLAMTS01 DAT1 SEQ V 260 264 350 K FLAMT FLAMTS02 DAT2 SEQ VB 260 23440 28500 K COMMAND
175. SIGNAT1 TO HEXDATA WORT PERFORM HEX TO CHAR MOVE CHARDATA TO SIGNAT1 DIS MOVE ZERO TO HEXDATA MOVE SIGNAT2 TO HEXDATA WORT PERFORM HEX TO CHAR MOVE CHARDATA TO SIGNAT2 DIS DISPLAY SIGNATURE SIGNATUR DIS UPON TERMOUT PASSWORD GEBEN DISPLAY PASSWORD LENGTH UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO PWDLEN DISPLAY PASSWORD UPON TERMOUT MOVE SPACES TO CRYPTOKEY ACCEPT CRYPTOKEY FROM TERMIN CALL FLMPWD USING FLAMID RETCO PWDLEN CRYPTOKEY IF NOT OK THEN DISPLAY ERROR IN FLMPWD UPON TERMOUT PERFORM FEHLER MELDUNG END IF SETPARM OPD DISPLAY ENTER PARAMETER UPON TERMOUT DISPLAY 1 SPLITMODE 2 SPLITSIZE 3 SPLITNUMBER UPON TERMOUT DISPLAY 4 PRIM SPACE 5 SECOND SPACE UPON TERMOUT DISPLAY 6 VOLUME 7 UNIT UPON TERMOUT DISPLAY 8 DATA CLASS 9 STORAGE CLASS 10 MGT CLASS UPON TERMOUT FLAM V4 5 MVS 45 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Frankenstein Limes Access Method DISPLAY 11 DISP STATUS 12 DISP NORMAL 13 DISP ANORM UPON TERMOUT DISPLAY 2001 CRYPTOMODE 2002 SECUREINFO UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO FLMSET PARAM DISPLAY ENTER VALUE IF FLMSET PARAM 6 OR FLMSET PARAM gt 10 THEN PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO FLMSET VALUE BIN ELSE ACCEPT FLMSET VALUE CHAR END IF CALL FLMSET USING FLAMID FLMSET RC
176. SIZE UPON TERMOUT DISPLAY CLOSDISP CLOSDISP UPON TERMOUT DISPLAY DEVICE DEVICE UPON TERMOUT END IF ELSE IF FLMOPF THEN MOVE 1 TO LASTPAR MOVE DDNAME TO FILENAME ELSE DISPLAY FUNKTION UNKNOWN UPON TERMOUT GO TO END IF END IF IF NOT LAST PARAMETER THEN DISPLAY PLEASE SELECT FUNCTION FLMSET FLMOPF UPON TERMOUT ACCEPT FUNKTION FROM TERMIN IF FLMSET THEN PERFORM SETPARM OPF GO TO OPEN NEXT OPF END IF IF FLMOPF THEN DISPLAY UPON TERMOUT DISPLAY ENTER PARAMETER FOR FLMOPF UPON TERMOUT IF OPEN OUTPUT OR OPEN OUTIN THEN DISPLAY FLAMCODE EBCDIC 1 ASCII UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO FLAMCODE DISPLAY COMPMODE CX8 1 CX7 2 VR8 3 ADC UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO COMPMODE DISPLAY MAXBUFF 2621440 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO MAXBUFF DISPLAY HEADER 0 0 1 5 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO HEADER DISPLAY MAXREC 1 4095 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO MAXREC DISPLAY KEYDESC FUER ORIGINALDATEI UPON TERMOUT PERFORM KEYDESC EINGABE FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples DISPLAY BLKMODE O UNBLK 1 BLK UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO BLKMODE DISPLAY EXK20 UPON TERMOUT ACCEPT EXK20 FROM TERMIN IF OPEN OUTIN THEN
177. So it is automatically error checked Transfer this file in binary mode to host and use it as input for FLAMCTAB An 8 byte module name is used as a parameter in the EXEC statement Returncodes are the same as in FLAM The LOADIib FLAMLIB requires module FLAMTR11 from the FLAM distribution FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces Example TAB EXEC PGM FLAMCTAB PARM TRAEDOS STEPLIB DD DSN FLAM LOAD DISP SHR FLPRINT DD SYSOUT FLAMLIB DD DSN FLAM LOAD DISP SHR TABLE DD DSN USER TABLE DAT DISP SHR and the protocol FLPRINT FLAMCTAB a program of FLAM utilities Copyright C 2014 by limes datentechnik gmbh 10 17 29 8 27 2014 Creates a translation table module from an 256 byte input file loadable by FLAM TABLE file USER TABLE TAB To create Member TRAEDOS in LOAD library FLAMLIB DONE SUCCESSFULLY There translation table module TRAEDOS 15 created The input data are stored in the file USER TABLE DAT the library FLAM LOAD is the STEPLIB library as well as FLAMLIB The protocol is printed directly to the JES log DONE SUCCESSFULLY means that the table module was created and stored The input data were exactly 256 bytes no warnings no error messages Now FLAM is able to use this module by entering the parameter TRANSLATE TRAEDOS when FLAMLIB is concatenated to STEPLIB in the Job Take care if FLAMLIB is integrated in the LINKLIST chain of the system
178. TES OVERFLOW COUNTER FOR ORIGINAL BYTES NUMBER OF COMPRESSED RECORDS NUMBER OF COMPRESSED BYTES OVERFLOW COUNTER FOR COMPRESSED BYTES LENGTH OF SYSTEM SPECIFIC ATTRIBUTES SYSTEM SPECIFIC ATTRIBUTES NUMBER OF KEY PARTS FIRST BYTE OF FIRST PART LENGTH OF FIRST PART FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method KEYTYPE1 DS KEYPOS2 DS KEYLEN2 DS KEYTYPE2 DS KEYPOS3 DS KEYLEN3 DS KEYTYPE3 DS KEYPOS4 DS KEYLEN4 DS KEYTYPE4 DS KEYPOS5 DS KEYLEN5 DS KEYTYPE5 DS KEYPOS6 DS KEYLEN6 DS KEYTYPE6 DS KEYPOS7 DS KEYLEN7 DS KEYTYPE7 DS KEYPOS8 DS KEYLEN8 DS KEYTYPE8 DS RECLEN DS RECPTR DS SAVEAREA SAVEAREA DS END 18F Interfaces DATA TYPE OF FIRST PART FIRST BYTE OF LAST PART LENGTH OF LAST PART DATA TYPE OF LAST PART 73 2015 by limes datentechnik gmbh Interfaces Parameters 1 FLAMID F Calls A m T 2 lt 43 49 52 57 3 3 1 Function The function FLMOPN must be called first The compressed file is assigned to the program and the processing mode is defined Identification Must be specified in all following without any modifications Return code see ch 8 No error Error during memory request File is not a FLAMFILE FLAMFILE format error Record length error File length error Checksum error Invalid OPENMODE Invalid size of ma
179. TION DIVISION PROGRAM ID SAMPLEIC LIMES DATENTECHNIK GMBH SAMPLE1C READS A SEQUENTIAL DATA SET EVERY RECORD IS GIVEN TO FLAM FOR COMPRESSION FLAM MANAGES THE FLAMFILE ITSELF IN THIS EXAMPLE THE FLAMFILE CAN BE ANY DATA SET IN MVS BS2000 VSAM DOS VSE A SEQUENTIAL FILE IS READ EACH RECORD IS PASSED TO FLAM FOR COMPRESSION FLAM HANDLES ITSELF THE COMPRESSED FILE ENVIRONMENT DIVISION CONFIGURATION SECTION SPECIAL NAMES SYSOUT IS OUT PUT INPUT OUTPUT SECTION FILE CONTROL INDAT ASSIGN TO SYS010 S DATAIN ACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIAL DATA DIVISION FILE SECTION RECORD CONTAINS 80 CHARACTERS RECORDING MODE IS F INDAT RECORD 02 FILLER PIC X 80 WORKING STORAGE SECTION 77 OPERATION PIC X 6 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 01 FLAM PARAMETER USED FOR EVERY FLAM CALL 02 02 02 USED 02 02 02 02 USED 02 02 PROCED MAIN S OPEN I FILE ID PIC RETCO PIC 59 8 59 8 88 FLAMOK VALUE 0 Application examples COMP SYNC COMP SYNC RETCO X REDEFINES RETCO 03 RETCO 1 PIC X 88 NODMS ERROR VALUE 03 RETCO 2 4 PIC XXX FOR FLAM OPEN LASTPAR OPENMODE PIC DDNAME PIC STATIS PIC FOR FLAM PUT DATLEN PIC DATABYTES PIC URE DIVISION ECTION NPUT DATA 59 8 59
180. TVAL DISP NEW VALUE 1 88 SETVAL DISP OLD VALUE 2 88 SETVAL DISP SHR VALUE 3 88 SETVAL DISP MOD VALUE 4 88 SETVAL DISP DEL VALUE 1 88 SETVAL DISP KEEP VALUE 2 88 SETVAL DISP CATLG VALUE 3 88 SETVAL DISP UNCAT VALUE 4 07 FILLER PIC X 4 x VARIABLES FOR DISPLAYING THE RETURNCODE 77 LEN RETCO PIC S9 8 COMP SYNC VALUE 4 01 RETCO HEX 05 FILLER PIC X 4 05 RETCO DISP PIC X 4 VARIABLES FOR INPUT AND DISPLAY NUMBERS 01 EINGABE 05 BYTE EIN PIC X 1 OCCURS 9 TIMES INDEXED BY EIN INDEX 01 EINGABE NUM PIC S9 8 01 EINGABE RED REDEFINES EINGABE NUM 05 BYTE RED PIC X 1 OCCURS 8 TIMES INDEXED BY RED INDEX FLAM V4 5 MVS 29 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 SELECTED FUNCTION 01 FUNKTION PIC X 8 88 FLMOPN VALUES FLMOPN OPN 88 FLMOPD VALUES FLMOPD OPD 88 FLMOPF VALUES FLMOPF OPF 88 FLMCLS VALUES FLMCLS CLS 88 FLMFLU VALUES FLMFLU FLU 88 FLMEME VALUES FLMEME EME 88 FLMGET VALUES FLMGET GET 88 FLMGTR VALUES FLMGTR GTR 88 FLMGKY VALUES FLMGKY GKY 88 FLMFKY VALUES FLMFKY FKY 88 FLMGRN VALUES FLMGRN GRN 88 FLMFRN VALUES FLMFRN FRN 88 FLMPUT VALUES FLMPUT PUT 88 FLMPKY VALUES FLMPKY PKY 88 VALUES FLMIKY IKY 88 FLMPOS VALUES FLMPOS POS 88 FLMDEL VALUES FLMDEL DEL 88 FLMUPD VALUES FLMUPD UPD 88 FLMPHD VALUES
181. This implies that an empty file longer must be treated as a special case The usual problems with empty files in the job command language and during file transfer belong to the past With a parameter it can be specified if and which file header shall be created during compression The decompression function can be used to only print out the file header without doing the actual decompression This allows a quick information about the origin of the compressed file 26 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation One block header is created per matrix This block header contains all the necessary information for proper decompression even without a file header However in this case the user has to specify the target format via parameter JCL or catalogue entry if another format than sequential and variable record length shall be created The block header contains also all information that is needed by the FLAM nucleus for decompression e g MODE version matrix size etc This information guarantees the upward compatibility of FLAM The individual records of the FLAMFILE contain their length redundantly If the FLAMFILE has variable record length an additional length field of 2 or 4 bytes length is part of each record In MODE CX7 standard record separator characters of length 1 or 2 are us
182. Utility ISR30000 TRANS TRUNC amp ZCMD 1 PGM ISRUDA PARM ISRUDA1 2 PGM ISRUDA PARM ISRUDA2 3 PGM ISRUMC 4 PGM ISRUDL PARM ISRUDLP 5 PGM ISRURS 6 PGM ISRUHC 8 PGM ISRUOLP 9 PANEL ISPUCMA 10 PGM ISRQCM PARM ISRQCMP 11 PGM ISRFMT 12 PGM ISRSSM 13 PGM ISRSEPRM NOCHECK 14 PGM ISRSFM 15 CMD EXEC pref CLIST FLAM 1 1 LE amp ZTRAIL TRAIL END If this modified panel is concatenated by using a transparent file DD name ISPPLIB the FLAM start menu can be called with function 3 15 FLAM V4 5 MVS 5 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 FLAM start panel After the TSO EXEC command or 3 15 was entered in the command line the FLAM start panel will be displayed C Compress data set or member FLAMFILE info I D Decompress data set or member 0 Processing options Specify original data set or member blank for DUMMY DATA SET NAME gt Specify FLAMFILE data set or member blank for DUMMY DATA SET NAME gt Reuse existing data sets N Y N yes no Specify Listing for temporary blank for none DATA SET NAME FLAM Parameter gt Submit F F B Foreground or Batch By specifying an option the function is chosen compression C decompression D display of informations from the FLAMFILE 1 jump to another panel for
183. V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 FLAMID F 2 lt RETCO F 0 1 3 NAMLEN F 0 4 FILENAME F m o 2 0 o 9 17 6 RECFORM F 0 8 16 1 9 17 fields 7 gt RECSIZE F 0 32760 FLAM V4 5 MVS Frankenstein Limes Access Method 1 2 10 18 3 11 19 5 13 21 6 14 22 2 10 18 3 11 19 Interfaces 3 3 19 Function FLMPHD The function FLMPHD Put File Header is only allowed during compression The file header describes the file format for the original records following If multiple files are compressed into one FLAMFILE each original file may have its own file header created with FLMPHD FLAM returns the header information during decompression if required FLMGHD The function FLMPHD is only allowed if HEADER 1 was specified with FLMOPF Using SECUREINFO YES function FLMPHD is mandatory The FLAM utility uses these data during decompression to build the output file FLAMOUT Note The parameter in FLMPHD control also the construction of an index sequential FLAMFILE On DSORG 0 sequential data a record number is created and used as a record key on DSORG 1 index sequential the original key is used Identification Return code No error Invalid identification or function Length of file name Don t use file name File name of original file File format sequent
184. WE ONLY USE 80 BYTE WE ONLY SUPPORT OPEN INPUT IN THIS EXAMPLE CHECK THE OPEN MODE IF OP INPUT THEN NEXT SENTENCE ELSE MOVE OPEN MODE ERR TO RETCO DISPLAY USER I O CANNOT WRITE TO DDNAME UPON OUT PUT GO TO USROPN MAIN 99 FOR FURTHER USE WE STORE THE DD NAME IN THE GIVEN WORKAREA MOVE DDNAME TO W DDNAME WE SUPPORT DIFFERENT DATA SETS CHECK FOR DDNAME DATBASE OR THE FIRST 4 BYTE FOR USER IF DDNAME DATBASE THEN PERFORM OPN DATBASE ELSE IF DDNAME 1 USER THEN PERFORM OPN USER ELSE MOVE FILE NAME ERR TO RETCO DISPLAY USER I O DOES NOT SUPPORT DDNAME UPON OUT PUT USROPN MAIN 99 GO BACK TO FLAM GO BACK OPN DATBASE SECTION OPEN ROUTINE FOR A DATA BASE OPN DATBASE 1 HERE YOU HAVE TO PROCESS THE OPEN FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 INITIALISE COUNTER FIELD IN WORK AREA MOVE ZERO TO W COUNTER WE ONLY DISPLAY A MESSAGE DISPLAY USER I 0 OPEN FOR DATABASE IS UPON OUT PUT OPN DATBASE 90 SET THE RETURNCODE MOVE ALL OK OPN DATBASE 99 EXIT TO RETCO OPN USER SECTION OPEN ROUTINE FOR THE OTHER EXAMPLE OPN USER 1 HERE YOU HAVE TO PROCESS THE OPEN INITIALISE COUNTER FIELD IN WORK AREA MOVE ZERO TO W COUNTER WE ONLY DISPLAY MESSAGE DISPLAY USER I 0 OPEN FOR DDNAME UPON OUT PUT OPN USER 90 SET THE RETURN CODE MOVE
185. X OFXXXXXX ELSE OR DMS ERROR CODE OH ok ok gt FK ok ok ak FK ok ok ok ok R FK ok ok ok R OR ok ok K ok ok OK ok ok K ok K K ok ok ok ok R K FK FK ok ok FK ok K R R R ok ok OR OR ok OH sec 54 SAVE REGISTER AND LOAD PROGRAM REGISTER STM R14 R12 12 R13 LR R10 R15 LOAD PARAMETER LM R1 R2 0 R1 ADDRESS WORK AREA LR R12 R1 USING WORKAREA R12 CLOSE DATA SET SET RETURN CODE TO 0 ERROR LA RO OK ST RO 0 R2 RETURN LM R14 R12 12 R13 BR R14 RELEASE WORK AREA REGISTER Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 DROP R12 Application examples gt k gt lt ok ok ok ok ok ok ok ok ok ok ok ok FK ok ak FK ok FK FK ok ok FK ok ok ok ok ok ok ok K KR ok ok K ok KR KR ok ok K ok K KR ok ok ok ok R K FK FK ok ok FK ok ok R R R OK OK K FK R LOCAL CONSTANTS gt k gt lt ok ok ok ok ok ok gt ok ok ok ok ok k ok ak FK ok FK FK ok R FK ok ok ok ok ok FK ok ok K ok ok FK ok ok K ok K KR ok ok ok ok R K FK FK ok ok FK ok K R R R ok OK OR OR R LTORG DROP R10 TITLE USRGET USRGET DS OD ENTRY USRGET USING USRGET R10 FK ok ok FK ok ok ok ok ok FK ok ok ok K ok ok FK ok K K ok ok KR ok FK ok ok R K ok FK ok ok ok ok FK OR R R ok
186. a ok ok A ak ook ok leak ak a ak ok ok fe oaf kok ak ak le ao ak ae aaf ak eo afke ok ak ale ak akk kok X X X X X X X X N RR 70 NOTE AUTHOR THIS PROGRAM SEPARATES FIELDS WITHIN RECORDS WHICH CAN BE SEPARATED BY DELIMITER CHARACTERS INTO DIFFERENT FLAM RECORDS THIS ENABLES A BETTER COMPRESSION THE DESIGN OF THE PROGRAM ALLOWS TO MODIFY THE DELIMITER AND EVEN THE LENGTH OF THE DELIMITER BY CHANGING ONLY ONE STATEMENT THE DELIMITERS ARE REMOVED FROM THE RECORD AND ARE REPLACED BY FLAM SYNTAX IF THE RECORD DOES NOT CONTAIN DELIMITERS IT IS PASSED TO FLAM WITHOUT MODIFICATIONS THE ROUTINE SEPARATE IS ACTIVATED VIA PARAMETER EXK10 SEPARATE DURING THE CALL OF FLAM OR FLAMUP THE FIELDS CONSIST OF PRINTABLE CHARACTERS SEPARATED BY A TWO BYTE LONG DELIMITER X 0D25 THE DATA COMPRESSED IN THIS WAY IS TRANSMITTED VIA FILE TRANSFER TO A PC DECOMPRESSED FIELD BY FIELD USING FLAM AND WRITTEN TO THE STORAGE MEDIUM WITH DELIMITER OF THE OPERATING SYSTEM X ODOA WITH MSDOS OR X 0A WITH UNIX FOR DECOMPRESSION ON A MAINFRAME A FILE WITH VARIABLE RECORD LENGTH MUST BE SPECIFIED EACH FIELD SEPARATED DURING COMPRESSION IS WRITTEN AS A SEPARATE RECORD THE DELIMITERS ARE NOT CONTAINED IN THE DECOMPRESSED RECORDS THIS MEANS THAT THE ORIGINAL FILE CANNOT BE RECONSTRUCTED ON A MAINFRAME THIS MODULE IS REENTRANT AND REUSABLE LIMES DATENTECHNIK GMBH
187. able to create up to 99 files The key phrase starts with there are blanks in the parameter The combination SHOW before and after the CRYPTOKEY parameter suppresses the protocol of the key 10 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples The corresponding protocol 1 FLMO448 COPYRIGHT 1989 2003 BY LIMES DATENTECHNIK TEST 2003182 2 FLM0410 DATA SET NAME USER USERCP J0B04480 D0000101 PARFILE 3 FLM0428 RECEIVED COMPRESS FLM0428 RECEIVED MODE ADC FLM0428 RECEIVED FLAMIN USER LIST FLM0428 RECEIVED FLAMFILE USER CMPLIST ADCO1 FLM0428 RECEIVED SPLITMODE SERIAL FLM0428 RECEIVED SPLITSIZE 1 FLM0428 RECEIVED CRYPTOMODE AES 4 FLM0428 RECEIVED SHOW ALL 5 FLM0400 FLAM COMPRESSION VERSION 4 0B00 ACTIVE 6 FLM0410 DATA SET NAME USER BIFLAMD LIST FLAMIN FLM0415 USED PARAMETER IDSORG SEQUENT FLM0415 USED PARAMETER IRECFORM FIX FLM0415 USED PARAMETER IRECSIZE 133 FLM0415 USED PARAMETER IBLKSIZE 133 FLM0415 USED PARAMETER IPRCNTRL ASA 7 FLM0414 FLAMFILE SPLIT ACTIVE 8 FLM0415 USED PARAMETER CRYPTO ACTIVE 9 FLM0410 DATA SET NAME USER CMPLIST ADCO1 FLAMFILE 10 FLM0415 USED PARAMETER SPLITMOD SERIAL FLM0415 USED PARAMETER SPLITSIZ 1 FLM0415 USED PARAMETER MODE ADC FLM0415 USED PARAMETER CRYPTOMO AES FLM0415 USED PARAMETER MAXBUFF 65536 FLM0415 USED PARAMETER MAXREC 4095 FLM0415 USED PARAMETER MAXSIZE 512 FLM0415
188. alues name name of the SMS data storage class Default none Valid for decompression Symbolic file name for output file OLINK Possible values 29 2015 by limes datentechnik gmbh Interfaces ODEVICE ODEV ODISPA ODISPA 30 Frankenstein Limes Access Method Chapter 3 DD NAME with max 8 characters Default FLAMOUT Valid for decompression Note With this parameter the DD NAME in the DD command can be changed Device assignment for output file Possible values DISK disc unit TAPE tape unit FLOPPY floppy disc drive STREAMER tape streamer USER User I O interface Default DISK Valid for decompression Note This parameter is not needed for catalogued files in MVS If the user interface for I O shall be activated ODEVICE USER must be specified see also User I O interface Abnormal disposition of the FLAMOUT file see MVS JCL manual Possible values CATLG catalog DELETE delete KEEP keep UNCATLG uncatalog Default none Valid for decompression Note This parameter is ignored when the file is allocated via JCL FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 ODISPN ODISPN DISPS DISPS ODSORG ODSO FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Normal disposition of the FLAMOUT file see MVS JCL manual Possible values CATLG catalog DELETE delete KEEP keep UNCATLG uncatalog Default none Valid for
189. and record format specified Invalid key position The key position in an index sequential FLAMFILE is not 1 For an original file the key position is not valid for the file format specified Invalid key length The key length cannot be processed by FLAM or it is not valid for the file format and record format specified Invalid file name The file name has been specified in an invalid notation for a file or a library element or an invalid wildcard specification has been used for a set of files and library elements this wildcard specification cannot be processed by FLAM Module or table cannot be loaded A user exit or a conversion table cannot be loaded It may be that the library is not assigned Module cannot be called A user exit cannot be called Module or table cannot be loaded Abort caused by exit routine A user exit has returned the return code 16 or an invalid return code not used Too many or invalid duplicate keys During compression into an index sequential FLAMFILE the original file contains duplicate keys even though duplicate keys are not allowed in the KEYFLAGS field of the KEYDESC key description when opening the FLAMFILE Or the number of duplicate keys in the original is greater than 255 MAXREC not used Invalid partially compressed data length FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 58 59 60 78 79 80 81 82 83 84 FLAM V4 5 MVS
190. andard Default VB variable blocked record format Valid for compression Note This parameter is not necessary for catalogued files in MVS Record format for input file IRECFM Possible values FIX fix record length VAR variable record length UNDEF record length undefined FIXBLK fix blocked VARBLK variable blocked VARSPAN variable spanned FIXS fix standard Default VARBLK variable blocked record format Valid for compression Note This parameter is not necessary for catalogued files in MVS FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 IRECSIZE IRECS KEYDISP KEYD KEYLEN KEYL FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Record length of input file true lenght without record length field ILRECL Possible values 0 32760 Default 32752 Valid for compression Note This parameter is not necessary for catalogued files in MVS Key processing during decompression OLD The records of the original file are reconstructed as they were read in key data DEL If the original file has a key length unequal 0 the key is removed NEW If the output file has a key length unequal 0 a key is generated at the key position in the specified key length The key is generated from a record sequence number 16 characters max Default OLD Valid for decompression Note This parameter allows or simplifies the automatic conversion of seque
191. anel e g ISRUTIL The panels CLIST procedures and messages belonging to the FLAM user interface are delivered in PO libraries in legible form This allows the user to modify them and adapt them to their specific requirements Please keep in mind that maintenance and warranty only applies to the delivered version Note also that modifications and adaptations made by the customer must be applied again by the customer himself in case of version changes 9 2 FLAM panels The term FLAM panels refers to the user interface that can be linked into a selection panel The task of these panels is the compression and decompression of files for execution in dialog TSO or in batch No knowledge of JCL is necessary All the necessary commands are generated automatically All panels provide help information when pressing the PF1 key You can find general information as well as detailed explanations following error messages All messages and help texts are written in English For execution in batch control is transferred to JES In consequence the function 3 8 can be used from ISPF or e g SDSF to control the batch job After execution under TSO control is passed automatically to the result list of FLAM 3 2015 by limes datentechnik gmbh FLAM user interface Chapter 9 Start of FLAM panels To start the FLAM user interface please enter under ISPF e g in the command line ISPF PDF PRIMARY OPTION MENU OPTION
192. ankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 5 1 3 A more complex example You ll see a more complex example for compression showing the possibilities of FLAM All LIST data sets shall be compressed in ADC mode encrypted with AES The FLAMFILEs shall be limited at 1MB We expect more than 9 files Cause the limitation of the PARM entry 100 bytes we need a file for all parameters 1 USERCP JOB 12345678 LIMES 06172 59190 CLASS A MSGLEVEL 1 1 MSGCLASS X NOTIFY USER pd JOB FOR FLAM COMPRESSION PERE ORE ME RE akak k k ak akak EK de EE kkk k k kkk SE k 2 EXEC PGM FLAM 3 STEPLIB DD DSN USER FLAM LOAD DISP SHR 4 FLPRINT DD SYSOUT 5 FLAMPAR DD COMPRESS Start Compression MODE ADC Mode Advanced Data Compression FLAMIN USER LIST Compress all LIST Files FLAMFILE USER CMPLIST ADCO1 Name of FLAMFILE 99 files possible SPLITMODE SERIAL Split FLAMFILE serially SPLITSIZE 1 at size of 1 MB CRYPTOMODE AES Use AES cipher mode for encryption SHOW NO Protocol inactivated CRYPTOKEY C THIS IS A KEY FOR ENCRYPTION SHOW ALL Protocol activated 1 Job card 2 Call FLAM without any parameters 3 Assignment of FLAM module library 4 Assignment of protocol 5 Assignment of the parameter file The parameters are entered directly the job stream Cause the number characters O1 in the FLAMFILE name FLAM is
193. apters This chapter explains FLAM s basic concepts and terminology and suggests areas for its use This chapter gives a general overview of the available functions This chapter contains the formal descriptions of all parameters and program interfaces Method of OperationThis chapter explains internal operative details to allow for optimal utilization of FLAM Application examples This chapter illustrates by practical Installation Technical Data Messages FLAM user interface Appendix 2 Frankenstein Limes Access Method examples how to achieve satisfactory results quickly It also contains hints and tips for FLAM users This chapter is the guide for installing customizing FLAM This chapter describes the system environment required for FLAM operation It also summerizes product features and characteristics This chapter contains a complete list of FLAM messages their meanings and required operator actions TSO ISPF users are supported with a user interface consisting of panels and procedures This chapter describes control flow and principles of operation The appendix includes the standard code conversion tables FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM V4 5 MVS Frankenstein Limes Access Method What knowledge is required Preface You should be quite familiar with the MVS operating system particularly with its command language This information is describ
194. area Length of working storage area in bytes Length of return area or maximum length of record this size must be at least 8 bytes 1 1 length of original record Original record Record length in bytes Compressed record length of this area BUFLEN Length of compressed record in bytes The next two parameters are only used for biserial compression Sample Sample length in bytes 131 2015 by limes datentechnik gmbh Interfaces Name Parameters R1 R13 14 15 Parameter list 1 FUCO 0 8 2 lt RETCO F 0 1 no 2 serially 3 compres 4 5 6 7 8 only for 9 132 Frankenstein Limes Access Method Chapter 3 3 7 Bi serial decompression BIFLAMD BIFLAMD is used for record by record decompression of compressed data that was created with BIFLAMK BIFLAMD is reentrant For operation working storage area is needed that must be provided by the calling program The content of the area before the call is ignored by BIFLAMD All calls to BIFLAMD are totally independent from each other All areas can have any alignment The working storage area for the compressed record for the sample record and for the output record must not overlap A decompression in place is not possible BIFLAMD Address of parameter list Points to save area 18 words Contains return adress Contains call adress Function code Serial decompression without sample Bis
195. ate filenames exotic non z OS compliant or overlength names are supported in Group FLAMFILES for selection FLAM V4 5 MVS 2015 by limes datentechnik gmbh Encryption KMEXIT KMPARM COMMENT File names FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates Documentations updates 6 FLAM V4 1 Changes in manual FLAM V4 0 from April 2003 by this supplement from April 2005 FLAM V4 1 FLAM V4 1 is a true superset of all previous versions so any usage that has been working with earlier FLAM versions remains compatible with FLAM V4 1 The AES Advanced Encryption Standard algorithm introduced in FLAM V4 0 has become faster and saves up to 50 CPU time A key management exit may be called by the parameter KMEXIT This user written program supports FLAM with key for en decryption It is used as interface to existing key management system Additional data may be stored as comment into the FLAMFILE during encryption sent to the exit for decryption The KMEXIT routine receives control information from the caller by this parameter KMPARM Parameter COMMENT causes FLAM FLAMUP to store these data into the FLAMFILE as a comment user header during compression These data are protocolled during decompression To avoid any conflicts with national character sets or naming conventions in other systems all file names stored in ASCII character set are translated for
196. atentechnik gmbh The FLAM user interface Chapter 9 And the result BROWSE FLAM30 EXAMPLE LIST LINE 00000000 COMMAND TOP OF DATA FLM0448 FLM0428 FLM0450 FLM0460 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0482 FLM0482 FLM0482 FLM0482 FLM0482 FLM0469 FLM0458 FLM0459 FLM0456 FLM0457 FLM0490 gt COPYRIGHT C 1989 1999 BY LIMES DATENTECHNIK GMBH TEST 2000182 RECEIVED D SHOW DIR FLAMD DECOMPRESSION VERSION 3 0A00 ACTIVE DATA SET NAME FLAM30 DAT CMP USED PARAMETER MODE VR8 USED PARAMETER VERSION 200 USED PARAMETER MAXBUFF 32768 USED PARAMETER CODE EBCDIC USED PARAMETER DSORG SEQUENT USED PARAMETER RECFORM FIXBLK USED PARAMETER RECSIZE 128 USED PARAMETER BLKSIZE 1280 OLD ODSN FLAM30 DAT FB OLD ODSORG SEQUENT OLD ORECFORM FIXBLK OLD ORECSIZE 80 OLD OBLKSIZE 3120 COMPRESSED FILE FLAM ID 0101 CPU TIME 0 0174 RUN TIME 0 0375 INPUT RECORDS BYTES OUTPUT RECORDS BYTES FLAM DECOMPRESSION NORMAL END A decompression was not performed output records 0 Only FLAMFILE header information is displayed 16 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 FLAM user interface By input of option i C Compress data set or member I FLAMFILE info D Decom
197. binary data If yes an 8 bit method which can be decompressed on the target system should be chosen for compression If file transfer is not transparent the CX7 mode must be selected The file is only allowed to contain printable characters that can be converted 1 1 during the file transfer Also in this case it should be checked if the selected compression mode is available on the target system For file transfer also transfer mode record length and record format variable or fixed must be considered It is possible that on the target system it is necessary to insert or delete length fields before decompression Some file transfer products allow only certain record length and certain record formats One parameter that must be provided with the same value on both systems is the buffer size MAXBUFFER for the compression of one data block This parameter has on mainframes the maximum value of 2 5 MB FLAM uses 32 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation mainframes two alternating buffers so double the memory is needed File attributes of the original file are meaningless for data exchange The reason is that the file transmitted in sequential form is the FLAMFILE Within the target system the decompressed data can be stored in a file with any valid file organization This may be an organization that allows for sequential index sequential or ra
198. c value has been specified for a parameter whose range of allowed values consists of numbers only Parameter value too long The value specified for a parameter is too long Numeric values can contain a maximum of 8 digits 29 2015 by limes datentechnik gmbh Messages 85 89 90 91 92 93 95 96 97 98 111 112 119 120 121 122 123 30 Frankenstein Limes Access Method Chapter 8 and fixed values may only comprise a maximum of 8 characters too The lengths of parameters which can contain names are specified in the respective parameter description Link names module names and the names of tables are also only allowed to be a maximum of 8 characters long File names for individual files and those which contain wildcards can be a maximum of 54 characters long unused Parameter is not allowed at this moment e g CRYPTOMODE after function FLMOPF Unknown parameter Unknown parameter value unused No file name found or error when determining file name This error can arise during compression in connection with file name specifications in wildcard syntax or file lists During decompression this error is due to a selection or conversion rule being specified for the output and the FLAMFILE not containing a name for the original file not used Not all files were processed While processing group files not all of the files have been processed because errors have been detected when opening the or
199. ccess Method Method of Operation 4 3 Processing of records 4 3 1 Compression C _FLMOP file to be compressed Nimes lal D program Data flow during compression The user application passes the records via the record level interface directly to FLAM FLAM collects these records until the maximal number of records within a block MAXRECORDS is hit or the provided buffer MAXUFFER is filled up Then the data is compressed and written to the compressed file The block structure is invisible to the user program The user program only interacts on record level with FLAM FLAM creates blocks and initializes compression autonomously The record level interface is controlled from the user program via different functions FLMOPN FLMCLS Sequence of function calls The record level interface is opened for output This function call may be followed by FLMOPD and FLMOPF if parameter specification is required Sending file header information optional Sending a record This function call must be repeated until all records are passed to FLAM Closing the interface and optionally receiving of statistics The printout of a protocol and the definition of parameters in a parameter file is not provided with the record level interface 9 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 3 2 Decompression user program ES oe uncompresse compressed d file fi
200. ce the FLAMFILE syntax has been significantly improved The new syntax ensures firstly that data which cannot be compressed despite the ADC technique is not expanded by more than 296 and secondly that the originals which in such cases are merely copied are rendered unrecognizable 15 2015 by limes datentechnik gmbh Introduction 16 Frankenstein Limes Access Method Chapter 1 The reason for this is the checksum method which is the only one of its kind in the world At the time the four checksums are formed the third of these encrypts the compressed input in such a way that the procedure can be reversed by applying the checksum function twice If the compressed data in a segment has been mutilated data errors manipulation the defect will spread to the remainder of the compressed segment like the plague The defective data is then useless The decompression procedure is not even started This CRC routine can moreover only be activated in FLAM if the complete compressed segment is available for decryption Certain PC products allow the original to be read if it has not been compressed CRC errors are not reported until the decompressed file is closed because the checksum is based on the original data The decompression is not aborted despite the checksum error The decompressed file may contain many different kinds of error including size errors even though the number of bytes that appears in the header
201. ceive an information when a major version is released Many translation table source and load modules are supplied to download from our homepage http www flam de en download addons Flam4 TranslationTables zSeries zos modules are assembled in 2 05 1 13 There is no garanty using FLAM on lower z OS versions but FLAM is still be useable on higher versions i e V2 1 2015 by limes datentechnik gmbh Documentation updates Large Files New Parameter Record Interface DDNAME FLMSET Documentation updates 9 FLAM V4 4 Changes in FLAM manual V4 3 from October 2009 by this supplement from August 2012 FLAM V4 4 FLAM V4 4 is a true superset of all previous versions so any usage that has been working with earlier FLAM versions remains compatible with FLAM V4 4 FLAM allocates large files gt 65 535 TRKS on decompression if the original file has been so large New parameter for disposition of outputfiles are introduced Disposition for status normal ending and abnormal ending can be used see DISP parameter in the MVS JCL manual New functions are implemented in the record interface No DD name in FLMOPN but a filename in FLMOPD now produce an automatic creation of a DD name by FLAM DISP parameter are now accepted to allocate a new FLAMFILE FLAM User Interface The interface has been enhanced FLCKV Protocol FLMO400 FLMO450 2 Frankenstein Limes Access Method Analyses VSA
202. chnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction record in the FLAMFILE has a simple checksum which allows you to verify that no formatting errors have occurred during the transfer This is still a relatively common type of user error regardless of whether or not FLAM is involved The compressed segment is not assembled until after the format check Every compressed segment has a header This allows its exact position to be located in a FLAMFILE synchronization The header must not be encrypted and indeed it is not encrypted for this reason It is however protected by means of a separate checksum so that you can be sure that the information it contains is always correct You can find our product name FLAM in ASCII code at the end of every compressed segment This is useful for synchronization in the event of a defect or if you reading backwards A special hidden checksum refers directly to the enciphered PASSWORD If this checksum is not correct and the PASSWORD enciphering FLAG is set an attempt has been made to decode with an invalid PASSWORD If the PASSWORD FLAG is not set but somebody else is using a PASSWORD the decoding and decompression functions will stop with mentioning this input error A segment decompression procedure never starts if any of the four checksums are invalid Apart from anything else there are technical reasons for this Decompression presupposes a c
203. code 0 No error 1 Invalid identification of function 15 Original record is larger than 32763 bytes 16 Original record is larger than matrix 4 43 49 Abort by user exit x FFXXXXXX DMS error code see FLMOPN 3 RECLEN F Record length Data length in bytes without record length field exclusive length 4 RECORD XLn Original record Data 102 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces Parameters 1 FLAMID F 2 lt RETCO F 0 1 PWDLEN F 4 gt PASSWORDXLn FLAM V4 5 MVS Frankenstein Limes Access Method 3 3 24 Function FLMPWD With function FLMPWD a password is given in This function can only called up once It is the first call after the last FLMOPx function during encryption The encryption mode is set by the function FLMSET on decryption the information is read from in the FLAMFILE and can be obtained from function FLMQRY Identification Return code No error Password function invalid e g for MODE CX8 CX7 renewed call up Password length in bytes max 64 Password 103 2015 by limes datentechnik gmbh Interfaces Parameters 1 _ FLAMID F 2 0 0 91 param 3 PARAM1 F 4 VALUE1 F n PARAMn F ntl VALUEn 104 Frankenstein Limes Access Method Chapter 3 3 3 25 Function FLMQRY With function FLMQRY parameters can be obtained durin
204. compression Here no output file is specified the according input field remains empty This will cause a complete decompression but without the creation of an output file C Compress data set or member I FLAMFILE info D Decompress data set or member 0 Processing options Specify original data set or member blank for DUMMY DATA SET NAME gt Specify FLAMFILE data set or member blank for DUMMY DATA SET NAME gt DAT CMP Reuse existing data sets N Y N yes no Specify Listing for temporary blank for none DATA SET NAME gt FLAM Parameter gt FLAM V4 5 MVS 13 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 The result BROWSE FLAM30 FLAM TEMPLIST LINE 00000000 COL COMMAND gt SCROLL TOP OF DATA tt FLMO448 FLMO428 FLM0450 FLM0460 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0465 FLM0482 FLM0482 FLM0482 FLM0482 FLM0482 FLM0469 FLM0460 FLM0465 FLM0458 FLM0459 FLM0456 FLM0457 FLM0490 COPYRIGHT C 1989 1999 BY LIMES DATENTECHNIK GMBH TEST 2000182 RECEIVED D FLAM DECOMPRESSION VERSION 3 0A00 ACTIVE DATA SET NAME FLAM30 DAT CMP USED PARAMETER MODE VR8 USED PARAMETER VERSION 200 USED PARAMETER MAXBUFF 32768 USED PARAMETER CODE EBCDIC USED PARAMETER DSORG SEQUENT USED PARAMETER RECFORM FIXB
205. cord length maximum 32760 256F During the first call the working storage area symbolic file name of the original file within the first 8 characters The rest of the area is padded with 00 This area can be used by the user exit module for any purpose With each call this working storage area is made available again with the old content Note If a record shall be extended or inserted the neces sary working storage area must be provided by the user exit module Return code 12 is only necessary if the compression shall be finished before the end of the input file is reached For function code 0 and 8 no record is passed to the module For function code 8 it is allowed to insert a record with return code 8 For return code 8 the record provided by the user exit module is processed Then the user exit module is called again for the old record from the input file FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Name Register usage R1 R13 R14 R15 Parameter list 1 FUCO F 0 4 8 2 lt RETCO F n H H H I RECPTR 4 RECLEN F 5e EXWORK 256 contains the FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 5 2 Output compressed data EXK20 In this user exit the compressed records are passed to a user module immediately before they are written to the compressed file This user exit can be used with the FLAM
206. cture must be passed Key description KEYFLAGS F Option 0 No duplicate key DEFAULT 1 Duplicate keys allowed KEYPARTS Number of key parts 0 8 0 no keys 51 Byte position of first key part 1 32759 KEYLEN1 Length of first key part 1 255 KEYTYPE1 F Data type of first key part 0 Printable characters 1 Binary values KEYPOS8 F Byte position of eighth key part 0 32759 KEYLEN8 F Length of eighth key part 1 255 KEYTYPES F Data type of eighth key part 0 Printable characters 1 Binary values 11 o BLKSIZE F Block size 0 unblocked 80 32760 12 CLOSDISP F Mode of CLOSE processing 0 REWIND 1 UNLOAD 2 LEAVE 13 gt DEVICE F Device type 0 8 16 Disc or unknown 1 9 17 Tape 2 10 18 Floppy disc 3 11 19 Streamer 7 15 23 User 76 Frankenstein Limes Access Method FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 FLAMID F 2 lt F 0 1 40 43 49 otherwise 3e VERSION F 100 101 200 300 400 4 lt FLAMCODE F 0 1 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces FLAM computes an optimum key length from the key description of the original file In the case of binary compressed data this key length is 1 byte longer than the sum of the original keys with printable compressed data syntax MODE CX7 2 bytes are added The key position is always 1 If the KSDS FLAMFILE is created by means of
207. d under UNIX and all file names begin with homeA ag50 dasp dat followed by the actual name these names can be converted PARM D FLAMO lt homeA ag50 dasp dat USER gt If a group file has been created with HEADER YES but FILEINFO NO i e without saving the file name each file can be accessed via the internal name from FILE0001 for the first file to FILE9999 for the 9999th file in a conversion rule The saved file name can on decompression generally be ignored by setting FILEINFO NO The internal names are then used for converting the file names Dynamically loadable record level interface In the previous versions the FLAM record level interface had to be rigidly linked to the calling programs If the user I O interface is not used it is now possible to load each FLAM call dynamically DYNAM parameter when using the COBOL compiler For inlinked purposes the record level FLAM V4 5 MVS 2015 by limes datentechnik gmbh Documentation updates interface FLAMREC can be linked without any modification to the program FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Documentation updates CLISTs 22 Frankenstein Limes Access Method The record level interface has been enhanced by new calls FLMGRN Read with record number FLMGTR Read backward FLMFKY Position record using key Find Key FLMFRN Position record using record number FLMPUH Write
208. decompression Security violation The record sequence has been changed If acceptable use SECUREINFO IGNORE on decompression Unexpected security information in standard FLAMFILE You cannot ignore this error situation Perhaps you have concatenated a normal and secure FLAMFILE unused as 1 marked errors see the beginning of the chapter 31 2015 by limes datentechnik gmbh Messages Condition codes 0 4 12 16 80 88 32 Frankenstein Limes Access Method Chapter 8 8 4 Condition codes FLAM sets the following condition codes for executive control Error free execution Not all input output files have been processed during the processing of group files Simple errors such as parameter errors have been detected Usually DMS errors are present Serious error during compression decompression The compression ratio was worse than the specified limit see CLIMIT parameter The file assigned is not a FLAMFILE Processing has been executed correctly only when condition code 0 or 80 is set In all other cases it may be that either a corrupt compressed file has been created or no compressed file at all We recommend that this file is recatalogued so that it is not used for further processing If a condition code greater than 0 is returned FLAM has already displayed appropriate error message If errors with condition code 16 are reported there may be an error in F
209. decompression Note This parameter is ignored when the file is allocated via JCL DISP Status of the FLAMOUT file see MVS JCL manual possible values SHR shareable OLD exclusiv MOD extend NEW new file Default SHR for input OLD or NEW on output Valid for decompression Note This parameter is ignored when the file is allocated via JCL FLAM recognizes itself if a file is new or cataloged old File organization for output file OFCBTYPE Possible values 31 2015 by limes datentechnik gmbh Interfaces OKEYLEN OKEYL OKEYPOS OKEYP OMGMTCLAS OMGMTC 32 Frankenstein Limes Access Method Chapter 3 PS sequential ESDS VSAM ESDS KSDS VSAM KSDS LDS VSAM LDS RRDS VSAM RRDS Default PS Valid for compression Key length of output original file Possible values 0 1 255 Default 8 or the value from the file header Valid for decompression Note This value must only be specified if the key length differs from the original file Key position of output file Possible values 0 1 record length minus key length Default 1 or the value from the file header Valid for decompression Note This value must only be specified if the key length differs from the original file The position of the record key is defined independently from the properties of a particular operating system as the relative position within the data part of the record The first byte has position 1 Managem
210. der MVS All files are read and written logically Logical block length for compressed file Possible values 0 32760 Default 0 bytes Valid for compression decompression Note This parameter is not necessary for catalogued files in MVS A value of zero leads to a system determined blocksize Minimal compression in per cent Possible values 0 90 Default 0 no limit Valid for compression Note If the compression result is worse than the predefined limit FLAM will generate a message and will set condition code 80 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 CLOSDISP CLO COMMENT COMM COMPRESS FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces The compression is finished properly anyway This parameter is only evaluated for INFO YES Final processing for compressed file on tape Possible values REWIND Rewind of tape to tape start UNLOAD Rewind of tape and unload LEAVE No rewind Default REWIND Valid for compression decompression Note Currently ignored Control of final processing may be done via JCL DD card A comment to the FLAMILE Will be stored into the user header of the FLAMFILE Possible values 1 256 characters starting with A C X or a string Using A all characters are translated to ASCII with the internal translation table A E ch A Default No comment Valid for compression Compress
211. ds within one set using the MAXRECORDS parameter If you define MAXRECORDS 1 FLAM will use a serial context free compression method that is only useful with long records The typical compression ratios are usually achieved with 16 32 records within one set With a bigger set a slightly better compression ratio can be achieved which also leads to less CPU consumption but the intermediate buffer has to be bigger The better the compression ratio is the less CPU time is needed The compression method is always the same based on the Frankenstein Limes Access Method Only the treatment of the matrix columns and the representation of the compressed files differs from case to case This is controlled with the MODE parameter With MODE CX8 FLAM will only compress repeating characters horizontally and vertically With MODE VR8 the remaining data is compressed in addition using the FL B 4 code This process first translates the characters into a special 8 bit code and then homogenizes them using specially designed logical operations The results are bit strings that can be compressed efficiently One reason for this is that the data resulting from the Frankenstein Limes Access Method can be grouped into partial equal character classes In both cases the compressed file the FLAMFILE is a sequence of 8 bit combinations that are written into sequential or index sequential files Record size record format block size can be defined
212. e FLAM subprogram 4 2 1 Compression FLAMI gt FLAMPAR parameters file to be compressed pees limes datentechnik 2 messages Data flow during compression FLAMUP reads similar to FLAM the uncompressed records from the original file compresses them and writes them into the compressed file Both compressed file and target file must be assigned to FLAMUP File parameters may be defined with the FLAMUP call or can be provided via a parameter file Optionally a protocol can be printed 7 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 2 2 Decompression FLAMFIL FLAMPAR parameters ntechnik Pos Mes Catentechnik messages Data flow during decompression FLAMUP reads similar to FLAM the compressed records from the compressed file decompresses them and writes them into the target file The target file must be allocated in the same format as the original file or as specified by the user FLAMUP needs for decompression specifications about the target file and the compressed file similar as with decompression with the FLAM utility Parameters may be defined with the FLAMUP call or can be provided via a parameter file Optionally a protocol can be printed 8 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 1 FLMOPN FLMPHD 3 FLMPUT 4 FLMCLS FLAM V4 5 MVS Frankenstein Limes A
213. e g encryption mode split mode size New messages 0435 FLMO445 FLMO485 FLM0487 are provided for integrity of the FLAMFILE for KMEXIT and COMMENT 2015 by limes datentechnik gmbh Documentation updates OS 390 and z OS AES Encryption FLAMFILE security 10 Frankenstein Limes Access Method Documentations updates 5 FLAM V4 0A Changes in manual FLAM V3 0 from April 1999 by this supplement from April 2003 FLAM V4 0 First of all FLAM V4 0 contains the complete predecessor version as a subset so that it is possible to compress and decompress the familiar way with MODE CX7 CX8 VR8 and ADC FLAM MVS V4 0 is usable in MVS as well as 05 390 or z Os The National Institute of Standards NIST has defined the Advanced Encryption Standard AES for encrypting data The method was described in the Federal Information Processing Standard 5 197 in November 2001 approved effective May 26 2002 FLAM uses this algorithm for encrypting compressed data Keys of up to 64 characters can be specified see also the description of the PASSWORD parameter in version 3 Internally a key of 128 bits is derived AES 128 and data security is enhanced by the insertion of verification fields created also with AES hash MACs This encryption method is activated by setting the parameters CRYPTOMODE AES and CRYPTO KEY key and is available with compression modes ADC and NDC MODE ADC or MODE NDC
214. e length without record length field Possible values 0 32760 Default 32752 bytes or value from the file header Valid for decompression Note This value must only be specified if the record length differs from the original file Primary space allocation of the output file in Megabytes Possible values 1 4095 Default 4 Valid for decompression Note This value must only be specified if the FLAMFILE is non z OS compressed or you need a special value 2 05 FLAMFILE has stored the total space amount in the file header and uses this value for allocation on decompression FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 OSPACE2 OSTORCLAS OSTORC OUNIT OVOLUME FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Secondary space allocation of the output file in Megabytes Possible values 1 4095 Default 50 Valid for decompression Storage class for allocation of the output file Possible values name name of the SMS storage class Default none Valid for decompression Unit for allocation of the output file Possible values name name of the unit e g SYSDA 3390 Default none Valid for decompression Volume for allocation of the output file Possible values name name of the volume e g SYSWK1 Default none Valid for decompression 35 2015 by limes datentechnik gmbh Interfaces PADCHAR PARDDN PARFILE PARF PASSWORD
215. e program call for the FLAM utility is FLAM The according subprogram call for the utility function is FLAMUP The subprogram interface has been changed The FLAM record level interface replaces the programs KOFLAM DEFLAM a new but incompatible form The record level interface is completely reentrant and can run under XA ESA 2015 by limes datentechnik gmbh Documentation updates The FLAM interfaces and all FLAM parameters of previous versions are supported in an upward compatible manner 34 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates Calls from FLAM V1 x like FLKOMP FLKOMPV are accepted and emulated in this version for the last time The KOFLAM DEFLAM interface can still be used but only with the functionality of version V2 0 and without returning compressed files Beside the record level interface for original data an additional user interface for I O USERIO is supplied This user interface can be activated for uncompressed as well as for compressed files via parameters All user exit interfaces have been expanded with a work area of 1 KB in a compatible way This improves the reentrancy of the exits considerably The limitation of the FLAMFILE on sequential PS files has been removed Now the FLAMFILE can have all formats and file organisations of the original file PS 15 VSAM ES
216. ed The input PARM in the EXEC statement overwrites these values File attributes defined in the DD or ALLOCATE command overwrite again According to this hierarchy a very flexible mode of operation is possible Please be aware that the sequence is not always chronological E g it is possible to select a parameter file via PARM input This parameter file is read in after the input despite of the fact that the PARM inputs will overwrite the specifications of the parameter file 3 1 1 Parameters Independently from the input medium parameters are evaluated always using the same syntax Only upper case letters are allowed Parameters may be passed in one or more lines or records In each line the parameter interpretation ends with the first blank position After the blank any type of comment may follow Single parameters must not be separated by end of line 5 2015 by limes datentechnik gmbh Interfaces Chapter 3 Evaluation of the parameters is ended at the keyword END or by an empty input line length 0 or by EOF for the input medium 6 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces There are parameters with or without key words Key words and values can be abbreviated Within brackets alternative key words are presented as used in other operating systems MVS DOS VSE BS2000 Key words f
217. ed Only if the key of the last record read is identical with the key passed in the USRPKY function the record is updated REWRITE Otherwise for identical keys a new record with the same key is inserted if duplicate keys are allowed 116 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces FLAM V4 5 MVS 117 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces Parameters 1 WORKAREA Chapter 3 3 4 8 Function USRDEL Delete the last read record 256F Working storage area 2 lt RETCO F Return code 0 No error 1 Invalid function 5 No active record found x OFXXXXXxX Other error codes 118 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Name Register usage R1 R13 R14 R15 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 5 User exits Addressing mode when calling user exits User exits can be written for any addressing mode AMODE ANY AMODE 31 AMODE 24 no mode specified The addressing mode only has to be taken into account if FLAM is loaded with AMODE 31 and the user exit is for some reason only able to run with AMODE 24 Only in this case the addressing mode must be switched over in the user exit itself It must be noted that the save area the return address the parameter list and the parameters can be addressed on
218. ed Therefore the record length is not a physically unique size within a heterogeneous environment Each FLAMFILE record created in 8 bit code is protected against manipulations via a 16 bit checksum In addition so called block pointers allow synchronisation and restart on block level if data cannot be decompressed properly because of manipulation or hardware faults A FLAMFILE created in 7 bit code does not contain checksums because this would inhibit code conversion from ASCII to EBCDIC and vice versa Instead the number of bytes per record is checked This function detects for example if a non 1 1 code conversion was applied This may happen if printer control characters or tabulator characters are not converted 1 1 However this does not comply with the preposition that the file must only contain printable characters It has a clear advantage to use the 8 bit format if it is not really necessary to work in 7 bit format Compression is faster the compression ratio is better the compressed file is better protected in respect to data security and data integrity and transmission of these files is faster in transparent mode Also more possibilities for data encryption exist The reason is that a 7 bit FLAMFILE can only be encrypted by randomising the character string Other encryptions do not comply with the purpose for which these files were created see above FLAMFILE 8 bit format however be encrypted w
219. ed in the publications e JCL DATA Administration Guide VSAM Access Method Services How to navigate through this manual following All updates in their edition are summarized in the Documentation updates limes datentechnik gmbh 2015 by limes datentechnik gmbh 4 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM MVS User Manual Documentation updates FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh New license Documentation updates Documentation updates 10 FLAM V4 5 Changes in FLAM manual V4 4 from August 2012 by this supplement from February 2015 FLAM V4 5 FLAM V4 5 is a true superset of all previous versions so any usage that has been working with earlier FLAM versions remains compatible with FLAM V4 5 FLAM V4 5 is now part of the FLAM FLIES and FLUC utilities V5 x To distinguish this version from the new capabilties of the new utilities we call it FLAMA In the past a license load modul had been created by the customer during installation of FLAM Now the license module is delivered separately from the installation packet New major versions require new license modules Update management Updates are supplied at least ever Translation z OS 1 13 FLAM V4 5 MVS Frankenstein Limes Access Method month to download from our homepage All registered users will re
220. em itself and not in FLAM Major problems are encountered for example when character sets are recoded if umlauts continue to be employed even though the stock of special characters has been largely used up It is not possible to compress without creating a working memory for temporary information FLAM requires around 160 KB for MODE ADC over and above the areas From the algorithmic point of view this basic memory must always be available if the necessary CPU time is to be kept within reasonable limits Compared with other models this memory size is relatively small for an adaptive model If we were to compare the compression effects fairly with those of other products usually PC products we would have to split the original file into segments small files of 64 KB each beforehand and then add the individual results together Also a FLAMFILE has a certain amount of packaging which inflates the compressed file by up to 296 both for security reasons and on account of the innovative access techniques One advantage of retaining the segmentation principle is that in the event of a serious data error only a single segment will be affected Every segment in FLAMFILE is considered independently of the others in the same way as for a transaction and is also saved as such packed This makes synchronization easy you can start at any segment half way through If no compression effect whatsoever is evident after the
221. enstein Limes Access Method Interfaces OUTPUT write FLAMFILE COMPRESSION INOUT with key and sequential read and update Note not allowed in MODE ADC NDC Symbolic file name padded with blanks Switch statistics on or not No statistics Collect statistic data and transfer to user with 3 3 2 Function FLMOPD The function FLMOPD describes special file attributes of the FLAMFILE If FLMOPD is used this function must be called as the second FLAM function after FLMOPN Otherwise the default values described in the following are used Generated parameters are not provided Identification Return code No error Invalid identification invalid call e g LASTPAR 0 FLMOPN Further return codes see chapter 8 End of parameters for OPEN No further parameters Additional function call with FLMOPF follows Length of file name area Length of file name see note File name of FLAMFILE The used file name is File format of FLAMFILE PS ESDS IS KSDS RRDS LDS Record format of FLAMFILE V VB VBS 75 2015 by limes datentechnik gmbh Interfaces 1 9 17 2 10 18 8 e MAXSIZE F 4096 9 lt RECDELIM XLn Chapter 3 F FB FBS U Maximum record length of FLAMFILE Valid values 80 32760 For CX7 a maximum record length of applies for the FLAMFILE 512 DEFAULT Record delimiter Currently not supported 10 KEYDESC STRUCT Key description for original records the address of the stru
222. ent class for allocation of the output file Possible values name name of the SMS management class FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 ORECDEL ORECD ORECFM ORECFORM ORECF FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Default none Valid for decompression Record delimiter for output original file Possible values String with max 4 characters Default no record delimiter Valid for decompression Note Not evaluated by FLAM in MVS Record format for output file Possible values F fixed record length V variable record length U undefined record length FB fix blocked VB variable blocked VBS variable spanned FBS fix standard Default VB or value from the file header Valid for decompression Note This value must only be specified if the record format differs from the original file Record format for output file Possible values FIX fixed record length VAR variable record length UNDEF undefined record length 33 2015 by limes datentechnik gmbh Interfaces ORECSIZE ORECS OSPACE1 34 Frankenstein Limes Access Method Chapter 3 FIXBLK fix blocked VARBLK variable blocked VARSPAN variable spanned FIXS fix standard Default VARBLK or value from the file header Valid for decompression Note This value must only be specified if the record format differs from the original file Record length of output file Tru
223. ential file the FLAMFILE This file may have a header that will store information about the original file FLAM is able to process all PS PO and VSAM files To adapt the compression process to the requirements of the user it is possible to specify parameters during the program call interactively It is also possible to define the parameters using a parameter file or while generating the system FLAM creates a job protocol for each execution on screen or into a log file During compression FLAM processes a set of 1 4095 logical records within one block Matrix FLAM can process input and output from both disc and magnetic tape or cartridge This is also true for the compressed file the FLAMFILE FLAM always compresses a set of records in one step The size of the intermediate buffer can be specified via the parameter MAXBUFFER FLAM will read only as many input records in one step as can be stored within the intermediate buffer For compatibility reasons to all FLAM versions the size of the intermediate buffer is restricted by 32 kB However if the target computer i e the computer on which the compressed file will be decompressed is known and the FLAM version installed on this computer allows for it a bigger buffer size for optimal compression can be defined 3 2015 by limes datentechnik gmbh Functions 4 Frankenstein Limes Access Method Chapter 2 It is also possible to restrict the number of recor
224. epeat until matrix is filled up WELL FLAMPILE RI FLAMFILE RI FLAMIN end of program comment open input file open compressed file read record from FLAMIN read record from FLAMIN put record in FLAMFILE put record in FLAMFILE read record from FLAMIN read record from FLAMIN end of file in FLAMIN put record in FLAMFILE put record in FLAMFILE close compressed file close input file Parameter for FLAM or FLAMUP COMPRESS IDEVICE USER DEVICE USER 14 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation Schematic presentation of decompression with User 1 0 FLAM USROPN USRCLS USRGET USRPUT start of program lt FLAMFILE lt gt FLAMFILE repeat until FLAM Fileheader is read q gt J HAMFILE FLAMOUT WM FLAMFILE repeat until first matrix is read 4 gt FLAMFILE lt gt FLAMOUT comment open compressed file read record from FLAMFILE read record from FLA ope put file read record from FLAMFILE read record from FLAMFILE put record in FLAMOUT repeat until all uncompressed records from matrix are gt gt FLAMOUT II FLAMFILE WO FLAMFILE WO FLAMFILE FLAMOUT put record in FLAMOUT read record from Rd from FLAMFILE end of file in FLAMFILE put record in FLAMOUT repeat until all uncompressed records
225. er 3 Example for the call of FLAMUP ASSEMBLER EXAMPLE CSECT CALL FLAMUP LA 1 FLAMUPAR L 15 V FLAMUP BALR 14 15 PARAMETER FOR FLAMUP FLAMUPAR DC A FLAMID DC A RETCO DC A PARAM DC A X 80000000 PARLEN FLAMID DS F RETCO DS F PARAM DC C C MODE ADC PARLEN DC 10 SAVEAREA SAVEAREA DS 18F END Register usage for ASSEMBLER gt R1 address of parameter list R13 points to save area 18 words R14 contains return address FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces R15 contains call address Example for the call of FLAMUP in C an example for calling flamup from C set linkage convention extern OS void FLAMUP void long char long int main void flamid long retco long parlen 10 char param 10 C MODE ADC FLAMUP amp flamid amp retco param amp parlen return 0 65 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 3 Record level interface FLAMREC FLAMREC consists of a number of subroutines that can be called by any programming language such as COBOL FORTRAN etc as as by ASSEMBLER programs Except for the key descriptions all parameters are implemented as elementary data types INTEGER STRING Deliberately no control blocks are required to avoid alignment problems
226. er and can therefore not be compressed The matrix size must be at least 4 bytes longer than the longest record length in the original file The matrix size should be at least 16 times the record length in order to achieve good compression results The file can be compressed again using a larger matrix buffer not used not used not used Invalid OPENMODE Only index sequential compressed files can be opened with OPENMODE INOUT Sequential compressed files can only be read INPUT or written OUTPUT Invalid size of matrix buffer During decompression the matrix buffer required cannot be requested due to a lack of memory If it is not possible to make any more memory available the original file must be compressed using a smaller matrix buffer Note As of version 2 5 a matrix buffer of twice the size is required If necessary the compressed file can be decompressed using version 2 1 so that it can then be compressed again using a smaller matrix buffer Invalid compression method FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 23 24 25 26 27 28 29 30 31 32 33 34 35 FLAM V4 5 MVS Frankenstein Limes Access Method Messages The compressed file has been created with a more recent version of FLAM using a compression method that is not yet supported by this version Invalid code in FLAMFILE The compressed file has been created in a character code neither ASCII nor
227. erhead is considered too high or the compression ratio is satisfactory The second option controls the processing of the sample If a dynamic sample is used a checksum is computed for each sample record and is inserted into the compressed record This reduces slightly the compression effect and increases CPU FLAM V4 5 MVS 15 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Functions 16 Frankenstein Limes Access Method Chapter 2 overhead On the other hand data security is improved because modifications are detected more easily For an exact error analysis it is even possible to decide whether the compressed record or the sample has been modified If a static sample is used no checksum of the sample is computed Modifications in the sample can in this case only be detected by using the checksum over the original file The third option allows the storage of samples within the compressed file During decompression these records are restored again as samples With this method BIFLAMK can create sequences of records that can be decompressed by BIFLAMD without additional information samples One possibility would be to provide one sample first Then all records are compressed against this sample bi serial compression is used to compress the remainders as well Another possibility is to use dynamic samples by using the processor of each record as the sample for the current record This sequence re
228. erial decompression with sample Return code Function executed Sample record for biserial decompression returned original record was written only during biserial decompression Invalid function code or record is compressed function code 8 or record is compressed biserially function code 0 Length error working storage area too small sed record smaller than 3 bytes return area too small Checksum error in compressed record Checksum error in sample record only for dynamic samples Checksum error in original record Other errors in compressed record Sample record is shorter as during compression biserial compression Compressed record too short FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces WORK Working storage area The working storage area must be FLAM V4 5 MVS Frankenstein Limes Access Method at least 512 bytes in size For biserial compression the working storage area must be at least 512 bytes 1 125 the sum of length of the return areas 133 2015 by limes datentechnik gmbh Interfaces 4 WRKLEN F 5 BUFLEN F original 6e RECOUT XLn 7 lt RECLEN F 8 COMPREC 9 COMPLEN F 10 lt gt SAMPREC XLn 11 SAMPLEN F 12 F 134 Frankenstein Limes Access Method Chapter 3 Length of working storage area in bytes Length of return areas maximum length of the record or the sample record in bytes
229. ertain constantly changing interpretation of the code A defect will cause the decompression function to go spinning out of control FLAM prevents this by using a layer model with four checksums If you attempt to subvert this principle even though an error has been reported error message return code for example by manipulating the data with program patches you are likely to provoke extremely serious Consequential errors Data protection and data security especially protection against unauthorized attackers always has top priority even without PASSWORD enciphering see V3 1 Outlook at the end of this document The PASSWORD itself must not be longer than 64 bytes 512 bits It can be specified either in printable format with C or as a hexadecimal string with The number of what might be termed half bytes in a hexadecimal input must work out as a pair If you enter a PASSWORD with C you should remember that the binary conversion is dependent on the system generation The same C PASSWORD in conjunction with a different character conversion to binary code will 17 2015 by limes datentechnik gmbh Introduction 18 Frankenstein Limes Access Method Chapter 1 result in a different internal PASSWORD You could find this useful if you are working this environment yourself and do not alter anything Using apostrophes as delimiters means that any trailing blanks are also considered to be part of t
230. es Documentation updates 7 FLAM V4 2 Changes in manual FLAM V4 1 from April 2005 by this supplement from November 2007 FLAM V4 2 FLAM V4 2 is a true superset of all previous versions so any usage that has been working with earlier FLAM versions remains compatible with FLAM V4 2 This revision primarily improves the ease of use of FLAM New parameters DATACLAS MGMTCLAS SPACE STORCLAS VOLUME UNIT and ODATCLAS OMGMTCLAS OSPACE OSTORCLAS OVOLUME OUNIT on command level or in a parameter file control data allocation of the output files FLAMFILE FLAMOUT So its possible to store files on special volumes units and with SMS classes without any JCL usage During file allocation FLAM tries to allocate a new file in one extend on a disk volume If there is not enough space for this large extend the primary space allocation will be reduced up to 1 16 of the total amount This prevents the allocation of an out of storage situation The record interface has been improved by new parameters and functions Is extended by new parameters for file allocation as introduced on the command line Function find key is now approved for compression mode ADC NDC Function get record by number is now approved for ADC NDC as well The update function is allowed for an update in place for ADC NDC compressed VSAM KSDS FLAMFILEs i e the record length must not change on rewriting the record Some
231. es Access Method FLAM is a registered trademark copyright by limes datentechnik amp gmbh None PARAMETER REJECTED INVALID VALUE The specified parameter has an invalid value Correct parameter according to FLAM documentation and start again PARAMETER REJECTED SYNTAX ERROR The command was rejected because it contained a syntax error The wrong command was protocolled with message FLM0428 Enter command with corrected syntax PARAMETER REJECTED INVALID KEYWORD The command was rejected because it contained an invalid keyword The valid keywords and their abbreviations are documented in the interface documentation Correct the invalid keyword and start again PARAMETER REJECTED PARAMETER VALUE NOT DECIMAL The command was rejected because it contained a non numeric operand where a numeric operand was expected The wrong command was protocolled with message FLM0428 Repeat the command using a numeric operand FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 FLMO405 Explanation Action FLMO406 Explanation Action FLMO407 Explanation Action FLMO408 Explanation Action FLMO409 Explanation Action FLMO410 Explanation Action FLAM V4 5 MVS Frankenstein Limes Access Method Messages PARAMETER REJECTED OPERAND 15 LONG The command was rejected because the value of an operand was too long The wrong command was protocolled with message FL
232. es stored in the file header are used see also chapter 3 1 4 The storage assignment contains the file size as primary specification 1 4 of the file size being the secondary specification In the case of PO libraries the number of directory entries is also known file is thus stored in one extent on the disk If the file size is not known because e g a FLAMFILE is assigned or the compressed data has not been generated under MVS and therefore does not contain the file size default values are used TRK 30 900 RLSE If the default values are inadequate a DD statement specifying other values must be made or the file can be created before the job is run e g with function 3 2 in ISPF All file types supported by FLAM PS PO and VSAM can also be created dynamically again However since important information required for creating new files is missing such as UNIT and VOLUME SMS must be used The fact that this information is missing is on the one hand due to data protection reasons data exchange via file transfer on the other hand they would usually not be useable due to transferral of the compressed data to other computers After all compressed data from foreign operating systems VMS VSE UNIX etc cannot even contain these specifications Note If parameters are specified and FLAM finds a DD statement via the DD NAME all the specifications in this statement take priority over FLAM V4 5 MVS 2
233. ess original data that otherwise could not be handled by FLAM This interface also allows the integration of FLAM with user applications and software packages Also in the case when a FLAMFILE was created without a file header HEADER NO FLAM can decompress this FLAMFILE Principally a restoration of a damaged FLAMFILE is possible but requires the consultation of an expert from the manufacturer Such damages are caused exclusively by hardware or material faults or by unauthorised manipulation 29 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 8 2 Group file The ability to store several compressed files in one FLAMFILE has been realized in the form of the group file If several files are read during compression see chapter 3 1 4 FLAM generates for each input file a file header parameter HEADER YES default in the FLAMFILE A number of FLAMFILEs are written physically in sequential order one after the other If the parameter HEADER NO is set no details about the respective file are stored in the group file When decompressed this file is then no longer recognized as a FLAMFILE containing a number of compressed files and it can only be decompressed altogether The file type and format of a group file can be adapted to suit any requirements exactly as in FLAMFILEs The parameter SHOW DIR can be used to display the details of all of the compressed files in this group file without the group file
234. eturn code 3 a record of length 0 is passed FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 gt FLAMID F FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 15 Function FLMGUH The function FLMGUH Get User Header reads the user data from the file header of the FLAMFILE Identification Return code No error Invalid identification or function Length of user data in bytes or length of area No data With 8 bit compressed data CX8 VR8 With 7 bit compressed data CX7 User data The user data is reproduced exactly as it is written i e converting the code of a file transfer has no effect here 93 2015 by limes datentechnik gmbh Interfaces Parameter 1 gt FLAMID F Chapter 3 3 3 16 Function FLMIKY The function FLMIKY allows to insert records with a key to an index sequential FLAMFILE VSAM KSDS Identification 2 lt RETCO F Return code 0 No error 1 Invalid identification or function 5 Key exists already 15 Original record is larger than 32763 bytes 16 Original record is larger than matrix 4 43 49 Abort by user exit 52 Too many or invalid duplicate keys x FFXXXXXxX DMS error code 3 RECLEN F length field Record length data length in bytes without record 4 RECORD XLn Original record data with key 94 Frankenstein Limes Access Method FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3
235. exists in the FLAMFILE parameter HEADER YES default setting Unless specified differently the default procedure creates a PS file with LRECL 32756 BLKSIZE 32760 and RECFM VB If the compressed file has been compressed on an MVS system it can also be created in one extent on the disk 2015 by limes datentechnik gmbh Documentation updates Examples Selection rules Internal file names 20 Frankenstein Limes Access Method A group file has been created on an MVS system the same user entry exists on the computer currently being used see chapter 3 1 4 EXEC PGM FLAM PARM D FLAMO lt gt FLAMFILE This means that all the files are decompressed into their original names If files have already been catalogued these catalogue entries are used regardless of the entry in the file header The same group file but name changes are required PARM D FLAMO lt DATA USER2 DECO gt Herewith all files with the prefix USER1 DATA decompressed given the new prefix USER2 DECO If the group file contains other files with a different prefix these files are not decompressed individual file selection A group file has been created on a different computer No more information about the file is available EXEC PGM FLAM PARM D SHOW DIR This command displays the contents of the file header of the FLAMFILE If for example the compressed data has been generate
236. ffer standard solutions for special problem areas in the future FLAM requires that the original records are passed to FLAM record by record The chosen compression method implies that FLAM works asynchronously N original records may result in k compressed records where n is unequal k This can be a problem in special cases The FLAMFILE is always created with a fixed record length that may be specified by the user This results usually in compressed records of equal length This is necessary because some DP systems only support files with equal record length This is also true for some data transmission products The smallest record length is 80 byte This allows to process the FLAMFILE in the punched card format RJE file transfer The upper limits are defined by the environment where the file is stored and which products are used to transfer the file The upper limit defined by FLAM is 32764 byte However the user may define the format of the record as variable length or fixed length For 22 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation fixed length record that is not filled up padding is applied FLAM V4 5 MVS 23 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation Chapter 4 It is also possible to define different block sizes to optimize the operations file transfer and storage requirements
237. file names via JCL valid in MVS FLAM stores the name of the compressed file into the FLAMFILE if required On decompression file names are found that are not common to the z OS system To avoid any conflicts with national character sets or naming conventions in other systems all file names stored in ASCII character set are translated for message and selection in the following way all national characters are translated to X a backslash V to slash and blanks to underline So it is easier to enter foreign file names that are unsupported in the z OS environment The file name itself remains unchanged in the FLAMFILE Entering DUMMY as a file name causes FLAM to use this file as dummy like the JCL command ddname DD DUMMY le reading an input file leads to EOF end of file writing to an output file has no effect So DD statements are not longer necessary for DUMMY files 3 1 4 1 File name list By prefixing the gt sign greater than to the file name or DD NAME the FLAM parameters FLAMIN and IDDN are able to specify a list of files for compression instead of one single file It is also possible to specify file list for decompression by means of the FLAMFILE or FLAMDD parameter In this list each file name must be contained separate record leading or trailing space characters X 40 are ignored A comment can be inserted after the first space character following the file name
238. from last matrix are written FLAMFILE q FEAMOUI end of program close compressed file close output file Parameter for FLAM or FLAMUP DECOMPRESS ODEVICE USER DEVICE USER 15 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 5 User exits 4 5 1 Utility 4 5 1 1 Compression with user exits EXK10 EXK20 Es be Es parameters COMPRESS EXK10 lt name PRAM ASS Data flow of compression with user exits During compression it is possible to call additional routines for pre processing of original records and for post processing of compressed records E g pre processing may perform a selection of specific records or fields Post processing introduce additional encryption of the compressed record Instead of using the more complicated record level interface record orientated processing can be done often with user exit EXK10 16 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation 4 5 1 2 Decompression with user exits EXD10 EXD20 E compressed filed parameters DECOMPRESS i Adv EXD20 lt name lil hes datentechnik datentechnik Data flow during decompression with user exits During decompression it is possible to call additional routines for pre processing of compressed records and for post processing of original records E g processing may decrypt encrypted
239. g area is initialized with 00 This area is assigned exclusively to the file opened It can be used as memory or scratchpad between different function calls 2 RETCO F Return code 0 No error 1 Invalid function 30 Input file is empty 31 Input file does not exist 32 Invalid OPENMODE 33 Invalid file type 34 Invalid record format 35 Invalid record length 36 Invalid block length 37 Invalid key position 38 Invalid key length 39 Invalid file name x OFXXXXXxX Other error codes 3 OPENMODE F The OPEN mode controls the operation mode 0 INPUT read sequential File must exist 1 OUTPUT write sequential New file is created or old file is overwritten 2 INOUT with key also read and write sequentially File must exist 3 OUTIN with key also read and write sequentially New file is created or old file is overwritten 4 DDNAME 8 Symbolic file name 5e DDSORG F File format 0 8 16 sequential 1 9 17 index sequential 2 10 18 relative 3 11 19 random access 5 13 21 library 6 14 22 physical 6e RECFORM F Record format FLAM V4 5 MVS 111 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces Chapter 3 0 8 16 VARIABEL V 8 VARBLK 16 SPNBLK 1 9 17 FIX F 9 FIXBLK 17 FBS 2 10 18 UNDEFINED U 3 11 19 STREAM 5 11 text delimiter 19 record length field 112 FLAM V4 5 MVS Franke
240. g compression FLAM reads the uncompressed records from the original file compresses them and writes them into the compressed file To do so FLAM needs specifications about compression mode and file format of both original file and compressed file The resulting compressed file be decompressed with the FLAM utility with the FLAM subprogram or with the FLAM record level interface Optionally a protocol is printed FLAM V4 5 MVS 5 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation 6 Frankenstein Limes Access Method Chapter 4 4 1 2 Decompression FLAMFIL FLAMPAR parameters ntechnik I parameters protoc Irpa limes DECOMPRESS datentechnik datentechnik i uncompresse messages He Data flow during decompression FLAM reads the compressed records from the compressed file decompresses them and writes them into the target file If the file attributes of the original file are unknown no file header available the user has to specify the file format of the target file By default FLAM will create a target file with variable record length On fact for decompression both compressed file and target file must be assigned to FLAM Optionally a protocol can be printed FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation 4 2 File processing with th
241. g decompression It may be called at any time after FLMOPN but the results depend on the moment it is called E g SPLIT are first known after FLMOPD CRYPTOMODE after FLMOPF Note In opposite to other function calls the field RETCO was expanded into two words 2 x 4 byte The first word is still the return code the second word is the info code The info code is the parameter in error on return Identification 2F Return code Info code no error Info code 0 else the parameter in error is returned in INFCO unknown parameter first parameter first parameter value last parameter F last parameter value Note Multiple parameter can be set in one call It is necessary to mark the end of the parameter list Most compilers do it automatically but Assembler the last parameter address has to be flagged A X 80000000 VALUEn Following parameters are available Description Parameter Value 0 1 2 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Splitmode 1 Chapter 3 Interfaces none serial parallel Splitnumber 2 2 4 Cryptomode 2001 0 1 2 none FLAM AES Secureinfo 2002 0 1 2 3 yes ignore member FLAM V4 5 MVS 105 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces Parameters 1 _ FLAMID F 2 0 0 90 param 91 param 92 param 3 PARAM1 F 4 VALUE1 F PARAMn ntl VALUEn 106 F
242. gned an asterisk or percent sign or an apostrophe in the conversion rule The asterisk means that the character string in the input file is to be transferred unchanged to the output file Correspondingly the transfers precisely that character located in this position The apostrophe sees to it that the character string or character represented in the input file by an asterisk or percent sign respectively is not FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces transferred to the output file The remaining characters from the input file are translated into the corresponding characters from the conversion rule The length of the character string can be changed as desired 57 2015 by limes datentechnik gmbh Interfaces Chapter 3 USER USER2 gt With this rule all file names beginning with USER are converted to the new identification USER2 The rest of the name is retained lt USER DAT B USER DEC DAT C gt With this rule all files with the identification USER are given the prefix DEC before their old name In the process only those files are affected whose second part of their name begins with DAT is followed by any character and ends with B This B is converted to C in the name of the output file Above all empty character strings are also allowed in the conversion rule so that characters can be deleted E g
243. gt ok ok K ok ok ok ok FK ok FK ok ok FK ok ok FK ok K ok ok FK ok FK K FK FK ok K ok ok ok ok ok K ok K K K VERARBEITUNGSFUNKTIONEN gt gt gt K FK ok ok ok ok gt ok gt K ok FK FK ok FK ok ok FK ok ok FK ok ok ok ok FK ok FK K FK ok ok K ok ok ok ok ok K ok K K K SEQUENTIELL LESEN DISPLAY NUMBER RECORDS TO READ UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO GET COUNT MOVE 0 TO RETCO PERFORM VARYING GET INDEX FROM 0 BY 1 UNTIL GET INDEX GET COUNT OR NOT OK MOVE SPACES TO RECORD DISPLAY CALL FLMGET USING FLAMID RETCO RECLEN REC ORD BUFLEN IF GAP DISPLAY GAP FOUND UPON TERMOUT MOVE 0 TO RETCO ELSE IF OK OR CUT DISPLAY RECORD DISPLAY UPON TERMOUT END IF END IF END PERFORM IF NOT OK DISPLAY ERROR IN FLMGET UPON TERMOUT PERFORM FEHLER MELDUNG END IF SEQUENTIELL LESEN RUECKWAERTS DISPLAY NUMBER RECORDS TO READ UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO GET COUNT MOVE 0 TO RETCO PERFORM VARYING GET INDEX FROM 0 BY 1 UNTIL GET INDEX GET COUNT OR NOT OK MOVE SPACES TO RECORD DISPLAY CALL FLMGTR USING FLAMID RETCO RECLEN REC ORD BUFLEN IF GAP DISPLAY GAP FOUND UPON TERMOUT MOVE 0 TO RETCO 38 FLAM V4 43 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 5 Application examples ELSE IF OK OR CUT DISPLAY RECORD DISPLAY UPON TERMOUT END IF END
244. h Interfaces Chapter 3 3 3 4 Function FLMCLS With function FLMCLS the access to the record level interface is terminated When compression is closed the last matrix is compressed now the compressed data is written to the FLAMFILE Additional information byte record counter MACs are stored as an ending record if required SECUREINFO YES Then the FLAMFILE is closed When decompression is closed only the FLAMFILE is closed Additional records not yet read from the FLAMFILE are discarded If specified with FLMOPN STATIS 1 statistical data is transferred to the caller Parameters 1 FLAMID F Identification 2 lt RETCO F Return code 0 I Invalid identification e g FLMCLS already done 43 49 Abort by user exit x FFXXXXXX DMS error code The following parameters are only used if the statistics are switched on in FLMOPN 3 CPUTIME F CPU in milliseconds 4 lt RECORDS F Number of original records 5 BYTES F Number of original bytes 6 lt BYTEOFL F Overflow counter for original bytes 7 CMPRECS F Number of compressed records 8 CMPBYTES Number of compressed bytes 9 lt CMPBYOFL F Overflow counter for compressed bytes With extremely big compressed files greater 4 gigabytes one word byte counters not sufficient For this purpose the overflow counters are provided They allow to extend the counter to a double word 01 BYTEFIELD 05 BYTEOFL PIC 9 8 COMP SYNC
245. hapter 4 2 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Utility Subprogram Method of Operation 4 Method of Operation We discussed in the previous chapters where compression is useful which functions are offered by FLAM and the use of these functions in different contexts In this chapter we discuss the principles of operation from an internal view We have to make a distinction between FLAM as a utility for processing whole files which may be called as an independent main program or as a subprogram and an interface for processing on record level the application exchanges single records with FLAM FLAM as a utility can be started on job control level via a job control command Parameters define the mode of operation Depending on the operating system parameters may be supplied as a part of the command or may be entered via the screen In addition can be parameters read from a parameter file This file can be assigned to the process using job control commands or command parameters FLAM as subprogram offers the same functionality as used as a main program The difference is that this time FLAM is called from an application or a driver program It is possible to specify parameters with the call Record Level Interface Using the record level interface a user User I O User Exits FLAM V4 5 MVS Frankenstein Limes Access Method program may control
246. hapter 9 Because the compression file DAT CMP is a new file and not yet allocated control is passed to the FLAM allocation panel FLAM Data Set Specification Data Set DAT CMP Special attributes or allocation for new FLAMFILE For standard processing press lt ENTER gt without any input Organization gt PS PS PO ESDS KSDS RRDS LDS Record Format zzz FB F FB V VB with S A M or U Record Length gt 2048 up to 32760 Byte avg max for VSAM Block Size gt 26624 up to 32760 Byte CISZ for VSAM Key Position gt VSAM KSDS Key Length gt up to 255 only No Dir Blocks gt PO Data Set only Space Unit gt BLKS TRKS CYLS or RECS Primary Quantity gt in above units Secondary Quant gt in above units Volume Serial gt Generic Unit gt This panel contains already the default values as specified in the FLAM option panel They may be modified if required E g a VSAM file could be created instead In this example we want to create a compressed file for transmission to a PC with IND FILE We change the record and block sizes to appropriate values FLAM Data Set Specification Data Set DAT CMP Special attributes or allocation for new FLAMFILE For standard processing press lt ENTER gt without any input Organization gt PS PS PO ESDS KSDS RRDS LDS Record Format gt FB F FB V VB with S A M or U Record Length
247. has only been described for decompression from a group FLAMFILE It can however also be used for compression with simultaneous generation of several items of compressed data in different files In this respect the conversion rule relates to the FLAMFILEs whose names are generated from the file names of the input files FLAMIN This is how all compressed data could be given a prefix C FLAMIN USER LIST FLAMFILE USER LIST USER CMP LIST It is however also possible to store each item of compressed data as a member of a library by means of the following specification C FLAMIN USER LIST FLAMFILE USER LIST USER POLIB The member name is in this case the 2nd qualifier of the input file Also valid here if a library is specified for the FLAMFILE by the JCL the name of the library as specified in the rule is ignored and only the members in the specified PO file are generated FLAM V4 5 MVS 59 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces 60 Frankenstein Limes Access Method Chapter 3 The reverse also applies file names of the FLAMFILEs are used to generate file names for the decompressed files FLAMFILE USER CMP FLAMOUT USER CMP USER LIST Note If a group file has been created with HEADER YES but FILEINFO NO no file name has been stored for this file The individual files can then be accessed for decompres
248. he PASSWORD A PASSWORD defined with C must be entered again exactly before you can decode It is advisable to test both sides in advance whenever you specify a new PASSWORD FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction If you enter a PASSWORD incorrectly you are allowed exactly one attempt at utility level because this is all that is permitted by the internal transfer method in FLAM You must start FLAM again and either enter or assign a new PASSWORD before you are allowed another attempt The most you can do is to automate or optimize this restart procedure if you are using FLAM s internal interfaces The PASSWORD is processed internally in FLAM in such a way that it is impossible to infer any information about it All attempts to analyze it with a view to securing a personal advantage are doomed to failure We the manufacturers will be unable to help you in any way if you forget your PASSWORD It is not even possible for an outsider to determine the length of your forgotten PASSWORD nor whether you entered it with C or with X It is highly unlikely that you will ever find any useful information on the Internet from hackers about how you could cut corners Before the first segment of a FLAMFILE can be deciphered at all certain preparatory steps must be completed internally they take up CPU time but are unavoidable This mea
249. hin the FLAM modules Please provide error documentation and contact your distributor 7 2015 by limes datentechnik gmbh Messages Chapter 8 8 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 8 FLM0428 Explanation Action FLM0429 Explanation Action FLMO431 Explanation Action FLM0432 Explanation Action FLMO433 Explanation Action Note FLMO435 FLAM V4 5 MVS Frankenstein Limes Access Method Messages RECEIVED Protocol of the entered compression parameters None NAME GENERATION ERROR NUMERIC RANGE OVERFLOW During split a new filename or DD name has to be created but the numeric range overflows e g JOE9 adding 1 to value 9 leads to 10 but there is only one byte to change JOEO9 is correct gt JOE10 Use more numeric characters in the file DD name FLAMFILE SPLIT NO nn MISSING On decompression a fragment of the splitted FLAMFILE is missing The fragment has the number nn Check the filename the catalog is it free to read Correct the error and start again FLAMFILE SPLIT SEQUENCE ERROR FOUND NO nn NEED NO mm On decompression a fragment of the serially splitted FLAMFILE is read But the new file is number nn expected number mm Check the ascending order of the files and start again FLAMFILE SPLIT NO nn IS CONTINUATION NOT A On decompression a fragment of a splitted FLAMFILE
250. ial index sequential relative random access library physical Record format VARIABEL V 8 VARBLK 16 SPNBLK FIX F 9 FIXBLK 17 FBS UNDEFINED U STREAM 5 11 text delimiter 19 length Record length 97 2015 by limes datentechnik gmbh Interfaces 10 gt 11 gt 12 gt 13 gt 98 RECFORM V RECFORM F RECFORM U RECFORM S RECDELIM XLn KEYDESC STRUCT KEYFLAGS F 0 1 KEYPARTS F 0 8 51 1 32759 KEYLEN1 F KEYPOS8 F 1 32759 KEYLEN8 F SYSTEM XL2 x 0000 x 0101 x 0102 x 0103 LASTPAR F 0 otherwise Frankenstein Limes Access Method Chapter 3 Maximum record length or 0 Record length Maximum record length or 0 Length of text delimiter or of text length field Record delimiter Key description Options No duplicate keys Duplicate keys allowed Number of key parts 0 No key available First byte of first key part Value lt record length Length of first key part Data type of first key part Printable characters Binary values First byte of last key part Value lt record length Length of last key part Data type of last key part Printable characters Binary values Block length unblocked Printer control characters none ASA control characters Machine specific control characters Operating system unknown 5 2 05 IBM VSE IBM VM End of parameters for file header No more parameters
251. ic components memory management time evaluation etc easily Independently from the record level interface for original data a user interface for I O from and to files is supplied This interface can be activated dynamically via a parameter DEVICE USER for all file VO original file input compressed file output compressed file input original file output Compression and decompression are now united in one program This was done in respect to future function especially for update of index sequential compressed files OPEN INOUT OUTIN PUTKEY DELETE All parameter default values can be defined via a generation step in a comfortable way For this generation it is not necessary to compile program parts All message texts all parameter default values and the syntax for parameter input are contained in one data module FLAMPAR This enables an easy adaption to other languages The FLAMFILE can now be created and read in all file and record formats previously only supported for uncompressed files This makes the transfer of compressed files much easier During creation and conversion of files the user is released from the task of observing the specific properties of a given data management system as much as possible E g the relationship between block length and record length automatically FLAM V4 5 MVS 2015 by limes datentechnik gmbh Documentation updates considered and adapted to the requirement
252. iginal files All of the files that have been processed have been processed without error Called for serial split but 0 split size Called for parallel split but split number lt 2 Length error in a split FLAMFILE Please send any error protocols The filename is in error The number characters are too short to generate a new number E g after 9 the number 10 should be created but the number character has one byte only On decompression one fragment of split FLAMFILE is missing On decompression a fragment of a serial split FLAMFILE is not in ascending order A fragment of a split FLAMFILE does not belong to the actual split FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 124 125 126 129 130 131 132 133 134 135 998 999 gt 65535 FLAM V4 5 MVS Frankenstein Limes Access Method Messages A FLAMFILE has been split parallel into more fragments than the actual version is able to read A formal error in the last record of the actual fragment of the split FLAMFILE unused Security violation The FLAMFILE has been changed e g update concatenation If acceptable use SECUREINFO IGNORE on de compression Security violation Missing records or complete member in a group FLAMFILE If acceptable use SECUREINFO IGNORE on decompression Security violation new member has been inserted in a group FLAMFILE If acceptable use SECUREINFO IGNORE on
253. ik gmbh Interfaces 4 Frankenstein Limes Access Method Chapter 3 by using the record level interface At the other hand sequential organization of the FLAMFILE is better suited for file transfer between computers with different operating systems FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces FLAM compressed data is always heterogeneously compatible This means that compressed data which was generated under a certain operating system can be decompressed on all operating systems supported by FLAM Depending on the available record and file formats on the target systems record and file conversions may be necessary FLAM can be executed online as well as in batch It can be adapted in a flexible way to the requirements of the users Several parameters are supplied for this purpose These parameters may be entered or may be stored via the PARM interface An additional parameter file is also possible Default values for the parameters may be created during installation see Generation of Default Values File attributes can be also defined via the DD command During processing parameters are evaluated in the following sequence First the installation parameters are used During decompression this values are substituted by the values from the file header of the FLAMFILE if available Then the values from the parameter file are us
254. in the upper address space it is still possible to access non VSAM files via FLAM Compressed files created with earlier version of FLAM can be decompressed with this version Within version 4 FLAM is upwards as well as downwards compatible always supporting the functional range of the lower version 3 2015 by limes datentechnik gmbh Technical data 4 Frankenstein Limes Access Method Chapter 7 7 2 Memory requirements The components of FLAM require static memory for object code Additional dynamic memory requests are issued for variables and working areas Additionally the operating system will allocate I O buffers for files The listed values EE EE with subroutines record level 290 60 140 6 5300 interface with P subroutines BIFLAMK 30 KB BIFLAMD 30 KB The dynamic memory needed depends on the length of the records to be processed and the file access method All memory requests allocate memory below or above the 16 MB line according to the current address mode 7 3 Performance The following benchmarks can give a clue what compression effects can be achieved Typical user files like FIBU MATDAT 70 90 Diverse listings like ASSEMBLER listings 65 85 Electronic data interchange files DTAUS 70 XML files for data interchange EBICS gt 90 In principle the compression effect depends on the file and record structure as well as on the actual data
255. interface This interface allows sequential relative or index sequential access to individual records These records may be contained in compressed files stored on and interchanged between different devices and different operating systems The record level interface is provided by a set of different subprograms that may be called from all programming languages such as COBOL FORTRAN C and from ASSEMBLER These subprograms are identical on all those operating systems where FLAM was released FLMCLS Close closes the current processing after all records have been received with FLMPUT or after all records have been read for decompression FLMDEL Delete deletes the last read record from an index sequential FLAMFILE FLMFKY Find Key positions the record pointer in an index sequential FLAMFILE that has been created from an index sequential file in such a way that the record with the specified or the following key can be read when FLMGET is subsequently activated FLMFLU Flush writes any compressed data left over from the last records transferred for compressoin and still present in the memory of the FLAMFILE and requests the statistical data In 7 2015 by limes datentechnik gmbh Functions Chapter 2 contrast to FLMCLS the FLAMFILE is not closed i e another piece of compressed data can be appended 8 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 2 FLMFRN
256. ion If D FLAMFILE USER DAT CMPFLAMOUT lt USER DATCB LIB gt is now specified for decompression only the files USER DATCB CLIB and USER DATCB DLIB will be decompressed Correspondingly it is also possible to select a number of FLAMFILEs for decompression 53 2015 by limes datentechnik gmbh Interfaces Chapter 3 D FLAMFILE USER CMP VR8 means all FLAMFILEs with the identification USER CMP as their 2nd qualifier any character string as the 3rd part of their name and VR8 as their last qualifier are to be decompressed 54 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 1 4 3 Selection rule for decompression During decompression the files can be created and catalogued by FLAM automatically This requires the existence of a valid file name in the file header of the FLAMFILE i e the parameters HEADER and FILEINFO must not be set to NO for compression In addition a FLAMFILE can contain several files i e it is a group file and it is possible to decompress specific files from such a group FLAMFILE on a targeted basis by specifying a selection rule In order to distinguish it from a genuine file name a selection rule is written between pointed brackets lt gt FLAMOUT lt USER FILE ORG gt With the above rule set the file USER FILE ORG is decompressed from the FL
257. ion decompression Note Please take care of the different code tables or national character sets used on the different platforms E g using the password C FLAM both on Windows systems ASCII and on MVS EBCDIC leads to a password error You have to pass X 464C414D20 this is FLAM in ASCII on MVS instead We recommend to use the hex input for a heterogeneous environment Record delimiter for FLAMFILE Possible values String with max 4 characters Default no record delimiter Valid for compression decompression Note Not evaluated by FLAM under MVS Record format for FLAMFILE Possible values F fixed record length V variable record length U undefined record length FB fix blocked VB variable blocked VBS variable spanned FBS fix standard Default FB Valid for compression decompression Note The record format of the compressed file is independent from the record format of the original file Fix blocked format is recommended 37 2015 by limes datentechnik gmbh Interfaces RECFORM RECF SECUREINFO SEC 38 Frankenstein Limes Access Method Chapter 3 Record format for compressed file Possible values FIX fixed record length VAR variable record length UNDEF undefined record length FIXBLK fix blocked VARBLK variable blocked VARSPAN variable spanned FIXS fix standard Default FIXBLK Valid for compression decompression Note The record format of the compressed file is
258. ion is used for relative positioning in any file and for creating gaps when writing relative files FLMPUH Put User Header can be used to append another character string of any content to the information stored with FLMPHD It can only be called immediately after FLMPHD has been called FLMPUT Put Record passes one record of the Original file to FLAM FLMPWD gives password to FLAM for compression or decompression FLMQRY asks for special parameter that are not returned in other calls FLMSET sets special parameter that are not set by other calls FLMUPD Update updates the last record read from an index sequential FLAMFILE 2 4 VO User Interface This interface allows the user to integrate own access methods into FLAM One possibility is to pass the compressed records immediately to postprocessing routines without creating a compressed file Vice versa during decompression the compressed records may be received from a preprocess instead of reading them from a file A direct application could be the integration of FLAM with a file transfer application avoiding the creation of intermediate files Generally this interface allows to intercept all input and output data of both FLAM and FLAMUP This allows the user to adapt FLAM easily to specific access methods FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 2 Functions FLAM V4 5 MVS 11 Frankenstein Limes Access Method 2015 by limes
259. is read But this new one is not an affiliation It is an original fragment but it belongs to a different FLAMFILE Check for the correct file and start again Please remember each compression leads to an unique FLAMFILE So it is not allowed to mix fragments of different runs FLAMFILE MAC nnnnnnnnnnnnnnnn MEMBER MAC 9 2015 by limes datentechnik gmbh Messages Explanation Action Note FLM0440 Explanation Action FLMO441 Explanation Action FLAMSYN FLAMREOM FLAMFREE FLAMSCAN names FLAMUP WCDxxx DYNxxx TIOxxx MSGxxx TIMxxx FIOxxx FLMxxx 10 Frankenstein Limes Access Method Chapter 8 Protocol of the calculated Hash MACSs of the entire FLAMFILE or the member of the FLAMFILE None Using AES encryption every FLAMFILE is secured with a couple of MACs Every member of a GROUP FLAMFILE is secured separately These 5 are for safety and integrity of every level matrix member file in the FLAMFILE FLAM COMPRESSION NORMAL END The FLAM compression has been completed successfully None ERROR IN OPERATION During this function an error occurred The error code is documented in the following message None Syntax analysis for parameter input Memory request Memory release Analysis of a selection or conversion rule for file Executive control Process file names in wildcard syntax Dynamic loading of modules and tables Terminal input output Mes
260. ith all kinds of additional encryption 27 2015 by limes datentechnik gmbh Method of Operation Chapter 4 methods to create a FLAMFILE not compatible with the market version 28 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation For such conversions the original state of the FLAMFILE as created by FLAM must be restored before the FLAMFILE is decompressed In MODE CX7 the FLAMFILE in addition must be converted into the code system of the host where the decompression is performed In the case that 1 1 code conversions shall be performed before compression or after decompression FLAM offers the possibility to convert from EBCDIC to ASCII and vice versa as well from one EBCDIC dialect to another EBCDIC dialect These conversions are implemented via code tables that can be replaced by the user It is possible to use user defined code tables as well for encryption purposes For all conversion problems not mentioned so far the user has the possibility to use the user exits for manipulation of uncompressed data This is independent from the MODE parameter The required conversions can be performed in connection with record processing Independently from the user exits the record level interface provides access on record level before compression and after decompression Using this possibility the user may proc
261. ith the statement EXD20 STREAM if the inconsistency is not detected automatically because it cannot be detected at the start of the compressed file If possible compressed files in STREAM format should not be processed any further and they should not be sent by means of a file transfer because repeated reformatting and wrapping of the files can destroy their ability to be processed It is better to decompress such a file and then to compress it again afterwards Use of this exit is indicated by the following message FLMO465 USED PARAMETER EXD20 STREAM The value STREAM is returned in the parameter EXD20 on the record level interface 2015 by limes datentechnik gmbh Documentation updates Compatibility of compressed data Operating systems Documentation updates 1 Changes in manual from 1989 V2 0 by reissue from October 1991 V2 5A FLAM V2 5A MVS is a completely new developed product Compared with the previous version it s functionality was enhanced in such a way that a new reference manual became necessary However the reference manual for version 2 0C stays valid for all old functions and calls In medium term users should migrate to the new version FLAM V2 5A MVS is compatible to the version 2 0 if only sequential organization is used for the compressed file Additionally FLAM V2 5A is upward compatible to all previous versions of FLAM The most important new features are FLAM V2 5A i
262. k gt ok ok gt gt K gt K ok 5k ok ok ok gt K K FK FK FK ok ok ok ok ok FK FK FK gt K ok ok ok K ok ok FK K ok ok ok ok ok FK K 9 FK FK ok ok ok ok ok FK 2K ok ok K K SAVE REGISTER AND LOAD PROGRAM REGISTER 5 R14 R12 12 R13 LR R10 R15 LOAD PARAMETER LM R1 R4 0 R1 ADDRESS WORK AREA R12 R1 USING WORKAREA R12 WRITE THE RECORD 30 RETURN CODE NO ERROR FLAM V4 5 MVS 57 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 LA RO OK ST RO 0 R2 RETURN LM R14 R12 12 R13 BR R14 RELEASE WORK AREA REGISTER DROP R12 kok ok ok ok ok ok ok gt ok ok ok ok ok k ok ok FK ok FK ok ok ok FK ok ok ok ok ok ok ok K ok K ok KR KR ok ok K ok K KR ok ok ok ok R R ok FK ok ok FK ok ak R ok R ok OK OR OR OR LOCAL CONSTANTS K FK FK FK FK FK FK K K FK ok ok K ok ok FK ok KR R ok ok FK ok ok ok FK ok FK K ok KR ok ok ok K ok ok ok ok ok ok ok R ok ok FK ok ok FK ok OR R ok ok ok LTORG DROP R10 TITLE USRPKY USRPKY DS 0D ENTRY USRPKY USING USRPKY R10 ok gt lt ok ok gt ok ok ok K ok k ok ok FK ok FK FK ok R K ok ok ok ok ok ok ok X ok ok FK ok K ok ok K KR ok ok ok ok R K FK FK ok ok FK ok FK R R R ok K OR OR NAME USRPKY FUNCTION x WRITE A RECORD WITH GIVEN KEY INDEX SEQUENTIAL PARAMETER
263. ke OPEN GET PUT CLOSE etc as provided by operating systems and higher level programming languages such as COBOL on mainframes FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Documentation updates Random access Integration Portability User I O Only one program Generation File formats Conversion 30 Frankenstein Limes Access Method The use of this record level interface and the new facility to store compressed data index sequential files VSAM KSDS allows a fast random access to compressed data This is well suited for setting up low frequency archives documents and similar data as online archives The record level interface enables FLAM to be integrated into applications with a low effort provided the application source code is available At the other hand for a set of application packages prewritten interfaces are available This allows to use compressed files transparently within these packages in the same way as uncompressed files would be used The concept of the record level interface allows the integration of FLAM into an application within a few days or weeks The idea of integration and the portability of FLAM in heterogeneous system environments is based on a consequent separation of the components system specific and system neutral elements All interfaces use the standards for subroutine linkage This allows to exchange all system specif
264. kenstein Limes Access Method Messages Original file record length Original file block size Original file key position Original file key length None ACTUAL FLAMFILE VERSION NOT SUPPORTED nn The actual FLAM version is unable to decompress decrypt the FLAMFILE On compression new parameters or functions have been used that are not compatible to this actual version nn identifies the FLAMFILE version Please use the newest FLAM version FLAMFILE MAC nnnnnnnnnnnnnnnn MEMBER MAC Protocol of the calculated Hash MACs of the entire FLAMFILE or the member of the FLAMFILE None Using AES encryption every FLAMFILE is secured with a couple of MACs Every member of a GROUP FLAMFILE is secured separately These MACs are for safety and integrity of every level matrix member file in the FLAMFILE USER HEADER Protocol of the user header if any The message ends with three points if the line is too short for the entire data None INPUT WAS NOT COMPRESSED BY FLAM The input data was not compressed with FLAM Condition Code 88 is set 19 2015 by limes datentechnik gmbh Messages Chapter 8 Action Assign a compressed file that was compressed with FLAM 20 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 8 FLMO490 Explanation Action FLMO491 Explanation Action FLMO492 Explanation Action FLMO493 Explanation 30
265. kk aa I I I I KKK KK SYMBOLIC CONDITIONS FOR IF WHEN WHIL E TOR AND 0R LESS THAN GREATER THAN EQUAL NOT EQUAL LESS OR EQUAL GREATER OR EQUAL LESS THAN ZERO GREATER THAN ZERO ZERO NOT ZERO ONES MIXED ZEROS OR ONES ZEROS OR MIXED ONES OR MIXED TRUE IN ANY CASE VERSION 1 00 06 25 91 FLOATING POINT REGISTERS GENERAL REGISTERS COLUMBUS REGISTERS LT EQU 4 GT EQU 2 EQ EQU 8 NE 0 7 EQU 13 GE EQU 11 LZ EQU 4 62 0 2 ZE 0 8 NZ EQU 7 0N EQU 1 MI EQU 4 Z0 EQU 11 ZM EQU 14 0M EQU 7 F EQU 15 FA 0 0 0 2 EQU 4 0 6 RO EQU 0 R1 EQU 1 74 Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 R PAR EQU RI R BASE EQU R10 R S TACK EQU R13 R EXIT EQU R14 R PASS EQU R15 EX2 EJECT 0 CSECT USING EX20 R PASS Application examples ok gt x ok ok gt ok ok ok ok ok R ok ak FK ok ok ok ok FK ok ok K ok ak KR ok ok K ok ok FK ok ok ok ok K K ok ok ok ok ok K FK FK ok ok FK ok K OR OR R OK OK OR OR R WN 4 20 FUNCTION FLAMFILE IS ENCRYPTED AND DECRYPTED IN A SIMPLE WAY THE 16TH AND 17TH CHARACTER ARE SWAPPED WHICH CHANGES THE C
266. l To make this difference clear the parameter name LRECL has been changed to MAXSIZE for the FLAMFILE parameter printout IRECSIZE and ORECSIZE are equivalent notations for the input file and the output file The FLAM user interface see chapter 9 for TSO users removes the task of writing JCL statements from the user including creation of VSAM files All specifications can be made interactively Also batch job streams can be generated with this facility 47 2015 by limes datentechnik gmbh Interfaces 48 Frankenstein Limes Access Method Chapter 3 3 1 2 1 Dynamic file allocation The specified files are allocated automatically by FLAM dynamic allocation SVC 99 by means of parameter input FLAMIN filename FLAMFILE filename FLAMOUT filename FLAMOUT lt gt as long as a DD statement has not been specified If the files are already catalogued FLAM will use the configuration details from the catalogue entry For reading the file is assigned with DISP SHR for writing with DISP OLD If the file is not already catalogued it is created DISP NEW CATLG For decompression FLAMOUT data such as file organization record length block length format and file size are taken from the FLAM file header which means that the output file essentially corresponds to the original file Parameter inputs however take priority over the stored data When the parameter FLAMOUT lt gt is set the file nam
267. lauts are used As far as FLAM is concerned only the binary conversion of the string that is transferred during compression enciphering with C is relevant This may well be a different binary code on the very next screen FLAM V4 5 MVS 23 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Introduction 24 Frankenstein Limes Access Method Chapter 1 1 2 FLAM and AES The National Institute of Standards NIST has defined the Advanced Encryption Standard AES for encrypting data The method was described in the Federal Information Processing Standard FIPS 197 in November 2001 and approved effective May 26 2002 FLAM uses this algorithm for encrypting compressed data Keys of up to 64 characters can be specified see also the description of the PASSWORD parameter in version 3 Internally a key of 128 bits is derived AES 128 and data security is enhanced by the insertion of verification fields created also with AES hash MACs This encryption method is activated by setting the parameters CRYPTOMODE AES and CRYPTO KEY key and is available with compression modes ADC and NDC MODE ADC or MODE NDC With CRYPTOMODE AES the compression mode defaults to ADC rather than the mode specified in the default settings This fast algorithm combined with the ADC compression enables the user to encrypt large amounts of data with a worldwide accepted algorithm For further details see the manual FLAM a
268. le Pic Data flow during decompression The user program receives the decompressed records via the record level interface directly from FLAM Records can be retrieved sequentially or randomly using keys FLAM reads the compressed file block by block and decompresses the block autonomously For the user program this process is invisible The end of the compressed file or the end of an original file within a concatenated compressed file is signalled to the user program via a return code The record level interface is controlled from the user program via different functions FLMOPN FLMCLS Sequence of function calls 1 FLMOPN The record level interface is opened for input This function call may be followed by FLMOPD and FLMOPF if parameter specification is required 2 FLMGHD Receiving file header information optional This function can be applied repeatedly if concatenated compressed file contains more than one file header 3 FLMGET Receiving of the decompressed original record This function can be executed repeatedly until all record have been received from FLAM or until FLAM was closed with the function FLMCLS 4 FLMCLS Closing the interface and optionally receiving of statistics he printout of a protocol and the 10 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation definition of parameters in a parameter file is not provided with the reco
269. lled only once if encryption of many files into a Group FLAMFILE C FLAMIN user is required It is called only at the beginning of the first file The exit is called many times for decryption of many FLAMFILEs D FLAMFILE user aes It is called after opening each FLAMFILE In the DD statement concatenated FLAMFILEs are treated as one FLAMFILE Note look for an example in FLAM SRCLIB KMX SAMPL 128 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Name Parameters R1 R13 R14 R15 Parameter list 1 FUCO F 0 8 9 post 10 11 post 12 compression 13 encryption 14 compression sample 15 encryption 2 lt RETCO F 0 2 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 6 Bi serial compression BIFLAMK BIFLAMK is used for compression of data record by record The compressed data is always returned in the same call BIFLAMK is reentrant For operation working storage area is needed that must be provided by the calling program The content of the area before the call is ignored by BIFLAMK All calls to BIFLAMK are totally independent from each other All areas can have any alignment The working storage area for the input record and for the compressed record must not overlap A compression in place is not possible BIFLAMK Address of parameter list Points to save area 18 words Co
270. lt no code conversion Valid for compression decompression Note With this function original data characters can be translated before compression or after decompressing before storage The specified table is loaded dynamically Code conversion may be necessary for file transfer bet ween heterogeneous systems It can be performed on any system but it is recommended to do it on the target system since FLAM already contains the necessary conversion tables for that system Please look for the translation tables used by FLAM in chapter A The library FLAM SRCLIB contains examples of table modules Example CODETAB CSECT TAB DC 256 11 ORG 0 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 DC ORG DC ORG END Interfaces 1 TAB C C B If TRA CODETAB was specified the original data is converted in the following way from X OC to X F1 and each letter A to B Many translation tables will be found on our home page http www flam de en download addons Flam4 TranslationTables zSeries zos TRUNCATE TRU Possible values YES NO Default Valid for FLAM V4 5 MVS Frankenstein Limes Access Method Truncate output record lt OPTION CUT NOCUT gt If decompressed record is longer than specified for the output file the record is truncated No truncation If records longer than specified occur decompression is aborted NO deco
271. lume 6 name 1 8 character Unit 7 name 1 8 character Data Class 8 name 1 8 characte Storage Class 9 name 1 8 character Management Class 10 name 1 8 character Disposition Status 11 0 1 2 3 4 Default NEW OLD SHR MOD Disposition Normal 12 0 1 2 3 4 Default DELETE KEEP CATLG UNCATLG Dispos Abnormal 13 0 1 2 3 4 Default DELETE KEEP CATLG UNCATLG Following parameters are to be set before FLMOPF Description Parameter Value 2001 0 1 2 none FLAM AES Cryptomode 107 2015 by limes datentechnik gmbh Interfaces Chapter 3 Secureinfo 2002 0 1 2 3 no yes ignore member 108 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces 3 3 27 Function FLMUPD The function FLMUPD updates the original record last read from a VSAM KSDS FLAMFILE Parameters 1 FLAMID F Identification 2 lt RETCO F Return code 0 E 1 Invalid identification or function 5 No current record 15 Original record is greater than 32764 bytes 16 Original record is greater than matrix 4 43 Abort by user exit x FFXXXXXX DMS error code 3 RECLEN F Record length data length in bytes without record length field 4 RECORD XLn Original record data FLAM V4 5 MVS 109 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces USROPN USRCLS USRGET USRPUT USRGKY USRPOS USRPKY USRDEL 110 Fra
272. ly in AMODE 31 The addressing mode used by FLAM is stored in the eet significant bit of R14 and can be looked up there In all other cases the addressing mode is already set correctly and it is switched over again by FLAM after the return if this is necessary It is irrelevant whether the return is executed with a BR14 or a BSM 0 14 3 5 1 Input original data EXK10 In this user exit the original records which shall be compressed are passed to user module immediately after they are read from the input file This user exit can be used with the FLAM utility or with the subprogram FLAMUP In this user exit records can be accepted modified inserted and deleted The exit is activated via the parameter EXK10 lt name gt The user exit module must be contained in the library that has been assigned with the STEPLIB command free choice max 8 characters Address of parameter list Points to save area 18 words Contains return address Contains call address 119 2015 by limes datentechnik gmbh Interfaces Parameter list 1 FUCO 0 4 8 2 RETCO n H H H I Co RECPTR 4 RECLEN 5e EXWORK contains the 120 Chapter 3 F Function code First call for file after OPEN Record read and passed Last call for file before CLOSE F Return code Accept record no error Do not accept record Insert record Enforce end of compression Error in user exit abnormal termination A Record pointer F Re
273. ly was created in a different environment e g different operating system lacks influence on the operation of FLAM Data is decompressed into equivalent file formats or in user defined file formats 5 2015 by limes datentechnik gmbh Functions Chapter 2 By specifying code conversion tables it is possible to change code systems after compression To be even more flexible FLAM provides user exits that allow the user to apply user defined post processing 6 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 2 FLMCLS FLMDEL FLMFKY FLMFLU FLAM V4 5 MVS Frankenstein Limes Access Method Functions 2 2 Subprogram FLAMUP FLAMUP differs from FLAM in that respect that it can be called as subprogram out of an application All accesses to data are performed via FLAMUP All parameters can be passed to FLAMUP using the CALL interface or methods as provided by FLAM interactive parameter definition or parameter file can be used Using FLAMUP within a driver program allows for example to select a certain set of files and to compress decompress all the selected files in one step A typical example is to select only files that were modified after a certain date archiving 2 3 Interface on record level FLAMREC The Frankenstein Limes Access Method as hardware and operating system independent and compressing access method is realized via the record level
274. mes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYPARTS ORIG IF KEYPARTS ORIG gt 0 THEN DISPLAY KEYFLAGS O NODUP 1 DUPKY UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYFLAGS ORIG DISPLAY KEYPOS1 1 32767 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYPOS1 ORIG DISPLAY KEYLEN1 1 255 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYLEN1 ORIG DISPLAY KEYTYPE1 0 DISP 1 BINARY UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYTYPE1 ORIG PERFORM VARYING KEYDESC INDEX FROM 1 BY 1 UNTIL KEYDESC INDEX KEYPARTS ORIG SET DIGIT TO KEYDESC INDEX ADD 1 TO DIGIT DISPLAY KEYPOS DIGIT 1 32767 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYPOS ORIG KEYDESC INDEX DISPLAY KEYLEN DIGIT 1 255 UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYLEN ORIG KEYDESC INDEX DISPLAY KEYTYPE DIGIT O DISP 1 BIN UPON TERMOUT PERFORM NUMERISCHE EINGABE MOVE EINGABE NUM TO KEYTYPE ORIG KEYDESC INDEX END PERFORM END IF KEYDESC AUSGABE IF KEYPARTS ORIG 0 THEN DISPLAY KEYDESC DER ORIGINALDATEI UPON TERMOUT DISPLAY KEYPARTS KEYPARTS ORIG UPON TERMOUT DISPLAY KEYFLAGS KEYFLAGS ORIG UPON TERMOUT DISPLAY 051 KEYPOS1 ORIG UPON TERMOUT DISPLAY KEYLEN1 KEYLENI ORIG UP
275. mes datentechnik gmbh Introduction 22 Frankenstein Limes Access Method Chapter 1 through other sources too This is a far more difficult problem to solve The majority of FLAM s processes are automated We recommend saving the PASSWORD in a separate file and then getting FLAM to read it via this file You can protect access to the file in the usual way The parts of the syntax that are critical for synchronization positioning are neither enciphered nor encrypted in FLAM This data is of no use to anybody it can however help to speed up direct access considerably since those parts of the compressed file whose only interest to authorized users is that they contain formatting information do not need to be deciphered or decrypted nor do they have to be decompressed unnecessarily Some users may of course prefer to start by compressing encrypting and sealing with FLAM and then use a stipulated enciphering technique There is nothing to be gained on the other hand by enciphering the original data before compressing it with FLAM It is however useful to form signatures and other authorization data relevant to the original before compressing it with FLAM providing you do not otherwise alter the original data in doing so The FLAMFILE can also be modified to make it personal and incompatible by swapping bytes via FLAM user exits The effect is basically the same as enciphering symmetrical exit modules Instead of
276. message and selection in the following way all national characters are translated to X a backslash V to slash and blanks to underline So it is easier to enter foreign file names that are unsupported in the z OS environment The file name itself remains unchanged in the FLAMFILE Entering DUMMY as a file name causes FLAM to use this file as dummy like the JCL command ddname DD DUMMY le reading an input file leads to EOF end of file writing to an output file has no effect So DD statements are not longer necessary for DUMMY files 2015 by limes datentechnik gmbh Documentation updates Enhancements of the New functions are added to the record level interface Record Level Interface 8 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLMEME FLMSET FLMQRY Messages FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates Ends a member in a Group FLAMFILE With SECUREINFO YES additional data e g byte and record counter are written to the FLAMFILE member member trailer during compression On AES encryption the MAC of the ending member is stored into the member trailer A new member started with FLMPHD or FLMCLS must follow New interface to set parameter without changing old interface calls e g encryption mode split mode size New interface to receive parameter values without changing old interface calls
277. mization of different search and presentation techniques is progressive adaptive model The code assignment changes continuously Autonomous data segments up to 64 KB in size are compressed The only way in which the user can influence this size is via the number of records MAXRECORDS The maximum permissible number of records has been increased to 4095 previously 255 MAXBUFFER is 64 KB static ADC The term record refers to a logical unit that is defined in the user s data management system Record formats can be either fixed or variable Some systems use a length field for records while others have a delimiter This is important if from the point of view of an application or when data is exchanged records are crucial as logically invariable access basis similar to the record interface in FLAM during compression decompression On systems that have no file catalog containing information about what is to be interpreted as a record it is perfectly possible to simply read in 64 KB this will not have any adverse effects on compression with MODE ADC If a file with delimiters is read on a PC or UNIX and these delimiters are not interpreted as such problems may be encountered if the file needs to be exchanged in a heterogeneous environment after decompression and adapted to this new environment FLAM allows problems such as these to be precluded right from the start by setting certain parameters providing the record f
278. mp AES FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 2 Functions FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 2 FLAM V4 5 MVS Frankenstein Limes Access Method Functions Content 2 Functions 3 2 1 The FLAM Utility 3 2 1 1 File compression using FLAM 3 2 1 2 Decompression of files using FLAM 5 2 2 Subprogram FLAMUP 6 2 3 Interface record level FLAMREC 6 2 4 VO User Interface 8 2 5 User exits 9 2 5 1 Original data input EXK10 9 2 5 2 Compressed data output EXK20 9 2 5 3 Original data output EXD10 9 2 5 4 Compressed data input EXD20 10 2 5 5 Key management 10 2 6 Bi serial compression with BIFLAMK 12 2 7 Bi serial decompression BIFLAMD 14 1 2015 by limes datentechnik gmbh Functions Chapter 2 2 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 2 FLAM V4 5 MVS Frankenstein Limes Access Method Functions 2 Functions 2 1 The FLAM Utility FLAM is a utility that is able to compress and encrypt whole files or to expand compressed and to decrypt files By using the parameters COMPRESS respectively UNCOMPRESS DECOMPRESS you select the operation mode Compression of an uncompressed file or expansion of a compressed file 2 1 1 File compression using FLAM As FLAM compresses a file it will write the result into a sequential or index sequ
279. mpressed data can still be accessed and appropriate conversion rules compiled by means of the internal file names FILEOOO1 for the 1st file through FILE9999 for the 9999th file 31 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 9 Heterogeneous data exchange Compressed files may be ported to a target system via file transfer or via tapes cartridges etc It is not necessary that source system target system are of the same type However necessary requirement is that a file transfer feature exists or that a compatible tape or cartridge format exists If these requirements are fulfilled data exchange is possible on both systems if FLAM exists and is installed All FLAM versions are upward compatible That means that systems with both FLAM older and newer version can compress decompress in the old manner Since version 2 x the different formats of the compressed data are compatible on all systems where FLAM exists For data exchange between heterogeneous and homogeneous systems only logical data formats should be compressed with FLAM Physical data formats cannot be reproduced identically on a physically different system Different methods for compression exist With ADC VR8 and CX8 data is compressed in 8 bit mode with CX7 in 7 bit mode For data exchange between mainframes any mode can be used therefore It is also necessary to check if the file transfer works transparently for 8 bit
280. mpression 43 2015 by limes datentechnik gmbh Interfaces 44 Frankenstein Limes Access Method Chapter 3 3 1 2 for FLAM This description is valid for batch processing Appropriate commands must be used for dialogue processing TSO FLAM is started via the EXEC command stepname EXEC PGM FLAM PARM Parameter specification must be made according to the conventions max 100 characters inclusion in quotes in case of special characters like etc FLAM parameters specified via PARM will overwrite FLAM parameters stored in the FLAM parameter file If the FLAM modules are not stored within a system library a FLAM load library must be specified STEPLIB DD DSN user FLAM LOAD DISP SHR The input and output files can be assigned to FLAM via DD cards The DD names used are predefined default names Other DD names can be chosen via parameters The following file types are supported by FLAM Physical sequential PS also members of a PO library PO libraries VSAM ESDS KSDS RRDS LDS The following record formats are supported V VB VS VBS F FB FS FBS U Print files A or M are also supported The specification of a parameter file is possible but not mandatory usually the PARM instruction is sufficient FLAMPAR DD DSN parameter file DISP OLD It is also possible to define the parameter file directly imbedded in the JCL FLAMPAR DD parame
281. n be activated when the file is compressed or decompressed The tables that are supplied together with the software are only suggestions as there are far too many possible variants for them all to be reproduced You can adapt these tables easily to suit your own particular needs We recommend converting the code on the same system that you intend to use for decompression because going on past experience the relevant table settings are likely to be most reliable on that system 1 1 convertibility and compatibility are then guaranteed If you need to exchange data in a printable format using a file transfer method that converts the code en route you must use the predecessor version with MODE CX7 Experience has shown that code conversions with file transfer products are far too unpredictable We can only advise you not to attempt them in the first place The safest procedure is to exchange binary data and to convert the code either before or preferably afterwards With edited listings there is also the problem of the control function of the first byte in each record print control characters If the transfer has to take place in ASCII there are automatic mechanisms in many file transfer products for recoding binary data temporarily into what appears to be printable data and then restoring it to its original state after the transfer You could write your own 3 4 routine for this purpose and activate it in a FLAM user exit portability
282. n empty character string The percent sign stands for any character These special characters are also allowed within members of one or more PO libraries FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces USER POLIB FL specifies all members of the library USER POLIB that begin with FL USER D LIB A B specifies all members whose 4 digit names begin with A and end with B and whose libraries have the identification USER LIB as their final qualifier and D as the last character of the second to the last part of their name All input files are in this way stored in one compressed file group file Correspondingly the wildcard entry in the selection rule see chapter 3 1 4 3 for decompression FLAMOUT lt USER DAT LIB gt leads to the decompression of only those items of compressed data whose original names conform to the syntax specified Comment this procedure requires a FLAM file header HEADER YES and the file information FILE INFO YES for compression Example C FLAMFILE USER DAT CMP FLAMIN USER B LIB All files with names that conform to the FLAMIN specification are to be compressed into the file USER DAT CMP If the files USER DATA ALIB USER DATAB BLIB USER DATCB CLIB USER DATCB DLIB are catalogued the 1st file does not conform to the wildcard syntax and is ignored during compress
283. n of a FLAMFILE member Input of S in line FLAMT DAT CMP causes a decompression of this member If the file is already catalogued another display will ask you to allow an overwriting FLAMFILE TOC DAT CMP Row 1 of 2170 FLAM DECOMPRESSION i ace l 1 1 300 K i 50 K is already cataloged 500 K i 250 K i 150 K i 50 K Overwrite gt N Y N 350 K S 800 K FLAMT FLAMDIR LIST SEQ FBM 133 3059 200 K FLAMT FLAMFLN LIST SEQ F 133 133 3150 K FLAMT FLAMG001 LIST SEQ FBM 133 3059 1250 K FLAMT FLAMG002 LIST SEQ F 133 133 500 K FLAMT FLAMHELP LIST SEQ F 133 133 550 K FLAMT FLAMNUC LIST SEQ F 133 133 11300 K FLAMT FLAMTADC LIST SEQ FBM 133 3059 100 K FLAMT FLAMTS LIST SEQ F 133 133 400 K FLAMT FLAMTSO1 DATI SEQ V 260 264 350 K FLAMT FLAMTS02 DAT2 SEQ VB 260 23440 28500 K If the question above is answered with N or the file was not catalogued the following display is shown FLAM V4 5 MVS 31 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface Chapter 9 FLAMFILE TOC DAT CMP Row 1 of 2170 FLAM DECOMPRESSION ace Old system MVS Old data set FLAMT FLAM CMP 300 K i 50 K New data set FLAMT FLAM CMP 500 K 250 K Reuse
284. n or function Key not found See function FLMGET Key length This contains the number of significant bytes in the specified key value It can be less than the key length In this case only the length passed here is taken into account in the logical relation specified in the argument checkmod Record buffer with search key Type of relation equal to greater than or equal to greater than 83 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 3 8 Function FLMFLU The function FLMFLU finishes the current FLAM matrix If specified with FLMOPN STATIS 1 statistical data is transferred to the caller During compression the content of the matrix is compressed and written immediately during decompression the next matrix is decompressed Parameters 1 gt FLAMID F Identification 2 lt RETCO F Return code lt 4 lt 5 lt 6 7 8 9 84 0 No error 1 Invalid identification 43 49 Abort by user exit x FFXXXXXX DMS error code The following parameters are only used if the statistics are switched on CPUTIME F CPU in milliseconds in foreign processes RECORDS F Number of original records BYTES F Number of original bytes BYTEOFL F Overflow counter for original bytes CMPRECS F Number of compressed records CMPBYTES Number of compressed bytes CMPBYOFL F Overflow counter for compressed bytes With extremely big compressed files greater 4 gigabytes one word byte counters are
285. n updates 24 Frankenstein Limes Access Method Miscellaneous Due to the many new features incorporated FLAM can no longer be run under MVS SP Level 1 Empty VSAM files i e files which contain no data are handled in the same way as empty PS files for compression and are processed without an error message being output Chapter 5 has been supplemented by an example program in COBOL which serves the entire record level interface of FLAM Chapter 8 Messages has been supplemented by the return codes of the subprogram and record level interfaces as well as the condition codes from the call module FLAM In addition to all the examples cited in the manual the library FLAM SRCLIB contains the call module FLAM This module can be modified by the user and thus adapted to suit special requirements e g reentrancy condition codes Example translation tables are also included FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates Documentation updates 2 FLAM V2 6 Changes in the previous manual from October 1991 FLAM V2 5 by this supplement from January 1994 FLAM V2 6 FLAM V2 6 is a functional improvement of FLAM V2 5A It is upward compatible to all previous versions of FLAM Compressed data from versions 2 5 and 2 6 are identical and therefore freely exchangeable as long as no new functions are used A new feature is the compre
286. name gt The user exit module must be contained in the library that has been assigned with the STEPLIB command free choice max 8 characters Address of parameter list Points to save area 18 words Contains return address Contains call address Functions code Decryption Encryption Return code No error Error s detected Length of parameter up to 256 byte Parameter DATALEN F Length of data Decryption gt Length of data FLAM V4 5 MVS Frankenstein Limes Access Method 127 2015 by limes datentechnik gmbh Interfaces Chapter 3 Encryption gt Buffer length of field DATA 512 lt Length of returned data max 512 6e DATA Data in length of DATALEN 7 lt CKYLEN F Length of key for en decryption m Buffer length of field CRYPTOKEY 64 lt Length of returned key 64 8 CRYPTOKEY Returned key in length of CKYLEN 9 lt MSGLEN F Message length gt Length of message buffer field MESSAGE 128 lt Length of returned Message length max 128 10 MESSAGE Returned message in length of MSGLEN If a message is returned MSGLEN gt 0 it is sent to the protocol 0445 The returned key is not sent to the protocol The data DATA are stored as is in the user header of the FLAMFILE If a special security is required it has to be done by the exit Usage of this exit overrules the parameter COMMENT and CRYPTOKEY if any The exit is ca
287. nation Action FLM0457 Explanation Action 12 Frankenstein Limes Access Method Chapter 8 Message data returned from the KMEXIT routine None COPYRIGHT C 1989 2014 BY LIMES DATENTECHNIK GMBH nnnnnn Copyright message with customer licence number resp expiration date of test installation None FLAM COMPRESSION TERMINATED WITH ERRORS Compression has been completed with errors Condition Code 8 or 12 or 16 is set None resp according to previous message FLAM DECOMPRESSION VERSION ACTIVE ON yyyy mm dd hh mm The FLAM decompression system was activated Version year month day and time of start ar protocolled FLAM means Frankenstein Limes Access Method FLAM is a registered trademark copyright by limes datentechnik gmbh None INPUT RECORDS BYTES Number of records and bytes in the compressed file FLAMFILE None OUTPUT RECORDS BYTES Number of records and bytes decompressed with FLAM None FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 Messages FLM0458 CPU Explanation CPU time consumed by FLAM for decompression Action None FLAM V4 5 MVS 13 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Messages FLMO459 Explanation Action FLMO460 Explanation Action FLMO461 Explanation Action FLMO462 Explanation Action FLMO463 Explanation 10 11 12 13 14 20 21
288. nce Statistics Messages Messages from the Utility Message Listing FLAM return codes Conditions codes The FLAM user interface Summary FLAM panels Example for compression Example for decompression Informations from a FLAMFILE FLCOMP FLDECO FLDIR FLDISP FLEDIT FLTOC Browse a FLAMFILE member Contents W 20 29 WW w 13 15 18 19 20 21 23 24 25 5 2015 by limes datentechnik gmbh Contents Appendix 6 Frankenstein Limes Access Method 9 8 2 27 9 8 3 28 9 9 Informations about a FLAMFILE member Decompression of a FLAMFILE member FLCKV 30 FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 1 Introduction FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction 1 Introduction FLAM is a software product for data compression typically used in applications in banking wholesale and retailing industry and public administration FLAM is best suited for tabled data FLAM compresses the standardized data formats as used in banking with a typical compression rate of 4 1 For lists of material the compression rate can be as high as 95 20 1 Although that FLAM was not specially developed for banking applications it is now accepted as the optional standard in data compression within
289. ndom access Important is that the data must comply to this organization e g a record key must be sorted in ascending order for index sequential organization Files can be compressed immediately during or after processing and can remain stored compressed form until they are transmitted Or they can be stored in uncompressed form and are compressed directly before transmission FLAM V4 5 MVS 33 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 10 Code conversion During compression and decompression any 1 1 code conversions can be applied to the original data For the conversion from EBCDIC to ASCII a standard table is provided It is also possible to load a user defined table by specifying its name TRANSLATE Generally spoken it is better to apply code conversion during decompression because the compression algorithm treats some frequent characters like zero or blank in a special way Code conversion could reduce the compression effect Also because of the smaller character set of the ASCII code it may happen that characters not contained the ASCII code set are lost during code conversion which cannot be reconstructed for decompression A delicate problem during the exchange of compressed data are index sequential files Caused by the conversion the binary or alphanumeric keys may be out of order because of different collating sequences in the code s
290. ned for Start of file record level end of file Records can be passed on modified deleted or inserted This exit can be used to modify records in a structure dependent way EXD10 is only available in FLAM and FLAMUP and corresponds with EXK10 during compression FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 2 FLAM V4 5 MVS Frankenstein Limes Access Method Functions 2 5 4 Compressed data input EXD20 This user exit interfaces the compressed data immediately after it is read from the FLAMFILE Special processing can be defined for Start of file record level end of file This exit can be used to modify records in a structure independent way With this exit it is possible to decrypt the data with an own decryption routine or to apply the reverse code translation as used during compression For a proper operation of FLAM it is indispensable that all changes applied to the compressed data are reversible User exit EXD20 must deliver exactly the same data as user exit EXK20 received All modifications applied to compressed data with EXK20 must be undone with EXD20 EXD20 is available in FLAM FLAMUP and FLAMREC and corresponds with EXK20 during decompression 2 5 4 Compressed data input EXD20 This user exit interfaces the compressed data immediately after it is read from the FLAMFILE Special processing can be defined for Start of file record level end of file This exit can be used to modif
291. nkenstein Limes Access Method Chapter 3 3 4 User 1 0 interface The user I O interface can be used for the FLAM utility for the subprogram FLAMUP and for the record level interface FLAMREC Under FLAM and FLAMUP it is possible to process the input file FLAMIN the output file FLAMOUT and the compressed file FLAMFILE with the user I O interface The user I O interface is activated by specifying the parameters IDEVICE USER ODEVICE USER and DEVICE USER At the record level interface FLAMREC the user I O interface is activated with the parameter DEVICE in function FLMOPD only for the compressed file FLAMFILE The required functions are then provided by the user The functions USROPN and USRCLS are mandatory From the other functions only that functions must be provided that are actually needed by the application The product FLAM contains an example source program for the user I O interface written COBOL and ASSEMBLER In this example all functions are provided as dummies Open of file or of interface Close of file or of interface Read one record and pass Accept one record and write Read one record with key and pass Position in file Accept one record and write with key Delete the last read record FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Interfaces 3 4 1 Function USROPN Open the interface for the file defined in the DD name Parameters 1 WORKAREA 256 The workin
292. none Valid for compression decompression Note This parameter is ignored when the FLAMFILE is allocated via JCL DISP Status of the FLAMFILE see MVS JCL manual possible values SHR shareable OLD exclusiv MOD extend NEW new file FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 DSORG DS EXD10 EXD1 EXD20 EXD2 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Default SHR for input OLD or NEW on output Valid for compression decompression Note This parameter is ignored when the FLAMFILE is allocated via JCL FLAM recognizes itself if a file is new or cataloged old File organization for compressed file FCBTYPE Possible values PS sequential ESDS VSAM ESDS KSDS VSAM KSDS LDS VDSAM LDS RRDS VSAM RRDS Default PS Valid for compression Note If the compressed file shall be generated as index sequential file a VSAM KSDS file must be created Activate user exit for processing decompressed data Possible values name name of the module max 8 characters Default no user exit Valid for decompression The module is loaded dynamically Activate user exit for processing compressed data Possible values 13 2015 by limes datentechnik gmbh Interfaces EXK10 EXK1 EXK20 EXK2 FILEINFO FI 14 Frankenstein Limes Access Method name Default Valid for Chapter 3 name of the module max 8 characters no user exit
293. ns All examples are contained on the installation tape in form of command procedures or source code All examples were tested However it is possible that certain examples cannot be executed in a particular environment or that it is necessary to make some adaptations For the COBOL programs we have tried to stay as much independent from the operating system and the compiler as possible The examples were therefore tested under BS2000 and DPPX as well as under MVS During porting from MVS to BS2000 and DPPX some modifications must be made 5 1 5 1 1 Compression 1 USERCP JOB 7021000F LIMES 06172 5919 0 CLASS A MSGLEVEL 1 1 MSGCLASS X NOTIFY USER EE AAR ok ok ok A ok ok ok ok ok ok ok ok ok ok ok ok ok ak ak ak ok ak A ak ak 2 ok ok ok ak ak ak KM ok ok OR JOB FOR FLAM COMPRESSION RRR AAR ok ok ok k ok ok ok ok ok ok ok ok ak ak ok ok ok KK 2 COMP EXEC PGM FLAM PARM C SHOW ALL 3 STEPLIB DD DSN USER FLAM LOAD DISP SHR 4 FLAMFILE DD DSN USER CMP DISP OLD 5 FLAMIN DD DSN USER DAT FB DISP SHR 6 FLPRINT DD SYSOUT 7 FLAMPAR DD 4096 COMPRESSION BUFFER 4 KB MODE VR8 COMPRESSION MODE 1 Job card 2 FLAM program is called for compression All information shall be recorded in a protocol 3 Assignment of the library that contains all FLAM modules 4 Assignment of the FLAMFILE In this example the FLAMFILE is already dum logued So it is n
294. ns that there is a basic amount of work in every PASSWORD attempt that it is not possible to optimize The enormous number of possible solutions that can be reconstructed mathematically is the user s surefire guarantee that nobody will manage to crack a PASSWORD which has been specified for enciphering a FLAMFILE even remotely easily There is no such thing as a higher level PASSWORD that performs the role of a master key A PASSWORD which is hierarchically structured from the user s point of view is not recognized as such Even the small difference between one blank more or less at the end of the PASSWORD results in completely different internal keys which are what ultimately determine the actual procedure 2 4 KB key data internally If you then also give your PASSWORD an attribute that refers to your company or to some other feature of your environment and thus extend the PASSWORD length artificially the amount of effort needed by an outsider to work it out will reach astronomical proportions If the full 512 binary bits are used the total possible number of variants will have 155 digits Even if you only want 96 printable characters to be allowed per byte you will still be left with a figure with 127 digits The length alone which is part of the PASSWORD is enough to put other people off because they have no specific information about it Example of a PASSWORD with attributes 19 2015 by limes datentechnik gmbh In
295. nstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 7 RECSIZE F Interfaces Record length 0 32760 RECFORM Maximum record length or 0 RECFORM F Record length RECFORM U Maximum record length or 0 RECFORM 5 Length of text delimiter or of record length field 8 e BLKSIZE F Block length 0 unblocked 1 32760 9 lt KEYDESC STRUCT Key description KEYFLAGS F Options 0 No duplicate keys 1 Duplicate keys allowed KEYPARTS Number of key parts 0 8 0 No key available KEYPOS1 F First byte of first key part 1 32759 Value record length KEYLEN1 Length of first key part 1 255 F Data type of first key part 0 Printable characters 1 Binary values KEYPOS8 F First byte of last key part 1 32759 Value record length KEYLEN8 F Length of last key part 1 255 KEYTYP8 Data type of last key part 0 Printable characters 1 Binary value 10 DEVICE F 7 15 23 11 gt RECDELIM XLn 12 lt gt PADCHAR 1 13 lt gt PRCTRL F FLAM V4 5 MVS Frankenstein Limes Access Method Device type User devices Record delimiter Padding character Printer control characters none ASA control characters Machine specific control characters Method of CLOSE processing REWIND UNLOAD LEAVE 113 2015 by limes datentechnik gmbh Interfaces Chapter 3 15 ACCESS F Access method 0 logical by record 16 lt gt NAMELEN F Length of file name o
296. ntains return adress Contains call adress Function code Serial compression without sample Biserial compression with sample serial post com pression of the remainder and static sample Sample record for biserial compression with serial compression Biserial compression with sample serial post com pression of the remainder and dynamic sample Sample record for biserial compression with serial compression Biserial compression with sample serial post and encryption of the remainder and static sample Sample record for biserial compression with Biserial compression with sample serial post and encryption of the remainder and dynamic Sample record for biserial compression with Return code Function executed Invalid function code Length error 129 2015 by limes datentechnik gmbh Interfaces Chapter 3 working storage too small return area too small record bigger than 32767 bytes 130 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces WORK XLn must be 4 WRKLEN 5 BUFLEN 6 XLn 7 RECLEN F 8 COMPREC XLn 9 lt COMPLEN F 10 SAMPREC XLn 11 SAMPLEN F FLAM V4 5 MVS Frankenstein Limes Access Method Working storage area The working storage area at least 512 bytes in size For biserial compression the working storage area must be at least 512 bytes length of return
297. ntechnik gmbh New Compression Documentation updates Documentations updates 4 FLAM V3 0A Changes in manual FLAM V2 7E from April 1995 by this supplement from April 1999 First of all FLAM V3 0 contains the complete predecessor version as a subset so that on the hand it is possible to compress and decompress in the familiar way with MODE CX7 CX8 and VR8 on the other hand creating the required compressed files is no problem if your partner has not yet changed over to FLAM V3 0 for example A new high efficient compression method 15 implemented With MODE ADC Advanced Data Compression the data are compressed straight forward The relative optimization of different search and presentation techniques is progressive adaptive model The code assignment changes continuously Autonomous data segments up to 64 KB in size are compressed The maximum permissible number of records has been increased to 4095 previously 255 MAXBUFFER is 64 KB static This method is independant from any record or data structure and has a higher compression rate than the predeccesing versions New Compressing Syntax With MODE ADC any compression Password FLAM V4 5 MVS Frankenstein Limes Access Method FLAMFILE differs from each other even when the input data are identically In other words with MODE ADC a unique FLAMFILE will be created A new checksum technique is introduced in this compression method This is for secu
298. ntegration with NATURAL The necessary software for integration between NATURAL and FLAM was developed in cooperation with Software AG in Darmstadt Beginning with version 2 2 NATURAL is able to write and read it s workfiles using FLAM This allows the user to create and process compressed files directly using NATURAL programs in a transparent way This new facility also supports file formats that were not allowed as workfiles under NATURAL until now VSAM files The decision about using the FLAM access method for a NATURAL workfile is made via JCL No changes to NATURAL programs are necessary The linkage module NATFLAM is part of the FLAM installation tape for all 390 systems It must be linked with the corresponding module from Software AG For further information please refer to your distributor or contact directly the manufacturers Software AG or limes datentechnik gmbh 5 5 2 Integration with SIRON In cooperation with Ton Beller AG in Bensheim Germany a FLAM access module was developed for the product SIRON This allows to create and process compressed FLAM files using SIRON queries Only slight changes are necessary for the SIRON queries No changes in the queries are necessary if an entry for FLAM is made within GENAT for the corresponding files JCL changes are not necessary One possibility is to use the NIMM interface HOLE file NIMM HZFLAM LIES file NIMM HZFLAM SCHREIBE file NIMM HZFLA
299. ntial files into index sequential files and vice versa Key length of an index sequential compressed file Possible values 0 1 255 Default 0 no key Valid for compression decompression Note In an index sequential compressed file the key must be positioned at the beginning of the 23 2015 by limes datentechnik gmbh Interfaces 24 Frankenstein Limes Access Method Chapter 3 record The key length should be equal to the sum of the length of all partial keys of the original file 1 However it is allowed to violate this rule If sequential data is compressed into index sequential compressed file a key length of 5 bytes is sufficient FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 KMEXIT KME KMPARM KMP MAXBUFFER MAXB FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Activate the key management exit Possible values name name of the module max 8 characters Default no user exit Valid for en decryption The module is loaded dynamically Note This Parameter overrules CRYPTOKEY Parameter used for the KMEXIT Possible values Any input up to 256 characters in the form A or as a string Default no parameter Valid for en decryption Note This parameter overrules COMMENT if any Maximum size of matrix Either a value between 0 and 7 kByte 32132 64 128 256 512 1024 2048 or the matrix size in kBytes Minimal value
300. o applies to protection against hackers as ownership of FLAM V3 0 is an essential prerequisite of any attack In addition each compressed segment must be made available complete and undamaged in the right envelope i e synchronized Our PC version is not available as shareware or in a similar form and we consider it a nearon impossibility for anyone else to rewrite even the decompression part of the program and as is common practice on the Internet publish it for private use as their own home made product We have endeavored to achieve a healthy measure of complexity to protect our own interests apart from anything else Of course we can never protect ourselves 10096 against pirate copies nor against disloyal employees with inside know how Yet even then there is no way that a person could secure any kind of advantage whatsoever for themselves by attempting to crack a PASSWORD The non optimizable portion of CPU time would still remain even if we were to publish the sources You determine this time yourself through the PASSWORD rules you define within your company see PS Please remember that there is an enormous difference between wanting protection inside your company as well and protection just against unauthorized third parties for example when files are transferred Somebody who already works in the same building as you is likely to have access to the data you are desperate to protect 21 2015 by li
301. of FLAM is only possible with a licence module provided by limes datentechnik A licence allows the usage of FLAM on one or multiple computers There is a difference between test licences for a limited period and unlimited production licences A test licence allows the testing and benchmarking of FLAM with all functions for a defined period e g 30 days Test programs must not be given to a third party During the test period no backup copies from the test programs are allowed After the test period expired all test programs must be deleted A production licence allows the unlimited usage of FLAM on each computer for that a licence was obtained FLAM compresses structure oriented using algorithm that is a part of the Frankenstein Limes method This method has been patented in the Federal Republic of Germany and the United States of America and at the European Patent Bureau registered by the inventor at the 19 7 1985 FLAM FLAMFILE and limes datentechnik are registered trademarks Copyright 1986 2015 by limes datentechnik gmbh 3 2015 by limes datentechnik gmbh Installation FLAM INSTALL FLAM LOAD FLAM OBJ FLAM JOBLIB FLAM SRCLIB FLAM PANELS FLAM CLIST FLAM SKELS FLAM MSG 4 Frankenstein Limes Access Method Chapter 6 6 2 Component list FLAM comes with the following components Installation procedure Load library with FLAM modules Library with object modules JCL
302. of the compressed file is independent from the record length of the original file This parameter should be chosen according only to the aspect of efficiency and functionality To avoid padding in blocks for fixed record length the eee should be a multiple of the record ength File transfer may require other record length e g 80 bytes fix for RJE IBM or 2036 bytes fix for transfer between SINIX and BS2000 with FT BS2000 Management class for allocation of the FLAMFILE Possible values name name of the SMS management class Default none Valid for compression Compression mode Possible values ADC 8 bit compression of highest efficiency CX7 transformable 7 bit compression CX8 8 bit compression CPU time optimised VR8 8 bit compression space optimised Default VR8 Valid for compression Note The compression mode is especially important for file transfer For local use only the 8 bit modes should be used ADC CX8 VR8 for better efficiency 27 2015 by limes datentechnik gmbh Interfaces MSGDDN MSGD MSGDISP MSGD MSGFILE MSGF 28 Frankenstein Limes Access Method Chapter 3 For file transfer on transparent lines also the 8 bit modes should be used For compressed text data only printable characters no control or tab characters shall be transferred via non transparent lines the 7 bit mode CX7 is appropriate Symbolic file name for message file MSGLINK Possible value
303. ok gt ok ok gt lt ok gt ok gt k ok ok ok ok gt ok ok gt ok gt K ok gt lt ok ok K gt K K ok ok ok ok ok ok ok ok ok ok FK ok ok FK ok ok K FK K ok K FK ok ok K ok ok ok K ok ok X K K K K K LTORG DROP R10 TITLE USRGKY USRGKY DS OD ENTRY USRGKY USING USRGKY R10 gt k gt lt K ok ok ok ok ok gt ok ok ok ok K FK ok FK FK ok ok FK ok ok ok ak FK ok ok X ok ok FK ok ok K ok K KR ok ok ok ok ok K FK FK ok ok FK ok ok OR R R ok ok OR OR OR NAME USRGKY FUNCTION READ RECORD WITH GIVEN RECORD KEY PARAMETER 1 lt gt WORKAREA 256F WORK AREA 2 lt RETCO F RETURN CODE 0 NO ERROR 1 RECORD TRUNCATED 2 END OF FILE 5 KEY NOT FOUND x 1 UNSUPPORTED FUNCTION X OFXXXXXX ELSE 3 lt RECLEN F RECORD LENGTH IN BYTES 4 lt RECORD XL RECORD WITH SEARCH KEY 5 gt BUFLEN LENGTH RECORD BUFFER BYTES T gt K gt lt gt lt ok gt lt gt gt gt ok ok ok gt gt gt gt gt gt gt ok gt gt ok K ok ok ok ok K ok ok K FK K ok ok ok ok ok ok FK FK gt K ok ok ok K ok FK FK K ok ok K K FK 9 2 9 FK K ok ok ok ok ok FK OK ok ok K K SAVE REGISTER AND LOAD PROGRAM REGISTER STM R14 R12 12 R13 LR R10 R15 LOAD PARAMETER LM R1 R5 0 R1 ADDRESS WORK AREA R12 R1 USING WORKAREA R12 READ RECORD HERE RETURN CODE RECORD NOT FOUND OH
304. ok K K R A X OH X X OH OH OH OH NAME USRGET FUNCTION READ A RECORD SEQUENTIAL PARAMETER 1 lt gt WORKAREA 256F WORK AREA 2 lt RETCO F RETURN CODE 0 NO ERROR 1 RECORD TRUNCATED 2 END OF FILE 3 EMPTY SLOT IN RELATIVE RECORD DATA SET 1 UNSUPPORTED FUNCTION X OFXXXXXX ELSE 7 3 RECLEN F RECORD LENGTH IN BYTES 4 lt RECORD XL RECORD 5 gt BUFLEN F LENGTH OF RECORD BUFFER IN BYTES gt k gt lt ok ok ok ok ok ok gt ok ok ok ok FK ok FK FK ok ok FK ok ak ok ok KKR R ok ok K K ok ak FK ok ok X ok ok FK ok ok K ok K KR ok ok ok ok ok K FK FK ok ok FK ok R OR OR ok OK OK OR OR R OH SAVE REGISTER AND LOAD PROGRAM REGISTER STM R14 R12 12 R13 LR R10 R15 LOAD PARAMETER LM R1 R5 0 R1 ADDRESS WORK AREA LR R12 R1 USING WORKAREA R12 READ A RECORD HERE RETURN CODE END OF FILE LA RO EOF ST RO 0 R2 RETURN FLAM V4 5 MVS Frankenstein Limes Access Method 55 2015 by limes datentechnik gmbh Application examples Chapter 5 LM R14 R12 12 R13 BR R14 RELEASE WORK AREA REGISTER DROP R12 gt K lt gt lt ok gt ok ok lt ok gt ok gt K ok ok ok ok gt gt K gt gt ok gt K ok gt lt ok ok ok gt K K ok ok ok gt K FK ok ok ok FK ok ok FK ok FK K FK K ok K oe ok ok K ok ok ok ok ok ok FK K ok K ok K LOCAL CONSTANTS gt lt
305. onds 4 lt RECORDS F Number of original records 5 BYTES F Number of original bytes 6 lt BYTEOFL F Overflow counter for original bytes 7 CMPRECS F Number of compressed records 8 CMPBYTES F Number of compressed bytes 9 lt CMPBYOFLF Overflow counter for compressed bytes 10 MEMBRMAC XL8 Member Mac With extremely big compressed files greater 4 gigabytes one word byte counters are not sufficient For this purpose the overflow counters are provided They allow to extend the counter to a double word 01 BYTEFIELD 05 BYTEOFL PIC 9 8 COMP SYNC 05 BYTES PIC 9 8 COMP SYNC 01 BYTECNT REDEFINES BYTEFIELD PIC S9 18 COMP SYNC 82 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 gt FLAMID F 2 lt RETCO F 0 1 5 otherwise 3 KEYLEN F 4 RECORD 5 CHECKMOD 0 1 2 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 7 Function FLMFKY The function FLMFKY Find Key can be used to search in an index sequential FLAMFILE for a record of the original file whose key is equal to or greater than a specified key value The specified value can be generic i e not all of the positions of the key value have to be specified uniquely The record found is the next record to be processed If FLMFKY does not find a record the old position is retained Identification Return code No error Invalid identificatio
306. onversion rules for names FLAMOUT FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates Compressing a number of files into a number of compressed files file By entering a partially qualified file name e g USER LIST USER A OBJ FL or specifying a list of files all the files are stored in compressed format in a number of compressed files N N relation The name of the FLAMFILE is then generated in accordance with a conversion rule to be specified e g FLAMFILE lt LIST CMP gt i e all files with the extension LIST are given the extension CMP In this way it is also possible to set all the compressed data of a run as members of a PO library see chapter 3 1 4 Example In the FLAMFILE PO library all members are given the name of the compressed list EXEC PGM FLAM PARM C FLAMIN USER LIST FLAMFILE lt USER LIST USER PO gt Decompressing group files As in the previous versions of FLAM it is possible to decompress the entire group file into an output file specified in the JCL file entering a conversion rule for the file name for decompression it is now possible for FLAM to create all the files automatically It makes no difference if the compressed data has been created under a different operating system VSE DPPX UNIX OS 2 All files are created using a file format appropriate to the MVS system The only prerequisite is that the file header
307. or code X 00030002 is returned member MAC sequence error The function has been completely executed The function has not been executed because it is illegal in this context e g FLMGET without successful FLMOPN FLAM has not been licensed or because there is insufficient memory available when a file is opened Return codes between 1 and 9 are warnings The function has been partially executed The user must decide whether the result is right or wrong A record has been shortened to the length of the record buffer the data can be processed in the length specified The end of the file has been reached while reading no data is transferred A gap has been found in a relative file the record length is zero When a record is converted to fixed format it is padded with fill characters A key is missing when reading from or is invalid when writing to an index sequential file The sequential read position is located on the record with the next highest key When positioning the position specified does not exist or the positioning desired is not possible The current position is retained When deleting there is no current record When reading in a group file a new file is starting no data is transferred The file header can be read if necessary The sequential read position is located on the first record of the new file Password cryptokey missing on decompression FLAMFILE was created using a password
308. or message if the compression syntax does not correspond with the call function code Also modifications in compressed data sample records and original data are detected via the check sums 17 2015 by limes datentechnik gmbh FLAM MVS User Manual Chapter 3 Interfaces FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces Content 3 Interfaces 3 1 FLAM Utility 3 3 1 1 Parameters 3 1 2 JCL for FLAM 39 3 1 3 Condition Codes 44 3 1 4 File names 45 3 1 4 1 File name list 45 3 1 4 2 Wildcard syntax 46 3 1 4 3 Selection rule for decompression 48 3 1 4 4 Conversion rule 49 3 2 Subprogram interface FLAMUP 53 3 3 Record level interface FLAMREC 56 3 3 1 Function FLMOPN 66 3 3 2 Function FLMOPD 67 3 3 3 Function FLMOPF 69 3 3 4 Function FLMCLS 71 3 3 5 Function FLMDEL 72 3 3 6 Function FLMDEL 73 3 3 7 Function FLMFKY 74 3 3 8 Function FLMFLU 75 3 3 9 Function FLMFRN 76 3 3 10 Function FLMGET 77 3 3 11 Function FLMGHD 78 3 3 12 Function FLMGKY 80 3 3 13 Function FLMGRN 81 3 3 14 Function FLMGTR 82 3 3 15 Function FLMGUH 83 3 3 16 Function FLMIKY 84 3 3 17 Function FLMLCR 85 3 3 18 Function FLMLOC 86 3 3 19 Function FLMPHD 87 3 3 20 Function FLMPKY 89 3 3 21 Function FLMPOS 90 FLAM V4 5 MVS 1 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces 2 Frankenstein Limes Access Method 3 3 22 3 3 23 3 3 24 3 3 25 3 3 26 3 3 27 3
309. ords backwards N records forwards Back to the start of the current file or to the previous file in a group file Beginning of the next file in a group file With OPEN INPUT and INOUT or OUTIN the pointer can positioned anywhere irrespective of whether the original file is index sequential or sequential With OPEN OUTPUT it is possible to create gaps in relative files by advancing the write pointer by N records FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Parameter 1 FLAMID F 2 lt RETCO F 0 1 3 UATTRLEN 1 3500 1 1750 4 USERATTR XLn FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 22 Function FLMPUH The function FLMPUH Put User Header writes user data into the file header of the FLAMFILE Identification Return code No error Invalid identification or function Length of file name or of area With 8 bit compressed data With 7 bit compressed data Mode CX7 User data as binary data string In CX7 this data is converted in such a way that the integrity of the FLAMFILE is not corrupted The user data itself remains in its original code during reading even during code conversions using heterogeneous data exchange 101 2015 by limes datentechnik gmbh Interfaces Chapter 3 3 3 23 Function FLMPUT With function FLMPUT original record is transferred for compression Parameters 1 FLAMID F Identification 2 lt RETCO F Return
310. ormat is known and utilized It permits a neutral future proof presentation which can be matched automatically to the new situation when the file is decompressed format conversion Certain files or file groups e g libraries are inevitably reorganized whenever a file is compressed and decompressed again with FLAM The compressed file the FLAMFILE can only be formatted individually with FLAM because this temporary file may have to satisfy completely different requirements from the original file for instance in connection with file transfers portability FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction Example IBM s RJE is only capable of transferring files with a fixed record format FLAM compresses the file in question and turns it into a FLAMFILE in RJE format When it is decompressed another format conversion takes place without the user even noticing FLAM can also bundle so called load modules stored in an MVS library together in a FLAM group file i e concatenate the compressed files and export them to a PC If this data is later transferred back to an MVS system decompressed there with FLAM and re saved in a library it can be called up and loaded from the MVS system in the usual way If printable data is coded in such a way that it can be converted unambiguously 1 1 from EBCDIC to ASCII or vice versa this conversion ca
311. ot necessary to make further specifications 5 Assignment of the input file for compression 6 Assignment of the protocol file In this example we print the protocol directly via JES FLAM V4 5 MVS 3 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples Chapter 5 7 Assignment of a parameter file In this example the additional parameters are specified directly within the job stream All specified parameters will overwrite the default parameters 4 Frankenstein Limes Access Method FLAM V4 43 MVS 2015 by limes datentechnik gmbh Chapter 5 Application examples The resulting protocol is 1 FLM0448 COPYRIGHT 1989 2005 BY LIMES DATENTECHNIK TEST 2006182 2 FLM0428 RECEIVED C INFO YES 3 FLM0410 DATA SET NAME JES2 J0B01901 10000101 FLM0428 RECEIVED 4096 FLM0428 RECEIVED MODE VR8 4 FLM0400 FLAM COMPRESSION VERSION 4 1A00 ACTIVE 5 FLM0410 DATA SET NAME USER DAT FB FLM0415 USED PARAMETER ACCESS 106 FLM0415 USED PARAMETER IDSORG SEQUENT FLM0415 USED PARAMETER IRECFORM FIXBLK FLM0415 USED PARAMETER IRECSIZE 80 FLM0415 USED PARAMETER IBLKSIZE 3120 6 FLM0410 DATA SET NAME USER DAT CMP FLM0415 USED PARAMETER MODE VR8 FLM0415 USED PARAMETER MAXBUFF 4096 FLM0415 USED PARAMETER MAXREC 255 FLM0415 USED PARAMETER MAXSIZE 512 FLM0415 USED PARAMETER DSORG SEQUENT FLM0415 USED PARAMETER RECFORM FIXBLK FLM0415 USED PARAMETER BLKSIZ
312. plication examples 5 2 2 Decompression FLAM reads here the compressed file from the last example The decompressed records are passed via the record level interface to the COBOL program and are finally written into file OUTDAT IDENTIFICATION DIVISION PROGRAM ID AUTHOR A OH OH OH OH SAMPLEID LIMES DATENTECHNIK GMBH SAMPLE1D READS WITH FLAM COMPRESSED RECORDS AND WRITES THE RECEIVED DECOMPRESSED DATA IN A SEQUENTIAL DATA SET IN THIS EXAMPLE THE FLAMFILE CAN BE ANY DATA SET IN MVS BS2000 VSAM IN DOS VSE HERE FLAM IS USED FOR READ ACCESSES TO COMPRESSED DATA RECORDS RECEIVED ARE WRITTEN TO A SEQUENTIAL FILE ENVIRONMENT DIVISION CONFIGURATION SECTION SPECIAL NAMES SYSOUT IS OUT PUT INPUT OUTPUT SECTION FILE CONTROL SELECT OUTDAT ASSIGN TO SYS010 S DATOUT ACCESS MODE IS SEQUENTIAL DATA DIVISION FILE SECTION FD OUTDAT RECORD CONTAINS 80 CHARACTERS RECORDING MODE F 01 OUTDAT RECORD 02 FILLER X 80 WORKING STORAGE SECTION 77 OPERATION PIC X 6 01 FLAM PARAMETER USED FOR ALL FLAM CALLS 02 FILE ID PIC S9 8 COMP SYNC 02 RETCO PIC S9 8 COMP SYNC 88 FLAMOK VALUE 0 88 FILEID ERR VALUE 1 88 MEMORY ERR VALUE 1 88 REC TRUNCATED VALUE 1 FLAM V4 5 MVS 17 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Application examples
313. pplications More remote controlling possible due to volume reduction e More data exchange via line possible due to volume reduction More swapping to emergency computer centres possible due to volume reduction FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction Automated remote archiving possible Automated remote restore possible Better data revision due to automated procedures More data integrity due to check sum technique e More data security due to FLAM typical data encryption Higher efficiency of additional cryptographic methods Data storage Reduction of data storage on all media Fewer requirements for physical space Less multi volume files Disc Tape Floppy e Fewer requirements for power air conditioning protection e Less fixed capital required Less overhead in archive and more continuity Less I O less work load for channels Probably fewer controllers I O ports buffers e Acceleration of batch copy processes and of backup restart processes thus more resources for automation of computer centre Shorter processing times and shifts Additional data protection due to FLAM access Integrated protection against manipulation due to FLAM syntax Process typical data encryption Effective protection of logical deleted data Innovative combined access methods
314. press data set or member 0 Processing options Specify original data set or member blank for DUMMY DATA SET NAME gt Specify FLAMFILE data set or member blank for DUMMY DATA SET NAME DATASET CMP Reuse existing data sets N Y N yes no Specify Listing for temporary blank for none DATA SET NAME gt FLAM Parameter gt gt Submit F F B Foreground or Batch the content of FLAMFILE DATASET CMP analogously ISPF 3 4 will be displayed FLAMFILE TOC DATASET CMP Row 1 of 2170 MODE VR8 MAXBUFFER 64 FLAMCODE EBCD Original Data Set Name Dsorg Recfm Lrecl Blksi Space FLAMT AD0001NP LIST SEQ FBM 133 3059 300 K FLAMT AD0001NP CX8 SEQ FB 80 23440 50 K FLAMT AD0191NP LIST SEQ FBM 133 3059 500 K FLAMT AD0192NP LIST SEQ FBM 133 3059 250 K FLAMT EXD4TO3 LIST SEQ FBM 133 3059 150 K FLAMT EXKINUL LIST SEQ FBM 133 3059 50 K FLAMT EXK3TO4 LIST SEQ F 133 133 350 K FLAMT FLAM CMP SEQ FB 512 23552 12800 K FLAMT FLAMDIR LIST SEQ FBM 133 3059 200 K FLAMT FLAMFLN LIST SEQ F 133 133 3150 K FLAM V4 5 MVS 17 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh The FLAM user interface FLAMT FLAMT FLAMT FLAMT FLAMT FLAMT FLAMT K FLAMT K FLAMG001 LIST FLAMG002 LIST FLAMHELP LIST FLAMNUC LIST FLAMTADC LIST FLAMTS LIST FLAMTSO1 DAT1 FLAMTS02 DAT2 COMMAND gt 18 Frankenstein Limes Access Method SEQ SEQ S
315. put is computed If relative files are decompressed the number of records after the removal of gaps is computed in addition For conversion into fixed record format the resulting number of bytes is displayed This parameter corresponds to the INFO parameter see INFO SPACE1 Primary space allocation of the FLAMFILE Megabytes Possible values 1 4095 Default 2 Valid for compression FLAM V4 5 MVS 39 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces SPACE2 SPLITMODE SPLITM SPLITNUMBER SPLITN 40 Frankenstein Limes Access Method Chapter 3 Secondary space allocation of the FLAMFILE in Megabytes Possible values 1 4095 Default 40 Valid for compression Mode to split a FLAMFILE Possible values NONE no split SERIAL serial split PARALLEL parallel split Default NONE Valid for compression Note Splitting of FLAMFILEs has been introduced in FLAM V4 0 and is not compatible to older versions The split information is stored in the FLAMFILE So it is not necessary to use any parameter on decompression File or DD names must have numeric characters ch 3 1 5 or example in ch 5 1 3 Number of fragments on parallel split Possible values 2 4 number of simultaneously written files Default 4 Valid for compression Note The information is stored in the FLAMFILE So it is not necessary to use any parameter on decompression FLAM V4 5 MVS
316. r KEYDISP DEL is specified If a sequential file is transformed into an index sequential file the original records must contain a field with key properties unique and sorted in ascending order Otherwise a printable key or arbitrary length can be inserted at the key position KEYDISP NEW Records of length 0 or gaps within relative files are removed if the file is converted into index sequential format If relative files are converted into sequential files gaps are converted into records with length 0 For a conversion into fixed format gaps are removed If files are converted into relative format records of length 0 are represented as gaps except if records of length 0 can be represented in the relative file format LDS files are managed on the disk by VSAM in units of 4096 bytes If there is an internal format it is known only to the user and it is not used by VSAM 35 2015 by limes datentechnik gmbh Method of Operation Chapter 4 In this regard FLAM offers support not only for compression but also for decompression 36 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 Method of Operation Through the use of the parameters IRECSIZE IBLKSIZE IDSORG LDS for input ORECSIZE OBLKSIZE ODSORG LDS for output it is possible to specify internal fixed record lengths with appropriate blocking There is no requirement for the block size to
317. r of file name area 17 o FILENAME CLn File name Note In the current version only one key is supported 3 4 2 Function USRCLS The interface is closed for a given file Parameters 1 WORKAREA 256F Working storage area 2 lt RETCO F Return code 0 1 Invalid function X OFXXXXXX Other error codes 3 4 3 Function USRGET Head record sequentially and pass Parameters 1 WORKAREA 256F Working storage area 2 lt RETCO F Return code z 0 1 Function invalid 1 Record was truncated 2 END OF FILE found 3 Gap in relative file found X OFXXXXXX Other error codes 3 RECLEN F Length of passed record in bytes 4 RECORD XLn Original record Data 5 BUFLEN F Length of available record buffer in bytes 114 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 3 Interfaces 3 4 4 Function USRPUT Accept record and write sequentially Parameters 1 WORKAREA 256F Working storage area 2 lt RETCO F Return code 0 1 Invalid function 1 Record was truncated 4 Record was filled with padding characters PADCHAR X OFXXXXXX Other error codes 3 RECLEN F Length of passed record in bytes 4 RECORD XLn Original record Data 3 4 5 Function USRGKY Head record with specified key and pass The key value is filled into the record at the key position defined in KEYDESC Parameters 1 WORKAREA 2
318. r the access method FLAM without sacrificing the different system specific access methods of the particular file management system FLAMFILE be converted during decompression into any file or record format as specified by the user This guarantees continuity An archived FLAMFILE can always be processed especially decompressed on any system This insures independency from particular operating system However it must be made sure that the storage medium can be read by the hardware e g tape unit Also the FLAMFILE should not be converted into a system dependent format of any given archiving product FLAM encrypts data and seals the compressed files using checksums for better protection The FLAMFILE has internal synchronisation points which allow to restart decompression after an erroneous data block caused by physical defects FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 Introduction Requirements for revision and controlling are fully supported FLAM V4 5 MVS 3 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Introduction Interfaces Operating systems Standards 4 Frankenstein Limes Access Method Chapter 1 FLAM provides a variety of interfaces derived from a real file management system with index sequential access FLAM can be executed as a subprogram under control of an application User exits within FLAM allow pre and postprocessing of uncompressed
319. ral return codes at the various interfaces FLAMUP FLAMREC USERIO The values below are decimal numbers Where error codes relate to files the file is marked in the most significant byte X AF error on accessing FLAMOUT X CF FLAMPAR X EF FLAMIN X FF FLAMFILE FLAM uses this identifier to select a suitable message The last three bytes are the error code of the special data management routine e g VSAM PO Data Sets Security violations are marked in the 2 byte 00kkmmmm kk identifies where the error was detected kk 1 header 2 segment 3 membertrailer 4 filetrailer mmmm describes the error hexadecimal 0001 after encryption 0002 2 sequence MAC 0004 MAC3 Mac on macs 0010 missing data 0020 data inserted 0040 data updated 0080 record counter compression 0100 byte counter compression 0200 record counter original data 0400 byte counter original data 0800 chaining on FLAM decryption Multiple errors are or ed e g 0180 record and byte counter both in error Security violations are detected during decompression If the error situation is well known and acceptable use parameter SECURE INFO IGNORE to ignore the error 23 2015 by limes datentechnik gmbh Messages Return code 24 Frankenstein Limes Access Method Chapter 8 Positioning into a FLAMFILE and decompressing a member of a group FLAMFILE implies the usage of SECUREINFO MEMBER else an err
320. rameter Having a high variation in the record length distribution you probably have very inhomogeneous data different record lengths record types So one matrix differs highly from the other in length Having max record length and one matrix per record is best But increasing the cataloged RECSIZE is required when many records are needed for one matrix FLAM V4 5 MVS 137 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Interfaces 138 Frankenstein Limes Access Method Chapter 3 3 8 2 FLAMCTAB FLAMCTAB reads a file DD name TABLE and creates a translation table module look for parameter TRANSLATE from the input data in an output LOAD library DD Name FLAMLIB So it is no longer necessary to use an Assembler source with assembling and binding a loadable module A translation table consists of 256 byte of data These data have to be stored in the input file This file may have any data organization or format as required by your organization Records with an asterisk in the first column are regarded as comment lines Input data exceeding 256 bytes are truncated to 256 bytes a warning will be logged and the program ends with cond code 4 Shorter input leads to an unexpected EOF end of file The file may be edited with ISPF or any other editor or program But it is recommended to use the table editor of the FLAM Windows distribution You can create any table interactively
321. rankenstein Limes Access Method Chapter 3 3 3 26 Function FLMSET Function FLMSET sets parameter that open functions do not support It is called before FLMOPD and or FLMOPF A call at the wrong moment will be rejected with return code 90 Note In opposite to the other function calls the field RETCO was expanded into two words 2 x 4 byte The first word is still the return code the second word is the info code The info code is the parameter in error on return Identification 2F Return code Info code no error Infocode 0 else the parameter in error is returned in INFCO not allowed e g SPLITMO after FLMOPD unknown parameter unknown parameter value first parameter first parameter value last parameter F last parameter value Note Multiple parameter can be obtained in one call It is necessary to mark the end of the parameter list Most compilers do it automatically but in Assembler the last parameter address has to be flagged A X 80000000 VALUEn FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Following parameters are to be set before FLMOPD Description Parameter Value Splitmode 1 0 1 2 none serial parallel Splitnumber 2 2 4 Splitsize 3 1 4095 Value in megabytes Parameter to allocate a FLAMFILE Primary Space 4 1 4095 value in megabytes Secondary Space 5 1 4095 value in megabytes Vo
322. rd and backward from the current position as well as absolute positioning from file start or file end is possible With this function a record with a specified key is read The corresponding key is contained in the record area at that position and in that length as specified with the parameter KEYDESC during USROPN Reading via key also sets the current read pointer for following USRGET function calls If no record is found this must be signalled via a return code Afterwards it is possible to read the record with the nearest higher key with function USRGET With this function a record with a specified key is updated or inserted If the record has the same key as the record last read the old record is replaced by the new record Otherwise the record is inserted If this is not possible duplicate keys may be forbidden this must be signalled via appropriate return code The writing of records with a key also updates the position of the current write pointer With this function the last read record is deleted 13 2015 by limes datentechnik gmbh Method of Operation Chapter 4 Schematic presentation of compression with User 1 0 FLAM USROPN USRCLS USRGET USRPUT start of program a FLAMIN lt J FLAMFILE q O FLAMIN repeat until matrix is filled up FRI FLAMIN lt gt FLAMFILE repeat until matrix is filled up Ze ee FLAMFILE RI FLAMIN lt FLAMIN FLAMIN Wo FLAMFILE r
323. rd level interface FLAM V4 5 MVS 11 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 4 User VO The user can replace the FLAM file accesses methods with own file access methods by using the User I O Interface These access methods are used by the FLAM utility for accessing the original file to the compressed file and for the target file In the record level interface however only access routines for the compressed file exist The use of user defined access routines can be specified for each file separately via the parameters DEVICE USER or IDEVCE ODEVICE However the user provided I O routines must be linked to the FLAM utility or to the FLAM record level interface before The following routines must be provided by the user Open and Close USROPN USRCLS sequential Read and Write USRPUT USRGET optionally random access Read and Write USRPKY USRGKY Delete and Positioning USRDEL USRPOS How it works 1 USROPN For each allocated file this function is called once and only once A working area of 1024 byte is passed to the routine This working area acts as a file specific memory and is passed from function to function until USRCLS is called Files are identified via symbolic file names The access mode is specified in parameter OPENMODE INPUT OUTPUT INOUT OUTIN File format and file attributes are specified in the parameter RECFORM RECSIZE BLKSIZE
324. record is reconstructed during decompression This situation is signalled with a return code of 1 21 2015 by limes datentechnik gmbh Method of Operation Chapter 4 4 8 The FLAMFILE 4 8 1 General description Independently from the Frankenstein Limes compression method FLAM establishes a concept for file conversion that satisfies compatibility requirements aS much as possible compressed file created by FLAM is a logical image of the records of the original file This is the basis for any conversion with FLAM The compressed file the FLAMFILE is stored by default as a sequential file in accordance with the above mentioned principle for random access index sequential storage is also possible The problems which occur with uncompressed files when the requirements are comparable must therefore not be simply ignored due to the fact that FLAM is being used Some of these problems are made easier to solve by the FLAM concept Others remain despite FLAM and must therefore be solved along application specific or organizational lines as before the only difference being that the original file can be substituted by a FLAMFILE FLAM does not solve the problem of incompatible record and field structures in heterogeneous environments Sometimes users are totally unaware about these problems FLAM offers user exits that allow to embed special conversion routines As FLAM is designed as an open system it will be possible to o
325. rectory of a group FLAMFILE like ISPF 3 4 It is possible to browse a member of this FLAMFILE decompressing on the fly or to decompress a member to store on to disk 2015 by limes datentechnik gmbh Documentation updates 16 Frankenstein Limes Access Method Documentation updates 3 FLAM V2 7 Changes in manual from October 1992 FLAM V2 6 by this supplement from August 1993 FLAM V2 7 FLAM V2 7 is a functional improvement of version 2 6 It is upward compatible to all previous versions of FLAM Compressed data from versions 2 6 and 2 7 are identical and freely exchangeable as long as no new functions or file formats are used In addition to new functions being added to the record level interface enhancements have also been made to the FLAM utility Support of other file formats VSAM Linear Data Set LDS files can be assigned as input or output files For performance reasons FLAM reads or writes 4 KB LDS blocks at a time in units of 64 KB by default It is also possible to specify a logical record and block length in which the LDS file is to be read or written e g FLAMIN LDS FILE IRECSIZE 100 IBLKSIZE 65536 IDSORG LDS i e the LDS file has fixed records of 100 bytes length with blocking of 64 KB Since it is possible to decompress into LDS files from any file format and still set up a structure FLAM is particularly well suited to loading for test purposes PO libraries PO libraries can be comp
326. res The FLAM compression technique which is based on structural redundancies has had to be extended to take account of context related views FLAM was originally and still is an access method designed to facilitate efficient working with compressed data By definition this philosophy forbids FLAM from creating or using any kind of temporary files Preliminary analyses for determining the most suitable compression technique and or multiple step procedures quite simply irreconcilable with demands for a high performance direct access method for autonomous segments with a concept that is essentially invariable across almost all platforms from PCs to mainframes The user should be allowed to compress as early as it appears useful to do so and decompress as late FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction as necessary in isolated cases retrieval where possible only locally and if appropriate selectively The FLAMFILE should be capable of being used consistently across all platforms for storage archiving and file transfers including backups transferring to external storage as a standard tool for every situation 9 2015 by limes datentechnik gmbh Introduction 10 Frankenstein Limes Access Method Chapter 1 MODE ADC Advanced Data Compression compresses in a very straightforward way The relative opti
327. ressed and decompressed either collectively selectively FLAMIN USER PO MEM The directory entries are left unchanged this also applies to load libraries ALIAS members are supported In particular the FLAMFILE can itself be a PO file When compressed library data is transferred to a computer running under different operating system e g BS2000 it is still possible to create a library e g LMS again from this data Decompression can be performed completely or it is also possible to specifically select individual members for decompression FLAM V4 5 MVS 2015 by limes datentechnik gmbh WILDCARD syntax in input file Group file FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates Automatic creation of files when JCL is not specified By entering parameters FLAMIN filename FLAM FILE filename FLAMOUT filename the specified files are automatically allocated by FLAM if a JCL has not been specified If FLAMOUT lt gt is specified all values for decompression such as the file name file type record format record length block length file size for data compressed under MVS are taken from the file header of the FLAMFILE This means that the original file is completely reorganized and recreated with one extent on the disk A specified JCL takes precedence over parameters settings SMS is required in order for files to be created see chapter 3 1 2 1 Compressing a
328. ression of the USER DATI PS file from the FLAMFILE and it is written into the PO library USER2 POLIB as the member MEMBER This then allows the changing of file names during decompression by means of JCL specifications 3 1 4 4 Conversion rule This simple method of selecting files for decompression by means of a selection rule can however not normally be used for compressed data that has been generated under a different operating system heterogeneous exchange of compressed data The file names do not normally conform to the rules of the MVS operating system and can therefore not be used without being modified For this purpose it is possible to specify a conversion rule as the parameter for the output file This character string describes how a new name is to be generated from a file name selected At the same time precisely those files that conform to the rule selection rule are selected A conversion rule is a selection rule that is extended by an equals sign and a second character string In order to distinguish it from a genuine file name it must be written between pointed brackets lt gt The rule comprises a character string that may contain an asterisk as a substitute character for any number of characters or a percent sign as a substitute for precisely character An ignore character apostrophe is also defined Each asterisk or percent sign in the selection rule must be assi
329. rity reasons data manipulation and to identify problems of file transfer products loss or change of data during transmission Another modification is the so called hardware ID FLAM forms a 32 bit code from the hardware information about the environment This code is incorporated in the compressed data to create the unique FLAMFILE It is like a hard and software stamp to identify the compressor but without knowing the name of the compressor itself it is unique but anonymous Data protection and data security especially protection against unauthorized attackers always has top priority With MODE ADC all compressed files can be enciphered with a password Without the knowledge of the password it is impossible to decompress the FLAMFILE The PASSWORD itself is allowed to have up to 64 bytes 512 bits It can be specified either in 2015 by limes datentechnik gmbh Documentation updates printable format with C or as a hexadecimal string with X 14 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Documentation updates Enhancements of the A new function is added to the record level interface Record Level Interface FLMPWD Enhancements of the user interface FLTOC FLAM V4 5 MVS Frankenstein Limes Access Method passes password for compression or decompression using MODE ADC A new CLIST procedure is added to use in ISPF function 3 4 Shows the di
330. rom previous versions are presented within sharp brackets This key words should not be used any longer Because of compatibility reasons all parameters are presented although not all parameters are evaluated under MVS Key word parameters can be specified in two different modes as usual under MVS parameterO parameter1 value1l parameter2 value2 Or parameterO parameterl valuel parameter2 value2 A string value file names module names password may be passed as C characters or X hexadecimal All string parameters are assigned with blanks if NONE or no value is specified parameter NONE or parameter NONE or parameter parameter The sequence of parameters is arbitrary if not otherwise specified Only parameters that differ from the default values must be specified In the following we describe all parameters alphabetic order 7 2015 by limes datentechnik gmbh Interfaces ACCESS ACC BLKSIZE BLKS CLIMIT CLI 8 Frankenstein Limes Access Method Chapter 3 Parameter may be abbreviated as long as they stay unique Otherwise the first matching entry of the following summary is used Access method for the input or output file Possible values LOG logical access by record PHY physical access by block MIX physical access by block with resolution into records Default LOG Valid for compression decompression Note Ignored un
331. s DD NAME with max 8 characters Default FLPRINT Valid for compression decompression Note With this parameter the DD NAME in the DD command can be changed Device selection for message output Possible values TERMINAL Currently not supported MSGFILE Output into List file SYSTEM Output on console with WTO ROUTCDE 11 Default MSGFILE Valid for compression decompression Note The MSGDISP parameter should be contained in the first input line Otherwise it has no effect File name for message file Possible values File name with max 54 characters Default no name Valid for compression decompression FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 OBLKSIZE OBLK OCLOSDISP OCLO ODATACLAS ODATAC ODDN FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Note Specifying the file name is an alternative to allocating the file by means of a DD statement Block length of the output file Possible values 0 32760 Default 0 Valid for decompression Note value of zero leads to system determined blocksize for the output data set Final processing of tape output file Possible values REWIND Rewind to tape start UNLOAD Rewind and unload tape LEAVE No rewind Default REWIND Valid for decompression Note Currently not supported Please use JCL DD statement to control final processing Data storage class for output file Possible v
332. s Access Method Interfaces 3 5 4 Input compressed data EXD20 In this user exit the compressed records are passed to a user module immediately after they are read from the compressed file This user exit can be used with the FLAM utility or with the subprogram FLAMUP and in the record level interface FLAMREC In this user exit records can be accepted modified and deleted The exit is activated via the parameter EXD20 name The user exit module must be contained in the library that has been assigned with the STEPLIB command free choice max 8 characters Address of parameter list Points to save area 18 words Contains return address Contains call address Functions code First call for file after OPEN Record passed Last call for file before CLOSE Return code Accept record no error Do not accept record Insert record Enforce end of decompression Error in exit abnormal termination Record pointer Record length maximum 32760 During the first call the working storage area symbolic file name of the original file within the first 8 characters The rest of the area is padded with x 00 This area can be used by the user exit module for any purpose With each call this working storage area is made available again with the old content Note If a record shall be extended or inserted the necessary working storage area must be provided by the user exit module 125 2015 by limes datentechnik gmbh
333. s Method Chapter 8 NO SPLITS EXCEEDS MAXIMUM OF nn A FLAMFILE has been splitted parallel in more fragments than the actual version is able to read The actual version brings up to nn fragments together Please use the corresponding newer version of FLAM DCB ATTRIBUTES CHANGED The file attributes for the target file differ from that of the original file The file is converted into the new format None or use other file format for target file DCB PARAM OLD NEW Listing of the original file attributes and the file attributes used for decompression None or define target file differently RECORD TRUNCATED A record was truncated The decompressed file contains one ore more records whose redord length is longer than the specified record length in the volume catalogue If TRUNCATE NO is set the program is terminated with error To enforce conversion the program execution has to be repeated with parameter TRUNCATE YES Assign a file with a bigger record length for output OLD Protocol of the FLAM file header File name of original file Original file code Original file organization Original file format FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 OLD RECSIZE OLD BLKSIZE OLD KEYPOS OLD KEYLEN Action FLM0483 Explanation Action FLMO485 Explanation Action Note FLM0487 Explanation Action FLMO488 Explanation FLAM V4 5 MVS Fran
334. s allowing optimum presentation of 2015 by limes datentechnik gmbh Documentation updates compressed data to be selected for ASCII data on the host too 26 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates FLAMFILE in STREAM format Problems frequently arise with respect to the record length when transferring binary files from MS DOS 05 2 and UNIX computers to host systems The reason is that the transmitting operating systems either do not support or do not uniformly support record lengths for binary files or that the file transfer programs often do not allow for the record length to be specified As a result a binary file is then cut up by file transfer into sections of equal length and these sections are stored as records on the host system The original record length is lost in the process and FLAM is not able to detect the structure of the original compressed file This problem is remedied by the integrated decompression exit STREAM which is able to edit a wrapped binary compressed file CX8 VR8 in such a way that serial decompression is possible This exit is automatically activated if in the first record an inconsistency is detected between the FLAM record length and the DVS record length when reading a sequential compressed file The STREAM exit can also be activated explicitly by the user w
335. s available for MVS VSE DPPX 370 DPPX 8100 AIX 6000 BS2000 SINIX all processors VMS STRATUS TANDEM MS DOS OS 2 SCO UNIX SCO XENIX UNIX V UNIX for HP NCR and UNISYS systems A FLAM nucleus on COBOL basis is available for OS 1100 from UNISYS Other implementations are planned for VM AS 400 APPLE MAC CTOS 05 3 VS and other UNIX systems Compatible interfaces implementations provide compatible XS ESA supported subprogram interfaces This allows not only to move compressed data in the FLAMFILE from system to system It is also possible to do this with application programs containing FLAM calls All call interfaces of previous versions are supported in an upward compatible way On all 370 compatible systems MVS DOS VSE BS2000 etc the system independent program parts are identical FLAM is completely reentrant a can run under all address modes 24 and 31 it FLAMFILE The restriction that the FLAMFIILE must be a sequential PS file is removed All formats and file organizations for the original file are now supported for the compressed file too PS IS VSAM ESDS KSDS RRDS Record level interface In version 2 5A a record level interface is provided for the first time This interface allows to 28 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Documentation updates process multiple files also This interface provides the usual calls for file access li
336. s case The procedure FLAM JOBLIB INSTO2 contains the JCL for parameter generation It must be adapted to the user requirements IEF097I FLAM25I2 USER FLAM27 ASSIGNED ICH700011 FLAM27 LAST ACCESS AT 11 15 50 ON TUESDAY HASP373 FLAM27I2 STARTED INIT A CLASS A SYS IEF4031 FLAM27I2 STARTED 11 17 55 TIMINGS MINS JOBNAME STEPNAME PROCSTEP RC EXCP CONN TCB FLAM2712 5 00 197 187 00 FLAM2712 STEP2 00 606 1440 00 FLAM27I2 STEP3 04 22 74 IEF404I FLAM27I2 ENDED TIME 11 18 03 FLAM27I2 ENDED NAME LIMES 06172 5919 0 TOTAL TCB CPU HASP395 FLAM27I2 ENDED 1 FLAM27I2 JOB XXXXXXXX LIMES 6172 5919 CLASS A TIME 8 MSGLEVEL 1 1 MSGCLASSzX NOTIFY FLAM27 sk ke ook ok ok ke EK GENERATION OF FLAM DEFAULT PARAMETER INSTO2 x ALL FLAM PARAMETER CAN BE ALTERED TO YOUR DEFAULT VALUE THE NOT GIVEN PARAMETER REMAIN AS THEY WERE BEFORE INFO HOLD AS PARM VALUE FOR FLAMGEN DISPLAYS THE ACTUAL FLAM DEFAULT PARAMETER THE JOB CONTAINS THE FOLLOWING STEPS 1 GENERATES NEW DEFAULT PARAMETER 2 LINKS NEW MODULES 3 SHOWS THE GENERATED PARAMETER OH X OH OH K KR ok ok ok ok FK FK ok ok KR ok R FK
337. s of the specific DMS FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Documentation updates Keys Protocol Statistics User interface 32 Frankenstein Limes Access Method During conversion between sequential and index sequential files it is possible to generate or delete keys if required The key position of index sequential files is adapted automatically if a file is converted from fixed to variable record format or vice versa The key position is stored in a system independent way and is independent from the record format too The parameter protocol has been improved and unified At the other hand the message layout was kept as close to the old form as possible During decompression the old FLAM version is displayed now and the size of the matrix buffer and the compression method are documented as well The function INFO HOLD can now be used too with compression to obtain the specified parameters Statistical data is evaluated based on true data without length fields and delimiter strings So the resulting values are independent from record format and operating system A user interface under TSO ISPF has been developed to support the user It enables the use of FLAM without having to deal with JCL statements for TSO or batch processing FLAM V4 5 MVS 2015 by limes datentechnik gmbh FLAM V4 5 MVS Frankenstein Limes Access Method Documentation updates
338. sage output Timing File input output FLAM record level interface FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 0442 Explanation Action FLM0443 Explanation 30 31 32 33 34 35 36 37 38 39 40 43 49 52 98 Action FLM0444 Explanation Action FLM0445 FLAM V4 5 MVS Frankenstein Limes Access Method Messages DMS ERROR CODE DD NAME During processing of the VSAM file or PO data set with the reported DD name an error has occurred Analyze error code and correct file FLAM ERROR CODE DD NAME During processing of the file with the reported DD name an error has occurred Explanation of the error code Input file empty Input file does not exist Illegal open mode Illegal file type Illegal record format Illegal record length Illegal block length Illegal key position Illegal key length Illegal file name Module or table cannot be loaded Abort caused by user exit Too many or invalid keys Not all files were processed Analyze error code and correct file accordingly COMPRESSION LIMIT WARNING Compression ratio is worse than the specified limit see CLIMIT 3 11 Condition Code 80 is set None dae Message of the KMEXIT module 11 2015 by limes datentechnik gmbh Messages Explanation Action FLM0448 Explanation Action FLMO449 Explanation Action FLMO450 Explanation Action FLMO456 Expla
339. sed data without the additional step via intermediate files All interfaces are designed in regard to higher level programming languages like COBOL Only in cases where the usage of address pointers is a conditio sine qua non assembler or equivalent e g interfaces must be used 3 1 FLAM Utility FLAM is able to compress complete files and to reconstruct complete files from compressed data For original files all file and record formats of type PS PO or VSAM for disc or tape are supported The user interface for file DEVICE USER allows to support additional access methods The user exits allow to pre and post process original data as well as compressed data The user exits are implemented as subprograms that are loaded dynamically during execution time from a module library STEPLIB Using predefined or dynamically loaded conversion tables character conversion can be applied to the original data It is possible to change file and record formats during decompression Conversion from variable to fixed format or from sequential to index sequential organization is possible The compressed data FLAMFILE can be stored in sequential or index sequential format in any record or file format The record and file format of the compressed data is independent from the record and file format of the original data An index sequential FLAMFILE provides efficient random access to original data 3 2015 by limes datentechn
340. ses original records and sample records on a record by record basis When only serial compression is used function code 0 BIFLAMK only processes original records and compiles them into compressed records If bi serial compression with sample function codes 8 10 12 14 is used an original record is processed in combination with a sample record to create a compressed record For storage of the sample records function codes 9 11 13 15 only the sample record is processed to create a compressed record 20 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation 4 7 Bi serial decompression compressed record pattern record Bi workarea optional datentechnik uncompresse d record Data flow during decompression with BIFLAMD BIFLAMD processes compressed records record by record if necessary in combination with a sample record and creates an original record or a sample record During serial decompression function code 0 the compressed record only is processed and will create always an original record Sample records are not necessary During bi serial compression function code 8 always one compressed record is processed at a time Depending on compression the sample record is read in addition and the original record is created If a sample record was compressed during compression this sample
341. sion via the internal file name the name is the range from FILEOOO1 for the first file to FILE9999 for the 9999th file D FLAMOUT lt FILE0003 USER DAT THREE gt is for the third file in the group file or D FLAMOUT lt FILE USER DAT gt is for decompressing all files according to the conversion rule Comment As a final rescue option for automatic generation of the decompressed data with impossible file names from foreign operating systems the parameter FILEINFO NO can be specified for the decompression process With this parameter the stored file names are ignored and the internal names FILEOO01 to FILE9999 are generated These must then be converted to valid file names by means of a conversion rule FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 FILEID F 2 lt RETCO F 0 Interfaces 3 2 Subprogram interface FLAMUP In the following we describe the interface using ASSEMBLER language Therefore the following table shows how the different data types must be defined in COBOL and FORTRAN With FLAMUP it is possible to compress a file completely or to decompress a compressed file Similar to the FLAM utility the parameters must be passed to FLAMUP FLAMUP uses the same parameters as the FLAM utility All parameters defaults can be defined during generation F PIC S9 8 INTEGER 4 Aligned COMP SYNC Fullword H PIC S9 4 INTEGER 2 Aligned COMP SY
342. small testfile contains only 6 VSAM records 5 records build one FLAM matrix one matrix ist stored in one VSAM record Therfore this file contains two FLAM matrixes When your file shows similar results we would recommend to increase the RECSIZE of the VSAM file by the factor 5 For best perfomance one VSAM record should contain one FLAM matrix Here are 4 full records and one smaller necessary to hold one matrix That means FLAM has to read 5 VSAM records to decompress one matrix More records to read decreases performance in direct access mode FLAM V4 5 MVS 35 Frankenstein Limes Access Method 2015 by limes datentechnik gmbh FLAM MVS User Manual Appendix FLAM V4 5 MVS Frankenstein Limes Access Method 2015by limes datentechnik gmbh Code translation tables 1 wn u m Uu 0 Ge gt N LN N a a a a FF 0C esp ppp pe REPE ss les fe EEE Pe d di EEE nd d ae E AE s s ste bets bale ls l hs Jos fot ls E le Je fab lo Jos e pri Si A STX ETX HT DEL 02 03 1A 09 1A 7F 1A 1A 1A 08 Translation table from EBCDIC to ASCII E A TRANSLATE Frankenstein Limes Access Method 2015 by limes datentechnik gmbh ELAM V4 5 MVS m O nu mn
343. ssion an output file must be assigned FLAMOUT DD DSN decompressed file DISP NEW CATLG UNIT SPACE With this specification a decompressed file will be created that has identical characteristics regarding file format record and block length with the original file 45 2015 by limes datentechnik gmbh Interfaces 46 Frankenstein Limes Access Method Chapter 3 If a PO library has been compressed a new PO file is to be defined for decompression by JCL the selection rule FLAMOUT lt gt see chapter 3 1 4 3 must always be specified Otherwise member names are not known EXEC PGM FLAM PARM D FLAMOUT lt gt FLAMOUT DD DSN po file DISP OLD If the original file came from a foreign system VM VSE UNIX Windows FLAM will choose a format closest to the original file If the FLAMFILE does not contain information about the original file e g caused by an HEADER NO parameter during compression the output file is created as variable blocked VB and with a maximum record length of 32756 bytes and a block length of 32760 bytes Each DCB specification within a DD statement will overwrite the values automatically chosen by FLAM or specified as FLAM parameter If the output file is already catalogued the catalogue entry will specify the file characteristics FLAMOUT DD DSN output_file DISP 0LD All messages are written by default into a message file FLPRINT DD DSN li
344. ssion mode VR8 with FLAMCODE ASCII This compressed data neither be read nor generated by FLAM MVS versions lower than V2 6 In addition to this VR8 compression for ASCII files the new features added mainly relate to an expansion of the FLAM record level interface in connection with VSAM KSDS Record level interface Compressed files in the VSAM KSDS format can be modified record by record For this purpose OPEN MODE INOUT has been implemented in the record level interface Therefore the FLMDEL delete record FLMPKY write record using key and FLMUPD change current record functions can also be used The function FLMFLU enable matrix buffer can also be used for determining intermediate status for the statistics The function FLMGKY read record using key can be used for all compressed files created from index sequential original files Compressed data from all previous versions can also be processed In particular this also allows index sequential files archived sequentially with FLAM to be read record by record by means of keys The compressed data can also be stored to tape or cassette Presentation of the compressed data It is now possible to read and generate all compressed data EBCDIC and ASCII code This means also that CX7 compressed data from ASCII computers can still be processed even if it has not been recoded on the line The FLAMCODE parameter is now also a legal input parameter thu
345. st file DISP or FLPRINT DD SYSOUT If no file is specified despite the fact that the parameter MSGDISP MSGFILE is set a message is written to the console via WTO ROUTCDE 11 and the program is terminated with a condition code If messages shall be suppressed SHOW NONE must be specified in the PARM entry within the EXEC card Each file can be assigned as ddname DD DUMMY This will suppress file output or inhibit file input FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Since this does not affect the general processing of FLAM it can be used conveniently for testing purposes evaluation of compression ratio general testing of control flow using own read and write routines from user exits we recommend instead the USERIO interface but in principle the possibility mentioned above can be used too The DUMMY assignments are not suitable for benchmarks Because all physical disc or tape I O is suppressed this leads to a much shorter elapsed time especially in case of later tape assignments or VSAM 1 05 Note The record length in the DD statement must always include the length of the record length field in case of variable length records Opposite to that FLAM requires the actual length of the data without length field in it s own parameters and displays also only the actual length of the data in the protoco
346. sult in good compression ratios if adjoining records are similar Reports data entry lists The disadvantage is that the individual records are not independent from each other This sequence must be decompressed as a whole However additional information like samples is not necessary It does not make much sense to use a different sample for each record Sample records can only be compressed with simple serial compression In addition the compressed data of the original data has to be stored as well FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 2 FLAM V4 5 MVS Frankenstein Limes Access Method Functions 2 7 Bi serial decompression BIFLAMD BIFLAMD decompresses compressed records created with BIFLAMK For the serial decompression no sample record including length is used This implies that BIFLAMD has to parameters less Therefore it is necessary to inform BIFLAMD during the call which mode serial or bi serial shall be used for decompression For a proper decompression it is necessary that BIFLAMD receives exactly the same compressed records and sample records as created with BIFLAMK Modification Code translations must not be applied to the compressed data and the sample records If compressed data shall be transmitted between different computer the file transmission must be transparent BIFLAMD automatically detects if a record was compressed serial or bi serial and will report an err
347. t independently from the specific properties of the operating system The first byte has position 1 Control of protocol Possible values YES Messages and statistics generate and display NO Don t display messages HOLD Display the parameters for compression or decompression but do not execute compression or decompression Default YES Valid for compression decompression Note The INFO parameter should be contained in the first input line Otherwise it has no effect on displaying the parameter inputs The statistics inform about elapsed time and CPU time needed Also the number of bytes and records for both input and output is computed If relative files are decompressed the number of records after the removal of gaps is computed in addition For conversion into fixed record format the resulting number of bytes is displayed INFO has been replaced by the more powerful parameter SHOW Record delimiter for input original file Possible values String of up to 4 characters Default no record delimiter Valid for compression Note Is not evaluated by FLAM under MVS 21 2015 by limes datentechnik gmbh Interfaces IRECFM IRECFORM IRECF 22 Frankenstein Limes Access Method Chapter 3 Record format for input file IRECFORM Possible values F fix record length V variable record length U record length undefined FB fix blocked VB variable blocked VBS variable spanned FBS fix st
348. ter0 parameterl parameter2 FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces For compression an input file must be specified FLAMIN DD DSN uncompressed input file DISP SHR This file must already exist and must be catalogued It is allowed to be logically empty which means that it does not contain a data record For the creation of a compressed file FLAMFILE it is sufficient to write FLAMFILE DD DSN compressed_file DISP NEW CATLG UNIT 5 With this card a sequential data set with a fixed record length of 512 and a system determined block length will be created However this may depend on the default parameters specified or on additional parameters supplied with the job FLAMFILE DD DSN compressed_file DISP NEW CATLG UNIT SPACE DCB LRECL 1024 BLKSIZE 26624 Using DCB attributes this assignment overwrites the MAXSIZE or BLKSIZE parameters for the FLAMFILE The file is created according to the specifications in the DD statement One example for using flexible configurations with the FLAMFILE comes from the area JES NJE FLAMFILE DD SYSOUT F DEST node userid DCB LRECL 80 BLKSIZE 3120 If the FLAMFILE is already catalogued DISP OLD FLAM will use the configuration details from the catalogue entry even if it is a VSAM file For decompre
349. terfaces Parameters 1 FLAMID F 2 lt RETCO F otherwise lt RECLEN 4 lt RECORD XLn 5 BUFLEN F 90 Frankenstein Limes Access Method Chapter 3 3 3 12 Function FLMGKY The user can obtain an original record from an index sequential FLAMFILE via a key by using the function FLMGKY The search key must be placed at the key position within the record area Identification Return code No error Invalid identification or function Record was truncated because original record BUFLEN Key not found See function FLMGET or chapter 8 4 Length of passed record in bytes Original record Data with key Length of available record buffer in bytes FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 Parameters 1 FLAMID F 2 lt RETCO F 0 1 1 larger 2 3 5 6 be read otherwise 3 RECLEN F 4 lt RECORD XLn 5 BUFLEN F 6 RECNO F 1 FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces 3 3 13 Function FLMGRN The function FLMGRN Get Record Number reads the original record of a sequential or relative file from an index sequential FLAMFILE as specified by the record number If FLMGRN does not find a valid record the new position moved to is the next record or the end of the file Identification Return code No error Invalid identification or function Record was truncated because original record was than BUFLEN END OF FIL
350. transformations are now recognized and automatically corrected by FLAM Padding with identical characters is tolerated for all compression methods With 8 bit compressed files it is possible to wrap the compressed records as long as no exit is active for the compressed records EXD20 during decompression The format of the FLAMFILE is wrong Errors have been detected in the syntax of the compressed data while decompressing a FLAMFILE For example entire compressed records are missing or headers are corrupted 25 2015 by limes datentechnik gmbh Messages 12 13 14 15 16 17 18 19 20 21 22 26 Frankenstein Limes Access Method Chapter 8 A compressed record has been shortened so that part of the compressed data is missing The compressed file has been shortened Entire compressed records are missing at the end of the file This error can arise while creating copying or transferring compressed files if there is not enough disk space available for the compressed file and therefore to the compression copying or file transfer is terminated too early Any other abort of these processes can also result in an incomplete compressed file The checksum of a compressed record is wrong The compressed file has been corrupted by recoding or some other form of intervention FLAM can only process records with a maximum length of 32 764 bytes The original file contains at least one record that is long
351. treamer USER User specific I O Default DISK Valid for compression 19 2015 by limes datentechnik gmbh Interfaces IDSORG IKEYLEN IKEYL IKEYPOS IKEYP 20 Frankenstein Limes Access Method Chapter 3 Note This parameter is not needed for catalogued files under MVS The device type is automatically assigned by the DMS If the user exit for I O shall be activated DEVICE USER must be specified see also User 1 0 interface File organization for input file IFCBTYPE Possible values PS sequential ESDS VSAM ESDS KSDS VSAM KSDS LDS VSAM LDS RRDS VSAM RRDS Default PS Valid for compression Note This parameter is not necessary for catalogued files in MVS Key length of input file Possible values 0 1 255 Default No key Valid for compression Note This parameter is not necessary for catalogued files in MVS The key length specified in the catalogue is used Key position of input file Possible values 0 1 record length minus key length Default 1 if key exists 0 otherwise FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 INFO IRECDEL IREC FLAM V4 5 MVS Frankenstein Limes Access Method Interfaces Valid for compression Note This parameter is not necessary for catalogued files in MVS The key position specified in the catalogue is used FLAM defines the position of the record key always as the relative position within the record data par
352. trix buffer Invalid compression mode Invalid code in FLAMFILE Invalid BLOCKMODE Invalid record length FLAMFILE is empty Invalid key position unequal 1 Module or table cannot be loaded Module cannot be called Module cannot be unloaded Abort by user exit Invalid duplicate keys in the FLAMFILE Invalid partially compressed data length x F00000XX FLAM error code from FLAMFIO for FLAMFILE x LF 31FLAMFILE no assigned x 20 321Invalid OPENMODE x 21 33Invalid file type x 22 34 Invalid record format x 23 x 24 35 Invalid record length block length x 26 38Invalid key length x 27 39 Invalid file name x 28 401 O module not loaded e g missing STEPLIB in JCL x FFXXXXXX DMS error code from FLAMFIO for FLAMFILE LASTPAR 0 otherwise 4 gt OPENMODE 0 74 Frankenstein Limes Access Method End of parameters for OPEN No further parameters Additional function call with FLMOPD or FLMOPF will follow F The OPEN mode controls the operation mode INPUT read FLAMFILE DECOMPRESSION FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 3 5 DDNAME 6 STATIS 0 1 FLMCLS Parameters 1 gt FLAMID F 2 lt RETCO F 0 1 otherwise LASTPAR 0 otherwise de NAMELEN F 5e FILENAME returned 6c DSORG F 0 8 16 1 9 17 2 10 3 11 7 RECFORM F 0 8 16 FLAM V4 5 MVS Frank
353. troduction Chapter 1 C limes datentechnik gmbh Ruskbakercity Friedrichsdorf Ts 20 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 1 FLAM V4 5 MVS Frankenstein Limes Access Method Introduction This makes 57 out of 64 bytes between the two apostrophes As an alternative to Ruskbakercity we could also take Huguenots Mormons Philipp Reis or any other attribute that is typical of Friedrichsdorf in the German Taunus region The remainder 7 bytes in this example is used for the actual personal PASSWORD e g a blank followed by 6 bytes of variable binary code 2 8 10 14 variants if the length structure and attribute are static With a PASSWORD such as that described above and without any personal modifications you can create a company specific compressed FLAM file that can only be decompressed within your company Instead of Ts you could also write Taunus or leave off this attribute entirely and replace it with the zip code D 61381 Upper or lower case notation affects the binary code as do any structural changes Be careful not to make input errors in hidden dialogs or with lower case letters on mainframes With PASSWORD enciphering you must allow an additional 2 596 on average on top of the time for compression decompression with FLAM V3 0 and MODE ADC this is an immense advantage simply on account of the restriction to compressed data The same als
354. uential PS file is created by default If a PO library has been compressed a PO library can be created again by specifying the parameter PO Example DSLIST DATA SETS BEGINNING WITH USER ROW 14 OF 134 COMMAND gt SCROLL PAGE COMMAND NAME TRACKS USED XT DEVICE FLEDIT USER DAT USER DAT USER DAT USER DAT USER DAT KSDS DA USER DAT KSDS INDEX 24 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 9 The FLAM user interface 9 8 FLTOC This CLIST procedure is meant for the use in the panel 3 4 in ISPF file list will also be activated internally by option in the FLAM panel FLTOC displays the content of a collecitve FLAMFILE analogue the output of ISPF 3 4 and allows direct display of FLAMFILE members and the decompression The input of the command is made in the line with the wanted file name FLTOC FLTOC Example DSLIST DATA SETS BEGINNING WITH USER ROW 14 OF 134 COMMAND gt SCROLL PAGE COMMAND NAME TRACKS USED XT DEVICE FLTOC USER DAT CMP USER DAT F USER DAT FB USER DAT KSDS USER DAT KSDS DATA Analogue option of the FLAM panel this will be displayed FLAMFILE TOC DAT CMP Row 1 of 2170 MODE VR8 MAXBUFFER 64 FLAMCODE EBCD Original Data Set Name Dsorg Recfm Lrecl Blksi Space FLAMT AD0001NP LIST SEQ FBM 133 3059 300 K FLAMT AD0001NP CX8 SEQ FB 80 23440 50 K FLAMT AD0191NP LIST
355. unloaded Abortion caused by exit routine Not all files were processed Usually invalid parameters have been transferred for FLAM see chapter 3 Correct these parameters The error codes 15 16 25 and 40 49 are self explanatory For other error codes please provide error documentation and contact your distributor FLAMFILE SPLIT ACTIVE Splitting was activated Creates or reads a number of fragments files of a FLAMFILE FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 8 Action FLMO415 Explanation Action FLMO416 Explanation Action FLMO421 Explanation Action FLMO422 Explanation Action FLMO424 Explanation Action FLM0426 Explanation Action FLAM V4 5 MVS Frankenstein Limes Access Method Messages None USED PARAMETER Protocol of parameters used for compression None COMPRESSION REDUCTION IN PERCENT The input data was reduced around percent None INPUT SUPPRESSED Input file was not processed None INPUT DATA SET IS EMPTY The file to be compressed turned out to be empty None ILLEGAL FUNCTION OR INSUFFICIENT MEMORY An invalid function was requested or the available memory is insufficient Possibly a licence error is detected so all function calls are illegal Check memory space and increase the REGION entry if necessary Check your licence number has your environment changed MESSAGE NOT FOUND Error wit
356. utility or with the subprogram FLAMUP In this user exit records can be accepted modified inserted and deleted The exit is activated via the parameter EXK20 lt name gt The user exit module must be contained in the library that has been assigned with the STEPLIB command free choice max 8 characters Address of parameter list Points to save area 18 words Contains return address Contains call address Functions code First call for file after OPEN Record passed Last call for file before CLOSE Return code Accept record no error Do not accept record Insert record Enforce end of compression Error in exit abnormal termination Record pointer Record length maximum 32760 During the first call the working storage area symbolic file name of the original file within the first 8 characters The rest of the area is padded with x 00 This area can be used by the user exit module for any purpose With each call this working storage area is made available again with the old content Note If a record shall be extended or inserted the necessary working storage area must be provided by the user exit module 121 2015 by limes datentechnik gmbh Interfaces 122 Frankenstein Limes Access Method Chapter 3 Return code 12 is only necessary if the compression shall be finished before the end of the input file is reached For function code 0 and 8 no record is passed to the module For function code 8
357. xample for the call of FLMOPF in COBOL IDENTIFICATION DIVISION PROGRAM ID EXAMPLE ENVIRONMENT DIVISION DATA DIVISION WORKING STORAGE SECTION 77 77 77 77 77 77 77 77 77 77 77 01 FLAMID RETCO VERSION FLAMCODE COMPMODE MAXBUFF HEADER MAXREC BLKMODE EXK20 EXD20 KEYDESC 05 KEYFLAGS 05 KEYPARTS 05 KEYELEM 10 KEYPOS 10 KEYLEN PIC S9 8 PIC S9 8 PIC S9 8 PIC S9 8 PIC S9 8 PIC S9 8 PICS9 8 PIC S9 8 PIC S9 8 PIC X 8 PIC X 8 PIC S9 8 PIC S9 8 OCCURS 8 PIC S9 8 PIC S9 8 EXAMPLE FOR THE CALL OF FLMOPF COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC COMP SYNC VALUE SPACES VALUE SPACES COMP SYNC COMP SYNC TIMES COMP SYNC COMP SYNC 10 KEYTYPE PIC S9 8 COMP SYNC PROCEDURE DIVISION CALL FLMOPF USING FLAMID RETCO VERSION FLAMCODE COMPMODE MAXBUFF HEADER MAXREC KEYDESC BLKMODE EXK20 EXD20 67 2015 by limes datentechnik gmbh Interfaces 68 Frankenstein Limes Access Method Example for ASSEMBLER EXAMPLE CSECT DEFINE VALUES LA ST LA ST ST LA ST L ST LA ST ST ST ST ST MVI MVI the call 0 3 0 COMPMODE 0 1 0 HEADER 0 BLKMODE 0 4095 0 MAXREC 0 F 65536 0 MAXBUFF 0 0 0 KEYPARTS 0 KEYPOS1 0 KEYFLAGS 0 KEYTYPE1 0 KEYLEN1 EXK20 C EXD20 C Chapter 3 of COMPMODE ADC HEA
358. y records in a structure independent way With this exit it is possible to decrypt the data with an own decryption routine or to apply the reverse code translation as used during compression For a proper operation of FLAM it is indispensable that all changes applied to the compressed data are reversible User exit EXD20 must deliver exactly the same data as user exit EXK20 received All modifications applied to compressed data with EXK20 must be undone with EXD20 EXD20 is available in FLAM FLAMUP and FLAMREC and corresponds with EXK20 during decompression 2 5 5 Key management This user exit returns a key to the FLAM utility for en decryption of a FLAMFILE 13 2015 by limes datentechnik gmbh Functions 14 Frankenstein Limes Access Method Chapter 2 So it is possible to enter any PASWORD CRYPTOKEY in a secure way without notice to the JCL or the protocol This exit is implemented as an interface to special key management systems without influence to the FLAM utility programs FLAM V4 5 MVS 2015 by limes datentechnik gmbh Chapter 2 Functions 2 6 Bi serial compression with BIFLAMK Bi serial compression does not employ FL Matrices The compression effect is achieved by comparing the original data with a sample and or by using serial compression techniques BIFLAMK works synchronously Each call results immediately in output data It does not need a memory compression is done
359. ystems problem however exists for keys that consist out of printable letters or for printable numeric keys A special conversion before or after processing with FLAM is necessary for index sequential files that contain binary and alphanumeric keys 34 FLAM V4 5 MVS Frankenstein Limes Access Method 2015 by limes datentechnik gmbh Chapter 4 FLAM V4 5 MVS Frankenstein Limes Access Method Method of Operation 4 11 Transformation of file formats Target files may be created during decompression with a file organization and record format differing from the original file This is especially true for compressed files received from another operating system If no other specifications are made by the user all files that were compressed under the same operating system are reconstructed using the information in the file header In addition it is possible to convert the compressed file into any file format supported by FLAM on the target system However dependencies between file organization and record format may exist If the file is transformed to fixed record length the original records can be longer or shorter than the new record length Longer original records are truncated if parameter TRUNCATE YES is specified Shorter original records are padded up to the new fix record length with blanks PADCHAR If an index sequential file is transformed into a sequential file the keys are removed if paramete
Download Pdf Manuals
Related Search
Related Contents
施 c。謹『。『 取扱説明書 310-0280X MANUAL DO USUÁRIO FireplaceXtrordinair 98500507 User's Manual Copyright © All rights reserved.
Failed to retrieve file