PDA

Просмотр полной версии : Портирование игры "Last Mission" на УКНЦ



Страницы : [1] 2 3

S_V_B
19.10.2018, 18:35
Очень неспешно, как говорит nzeemin, буду переделывать с PC..
кое что можно уже глянуть:
https://disk.yandex.ru/d/W-HF4hAPftLbUQ

диск загрузочный, сама запустится. (весь лабиринт)
Параллельно на БК10 переделкой занимается Manwe.

66605
Для тех кто не помнит..

hobot
19.10.2018, 19:49
Отличная новость, учитывая, что скоро ДР у архива и у меня )
Для УК-НЦ продолжают писать игрушки (!) на дворе 2018 ура всем авторам кто берётся что то писать для этого (во всех смыслах) замечательного компьютера !!!
Красиво? Мощно!

https://pic.maxiol.com/images/1539966587.1520060247.monstr.png

Ссылка на эту тему и информация о разработке добавлена в шапку темы про игрушки !
http://zx-pk.ru/threads/20593-obsuzhdaem-igry-(uk-nts-dvk-bk-nemiga-i-dr-).html

- - - Добавлено - - -

ВНИМАНИЕ!!! Демка не работает с ЖД (или у меня глюкануло?) = эта детсткая болезнь будет побеждена к релизу ! )

S_V_B
22.10.2018, 11:06
/* правильное убивание "серого квадратика" */

CLR @#23164 ; Запретить курсор
MOV #2,@#7134
MOV @#23150,R5
MOV 60(R5),R0 ; Выключение курсора
BIC #1,6(R0)
BIC #1,52(R0)

PATHNK
22.10.2018, 22:52
Проходил эту игру на ПЦ очень давно: получил удовольствие. Пробовал потом на Спектруме: вид, управление и игровой процесс выглядит намного хуже, хотя вроде и портирование сделано нормально. Не повторите таких-же ошибок!

S_V_B
24.10.2018, 06:16
Вопрос к знатокам программирования под RT-11.
Необходимо прочитать существующий файл по частям в определенный буфер в памяти.
Понятно что открывать его нужно посредством .LOOKUP, но как сделать чтобы он открывался с того же устройства что и основная задача?
Есть ли у кого рабочий пример? В документации по монитору.. как обычно все вскользь да мимо темы.. видел в каком-то из журналов ПК УКНЦ.. там тоже без конкретики..

hobot
24.10.2018, 12:05
Есть ли у кого рабочий пример?
в качестве рабочего устройства в RT-11 есть логическое имя DK: по умолчанию все команды системы без конкретной указания стучаться туда, так же как система всегда известна как SY:
Если у вас группа файлов (пакет), его удобно объединить на лог-диске на устройстве SY:, например это будет LD0:
тогда можно ему присвоить значение DK: ; - ASS LD0 DK
---
на старте программы проверять наличие в текущей директории всех нужный файлов
что бы разгрузить основной исполняемый игры можно проверку, заставку и меню
отдельным SAV оформить и уже программно (из него запускать игру и реагировать на стартовое меню в общем)
так же (ИМХО) что бы сделать файл игры меньше "большие" спрайты не линковать сразу а как-то подгружать в процессе?
таблица рекордов, звук - планируется?

кстати в случае с LD - .DSK под директорией размещение фыайлов в релизе можно знать заранее и по смещению обращаться в нужное место диска - круто же а не к файлу ) ну я не программист я в теории рассуждаю

S_V_B
24.10.2018, 12:17
Вопрос как раз для случая переписывания программы на винт.. если пользователь не прописал DK, если программа не на SY итд.. так чаще всего и случается..
потом скажут "ваша программа нифига не пашет".. наверняка можно это предусмотреть.. нужно-то узнать с какого устройства запустилась основная программа..
ну и вообще пример кода не помешал-бы.. то что я нашел весьма поверхностно описывают, без конкретики. блок параметров заполняй и вперед.. описывают вне контекста..

/* "большие" спрайты не линковать сразу а как-то подгружать в процессе */
а смысл.. память все равно под них резервировать иначе система обязательно туда что-нибудь втюхает..
заставку можно выкинуть, она одноразовая.

/* таблица рекордов, звук - планируется*/
буду стараться максимально сделать похожей на оригинал.. (там кстати таблицы рекордов нет, как собственно и очков).
Звук за неимением памяти только процедурный..

hobot
24.10.2018, 12:37
а смысл..
по моему есть квота на размер исполняемого файла


Вопрос как раз для случая переписывания программы на винт..
распространять в виде .DSK файла нужного размера - 1 вариант
2 - вы всегда на устройстве с лог именем DK: - так на старте проверяйте наличие на DK: устройстве
всех необходимых файлов, в случае ошибки ввод\вывод (а отсутствие файла оно и есть) можно соответствующее
сообщение организовать, например ?LM-E-Source file error [BEEP] ))))

Hunta
24.10.2018, 12:44
Учитесь делать программы с перекрытиями

hobot
24.10.2018, 12:47
Учитесь делать программы с перекрытиями
--- прямо заголовок для отдельной темы! мне как не программисту очень интересно,
а на Паскале + МАКРО-11 можно такие делать, что есть перекрытия ?
вопрос - ответ можно потом из этой темы попросить перенести (!)

S_V_B
24.10.2018, 12:57
/* Учитесь делать программы с перекрытиями */
в данном случае все влезет и так, а городить огород из-за ЧСВ не вижу смысла.

лучше научите по сабжу.. "посредством .LOOKUP"

Hunta
24.10.2018, 13:20
а на Паскале + МАКРО-11 можно такие делать, что есть перекрытия ?
Это делается не на конкретном языке, это делается при сборке программы - LINK-ером. Ну или TKB (FTB, STB).
Есть корень - то, что загружается в память при запуске программы, есть перекрытия (оверлеи) - это части программы, которые подкачиваются при необходимости с диска.

- - - Добавлено - - -


лучше научите по сабжу.. "посредством .LOOKUP"
Я давно не программировал активно под RT-11. В инете полно документации (например, здесь http://www.bitsavers.org/www.computer.museum.uq.edu.au/RT-11). Насколько мне помнится, канал #0 открывается на сам .sav файл - вроде как через него идёт чтение перекрытий, вот только не уверен - открывается ли он на .sav без перекрытий. Есть системный макрос (см доки), который для открытого канала возвращает инфу, в которой, ЕМНИП, вроде как есть имя устройства.

S_V_B
24.10.2018, 13:38
/* ЕМНИП, вроде как есть имя устройства*/
Имя устройства-то есть.. только уповать что пользователь прописал DK.. как-то неправильно что ли.. или раньше так модно было.."кто не спрятался я не виноват" :)
В доках все без конкретики.. буквально в табличках .. типа есть макрос .LOOKUP... есть блок параметров почти для всего одинаковый., а дальше делай что хош..
Вот я и спрашивал как правильно.. какова последовательность чтобы юзер не обламывался на беспонтовых сообщениях.. когда переписал на другой диск.
Поэтому нужен хотя бы исходник (в нужном мне контексте), тогда бы все стало понятно.. Я уж не надеюсь, что где-то есть нормальный букварь в котором кроме табличек описано как правильно делать..

hobot
24.10.2018, 13:44
вроде как есть имя устройства.
S_V_B, очень подробно и с примерами в файле Sysmac.hlp


смещению обращаться в нужное место диска - круто же а не к файлу )
ЧТЕНИЕ ТАКОГО ФАЙЛА ВОЗМОЖНО ПОСРЕДСТВОМ ОБРАЩЕНИЯ К НОМЕРУ
СООТВЕТСТВУЮЩЕГО БЛОКА. - вот это дико мощно! защиту от копи можно забабахать и за рубь серийники раздавать = 100 пользователей - 100 рубь )))

S_V_B
24.10.2018, 13:47
/* ЧТЕНИЕ ТАКОГО ФАЙЛА ВОЗМОЖНО ПОСРЕДСТВОМ ОБРАЩЕНИЯ К НОМЕРУ
СООТВЕТСТВУЮЩЕГО БЛОКА*/

Для этого RT-11 не нужно, можно тогда забить для простоты.. и работать со своим диском как тебе нравится.. :)

hobot
24.10.2018, 15:20
Для этого RT-11 не нужно, можно тогда забить для простоты.. и работать со своим диском как тебе нравится.. не с диском, а файлом известного размера и смещения на нужные данные (!) - только это не дискета, а .DSK образ и для RT-11 лог диск - то есть устройство LDn - что бы запускадлось с ЖД, а не только с флопа !

S_V_B
24.10.2018, 15:36
Я как раз смотрел ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2 СИСТЕМНАЯ МАКРОБИБЛИОТЕКА РУКОВОДСТВО ПРОГРАММИСТА..
На нее и жалуюсь.. не все там очевидно и примеры оторваны от контекста..
...
если всем все понятно.. тогда объясните мне тугодуму..
допустим, имеем файл SPLASH.DAT (16 блоков) и буфер в памяти 1 блок (512 байт).. как прочитать его частями в буфер при этом с любого диска?

подскажите в чем не прав:
открываю файл:

.LOOKUP #AREA,#0,#SPLASH

с блоком параметров:

AREA: .WORD 0
IOBLK: .WORD 0
.WORD BUFF
.WORD 256.
.WORD 0
BUFF: .BLKW 256.
SPLASH: .RAD50 /DK SPLASH/
.RAD50 /DAT/

После открыти в первом слове AREA № открытого канала?

Этот же блок параметров использую для чтения файла:
....
MOV #AREA,R5
READ: .READW R5,#3
......


в итоге файл открывается.. ошибок нет, но читать не хочет..

S_V_B
25.10.2018, 08:59
Все, разобрался.. я наивно полагал, что после открытия номер свободного канала будет в первом слове блока параметров.. ан нет.. канал мы сами ручками указываем.. странно как-то.., а если уже кто-то открыл..

.LOOKUP #AREA,#3,#SPLASH
......
......
READ: .READW R5,#3
.....
......
В итоге если я все правильно понял... то каналы это не файловые дескрипторы и не система ими распоряжается..
просто мы можем одновременно открыть 12 файлов (не считая 15oct канал для оверлеев) и все зависит от программиста чтобы он вовремя их (каналы) закрывал.. (простота .. она хуже воровства :))


проверьте запустится ли на винчестере:
https://yadi.sk/d/ZHVD8eUWDyIlmA

файла теперь 2: MLM.SAV и SPLASH.DAT

hobot
25.10.2018, 21:45
проверьте запустится ли на винчестере, файла теперь 2: MLM.SAV и SPLASH.DAT (https://yadi.sk/d/ZHVD8eUWDyIlmA)

странно (!) - в UKNCBTL при запуске с дискеты всё норм при запуске с харда = пуск есть, нет картинки ?????????
почему не отлаживаешь с ЖД в эмуляторе сам?

ещё вопрос - я не мог не заметить, что фон уровней рисуется (возникает) на экране без тормозов, а заставка рисуется постепенно сверху вниз (то есть заметен вывод спрайта глазу), почему не используешь невидимую страницу где заранее
рисуешь заставку, а потом переключаешся на неё и для пользователя\игрока она как лампочка загорается сразу вся и целиком?

вот такие вопросы ответы.

S_V_B
26.10.2018, 05:40
/* почему не отлаживаешь с ЖД в эмуляторе сам */
Я настроил все для быстрой компиляции и проверки.. неохота переделывать.. да и на живом винте может отличаться..

/*при запуске с харда = пуск есть, нет картинки */
На винт оба файла скидывали?
Файл открывается с устройства DK, хотя если не смог открыть должно быть сообщение..

/* заставка рисуется постепенно сверху вниз */
Пока задача была загрузить файл.. о красоте и не думал.. все равно грузит долго.. будешь на черный экран смотреть.
Хотя на бкшке с магнитофона на экран грузили заставку.. тоже прикольно :)

Еще вопрос, если имидж диска добавить на винте как раздел и не использовать RT-11? На БК ведь INSULT вставили на винт.., а он сам по себе грузится..

Я пока только определяюсь с доступными мне средствами, а когда картина более менее сложится будет видно как все организовать.
Загрузка заставки из файла была сделана только для того чтобы выяснить.. работоспособность с винчестером.. и сразу затык.
Золотое правило.. делать все проще и по возможности быстрее, так что более простой и эффективный вариант это когда заставка лежит в основном файле (резервирую память 8к), а после ее вывода на экран, на ее место (пока пользователь любуется красотой) загружать спрайты.

hobot
26.10.2018, 10:52
Файл открывается с устройства DK, хотя если не смог открыть должно быть сообщение.
сообщение невозможно увидеть, ведь у тебя там цвет шрифта 0, потому что когда картинки нет много много раз СУ+Ц в систему выкидывает но на экране только курсор - приходится вызывать джина по имени NORMUK что бы быстро вернуть настройки экрана к рабочему виду )


Я настроил все для быстрой компиляции и проверки.. неохота переделывать.. да и на живом винте может отличаться.. погоди погоди - в чём проблема работать в эмуляторе с образом ЖД?
У меня с переносом на живую временно недоступен процесс - так что я проверял на ЖД в UKNCBTL
образ ЖД монтируется в два клика и никак не влияет ни на какие настройки??? Кстати говоря при установке ЖД можно задават отступ в памяти ПП (предусмотрено автором драйвера) по пользовательские задачи (читай - нечестным программам, честные не затирают)


Файл открывается с устройства DK
можно попробовать на SY сменить тогда будет строго на системном устройстве искать


На винт оба файла скидывали?
Файл открывается с устройства DK, хотя если не смог открыть должно быть сообщение..
короче выгляди всё так, что возможно дело и в эмуляторе *вряд ли, но возможно) - описываю как проверял

1. с дискеты всё пашет - это ясно

2. загрузился с раздела 0, назначил DK дискету, запускаю MLM - запуск есть нет картинки ???
много раз СУ+Ц вываливается в монитор (видно только курсор всё остальное цвета 0, легко поправить), но при этом в ОЗУ ПП какая-то страшная хрень и жуть и ад и даже утилита PMEM просто вешается, а система ничего что связано с ПП уже не крутит - пишет памяти ПП нету )

как-то так


будешь на черный экран смотреть.
на первой страничке текст приветствия - на второй выводится спрайт 5 секунд что бы главное не видеть как спрайт сверху вниз большой выводится (читай УК-НЦ тормозит) - как проверить что спрайт полностью отрисовался = не знаю??? в общем отрисовался сразу переключчаемя на вторую подготавлиеваем на первой след экран и так понеслось (см. например реализацию Conan


это когда заставка лежит в основном файле (резервирую память 8к)
да храни его где хочешь просто не надо выводить на экран её у игрока на глазах - коробит это, смотрится дико грустно и дурной тон = но это ладно - это потом.

монтируй образ ЖД для отладки, если пользуешься UKNCBTL без ЖД там жизни нет (!)

- - - Добавлено - - -

так стоп! сейчас проверю один момент !!!

- - - Добавлено - - -

всё норм - моя ошибка !!! есть запуск с DK ЖД и картинка есть !!!!!!!!!!!
ты выйграл битву (значок МАСТЕР УК_НЦ присвоен) ! Ура - ждём играбельное демо !!!

у меня там настройка с цветами - очень далёкая от умолчания ))) поэтому поэтому картинки просто видно не было )))

- - - Добавлено - - -


http://gs107.rimg.info/c1ce5155fd3ce253d0753adef80208b5.png

- - - Добавлено - - -


у меня там настройка с цветами - очень далёкая от умолчания ))) поэтому поэтому картинки просто видно не было ))) - делаю вывод инициализация цветов и прочего всего пока не предусмотрена - как и нормю выход завершение с очисткой озу ПП и возвр экрана к рабочему виду = детская болезнь ДЕМО )

S_V_B
26.10.2018, 11:04
/* погоди погоди - в чём проблема работать в эмуляторе с образом ЖД? */
Я в эмуляторе только проверяю работоспособность, компилирую в кросс-компиляторе..
Короче батник компилирует, записывает в образ, запускает эмулятор.. пошло-не пошло.. пишем дальше :)

/*детская болезнь ДЕМО*/
То что я выложил даже не демо, а так тесты и проверка идей для создания общего представления куда мне двигаться дальше..
Вот сейчас фонты оригинальные добавлю.. напишу пару строчек для проверки.. и.т.д. до полной победы..

Пока основная проблема быстрый алгоритм вывода спрайтов в любую точку не кратную байту.. ну и вообще там дофига чего проверки столкновений, лифты, лазеры, сам танк разделяющийся..
Так что пока то что выкладываю.. это тест работоспособности и быстродействия не претендующий на гордое звание ДЕМО..

nzeemin
29.10.2018, 16:51
Скролл-шутер The Last Mission выйдет на УКНЦ и БК-0010
http://idpixel.ru/news/1374-skrollshuter-the-last-mission-vyjdet-na-uknc-i-bk0010/en/
-- тут говорят "Рабочая версия уже вышла"

S_V_B
29.10.2018, 16:54
Хе.., а я и не в курсе :)
Значит придется доделывать до победного. (памяти бы хватило)

hobot
29.10.2018, 17:18
я поскромнее )
https://www.old-games.ru/forum/threads/novye-igry-dlja-staryx-kompjuterov.31941/page-11#post-1504528

randomizer
29.10.2018, 18:57
Я в эмуляторе только проверяю работоспособность, компилирую в кросс-компиляторе..
А что за кросс-компилятор вы используете?

S_V_B
29.10.2018, 19:28
/*А что за кросс-компилятор вы используете? */
Начал с PDP11y+Sublime Text от Manwe и его товарищей.. но с увеличением сложности пришлось перейти на методику тов. nzeemin (RT11 под win).
Возможно со временем доработают PDP11y+Sublime уж больно он хорош.. но сейчас на него некогда отвлекаться.

randomizer
29.10.2018, 19:48
PDP11y
Хм, гугл не находит, подскажите пожалуйста точное название. Любопытно посмотреть что за компилятор.

hobot
29.10.2018, 20:10
Хм, гугл не находит, подскажите пожалуйста точное название. Любопытно посмотреть что за компилятор. это возможно авторская штука Manwe

S_V_B
29.10.2018, 20:54
В этой теме почитайте есть ссылки и как настроить:
http://zx-pk.ru/threads/20626-kross-sredstva-dlya-programmirovaniya-pod-mp-1801-1806-588/page18.html

Но для УКНЦ он только для самых простых программ и вместо макросов ЕМТы нужно писать.., а для БК очень даже..

Manwe
30.10.2018, 14:45
Хм, гугл не находит, подскажите пожалуйста точное название. Любопытно посмотреть что за компилятор.https://github.com/imachug/PDPy11

S_V_B
30.10.2018, 17:47
Как работает ASH?
Почему-то при сдвиге вправо (при отрицательном счетчике) устанавливаются старшие биты...
например сдвинул на 4 вправо, в итоге оказываются установленными 4 старших бита.. на месте сдвинутых

и еще какой-то шаманизм..
CLR R0
BISB (R5)+,R0
...
читает #1777777

..... не мой день сегодня.

blackmirror
30.10.2018, 18:52
Почему-то при сдвиге вправо (при отрицательном счетчике) устанавливаются старшие биты...
например сдвинул на 4 вправо, в итоге оказываются установленными 4 старших бита.. на месте сдвинутых
ну так сдвиг-то арифметический, когда вправо он всегда знаковый разряд клонирует.

S_V_B
30.10.2018, 19:34
/*всегда знаковый разряд клонирует*/
И как от этого избавиться... если нужен просто ROR?
Если ASR то его прибить можно BIC, а тут блин счетчик.. смысл теряется

Hunta
30.10.2018, 19:39
CLC
ROR

S_V_B
30.10.2018, 19:41
было бы ROR R1,R2..

Oleg N. Cher
30.10.2018, 23:40
Логический сдвиг двигает биты, а арифметический числа со знаком. То есть, логический сдвиг влево эквивалентен арифметическому.

Но при логическом сдвиге вправо старший бит будет устанавливаться в 0 (или браться из флага, если сдвиг захватывает флаг).

А при арифметическом сдвиге вправо будет учтён старший знаковый бит.

S_V_B
31.10.2018, 05:40
Да это понятно, нужно логический сдвиг со счетчиком.., как вообще принято на PDP организовывать такую конструкцию? Неужели нужно таблицу переходов делать? (на нужное кол-во ROR). Вариант с SOB не катит.. очень медленно.
.....
Все разобрался, вопрос снимается..
Сделал левым ASH со счетчиком BIC n,7.. все работает быстро и красиво. ВМ2 рулит :)

S_V_B
02.11.2018, 17:49
Сделал вывод спрайта в любую точку и вывод строки (для оригинального текста)

https://yadi.sk/d/ZHVD8eUWDyIlmA

hobot
02.11.2018, 21:06
Сделал вывод спрайта в любую точку и вывод строки (для оригинального текста)

https://yadi.sk/d/ZHVD8eUWDyIlmA

мощно!

S_V_B
03.11.2018, 14:17
Усть у кого-нибудь есть исходник правильного резидента ПП?
Чтобы в диспетчер процессов прописывался, обменивался с ЦП и корректно завершался....

Titus
03.11.2018, 20:58
Усть у кого-нибудь есть исходник правильного резидента ПП?
Чтобы в диспетчер процессов прописывался, обменивался с ЦП и корректно завершался....
Посмотри в исходниках моих тестов всяких, типа теста скорости ЦП и ПП, и т.д. Конкретно, где находятся не знаю, выкладывал на форуме.

randomizer
03.11.2018, 21:13
Чтобы в диспетчер процессов прописывался, обменивался с ЦП и корректно завершался....
Я для своего примера утащил код из теста палитры (https://zx-pk.ru/threads/20686-mnogo-tsvetov-na-uknts!.html?p=955320&viewfull=1#post955320). Там всё корректно завершается.

S_V_B
04.11.2018, 16:37
/* диспетчер процессов прописывался */
Я имел в виду немого другой резидент.. о котором пишет Худяков.. но довольно поверхностно:

"На мой взгляд, наиболее удобен третий путь, когда после выполнения каких-то действий программа в ПП отдает управление обратно диспетчеру процессов, предварительно поставив себя в очередь процессов в ПП. После этого программа из ЦП может получать команды с клавиатуры, печатать информацию на экране или принтере, работать с диском — все, как обычно. Но программа из ЦП может посылать команды также «спящей» программе в ПП, записывая их, например, в какую-то заранее определенную область ОЗУ ЦП."

чтобы не RTS PC в конце пп было, а
MOV AdrPgm,@#7124 ; Поставить в очередь процессов
MOV #1,@#7100 ; Потребовать обслуживания
MOV (SP)+,R0 ; Восстановить
JMP @#174170 ; Перейти к диспетчеру процессов

hobot
09.11.2018, 03:05
извиняюсь за офф-топ, но с образовательной целью и просто видео не без интересное


https://www.youtube.com/watch?time_continue=1&v=Xz-6iYN_eHo

S_V_B
10.11.2018, 14:01
Отконвертировал и добавил в формате УКНЦ все спрайты (пока в память влезают, убрал повторы и лишние фреймы), разобрался с описанием объектов..
Пока суть-да дело может кто подкинет идеи (исходники) по звуку? Типа в ячейку ЦП кладешь № звука - воспроизводит, ноль - молчит..
Заранее благодарен :)

jerri
10.11.2018, 21:00
S_V_B, есть звуковой генератор для спека. надо?

S_V_B
11.11.2018, 12:34
/* есть звуковой генератор для спека */
Вообще неплохо бы для УКНЦ, с его периферийным процессором.. но для общего развития.. буду рад ознакомится.

jerri
11.11.2018, 13:56
/* есть звуковой генератор для спека */
Вообще неплохо бы для УКНЦ, с его периферийным процессором.. но для общего развития.. буду рад ознакомится.

Бро ты много хочешь :)
освой хоть это



;Steve Turner / Hewson Cons
;sfx engine
;used in Ranarama, Quazatron,IronMan
;можно вешать на прерывания или вызывать в основном цикле
;you can use this routine on interrupts (as autor)
;or in main game cicle

sound
ld a,(sonreq) ;новый звук играем?
and a
jr z,nonew ;нет
;да
ld (sonnow),a
dec a
jr z,noise ;#01 шум

ld hl,sfx_data
dec a
add a,a
add a,a
add a,a
ld e,a
xor a
ld (sonreq),a
ld d,a
add hl,de
ld bc,08
ld de,sonfrq
ldir
jr process

nonew ld a,(sonnow) ;а старый звук есть?
and a
ret z

dec a ;продолжать шум?
jr nz,process ;продолжать звук

jr cnois

noise ld a,0ah
ld (sonlen),a
xor a
ld (sonreq),a

cnois ld b,30h

gain call random
and 10h
out (0feh),a
ld c,02h

make dec c
jr nz,make
djnz gain
ld hl,sonlen
dec (hl)
ret nz
xor a
ld (sonnow),a
ret

process ld a,(sonfrq)
ld h,a
ld a,10h
ld d,0ffh

sonlp ld e,h
out (0feh),a
xor 10h

freq dec d
jr z,mod
dec e
jr nz,freq
jr sonlp

mod ld a,(soncfg)
add a,h
ld (sonfrq),a
ld hl,sonmod
dec (hl)
ret nz
ld hl,sonlen
dec (hl)
jr nz,modify
xor a
ld (sonnow),a
ld a,(sonnex)
and a
ret z
ld (sonreq),a
ret

modify ld a,(sobrsf)
ld c,a
ld a,(sontyp)
and a
jr z,reset
dec a
jr z,typ1
dec a
jr z,typ2

typoth ld a,(soncfg)
neg
ld (soncfg),a
jr mode

typ2 inc c
inc c
ld a,c
ld (sobrsf),a
jr reset

typ1 dec c
dec c
ld a,c
ld (sobrsf),a
jr reset

reset ld a,c
ld (sonfrq),a

mode ld a,(sonrnd)
ld (sonmod),a
ret

random push hl
ld hl,(rnseed)
inc hl
ld a,h
and 03
ld h,a
rok ld (rnseed),a
ld a,r
xor (hl)
pop hl
ret

rnseed defw 1000h

sonfrq defb 00 ;начальная частота
;start frequency
soncfg defb 00 ;скорость изменения частоты
;frequency change
sonmod defb 00 ;количество модуляций в звуке
;change times
sonlen defb 00 ;количество повторений звука
;repeat times
sontyp defb 00 ;вид модуляции
;modulate type
;0 sawtooth
;1 2nd mod down
;2 2nd mod up
;3+ triangle
sobrsf defb 00 ;частота сброса
;reset frequency
sonrnd defb 00 ;темп изменения частоты сброса
;change reset temp
sonnex defb 00 ;приклеенный эффект
;linked sfx
sonnow defb 00 ;что играем
;
sonreq defb 00 ;меняем эффект
;


sfx_data
;here all souned excepts number 1 reserved for random noise
; defb 0, 5, 5, 1, 0, 0, 0, 0
; defb 28h, 5, 0Ah, 1, 0, 0, 0, 0
; defb 0, 80h, 1Eh, 1, 0, 0, 0, 0
; defb 0, 2, 1Eh, 1, 0, 0, 0, 0
; defb 0, 7Dh, 20h, 1, 0, 0, 0, 0
; defb 0FFh, 83h, 20h, 1, 0, 0, 0, 0
; defb 0FFh, 83h, 28h, 20h, 1, 3Ch, 1, 0
; defb 0F0h,0F0h, 8, 3, 0, 3Ch, 6, 0
; defb 2, 80h, 0Ah, 1, 0, 0, 0, 0
; defb 28h,0FAh, 8, 1, 0, 0, 0, 0
; defb 0FAh, 2Ch, 6, 0Ah, 1, 5Ah, 1, 0
; defb 0,0FCh, 14h, 8, 1, 50h, 8, 0
; defb 0E6h,0E6h, 4, 1, 1, 0, 0, 0
; defb 2Dh, 43h, 14h, 1, 1, 0, 0, 0
; defb 0, 0, 0, 0, 0, 0, 0, 0
; defb 0, 0, 0, 0, 0, 0, 0, 0
; defb 0, 0, 0, 0, 0, 0, 0, 0
; defb 0, 0, 0, 0, 0, 0, 0, 0
; defb 0, 0, 0, 0, 0, 0, 0, 0
; defb 0, 0, 0, 0, 0, 0, 0, 0

S_V_B
11.11.2018, 15:09
Да как бэ я в курсе.. и на PC уже давно бы написал.. проблема в освоении как раз УКНЦ :)
Освою конечно.. но много времени на это уходит.. как раз из-за малого "комьюнити" УКНЦ.. все приходится придумывать считай заново.

nzeemin
11.11.2018, 16:20
Мне бы тоже помогло наличие такого решения, в котором:
1. В память ПП запуливается свой код, который встаёт в цикл задач ПП
2. Этот код принимает команды от ЦП через ячейку памяти или через канал ЦП->ПП
3. По команде от ЦП начинает проигрывание мелодии или звукового эффекта, с зацикливанием или без
4. По команде от ЦП корректно убирается из цикла задач ПП и освобождает память ПП

S_V_B
11.11.2018, 16:47
Я примерно так и представляю.. только вот про "который встаёт в цикл задач ПП" можно поподробнее..
То что я до этого видел.. циклится в ПП пока не выполнит все что нужно.. потом уничтожается..
Я выше спрашивал.. но пока то что нужно не нашел..
ТО что писал Худяков.. мягко говоря урывками.. и некоторые фразы вводят в ступор.. типа "вы можете выбрать другую пару адресов.."как ? исходя из чего?... ну типа итак понятно.. все же знают но молчат :)

...
Сейчас занят "расстановкой врагов и их поведением".....
Но собрать инфу на будущее будет не лишним.. в ту же задачу (цикл задач ПП) можно много чего запихать.. например изменение палитры и др..
Вообще организовать некий протокол для общения с ПП.. там глядишь и до "полноцветных" спрайтов дойдем..

Alex_K
11.11.2018, 17:01
По проигрыванию мелодий в качестве примера можно привести игрушку "Замок гоблинов". Программа в ПП висит там на сетевом таймере, и анализирует ячейку с адресом 0300 в ОЗУ ЦП. Сам код в SAV-файле расположен с 072700 по 074302. Можно дизассемблировать и разобраться.

S_V_B
14.11.2018, 17:29
Что быстрее на ВМ2: ASL R1 или ADD R1,R1?

AFZ
14.11.2018, 17:59
ИМХО, и та, и другая команды занимают ровно один цикл МПИ.

nzeemin
14.11.2018, 18:28
Что быстрее на ВМ2: ASL R1 или ADD R1,R1?

По таким вопросам курить тему: https://zx-pk.ru/threads/14702-raschjot-tochnogo-vremeni-vypolneniya-komand-razlichnymi-protsessorami-arkhitektury-pdp-11.html

Потеряные картинки можно найти тут: http://www.emuverse.ru/wiki/%D0%A3%D0%9A%D0%A6%D0%9D_%D0%A0%D0%B0%D1%81%D1%87% D1%91%D1%82_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B3%D 0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8_%D 0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0% B8%D1%8F_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4

S_V_B
14.11.2018, 18:31
например CLR R0 медленнее MOV #0,R0
..
ищу все что может ускорить код..(оптимизирующие замены даже в ущерб размеру) пишите все что вспомните :)

nzeemin
14.11.2018, 18:46
например CLR R0 медленнее MOV #0,R0

А где тест который это показывает? По тому что я вижу -- CLR R0 выполняется за 13, MOV #0,R0 за 47.

S_V_B
14.11.2018, 19:19
Где-то вычитал, вроде как связано с архитектурными особенностями.. (возможно это относится к ВМ1)
По моему на Хабре.. статейка была про процы начиная с 8080.. про достоинства и недостатки..

- - - Добавлено - - -

