Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Nov 14, 2019 8:47 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 609 posts ]  Go to page Previous 1 2 3 4 541 Next
Author Message
 Post subject:
PostPosted: Sun Nov 19, 2006 4:45 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Ghost
Я не знаю что точно делает xf86MapPciMem(,,,,) но думаю ты прав. Мой код отображает физическую память в адресное пространство ядра. У ATI (точно 9600 и х1600) регистры контроллера занимают адреса 0xF9000000-0xF900FFFF а сам адрес записан в pci 0x18 (0х10 LFB, 0х14 порты io). У ядра нет прямого доступа к этим физическим адресам потому что они не отражены в адресное пространство. AllocKernelSpace резервирует 64 Кб адресов (не физическую память) в куче ядра а MapPage(linear_addr, phisical_addr, page_flags) отображает страницы на нужные адреса. PG_SW - уровень привилегий супервизор + разрешена запись.

P.S.
Лучше zip, и какая ошибка в ядре?


Top
   
 Post subject:
PostPosted: Sun Nov 19, 2006 5:42 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
http://iam.gorodok.net/NV.zip
Ощибка с зашитой портов (функ 46). Вызываем ф. 46 для диапазона 0xE0-0xE4 в aex возвращается какаято муть (не 0 и не 1), освобождаем порты тойже функцией(другой подфункцией), потом я случайно обратился к этим портам, (in al, 0xE0 etc) программа спокойко продолжила работу, в al считанное значение. С ядром из svn программа выподает в ощибкой 0D (по мойму зашита по привилегиям).


Top
   
 Post subject:
PostPosted: Sun Nov 19, 2006 6:10 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Ghost
С драйвером я выложил тестовое ядро. Там для всез программ устанавливается IOPL3 так что они могут читать и писать любые порты и делать cli hlt :) А ф.46 осталась без изменений.


Top
   
 Post subject:
PostPosted: Sun Nov 19, 2006 7:31 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Ghost
Посмотрел исходники. Для GForce альфа курсор похож на ATI ARGB 64*64. А=0хFF делает курсор сплошным А=0 прозрачным.
Только адрес курсора в видеопамяти устанавливается мудрено.


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 8:00 am 
Serge
Я так понял для X1300 эти драйвера не подойдут?


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 8:52 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario79
Нет. Там совсем новое ядро и для нет неродных драйверов вообще.


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 3:20 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Нужна библиотека курсоров и разные курсоры в разных окнах? Можно менять форму курсора на лету при перемещении из одного окна в другое.


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 4:11 pm 
Serge
А для обычного Vesa это будет поддерживаться?


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 4:36 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario79
Можно и для обычного но надо будет переписать половину mousedrv.inc


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 4:39 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Если бы меняющийся курсор был и для VESA,то можно было бы для ANIMAGE сделать разные курсоры в соответствии с инструментом.Нажал карандаш - курсор ввиде карандаша.Нажал заливку курсор ввиде банки с краской.И так далее.


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 7:18 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
andrew_programmer
В приципе можно. Vesa драйвер будет грузить курсоры в кучу ядра. Надо только переписать код вывода курсора на экран.


Top
   
 Post subject:
PostPosted: Mon Nov 20, 2006 7:58 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
А где должен располагаться ati2d.obj: на /rd/1 или /rd/1/drivers?


Top
   
 Post subject:
PostPosted: Tue Nov 21, 2006 4:01 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Heavyiron
/rd/1/drivers. Если надо установить другой курсор переименуй его в user.cur и запиши на /rd/1/


Top
   
 Post subject:
PostPosted: Tue Nov 21, 2006 10:58 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
andrew_programmer
Можешь рисовать курсоры.
Эта часть кода не готова, так что есть время для изменений.

load_cursor
eax=68
ebx=20
ecx = src
edx = (hotspot << 16) or flags

flags:
LOAD_FROM_FILE equ 0
src = путь к файлу курсора
hotspot игнорируется

LOAD_FROM_MEM equ 1
src = адрес курсора в памяти
hotspot игнорируется

LOAD_INDIRECT equ 2
src= образ курсора в формате ARGB 32Х32 пикселя
hotspot = (x<<8)or y
0<= x,y <=31

возвращаемое значение
еах = логический номер курсора или 0 в случае неудачи.
Всего можно загрузить 48 курсоров +16 зарезервированных системных
курсоров.

set_cursor
eax=68
ebx=21
ecx = логический номер курсора

возвращаемое значение
логический номер предыдущего курсора или 0

delete_cursor
eax=68
ebx=22
ecx = логический номер курсора

возвращаемое значение
общее кол-во загруженных курсоров или 0


Top
   
 Post subject:
PostPosted: Tue Nov 21, 2006 5:13 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
>Можешь рисовать курсоры.

Рисовать лучше всего получается у goglus-а :) (нет,я не перекладываю работу на других,просто говорю то,что есть).
Курсоры наверное лучше делать чёрно-белыми,чтобы места меньше занимали в коде.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 609 posts ]  Go to page Previous 1 2 3 4 541 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited