Re: Помогите новичку
Posted: Thu Nov 04, 2010 2:19 pm
Freeman ...и чтоб чирикала и крылышками махала...
Не чирикает. Чирикают воробьи, да еще гопнеги чирикают "Слышь, червонец одолжи а?" (червонец - чирик)art_zh wrote:и чтоб чирикала
А в Колибри разве есть понятие курсора "песочные часы"? Всё и так летает, не?art_zh wrote:и крылышками махала...
В Колибри есть понятие - слишком много жрущих процессорное время приложений запущено, либо одно, которое написал больной на голову программист, которое ушло в вечный цикл перерисовки своего окна. Но система естественно такое не отслеживает - сервиса такого не предусмотрено.Freeman wrote:А в Колибри разве есть понятие курсора "песочные часы"? Всё и так летает, не?art_zh wrote:и крылышками махала...
Интересная идея, мне очень понравилась. Только врятли у меня получится нарисовать курсор в виде Колибри, но попробовать стоит.Freeman wrote:В порядке общего бреда: только мне грезится курсор в виде колибри?
Freeman wrote:Кто-то выкладывал на форуме векторный логотип.
Логотип (и не только) в этой теме.Rock_maniak_forever wrote:Искать надо.
dunkaist wrote:Логотип (и не только) в этой теме.
Code: Select all
for (x=0;x<300;x++) {for (y=0;y<300; y++) {if (m[x][y]!=1) {data[300*y+3*x]=0xFF; data[300*y+3*x+1]=0xFF; data[300*y+3*x+2]=0xFF;}}}
Code: Select all
/home/sourcerer/projects/me/lib/libc.a(remove.o): In function `remove':
remove.c:(.text+0x9a): undefined reference to `__stack_chk_fail'
/home/sourcerer/projects/me/lib/libc.a(doprnt.o): In function `exponentl':
doprnt.c:(.text+0xbb): undefined reference to `__stack_chk_fail'
/home/sourcerer/projects/me/lib/libc.a(doprnt.o): In function `_doprnt':
doprnt.c:(.text+0x15d7): undefined reference to `__stack_chk_fail'
там просто нужно умножить координату Y на 3, т. е.Albom wrote:И второе - поменять x и y в индексе массива data
Code: Select all
300*y+3*x ---> 3*(300*y+x)
300*y+3*x+1 ---> 3*(300*y+x)+1
300*y+3*x+2 ---> 3*(300*y+x)+2
Не знаю точно что с libc, сам я ради интереса занимался велосипедостроением. Вот несколько функций для чтения/записи файлов, если нужно. Не фонтан, но работали.Sorcerer wrote:2) Если в коде программы есть fopen (да и другие операции с ФС), то она отказывается собираться:
Code: Select all
#define FS_SUCCESS (0)
#define FS_NO_DISK (1)
#define FS_INCORRECT_OPERATION (2)
#define FS_UNKNOWN_FS_TYPE (3)
#define FS_RESERVED (4)
#define FS_FILE_NOT_FOUND (5)
#define FS_EOF (6)
#define FS_BUFFER_OVERFLOW (7)
#define FS_DISK_FULL (8)
#define FS_FAT_INVALID (9)
#define FS_ACCESS_DENIED (10)
#define FS_DISK_ERROR (11)
#define FS_OUT_OF_MEMORY (30)
#define FS_NOT_EXEC (31)
#define FS_TO_MANY_PROCESSES (32)
typedef struct __attribute__((packed)) {
unsigned nfunc;
unsigned posl;
unsigned posh;
unsigned nbytes;
void *buf;
char zero;
char *name;
} ksys_file_info_t;
static void ksys_assign (ksys_file_info_t *fh, char *name) {
fh->zero = 0;
fh->name = name;
}
static int ksys_rewrite (ksys_file_info_t *fh) {
fh->nfunc = 2;
fh->posl = 0;
fh->posh = 0;
fh->nbytes = 0;
fh->buf = 0;
unsigned int n;
int return_code;
__asm__ __volatile__ (
"int $0x40"
: "=a"(return_code), "=b"(n)
: "0"((unsigned)70), "1"((void*)fh)
);
return return_code;
}
static int ksys_write (ksys_file_info_t *fh, void *buf, unsigned int size, unsigned int *err) {
fh->nfunc = 3;
fh->nbytes = size;
fh->buf = buf;
unsigned int n;
__asm__ __volatile__ (
"int $0x40"
: "=a"(*err), "=b"(n)
: "0"((unsigned)70), "1"((void*)fh)
);
fh->posl += n;
return n;
}
static void ksys_reset (ksys_file_info_t *fh) {
fh->posl = 0;
fh->posh = 0;
}
static int ksys_read (void *ptr, int n, ksys_file_info_t *f) {
int return_code, count = 0;
f->nfunc = 0;
f->nbytes = n;
f->buf = ptr;
f->zero = 0;
__asm__ __volatile__ (
"int $0x40"
: "=a"(return_code), "=b"(count)
: "0"(70), "1"(f)
: "memory"
);
if (return_code == 0) {
f->posl += count;
return count;
} else if (return_code == 6) { /*EOF*/
f->posl += count;
return count;
} else {
return -1;
}
}