Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт мар 30, 2017 7:43 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 1093 сообщения ]  На страницу Пред. 168 69 70 71 72 73 След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Вс окт 04, 2015 4:29 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
Сейчас попробовал сделать так:
Код:
CODE

char_coord_x = 10
char_coord_y = 10
char_width  = 6
char_height = 9

        ; draw one char in buffer.
        xor     eax, eax
        mov      al, 4
        mov     ebx, char_coord_x
        shl     ebx, 16
        add     ebx, char_coord_y
        xor     ecx, ecx
        mov      cl, 00001000b    ; XY ; X = font type 6x9 cp866 ; Y = output in buffer.
        ror     ecx, 8
        add     ecx, 0x00ff0000   ; char color is red.
        mov     edx, string       ; edx = char start address.
        mov     esi, 1            ; use one char.
        mov     edi, char_addr    ; edi = buffer address for char.
        int     0x40

        ; draw character image.
        xor     eax, eax
        mov      al, 65
        mov     ebx, char_addr_    ; ebx = buffer address with char.
        mov     ecx, char_width
        shl     ecx, 16
        add     ecx, char_height
        mov     edx, char_coord_x
        shl     edx, 16
        add     edx, char_coord_y
        mov     esi, 32           ; 32 bits per pixel.
        mov     edi, 0
        mov     ebp, 0
        int     0x40

DATA

char_addr: 
dd  char_width, char_height
char_addr_:
db  char_width*char_height*4  dup (0x55)
но, ничего не изменилось. Символа, всё так же, нет. Только, тёмный прямоугольник, а должен быть, красный символ, на тёмном фоне.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Вс окт 04, 2015 5:09 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
Уфффффффффффффффффффф, разобрался. :x Теперь, всё работает. Дебильная документация, млин. :twisted: Нельзя было нормально написать.

И вообще нахрена, надо указывать вначале буфера, размер символа, если для этого, есть биты, высталенные в старшей части регистра ECX, которые указывают на размер символа? Идиотизм какой-то. :shock:


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Пн окт 05, 2015 6:01 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1113
В начале буфера указывается размер буфера, а не символа. Вертикальный размер реально не используется, но горизонтальный по любому нужен. Такой стандарт придумал Марио, а на счёт документации — предлагай, как лучше.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Пн окт 05, 2015 7:45 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб сен 27, 2014 2:59 pm
Сообщения: 102
Pathoswithin писал(а):
В начале буфера указывается размер буфера, а не символа.
Я имел ввиду, по отношенмю к моему примеру. Но даже для буфера. Зачем, если функция, сама может вычислить размер буфера? Благо, в регистрах, уже всё есть.
Pathoswithin писал(а):
Вертикальный размер реально не используется, но горизонтальный по любому нужен.
Тогда зачем, нужны лишние 4 байта?
Pathoswithin писал(а):
Такой стандарт придумал Марио,
Ясно.
Pathoswithin писал(а):
а на счёт документации — предлагай, как лучше.
Должен уточнить; я говорил, не про всю документацию, а про документацию на 4-ую функцию, хотя где-то ещё, было что-то. Придлогать ничего не собирался, просто выразил свои эмоции.

Но, коли на то пошло, то, хотя бы так:
Код:
======================================================================
============== Функция 4 - вывести строку текста. ====================
======================================================================
Особенность:
  * может выводить строку текста в окно.
  * может выводить строку текста в область пользователя.

Параметры:
  * eax = 4 - номер функции
  * ebx = [координата по оси x]*65536 + [координата по оси y]
  * ecx = 0xXYRRGGBB, где
    * RR, GG, BB задают цвет текста
    * X=ABFF (биты):
      * A=1 - выводить ASCIIZ-строку
      * B=1 - закрашивать фон цветом edi
      * FF задает шрифт и кодировку:
        0 = 6x9  cp866
        2 = 8x16 UTF-16LE
        3 = 8x16 UTF-8
    * Y=CDDD (биты):
      * C=1 перенаправить вывод в область пользователя, задано в edi
      * DDD = (множитель размера)-1, то-есть 0 = x1, 7 = x8
  * edx = указатель на начало строки
  * esi = для A=0 длина строки, для A=1 игнорируется
  * edi = если B=1, цвет для закраски фона,
          если C=1, указатель на область пользователя

Возвращаемое значение:
  * функция не возвращает значения.

Формат области пользователя:
  * dword: со значением ширины области пользователя.
  * dword: со значением высоты области пользователя.
  * field: остаток области, где будет храниться строка.

Замечания:
  * Нельзя одновременно использовать B=1 и C=1,
    поскольку в обоих случаях используется регистр edi.
  * при С=1 (вывод в область пользователя):
     * координаты в регистре ebx, являются координатами
        внутри пользовательской области.
     * размер цвета пикселя = 32 бита.
     * область field - берётся из расчёта:
         field=width*height*4
     * вывод области пользователя в окно, можно сделать функцией 65,
       указав поле field, в качестве отправной точки.
     * в область пользователя, записываются только пиксели символов.

======================================================================
IMHO так лучше. Всё ясно и понятно.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 12:11 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 30, 2013 2:35 am
Сообщения: 47
Ребят,если в исходниках KolibriOS сменить богомерзкий слеш в разделителе имен каталогов на православный бэкслеш,
то совместимость с существующим софтом как положено,рухнет к епени фени,м?

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 1:35 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1113
А с каких это пор исконный, юниксовый слеш — богомерзкий, а виндовый бэкслеш, внезапно, — православный?
Если со стороны файловой системы, то наверно можно сделать поддержку обоих.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 2:23 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
X-Ray писал(а):
совместимость с существующим софтом как положено, рухнет к епени фени,м?

