Вт, 26.11.2024, 08:36
Приветствую Вас Гость | RSS
Главная | Как определить в какой среде выполняется программа? - Страница 2 - Форум | Регистрация | Вход
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Как определить в какой среде выполняется программа?
GregoryДата: Чт, 05.10.2017, 00:49 | Сообщение # 16
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Цитата Bibizyan ()
ну так разные точки входа тоже же требуют изменений в вызывающей программе!
не требуют. Program binder (former Linkage Editor) может заменить внешнюю ссылку на любую другую.

Цитата Bibizyan ()
а что сложного в передаче ассемблерной программе ешё одного, опционального, параметра?
программа может быть вызвана из CICS или IMS.

Цитата AKonev ()
В блоке CSCB есть такая информация
спасибо. я не оставил изучение вопроса, просто сейчас нет времени. Те эксперименты, что я уже проделал, вселяют уверенность, что решение предложенным Вами способом (т.е. анализ управляющих блоков) вполне реально.
Интересно было бы взглянуть на исходный текст, реализующий address в REXX, address отлично справляется с анализом среды, и в REXX сформулированная задача решается довольно просто.
 
GregoryДата: Ср, 21.03.2018, 22:34 | Сообщение # 17
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
IBM Knowledge Center


Код
CEE3INF (--sys/subsys--,--env-info--,--member-id--,--gpid--,--fc--)

sys/subsys (input/output)
As input, sys/subsys is considered to be an address toa fullword. As output, the fullword is a 32-bit map that represents the operating system or subsystem on which the enclave is currently running.
0        Currently executing in the CICS® environment
1        Currently executing in a CICS_PIPI environment
2-3     Reserved for other specific CICS environments
4        Currently executing in a TSO environment
5        Currently executing in a Batch environment
6        Currently executing in a z/OS® UNIX environment
7-28   Reserved for future use
29      Currently executing on z/VSE®
30      Currently executing on z/OS
31      Reserved.


Сообщение отредактировал Gregory - Ср, 21.03.2018, 22:39
 
AKonevДата: Чт, 22.03.2018, 21:50 | Сообщение # 18
Лейтенант
Группа: Проверенные
Сообщений: 66
Репутация: 5
Статус: Offline
CEE3INF TO GET INFORMATION OF THE CURRENT ENCLAVE

то есть речь идет об весьма подзабытом термине "LE enclave" (сейчас чаще говорят об enclave как совокупности  нескольких SRB/TCB)
Как быть с программой на классическом, не LE ассемблере?
 
GregoryДата: Пт, 23.03.2018, 16:22 | Сообщение # 19
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline

Цитата
Как быть с программой на классическом, не LE ассемблере?

я думаю, просто попробовать вызвать CEE3INF. или так, как здесь

пока проверил некоторые моменты, используя пример из документации (PLI3INF):

JCL, PGM=PLI3INF
System-Subsystem         0000100000000000000000000000010
Environment Information  0000000000101000000000000000000
Member Languages         0010000000100000000000000000000

JCL, PGM=IKJEFT01 CALL PLI3INF
System-Subsystem         0001100000000000000000000000010
Environment Information  0000000000101000000000000000000
Member Languages         0010000000100000000000000000000

TSO CALL PLI3INF
System-Subsystem         0001100000000000000000000000010
Environment Information  0000000000101000000000000000000
Member Languages         0010000000100000000000000000000

BPXBATCH ./pli3inf
System-Subsystem         0000010000000000000000000000010
Environment Information  0000000010101000000000000000000
Member Languages         0010000000100000000000000000000

то есть, бит "z/OS" установлен всегда, бит "TSO" устанавливается как в batch, так и в interactive.

Кстаnи, факт наличия такой функции доказывает то, что заданный вопрос вовсе не праздный :-)


Сообщение отредактировал Gregory - Пт, 23.03.2018, 16:28
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: