Помогите новичку
-
Здравствуйте! Помогите, пожалуйста, новичку: какие 5 наиболее важных изменений были сделаны в KoOS после отделения от MeOS?
Поддержка железа, достаточно. Да и вообще, с какой целью интерессуетесь?
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
: [quote="Artyom"]Поддержка железа, достаточно. Да и вообще, с какой целью интерессуетесь?[/quote]
Хочу написать небольшое (15 000 - 20 000 asm строк) коммерческое приложение на fasm'е. Выбираю между MeOS и KoOS, сравниваю.
Хочу написать небольшое (15 000 - 20 000 asm строк) коммерческое приложение на fasm'е. Выбираю между MeOS и KoOS, сравниваю.
Право выбора есть у всех, не мне за тебя решать!!!
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Здравствуйте. Попытка открытия файла с диска с помощью библиотеки libio:
Вывод программы:
Файл 1.txt присутствует в каталоге с программой. При прописывании абсолютного пути к файлу наблюдается то же поведение. Что я делаю не так?
Code: Select all
...
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();
...
Code: Select all
int main() {
...
printf("trying to open file 1.txt\n");
fopen_("1.txt", 0b00000001); // O_READ = 00000001b
printf("done!");
...
}
Доска отладки сообщает, что произошёл page fault. MTDBG: "Debugger program called an exception 0E. Suspended."trying to open file 1.txt
Файл 1.txt присутствует в каталоге с программой. При прописывании абсолютного пути к файлу наблюдается то же поведение. Что я делаю не так?
Вобщем-то эта "Колибри" хоть и хороша из-за хорошей скорости, но здесь надо быть программистом и самим программировать все, что необходимо иметь для работы. Странно, что так много игровых games. Может разработано для детского садика? Ну не серьезно-же это. Были-бы шахматы и то как-то понятно, а тут все просто тупой азарт.
Невозможно usb-modem установить.
Невозможно usb-modem установить.
Запустите программу PCIDEV, сделайте скриншот или сохраните в *.txt файл. Посмотрим назначены ли прерывания, что за модем. Хотя шансов мало, если софт-модем.
На вкус и цвет - ОС нет и НЕ БУДЕТ!!!klb1 wrote:Вобщем-то эта "Колибри" хоть и хороша из-за хорошей скорости, но здесь надо быть программистом и самим программировать все, что необходимо иметь для работы. Странно, что так много игровых games. Может разработано для детского садика? Ну не серьезно-же это. Были-бы шахматы и то как-то понятно, а тут все просто тупой азарт.
Невозможно usb-modem установить.
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Вобщем-то у меня обычный модем - флешка "билайн".
Программа от нее не устанавливается под "KolibriOS".
Тут на форуме пожалуй много интересного можно просто узнать и на досуге почитаю
Спасибо.
Программа от нее не устанавливается под "KolibriOS".
Тут на форуме пожалуй много интересного можно просто узнать и на досуге почитаю
Спасибо.
http://moskva.beeline.ru/customers/help ... nstrukcii/ Ну там есть несколько моделей... Де-факто есть 2 человека, которые могут помочь (или сказать, что надо писать отдельный драйвер для модема) - CleverMouse и hidnplayr.
Всё ещё актуально.Здравствуйте. Попытка открытия файла с диска с помощью библиотеки libio:
Нужно ли мне загружать и запускать lib_init из libio перед использованием file_open? Если да, то какие должны быть аргументы и возвращаемое значение mem.*?
Code: Select all
;;================================================================================================;;
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
Lib_init вызывать нужно, mem.* и dll.load -- это указатели на функции работы с памятью и загрузки библиотек. Не обязательно эти, но вести себя они должны так же.
Тут явно кто-то использовал libio из C; может, подскажут, куда смотреть за примером.
Тут явно кто-то использовал libio из C; может, подскажут, куда смотреть за примером.
dunkaist, спасибо!
Теперь другая проблема:
При вызове функции time() из menuetlibc получаю время, сдвинутое вперед на 6 с чем-то лет (конкретно: на 191808000 секунд).
При этом, календарь отображает правильную дату.
Что интересно, день недели и время отображаются верно, а день, месяц и год - 5 марта 2021 вместо 21 февраля 2015.
Дистрибутив от 21 февраля 2015 года.
Сообщите, пожалуйста, если это ожидаемое поведение, а не баг.
Теперь другая проблема:
При вызове функции time() из menuetlibc получаю время, сдвинутое вперед на 6 с чем-то лет (конкретно: на 191808000 секунд).
При этом, календарь отображает правильную дату.
Что интересно, день недели и время отображаются верно, а день, месяц и год - 5 марта 2021 вместо 21 февраля 2015.
Code: Select all
#include <time.h>
time_t t = time(NULL);
string s = ctime(&t);
Сообщите, пожалуйста, если это ожидаемое поведение, а не баг.
Только начал разбираться с программированием для Kolibri на ассемблере (в основное время пишу на языках высокого уровня), поэтому задаю глупый вопрос. Я изменил простую программу, добавил кнопку, с её помощью я хочу закрывать приложение. Что я делаю не так?
Code: Select all
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
если коротко, следует заменить
на
Code: Select all
cmp eax,3
Code: Select all
dec eax
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Who is online
Users browsing this forum: Bing [Bot] and 29 guests