Обязательно. Потому как если что, в коде проверяют символ '/'. И зачем? Я что-то не припомню - с винды что-нибудь портировали? А с Линукса было и не раз. Ещё одну заморочку надо?

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 5:26 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 30, 2013 2:35 am
Сообщения: 47
Pathoswithin писал(а):
А с каких это пор исконный, юниксовый слеш — богомерзкий, а виндовый бэкслеш, внезапно, — православный?

Разумеется по версии олдовых DOS-юзеров,к которым и я отношусь,внезапно)
GerdtR писал(а):
Обязательно. Потому как если что, в коде проверяют символ '/'. И зачем?...

Ненавижу unix-style) Но это мое имхо,разумеется.
P.S.А имена дисков в файлманагерах в стиле rd/hd/bd etc. планируется сменить на что-нить более ммм... виндовое ?

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 5:30 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
X-Ray писал(а):
P.S.А имена дисков в файлманагерах в стиле rd/hd/bd etc. планируется сменить на что-нить более ммм... виндовое ?

Нет. Я понимаю, что тебе Винда привычнее, только тут Колибри. ОС другая. И вообще, не удобно же. Ну что за диск К, например? А в колибри cd0 - и сразу ясно - первый дивидишник.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 5:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 30, 2013 2:35 am
Сообщения: 47
GerdtR писал(а):
Нет. Я понимаю, что тебе Винда привычнее, только тут Колибри. ОС другая. И вообще, не удобно же. Ну что за диск К, например? А в колибри cd0 - и сразу ясно - первый дивидишник.

Это нам с тобой ясно. А поставь себя на место среднестатистического пользователя - "А хде мои особо ценные файлы на диске Дэ ?"

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 7:05 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
:) Когда-то я не знал, как Винду вырубить. Вот недавно в вин7 искал "Свойства папки" дабы включить отображение скрытых папок. Ах да, в 8мой тоже искал, как комп вырубить - в пуске-то нет. Это я к чему: надо будет - найдёт и будет всё ясно и понятно.
PS: Показать, как в винде диск D назвать диском R, например? В XP точно знаю, ну в 7ой тоже должно быть. В новых не уверен, как там. Это что, придётся искать винду, её реестр и называть также диски? А то никаких гарантий, что диск D и E в Винде не окажутся E и D в Колибри. Прикинь глаза юзера :)

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 7:59 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1113
X-Ray... это ты, конечно, дело говоришь, особенно с учётом того, что в КОС скачать особо ценные файлы проблематично. У разделов есть название, вот его неплохо бы читать и выводить...


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 8:13 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
Читать имя раздела вполне годная идея. И вполне просто реализуется.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Сб окт 10, 2015 9:30 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 30, 2013 2:35 am
Сообщения: 47
GerdtR писал(а):
:)... Вот недавно в вин7 искал "Свойства папки" дабы включить отображение скрытых папок. Ах да, в 8мой тоже искал, как комп вырубить - в пуске-то нет. Это я к чему: надо будет - найдёт и будет всё ясно и понятно.
Мда,7-ка слишком уж заточена под "домохозяйку" - сам искал,где включить скрытые/системные папки,и главное,отображение расширений файлов - без них в проводнике в ступор впадаю(еще одна причина ненавидеть unix - где расширения?!!Как можно ориентироваться?!! - хз.Ну это я так,к слову).

GerdtR писал(а):
PS: Показать, как в винде диск D назвать диском R, например? В XP точно знаю, ну в 7ой тоже должно быть.
Не нужно,проделываю это после каждой (пере)установки.В 7-ке,кстати,также.

GerdtR писал(а):
А то никаких гарантий, что диск D и E в Винде не окажутся E и D в Колибри.
Я не именно это имел ввиду,- в виндятине флоповод как правило A/B,системный C,secondary разделы или второй HDD - D or etc.Оставить лишь привычные наименования дисковых устройств,а не порядок расположения винтов/разделов.На мой взгляд удобно и логично.И даже в PC BIOS такая система наименований частенько бывает,не то что в ОС(кроме XT,там перемычками че угодно можно выставить).

Pathoswithin писал(а):
X-Ray... это ты, конечно, дело говоришь, особенно с учётом того, что в КОС скачать особо ценные файлы проблематично. У разделов есть название, вот его неплохо бы читать и выводить...
GerdtR писал(а):
Читать имя раздела вполне годная идея. И вполне просто реализуется.
Годнота,че. Ток меня терзают смутные сомненья,что далеко не каждый юзверь осведомлен о DISK LABEL.

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Вс окт 11, 2015 10:33 am 
Не в сети

Зарегистрирован: Чт мар 05, 2015 9:02 pm
Сообщения: 29
Цели пересадить всех с винды на Колибри нет.
Чтобы их пересадить, нужно выполнить очень много условий, вот некоторые:
- сделать оформление похожим или даже копию винды (переходил с винды на Линукс, знаю, о чем говорю)
- сделать полноценный браузер не хуже хрома/файерфокса
- сделать офисный пакет, который будет корректно отображать файлы офиса мелкомягких

Из этих 3х пунктов 1й можно реализовать за неделю. 2й можно реализовать, если хорошо потрудится вся активная часть разработчиков, за полгода-год.

На 3й пункт уйдет бесконечно количество времени, ибо это будет постоянная погоня за мелкомягкими.

-----------------
А можно насрать на все эти "пожелания" виндузятников и продолжать разрабатывать Колибри, делая его стабильнее и качественнее, не отвлекаясь на мелочи.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1093 сообщения ]  На страницу Пред. 168 69 70 71 72 73 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB