Der Benutzer kann eigene Lokalitäten definieren.
Dazu stellt die Bibliothek $.SYSLNK.CRTE zwei Quellprogrammelemente (Typ S) mit den Namen USLOCC und USLOCA bereit. USLOCC ist ein C-Quellprogramm, USLOCA ist ein Assembler-Quellprogramm. Die beiden Quellprogramme sind für die Erzeugung von benutzerspezifischen Lokalitäten gleichwertig.
Die Quellprogramme legen die Daten für die einzelnen Lokalitätskategorien fest und sind mit den Daten der POSIX-Lokalität vorbelegt (siehe Abschnitt "POSIX- oder C-Lokalität“). Diese Daten können auf die gewünschten Werte geändert werden.
Außerdem sind in den Quellprogrammen folgende Änderungen vorzunehmen:
In den Quellprogrammen ist eine Adresstabelle mit dem Namen
USERLOCdefiniert. Dieser Name muss auf einen vom Benutzer festzulegenden Namen geändert werden. Dieser Name muss ein gültiger Entryname sein.Im C-Quellprogramm braucht dazu nur der Name
USERLOCmit einer#define-Anweisung modifiziert zu werden. Im Assembler-Quellprogramm muss der NameUSERLOCin der Definitionszeile der Tabelle und in derENTRY-Anweisung modifiziert werden.Der vom Benutzer modifizierte Name wird beim Aufruf von
setlocale()als locale-Argument zur Kennzeichung der benutzerspezifischen Lokalität verwendet.
Die modifizierten Quellprogramme können mit dem C/C++-Compiler bzw. mit dem Assembler (auch ASSGEN) übersetzt werden. Wird das Modul nicht in der Bibliothek $.SYSLNK.CRTE, sondern in einer anderen PLAM-Bibliothek abgelegt, muss diese Bibliothek vor Start des C-Programms mit folgendem ADD-FILE-LINK-Kommando zugewiesen werden:
/ADD-FILE-LINK LINK-NAME=IC@LOCAL,FILE-NAME=bibliothek