ASL - 14, ADD 13.. не принципиально.

Manwe
15.11.2018, 09:09
А где тест который это показывает? По тому что я вижу -- CLR R0 выполняется за 13, MOV #0,R0 за 47.Наверное, имелось в виду что CLR (R1) выполняется медленней чем MOV R0,(R1) когда в R0 ноль. По крайней мере на процессоре ВМ1 это так, и кто-то писал, что на ВМ2 не исправили. Возможно, внутри процессора CLR делается как-то типа XOR dst,dst и это требует двух обращений к памяти, в отличии от MOV.

AFZ
15.11.2018, 09:16
Не знаю, почему, но CLR, в отличие от MOV, делается посредством цикла шины "Ввод-пауза-вывод", который, естественно, длиннее обычного цикла "Вывод", на длительность фазы ввода. Непонятно зачем оно так сделано, но это идет еще от Э-60.

Titus
15.11.2018, 13:40
Наверное, имелось в виду что CLR (R1) выполняется медленней чем MOV R0,(R1) когда в R0 ноль. По крайней мере на процессоре ВМ1 это так, и кто-то писал, что на ВМ2 не исправили. Возможно, внутри процессора CLR делается как-то типа XOR dst,dst и это требует двух обращений к памяти, в отличии от MOV.

Alex_K недавно же все обьяснил: CLR на ВМ2 (https://zx-pk.ru/threads/26390-instruktsiya-clr.html?p=865676&viewfull=1#post865676)

S_V_B
03.12.2018, 14:18
Почти разобрался с резидентами (диспетчером процессов).
В принципе в ПК УКНЦ 1-94 правильно написано, но с ошибками и неполно..

; Подпрограмма для выполнения в памяти ПП;
STARTPP:
MOV PC,R1 ; Найти адрес
ADD #PGM1-.,R1 ; программы-процесса
MOV R1,AdrPgm ; Запомнить его
MOV R1,@#7124 ; Записать в таблицу процессов
MOV #1,@#7100 ; Записать в таблицу запуска

RETURN ; Завершить эту программу
AdrPgm: 0


PGM1: ; Сама программа-процесс
MOV R0,-(SP) ; Сохранение R0
.......

Наш процесс
MOV #COMMW/2,@#177010 ; Управлять можно через ячейку в памяти ЦП
MOV @#177014,R0 ;

.........
MOV AdrPgm,@#7124 ; Поставить в очередь процессов
MOV #1,@#7100 ; Потребовать обслуживания
MOV (SP)+,R0 ; Восстановить
JMP @#174170 ; Перейти к диспетчеру процессов

ENDPP:

Доступных пар ячеек всего 2:
007076 SCPP:: .WORD 0 ;- счетчик процесса пользователя
007100 SCPTST:: .WORD 0 ;- счетчик процесса тестирования

и то с "процесса пользователя" не получилось, так что фраза "вы можете использовать другую пару" только вводит в заблуждение.

список ячеек диспетчера процессов:
007060 SCPKL:: .WORD 0 ;- счетчик процесса клавиатуры

007062 SCPKFO:: .WORD 0 ;- счетчик процесса канала файлового обмена

007064 SCPD:: .WORD 0 ;- счетчик процесса дисплея

007066 SCPK:: .WORD 0 ;- счетчик процесса курсора

007070 SCPKR:: .WORD 0 ;- счетчик процесса режима установок

007072 SCPMZ:: .WORD 0 ;- счетчик процесса меню загрузки ЦП

007074 SCPPC:: .WORD 0 ;- счетчик процесса печати

007076 SCPP:: .WORD 0 ;- счетчик процесса пользователя

007100 SCPTST:: .WORD 0 ;- счетчик процесса тестирования

007102 SCDPRC:: .WORD 0 ;- счетчик диспетчера процессов

....
пока еще не разобрался как правильно освобождать память.. в случае с резидентом..

hobot
05.12.2018, 08:20
S_V_B, предлагаю для усовершенствования вашего "движка" такие переменные для кнопок заиметь
SHIFT$ - НАЖАТ ЛИ ШИФТ ПРОВЕРКА ПО TST
И ДАЛЕЕ ПО ТОМУ ЖЕ ПРИНЦ.
UP$
DOWN$
LEFT$
и так по всем управляющим кнопкам )

пример со скан-кодами для УК-НЦ есть на образе Alex_K

S_V_B
06.12.2018, 19:04
Сделал переключение экранов при выводе спрайтов:
https://yadi.sk/d/ZHVD8eUWDyIlmA

Не нравится влияние прерываний на скорость вывода, придется отключать. В связи с этим вопрос, подскажите правильный опрос клавиатуры без прерываний и ЕМТов, и прочих TTYIn.

hobot
06.12.2018, 21:45
Не нравится влияние прерываний на скорость вывода, придется отключать. В связи с этим вопрос, подскажите правильный опрос клавиатуры без прерываний и ЕМТов, и прочих TTYIn.
правильным считается как раз опрос через системный вызов )
я всегда опрашивал раньше с регистры адреса и данных
полистайте тему ПАСКАЛЬ\МАКРО-11 и программирование на УК-НЦ как?




Вопрос:
Подскажите, как правильно по системному запретить
передачу кодов клавиш от клавиатуры на терминал,
но при этом самому эти коды получать?
Приведу пример: я вывожу какую-то информацию на экран,
после чего спрашиваю "Continue?".
Тут человек должен нажать любую клавишу, и программа
продолжится. Если делать опрос клавиш через EMT 340,
то коды клавиш отображаются на экране, а мне этого не надо.
Если же делать через чтение данных напрямую из канала 0
(канал клавиатуры), то символы все равно отправляются в
монитор и потом печатаются. Т.е. какая-то должна быть
системная функция, запрещающая выводить на терминал коды
приходящих клавиш, но я ее не знаю.

Ответ:

Для этого надо установить бит TTSPC$ (12й) в $JSW (44).

к примеру:

Код:

.MCALL .TTYIN,.PRINT,.EXIT

$JSW = 44
TTSPC$ = 10000

TEST: BIS #TTSPC$,@#$JSW
.PRINT #PROMPT
.TTYIN
.EXIT

PROMPT: .ASCII /--->/<200>

печатает подсказку, ждет нажатия клавиши, выходит


Другой вариант - запретить прерывания от клавиатуры
и работать напрямую с регистрами, но этот вариант
несовместим с виртуальными программами и не будет
работать в системах с поддержкой многотерминальности.

---------- Post added at 17:57 ---------- Previous post was at 17:46 ----------

Еще дополнение - иногда полезен бит TCBIT$ (6й) - при его установке
TTINR (EMT 340) не останавливается в ожидании символа, а проходит
дальше с установленным битом C если ничего не нажато.

-------------------------------------------------------------------------------

.Print #NextPage ;Печатаем сообщение "Next page?"

.Print #KeyON ;Включить клавиатуру

BIS #TTSPC$,@#$JSW ;Запрет отображения символов на экране
.TTYIN ;Ожидание нажатия клавиши
CMP R0,#13 ;Если код = 13 (Возврат каретки),
BNE 6$ ;то ожидаем еще один код = 10 (перевод строки)
.TTYIN ;
6$:
.Print #KeyOFF ;Отключить клавиатуру

.Print #NextLine ;Переходим на следующую строку

...

NextPage: .ASCII "Next page?"<128>
NextLine: .ASCII <13><10><128>
KeyOFF: .ASCII <27><91><50><104><128>
KeyON: .ASCII <27><91><50><108><128>



++++++++++++++++++++++++++++++++
К слову коды клавиш/символов вообще
удобнее выносить в начало - к примеру так:

Код:

ESC = ^O33
CR = ^O15
LF = ^O12

================================
^B - Binary
^C - Complement
^D - Decimal
^F - Floating
^O - Octal
^R - Radix50
^X - 16-ричные???
================================

.TITLE TXT -- ПЕЧАТЬ ТЕКСТОВЫХ СТРОК
.MCALL .PRINT

TXT:: MOV (R5)+,R1 ;ЧИСЛО АРГУМЕНТОВ
BEQ 30$ ;EQ - НЕТ АРГУМЕНТОВ
10$: MOV (R5)+,R0 ;АДРЕС ОЧЕРЕДНОГО АРГУМЕНТА
CMP #-1,R0 ;ЕСЛИ -1 - АРГУМЕНТ ПРОПУЩЕН
BEQ 20$ ;...ПРОПУСКАЕМ
.PRINT ;ПЕЧАТАЕМ СТРОКУ
20$: SOB R1,10$ ;ЦИКЛИМСЯ ПОКА ЕСТЬ АРГУМЕНТЫ
30$: RETURN ;ВОЗВРАЩАЕМ УПРАВЛЕНИЕ

.END

++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++
Раз уж есть тема по программированию, предлагаю сюда же
свалить всякие хитрости какие кто пользует

Например такие:

Код:

JSR Rx,@PC ;СОХРАНИТЬ Rx В СТЕКЕ, НЕ ТРОГАЯ PSW

MOV #160000,SP ;ПОЛНАЯ ОЧИСТКА ПАМЯТИ (56Kb)
MOV #4747,@#0 ;И ЧИСТЫЙ ОСТАНОВ БЕЗ ОШИБОК
CLR PC ;В КОНЦЕ

CALL @(SP)+ ;ВЫЗОВ СОПРОГРАММЫ

++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++
И я тоже добавлю - простой способ разворачивания цикла
2x:

1. Пусть есть цикл, выполняющийся N раз, типа:
mov N,r0
1$: cmd ! некая команда, например, clr(r1)+
sob r0,1$

2. Простой способ разворачивания того ж цикла в линейку:
mov N,r0
inc r0
asr r0
bcc 2$
1$: cmd
2$: cmd
sob r0,1$
Идея состоит в том, чтоб позаботиться о нечётном числе
итераций до начала цикла, и войти внутрь цикла в обход
стандартного начала.
================================================== ======

Устанавливает цвет курсора
8 цветов от 60 до 67 (третий параметр)
.TTYOUT #33
.TTYOUT #247
.TTYOUT #67

Цвет экрана
.TTYOUT #33
.TTYOUT #242
.TTYOUT #60

Цвет символов
.TTYOUT #33
.TTYOUT #241
.TTYOUT #67

Цвет знакоместа
.TTYOUT #33
.TTYOUT #240
.TTYOUT #60

Установка формата экрана
(61 - 80х24, 62 - 40х24, 63 - 20х24, 64 - 10х24)
.TTYOUT #33
.TTYOUT #246
.TTYOUT #61

Запускаем нужное приложение (на примере 'МЗ1:ДИГГЕР.САЖ')
.MCALL .CHAIN
MOV #^RMZ1,@#500
MOV #^RDIG,@#502
MOV #^RGER,@#504
MOV #^RSAV,@#506
.CHAIN

PROCEDURE WAITKEY;
VAR KEY ORIGIN 177560B: INTEGER;
BEGIN
REPEAT KEY:=0 UNTIL KEY>0
END;

Если завести глобальную переменную
INKEY ORIGIN 177562B: INTEGER;
там будет код последней нажатой клавиши

PROCEDURE gotoXY(X,Y: INTEGER);
BEGIN
WRITE(CHR(27),'Y',CHR(32+Y),CHR(32+X));
END;

---------------------------------------------
Ну да, если буфер переполнен, то устанавливается
бит C в PSW. Поэтому код должен быть таким:
Код:

EMT ^O341
BCS .-2

---------------------------------------------


Код:

.PRINT #TEXT1 ;БЕЗ <CR><LF>
.PRINT #TEXT2 ;<CR><LF> В КОНЦЕ

TEXT1: .ASCII /TEXT/<200>
TEXT2: .ASCIZ /TEXT/


_______________________________________________







- - - Добавлено - - -

S_V_B, вам надо там свой драйвер загружать и подминать под свой контроль все упр. клавиши - только так )

- - - Добавлено - - -

S_V_B, вот эта авторская игра ведёт себя так как будто написана на движке УК-НЦ который я разыскиваю
https://www.old-games.ru/forum/threads/ehmuljatory-uknc-i-dvk.50279/page-2#post-1238737
то есть подминает под себя всё и потом начинает игровые экраны выводить )
кстати автор иногда отвечает )

randomizer
06.12.2018, 21:50
Можно посмотреть как это реализовал nzeemin в своем порте Highway Encounter (https://github.com/nzeemin/uknc-highwayencounter/blob/614222ba8a3c4d82f81eb45d860ade7bb7df63b0/HWYENC.MAC#L60)
Метка GETKEY:

S_V_B
07.12.2018, 06:06
/* надо там свой драйвер загружать */
Зачем такие сложности, в любом случае драйвер от прерываний не спасет (поскольку они не только от клавы).
Игрушка не обязана интегрироваться в операционку главное чтобы корректно завершалась. Многозадачности нет и на время работы программы ты сам волен решать что делать. А драйверы и прочие навороты писались для программ на ЯВУ типа ВАСИК чтобы взаимодействовать с ПП.

- - - Добавлено - - -

Нашел:
; Подпрограмма: Опрос клавиатуры; клавиша есть: Z=0, клавиши нет: R0=0 и Z=1
Z34226:
TSTB @#177660 ; Нажали клавишу?
BPL 4$ ; нет символа => выходим
MOV @#177662, R0 ; код нажатой клавиши
2$: MOV R0, Z34224
RETURN
4$: CLR R0
MOV R0, Z34224 ; Стираем признак нажатой клавиши
SEZ ; Возвращаем признак Z=1 -- нажатия нет
RETURN

S_V_B
16.12.2018, 17:36
Есть у кого-нибудь пример правильной работы с FIS (FDIV,FADD)?
Эмулятор их не понимает (в режиме трассировки), а в слепую я не пойму что не так.

Hunta
16.12.2018, 17:59
На примере FADD
07500R FADD
Регистр R - как указатель стека (если R6 - то стек и получаем)


R-> операнд B биты 16-31 ; (R+00)
операнд B биты 0-15 ; (R+02)
операнд A биты 16-31 ; (R+04)
операнд A биты 0-15 ; (R+06)

После сложения


R-> операнд B биты 16-31 ; (R+00)
операнд B биты 0-15 ; (R+02)
результат биты 16-31 ; (R+04)
результат биты 0-15 ; (R+06)

результат=A+B

S_V_B
16.12.2018, 18:04
Так и делал, вылетает исключение.., я подумал, что в доках перепутали старший и младший байты.. т.к. делю 23. на 24.

- - - Добавлено - - -

хотя пробовал только в эмуляторе т.к. хотел в дебаге посмотреть

Hunta
16.12.2018, 18:09
старший и младший байты или СЛОВА?

- - - Добавлено - - -

По идее - в эмуляторе simh должно быть правильно

- - - Добавлено - - -

Кстати, посмотреть правильное представление и положение слов в памяти можно директивами .FLT2 и FLT4 (хотя вторая - это уже под FPP, FIS только с .FLT2 работает)

S_V_B
16.12.2018, 18:09
/* старший и младший байты или СЛОВА? */
слова конечно

Hunta
16.12.2018, 18:10
Про правильно положение слов в памяти - ответ выше

S_V_B
16.12.2018, 18:14
MOV #BS,R2
MOV R2,-(SP)
MOV #0,(R2)+
MOV #23.,(R2)+
MOV #0,(R2)+
MOV #24.,(R2)
MOV (SP)+,R2
FDIV R2

вот что делаю

Alex_K
16.12.2018, 18:17
MOV #BS,R2
MOV R2,-(SP)
MOV #0,(R2)+
MOV #23.,(R2)+
MOV #0,(R2)+
MOV #24.,(R2)
MOV (SP)+,R2
FDIV R2

вот что делаю
Вообще-то команды FIS работают с числами с плавающей запятой одинарной точности. Для того, чтобы разделить 23 на 24, их сначала из целочисленного представления надо перевести в числа с плавающей запятой.

S_V_B
16.12.2018, 18:26
понял

- - - Добавлено - - -

с примером было бы проще, как переводить в эти мантиссы

Hunta
16.12.2018, 18:32
24. - это 24(10)
24 - это 24(8)
И это ещё если по умолчанию. Поэтому стараюсь писать ^O<24> и ^D<24>

- - - Добавлено - - -

A: .FLT2 1
B: .FLT2 1
C: .FLT2 2
RES: .BLKW 2
...
MOV B+2, -(SP)
MOV B, -(SP)
MOV A+2, -(SP)
MOV A, -(SP)
FADD SP
CMP (SP)+, (SP)+
MOV (SP)+, RES+2
MOV (SP)+, RES

и сравнить RES RES+2 c C и C+2

S_V_B
16.12.2018, 18:35
а если нам нужно во время выполнения перевести из целочисленного в плавучую и наоборот?

Короче мне нужен итератор меньше нуля например:
float iterator=0.0245;
float a;
x=int (a+itrerator);

Hunta
16.12.2018, 18:37
Подпрограмма

S_V_B
16.12.2018, 18:45
вот я и хочу подсмотреть подпрограмму перевода float->int и int->float

MacBuster
16.12.2018, 18:47
Удаление в знак протеста против действий MM

S_V_B
16.12.2018, 18:50
на бумаге все у них просто:

9=16*0.5625=2^4+(2^-1*2^-4) :)
А как программно?

