- S_V_B
-
? BASIC БК 0010-01 - 24.01.2020 18:52
Привет ВСЕМ кого давно не слышал, есть у кого инфа о внутренних структурах Васика Вильнюс (БК 0010-01), доступ к переменным из внешних ПП и.т.д.
любая информация приветствуется, заранее благодарен.
-
? gid - 24.01.2020 20:02
Надо листать журналы "Персональный компьютер БК", "Вычислительная техника и ее применение". (Или ещё куда-нибудь - в ПК БК публиковались списки статей о БК, выходившие в разных других журналах.) Иногда энтузиасты-ковыряльщики машкода писали туда заметки по этой теме. Находили точки входа разных бейсиковских функций, определяли входные параметры и как их вызывать из своих подпрограмм. Составляли таблицы всякие.
А в современных реалиях как-то собирать инфу и обобщать её никому не приходило в голову. Если займётесь этим - будете первым.
-
? S_V_B - 24.01.2020 20:37
В журналах обычно печатали очевидное..POKE,, PEEK...
Я думал у кого-нибудь за 30 лет скопилось больше :)
-
? S_V_B - 24.01.2020 20:39
ПЗУ работает быстрее.. так?
-
? S_V_B - 24.01.2020 20:45
Можно на васике написать игруху... перед этим загрузив диспетчер процессов..
Мне интересна.. область памяти... где лежат переменные
-
? S_V_B - 24.01.2020 20:48
А в Васике нажимать кнопки.. и конечно "плавучка". в которой васик и написан.
-
? BD - 25.01.2020 01:57
вашет там усё довольно понятно..
¤
https://github.com/sergev/vak-opensource/tree/master/bk/basic-vvu-1985
¤
https://github.com/sergev/vak-opensource/tree/master/bk/basic-vvu-1987
-
? S_V_B - 25.01.2020 10:20
Мысль была написать ASTEROIDS на васике (плавучка в ПЗУ).. все остальное на АСМ.
Сырцы васика я видел.. но это мало поможет в реале, интересны переживания программера.
-
? gid - 25.01.2020 12:05
переживания программера такие: ТОРМОЗА-А-А-А! Никакое ПЗУ не спасёт такую плавучку. Тем более, что алгоритмы умножения и деления плавающих чисел есть куда оптимизировать по быстродействию, но результат будет тоже далеко не в пользу реализации арифметики с фиксированной точкой.
В общем, использовать функции плавучки из ПЗУ можно, если ASTEROIDS будет пошаговой игрой, не в реальном времени.
-
? S_V_B - 25.01.2020 12:28
Ясно. Только таблицы и асм..., а хотелось чего-нибудь... "ЧБ лампового"
-
? BD - 25.01.2020 21:40
https://m.youtube.com/watch?v=5pg89nS3Uvg
¤
это? задача уместить в 4Кб чтоле? ))
-
? S_V_B - 27.01.2020 06:32
Да, что-то вроде.
-
? Alexander "Sandro" Tishin@ - 13.02.2020 19:47
S_V_B, не прокатит на процедурах из ПЗУ, они медленные до жути. Я в древние ещё времена писал преобразование Фурье на БК и очень быстро понял, что SIN()/COS() бейсиковские категорически противопоказаны.
¤
Сделай себе таблицу на 256, скажем, значений, и пользуйся. Так все делают. Можно даже на 64, засунуть туда первый квадрант и пользоваться. Скорее даже нужно.
¤
Таблицу с собой таскать не надо, она тривиально считается по алгоритму Гёрцеля: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%93%D1%91%D1%80%D1%86%D0%B5%D0%BB%D1%8F
¤
Умножать надо через таблицу квадратов, её тоже можно очень просто генерировать.
¤
В принципе, орень плавные Астероиды должны в 4К влезть с ааааагромаднейшим запасом. Но на ассемблере ;)
-
? S_V_B - 26.06.2020 10:36
Ув. Alexander "Sandro" Tishin@ ... можно кусок исходника для 16бит - хотя бы который точку который вокруг центра экрана поворачивает. (Для неофитов так сказать).
(по отдельности все вроде понятно и про таблицу квадратов, и про синусы.., а вместе херь получается) или ссылочку.. токама не на спектрум :)
Амплитуда в таблице синусов как выбирается (Для 16bit)?
Лучше пример.. (про точку) :)
-
? Manwe - 26.06.2020 17:55
Ни у кого нет желания допилить Basic-87 до совместимости с Вильнюс-86? А то там даже оператора Circle нет.
-
? Alexander "Sandro" Tishin@ - 29.06.2020 07:25
S_V_B, а что именно нужно? Код для поворота координат? Так там умножаем вектор-столбец на матрицу поворота, и всё.
¤
Мне просто код для вращения и переноса в произвольную точку привести?
-
? S_V_B - 29.06.2020 08:05
/*Так там умножаем вектор-столбец на матрицу поворота, и всё.*/
Я в курсе, я ж написал.. у меня фигня получилась.. :)
Амплитуда в таблице синусов как выбирается (Для 16bit)?
Накопление ошибки и прочие мелочи.. в теории все прекрасно.. на практике возникли вопросы..
Проще рабочий код посмотреть.. точка вокруг центра = перенос + вращение, все встанет на свои места :)
Заранее благодарен.
-
? S_V_B - 29.06.2020 08:18
Косинус и синус в одной таблице (на один полупериод больше), потом смещение делаем?
Где-то я что-то упустил. (нужно же в таблице учесть что бы умножать проще было).
С double и float все гораздо проше.
Думал про CORDIC но наверное для БК это слишком.
-
? Alexander "Sandro" Tishin@ - 07.07.2020 11:41
Ну да, в одной таблице. Выложу попозже, просто я занят сейчас. Всё равно же для своих целей уже написал, почему бы не выложить-то?
¤
256 возможных углов хватит?
-
? S_V_B - 07.07.2020 15:38
256 возможных углов хватит?
Вполне, главное принцип :)
-
? Alexander "Sandro" Tishin@ - 07.07.2020 22:04
Принято. Соберу потихоньку. Кстати. Сейчас схожу за пивом, и попробую общественности задать вопрос, накопилось у меня.
¤
PS: CORDIC действительно перебор, для наших целей он слишком дорог. Я делал оценку, не надо с ним связыватся. Алгоритм хороший, но для Астероидов и т.д. -- это реально перебор.
-
? S_V_B - 16.07.2020 14:06
/*Принято. Соберу потихоньку*/
Не получилось?
-
? S_V_B - 20.07.2020 18:39
/* Alexander "Sandro" Tishin@ */
Пока отпуск.. дай хоть что-нибудь... буду вкуривать и осмысливать (на пляже) :)
-
? Alexander "Sandro" Tishin@ - 25.07.2020 18:51
Прошу прощения, упал в полный загруз, было не до того.
¤
В общем, сшил чудо Франкенштейново из кусков, которые у меня нашлись. Оно глючное, но работает как-то ;)
¤
https://yadi.sk/d/6oQGmhbUm43skw
¤
Убегаю опять...
-
? Alexander "Sandro" Tishin@ - 25.07.2020 20:59
Забыл предупредить, у меня там косяк -- при повороте вектор укорачивается в 4 раза. Где-то с позицией дробной части ошибся. Просто сейчас нет времени разбираться. Потом починю.
¤
Но раз была просьба выложить посмотреть -- поэтому и выложил.
-
? S_V_B - 26.07.2020 16:27
Спасибо огромное, буду разбираться.
- << Форум