Из rexx-а вызывается ассемблер, в котором всё прекрасно делается! А есть готовый модуль от Лейбовича - называется XFS, - который позволяет в rexx-е очень легко создавать экраны, с кучей переменных, с полями ввода-вывода и т.п.
Из rexx-а вызывается ассемблер, в котором всё прекрасно делается!
Это да. Я из рекса печатал на матричный дисплейный принтер. Это, считай, тот же терминал. Склепал небольшой модулек на ассемблере для выполнения задачи вывода, типа упомянутого XFS, и на рексе делал всю прикладную логику обработки строк и наборов данных, а для вывода сформированной и обработанной строки на устройство вызывал его. Работает до сих пор, уже две архитектуры пережил, XA и 390, сейчас в zVM существует.
мы в своё время получили от лейбовича модуль xfs с документацией, и у нас на него куча всего завязано. и после нескольких траблов от новых версий начали опасаться, что может перестать работать. и тут выяснилось, что у самого лейбовича сорсы не сохранились... сейчас потихоньку сами переписываем, на ассемблере. и таки самая большая проблема не ввод-вывод 3270-буфера, а нудный парсинг.
Может быть, Вам XEDIT подойдет для организации диалога? Экрану можно придать практически любой желаемый вид. Как пример, можно посмотреть на FILELIST (не FLIST! FLIST - это программа), RDRLIST которые реализованы в виде процедуры + XEDIT. Еще можно использовать замечательную программу PIPE (stages fullscr, fullscrq, fullscrs, overstr ...) https://u.to/P0sjHA документ zVM, но я не думаю что там что-то сильно поменялось
P.S. В остром приступе ностальгии я тут набросал примитивный пример диалога с XEDIT PASSWORD XEDIT
Код
/* REXX */ width = 80 hight = 24 'SET CTLCHAR % ESCAPE' 'SET CTLCHAR $ NOPROTECT TURQ INVISIBLE' 'SET CTLCHAR [ PROTECT YELLOW HIGH' 'SET CTLCHAR ! PROTECT TURQ HIGH' 'SET RESERVED 1 NOH %!'center('super-duper tool', width-1) 'SET MSGLINE OFF' 'SET CMDLINE OFF' do i = 2 to hight if i = hight%2 then 'SET RESERVED 'i' NOH %[ Enter password %$ %!' else 'SET RESERVED 'i' NOH %!' copies(' ', width-1) end i 'CURSOR SCREEN 12 20' 'READ NOCHANGE TAG' do queued() parse pull line column string end say string 'QUIT' return
PASSWORD EXEC:
Код
/* REXX */ 'XEDIT DUMMY DUMMY A (PROFILE PASSWORD' exit
выполнение (экран прикреплен)
Код
password 19 qqq Maint at ZVM; T=0.01/0.01 23:50:17
А Лейбович это какой-то известный разработчик времен союза ? Где можно почитать / скачать про этот модуль?
лейбович - очень таки известный в vm-сообществе разработчик! учитывая, что он уже давно на пенсии - то можно сказать, что ещё времён союза. модуль таки ещё в те времена написан. не удивлюсь, если даже до моего рождения... а работал он как минимум последние лет 40 своей деятельности в израильской полиции... документация базовая у меня есть, но она на иврите. т.е. надо её сперва на русский перевести. тут два варианта - или по быстрому, через гугл-транслейт, или найти время на перевод. много, конечно, не надо - но всё же.
Уважаемый Akost, столкнулся с проблемой, что не знаю как отформатировать диск под БОСом. БОС стоит внутри VM/ESA, которая работает под минским эмулятором
очень, нужно так как закончилось место на дисках на которых стоит инесс и требуется нарезать дополнительное место help!!!!!