- - - Добавлено - - -

/* по плану следующим открытием у нас будет тот факт */
Ерничать то мы все мастаки.. открытия это всегда здорово, ради этого и живем.
"О сколько нам открытий чудных...", раньше я принимал float как данность, а что там глубже происходит...

В принципе итератор нужно табличкой делать но просто стало интересно.

Я как "самообучающийся транслятор" - знаю "как" и пытаюсь транслировать с "С" на ASM УКНЦ, и даже местами получается :)
ИНФЫ маловато, для СПЕКА даже книжки для "Чайников" имеются.. а тут действительно сплошные открытия :)

hobot
16.12.2018, 19:44
а что там глубже происходит... транзисторы щелкают наверное? )))

S_V_B
16.12.2018, 19:50
До транзисторов там еще далековато.. возможно в глубинах ПЗУ уже есть готовая ПП int_to_float.. дык кто бы знал.

Alex_K
16.12.2018, 20:18
возможно в глубинах ПЗУ уже есть готовая ПП int_to_float.. дык кто бы знал.
Если про глубины ПЗУ УКНЦ, то там подпрограмм перевода из целого в вещественное нету. В глубинах ПЗУ есть только эмулятор FIS.

S_V_B
16.12.2018, 20:22
Это я уже заметил, сейчас листаю исходники бейсика Вильнюс, прикольно.. его действительно литовцы написали?
Комменты русские, а метки уж больно специфичные... VISKAS, PNULIS, PLIUS ... :)

VISKAS кстати по литовски - ВСЕ

Titus
17.12.2018, 00:16
Короче мне нужен итератор меньше нуля например:
float iterator=0.0245;
float a;
x=int (a+itrerator);

Зачем для подобного итератора плавающая точка? Достаточно дробного представления с фиксированной точкой.

MacBuster
17.12.2018, 00:44
Удаление в знак протеста против действий MM

S_V_B
17.12.2018, 07:12
/* Зачем для подобного итератора плавающая точка */
Я знаю что не нужно и сказал про это выше, но там же написал, что просто интересно..
Да и на будущее полезно.. вот пока никто не подсказал про int_to_float буду копать басик.

/* достаточно в самом начале один раз отмасштабировать значение */
пример я сильно упростил, масштабировать придется не раз.

hobot
19.12.2018, 13:06
буду копать басик.
и это всё о нём )
https://zx-pk.ru/threads/17417-basic-dvk.html
https://zx-pk.ru/threads/20251-grafika-v-bejsike-na-uknts.html

S_V_B
19.12.2018, 14:31
Покопался в БАСИКЕ и понял, что они все считают в плавучке потому что геморно в int переделывать и обратно

S_V_B
24.12.2018, 20:23
Дико не хватает дебаггера :( типа Par11D.. если осилю сей проект то однозначно озадачусь.. но для этого нужно глубже понимать как работают режимы юзер, HALT и пр. в этом плане УКНЦ достаточно уникальна :) (чтобы можно было переключать адресные пространства ПП и ЦП)

- - - Добавлено - - -

В эмуляторе бряк срабатывает "как-то не всегда" не говоря уже про ПП :(
Некоторые вещи которые выше моего понимания я просто должен "покрутить" в дебаггере

- - - Добавлено - - -

Все таки "советские" инженеры были больше "паятели" чем "писатели".. то есть то что они соизволили описать и так "должнобытьвсемнормальнымл юдямпонятно" , а зачем они эту железку воткнули и как ее использовать... дальше "народная самодеятельность" в надежде что через пару лет мы всех победим :)
Увы не сбылось...:)

nzeemin
24.12.2018, 22:51
В эмуляторе бряк срабатывает "как-то не всегда" не говоря уже про ПП :(

Репортите баги в теме про эмулятор -- посмотрю что могу сделать.



Все таки "советские" инженеры были больше "паятели" чем "писатели".. то есть то что они соизволили описать и так "должнобытьвсемнормальнымл юдямпонятно" , а зачем они эту железку воткнули и как ее использовать...
Можно подумать, современные инженеры чем-то отличаются в этом плане -- хер кого заставишь документацию написать.

hobot
25.12.2018, 02:42
В эмуляторе бряк срабатывает "как-то не всегда" точ в точ как на живой плате! Мне UKNCBTL этим и нравится - там плавающие глюки с самого начала есть, но уж очень они достоверны с живой машиной. Не знаю, что вы подразумевали под "бряк" я пишу о "ресет" кнопке сброса на плате :
1. да и на живой плате в процессе возникает момент когда сбросить комп можно только питанием всё остальное "повисает"
2. если вы запустите игру и нажмёте "сброс", затем пункт 6, ячейка 40, значение в ячейке как стартовый адрес - игра запуститься.

S_V_B
25.12.2018, 16:27
"бряк" - это breakpoint (точка останова в дебаггере) :)

S_V_B
27.12.2018, 17:49
Клаву правильнее опрашивать в ПП:

MOV #PKEY/2,@#177010 ;ячейка PKEY в памяим ЦП для кода клавиши
TSTB @#177700 ; тестировать регистр состояния клавиатуры
BPL 77$ ; нет символа выходим
MOVB @#177702,R0 ; поместить полученный скэн-код в R0
MOV R0, @#177014 ;код клавиши в PKEY
BR 777$

77$: CLR R0
MOV R0, @#177014 ;если нет то обнуляем PKEY

777$:
..........................

Как интерпретируется код отжатия клавиши?

S_V_B
31.12.2018, 13:44
Всех с наступающим.. :)
Желаю чтобы у всех было время и средства для любимого хобби :)

S_V_B
03.02.2019, 14:03
Вытащил музыку из оригинала PC, перенес на УКНЦ:
https://yadi.sk/d/JsMlsbRYSPSIvA

Звук конечно хуже чем на PC speaker, пришлось даже тональность понизить чтобы похоже было.
Еще почему-то у меня на одной укнц (более новой с урезанными цветами) звук не пошел, крякнет вначале.. и все.

hobot
03.02.2019, 16:32
Format : DSK : RT-11
File Blocks Date Bytes
---------- ------ ----------- ----------
MLM1 .SAV 79 40'448
---------- ------ ----------- ----------

в эмуляторе звук есть, я ориг. игру не видел и звук не слышал - сравнить не с чем.
меня очень тревожит размер исполняемого файла. = 79 блоков

для сравнения


Image : GAMES2.dsk

Format : DSK : RT-11
Size : 800 Kb

Volume ID: GAMES2
Owner : [hobot]

File Blocks Date Bytes
---------- ------ ----------- ----------
JS .SYS 2P 07-Jun-1993 1'024
SWAP .SYS 26P 02-Dec-1987 13'312
RT11SJ.SYS 72P 18-Apr-1985 36'864
TT .SYS 2P 18-Apr-1985 1'024
MZ .SYS 4P 12-Jan-1990 2'048
GOBLIN.SAV 61P 31-Dec-1999 31'232
GBL .SAV 61P 31-Dec-1999 31'232
MKLAD .SAV 39P 31-Dec-1999 19'968
PIRAM .SAV 20P 31-Dec-1999 10'240
SAD .SAV 26P 11-Apr-1989 13'312
GMARS .SAV 13P 31-Dec-1999 6'656
UFO .SAV 58P 31-Dec-1999 29'696
KNIGHT.OVL 171P 31-Dec-1999 87'552
KNIGHT.SAV 8P 31-Dec-1999 4'096
SPION .SAV 13P 31-Dec-1999 6'656
GXONIX.SAV 13P 30-Apr-2011 6'656
NEWTET.SAV 47P 31-Dec-1999 24'064
CLINE .SAV 33P 30-Apr-1979 16'896
POKER .SAV 24P 30-Apr-2011 12'288
STALK .SAV 49P 23-Jan-1992 25'088
KOSMOS.SAV 36P 22-Dec-1980 18'432
MINE .SAV 35P 09-Jan-1992 17'920
BOA .SAV 14P 29-Apr-2011 7'168
KING .SAV 67P 09-Apr-1996 34'304
HANOJ .SAV 19P 17-Aug-1992 9'728
SAPER .SAV 15P 29-Apr-2011 7'680
FISH .SAV 22P 31-Dec-1999 11'264
BARMEN.SAV 14P 07-Mar-2014 7'168
TROPA .SAV 49P 30-Apr-1979 25'088
TETRIS.SAV 28P 04-Apr-1985 14'336
VERT .SAV 16P 01-Jan-1980 8'192
FONTUK.SAV 5P 07-Sep-2013 2'560
COLUMN.SAV 35P 30-Apr-2011 17'920
COLUMS.SAV 29P 30-Apr-2011 14'848
LANDUK.SAV 35P 07-Mar-1989 17'920
LANDM .SAV 33P 30-Apr-1979 16'896
PIFPAF.SAV 32P 23-Jan-1992 16'384
SHERIF.SAV 25P 22-Feb-1989 12'800
SLAND .SAV 49P 24-Oct-1990 25'088
SUPRIS.SAV 41P 02-Feb-1994 20'992
DIGGER.SAV 65P 23-Jan-1992 33'280
CAT400.SAV 52P 20-Apr-1990 26'624
CHESS .SAV 37P 09-Jan-1992 18'944
TIR .SAV 8P 03-Nov-1983 4'096
PIPE .SAV 27P 30-Apr-1979 13'824
GADRUS.SAV 12P 07-Mar-2014 6'144
SP13 .SAV 13P 19-Oct-1993 6'656
GMENU2.SAV 18P 07-Mar-2014 9'216
COLUMN.HIS 1 30-Apr-2011 512
POKER .DAT 1 512
< UNUSED > 11 5'632
---------- ------ ----------- ----------
50 Files, 1575 Blocks
11 Free blocks

кстати по поводу звука запустите NEWTET.SAV - от ТЕХНОКОМ
и игрушки с MSX, GOBLIN.SAV, SLAND.SAV, MKLAD.SAV,
по поводу скролла-стрелялки UFO .SAV 58P

- - - Добавлено - - -


крякнет вначале.. и все. а может там просто проводок у пищалки отходит
разные платы пищат по разному у реалов = некоторые чуть шустрее (звук выше становится) некоторые медленнее - это нормально для УК-НЦ.

- - - Добавлено - - -

S_V_B, вы главное не отчаивайтесь в соседних темах хотят разогнанный вариант ВМ2 получить,
тогда возможно "придёт пора" графическую UI делать под мышку и флеш-носители и доп. расширенную память со звуком
как надстройку над RT-11 ))) Только вот путь 11\16 показал, что это тупик. ПКM одна из тупиковых ветвей деградации PDP ОС АСПЕКТ = я уважаю ребят из ASP - пиф-паф моя любимая игра, но НЕОНЫ с Аспектами - это ересь холи варная ) Их никто не брал, а УК-НЦ спрос до сих пор есть у народа - потому как промышленный стандарт, философия и возможности ДВК+ - это серьёзно )))

S_V_B
03.02.2019, 16:32
/* меня очень тревожит размер исполняемого файла. = 79 блоков */
Так и будет, поскольку там уже лежат все данные: графика, звук, лабиринты и.т.д.
Размер оригинала 60к.

/* я ориг. игру не видел и звук не слышал */
Оригинал выше тональностью, насколько я понимаю на УКНЦ меньше битность таймера (12бит) и один в один с оригиналом не получится.

hobot
03.02.2019, 16:44
S_V_B, я вот вот жду повода запустить живую машинку (там убраться возле телека надо разгрести - ленюсь и откладываю), но мне надо ещё 622версию поезда Никиты туда кинуть у меня там более ранняя да и в целом есть для
тестов железо - так что и на моей плате запустим придёт время )))

S_V_B
03.02.2019, 17:10
Нужно на стартовой странице еще логотип "LastMission" покрутить (таблицей строк), учитывая что я за месяц всего несколько часов этим занимался..
О сроках лучше не загадывать.

/* а может там просто проводок у пищалки отходит */
Нет какие-то звуки она воспроизводит..
Меня терзают смутные сомнения, что на кастрированных платах еще сетевой таймер по другому работает.

hobot
03.02.2019, 18:11
S_V_B,
Меня терзают смутные сомнения,,
вся прелесть в том, что никто не знает точно как оно работает ) и что есть вы
кто решился сам изучить и докопаться ) с моей стороны любая посильная.


что на кастрированных платах еще сетевой таймер
уточните что бы на 1-м языке говорить - это у которых GRB-выход и С2 нет?

S_V_B
03.02.2019, 19:50
это у которых GRB-выход и С2 нет
Да у тех самых

- - - Добавлено - - -

Забыл сказать, кроме песенки, кнопки 1,2 палитру переключают.. это потом сделаю для разных RGB, GRB и просто для разнообразия.

hobot
03.02.2019, 20:11
S_V_B, помнишь ранние MS DOS игры, которые тип видеокарты в начале спрашивали)))
на УК-НЦ "цветной СТАКАН" есть, если выбираешь ч/б вместо цветов масть карточную рисует )
Название забыл - вот ведь! )

S_V_B
04.02.2019, 19:39
Переписал без использования 100го вектора:
https://yadi.sk/d/JsMlsbRYSPSIvA
теперь играет на любой машине.
Качество звука на реальной машине удручает, в эмуляторе звучит лучше..
На УКНЦешной перделке только до, ре, ми играть.. и то не факт.. :(

hobot
09.02.2019, 16:12
S_V_B, запустите пожалуйста на обеих платах для сравнения и отпишитесь, если будут проблемы:
COLUMN.SAV - С ЭТИМ В ЭМУЛЯТОРЕ ПРОБЛЕМЫ
COLUMS.SAV - это цветной или ч/б по выбору
MISION.SAV - а это трудная на терпение игра

S_V_B
09.02.2019, 18:23
/* на обеих платах для сравнения */
Я меня на две платы одна клава, лениво все перекидывать.

- - - Добавлено - - -

Поставил вместо пьезо спикер от ПЦ картонный, музыка стала более похожей, исчез скрежет.

Manwe
06.03.2019, 19:46
Почитал я про устройство графики в УКНЦ - чего-то жутко стало :) Однобитный режим Ok (как на БК), а многоцветный с этими битпланами в разных областях памяти - бррр... Нарисовать спрайт с трёхбитным цветом выходит в три раза дольше, чем однобитный спрайт. Как вы вообще пишете под УКНЦ? ;)

nzeemin
06.03.2019, 20:17
Почитал я про устройство графики в УКНЦ - чего-то жутко стало :) Однобитный режим Ok (как на БК), а многоцветный с этими битпланами в разных областях памяти - бррр... Нарисовать спрайт с трёхбитным цветом выходит в три раза дольше, чем однобитный спрайт. Как вы вообще пишете под УКНЦ? ;)

Палитру выбираю заданием цвета фона/символа и очисткой экрана.
Ширину экрана также выбираю режимом перед очисткой экрана, как правило это 320 пикселей на строку.
Использую только запись со стороны ЦП через регистры 176640/176642, получается четыре цвета на точку, за раз записывается полоска 8x1 пикселей в четыре цвета.

Manwe
06.03.2019, 20:26
А можно кусочек кода сюда?

Titus
06.03.2019, 21:00
Как вы вообще пишете под УКНЦ?
Неудобно, но что делать) Приходится работать с тем, что есть.
На амиге тоже битпланы.

nzeemin
06.03.2019, 22:01
А можно кусочек кода сюда?

Так весь код же открыт, ищите по номерам регистров 176640/176642:
https://github.com/nzeemin/uknc-stopexpress/blob/master/EXPRES.MAC
https://github.com/nzeemin/uknc-highwayencounter/blob/master/HWYENC.MAC
https://github.com/nzeemin/uknc-loderunner/blob/master/MAIN.MAC

Manwe
07.03.2019, 00:01
nzeemin, спасибо, посмотрел. Так, конечно, производительность не очень высокая получается.

S_V_B
09.03.2019, 19:22
Уважаемые теоретики... когда уже музыку то сделаете..... не нужно ВМ3 для этого.... запихните два регистра в ПП.... и все, я не буду под существующую перделку что-то делать.

Hunta
09.03.2019, 20:38
когда уже музыку то сделаете
А здесь каждый занят тем, что ЕМУ интересно и плевать хотел на всё остальное

shattered
09.03.2019, 23:14
и правильно, это хобби, а не работа

Hunta
09.03.2019, 23:19
и правильно, это хобби, а не работа
Я это знаю, Вы это знаете, а кто то ждёт, что за него его хобби сделают ;)

shattered
09.03.2019, 23:37
да-да, напишите подобие http://michaeljmahon.com/RTSynth.html plz plz :)

S_V_B
27.03.2019, 12:38
Наконец раскопал в оригинале и перенес себе нижний статусбар... :)
В графике его не нашел, а он зараза в чарсете спрятан был и хранился в виде строк.
кому интересно можете глянуть, что уже есть:
https://yadi.sk/d/tuTrPlqecxwpaA

S_V_B
03.04.2019, 19:25
Расставил врагов во все 90 комнат:
https://yadi.sk/d/tuTrPlqecxwpaA
Двигаюсь помаленьку :)

nzeemin
03.04.2019, 19:39
Самое то главное -- сделан ли уже анализ столкновений? в игрушках это главная проблема -- определить событие "объекты пересеклись".

S_V_B
04.04.2019, 04:46
Да не такая это и проблема, есть тайл-буфер где номера тайлов лежат - ноль значит чисто. Единственное на верхних уровнях фон пересекается с объектами и это пока не вяжется с выводом спрайтов (без маски). В оригинале между объектами столкновения определяются по габаритам, можно что-нибудь другое сделать.
пока хватает без коллизий чем заняться.

CodeMaster
04.04.2019, 09:21
Наконец раскопал в оригинале и перенес себе нижний статусбар...
А на каком он языке?

Black Cat / Era CG
04.04.2019, 09:30
Opera Soft - испанцы. Мб испанский?

S_V_B
04.04.2019, 10:41
Так и есть испанский.. для колорита переводить не буду..

S_V_B
06.04.2019, 08:00
Поделюсь, может кому необходимо:
https://yadi.sk/d/_MNyHPjDBtXtww

Делал для БКшки, но пригодилась на УКНЦ (нужно было спрайт подправить).
Для этого сделал сохранение для УКНЦ (см. скрин).
Сохраняет MAC файл, первые два байта - ширина (в байтах) и высота в строках, далее поочередно первый и второй планы.

Хотел добавить палитры УКНЦ, но пока лень. :)

hobot
06.04.2019, 09:32
Сохраняет MAC файл, первые два байта - ширина (в байтах) и высота в строках, далее поочередно первый и второй планы.
Хотел добавить палитры УКНЦ, но пока лень.

Это вторая (или уже третья?!) жизнь машинки! Для УК-НЦ(МАКРО-11) похоже возродился человеческий граф. редактор )

https://pic.maxiol.com/thumbs/1554530277.787614971.bkimg.png (https://pic.maxiol.com/?v=1554530277.787614971.bkimg.png)

ИМХО:
S_V_B, ИМХО: важнее поллитры для УК-НЦ библиотеку готовых процедур\функций для местного высокого уровнв (ПАСКАЛЬ) для работы с такими спрайтами. Например для таких Паскалистов как я )))

Как и что было в утерянном движке от Maple :
(только не путайте с UKLOAD, который живее живых, да только кому это ф. от ТЕХНОКОМА нужна?
--- Инициализация (процедура)
--- Установка режима вывода (MODE)
--- Процедура вывода спрайта
--- Процедура разрешения экрана

Далее, разработчик должен был организовать самостоятельно два доп файла и проганть их через
MACRO.SAV:
1.Спрайты с глобметками как начало спрайта (на самом деле их уже редактор должен бы вставлять,
заголовок и .END в таком файле не обязательны, название файла любое
2.Таблица спрайтов в котором сразу идёт глобальная например SPRTAB::, а далее перечисляются
по порядку глобметки(названия) спрайтов из библиотек с картинками для последующей линковки

Процедура вывода работала так
SPROUT([номер спрайта из SPRTAB:: сверху вниз 0,1,2,....], X, y) - и х,у - координаты на экране в пикселях, процедура Инит- должна начало координат устанавливать в левый верхний и экран очищать наверное )

Сумбурно, но я думаю примерно ясно. Вот это было бы действительно мощно!!!
Я к примеру не понимаю всю эту математику и писать на МАКРО-11 мне трудно,
с таким подспорьем мне ничто не помешало бы использовать спрайты в своих программах
на ПАСКАЛЕ. Огромная благодарность, S_V_B, за редактор (https://zx-pk.ru/threads/29643-portirovanie-igry-quot-last-mission-quot-na-uknts.html?p=1006449&viewfull=1#post1006449) - это на самом деле мощный шаг в нужном направлении!

S_V_B
06.04.2019, 10:31
Если редактор оказался (неожиданно) нужным, то можно его в отдельную тему. Там по возможности буду выполнять пожелания.
В прошлом году на БК.org его дружно обхаяли-заигнорив :)
Изначально программа была заточена для перетаскивания графики с PC, с "расширением" количества цветов для БК с 4х до 16ти.
Особенно думаю удался метод Импорт->"Чанки". Попробуйте импортировать любую картинку с PC (желательно с легко различимыми градациями цветов, хотя можно и любую). Для ЧБ лучше Флойда использовать.
А до полноценного редактора анимации там еще пилить и пилить.. с учетом специфики УКНЦ можно новую программу начать писать. С подбором палитры и возможно генерации какого либо кода.

hobot
06.04.2019, 11:27
В прошлом году на БК.org
это легко объяснить - все без исключения БКашники суть еретики.
Но при этом кодят на правильном ассемблере не благодарные )))

- - - Добавлено - - -


Если редактор оказался (неожиданно) нужным, то можно его в отдельную тему. Там по возможности буду выполнять пожелания. Нужно в отдельную тему!
Неожиданно - как бы не так, только не для меня, (полистай форум поймешь, что я про возродить этот движок с самого начала тут пишу) - другой момент, что редактор спрайтов от МАПЛЕ естественно на самой УК-НЦ работал и был 4-х цветный
и ещё была процедура переключения страниц и крутой захват-контроль кнопок поскольку там инит был крутой
сразу под ЦП и ПП делал началки, а дальше пиши что хочешь. Кстаи там и для нот по типу табличного и для шрифтов были функции - но для начала достаточно было бы того, что я описал ранее (ЦП only).

S_V_B
25.04.2019, 17:34
Уже можно малость полетать по лабиринту:
https://yadi.sk/d/tuTrPlqecxwpaA

Столкнулся с нежданной проблемкой, из-за того что выводим по 8 точек + байт на сдвиг.. не пролазит в маленькие дырки сверху (которые впритык).. будем думать :)

hobot
26.04.2019, 12:10
Уже можно малость полетать по лабиринту:
Это в UKNCBTL, а скоро и на живой машинке прогоним и даже видео сделаем!)
Очень плавненько летаем, прямо и не верится, что УК-НЦ. Выше не пущают ...
Испанский язык - такой испанский )
https://pic.maxiol.com/thumbs/1556269398.787615406.20190426085713827.png (https://pic.maxiol.com/?v=1556269398.787615406.20190426085713827.png) https://pic.maxiol.com/thumbs/1556269477.787615406.20190426085806835.png


(https://pic.maxiol.com/?v=1556269477.787615406.20190426085806835.png)

S_V_B
26.04.2019, 13:18
Выше не пущают ...
это как раз:
Столкнулся с нежданной проблемкой, из-за того что выводим по 8 точек + байт на сдвиг.. не пролазит в маленькие дырки сверху (которые впритык).. будем думать

hobot
26.04.2019, 15:47
это как раз:
Столкнулся с нежданной проблемкой, из-за того что выводим по 8 точек + байт на сдвиг.. не пролазит в маленькие дырки сверху (которые впритык).. будем думать
я специально сделал скрин зажав вверх и в сторону, когдв в пол-оборота и видно сопла,
может только для этого спрайта сделать проход? или принудительно в нужных местах локаций пропускать принудительно?
вот смотри там же слево и справо стенка получаются, то есть наш кораблик там бы не смог оказаться если это не было бы проходом...
т.е. если стена сразу слева и справо - значит мы в проходе???

S_V_B
26.04.2019, 16:06
Да сделаю.. дайте время.
Кстати вверх и влево не получится.. или-или..
и ширина спрайта во всех фреймах одинакова так что без разницы в какой он фазе.

hobot
26.04.2019, 16:10
и ширина спрайта во всех фреймах одинакова так что без разницы в какой он фазе.
это так ! но мы то умнее чем видеоОЗУ все вместе взятые ))) на скрине видно, что по оси Y там оказаться не возможно,
только в случае если это проход - я примерно это имел в виду )))

S_V_B
26.04.2019, 17:45
Так все и будет..то что сделал это так- канва.. вдохновение навалилось.. и что странно сразу заработало. :)

S_V_B
27.04.2019, 17:33
Все исправил, теперь можно лететь дальше (пролазит в любые дырки :)):

https://yadi.sk/d/tuTrPlqecxwpaA

+ малость ускорил, по моему так лучше.

S_V_B
27.04.2019, 19:38
кнопки 1,2 переключают RGB-GRB

hobot
28.04.2019, 02:02
кнопки 1,2 переключают RGB-GRB

пролазит в любые дырки

сейчас в эмуляторе пощупаю стенки )))

- - - Добавлено - - -

https://funkyimg.com/p/2Tvqi.png (https://funkyimg.com/view/2Tvqi)
S_V_B , очень мощно! ))) как будто на аттракцЫоне прокатился )))

hobot
29.04.2019, 14:30
S_V_B, багрепорт по последнему млм1
воспроизведи у себя
1. поймай положение автопогружения в проход
откинься на спинку креслы и делайте массаж \ разминку - впадает в странно-2ух экранный цикл да? )))

S_V_B
29.04.2019, 14:48
Скорее всего нет, когда нажата кнопка вниз или вверх пролетаем проверку края экрана, а так получается что программа думает, что мы подошли к краю в обоих случаях и переключает.. туда-сюда..

Просто при переключении комнат нужно координаты кораблика чуть дальше от края делать..точнее уже сделал

- - - Добавлено - - -

В любом случае это был пока пробный вариант, "проверка быстродействия", в принципе пока терпимо..
Дальше нужно собраться с силами и подружить структуры врагов и гг, чтобы крутить в единообразном цикле и в зависимости от типа объекта порождать необходимые реакции.

S_V_B
17.05.2019, 20:25
Переделал проверку столкновения с фоном и кучу других косяков (в лабиринте тоже был косяк)..теперь все гладко без дёрганий :)

https://yadi.sk/d/tuTrPlqecxwpaA

Пробовал цикл с врагами, уже начинает подтормаживать.
Еще странный глюк - портятся данные, перенесешь в другое место - нормально.
(четность адресов контролирую)

hobot
17.05.2019, 20:53
Еще странный глюк - портятся данные, перенесешь в другое место - нормально.
(четность адресов контролирую) подробнее опиши...
последнюю сборку забрал, щупаю пока в эмуляторе...

- - - Добавлено - - -


портятся данные, ты с глобальными может переигрываешь сильно )))

nzeemin
18.05.2019, 20:36
Еще странный глюк - портятся данные, перенесешь в другое место - нормально.


У меня было две проблемы такого рода. первое это забывал часто поставить # и как следствие обращения не туда. второе это стек налезал на данные.

S_V_B
18.05.2019, 20:56
Возможно стек. Места уже маловато, графикой все забито.

S_V_B
22.05.2019, 18:55
Анимировал врагов, пока без проверки коллизий:

https://yadi.sk/d/tuTrPlqecxwpaA

нужно будет переделать пп стирания спрайта.

hobot
23.05.2019, 05:53
ножно будет переделать пп стирания спрайта.
такие фразы мёд моих ух.

S_V_B
28.05.2019, 08:35
Подскажите как в ЦП по простому синхронизироваться с сетевым таймером?
Задача стереть-вывести спрайт с началом обратного хода.
В ПП все тривиально: 7130 - 1, 7132- адрес процедуры.

S_V_B
28.05.2019, 20:09
Попробовал "спрайтовый механизм", думал может блиттер получится, типа такого:


MOV #100050,R0
MOV #100000,R1
MOV #288.,C1

1$:
MOV R0,@#177010
TST @#177024
MOV R1,@#177010
CLR @#177024
INC R0
INC R1
...........
...........

В итоге фигня получается, даже если цикл по максимуму развернуть.... медленно.

