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



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх