Page 1 of 14

Колибри 0630

Posted: Tue Oct 31, 2006 2:26 pm
by diamond
Подводя итоги двух предыдущих месяцев, выходит дистрибутив 0.6.3.0.
http://diamondz.land.ru/k0630.7z
http://diamondz.land.ru/k0630_eng.7z
http://diamondz.land.ru/k0630_src.7z
Облегченный образ для любителей эмуляторов и отладки:
http://diamondz.land.ru/kolibrid.7z

Posted: Tue Oct 31, 2006 4:04 pm
by Serge
Обнаружил неприятную ошибку. Если запустить плеер а потом шашки то система наглухо виснет. Доска отладки успела показать немаскированное исключение FPU. Похоже что ошибка в коде сохранения восстановления контекста.

Какая там версия ядра?

Posted: Tue Oct 31, 2006 6:37 pm
by diamond
Ревизия 201 + некоторые дополнительные изменения. Исходники ядра включены в исходники дистрибутива.

Posted: Tue Oct 31, 2006 7:12 pm
by diamond
Ещё точнее: ревизия 202 + вместо dev_hdcd.inc подставлен старый.

Posted: Wed Nov 01, 2006 12:39 am
by camper
Увы! Я лишен счастья потыкать клавиатурой и мышкой в версии 0630! Дело в том что при загрузке колибри 0630, как с дискеты, так и путем 9x2klbr.exe (выбор kolibri.img вместо menuet.img) у меня банально перезагружается компьютер. Т.е. я начинаю загрузку через синий экран, все как будто в порядке и когда загрузка колибри достигает 100% происходит перезагрузка компа. Перепроверил тоже самое на 0600, и убедился что все нормально в этом случае загружается и не могу понять в чем дело. :(
P.S. да, разумеется я старые menuet.img предварительно стер из корневой директории С: и в папке колибри, прежде чем копировать туда kolibri.img.

Posted: Wed Nov 01, 2006 8:15 am
by Mario79
Есть две народные мудрости: «Торопиться надо только в 3-х случаях» (кому надо знают в каких) и «Поспешай медленно…».
Я, конечно, не отрицаю и еще одну народную мудрость: «… в своем глазу бревно не замечает», но речь сейчас не обо мне. ;-)

Итак, имеем следующие пункты:
1. За особые заслуги FASM арестовали и посадили на неопределенный срок в DEVELOP. Об этом узнали Tinypad'ы и решили больше с ним не общаться. В результате пострадали все простые исходники, которым больше не суждено стать бинарниками. ;-)
2. Ядро, находящееся на SVN не является совместимым с этим дистрибутивом, надо вносить корректировки.
3. Наблюдается пропадание реакции на клавиши стрелок в KFAR, чаще всего это происходит, если много раз запускать AC97SND через него.
4. Самый простой способ завесить систему запустить проигрывание музыки через AC97SND и запустить Quake. Зависание мертвое. При обратной комбинации (сначала Quake, потом AC97SND) все работает без проблем.
5. Чем и как сжимать ядро? Про это нигде не написанов в дистрибутиве. Без сжатия для него нет места в образе, и приходится удалять не нужные приложения, например игру FARA.
6. Файл svn_log.txt - для ревизии r149.
7. Как в списки программистов попал Victor? Я ничего против не имею, но хотелось бы знать за что? Нигде нет упоминания об этом.
8. На http://meos32.7.forumer.com/ ничего нет.

Еще у меня есть код, который я написал еще до того как начал писать DMA для винта, сглаживающий изображение. Не бог весть что, и из говна конфетку не сделает (кстати, в образе слишком сильно сжатая картинка), но все же помогает. Лучше не использовать для слабых комперов. Код только для Vesa2 и выше. В свое время у меня просто руки не дошли выложить.

