Для меня это первый хоть сколько-нибудь серьёзный проект на УКНЦ. Было интересно попробовать что-нибудь написать. Да, есть эмулятор БК на УКНЦ но это же совсем другое.
Цвета, звук -- это потом уже всё. Сначала надо доделать до состояния чтобы минимально играть можно было. По идее, для этого мне нужно с управлением разобраться -- на уровне как правильно получать данные из порта, а сама логика по идее уже должна работать.
Способ портирования был такой.
В своём эмуляторе БК я сделал трассировку выполняемых команд -- дизасм на одну строчку выдаётся в файл. Плюс включение/выключение трассировки из отладочной консоли. Делаю прогон участка который меня интересует с записью трассы, потом сворачиваю трассу (sort & uniq) -- получаю фрагменты логики. Добавляю к этому комментарии, получаю постепенно общий файл. На это ушло недели полторы-две по вечерам.
Когда полученный объём стал достаточно большим (40+ КБ текста, больше 1500 строк) и я разобрался хотя бы в общих чертах что к чему, как хранится и выводится -- стал думать как это перевести на УКНЦ.
Начал писать примеры на УКНЦ и несколько приуныл -- потому что цикл "скомпилил -- слинковал -- запустил" получается довольно медленный.
Кросс-ассемблер MACRO11 есть, хоть он и несколько глючный. А вот линкера нет.
Но к счастью не так давно Patron выложил консольную RT-11: http://zx-pk.ru/showthread.php?t=24755 Это я считаю настоящий прорыв, резко ускоряет работу. С ним самое медленное место теперь -- это запуск в эмуляторе.
После этого дело пошло, сделал отрисовку рамки игрового поля, отрисовку спрайтов, разобрался как биты в спрайтах нужно перемешать, затем блоками стал переносить код из общего файла с дизасмом в новые исходники. Взял дамп памяти с БК, выделил блок где лежат уровни, утилитой DUMP сделал текстовик под уровни.
Сначала перенёс блок кода который выводит уровень, на этом отладил вывод спрайтов. Потом игровую логику стал переносить. Т.е. в целом перенос практически один-к-одному, за исключением мест где вывод на экран идёт. Поэтому есть места в логике которые я не понимаю как работают (тот же AI чёртиков), но это и не важно -- главное что работают.
Я уже выкладывал серию скриншотов которые делал при работе:
![]()




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
