Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт дек 15, 2017 7:07 pm

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




Начать новую тему  Ответить на тему  [ 1093 сообщения ]  На страницу Пред. 163 64 65 66 6773 След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Ср янв 28, 2015 1:31 pm 
Не в сети

Зарегистрирован: Чт дек 25, 2014 1:57 am
Сообщения: 4
Здравствуйте! Помогите, пожалуйста, новичку: какие 5 наиболее важных изменений были сделаны в KoOS после отделения от MeOS?


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

Зарегистрирован: Пн июл 25, 2011 6:22 pm
Сообщения: 93
Поддержка железа, достаточно. Да и вообще, с какой целью интерессуетесь?

_________________
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!


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

Зарегистрирован: Чт дек 25, 2014 1:57 am
Сообщения: 4
Оффтопик:
Artyom писал(а):
Поддержка железа, достаточно. Да и вообще, с какой целью интерессуетесь?


Хочу написать небольшое (15 000 - 20 000 asm строк) коммерческое приложение на fasm'е. Выбираю между MeOS и KoOS, сравниваю.


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

Зарегистрирован: Пн июл 25, 2011 6:22 pm
Сообщения: 93
Право выбора есть у всех, не мне за тебя решать!!!

_________________
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!


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

Зарегистрирован: Сб дек 20, 2014 8:37 pm
Сообщения: 18
Здравствуйте. Попытка открытия файла с диска с помощью библиотеки libio:
Код:
...
FILE* (* __attribute__((stdcall)) fopen_)(const char*, unsigned int);
...
kol_struct_import *libio = kol_cofflib_load("/sys/lib/libio.obj");
if (libio == 0)
    killMainThread();

fopen_ = ( __attribute__((stdcall)) FILE* (*) (const char*, unsigned int))
      kol_cofflib_procload (libio, "file_open");
if (fopen_ == NULL)
    killMainThread();
...

Код:
int main() {
...
    printf("trying to open file 1.txt\n");
    fopen_("1.txt", 0b00000001); // O_READ = 00000001b
    printf("done!");
...
}

Вывод программы:
Цитата:
trying to open file 1.txt

Доска отладки сообщает, что произошёл page fault. MTDBG: "Debugger program called an exception 0E. Suspended."
Изображение
Файл 1.txt присутствует в каталоге с программой. При прописывании абсолютного пути к файлу наблюдается то же поведение. Что я делаю не так?


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

Зарегистрирован: Вт янв 27, 2015 12:12 pm
Сообщения: 3
Вобщем-то эта "Колибри" хоть и хороша из-за хорошей скорости, но здесь надо быть программистом и самим программировать все, что необходимо иметь для работы. Странно, что так много игровых games. Может разработано для детского садика? Ну не серьезно-же это. Были-бы шахматы и то как-то понятно, а тут все просто тупой азарт.
Невозможно usb-modem установить.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Пн фев 02, 2015 7:18 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
Запустите программу PCIDEV, сделайте скриншот или сохраните в *.txt файл. Посмотрим назначены ли прерывания, что за модем. Хотя шансов мало, если софт-модем.


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

Зарегистрирован: Пн июл 25, 2011 6:22 pm
Сообщения: 93
klb1 писал(а):
Вобщем-то эта "Колибри" хоть и хороша из-за хорошей скорости, но здесь надо быть программистом и самим программировать все, что необходимо иметь для работы. Странно, что так много игровых games. Может разработано для детского садика? Ну не серьезно-же это. Были-бы шахматы и то как-то понятно, а тут все просто тупой азарт.
Невозможно usb-modem установить.

На вкус и цвет - ОС нет и НЕ БУДЕТ!!!

_________________
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Чт фев 05, 2015 3:26 pm 
Не в сети

Зарегистрирован: Вт янв 27, 2015 12:12 pm
Сообщения: 3
Вобщем-то у меня обычный модем - флешка "билайн".
Программа от нее не устанавливается под "KolibriOS".
Тут на форуме пожалуй много интересного можно просто узнать и на досуге почитаю
Спасибо.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Чт фев 05, 2015 5:04 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
http://moskva.beeline.ru/customers/help ... nstrukcii/ Ну там есть несколько моделей... Де-факто есть 2 человека, которые могут помочь (или сказать, что надо писать отдельный драйвер для модема) - CleverMouse и hidnplayr.


Вернуться к началу
 Заголовок сообщения: Re: Помогите новичку
СообщениеДобавлено: Пт фев 06, 2015 8:25 pm 
Не в сети

Зарегистрирован: Сб дек 20, 2014 8:37 pm
Сообщения: 18
Цитата:
Здравствуйте. Попытка открытия файла с диска с помощью библиотеки libio:

Всё ещё актуально.
Нужно ли мне загружать и запускать lib_init из libio перед использованием file_open? Если да, то какие должны быть аргументы и возвращаемое значение mem.*?
Код:
;;================================================================================================;;
proc libio._.init ;///////////////////////////////////////////////////////////////////////////////;;
;;------------------------------------------------------------------------------------------------;;
;? Library entry point (called after library load)                                                ;;
;;------------------------------------------------------------------------------------------------;;
;> eax = memory allocation routine <mem.alloc*>                                                   ;;
;> ebx = memory freeing routine <mem.free*>                                                       ;;
;> ecx = memory reallocation routine <mem.realloc*>                                               ;;
;> edx = library loading routine <dll.load*>                                                      ;;
;;------------------------------------------------------------------------------------------------;;
;< eax = 1 (fail) / 0 (ok) (library initialization result)                                        ;;
;;================================================================================================;;
        mov     [mem.alloc], eax
        mov     [mem.free], ebx
        mov     [mem.realloc], ecx
        mov     [dll.load], edx
        xor     eax, eax
        ret
endp


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

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 343
Lib_init вызывать нужно, mem.* и dll.load -- это указатели на функции работы с памятью и загрузки библиотек. Не обязательно эти, но вести себя они должны так же.

Тут явно кто-то использовал libio из C; может, подскажут, куда смотреть за примером.


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

Зарегистрирован: Сб дек 20, 2014 8:37 pm
Сообщения: 18
dunkaist, спасибо!
Теперь другая проблема:
При вызове функции time() из menuetlibc получаю время, сдвинутое вперед на 6 с чем-то лет (конкретно: на 191808000 секунд).
При этом, календарь отображает правильную дату.
Что интересно, день недели и время отображаются верно, а день, месяц и год - 5 марта 2021 вместо 21 февраля 2015.

Код:
#include <time.h>

time_t t = time(NULL);
string s = ctime(&t);


Дистрибутив от 21 февраля 2015 года.
Сообщите, пожалуйста, если это ожидаемое поведение, а не баг.


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

Зарегистрирован: Сб апр 20, 2013 6:43 am
Сообщения: 26
Только начал разбираться с программированием для Kolibri на ассемблере (в основное время пишу на языках высокого уровня), поэтому задаю глупый вопрос. Я изменил простую программу, добавил кнопку, с её помощью я хочу закрывать приложение. Что я делаю не так?
Код:
include "macros.inc"

MEOS_APP_START

CODE
redraw:
   call   draw_window
wait_event:
   mcall   10
   dec   eax
   jz   redraw
   dec   eax
   jz   key
   cmp   eax,3
   jz   button_event
key:
; Нажата клавиша, читать и игнорировать
   mcall   2
   jmp   wait_event
button_event:
   cmp  ah,1
   jne   close_program
   jmp   wait_event

close_program:
   mcall   -1
; Отрисовка окна
draw_window:
   mcall   12, 1
   mcall   0, <10,150>, <40,80>, 0x33FFFFFF, , header
   mcall   4, <30,10>, 0x80000000, string
   mcall   4, <30,20>, 0x80000000, string

   mcall   8, <30,50>, <30,20>, 1, 0xf0f0f0
   mcall   4, <38,37>, 0x80000000, button
   mcall   12,2
   ret
; Константы
DATA
header   db   'HelloWorld test',0
string   db   'Тестовая строка',0
button   db   'Кнопка',0


UDATA

MEOS_APP_END


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

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
если коротко, следует заменить
Код:
cmp   eax,3

на
Код:
dec   eax

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1093 сообщения ]  На страницу Пред. 163 64 65 66 6773 След.

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


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

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


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

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