Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Технический флейм » Пишет ли кто-то новый софт под XT? Демки, игры? |
<<Назад Вперед>> | Страницы: 1 2 3 * 4 | Печать |
Const14
Junior Member
Откуда: Москва Всего сообщений: 87 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 3 янв. 2010 |
Теперь понятно. Что касается задержки, повторюсь. Функция delay из библиотеки BC3.1 реализована довольно просто и основана на циклическом считывании содержимого регистра таймера и проверки его на достижение заданного расчётного значения. И ещё, тоже повторюсь, лучше всего такие эксперименты с железом проводить из-под реальной DOS. |
Сергей С |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 мая 2017 10:44 Сообщение отредактировано: 5 мая 2017 11:01 По прежнему 2 действия, причём первое осталось тем же, тоесть в корне не поменялось. Речь о возможности не использовать операцию деления, пояснения ниже, и был комментарий Const14 о "достаточно только проверки на граничные условия" А как только второго? От текущей координаты же нужно считать. // да, конечно, требуется только одно действие и проверка остатка перехват этого прерывания, если не через разные стандартные функции(ah=25/35, int 21h) то "вручную" грубо подставив свой обработчик. как организовать задержку по таймеру, который IRQ 0 System Timer? конкретней что выглядит не очень хорошо, теряюсь в множестве возникающих догадок. Через циклы как-то не очень хорошо выглядит... Вами отсылается одна "координата", и дальше развивать данную программу для поддержки других графических видеорежимов с другой шириной, высотой будет сложнее из таких представлений. Можно остановиться на варианте с игрой "змейка" или другие планы. Границы теже ... самые. Эти выражения говорят о вашем текущем представлении о должной работе программы, стараемся думать без сбивающих с толку аллегорий и упрощений, зачем считаете границу(делить, остаток) и лишь потом необходимое сравнение со значением фиксированной границы. что дается пространство в 64000 точек. // отсылаются новые координаты // Вывод спрайта c заданного адреса // накрутка адреса, просчет границы На поле(сетке) 2 координаты, а на линии(цепочке) адресе она одна. Как изменится(будет выглядеть) программа если она для управления будет оперировать не одной координатой, а двумя, а для отображения в видеопамяти переходить на одну? Грубо говоря, спрайту задается произвольный адрес из адреса рабочего поля |
Planet001 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 мая 2017 15:54 Сообщение отредактировано: 5 мая 2017 20:16
то есть переписать так, чтоб в подпрограмму спрайта 2 координаты шли? соот, из сетки 320х200... но, если я правильно понял, умножение все равно будет. как раз и будет умножение входных координат. результат - одно число или адрес. ps пытаюсь сделать) пока что-то не очень выходит). Например, 200х200 = 40000, 201x200=40200. Скачет через 200. Видно, не получается допереть..Ну ладно, еще поковыряю. Каюсь, была полная ересь. Теперь алгоритм выглядит вот так: mov ax, y1 mov bx, 320 mul bx add ax,x1 mov di,ax управляется строго через inc и dec с проверками: right: push ax push bx push dx inc x1 cmp x1,309 ja c1 pop ax pop bx pop dx jmp main_loop c1: dec x1 pop ax pop bx pop dx jmp main_loop |
Сергей С |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 мая 2017 21:08 Сообщение отредактировано: 5 мая 2017 21:22
Снова лишние действия, подобно сместились в сторону(inc x1), поняли что прошли сквозь стену(cmp x1,) и вернулись назад(dec x1), если прошли - преграды не было? А в стек что ложете/достаёте, тоже самое? С алгоритмом в виде блок схемы, условия по и ветвления - интересное слово, знакомы ? Открыл учебник "Основы информатики и вычислительной техники", алгоритмический язык, вот задачка оттуда: Петя составил алгоритм, а Коля стёр в нём одну команду: алг прогулка дано | стен на поле нет надо | Робот погулял и вернулся в исходное положение нач | вверх | вправо | ??? | вниз | влево | влево кон |
Planet001 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 мая 2017 22:28 Сообщение отредактировано: 5 мая 2017 22:30
прошу прощения, куски про стек это от других манипуляций... не подумал и оставил. конечно, без push pop. до стен еще далеко. тут бы сам принцип понять. а формула эта каноническая. и видел я ее не раз. позиция=x+(y*320)... но совершенно она из головы вылетела. |
Сергей С |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 6 мая 2017 16:22 Сообщение отредактировано: 6 мая 2017 16:32
Принцип простой - не врать, иначе дальше опять ложь для поддержания рабочести предыдущей, а составить математическую модель того, что происходит как вы видите. Оффтопик: Оффтопик: Пройдя стену, мы окажемся на её другой стороне ? Поэтапно Алгоритм - Блок схема - язык Высокого уровня - ассемблер - Двоичный код. А как сейчас выглядит код? Нравится, оптимизировать или и так хватает быстродействия, как оценивать? Есть вопрос о необходимости переходить на специализированные форумы. |
<<Назад Вперед>> | Страницы: 1 2 3 * 4 | Печать |
Полигон-2 » Технический флейм » Пишет ли кто-то новый софт под XT? Демки, игры? |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |