macro instruction 
Author Message
 macro instruction

Quote:

>please explain to me how to simulate the macro instruction using delphi 3.0

Not in this newsgroup.  Try comp.lang.delphi or something like that.

LAter,
Ray

--
M. Ray Mullins ( http://www.*-*-*.com/ ~mrm/) from Roseville, California
California Transit Publications - your one stop shop for transit marketing,
publications, planning and web services at http://www.*-*-*.com/ ;   TIPs:
http://www.*-*-*.com/ http://www.*-*-*.com/ http://www.*-*-*.com/



Wed, 27 Dec 2000 03:00:00 GMT  
 macro instruction
I have Written a Assembler Program E35 Exit for SYNCSORT which Captures the
Starting and Ending Customer Record ID for each Tape Volume of a 35 Volume
Data Set. This Data Set does Contains 100 million records plus.

A Index Data Set is Created that Contains the Volume Sequence Number of the
Data Set, the Volume Serial Number of the Tape, the Starting Customer Record
ID on the Volume, the Ending Customer Record ID on the Volume.

In addition for each Customer Record ID the following information is
gathered in the Index File.

The Volume Sequence Number of the Data Set.

The Volume Serial Number of the Tape.

The Customer Record ID.

The Starting Record Number from the Beginning of the Data Set.

The Number of Records in a Customer Record ID on the Data Set.

The Number of Records in a Customer Record ID on the Volume.

A Indicator that Specifies that the Customer Record ID Spans Multiple
Volumes.

The Volume Serial Numbers of all Volumes on which the Customer Record ID
     Starts on and Ends on.

A Second Assembler Program in the Process uses a Request Record Indicating
which Customer Record ID that are to be Selected/Extracted to a Disk Output
Data Set or to Tape or to be Transmitted.

The Index File is Processed along with the Customer Record ID Request
Records File for Building the Selection/Extraction Criteria for the next
Program Function.

With this the Program builds through Dynamic Allocation the Input Tape File
and Only those Volume Serial Numbers which are required for the selection of
the Customer Record ID's from the Various Volumes of the Multi-Volume Tape
Data Set.

The Program Works fine in it's present process, the only Problem in the
Program is that I want to do the following processing:

Volume Serial Number X45651 is mounted, it is read until all of the proper
Customer Record ID's are extracted this can be from one to many from this
Tape Volume Serial Number X45651.

The Volume  X45651 is continued to be read until the end of Volume, at which
time the next specified Volume say B67564 is mounted for the next set of
Customer Record ID that are contained on Volume Serial X45651.

This Process Continues for each and every Allocated Volume Serial Number
Specified in the Dynamic Allocation Volume Serial List.

Is there anyway that when reading a Volume and the Customer Record ID's Read
becomes Higher than any Requested Customer Record ID for a Particular Volume
which indicates no more data is to be Extracted from this Tape Volume.

Is there a Manner in which CAN Discontinue Reading any more Records on that
Volume and Knock it Down before having to continue to reading to the end of
the Volume.

What I would like to be able to do is to Terminate the Reading of the
Current Volume and to Force the Mounting of the Next In Series Volume that
was Specified in the Volume Serial List in the Dynamic Allocation and
Continue the Normal Selection/Extraction Process.

If any one knows or could assist me in this endeavor it would be very much
appreciated.

I have not written much Assembler in the Last 5 Years, and I am not sure how
this can be done. I believe that there is some way to force a end of Volume
on the Current Tape have the System Mount the Next Tape Serial Number in
Sequence.

Any Example or Direction, since I seem to be lost on this subject!!
HELP!!!!!!!

Thanks,

James Cray



or via comp.lang.asm370



Sun, 31 Dec 2000 03:00:00 GMT  
 macro instruction
Look up the FEOV macro, I would be surprised if that does not solve your
case.

(The format of this macro is simply:

[label] FEOV  dcb address

(The macro accepts some optional parameters following the dcb address,
but
I believe those are of no interest to you).

hth

regards Sven

..... (snip)

Quote:
> Is there a Manner in which CAN Discontinue Reading any more Records on that
> Volume and Knock it Down before having to continue to reading to the end of
> the Volume.

..... (snip)


Sun, 31 Dec 2000 03:00:00 GMT  
 macro instruction
Or open news server forums.borland.com, subscribe to an appropriate
group and try there.

Bob

Quote:


> >please explain to me how to simulate the macro instruction using Delphi 3.0

> Not in this newsgroup.  Try comp.lang.delphi or something like that.

> LAter,
> Ray

> --
> M. Ray Mullins (http://www.lerctr.org/~mrm/) from Roseville, California
> California Transit Publications - your one stop shop for transit marketing,
> publications, planning and web services at http://www.catransit.com/     TIPs:
> http://socaltip.lerctr.org http://norcaltip.lerctr.org http://cencaltip.lerctr.org



Sun, 31 Dec 2000 03:00:00 GMT  
 macro instruction

Quote:

> Is there a Manner in which CAN Discontinue Reading any more Records on that
> Volume and Knock it Down before having to continue to reading to the end of
> the Volume.

Sure.  This is from the IBM "Macro Instructions for Datasets":

3.2.22 FEOV--Force End-of-Volume (BSAM and QSAM)

The FEOV macro causes the system to assume an end-of-volume condition,
and switches volumes automatically.  You can specify volume
positioning for magnetic tape with the REWIND or LEAVE option.  If no
option is coded, the positioning specified in the OPEN macro is used.  
Output labels are created as required and new input labels are
verified.  The standard exit routines are given control as specified in
the data
control block exit list.  For BSAM, you must test all input and output
operations for completion before issuing the FEOV macro.  The
end-of-data
(EODAD) routine is given control if an input FEOV macro is issued for
the last volume of an input data set.

FEOV is ignored if issued for a SYSIN or SYSOUT data set.

FEOV treats an extended sequential data set as a single volume data set
which cannot be extended to additional volumes.

The FEOV macro may be issued in 24- or 31-bit addressing mode.  When
issued in 31-bit addressing mode, all addresses must be valid 31-bit
addresses.  If it causes entry to the end-of-data (EODAD) routine, the
EODAD routine is entered in the addressing mode in which you issue
FEOV.

Note:  When processing a DCB open for output which specifies QSAM locate
mode and the buffers are above the 16MB line (DCBE
RMODE31=BUFF is specified), FEOV should be issued in 31-bit addressing
mode.

FEOV and end-of-volume processing do not support HFS data sets or HFS
files.  If an application issues an FEOV such that the next data set (in
a
concatenation) to be processed is an HFS data set or file, the system
issues an informational message and the job step abends.

The format of the FEOV macro is:

+------------------------------------------------------------------------+
| [label] | FEOV    | dcb address                                      
|
|         |         | [,REWIND|,LEAVE]                                  
|
+------------------------------------------------------------------------+

dcb address--RX-Type Address, (2-12), or (1)
    specifies the address of the data control block for an opened
sequential data set.

REWIND
    requests the system position the tape that you are leaving at the
load point regardless of the direction of processing.

LEAVE
    requests the system position the tape at the logical end of the data
set on the volume that you are leaving.  This option positions the tape
at a
    point after the tape mark that follows the trailer labels. Note that
multiple tape units must be available to achieve this positioning.  If
only one tape
    unit is available, its volume is rewound and unloaded.

    Note:  If an FEOV macro is issued for a multivolume data set with
spanned records that is being read using QSAM, errors might occur when
    the next GET macro is issued following an FEOV macro if the first
segment on the new volume is not the first segment of a record.  The
errors
    include duplicate records, program checks in your user program, and
invalid input from the variable spanned data set.

    Note:  Do not use the FEOV macro in the error analysis routine
(SYNAD).

Bruce Black
Innovation Data Processing



Fri, 12 Jan 2001 03:00:00 GMT  
 
 [ 9 post ] 

 Relevant Pages 

1. A macro involving two sub-macros - where the 2nd macro needs results from the first

2. Instruction Speed and instruction availability

3. macro -vs- macro/codeblock

4. Help with macros writing macros in Bigloo

5. syntax-rules macros with sub-macros

6. Scheme macro source: rewriter-widget, a widely applicable macro interface

7. Macros defining macros with define-syntax

8. symbol-macros and regular macros

9. Question about a macro-defining macro

10. Macro-Defining Macros

11. macro macros

12. Local macro within a macro?

 

 
Powered by phpBB® Forum Software