но это в данном случае неважно, какой именно там у Вас UNICODE, я понимаю что Вы таким образом просто отправляете некорректный файл.
совершенно верно
ЦитатаGregory ()
Это Вы статус виртуального устройства смотрите, а в данном случае интересен статус "реального", т.е. Q 0001 Посмотрите, что происходит если после ошибки выполнить в VM команды VARY OFF 0001 / VARY ON 0001
после отправки не корректного файла статус устройства на веб-сервере
После зависания ридера СВМ реагирует на команды так же, как и до
А вообще, как я понимаю, основную причину Вы сами нашли - некорректные символы)
Нет, данное зависание возникает, когда его воспроизводишь специально. Т.к. все задания по регламентному заданию отправляются и отрабатывают, и у всех заданий кодировка указана верно. Но иногда происходит подобное зависание по непонятной причине. Такое зависание может происходить с периодичностью раз в месяц или раз в несколько месяцев.
По идее, такие же проблемы вызовет и кириллица в тексте (т.е. файл в кодировке 1251) но это надо бы проверить.
Задания с кирилицей принимает и отрабатывает, не зависает. Только кирилицу воспринимает, как вы говорите, по своей некирилической таблице кодировки. Но на выполнение данного задания это не влияет, т.к. кирилицей указаны значения для записи в текстовый файл.
например задание:
Код
ID BATCH /* /JOB OPERATOR 61000630 UNLOAD07 FI * CLEAR CP LINK BMAEXP1C 191 12 MR MW AC 12 A AC 193 B AC 194 E ERASE PARAM_07 TXT A EXECIO 1 DISKW PARAM_07 TXT A 1 F (FINIS STRING АБВГД EXECIO 1 DISKW PARAM_07 TXT A 2 F (FINIS STRING ЕЁЖЗИ UNLOAD07 /*
При выполнении данного задания создастся файл "PARAM_07 TXT A" с двумя строчками "АБВГД" и "ЕЁЖЗИ", только в файле не будет видно некоторых кирилических символов.
Добавлено (22.09.2021, 07:32) --------------------------------------------- Я вышел из такой ситуации так, когда считываю файл в NATURAL(ADABAS), то выполняю перекодировку.
Код
DEFINE DATA PARAMETER 1 #P_TXT(A250) * 1 #P_KC (N3) END-DEFINE RESET #TXT(A250) #I(N3) #J(N3) #K(N3) REDEFINE #TXT(#BB(B1/250)) #TXT = #P_TXT * PУCCKИE БУKBЫ, COBПAДAЮЩИE ПO HAПИCAHИЮ C AHГЛИЙCKИMИ -> B PУCCKИE * ПPИ ИCПOЛЬЗOBAHИИ TAБЛИЦЫ "EBC2ASCRUS" * (для кoдoвoй cтpaницы CP1251 Windows) FOR #I = 1 TO 250 IF #I < 249 THEN DO #J = #I + 1 #K = #I + 2 IF #BB(#I) = H'40' AND #BB(#J) = H'40' AND #BB(#K) = H'40' THEN ESCAPE DOEND * Пpoпиcныe * IF #BB(#I) = H'C1' /* Бyквa "A" THEN #BB(#I) = H'70' IF #BB(#I) = H'C2' /* Бykвa "B" THEN #BB(#I) = H'71' IF #BB(#I) = H'C3' /* Бykвa "C" THEN #BB(#I) = H'72' IF #BB(#I) = H'C5' /* Бykвa "E" THEN #BB(#I) = H'73' IF #BB(#I) = H'C8' /* Бykвa "H" THEN #BB(#I) = H'74' IF #BB(#I) = H'D2' /* Бykвa "K" THEN #BB(#I) = H'75' IF #BB(#I) = H'D4' /* Бykвa "M" THEN #BB(#I) = H'62' IF #BB(#I) = H'D6' /* Бykвa "O" THEN #BB(#I) = H'67' IF #BB(#I) = H'D7' /* Бykвa "P" THEN #BB(#I) = H'69' IF #BB(#I) = H'E3' /* Бykвa "T" THEN #BB(#I) = H'51' IF #BB(#I) = H'E7' /* Бykвa "X" THEN #BB(#I) = H'52' * Cтpoчныe * IF #BB(#I) = H'81' /* Бykвa "a" THEN #BB(#I) = H'53' IF #BB(#I) = H'83' /* Бykвa "c" THEN #BB(#I) = H'54' IF #BB(#I) = H'85' /* Бykвa "e" THEN #BB(#I) = H'8B' IF #BB(#I) = H'96' /* Бykвa "o" THEN #BB(#I) = H'55' IF #BB(#I) = H'97' /* Бykвa "p" THEN #BB(#I) = H'56' IF #BB(#I) = H'A7' /* Бykвa "x" THEN #BB(#I) = H'59' IF #BB(#I) = H'A8' /* Бykвa "y" THEN #BB(#I) = H'64' * Cпeц. cимвoлы IF #BB(#I) = H'6A' /* Бykвa "|" THEN #BB(#I) = H'66' IF #BB(#I) = H'4F' /* Бykвa "\" THEN #BB(#I) = H'E0' CLOSE LOOP #P_TXT = #TXT END
Ещё у нас в СВМ сделали кодировочную таблицу обратную ДКОИ. В ДКОИ совпадающие символы по написанию - латиница, а у нас кирилица.
А современная 3270-type USB - клавиатура будет работать с Геркулесом "с ходу"?
не совсем понимаю Ваш вопрос. Если клавиатура поддерживается Windows, она будет работать со всеми приложениями, в том числе и с Hercules (имеется в виду консоль эмулятора), и с любым эмулятором 3270 - wc3270, IBM PC Comm, Mocha или что угодно еще.
Сообщение отредактировал Gregory - Вс, 03.04.2022, 00:30
Извините, я поторопился не совсем точно сформулировал вопрос. Будут ли на такой клавиатуре работать дополнительные не Windows клавиши PF, PA и пр? Полагаю, что их должен всё-же обрабатывать все-же wc3270, а не Геркулес?
Имел ввиду современную 3270-type клавиатуру с Русификацией, например, из этих
И поинтересуюсь а был ли у кого-нить опыт подключения / использования советской клавиатуры от ЕС ЭВМ к IBM PC? Я знаком с современным американским любительским проектом подключения всего терминала 3270 к Геркулесу, путём аппаратной эмуляции устройства управления, но может быть в 90е годы были варианты попроще с "только клавиатурой"?
Будут ли на такой клавиатуре работать дополнительные не Windows клавиши PF, PA и пр?Полагаю, что их должен всё-же обрабатывать все-же wc3270, а не Геркулес?
Работают. Именно потому, что обрабатывает эмулятор - тот же wc3270 и прочие.
у любого эмулятора 3270 есть файл соответствия клавиш клавиатуры Windows и клавиатуры 3270. Для wc3270 это keymap, см. https://u.to/96QYHA файлов keymap может быть несколько. У IBM PC COMM соответствие клавиатур настраивается в GUI, сохраняется в файле kmp. Можно перенастроить всю клавиатуру в соответствии со своимми предпочтениями. Интересно, что у IBM PC COMM по настоящий день соответствие клавиатуры по умолчанию назначает функцию ВВОД не клавише Enter, а RIGHT CTRL, потому что, видите ли, у "натурального" 3270 клавиша ВВОД находилась именно в этом месте... Скоро уже не останется людей, видевших натуральный 3270, а тут для них стараются сохранить привычное расположение клавишию) По моему, это просто идиотизм) Функция ВВОД легко возвращается на обычное место, но молодежь это как-то пугает. И я совершенно не понимаю, для чего нужно подключать к PC клавиатуру терминала, да и сам терминал. Даже идея подключить пишущую машинку ундервуд вместо клавиатуры и то понятнее, это такой крутой стимпанк (на самом деле, проще заказать подобную клавиатуру на Алиэкспресс).
Цитата Gregory ()Скоро уже не останется людей, видевших натуральный 3270 не дождётесь! (с)
ну мне тоже хотелось бы рассказывать правнукам про 3270 и машину, занимающую помещение 200м2 с памятью 4M, охлаждением в виде фонтана перед зданием и всякое такое :-)
Сообщение отредактировал Gregory - Пн, 04.04.2022, 00:42
Интересно, что у IBM PC COMM по настоящий день соответствие клавиатуры по умолчанию назначает функцию ВВОД не клавише Enter, а RIGHT CTRL, потому что, видите ли, у "натурального" 3270 клавиша ВВОД находилась именно в этом месте... Скоро уже не останется людей, видевших натуральный 3270, а тут для них стараются сохранить привычное расположение клавишию) По моему, это просто идиотизм) Функция ВВОД легко возвращается на обычное место, но молодежь это как-то пугает.
То же самое было на терминалах 5250. Людей видевших эти терминалы думаю побольше осталось. Наверно, они еще есть много где. Типа на случай падения сети Ethernet в машинном зале есть отдельная комната где стоит такой терминал подключенный по коаксиалу. У меня даже 10 лет назад был ключ от этой комнаты ;-). Не думаю что с тех пор там все сильно поменялось. В новых клиентах для i Enter - соответствует Enter на клавиатуре по умолчанию. Я по привычке перевожу на Ctrl.
я совершенно не понимаю, для чего нужно подключать к PC клавиатуру терминала, да и сам терминал. Даже идея подключить пишущую машинку ундервуд вместо клавиатуры и то понятнее, это такой крутой стимпанк (на самом деле, проще заказать подобную клавиатуру на Алиэкспресс).
Например, для музейной демонстрационной ЭВМ. Процессор - память - каналы - что-то ещё реализованы Геркулесом, а периферия настоящая, начиная с ЕС-7927 и ЕС-7934, расширяясь до 7040 и заканчивая ЕС-5061 и 5012. Может быть что-то ещё. Операционная система, вероятно, тоже на Геркулесе, а аппаратные накопители лишь подключаются для загрузки пользовательских данных, дабы не держать старую механику постоянно в работе. В итоге будет эдакий джентльменский набор без повторений оборудования и с наличием движущихся/гудящих частей.
Сообщение отредактировал Shigure - Пн, 04.04.2022, 10:20
IMHO это непростая задача. Я вижу тут две проблемы, сложную и очень сложную: - физическое подключение периферии ЕС ЭВМ к PC - поддержка этого подключения и устройств в эмуляторе (Hercules) Даже если воспользоваться какими-то существующими решениями, например, AT/370 channel option или P/390 channel card (я думаю, что их можно найти на каком-нибудь ebay за вполне приемлемую цену), или использовать аналогичную карту made in USSR (а такие были). то поддержка этого в hercules потребует достаточно серьезной разработки. Или я что-то упускаю и существует более простое решение?
Или я что-то упускаю и существует более простое решение?
Не думаю, что это будет просто...
Всё зависит от того, какое железо имеется. Если только накопитель, то задача делится участки "сам накопитель - устройство управления", "устройство управления - канал" Потребуется найти информацию о формате передачи управляющих сигналов и данных в советской документации к железу или "оригиналах" от IBM и создание преобразователя этих сигналов в "цифру". Если же у нас лишь сам накопитель (что более вероятно), то потребуется и аппаратная реализация устройства управления на современном железе.
Далее идёт прикручивание к Геркулесу, тут вопрос чуть менее понятен. Печать, насколько я понимаю, не так и сложно, а накопители... Вероятно, пустые DASD и TAPE нужного размера создаются предварительно и работа с железкой идёт через них. То есть нужна вспомогательная фоновая программа (или часть кода где-то), управляемая из операционной системы. Эта программа будет гонять данные между образом на диске и реальным устройством. Программа должна уметь считывать данные с железки в образ, писать с него на железку и пр. После успешного завершения передачи, она сообщит ОС, что работа с физ устройством завершена и ОС будет читать данные с образа в память / писать в образ.
Или же напрямую подменять, чтобы Геркулес считал, что DASD это файл, но физически он не будет на HDD.
Конечно потребуется консультация сообщества Геркулеса, может быть кто-то в США уже реализовал подобное (с хожу я не нашёл). Для лент ещё возможен вариант подключения через scsi самим Геркулесом, но такой адаптер для старого НМЛ надо собрать и нужен драйвер для операционной системы в которой запущен эмулятор.
Использование P/390 channel card и пр, мне не кажется хорошим решением так как драйвера и протоколы связи с ними наверняка не open source. У меня есть ISA-плата для подключения EC-5012 к MS-DOS, сам накопитель и все исходные коды эмулятора, которые я так-же передал компьютерному музею но эта штука лишь позволяет собственной программой управлять накопителем, читать с ленты и писать на неё. А глобальная задача требует это делать с самого Геркулеса, прямо из операционки. Не говоря уж о том, что мы не сможем поставить эту плату в компьютер без ISA-шины.
Вот перевод статьи о том, что любитель подключил 3270 к Геркулесу, создав эмулятор устройства управления. Работа на уровне "терминал - устройство управления" у него была на старых спец. чипах Роквелл, а "устройство управления - Геркулес" на Ардуино. Проект до сих пор развивается, с тех пор была выпущена "коммерческая" версия переходника уже без Ардуино.
Сообщение отредактировал Shigure - Вт, 05.04.2022, 19:20