Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

GEPRT - Programmzeit lesen

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Abfragen und Zugriff zu Listen und Tabellen; siehe "Abfragen und Zugriff zu Listen und Tabellen"

Makrotyp:

O-Typ/R-Typ; siehe "O-Typ-Makroaufrufe"

S-Typ, MF-Format 1 (31-Bit-Schnittstelle): Standardform/E-/L-/D-Form;

siehe "S-Typ-Makroaufrufe"


  • Die Makroauflösung als O-Typ benutzt keine Register.

  • Je nach Aufrufform werden unterschiedliche SVCs benutzt.

Makrobeschreibung

Der Makro GEPRT informiert über die durch den Auftrag seit SET-LOGON-PARAMETERS verbrauchte CPU-Zeit und/oder über die für das laufende Programm noch verfügbare CPU-Zeit.
Die noch verfügbare CPU-Zeit bezieht sich auf das für den Programmlauf vorgegebene Zeitlimit (Kommando START-PROGRAM, Operand CPU-LIMIT); wenn dort nicht spezifiziert, auf das Zeitlimit für den Auftrag (Angabe oder Voreinstellung im Kommando SET-LOGON-PARAMETERS).
Die Zeitangaben (gezonte Dezimalzahlen) werden in einzurichtende Felder übertragen.

Der Makroaufruf ohne Operandenangabe (R-Typ) liefert die seit SET-LOGON-PARAME-TERS verbrauchte CPU-Zeit. Diese Zeitangabe (im TODR-Format) wird dem Anwender in den Registern R0 und R1 übergeben. Die Performance der Funktionsausführung ist wesentlich höher als beim Makroaufruf mit Operandenangabe (220 Befehle beim R-Typ gegenüber 550 Befehlen beim S-Typ/O-Typ).

Makroaufrufformat und Operandenbeschreibung

GEPRT

[ { [adr1] [,adr2] / [(r1)] [,(r2)] } [,FORMAT=B8]]

[,PARMOD=31]

[,MF=L / (E,..) / D]

,PREF=G / p

adr1
symbolische Adresse eines 6 Byte langen Feldes
Die von dem Auftrag bereits verbrauchte CPU-Zeit wird in dieses Feld eingetragen.

Feldlänge = 8 Byte, wenn der Operand FORMAT=B8 angegeben wird.

(r1)
r1 = Register mit dem Adresswert adr1
Bei PARMOD=31 darf der Adresswert nicht im Register R1 übergeben werden.

adr2
symbolische Adresse eines 6 Byte langen Feldes
Die restliche (maximale) CPU-Zeit für das Programm bzw. den Auftrag wird in dieses Feld eingetragen.
Feldlänge = 8 Byte, wenn der Operand FORMAT=B8 angegeben wird.

(r2)
r2 = Register mit dem Adresswert adr2. Bei PARMOD=31 darf der Adresswert nicht im Register R1 übergeben werden.

FORMAT=B8
Die Zeitangaben werden in der Form hhhhmmss (hhhh=Stunden, mm=Minuten, ss=Sekunden) übertragen.

MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. PREFIX, MACID und PARAM) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.

Bei der D-Form des Makroaufrufs kann ein Präfix PREF (1 Buchstabe, Voreinstellung: G) angegeben werden (siehe Abschnitt „S-Typ-Makroaufrufe“).

PARMOD=
steuert die Makroauflösung. Wenn PARMOD nicht spezifiziert wird, erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für den Assembler (24-Bit-Schnittstelle).

31
Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB). Datenlisten beginnen mit dem Standardheader.

Funktionsweise

Die CPU-Zeit wird als Zeichenfolge (gezonte Dezimalzahl) 6-stellig (hhmmss) oder bei Angabe von FORMAT=B8 8-stellig (hhhhmmss) übergeben.

Angaben für Aufträge ohne CPU-Zeitbeschränkung (NTL):

Feld für verbrauchte CPU-Zeit:



aktueller Wert < 100h

aktueller Wert >= 100h

6-Byte-Feld

aktueller Wert

99h 59min 59sec

8-Byte-Feld

aktueller Wert

aktueller Wert


Feld für restliche CPU-Zeit:


6-Byte-Feld

99h 59min 59sec

8-Byte-Feld

9999h 59min 59sec


Hinweis

Der Makro GEPRT übergibt keinen Returncode. Bei Adressierungsfehler durch den Anwender generiert das System das Ereignis „Adressenfehler“ (STXIT-Ereignisklasse „Nicht behebbarer Programmfehler“). Das Programm wird mit der Anzeige „Adressenfehler“ beendet, es sei denn, im Programm ist für dieses Ereignis eine STXIT-Routine vorgesehen.

Beispiel

GEPRT    START
         PRINT NOGEN
         BALR  3,0
         USING *,
         GEPRT FIELD1,FIELD2,FORMAT=B8 -----------------------------------(1)
         WROUT OUTB,ERROR
ERROR    TERM
****     DEFINITIONS     *******
OUTB     DC    Y(OUTBE-OUTB)
         DS    CL3
         DC    C'CPU TIME USED: '
FIELD1   DS    CL8
         DC    C'  AVAILABLE CPU TIME: '
FIELD2   DS    CL8
OUTBE    EQU   *
         END

Ablaufprotokoll:

/start-assembh
%  BLS0500 PROGRAM 'ASSEMBH', VERSION '<ver>' OF '<date>' LOADED
%  ASS6010 <ver> OF BS2000 ASSEMBH  READY 
//compile source=*library-element(macexmp.lib,geprt), -
//        compiler-action=module-generation(module-format=llm), -
//        module-library=macexmp.lib, -
//        listing=parameters(output=*library-element(macexmp.lib,geprt))
%  ASS6011 ASSEMBLY TIME: 337 MSEC
%  ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES
%  ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS
%  ASS6006 LISTING GENERATOR TIME: 80 MSEC
//end
%  ASS6012 END OF ASSEMBH
/start-executable-program library=macexmp.lib,element-or-symbol=geprt
%  BLS0523 ELEMENT 'GEPRT', VERSION '@' FROM LIBRARY
   ':2OSG:$QM212.MACEXMP.LIB' IN PROCESS
%  BLS0524 LLM 'GEPRT', VERSION ' ' OF '<date> <time>' LOADED
CPU TIME USED: 00000059  AVAILABLE CPU TIME: 00022901 --------------------(2)

(1)

Sowohl die seit SET-LOGON-PARAMETERS verbrauchte CPU-Zeit, als auch die für den Programmlauf noch zur Verfügung stehende CPU-Zeit werden abgefragt.

(2)

Die seit SET-LOGON-PARAMETERS verbrauchte CPU-Zeit und die für den Programmlauf noch zur Verfügung stehende CPU-Zeit werden ausgegeben.