Page 1 of 1

vrr_m

Posted: Thu Feb 22, 2007 11:29 pm
by Heavyiron
Обнаружил сегодня такие строки в исходниках vrr_m:
; \begin{Serge}
; A you really believe it?
; Блажен, кто верует, тепло ему на свете!
; \end{Serge}
:)
Это о чем вообще?

Posted: Fri Feb 23, 2007 8:57 am
by Serge

Code: Select all

        db      '/RD/1/LAUNCHER'
I_END:                             ; ¬ҐвЄ  Є®­ж  Їа®Ја ¬¬л
        db      ?       ; system loader will zero all memory after program end
                        ; this byte will be terminating zero for launcher string
Heavyiron
Это был коментарий на коментарий. Строка '/RD/1/LAUNCHER' должна заканчиваться 0 но не ней сэкономили один байт и поставили дальше db ? в рассчёте на то что система обнулит память. ИМХО если строка asciiz то ноль должен стоять явно и рассчитывать на систему не стоит.

Posted: Sat Feb 24, 2007 10:37 am
by Ghost
Кстати память вовсе не обязательно обнуляется (как повезёт), по этому поводу у меня были проблемы с графиком в gmon, изначально там был расчёт на автообнуление, у меня всё работало, а у Mario79 график безбожно гнал... всё дело было в нулях )

Posted: Sat Feb 24, 2007 1:29 pm
by Serge
Ghost
Сейчас точно обнуляется от конца файла до app_mem в заголовке.

Posted: Sun Feb 25, 2007 4:48 pm
by Mario79
Это еще что! Про нашу фантастическую лень просто говорить не имеет смысла, взглянуть на заголовок - там осталось еще то, что я поленился убрать. :-)

;
; Пример программы для MenuetOS
; озвучивает код нажатой клавиши ;)
;
; Компилировать FASM'ом
;
; См. также:
; template.asm - пример простейшей программы (новый!)
; rb.asm - контекстное меню рабочего стола
; example2.asm - пример меню и дополнительных окон
; example3.asm - пример меню, реализованного по-другому

Ни один "шпиен" не догадается, даже если будет переводить. ;-)

Posted: Mon Feb 26, 2007 6:33 pm
by diamond
Кстати память вовсе не обязательно обнуляется (как повезёт),
Память должна обнуляться. Иначе возникнут проблемы с некоторыми существующими приложениями. С этим были связаны некоторые проблемы mtappack (старых версий) на некоторых приложениях. Например, FASM при не-обнулённой памяти ругается "out of memory".
должна заканчиваться 0 но не ней сэкономили один байт и поставили дальше db ?
Это я прикалывался с оптимизацией по размеру. В процессе переписывания всех программ на запуск через 70.7 vrr_m (которая раньше имела размер 150 байт) несколько раздулась - всё-таки структура для функции 70 занимает несколько больше места, чем загрузка значений в регистры для бывшей функции 19. Я решил продемонстрировать неоптимальность существующего кода и снова ужал ровно до 150 байт :)
P.S. В принципе можно ещё немного сократить за счёт читерских приёмчиков с использованием последних полей заголовка в "неправильных" целях (в качестве кода) с расчётом на то, что некорректные значения для i_param и i_icon (aka i_path) игнорируются, но, во-первых, это всё же недокументированное читерство, которое может когда-нибудь перестать работать, а, во-вторых, не имеет смысла - всё равно программу меньше сектора (512 байт) сделать не получится ;)