Nп/п : 2 из 21
От : Max Vasilyev 2:5057/19 16 июл 23 20:49:34
К : Andrey Malashenko 16 июл 23 20:00:11
Тема : t-mipnt
----------------------------------------------------------------------------------
@MSGID: 2:5057/19 64b41fe7
@REPLY: 2:452/28.17 64b3cf1d
@CHRS: CP866 2
@TZUTC: 0400
Hello Andrey!
16 Jul 23 14:06, you wrote to All:
AM> Можно ли исправить эту ошибку:
AM> win7prof
AM> при запуске сабжа показывает:
AM> Error: Unable to initialize video system
= RU.FIDONET.TODAY (2:5057/77) ================================================
Msg : 15790 of 15852
From : Evgeniy 2:5023/24.3755 11 Nov 19 22:00:52
To : Rinat H. Sadretdinow
Subj : T-Mail IP
===============================================================================
Добрый день, Rinat!
11 Nov 19 21:17, Rinat H. Sadretdinow wrote to Evgeniy:
RHS> Там слово сравнивается или байт? Если байт, то может не на 0x7D
RHS> заменить, а на 0x73? Чтобы беззнаковое сравнение было. Хотя разницы
RHS> при значении 80 в принципе никакой, но на всякий случай?
Сравнивается слово, вот код этого места:
----- ida.txt begins -----
BEGTEXT:0045DCF8 push eax ; lpConsoleScreenBuff^
BEGTEXT:0045DCF9 push ds:hConsoleOutput ; hConsoleOutput
BEGTEXT:0045DCFF call cs:GetConsoleScreenBufferInfo
BEGTEXT:0045DD06 mov eax, [esp+18h+console_rows]
BEGTEXT:0045DD0A mov ds:rows_mb, ax
BEGTEXT:0045DD10 mov eax, [esp+12h]
BEGTEXT:0045DD14 mov ds:columns_mb, ax
BEGTEXT:0045DD1A movsx edx, word ptr [esp+18h+console_rows]
BEGTEXT:0045DD1F lea edx, ds:0[edx*4]
BEGTEXT:0045DD26 cwde
BEGTEXT:0045DD27 imul eax, edx
BEGTEXT:0045DD2A push eax ; dwSize
BEGTEXT:0045DD2B call zero_malloc
BEGTEXT:0045DD30 add esp, 4
BEGTEXT:0045DD33 mov ds:console_buf_mb, eax
BEGTEXT:0045DD38 mov ds:console_buf2_mb, eax
BEGTEXT:0045DD3D cmp ds:columns_mb, 80
BEGTEXT:0045DD45 jz short eq_80 ; А вот почему JZ !?
BEGTEXT:0045DD47 mov eax, 0FFFFFFFFh
BEGTEXT:0045DD4C add esp, 18h
BEGTEXT:0045DD4F retn
BEGTEXT:0045DD50 ; -----------------------------------------------------------
BEGTEXT:0045DD50
BEGTEXT:0045DD50 eq_80: ; CODE XREF: alloc_co
BEGTEXT:0045DD50 cmp ds:columns_mb, 132
BEGTEXT:0045DD59 jle short le_132
BEGTEXT:0045DD5B mov eax, 0FFFFFFFFh
BEGTEXT:0045DD60 add esp, 18h
BEGTEXT:0045DD63 retn
BEGTEXT:0045DD64 ; -----------------------------------------------------------
BEGTEXT:0045DD64
бЇ
BEGTEXT:0045DD64 le_132: ; CODE XREF: alloc_co
BEGTEXT:0045DD64 cmp ds:rows_mb, 25
BEGTEXT:0045DD6C jge short ge_25
BEGTEXT:0045DD6E mov eax, 0FFFFFFFFh
BEGTEXT:0045DD73 add esp, 18h
BEGTEXT:0045DD76 retn
BEGTEXT:0045DD77 ; -----------------------------------------------------------
BEGTEXT:0045DD77
BEGTEXT:0045DD77 ge_25: ; CODE XREF: alloc_co
BEGTEXT:0045DD77 ;
alloc_cons_buf+90^jбЇ
BEGTEXT:0045DD77 xor eax, eax
BEGTEXT:0045DD79 add esp, 18h
BEGTEXT:0045DD7C retn
BEGTEXT:0045DD7C alloc_cons_buf endp
----- ida.txt ends -----
Да, 0x73 тут уместнее, согласен. Hе смог сходу найти этот опкод в древнем
мануале, который был под рукой, поэтому взял другой.
А так - причин ошибки может быть несколько, какая из них не даёт работать под
Win8? А Шива его знает... Без отладчика на конкретной системе гадать можно
долго. Либо упатчиться в край. :-) Поэтому тут лишь предположения.
Единственное только, что при запуске с параметром "-NOCON" эта функция вообще
не должна вызываться, поэтому та же ошибка не должна вылезать. Hо и интерфейса
тоже, видимо, быть не должно...
С уважением,
Evgeniy
-+-
+ Origin: FIDO - передаём данные при помощи собаки с дискетой (2:5023/24.3755)
= RU.FIDONET.TODAY (2:5057/77) ================================================
Msg : 15830 of 15852
From : Evgeniy 2:5023/24.3755 13 Nov 19 09:14:16
To : Dmitriy Ksenchak
Subj : Re: T-Mail IP
===============================================================================
Добрый день, Dmitriy!
13 Nov 19 11:03, Dmitriy Ksenchak wrote to Evgeniy:
DK> Запустился и работает! Пробовал с разными параметрами строки, пока
DK> всё стабильно!
Hу баги и потом могут вылезти, теоретически... :-)
Hо, наверное, всё же стоит под рукой держать либо батник для запуска T-Mail с
дополнительной командой "mode con cols=80 lines=25", либо какой-то readme, ибо
замена байта в общем случае не является решением: с изменённым EXE-шником при
консоли шириной более 132 столбцов всё равно будет вылетать та же ошибка
"Error: Unable to initialize video system.". А консоль теоретически может
"опять" стать шире после выхода очередной Windows 100500 или при изменениях
каких-нибудь системных настроек. Проверку на "ширину" консоли в принципе можно
полностью "отключить", либо скорректировать размеры при помощи изменения пары
байтов EXE-шника, но тут уже явно где-то что-то "нехорошее" может вылезти (хотя
бы из-за переполнений разрядных сеток каких-нибудь связаных переменных или
вычислений). Проверка на размер консоли скорее всего нужна нужна в том или ином
виде. Вопрос лишь в том, с каким максимальным размером консоли _в_принципе_
может работать эта программа нормально. Для хранения размеров консоли в
глобальных переменных используются 16-битные значения. Можно с некоторой долей
оптимизма предположить, что и работа с этими значениями организована без
различных усечений результатов, т.е., возможно, что T-Mail может нормально
работать с консолями размерами до 65535x65535. Hо проверять это - задачка "на
любителя". :-)
Для желающих поковыряться в HEX-редакторе, выкладываю смещения. Все изменения
на свой страх и риск :-)
Ограничения размеров консоли для версии:
T-Mail.NT ver.2608/NC (C) 1992-2001 by Andy Elkin.
хранятся по смещениям:
0x5CCF5: 0x74 -> 0x73 - переделка работы из "равного" количества столбцов в
"минимальное";
0x5CCF4: 0x50 - равное (!? минимальное) количество столбцов (80);
0x5CD07: 0x84 0x00 - максимальное количество столбцов (132);
0x5CD1B: 0x19 - минимальное количество строк (25).
Ограничения размеров консоли для версии:
T-Mail.NT/TCP/IP ver.2608/NC (C) 1992-2001 by Andy Elkin.
хранятся по смещениям:
0x5D145: 0x74 -> 0x73 - переделка работы из "равного" количества столбцов в
"минимальное";
0x5D144: 0x50 - равное (!? минимальное) количество столбцов (80);
0x5D157: 0x84 0x00 - максимальное количество столбцов (132);
0x5D16B: 0x19 - минимальное количество строк (25).
С уважением,
Evgeniy
-+-
+ Origin: FIDO - передаём данные при помощи собаки с дискетой (2:5023/24.3755)
WBR, Max.
--- GoldED+/W32-MSVC 1.1.5-b20230304
* Origin: Uptime 4 day(s) 21:39:40.456 (2:5057/19)
SEEN-BY: 452/28 4500/1 5020/290 400 570 715 848
1042 4441 12000 5022/128
SEEN-BY: 5023/24 5030/1081 1900 5034/13 5053/58
5055/73 5057/19 78 5058/104
SEEN-BY: 5061/15 6090/1
@PATH: 5057/19 5020/715 4441