Re: Помогите новичку
Posted: Wed Jan 28, 2015 1:31 pm
Здравствуйте! Помогите, пожалуйста, новичку: какие 5 наиболее важных изменений были сделаны в KoOS после отделения от MeOS?
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
На вкус и цвет - ОС нет и НЕ БУДЕТ!!!klb1 wrote:Вобщем-то эта "Колибри" хоть и хороша из-за хорошей скорости, но здесь надо быть программистом и самим программировать все, что необходимо иметь для работы. Странно, что так много игровых games. Может разработано для детского садика? Ну не серьезно-же это. Были-бы шахматы и то как-то понятно, а тут все просто тупой азарт.
Невозможно usb-modem установить.
Всё ещё актуально.Здравствуйте. Попытка открытия файла с диска с помощью библиотеки libio:
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
Code: Select all
#include <time.h>
time_t t = time(NULL);
string s = ctime(&t);
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