S_V_B
31.05.2019, 08:05
Отказался в итоге от переключения экранов.. медленно и чем дальше тем больше наворотов получается..
Вернулся на два шага назад, переделываю все под один экран. Разобрался с морганием, странно что никто не подсказал когда я спрашивал... :(
Всего-то нужно WAIT поставить перед выводом спрайта...

S_V_B
02.06.2019, 14:18
MACRO-11 весьма скупой на расшифровку ошибок :(
Шибко не разгонишься, приходится компилять через каждые 2-3 строчки, иначе потом фиг найдешь ошибку..особенно когда программа уже большая.. а сообщение: найдено ошибок 1.
аааааа.....

- - - Добавлено - - -

Переделал под один экран и сделал правильное стирание спрайтов:

https://yadi.sk/d/jEQ69u_Zu0PYYQ

hobot
02.06.2019, 15:12
MACRO-11 весьма скупой на расшифровку ошибок



СООБЩЕНИЯ ОБ ОШИБКАХ
ТРАНСЛЯТОРА MACRO .


A ОШИБКА ТРАНСЛЯЦИИ .

НЕВЕРНО УКАЗАН АРГУМЕНТ :

.RADIX В КАЧЕСТВЕ ОСНОВАНИЯ СИСТЕМЫ
СЧИСЛЕНИЯ УКАЗАННО ЗНАЧЕНИЕ,
ОТЛИЧНОЕ ОТ 2,4,8 ИЛИ 10 .

.LIST УКАЗАН АРГУМЕНТ ,ОТЛИЧНЫЙ
.NLIST ОТ ДОПУСТИМОГО.

.PSECT -- * -- * -- * --

.IF НЕДОПУСТИМЫЕ УСЛОВИЕ ИЛИ
.IIF ЗНАЧЕНИЕ АРГУМЕНТА .

.ENABL НЕДОПУСТИМОЕ ЗНАЧЕНИЕ
.DSABL АРГУМЕНТА .

.MACRO НЕДОПУСТИМЫЙ ИЛИ ПОВТОРЯЮЩИЙСЯ
СИМВОЛ В СПИСКЕ ФИКТИВНЫХ
АРГУМЕНТОВ .

СИМВОЛ ИЛИ АРГУМЕНТ ПРОПУЩЕН :

.TITLE НЕ УКАЗАНО ИМЯ ПРОГРАММЫ ИЛИ
ПЕРВЫЙ ОТЛИЧНЫЙ ОТ ПРОБЕЛА
ЗНАК,СЛЕДУЮЩИЙ ЗА ДИРЕКТИВОЙ,
НЕДОПУСТИМ В КОДЕ RADIX-50.

.IRP
.IRPC НЕ УКАЗАН ФИКТИВНЫЙ АРГУМЕНТ.

.NARG
.NSHR
.NTYPE НЕ УКАЗАН СИМВОЛ.

.IF
.IIF НЕ УКАЗАННО УСЛОВИЕ ТРАНСЛЯЦИИ.

НЕПАРНЫЕ ОГРАНИЧИТЕЛИ
(НЕПРАВИЛЬНАЯ КОНСТРУКЦИЯ АРГУМЕНТА ) :

.ASCII ОГРАНИЧИТЕЛЬНЫЕ ЗНАКИ СТРОКИ
.ASCIZ ИЛИ АРГУМЕНТА ЯВЛЯЮТСЯ НЕПАР
.RAD50 НЫМИ ИЛИ КАЧЕСТВЕ ОГРАНИЧИТЕЛЯ
.IDENT ИСПОЛЬЗОВАН НЕДОЗВОЛЕННЫЙ ЗНАК,
ИЛИ В ДИРЕКТИВЕ НЕВЕРНО ЗАПИСАН
АРГУМЕНТ.

.NCHR НЕПАРНЫЕ ОГРАНИЧИТЕЛЬНЫЕ ЗНАКИ
СТРОКИ ИЛИ ОГРАНИЧИТЕЛЬ - НЕДО-
ПУСТИМЫЙ ЗНАК.

ОБЩАЯ ОШИБКА АДРЕСАЦИИ :

1. В ИНСТРУКЦИИ ПЕРЕХОДА ПРЕВЫШЕН ДОПУСТИМЫЙ
ДИАПАЗОН ПЕРЕХОДА,Т.Е. ЗНАЧЕНИЕ ВЫХОДИТ
ЗА ГРАНИЦЫ ОТ -128(10) ДО +127(10).

2. ОПЕРАТОР ПРЯМОГО ПРИСВАИВАНИЯ НЕВЕРНО
ИЗМЕНЯЕТ ТЕКУЩИЙ СЧЕТЧИК АДРЕСОВ,Т.Е.
ОПЕРАТОР ВИДА ".=EXPR" ИЗМЕНЯЕТ СЕТЧИК
ТАК,ЧТО ОН ВЫХОДИТ ЗА ГРАНИЦЫ ПРОГРАМНОЙ
СЕКЦИИ.

3. НЕДОПУСТИМОЕ АДРЕСНОЕ ВЫРАЖЕНИЕ,Т.Е.
АБСОЛЮТНОЕ АДРЕСНОЕ ВЫРАЖЕНИЕ СОДЕР-
ЖИТ ГЛОБАЛЬНЫЙ СИМВОЛ,ПЕРЕМЕЩАЕМУЮ ВЕЛИЧИНУ
ИЛИ СЛОЖНУЮ ПЕРЕМЕЩАЕМУЮ ВЕЛИЧИНУ,
ЛИБО, ЕСЛИ ОТНОСИТЕЛЬНОЕ АДРЕСНОЕ ВЫРА-
ЖЕНИЕ СОДЕРЖИТ ГЛОБАЛЬНЫЙ СИМВОЛ ИЛИ
СЛОЖНУЮ ПЕРЕМЕЩАЕМУЮ ВЕЛИЧИНУ.
ОСОБЫЙ СЛУЧАЙ - В ДИРЕКТИВАХ
.BLKW/.BLKB/.REPT УКАЗАННО ВЫРАЖЕНИЕ
НЕ ЯВЛЯЮЩЕЕСЯ АБСОЛЮТНЫМ.

4. НЕСКОЛЬКО ВЫРАЖЕНИЙ НЕ РАЗДЕЛЕНЫ ЗАПЯТОЙ,
ТОГДА СЛЕДУЮЩИЙ СИМВОЛ РАССМАТРИВАЕТСЯ
КАК ЧАСТЬ ТЕКУЩЕГО ВЫРАЖЕНИЯ.


НЕДОПУСТИМАЯ ССЫЛКА ВПЕРЕД :

1. ГЛОБАЛЬНЫЙ ОПЕРАТОР ПРИСВАИВАНИЯ
(НАМЕ==EXPR) СОДЕРЖИТ ССЫЛКУ ВПЕРЕД НА
ДРУГОЙ СИМВОЛ.

2. В ВЫРАЖЕНИИ,ОПРЕДЕЛЯЮЩЕМ ЗНАЧЕНИЕ
ТЕКУЩЕГО СЧЕТЧИКА АДРЕСА СОДЕРЖИТСЯ
ССЫЛКА ВПЕРЕД.

B ОШИБКА ГРАНИЦ АДРЕСАЦИИ.
ИНСТРУКЦИИ ИЛИ СЛОВА ДАННЫХ ТРАНСЛИРУЮТСЯ ПО
НЕЧЕТНОМУ АДРЕСУ ПАМЯТИ. СЧЕТЧИК ЯЧЕЕК КОРРЕКТИРУЕТСЯ
ПРИБАВЛЕНИЕМ 1.

D ССЫЛКА НА МНОГОКРАТНО ОПРЕДЕЛЕННУЮ МЕТКУ.

E ДИРЕКТИВА .END НЕ ОБНАРУЖЕНА .

I ОБНАРУЖЕН ЗАПРЕЩЕННЫЙ ЗНАК. ЕСЛИ ОН К ТОМУ ЖЕ ЯВЛЯЕТСЯ
НЕПЕЧАТНЫМ,В ЛИСТИНГЕ ОН ЗАМЕНЯЕТСЯ ЗНАКОМ ? .

L ВХОДНАЯ СТРОКА ДЛИННЕЕ,ЧЕМ 132(10) ЗНАКА.
ОШИБКА ПОЯВЛЯЕТСЯ ПРИ ЗАМЕНЕ ФОРМАЛЬНЫХ АРГУМЕНТОВ
ФАКТИЧЕСКИМИ.

M МНОГОКРАТНОЕ ОПРЕДЕЛЕНИЕ МЕТКИ ( ЭКВИВАЛЕНТНА ПО
ПЕРВЫМ 6-ТИ ЗНАКАМ РАНЕЕ ВСТРЕЧЮЩЕЙСЯ ).

N ЧИСЛО СОДЕРЖИТ ЦИФРЫ , НЕДОПУСТИМЫЕ В ДАННОЙ СИСТЕМЕ
СЧИСЛЕНИЯ.

O ОШИБКА КОДА ОПЕРАЦИИ;
ДИРЕКТИВА ВНЕ КОНТЕКСТА;
ПРЕВЫШЕН ДОПУСТИМЫЙ УРОВЕНЬ ВЛОЖЕНИЯ БЛОКОВ ТРАНСЛЯ-
ЦИИ;
ПОПЫТКА РАСШИРЕНИЯ МАКРОКОМАНДЫ, НЕ ОПРЕДЕЛЕННОЙ
В .MCALL
^L

P ОШИБКА ФАЗЫ ;
ЗНАЧИНИЕ МЕТКИ МЕНЯЕТСЯ ОТ ОДНОГО ПРОХОДА К ДРУГОМУ;
ЛОКАЛЬНАЯ МЕТКА МНОГОКРАТНО ОПРЕДЕЛЕНАВНУТРИ БЛОКА ЛОКАЛЬНЫХ
СИМВОЛОВ ;
БЛОК ЛОКАЛЬНЫХ СИВОЛОВ, ОПРЕДЕЛЯЕМЫЙ ДИРЕКТИВОЙ .ENABL LSB,
ПЕРЕХОДИТ ГРАНИЦУ ТОЙ ПРОГРАММНОЙ СЕКЦИИ, В КОТ. НАХОДИТСЯ
ЕГО НАЧАЛО ;
ТРАНСЛИРУЕТСЯ ДИРЕКТИВА .ERROR .

Q СОМНИТЕЛЬНЫЙ СИНТАКСИС :
НЕ ХВАТАЕТ АРГУМЕНТОВ ЛИБО АНАЛИЗ ИНСТРУКЦИИ НЕ БЫЛ
ЗАВЕРШЕН .

R ОШИБКА ИСПОЛЬЗОВАНИЯ РЕГИСТРА :
НЕДОПУСТИМОЕ ИСПОЛЬЗОВАНИЕ ИЛИ НЕДОПУСТИМАЯ ССЫЛКА НА
РЕГИСТР ;
ПОПЫТКА ПЕРЕОПРЕДЕЛЕНИЯ СТАНДАРТНОГО ИМЕНИ РЕГИСТРА
БЕЗ ПРЕДВАРИТЕЛЬНОГО ЗАДАНИЯ ДИРЕКТИВЫ .DSABL REG

T ОШИБКА УСЕЧЕНИЯ :
ЧИСЛО ЗАНИМАЕТ БОЛЕЕ 16 РАЗРЯДОВ СЛОВА ;
В ДИРЕКТИВЕ .BYTE ИЛИ В ИНСТРУКЦИЯХ EMT И TRAP
ИСПОЛЬЗУЕТСЯ ВЫРАЖЕНИЕ , ЗНАЧЕНИЕ КОТ. ЗАНИМАЕТ
БОЛЬШЕ 8-МИ РАЗРЯДОВ .

U НЕОПРЕДЕЛЕННЫЙ СИМВОЛ ;
ПРИ ВЫЧИСЛЕНИИ ВЫРАЖЕНИЯ ВСТРЕТИЛСЯ НЕОПРИДЕЛЕН-
НЫЙ СИМВОЛ ( ЕМУ ПРИСВАЕВАЕТСЯ ЗНАЧЕНИЕ 0 );
В ДИРЕКТИВЕ .MCALL УКАЗАННО ИМЯ ОТСУТСТВУЮЩЕЙ
МАКРОКОМАНДЫ ;
ОПЕРАТОР ПРЯМОГО ПРИСВАИВАНИЯ СОДЕРЖИТ ССЫЛКУ НА
СИМВОЛ,ОПРЕДЕЛЕНИЕ КОТ. ТАКЖЕ СОДЕРЖИТ ССЫЛКУ
ВПЕРЕД ;
СДЕЛАННА ССЫЛКА НА ЛОКАЛЬНЫЙ СИМВОЛ,НЕ СУЩЕСТВУЮ-
ЩИЙ В ТЕКУЩЕМ БЛОКЕ ЛОКАЛЬНЫХ СИМВОЛОВ .

Z ОШИБКА ИНСТРУКЦИИ .
ИНСТРУКЦИЯ НЕ ОБРАБАТЫВАЕТСЯ ТРАНСЛЯТОРОМ НА
ДАННОМ ЦЕНТРАЛЬНОМ ПРОЦЕССОРЕ .

Hunta
02.06.2019, 15:17
Шибко не разгонишься, приходится компилять через каждые 2-3 строчки, иначе потом фиг найдешь ошибку..особенно когда программа уже большая.. а сообщение: найдено ошибок 1.
Именно для этого в коде выделяются подпрограммы, а сам код бьётся на несколько файлов. Как ни странно, такой подход даёт неплохой результат. Хотя - всё в одном файле - мне не особо мешали с 6-ти килобайтным содержимым 134-ого ПЗУ.

А расшифровка ошибок - в документации, потому что если её пихать в экзешник... сорри в .SAV или .TSK файл - MACRO (и так не слабого размера и с перекрытиями) станет совсем неповоротливым монстром. Добро пожаловать в мир с ограниченными ресурсами.

hobot
02.06.2019, 15:22
забрал версию-ветку 2 )
пока в эмуляторе !
при прогоне листинг прогона создавай -



HD7>HELP MAC

MACRO Invokes the macro assembler

SYNTAX
MACRO[/options] filespecs[/options]

SEMANTICS
To assemble multiple files (up to six) into a single OBJ file,
separate the files with plus (+) signs in the command line.
Multiple files separated by commas (,) are assembled
independently.
The default file types for output are .LST for listing files
and .OBJ for binary files. The default file type
for input is .MAC.

OPTIONS
ALLOCATE:size
Reserves space for an output file
CROSSREFERENCE[:type[...:type]]
Generates a cross-reference table in the listing file
DISABLE:value[...:value]
Specifies a .DSABL directive
ENABLE:value[...:value]
Specifies an .ENABL directive
Press <RETURN> for more...
LIBRARY
Identifies a file as a macro library file
LIST[:filespec]
Produces a listing file
NOOBJECT
Suppresses output of the binary object file
NOSHOW:value
Specifies an .NLIST directive
OBJECT[:filespec]
Specifies a file name for the object file
SHOW:type
Specifies a .LIST directive

EXAMPLES
MACRO/LIST MYPROG
MACRO/CROSSREFERENCE PROG1+PROG2/LIST/NOOBJECT
MACRO/LIST:FILE.OUT A+B


HD7>


он же указывает и строку с ощибкой кажет !!!

S_V_B
02.06.2019, 15:26
А расшифровка ошибок - в документации,
С такими понятно, указывается еще и номер строки в исходнике, но чаще пишет "?MACRO-E-Errors detected:1 DK:MLM1.MAC" и все... :( сам не знает где ошибка

Hunta
02.06.2019, 15:38
сам не знает где ошибка
Не сталкивался с таким. Если выводить листинг в файл, а не транслировать без листинга вообще - тогда да, на экран ничего не выдаётся. Э.. давайте уточню - в RSX оно так, в RT давно не транслировал, не помню. А так что бы - ошибки есть - а где - не скажу - такого не помню.

- - - Добавлено - - -

Вот сейчас собираюсь ПЗУ-ху транслировать - .SAV формат хорошо для этого подходит, в отличии от .TSK - заодно и проверю

hobot
02.06.2019, 15:40
?MACRO-E-Errors detected:1 DK:MLM1.MAC
надеюсь у тебя DK не NTFS папка?
совсем без кода? может ты буковку E не заметил? или это без листинга!
такая ошибка чаще всего в последней строке - файл OBJ по умолчанию всё равно создаётся,
листинг всегда гоняй. Надо кректно выходить из текстового редактора!!!

Hunta
02.06.2019, 15:42
надеюсь у тебя DK не NTFS папка?
Это мешает только в одном - при ошибке эмулятор надо перезапускать, больше проблем не замечано

hobot
02.06.2019, 15:48
Это мешает
а что мешает гнать на прaвильный LD но в конце com файла копировать SAV в папку NTFS )

Hunta
02.06.2019, 16:00
а что мешает
Я работаю так как МНЕ удобней. Мне удобней, что бы всё было в папке NTFS

S_V_B
02.06.2019, 16:05
Поправил косячек:
https://yadi.sk/d/jEQ69u_Zu0PYYQ

Пора завязывать на сегодня, а то уже путаюсь..

hobot
02.06.2019, 16:19
S_V_B, шикарно! особенно меня радует оригинальное решение по поводу
разногласия видео на разных платах - это раз, всё мерцает, но не двигается и уже чувствуется
что да - быстродействие потяжелело, зато красиво красиво - разноплановое размещение спрайтов или ??? = нету перемешки цветов когда объекты наложены????
так и хочется стрельнуть) https://smiles24.ru/data/smiles/smiles-igry-73.gif

- - - Добавлено - - -


Поправил косячек: или приделал? )
забираю.

