Page 10 of 18
Posted: Mon Oct 16, 2006 5:08 pm
by mike.dld
Maxxxx32
Подобную ситуацию наблюдал когда закинул новое ядро в образ от К0580. Обновляй программы чаще

Дело в том, что функция запуска программ через 58-ю функцую удалена из ядра.
Posted: Wed Oct 18, 2006 7:17 am
by Mario79
diamond
Для более корректной работы IDE DMA нужно поправить 2 места в ядре:
1) На ПК с поддержкой PATA и SATA для правильного определения PATA нужно в bootcode.inc код заменить на:
; b) class 1, subclass 1, programming interface 0x8A
mov ax, 0xB103
mov ecx, 1*10000h + 1*100h + 0x8A
mov si, 0 ; device index = 0
int 0x1A
jnc .found
; c) class 1, subclass 1, programming interface 0x85
mov ax, 0xB103
mov ecx, 1*10000h + 1*100h + 0x85
mov si, 0
int 0x1A
jc .nopci
Иначе первым будет определяться SATA и в результате PATA работать не будет.
2) Изменения в sched.inc
align 4
change_task:
pushfd
cli
pushad
call update_counters
cmp [dma_task_switched],1
jne .find_next_task
mov [dma_task_switched],0
mov ebx,[dma_process ]
cmp [0x3000],ebx
je .return
mov edi,[dma_slot_ptr]
mov [0x3000],ebx
mov [0x3010],edi
jmp @f
.find_next_task:
call find_next_task
test eax, eax ; the same task -> skip switch
jnz .return
@@:
mov [0xffff],byte 1
call do_change_task
.return:
popad
popfd
ret
для нормального распределения приоритетов задач
3) Также я заметил что при загрузке не выводится размер RAM в bootlog.
Произошло это начиная с 0581, предположительно после переписывания процедур вывода на экран, которое произвел Поддубный, но это только предположение.
Posted: Wed Oct 18, 2006 1:41 pm
by mike.dld
Насчёт багов с DMA. Хотя может это и не имеет к DMA никакого отношения.
Вчера перезагрузился в КоОС, хотел было взяться за Tinypad, открыл tinypad.asm, нажал F9 и ничего не запустилось. Глянул внутрь файла - он оказался запорченый в конце. Решил сделать скриншот этого безобразия SCRSHOT'ом, который вроде как через 70-ю функцию работает, и получил следующее при просмотре изображения:
http://mikedld.com/i/hd_bug.png (37 КБайт)
EDIT: меня очень удивило то, что SCRSHOT использует 56-ю функцию для записи файла. Эту функцию не использует никто уже пару лет! я бы ешё понял, если бы это была 58-я, но 56-я... я в ауте. Всем спасибо все свободны

Posted: Wed Oct 18, 2006 2:38 pm
by diamond
mike.dld
Вот поэтому scrshot и vscreen удалены из K0600. scrshoot использует 58-ю функцию, которая, как известно, глючит при записи больших файлов.
Maxxxx32
Протестируй, пожалуйста, все три ядра
http://diamondz.land.ru/kernel2.mnt
http://diamondz.land.ru/kernel3.mnt
http://diamondz.land.ru/kernel4.mnt
Mario79
Спасибо, добавлю.
Posted: Wed Oct 18, 2006 3:47 pm
by mike.dld
diamond
Меня просто удивило то, что SCRSHOT - программа новая. Неужели нельзя было использовать и новые функции?? Ну да ладно, к следующему релизу нужно будет это исправить.
Posted: Thu Oct 19, 2006 7:20 am
by Mario79
diamond
Я не в курсе переписал ли кто-нибудь COPY2 под 70 функцию, если нет, то у меня есть переисанная версия. Могу кому-нибудь слить исходник.
Проблема с 58 функцией несколько странная - на SIS735 все работало без проблем (и PIO, и DMA). На матери с Nfoce4 появились проблемы. Когда я переписал COPY2 на 70 функцию проблемы исчезли. Копировал я IMG файл в 100Мб и при 58 функции WinImage ругался на поврежденность, хотя после Scandisk образ открывался нормально.
Posted: Sat Oct 21, 2006 3:54 pm
by diamond
Mario79 wrote:
Я не в курсе переписал ли кто-нибудь COPY2 под 70 функцию, если нет, то у меня есть переисанная версия. Могу кому-нибудь слить исходник.
Было бы неплохо. Насколько я знаю, больше никто COPY2 не переписывал.
Posted: Mon Oct 23, 2006 12:34 pm
by Mario79
diamond
Отправил тебе на мыло.
Posted: Mon Oct 23, 2006 3:47 pm
by diamond
Mario79
Спасибо, получил.
Posted: Thu Oct 26, 2006 5:07 pm
by Maxxxx32
В моём scrshoot используется 70-я функция для сохранения файла.
Posted: Thu Oct 26, 2006 7:46 pm
by mike.dld
Maxxxx32
Спасибо за прояснение ситуации. Почему тогда на SVN лежит что-то непонятное, использующее функцию 56 от Fagotus'а (DoomEd Archangel'а)?... Хоть бы новый залить. Нет аккаунта - обратись к тому у кого есть или скажи мне, я создам.
Источник заблуждений:
http://kolibrios.org/?p=SVN&kind=file&l ... crshot.asm
diamond
Я отчётливо понимаю, что использовал новый SCRSHOT из 0.6.0.0. Другие предположения? Откуда ты брал версию, которая в дистрибе?
Posted: Fri Oct 27, 2006 2:58 pm
by Mario79
diamond
Offtop
В 194 ревизии появился баг связанный с функцией 47.
Для того чтобы его увидеть нужно запустить например PCIDEV и свернуть окно.
Очевидно баг появился в свзи с исправлением кода который выводит размер обнаруженной памяти в bootlog.
Posted: Fri Oct 27, 2006 4:15 pm
by diamond
mike.dld
Действительно, с scrshoot я ошибся - он использует 70-ю функцию, и он же помещён в дистрибутив. На svn лежит устаревшая программа scrshot, которую не следует путать с творением Maxxxx32 и которой нет в дистрибутиве. scrshoot на svn не залит.
Гм... других предположений нет.
Posted: Sat Oct 28, 2006 1:08 am
by Heavyiron
Да, 47-я функция и у меня глючит. Я даже скриншот для пробы сделал (у меня он нормально работает), но думаю выкладывать не стоит.
Posted: Sat Dec 02, 2006 5:38 pm
by Serge
diamond
Можешь сделать код для вызова ф.70 из ядра. Я сделал две функции get_fileinfo и read_file в dll.inc но они работают через прервание что ядра ненормально. Хочу переписать загрузчик программ чтобы грузить проги упакованные kpackом. Тогда код для самораспаковки не нужен. Экономия места.