Сейчас на форуме: tyns777 (+4 невидимых) |
eXeL@B —› Программирование —› не пойму, что за ошибка |
Посл.ответ | Сообщение |
|
Создано: 20 октября 2010 20:21 · Личное сообщение · #1 Ситуация такая: код срабатывает каждый раз по разному, проверял, что находится в памяти, выяснилось, что там вся матрица верна и действительно там присутствует данный код тестировал в досе, только вместо страничной адресации я использовал сегментную он действительно работал корректно... подскажите пожалуйста, в чем может быть проблема uote |
|
Создано: 20 октября 2010 20:22 · Личное сообщение · #2 Code:
|
|
Создано: 20 октября 2010 22:15 · Личное сообщение · #3 |
|
Создано: 20 октября 2010 22:19 · Личное сообщение · #4 |
|
Создано: 20 октября 2010 23:36 · Личное сообщение · #5 изложу корректнее)) пишу свою исследовательскую ОС, включил режим TrueColor32 1024x768 я перешел в защищенный режим и включил страничную адресацию принялся за разработку планировщика, по ходу дела возникла нужда в отладке, ну или хотя бы что бы можно было выводить значения регистров на экран (отрисовка) начал тогда писать процедуру для вывода на экран значения регистра в коде я постарался всё подробно прокомментировать, что бы вопросов не было приведенный код: код отрисовки символа по битовой матрице, матрица составлена корректно, тестировал в DOS 1 - рисуем пиксель 0 - ничего не делаем в конце добавил код для вывода полоски на экране, что бы наглядно просмотреть работу запускаю это всё добро под виртуальной машиной VMware 7.1 в итоге что получил: пиксели появляются в области символа (16х24) в верхнем левом углу экрана (как надо) но они в совокупности не формируют нужный символ, а лишь какой-то беспорядоченный набор точек причем при помощи проверочной полоски проверял, что иногда проверочная строчка выводилась, не на нужной высоте т. е. она должна вывестись во вертикале на 24 пикселе, но она рандомно выводится))) надеюсь я понятно всё изложил |
|
Создано: 21 октября 2010 01:45 · Личное сообщение · #6 я не совсем понял что это Code:
и почему тогда уже не прямо не брать дальше в коде с dword ptr video_buffer то что разрешение 1024x768 еще нет гарантии что сканлан там такой какой у вас Code:
и может быть рассинхронизация и может быть что глубина цвета другая тогда там и запись в видео буффер разная будет.. в самой логике вывода пикселя если нет просчетов, то и глюков можно не искать а почему голый асм? пишите на С, а асм вставки в самых ответсвенных частях |
|
Создано: 21 октября 2010 09:30 · Личное сообщение · #7 дело всё в том, что я использую страничную адресацию этот раздел памяти отностися к каталогу №0, страница №0x3FF edi в данном случае как раз указывает на эту страницу Code:
далее я просто увеличивал адрес видеобуфера, что бы в таблице страниц был указатель на следующую строку видеобуфера edi инициализировал заново... Code:
я до вывода буквы, сделал вывод фонового изображения... я взял bmp-файл, вырезал первые 54 байта, получил бинарный файл и вывел его таким же образом он вывелся хорошо, без всяких аномалий reversecode пишет: и может быть рассинхронизацияи может быть что глубина цвета другаятогда там и запись в видео буффер разная будет..в самой логике вывода пикселя если нет просчетов, то и глюков можно не искать а как это проверить-то ? reversecode пишет: а почему голый асм? еще немного осталось пару деталей доделать, и можно переходить на Си) |
|
Создано: 21 октября 2010 13:08 · Личное сообщение · #8 вот, как выглядит моя битовая матрица(массив) я использую в своем код размер 16х48 бит принцип таков, я покажу на примере 8х8 [0][0][0][1][1][0][0][0] [0][1][1][0][0][1][1][0] [0][1][0][0][0][0][1][0] [1][0][0][0][0][0][0][1] [1][0][0][0][0][0][0][1] [0][1][0][0][0][0][1][0] [0][1][1][0][0][1][1][0] [0][0][0][1][1][0][0][0] считываю байт, получаю первые 8 бит далее в соответствии установлен или нет, я рисую пиксель или нет по такому принципу у меня построен вывод символа... но я только не пойму в чем ошибка фоновое изображение я выводил так же с помощью видеобуфера, увеличивая после каждых 1024 пикселей указатель на видеобуфер в таблице страниц на 0x1000 (т. е. 4кб или 4*1024 по 4 байта на пиксель) и изображение прекрасно отображалось, правда я тодга использовал просто копирование туда данных, у меня было готово изображение(обработанный bmp-файл) |
|
Создано: 21 октября 2010 13:43 · Личное сообщение · #9 |
eXeL@B —› Программирование —› не пойму, что за ошибка |
Эта тема закрыта. Ответы больше не принимаются. |