Подводя итоги двух предыдущих месяцев, выходит дистрибутив 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
Колибри 0630
-
Ушёл к умным, знающим и культурным людям.
Обнаружил неприятную ошибку. Если запустить плеер а потом шашки то система наглухо виснет. Доска отладки успела показать немаскированное исключение FPU. Похоже что ошибка в коде сохранения восстановления контекста.
Какая там версия ядра?
Какая там версия ядра?
Ревизия 201 + некоторые дополнительные изменения. Исходники ядра включены в исходники дистрибутива.
Ещё точнее: ревизия 202 + вместо dev_hdcd.inc подставлен старый.
Увы! Я лишен счастья потыкать клавиатурой и мышкой в версии 0630! Дело в том что при загрузке колибри 0630, как с дискеты, так и путем 9x2klbr.exe (выбор kolibri.img вместо menuet.img) у меня банально перезагружается компьютер. Т.е. я начинаю загрузку через синий экран, все как будто в порядке и когда загрузка колибри достигает 100% происходит перезагрузка компа. Перепроверил тоже самое на 0600, и убедился что все нормально в этом случае загружается и не могу понять в чем дело.
P.S. да, разумеется я старые menuet.img предварительно стер из корневой директории С: и в папке колибри, прежде чем копировать туда kolibri.img.
P.S. да, разумеется я старые menuet.img предварительно стер из корневой директории С: и в папке колибри, прежде чем копировать туда kolibri.img.
Есть две народные мудрости: «Торопиться надо только в 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
Я, конечно, не отрицаю и еще одну народную мудрость: «… в своем глазу бревно не замечает», но речь сейчас не обо мне.
Итак, имеем следующие пункты:
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
Last edited by Mario79 on Wed Nov 01, 2006 10:45 am, edited 2 times in total.
camper
mtldr на новый поменял?
mtldr на новый поменял?
Я вообще с дискеты грузился. Сегодня попробую с разными режимами графическими.
А если гружусь через 9x2klbr.exe, нужен mtldr новый и вообще он нужен?
А если гружусь через 9x2klbr.exe, нужен mtldr новый и вообще он нужен?
Ну, по поводу пунктов 6 и 8 хочется сказать: "Марат, будь внимательнее!" (С) Mario79 SVN-лог нужно смотреть сверху вниз, а не наоборот. На http://meos32.7.forumer.com/ я еще вчера видел сообщение diamond-а, если ты об этом.
По поводу FASM - действительно упущение. Код со сжатием картинки еще не пробовал, но сейчас этим займусь...
По поводу FASM - действительно упущение. Код со сжатием картинки еще не пробовал, но сейчас этим займусь...
Mario79 мне тоже интересно, вроде ничем особо не отличился... Так тестил немногоКак в списки программистов попал Victor?
Heavyiron
Хорошо п. 6 и 8 снимаются, но когда я вчера здесь увидел эту ветку на http://meos32.7.forumer.com/ ничего не было.
Код не сжимает картинку - он ее сглаживает.
Хорошо п. 6 и 8 снимаются, но когда я вчера здесь увидел эту ветку на http://meos32.7.forumer.com/ ничего не было.
Код не сжимает картинку - он ее сглаживает.
[Offtop]Впечатление, что в последнее время http://meos32.7.forumer.com/ стал пристанищем только для спамеров. Модераторов, насколько мне известно, там нет, а админ появляется редко Это все не способствует популярности форума... [/Offtop]
Сглаживание (! оговорился ) картинки работает, респект
По поводу пункта 5: ядро нужно сжимать приложением kerpack в самой колибри (после чего нужно сохранить образ), либо в эмуляторе Диамонда, предварительно поместив ядро в папку, которая прописана в klbrinwin.ini в качестве рамдиска.
Сглаживание (! оговорился ) картинки работает, респект
По поводу пункта 5: ядро нужно сжимать приложением kerpack в самой колибри (после чего нужно сохранить образ), либо в эмуляторе Диамонда, предварительно поместив ядро в папку, которая прописана в klbrinwin.ini в качестве рамдиска.
Last edited by Heavyiron on Wed Nov 01, 2006 4:16 pm, edited 1 time in total.
Heavyiron
Ни за что не поверю, что нет версии для Винды. Особенно учитывая что Diamond пользуется в основном ей (мое личное впечатление).По поводу пункта 5: ядро нужно сжимать приложением kerpack в самой колибри (после чего нужно сохранить образ), либо в эмуляторе Диамонда, предварительно поместив ядро в папку, которая прописана в klbrinwin.ini в качестве рамдиска.
kerpack + klbrinwin = версия для винды
camper
Пропиши mtldr в autoexec.bat, если у тебя 9х, правда если "линолиум", то действительно не получится.
Пропиши mtldr в autoexec.bat, если у тебя 9х, правда если "линолиум", то действительно не получится.
Who is online
Users browsing this forum: No registered users and 14 guests