Надо заменить в vesa20.inc
sdp3: ; MAIN LOOP
cmp [edi+WinMapAddress],byte 1 ; ptrBuffer^<>byte(1)
jne snbgp
push eax
push ebx
mov eax,dword [WinMapAddress-8]
imul eax, [esp+4] ;4
xor edx,edx
mov ebx,[ScreenWidth]
div ebx
mov cx,dx
lea esi,[eax+eax*2]
mov eax,dword [WinMapAddress-4]
imul eax, [esp+0] ;0
xor edx,edx
mov ebx,[ScreenHeight]
div ebx
shl ecx,16
mov cx,dx
imul eax, [esp+8] ;8
add esi,eax
mov eax,[esi+0x300000]
push eax
ror ecx,16
xor eax,eax
mov ax,cx
shl eax,1 ; умножение на 2
lea eax,[eax+eax*4] ; умножение на 5
xor edx,edx
mov ebx,[ScreenWidth]
div ebx
cmp eax,5
pop eax
jb @f
mov ebx,[esi+0x300000+3]
call overlapping_of_points
@@:
push eax
ror ecx,16
xor eax,eax
mov ax,cx
shl eax,1 ; умножение на 2
lea eax,[eax+eax*4] ; умножение на
xor edx,edx
mov ebx,[ScreenHeight]
div ebx
cmp eax,5
pop eax
jb @f
mov ebx,[display_data-8]
shl ebx,1
add ebx,[display_data-8]
add ebx,0x300000
add ebx,esi
mov ebx,[ebx]
call overlapping_of_points
@@:
and eax,0xffffff
xchg edi, ebp
stosw
shr eax,16
stosb
xchg ebp, edi ; ebp+=3
cmp [ScreenBPP],byte 24 ; 24 or 32 bpp ? - x size
jz @f
inc ebp ; +1
@@:
pop ebx
pop eax
jmp shook1

И еще добавить:
overlapping_of_points:
push ecx edi
mov ecx,eax
mov edx,ebx
xor eax,eax
mov al,cl
xor ebx,ebx
mov bl,dl
add eax,ebx
rcr eax,1
xor edi,edi
mov di,ax
xor eax,eax
mov al,ch
xor ebx,ebx
mov bl,dh
add eax,ebx
rcr eax,1
ror edi,8
add edi,eax
ror ecx,8
ror edx,8
xor eax,eax
mov al,ch
xor ebx,ebx
mov bl,dh
add eax,ebx
rcr eax,1
ror edi,8
add eax,edi
ror eax,16
pop edi ecx
ret

Posted: Wed Nov 01, 2006 8:15 am
by Mario79
camper
mtldr на новый поменял?

Posted: Wed Nov 01, 2006 9:26 am
by camper
Я вообще с дискеты грузился. Сегодня попробую с разными режимами графическими.
А если гружусь через 9x2klbr.exe, нужен mtldr новый и вообще он нужен?

Posted: Wed Nov 01, 2006 10:05 am
by Heavyiron
Ну, по поводу пунктов 6 и 8 хочется сказать: "Марат, будь внимательнее!" (С) Mario79 ;) SVN-лог нужно смотреть сверху вниз, а не наоборот. На http://meos32.7.forumer.com/ я еще вчера видел сообщение diamond-а, если ты об этом.
По поводу FASM - действительно упущение. Код со сжатием картинки еще не пробовал, но сейчас этим займусь...

Posted: Wed Nov 01, 2006 10:12 am
by vectoroc
Как в списки программистов попал Victor?
Mario79 мне тоже интересно, вроде ничем особо не отличился... Так тестил немного

Posted: Wed Nov 01, 2006 10:43 am
by Mario79
Heavyiron
Хорошо п. 6 и 8 снимаются, но когда я вчера здесь увидел эту ветку на http://meos32.7.forumer.com/ ничего не было.
Код не сжимает картинку - он ее сглаживает.

Posted: Wed Nov 01, 2006 12:36 pm
by Heavyiron
[Offtop]Впечатление, что в последнее время http://meos32.7.forumer.com/ стал пристанищем только для спамеров. Модераторов, насколько мне известно, там нет, а админ появляется редко :( Это все не способствует популярности форума... [/Offtop]
Сглаживание (! оговорился ;) ) картинки работает, респект ;)
По поводу пункта 5: ядро нужно сжимать приложением kerpack в самой колибри (после чего нужно сохранить образ), либо в эмуляторе Диамонда, предварительно поместив ядро в папку, которая прописана в klbrinwin.ini в качестве рамдиска.

Posted: Wed Nov 01, 2006 1:09 pm
by Mario79
Heavyiron
По поводу пункта 5: ядро нужно сжимать приложением kerpack в самой колибри (после чего нужно сохранить образ), либо в эмуляторе Диамонда, предварительно поместив ядро в папку, которая прописана в klbrinwin.ini в качестве рамдиска.
Ни за что не поверю, что нет версии для Винды. Особенно учитывая что Diamond пользуется в основном ей (мое личное впечатление).

Posted: Wed Nov 01, 2006 1:10 pm
by Heavyiron
kerpack + klbrinwin = версия для винды ;)

Posted: Wed Nov 01, 2006 1:11 pm
by Mario79
camper
Пропиши mtldr в autoexec.bat, если у тебя 9х, правда если "линолиум", то действительно не получится.