Es soll ein Kommando definiert und mittels Prozedur implementiert werden, das ein Assem-bler-Quellprogramm übersetzt und das erzeugte Bindemodul in der EAM-Bindemoduldatei speichert. Die benötigten Makros können in einer benutzereigenen Makrobibliothek stehen. Das Kommando soll folgendes Format haben:
ASSEMBLE-SOURCE |
SOURCE = <filename 1..54> ,MACRO-LIBRARY = *NONE / <filename 1..54> ,TEST-SUPPORT = *NO / *YES |
Das Kommando wird mittels Prozedur implementiert. Die symbolischen Operanden stehen als Stellungsoperanden in der Operandenliste des BEGIN-PROCEDURE-Kommandos. Die folgende Prozedur steht als Element ASSEMB in der Programmbibliothek
$SDFUSR.PROC.LIB.
/BEGIN-PROCEDURE PARAMETERS=*YES(PROC-PARAM=(&SOURCE,&MACROLIB,&TEST)) /DELETE-SYSTEM-FILE FILE-NAME=*OMF /ASSIGN-SYSDTA TO=*SYSCMD /START-ASSEMBH // COMPILE SOURCE=&SOURCE,// MACRO-LIB=&MACROLIB,// TEST=&TEST // END /SET-JOB-STEP /ASSIGN-SYSDTA TO-FILE=*PRIMARY /END-PROCEDURE
Das Kommando ASSEMBLE-SOURCE wird in der Benutzersyntaxdatei SDF.USER.SYNTAX definiert. Anschließend wird es getestet.
|
(1) | Unter der Benutzerkennung SDFUSR wird eine Task gestartet. |
(2) | Die bei der LOGON-Verarbeitung automatisch aktivierte Benutzersyntaxdatei SDF.USER.SYNTAX wird deaktiviert. |
(3) | SDF-A wird geladen und gestartet. |
(4) | Die bereits existierende Benutzersyntaxdatei SDF.USER.SYNTAX wird geöffnet. |
(5) | In der Globalinformation wird festgelegt, dass das Fortsetzungszeichen „-“ für Folgezeilen bei Eingabe von SYSCMD oder SYSSTMT in Spalte 2 bis 72 stehen kann. |
(6) | Der Kopf des Kommandos ASSEMBLE-SOURCE wird definiert. Es erhält einen englischen Hilfetext und wird dem Anwendungsbereich PROGRAMMING-SUPPORT zugeordnet. Es ist mittels der Prozedur implementiert, die als Element ASSEMB in der Programmbibliothek $SDFUSR.PROC.LIB steht. |
(7) | Der erste Operand des Kommandos ASSEMBLE-SOURCE wird definiert. Sein Name ist SOURCE. In der Zeichenkette, die an die Prozedur übergeben wird, steht er an erster Position. |
(8) | Es wird definiert, dass der Wert des Operanden SOURCE vom Datentyp FILENAME sein muss. |
(9) | Der zweite Operand des Kommandos ASSEMBLE-SOURCE wird definiert. Sein Name ist MACRO-LIBRARY. Sein Default-Wert ist *NONE. In dem an die Prozedur zu übergebenden String steht er an zweiter Position. |
(10) | Es wird definiert, dass das Schlüsselwort NONE ein zulässiger Wert des Operanden MACRO-LIBRARY ist. Ihm muss bei der Eingabe ein Stern vorangestellt sein. |
|
(11) | Es wird definiert, dass der Wert des Operanden MACRO-LIBRARY vom Datentyp FILENAME sein kann. |
(12) | Der dritte globale Operand des Kommandos ASSEMBLE-SOURCE wird definiert. Sein Name ist TEST-SUPPORT und der Default-Wert ist NO. In dem an die Prozedur zu übergebenden String steht er an dritter Position. |
(13) | Es wird definiert, dass das Schlüsselwort NO ein zulässiger Wert des Operanden TEST-SUPPORT ist. |
(14) | Es wird definiert, dass das Schlüsselwort YES ein zulässiger Wert des Operanden TEST-SUPPORT ist. |
(15) | Die Definition des Kommandos ASSEMBLE-SOURCE wird beendet. |
(16) | Die in der Benutzersyntaxdatei SDF.USER.SYNTAX erstellte Definition des Kommandos ASSEMBLE-SOURCE wird in der ausführlichsten Form ausgegeben. Für alle Dateinamen hat SDF-A eine minimale Länge von 1 und eine maximale von 54 definiert. |
(17) | SDF-A wird beendet. Die Benutzersyntaxdatei SDF.USER.SYNTAX wird damit implizit abgespeichert. |
|
(18) | Die Benutzersyntaxdatei SDF.USER.SYNTAX, in der das Kommando ASSEMBLE-SOURCE definiert ist, wird aktiviert. |
(19) | Das Kommando ASSEMBLE-SOURCE wird eingegeben. Die benutzereigene Makrobibliothek DEMO.MACLIB wird angegeben. Nach Ausführung des Kommandos ist das erzeugte Bindemodul in der EAM-Bindemoduldatei abgelegt. |