nzeemin
02.06.2019, 16:28
MACRO-11 весьма скупой на расшифровку ошибок :(

Да нормально там всё с выдачей ошибок.
Я делаю всегда компиляцию с выдачей листинга:
MACRO/LIST:DK: TEST.MAC
Если появилась ошибка - смотрим сначала где (по листингу), если непонятно то что (по коду ошибки).
Можно ещё командником выводить строки с ошибками из листинга:


for /f "delims=" %%a in ('findstr /B "Errors detected" TEST.LST') do set "errdet=%%a"
if "%errdet%"=="Errors detected: 0" (
echo COMPILED SUCCESSFULLY
) ELSE (
findstr /RC:"^[ABDEILMNOPQRTUZ] " TEST.LST
echo ======= %errdet% =======
exit /b
)



надеюсь у тебя DK не NTFS папка?
Тоже держу все файлы в обычной папке, удобно.

S_V_B
02.06.2019, 17:08
всё мерцает, но не двигается
Мерцает где?
Я на реале правда не пробовал, но на эмуляторе без мерцания.
Сейчас попробую на реале...

hobot
02.06.2019, 17:15
Мерцает где?
да нет! я про то что винтики шпунтики кружаться и вертятся, что картинка локаций оживает по тихоньку, извини не хотел тебя пугать - в след. раз буду точнее выражать восторги )))

S_V_B
02.06.2019, 17:25
Можно ещё командником выводить строки с ошибками из листинга
Было бы очень круто если кто-нибудь кто в теме (например Manwe :)) прикрутил бы PDP11->MACRO-11 к Sublime Text и чтобы из LST файла ошибки в редакторе подсвечивались... как у них с PDPy сделано :) ,а еще чтобы SAV в имидж запихивался и эмулятор со STARTS.COM запускал.. во я губу раскатал :) Но писать бы было одно удовольствие :)

Сейчас скажут... "спасение утопающего.. дело рук", я бы занялся только за все сразу хвататься, я с настройкой Sublima буду месяц разбираться.. а у кого может наработки есть...

Hunta
02.06.2019, 17:31
прикрутил бы PDP11->MACRO-11 к Sublime Text
Ну это точно вопрос не ко мне. Если я редактирую исходник на PC - редактор FAR-а (он частично синтаксис MACRO-11 подсвечивает), а если на эмуляторе - то MIM из под RSX - в нем никакой подсветки нет, но зато непревзойдённое (для того времени и частично для сейчас) удобство работы с файловой системой (с добавлением дружественности) плюс супер команда ВЫПОЛНИТЬ - с ней я вообще из MIM-а не вылазюю

S_V_B
02.06.2019, 17:39
сли я редактирую исходник на PC - редактор FAR-а (он частично синтаксис MACRO-11 подсвечивает)
Я тоже в Fare пишу и батниками компилирую.. не очень удобно, а так бы полноценная среда разработки получилась.

S_V_B
04.06.2019, 14:07
Убрал WAIT, сделал по другому:
В ПП:
V100:


MOV #KSI/2,@#177010
MOV #1,@#177014
RTI

В ЦП:
2$:
TST @#KSI
BEQ 2$ ;ждем обратного хода
CALL PUTBLK ;стираем спрайт
CALL PTSPR ; рисуем
CLR @#KSI


А то за один WAIT не успевает, а за два медленно.

Вроде лучше стало:
https://yadi.sk/d/jEQ69u_Zu0PYYQ

hobot
04.06.2019, 14:43
S_V_B, я пока только в эмуляторе запускаю

перерисовка по ХСТОПХ нажатию радует )
скорость вроде полегчало чуток )

вопрос: зачем такой бордюр огромный по высоте у спрайта корабля?

S_V_B
04.06.2019, 14:56
вопрос: зачем такой бордюр огромный по высоте у спрайта корабля?
Какой бордюр?? Скрин сделай, сейчас спрайты BISом вписываются и BICом стираются.. пуля в пулю... без всяких рамок.

S_V_B
04.06.2019, 20:17
Странно, на реале паникует...?MON-F-TRAP TO 10.
Стек вроде целый..

S_V_B
05.06.2019, 13:29
SH MEM говорит, что RMON сидит на 145554.
Компилятор пишет:
High limit =122412
Значит у меня в запасе еще 9Кб.
почему тогда ?MON-F-TRAP TO 10.
копаем дальше....

S_V_B
05.06.2019, 18:50
Исправил, но смысл так и не понял....
Делал .PSEC PROG тогда стартовый адрес 104006.. при старте на риале возникает паника.. в эмуляторе работает
когда делаю .ASECT .=001000 - все работает..
что-то портит верхушку памяти... и вылетает на самом старте.. когда программа еще ничего сделать не успела.. :(

- - - Добавлено - - -

C .ASECT .=001000 портятся уже данные и это заметно только в середине лабиринта.... каша вываливается..

У кого-нибудь есть соображения?.. Что происходит и почему в эмуляторе работает, а на реале нет?????

hobot
07.06.2019, 00:23
У кого-нибудь есть соображения
а что показывают PMEM.SAV , MEM.SAV ? http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/PH123/

nzeemin
07.06.2019, 01:13
Портится память - такие вещи тяжело ловить конечно. Тоже такое было. Пробовал переставлять крупные куски программы, чтобы как-то понять симптомы, потом постепенно добирался до того что же конкретно портит - в общем, локализация проблемы. Обычно в итоге это была какая-нибудь мелочь вроде того что не тот режим адресации использовал (банально забыл # поставить например).

hobot
07.06.2019, 04:23
S_V_B, попробуй сразу вырубить стартовый файл и запустить игру? (на реале)

S_V_B
07.06.2019, 06:24
Пробовал переставлять крупные куски программы, чтобы как-то понять симптомы,
Тоже переставляю, когда программная секция с 104006, падает практически сразу.. значит то что портит находится вначале, а там только перенос в ПП и все стандартно. Сейчас все причешу, разложу, рассортирую, может виднее будет :)..
Но почему в эмуляторе работает?

S_V_B
07.06.2019, 13:06
Добавил по кнопке "3" палитру как в БК11м (11я)

https://pic.maxiol.com/thumbs/1559901528.1388899422.20190607155655.png (https://pic.maxiol.com/?v=1559901528.1388899422.20190607155655.png)

По моему симпатичней :)

hobot
07.06.2019, 22:27
Но почему в эмуляторе работает?
сравни стартовые файлы и версии мониторов

S_V_B
08.06.2019, 06:37
сравни стартовые файлы и версии мониторов
Имиджи диска одинаковые.

Hunta
08.06.2019, 09:43
Но почему в эмуляторе работает?
Потому что эмулятор не эмулирует на 100 процентов точно реальное железо. И поэтому ожидать 100 процентно одинаковое поведение не стоит. Даже сейчас, когда точно известно, как работает ВМ1 и ВМ2 (спасибо, Vslav!), не приходится ждать 100 процентно точного эмулятора - на плате УК-НЦ хватает микросхем, про которые не известно на 100 процентов точно, как они работают

hobot
08.06.2019, 10:15
Имиджи диска одинаковые.
"покажи" стартовый содержимое?

- - - Добавлено - - -


на плате УК-НЦ хватает микросхем, про которые не известно на 100 процентов точно, как они работают там душа эдектронного друга )

Titus
08.06.2019, 13:13
Даже сейчас, когда точно известно, как работает ВМ1 и ВМ2 (спасибо, Vslav!), не приходится ждать 100 процентно точного эмулятора - на плате УК-НЦ хватает микросхем, про которые не известно на 100 процентов точно, как они работают
Все микросхемки вскрыты, дело только за переводом в логическую схему)
Я, например, так и не доделал пока что реверс микросхемы с таймером, хотя начал)

Hunta
08.06.2019, 13:53
Все микросхемки вскрыты, дело только за переводом в логическую схему
Да хоть десять раз вскрыты - логика работы то не описана. Вот когда опишут и её перенесут в эмуляторы... И даже после этого - микросхемы то только по названию цифровые - но от этого промежуточные значения сигнала и время перехода (которые плавают от экземпляра к экземпляру) никто не отменял. Я сильно сомневаюсь, что это можно вывести из снимков и формального описания по ним. Так что эмуляторы всегда будут только приблизительно описывать работу железки - пусть этого и будет достаточно для работы подавляющей части софта. Кстати, больше всего в этом плане будет мучений с видео-частью - там цифра ещё ближе подходит к аналогу

Titus
08.06.2019, 14:31
И даже после этого - микросхемы то только по названию цифровые - но от этого промежуточные значения сигнала и время перехода (которые плавают от экземпляра к экземпляру) никто не отменял. Я сильно сомневаюсь, что это можно вывести из снимков и формального описания по ним. Так что эмуляторы всегда будут только приблизительно описывать работу железки - пусть этого и будет достаточно для работы подавляющей части софта. Кстати, больше всего в этом плане будет мучений с видео-частью - там цифра ещё ближе подходит к аналогу
С этим не согласен. Цифровая схема замечательной точностью описывается и эмулируется. Равно как и нюансы формирования видеосигнала со всеми его артефактами.
Аналоговые линии задержки. Все описывается и эмулируется идеально, если в этом тщательно разобраться.

Hunta
08.06.2019, 14:48
Цифровая схема замечательной точностью описывается и эмулируется

если в этом тщательно разобраться
Конкретный пример. Работал я как то на СМ-1600. И этот экземпляр отличался оригинальностью. Он НЕ РАБОТАЛ, пока не прогреется.
Форма сигнала, уровни и задержки могут меняться с температурой да ещё и не линейно - тоже разобрались и описали?

- - - Добавлено - - -


Цифровая схема замечательной точностью описывается и эмулируется
Ещё пример. Собрал нечто на FPGA. Описанное на VHDL проходит проверку в эмуляторе в софте (я думаю, согласитесь, что разработчик кристалла и софта под него, зная тонкости и нюансы - может позаботиться о точности эмуляции). Результат синтеза заливаем в железку и - опаньки - не работает. Или хуже того - вместо 9600 для эмулируемого ком порта ставим 19200 - и работающее перестало работать. А потом в другом месте что то меняем и - опаньки - 19200 работает. А проверка на эмуляторе - всё забибись

Titus
08.06.2019, 14:54
Это все ни о чем)
Второй пример беспредметный,
А первый, про глючную цифровую технику, которая не работает, пока не прогреется - это не то, что не эмулируется, это НЕ НУЖНО эмулировать.
Эмулируется четко работающая система, а не глючная, у которой высохли емкости или чего-то еще.
Если кому-то интересно эмулировать сломанный комп - флаг в руки. Мне интересно эмулировать исправную систему)

S_V_B
08.06.2019, 14:58
Мне интересно эмулировать исправную систему)
Проверял на двух машинах, симптомы одинаковы..., пока не перелопатил весь исходник, но в глаза ничего очевидное не бросилось. Если бы не было такого объема графики я бы и не заметил , что что-то затирается..

Hunta
08.06.2019, 15:39
исправную систему
Электроника бывает работающей (по спецификации) или не работающей (по оной же).

Если программа использует особенности электроники, не заданные в спецификации, то работающая (по спецификации) аппаратура может оказаться не работающей - для такой программы.

И как - считать такое устройство исправным или нет?

- - - Добавлено - - -


Проверял на двух машинах, симптомы одинаковы
На двух железных? Это всего лишь подтверждает мою мысль - не стоит надеяться на эмуляторы, особенно когда нет точной спецификации железа. И нет, содержимое ПЗУ УК-НЦ не сильно поможет продвинуться в создании более менее точного эмулятора.

S_V_B
08.06.2019, 16:28
Да на двух железных.. если раскопаю ошибку в коде будет видно,что в эмуляторе поправить..

Titus
08.06.2019, 20:14
Если программа использует особенности электроники, не заданные в спецификации, то работающая (по спецификации) аппаратура может оказаться не работающей - для такой программы.
При чем тут спецификация?
Точные эмуляторы не пишут по спецификации. Их пишут на основе реверсов чипов.

Hunta
08.06.2019, 20:25
Их пишут на основе реверсов чипов
Реверс всех чипов в УК-НЦ завершён? Нет? Тогда на основании чего написан эмулятор УК-НЦ?

- - - Добавлено - - -


При чем тут спецификация?
УК-НЦ был создан на основании реверса чипов или всё таки спецификаций?


И как - считать такое устройство исправным или нет?
На этот вопрос ответить нечего?

Короче. Лично мне уже всё понятно. Больше тему не засоряю. И можете не отвечать - с этой же целью.

Titus
08.06.2019, 21:51
Реверс всех чипов в УК-НЦ завершён? Нет? Тогда на основании чего написан эмулятор УК-НЦ?
Мой эмулятор написан на основе спецификаций, да и то не полностью, и пока что на точность не претендует.
У Никиты так же.

hobot
08.06.2019, 21:51
Да на двух железных.. я вот вот запущу свою...

S_V_B
09.06.2019, 12:22
Мимоходом заметил неточность: в эмуляторе ASH R4,R0 дизассемблируется как ASH R0, R4 (с другими регистрами соответственно)

Titus
09.06.2019, 12:49
Да на двух железных.. если раскопаю ошибку в коде будет видно,что в эмуляторе поправить..
В моем эмуляторе запускал?

S_V_B
09.06.2019, 13:34
Нет на эмуляторе Никиты..
Пришел к выводу, что косяк происходит на этапе сборки-компиляции..

Titus
09.06.2019, 13:51
Нет на эмуляторе Никиты..
Пришел к выводу, что косяк происходит на этапе сборки-компиляции..
Так на моем запусти)

S_V_B
09.06.2019, 14:01
Так на моем запусти
Можно ссылку на актуальную версию?
А дебаггер в нем есть?

Titus
09.06.2019, 14:15
Можно ссылку на актуальную версию?
А дебаггер в нем есть?

https://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html?p=461589&viewfull=1#post461589

Дебаггер есть, но он такой примитивный консольный, лично для моего пользования, что я его закрыл.

S_V_B
09.06.2019, 14:20
Запустил, работает не паникует.. и управление потерялось, т.е. жмешь вниз едет вперед, другие не работают
точнее Б- назад, Ю-вниз, вниз- вправо, вверх не нашел
E-3, 2-1,3-2 палитры переключаем

Посмотрите сами:
https://yadi.sk/d/YeN8iFw5wgax2A
может я чего не-то делаю.. запускать MLM2

Titus
09.06.2019, 21:33
Запустил, работает не паникует.. и управление потерялось, т.е. жмешь вниз едет вперед, другие не работают
У меня раскладка яверты.
Какие клавиши у тебя в игре задействованы?

hobot
10.06.2019, 01:18
Запустил, работает не паникует.. и управление потерялось
ты что то делал с дискетой, у тебя там недопустимый случай два подряд splash.dat - такое не могет быть.
На всякий случай вообще с нуля сделай систему или перезапиши с образа.

В эмуляторе летаем всё как было + политра на 3 красиво" )

S_V_B
10.06.2019, 06:16
Какие клавиши у тебя в игре задействованы
пока Стрелки и 1,2,3

Titus
10.06.2019, 07:00
точнее Б- назад, Ю-вниз, вниз- вправо, вверх не нашел
Ты уверен, что стрелки?

Потому что пока это <, >, _, и что-то еще.
Лучше напиши, какие сканкоды ты используешь от клавиатуры.

S_V_B
10.06.2019, 07:06
92., 79., 109., 93. - вправо, влево, вверх, вниз
На реале все работает (считывал первоначально с железной).

Titus
10.06.2019, 07:21
92., 79., 109., 93. - вправо, влево, вверх, вниз
На реале все работает (считывал первоначально с железной).

Ну так это не стрелки, а 'вниз' ',' '_' '.'
На них он и реагирует)

S_V_B
10.06.2019, 07:27
На реале все правильно работает, с него и считывал..


; Подпрограмма: Опрос клавиатуры; клавиша есть: Z=0, клавиши нет: R0=0 и Z=1
MOV #PKEY/2,@#177010 ;ячейка PKEY в памяим ЦП для кода клавиши
TSTB @#177700 ; тестировать регистр состояния клавиатуры
BPL 77$ ; нет символа => выходим

TSTB @#177702
BMI 777$
MOVB @#177702,R0 ; поместить полученный скэн-код в R0

Titus
10.06.2019, 07:48
На реале все правильно работает, с него и считывал..
Ну ты сам посмотри в спецификации, те сканкоды, которые ты описал - это НЕ СТРЕЛКИ)
И на моем эмуляторе они все нажимаются, но не на стрелках.
У стрелок ДРУГИЕ сканкоды)

