Автопереводчики интернета с каждым днём всё круче.
Да, где-то 90% - не больше :)Цитата:
Да и виндовсных программеров тут наверное не так уж много
Вид для печати
Дурацкий вопрос пока не по теме, но...
У кого-нибудь есть под рукой sparc, powerpc или еще какая тупоконечная архитектура? :)
Самый простой - собрать simh, запустить, записать пофигу что в образ ленты родного формата.
Я конечно могу и в сорцах покопаться, но если есть готовое решение - это было бы проще :)
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_23.12.12_18-30.
Изменения:
1. В файл Terminal.ini добавлена константа SolidRectangle_Padding_%, задающая (в процентах от размера знакоместа) отступ закраски от краёв знакоместа при выводе символа "Закрашенный прямоугольник". Допустимые значения 0..20, значение по умолчанию 5:
Для шрифта по-умолчанию зависимость отступа закраски знакоместа от значения константы SolidRectangle_Padding_%, следующая:Код:SolidRectangle_Padding_% = 5
Код:| Значение | Отступ сверху и снизу | Отступ слева и справа |
| ( % ) | ( пикселов ) | ( пикселов ) |
-----------------------------------------------------------------
| 0 | 0 | 0 |
| 5 | 1 | 1 |
| 10 | 2 | 1 |
| 15 | 3 | 2 |
| 20 | 4 | 2 |
2. В файл Terminal.ini добавлена настройка
в зависимости от которой табуляция вызывает вывод пробелов ( по умолчанию ) или только перемещение курсора ( при DestructiveTabs = 0 ).Код:DestructiveTabs = 1
3. В файл Terminal.ini добавлена константа
задающая максимальное значение байта, до которого 8-й бит очищается. Минимальное значение 0177 - отключает очистку 8-го бита для всех байтов, максимальное значение 0377 - включает очистку 8-го бита для всех байтов. Значение по-умолчанию 0240 - очищает 8-й бит у управляющих символов и пробела.Код:Strip_8Bit_HighLimit = 0240
4. Параметры настройки консоли
стали базовыми и теперь задаются в ini-файле класса: Console.ini .Код:LeftDumpSeparator="«"
RightDumpSeparator="»"
5. Количество режимов консольного дампа увеличено до 8-ми ( 0..7 ). Режим дампа задаётся константой
в файле конфигурации. Допустимые значения 0, 1, 2, 3, 4, 5, 6, 7. Значение по-умолчанию 1.Код:DumpMode = 1
6. В файл Console.ini добавлена константа
задающая количество столбцов консольного дампа в режимах дампа 4, 5, 6, 7. Минимальное значение 1. Максимальное значение 512. Значение по-умолчанию 20.Код:DumpCols = 20
7. В файл Console.ini добавлена константа
задающая основание счисления для формирования дампа. Допустимые значения 8, 10, 16. Значение по-умолчанию 8.Код:DumpRadix = 8
8. Исправлен код начального загрузчика с HX, находящийся в файлах HXBOOT.MAC и HX Boot.odt.
9. Монитор RT11SJ.SYS в образе HXsys54.DSK заменён на версию Y2K 8_Bit.
10. В образы HXsys57.DSK и HXsys54.DSK добавлена программа DAY.SAV, запускаемая в процессе загрузки.
Это (насколько я понял) - режим 15ИЭ-00-013.
Когда в модульном API появятся пресеты - пресетом терминала по-умолчанию будет эмуляция 15ИЭ-00-013.
Мне удалось найти программы, не работающие без DestructiveTabs.
А вот можно ли найти такие, которые не смогут нормально формировать изображение в режиме DestructiveTabs..
Нет.
15ИЭ в режиме VT52 ведет себя также - TAB не стирает ничего.
Про не-VT52 ничего не скажу, не помню так как не использовал его у нас никто.
---------- Post added at 23:20 ---------- Previous post was at 23:17 ----------
Правда может там единичка для настройки на эту тему была - не помню уже.
Помню что насчет врапа в конце строки единичка в строке настроек была :)
КСМ точно не стирает.
Но какие программы всё же "обломает" DestructiveTabs ?
Ни одной такой пока не встретил.
Там настроек чёртова куча - знать бы их все..Цитата:
может там единичка для настройки на эту тему была
Мне пока известны только эти:
Код:9600 0010 1110 0000 0000 09 15 00
---- ^ ^^^ ^ \ часы /
^ ! !!! !
! ! !!! +------------ выключить служебную строку
! ! !!+----------------------- система команд N2
! ! !!
! ! !+------------------------ отсутствие звукового сигнала
! ! ! при нажатии клавиши
! ! +------------------------- отсутствие звукового сигнала
! ! в 72 позиции курсора
! +---------------------------- код КОИ-7 Н0/1
+------------------ Скорость обмена информацией терминала с ЭВМ
Вряд-ли. Такие программы сами отрабатывают стирание.
TED/USED к примеру - работают на классическом VT52.
BLINK CTRL вроде была еще настройка - вместо CTRL-символов выводились моргающие символы+100.
Или отдельная клавиша была - не помню уже. Помню еще поведение, что можно было ВР спичкой зажать, а НР начинал как полноценный shift при этом работать :)
Вобщем проверка простой программой показала: на настоящем VT220 при переходе в VT52 режим табы работают как обычно - ничего не стирая. На SecureCRT - TAB стирает. Там вроде есть ESC последовательность которая переключает это дело...
На VT220:Код:#include <stdio.h>
int
main(void)
{
(void)printf("\033[?2l");
(void)printf("\033H\033J");
(void)printf("01234567890123456789");
(void)printf("\033H\t#\n");
return (0);
}
В SecureCRTКод:01234567#90123456789
Код:#90123456789
---------- Post added at 23:59 ---------- Previous post was at 23:47 ----------
А что перестанет работать навскидку при destructive tabs - это все DECовские экранные программы :)
Так, что счет много:0 в пользу не-destructibve tabs :)
K52, EDT, TPU, EVE
Возможно и нормально работают, но они не пытаются переключиться в VT52 режим так как видят, что это VT220. Другое дело если терминал позиционирует себя как VT52, но не работает как он.
---------- Post added at 02:13 ---------- Previous post was at 02:12 ----------
Там в пределах строки позиционирование можнт выполняться табуляцией. Помню натыкался где-то когда от этого текст стирался.
Вобщем пусть остается как есть, наткнусь на проблему - посмотрим.
А не проявится так и фиг с ней - просто поставлю как положено...
---------- Post added at 02:21 ---------- Previous post was at 02:20 ----------
Разрушающая.
Но в режиме VT220 это управляемое свойство которое программа может сама настроить. Причем если не ошибаюсь, INQUIRE возвращает текущее состояние этого параметра.
Прочитал DEC VT240 programmer reference manual - там нет настройки DestructiveTabs.
Похоже, что SecureCRT делает разрушающую табуляцию всегда.
А какие экранные программы из-за этого не могут нормально работать ?
Точно определить, какая программа и в каких случаях испытывает проблемы при разрушающих табуляциях - полезно и с познавательной, и с практической точек зрения. Не исключено, что VT52.exe - единственная терминалка, позволяющая настраивать способ вывода табуляции.
Соврал я насчет SecureCRT.
Ничего там TAB не стирает.
Просто сетевой терминал по умолчанию настроен на запрет аппаратного таба и выводит пробелы. Если переключить - все как обычно работает.
Так что касаемо проги, может просто надо терминал переключить: SET TT [NO]TAB :)
И многие еще от SET TT [NO]CRLF зависят.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_23.12.12_11-45.
Изменения:
1. Исправлена ошибка в реализации консольного дампа.
Обновилась текущая сборка эмулятора терминала типа VT52: VT52_23.12.12_18-30.
Изменения:
1. Исправлена ошибка в применении тем оформления.
Помогает привести графический символ "a" примерно в тот вид который он имеет на VT52, но одновременно ломает символ <DEL>, отображаемый советскими терминалами.
Кстати хорошо бы иметь возможность отключать отображение этого символа (DEL) так как некоторые программы выводят его на экран исходя из того, что он непечатный.
Очень странно, но у меня почему-то такой перехват не работает. Вобще не попадает в KeyboardHook. Причем, если ставлю вместо WH_KEYBOARD_LL - WH_KEYBOARD, то попадает. Сверялся с MSDN, вроде все делаю правильно. В чем может быть загвоздка? Видел в сети, что не только у меня такая проблема, но ответа пока что не нашел.
---------- Post added at 21:36 ---------- Previous post was at 21:27 ----------
Так, кажется понял:
Т.е. все глобальные хуки должны быть БИБЛИОТЕКАМИ! А как быть, если я не хочу делать хук библиотекой? А чтобы он был в моем запускаемом файле? Этоже хрен какие костыли получаются.Цитата:
The global hooks are a shared resource, and installing one affects all applications in the same desktop as the calling thread. All global hook functions must be in libraries. Global hooks should be restricted to special-purpose applications or to use as a development aid during application debugging. Libraries that no longer need a hook should remove its hook procedure.
---------- Post added at 21:43 ---------- Previous post was at 21:36 ----------
Очевидно, надо придумать, как иметь библиотеку (раз уж без нее нельзя), в теле моего экзешника.
---------- Post added at 22:06 ---------- Previous post was at 21:43 ----------
В общем, я так понял, что иметь .dll в теле програмы нельзя... Хм... Может можно создать какой-то новый процесс, который как бы .dll?