S_V_B
10.06.2019, 07:51
Зачем мне спецификация если у меня живая машинка есть и в Никитином эмуляторе работает правильно и на живой..
Может тип терминала другой.. в меню настроек..

Я сканировал клавиши по умолчанию, после включения машины без каких-либо доп настроек..

Alex_K
10.06.2019, 11:22
На реале все правильно работает, с него и считывал..


; Подпрограмма: Опрос клавиатуры; клавиша есть: Z=0, клавиши нет: R0=0 и Z=1
MOV #PKEY/2,@#177010 ;ячейка PKEY в памяим ЦП для кода клавиши
TSTB @#177700 ; тестировать регистр состояния клавиатуры
BPL 77$ ; нет символа => выходим

TSTB @#177702
BMI 777$
MOVB @#177702,R0 ; поместить полученный скэн-код в R0


Ну кто же так делает. Контроллер клавиатуры сканирует матрицу клавиш каждые 64 мкс. И счетчик прокручивается в регистре 0177702. Как только зарегистрировано событие нажатия или отжатия клавиши, то значение в регистре 0177702 замораживается, а в регистре 0177700 устанавливается признак готовности (бит 7). Как только регистр 0177702 считан, то в регистре 0177700 сбрасывается признак готовности и счетчик начинает считать дальше. Поэтому если сразу же после этого прочесть регистр 0177702, то там оказывается уже значение на один больше. Командой TSTB @#177702 вы уже прочитываете регистр данных клавиатуры, потому следующая команда MOVB @#177702,R0 уже читает неверные данные.
Так что надо делать так:

; Подпрограмма: Опрос клавиатуры; клавиша есть: Z=0, клавиши нет: R0=0 и Z=1
MOV #PKEY/2,@#177010 ;ячейка PKEY в памяим ЦП для кода клавиши
TSTB @#177700 ; тестировать регистр состояния клавиатуры
BPL 77$ ; нет символа => выходим

MOVB @#177702,R0 ; поместить полученный скэн-код в R0
BMI 777$

Ну и если вы таким образом опрашиваете клавиатуру, то флаг разрешения прерывания должен быть сброшен, ну а при завершении программы установлен.

В UKNCBTL работает, потому что там эмуляция клавиатуры максимально приближена к оригиналу.

Titus
10.06.2019, 11:23
Зачем мне спецификация если у меня живая машинка есть и в Никитином эмуляторе работает правильно и на живой..
Может тип терминала другой.. в меню настроек..

Я сканировал клавиши по умолчанию, после включения машины без каких-либо доп настроек..

Я не понимаю твоей логики.
Есть спецификация, где ВСЕ коды расписаны. Они везде работают.
Ты поставил другие коды, они тоже работают, но располагаются НЕ на клавишах со стрелками, как и положено по спецификации.
Попробуй поставить коды от стрелок)

S_V_B
10.06.2019, 11:44
Ты поставил другие коды, они тоже работают, но располагаются НЕ на клавишах со стрелками, как и положено по спецификации.
На моих двух железных машинах и на эмуляторе Никиты они находятся именно на стрелках.., потому что со стрелок я их и прочитал.. какая логика?

Можно ссылку на спецификацию?
Хотя вряд ли на моей машине другие коды полезут из порта...

- - - Добавлено - - -


Ну и если вы таким образом опрашиваете клавиатуру, то флаг разрешения прерывания должен быть сброшен, н
Прерывания от клавы отключены специально, таким образом работает очень плавно.. я пробовал много вариантов, остановился на этом..

- - - Добавлено - - -

Пока это не основная проблема..

hobot
10.06.2019, 11:50
потому что со стрелок я их и прочитал..
каким образом прочитал?
какой код у тебя для стрелки вверх?



! Apxивны дeл ЖД ! ЛAТ
Scan-code of keys, "Alphaprog", 1993
154 214 134 214 133 213 116 216 153 213
113 213


стрелка вверх, вниз, вправо, слево, ввод и пробел )
раскрой пож. тайну как ты ухитрился
1. добиться двух файлов с одинаковыми именами и расширениями в одном каталоге и это не FILE.BAD ???
2. после каких действий у тебя стартовый файл стал виснуть?
3. тебе надо бы перезаписать из архива этот образ системы )))

утилиту можешь прогнать сам, исходник в лог.диске MACFIL.DSK
называется SCAN.MAC

S_V_B
10.06.2019, 11:54
каким образом прочитал?
какой код у тебя для стрелки вверх?

Тем же способом, что и в программе читает.
Коды я писал выше.

Лучше бы что-нибудь про панику на реале сказали..

hobot
10.06.2019, 13:08
Лучше бы что-нибудь про панику на реале сказали..
ты ловишь PANIC DUMP ? )
а ты лучше расскажи как ты так убил систему???
совпадают коды или нет? я твой код не видел...

Titus
10.06.2019, 13:24
На моих двух железных машинах и на эмуляторе Никиты они находятся именно на стрелках.., потому что со стрелок я их и прочитал.. какая логика?
Alex_K же написал, какая у тебя ошибка. Исправь опрос клавиатуры в соответствии с тем, что он написал, и все будет окей)

S_V_B
10.06.2019, 13:40
Alex_K же написал, какая у тебя ошибка
Alex_K так же написал что если прерывания от клавы отключены то все норм.

- - - Добавлено - - -

Иначе бы оно вообще не работало бы.. проверено

Alex_K
10.06.2019, 13:46
Alex_K так же написал что если прерывания от клавы отключены то все норм.
Основная суть моего сообщения была не про прерывания, а про неправильный алгоритм получения скэн-кода клавиши.

И по поводу TRAP 10. Это значит, что исполняется команда с несуществующим кодом. На каком адресе это происходит, да и нужен дамп памяти около этого адреса.

И ещё. Используете где нибудь косвенную адресацию по счетчику команд (код 17)? Её обычно могут записывать как @PC, (PC), @R7, (R7).

S_V_B
10.06.2019, 13:56
И по поводу TRAP 10. Это значит, что исполняется команда с несуществующим кодом.
Вылетает в ЦП, когда секция кода снизу.. те стартовый адрес 106000.. вылетает практически сразу..
а какой макс. размер файла в блоках может быть? Файл со спрайтами 109к (MAC) rt11dsk не записывал пока не разбил на два, а компиллер схавал... я все больше склоняюсь, что при компиляции фигня какя-то проиходит (где-то в куче спрайтов попадается нечетный адрес или еще чего.. вроде .EVEN расставлял где только можно.. но больно их много)
Вылетает каждый раз в разных местах зависит от того в каком порядке откомпилировал, но обращается в то место где каша лежит...
смысл в том что в коде много структу со ссылкаками на адрес - адресов фреймов.. типа того и в какойто момент считывает не-то
Некогда разбираться пока, работа как всегда мешает хобби...


косвенную адресацию
не использую...

А с клавой я по -моему умышленно так сделал, не помню, автоповтор или чего еще.. давно дело было, пока не мешает...
Работает стабильно.

Titus
10.06.2019, 16:32
А с клавой я по -моему умышленно так сделал, не помню, автоповтор или чего еще.. давно дело было, пока не мешает...
Работает стабильно.
Стабильно и с ошибкой) Из-за двойного чтения регистра ты получаешь сканкоды на 1 больше, чем они должны быть.
Alex_K же написал, как исправить. Замени последние три строчки на его две и будет счастье)

S_V_B
10.06.2019, 17:01
Удалил из исходника половину спрайтов - запустилось на реале... :(

Да поправил я клаву.. я же сказал что это последнее, что меня беспокоит :(
Задача пока стояла - влезет ли все, что я задумал или нет - выходит не влезет... возможно "кина не будет" ...

Но почему на эмуляторе работает????

AFZ
10.06.2019, 17:43
Но почему на эмуляторе работает????Может настройки системы разные? На системах с реальными дискетами, обычно, взводят такие параметры, как SET USR NOSWAP, SET EXIT NOSWAP, заранее загружают некоторые драйверы... Все это кушает память, зато позволяет работать быстрее, поскольку дискета - штука медленная. А под эмулятором это может быть не так.

hobot
10.06.2019, 17:46
Но почему на эмуляторе работает????
а на реале ты собираешь или просто готовый SAV из эмулятора прогоняешь?
попробуй собрать на реале

вопрос оформления - нельзя ли палитру по циферке 3 сохранить в системной среде и каждый раз подгружать в виде SAV файла в стартовом файле?

S_V_B
10.06.2019, 17:51
а на реале ты собираешь или просто готовый SAV из эмулятора прогоняешь?
Использую один образ, собранный кроссплатформенно..


вопрос оформления - нельзя ли палитру по циферке 3
Да без проблем, а она у тебя красно-желто-зеленая или красно-желто-голубая?
Тебе нужен SAV который такую палитру ставит?

hobot
10.06.2019, 18:02
Тебе нужен SAV который такую палитру ставит?
было бы интересно софтину аналогичную COLS.SAV, но с другим или более богатым набором цветов.
Предпочтение отдаётся яркому свечению.а не тусклому.

про библиотеку процедур спрайтовых для паскаля я молчу - у тебя там похоже разочарование временное )

- - - Добавлено - - -


Использую один образ,
ладно ладно я скоро заведу машинку - сейчас временно неудобства есть, смогу и буду проверять и у себя

S_V_B
10.06.2019, 18:05
https://yadi.sk/d/ZHvvFVTeRXCH9w

- - - Добавлено - - -

RT-11 передает аргументы командной строки?

Titus
10.06.2019, 18:10
Да поправил я клаву.. я же сказал что это последнее, что меня беспокоит
Задача пока стояла - влезет ли все, что я задумал или нет - выходит не влезет... возможно "кина не будет" ...
Отлично! Выложи диск с новой версией, посмотрю на своем эмуле.

S_V_B
10.06.2019, 18:13
Выложи диск с новой версией

https://yadi.sk/d/YeN8iFw5wgax2A

Доходит до самого верха без всяких глюков.
2,3 -GBR, GRB - забыл на палитрах скэны поправить "E" - БК11

Titus
10.06.2019, 18:44
https://yadi.sk/d/YeN8iFw5wgax2A

Доходит до самого верха без всяких глюков.
2,3 -GBR, GRB - забыл на палитрах скэны поправить "E" - БК11

Да, работает все прекрасно на эмуле.
Никаких доступов к запрещенным регистрам и командам не выявлено в консоли.

Опрос клавиатуры все же надо потом модифицировать. Сейчас, если, например, летишь вправо, потом нажимаешь любую другую клавишу, но не отпускаешь клавишу вправо, корабль вправо не летит, если не отпустить и нажать вправо заново.

S_V_B
10.06.2019, 18:55
Опрос клавиатуры все же надо потом модифицировать.
Да конечно, опять же повторюсь, что хотел все впихнуть сразу и оценить в приципе возможность портирования...
Еще много писанины, а памяти уже нет.. нужно ускорять вывод спрайтов (самое долгое это сдвиг) хотя бы корабль просчитать 2-4-6, опять память нужна..
В оригинальной программе спрайты раскиданы хаотично... возможно если проделать титанический труд - отсортировать спрайты, изменить все описания комнат, чтобы подгружать частями..
Но такими темпами на это уйдут годы... :(

Titus
10.06.2019, 19:12
Какого размера оригинальная игра, и какого сейчас у тебя?

Зачем ускорять? Игра работает сейчас у тебя весьма быстро.

Спрайты можно вообще засунуть целиком или частично в память ПП.

hobot
10.06.2019, 19:23
Использую один образ,
ладно ладно я скоро заведу машинку - сейчас временно неудобства есть, смогу и буду проверять и у себя


RT-11 передает аргументы командной строки?
через системны й вызов можно анализировать входящую команду,
например утилита COLS по команде COLS Z - запускает редактор палитры - выход с запоминанием K,
что бы при старте системы вновь загрузить набор цветов пишем COLS P.

pal11.sav - о! сейчас же надо потыкать - это прикольно )

S_V_B
10.06.2019, 19:37
Зачем ускорять?
нужно упихнуть всех в один кси, еще куча проверок..и расчетов ..будет еще чем тормозить, есть обекты которые в 5раз быстрее кораблика должны двигаться.. нужно ускорять чтобы гладко все было



Спрайты можно вообще засунуть целиком или частично в память ПП.
Вывожу спрайты из ЦП.. в ПП не хочу пихать, еще медленнее будет да и неудобно..




Какого размера оригинальная игра,
оригинальная >40 кб, у меня уже 32.. кстати после компиляции пишет,что свободно еще где-то 8кб... чтож блин ему не нравится.. мне бы 8к на математику по уши хватило...

hobot
10.06.2019, 19:41
S_V_B, по поводу командной строки
https://zx-pk.ru/threads/15587-programmirovanie-na-uknts-kak.html?p=436944&viewfull=1#post436944
и далее там по тексту

в коллекцию к себе забирай и пользуйся )
https://zx-pk.ru/threads/15587-programmirovanie-na-uknts-kak.html?p=378449&viewfull=1#post378449

Titus
10.06.2019, 19:51
Вывожу спрайты из ЦП.. в ПП не хочу пихать, еще медленнее будет да и неудобно..
Вам шашечки или ехать?
Если в итоге не влезет в ЦП, то придется в ПП.
Да и не обязательно засовывать в него быструю графику. Засунь медленную. Спрайты лабиринтов и всякого заднего фона.

hobot
10.06.2019, 19:53
к сожалению такой вариант pal11 ломает запуск игр возможно не всех и возможно только в эмуляторе )

https://pic.maxiol.com/thumbs/1560185549.787614287.20190610164639732.png (https://pic.maxiol.com/?v=1560185549.787614287.20190610164639732.png)

по цветам видно, что палитра включилась (а игра вырубилась)

S_V_B
10.06.2019, 19:59
к сожалению такой вариант pal11 ломает запуск игр возможно не всех и возможно только в эмуляторе )
Не ломает.. просто я ненужные мне цвета обнулил.. :)

- - - Добавлено - - -


Спрайты лабиринтов и всякого заднего фона.
Самое прикольное, что фон не очень много места занимает, довольно оригинально комнаты упакованы из повторяющихся тайлов 8х8.. хотя можно попробовать.. он никак на быстродействие не завязан..

hobot
10.06.2019, 20:02
Не ломает.. ты так думаешь?, запусти замок сам по себе и после загрузки pal11 )

S_V_B
10.06.2019, 20:06
И еще только сейчас заметил, что у спрайтов есть лишний фрэйм... повторяющий нулевой, я как конвертнул.. шибко не разглядывал..
Будем посмотреть.. изначально я вообще довольно скептически отнесся.. после моих первых экспериментов с графикой.. на УКНЦ :)

hobot
10.06.2019, 20:23
замок после запуска 11-й палитры )
сэйв-стэйт для UKNCBTL
http://fayloobmennik.cloud/7362892

S_V_B
10.06.2019, 20:34
exe??

Titus
10.06.2019, 23:26
exe??
Не вздумай запускать на PC)
Некоторые файлообменники - такие вирусы)

S_V_B
11.06.2019, 06:07
Да я знаю, Hobot -вредитель :)

hobot
11.06.2019, 12:28
Да я знаю, Hobot -вредитель
ты это серьёзно? я заливал gluk.uknc - обычный формат эмулятора,
файлообменник скотина !!! надо бы ссылки на него из игрушек подчистить
глюк-стейт пощупайте http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/savestateUKNCBTL/gluk.uknc

S_V_B
11.06.2019, 20:08
Я думаю проблема с паникой на реале не в моем кривом коде, а в эмуляторе GOTEK...
завтра попробую в hfe записать.
Пробовал собрать программу, в эмуляторе собирается без проблем, а на реале не хватает места на диске...

Hunta
11.06.2019, 20:13
проблема с паникой на реале не в моем кривом коде, а в эмуляторе GOTEK...
Как любят программисты всё валить на железо ;)
DIR/FREE
и регулярный
SQU