Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gorg64_spkplay и Оберон #26

Open
galaxysite opened this issue May 6, 2024 · 2 comments
Open

gorg64_spkplay и Оберон #26

galaxysite opened this issue May 6, 2024 · 2 comments

Comments

@galaxysite
Copy link

Попробовал написать свой проигрыватель для стандартного динамика на Обероне.
Декларации для типа Word нашёл, запись сделал, но дальше возникли одни вопросы как сделать ряд вещей. На самом деле плеер невелик по размеру кода, но по системной сложности выше обычного. Ему нужны ioperm, доступ к портам, системные вызовы, обработка сигналов. На доступе к портам уже не нашёл решения. Но может быть к этому не готов сам Оберон в текущей версии ? Или я чего-то не понял ?

https://github.com/galaxysite/gorg64_spkplay
Здесь есть версии на Паскале, ассемблере и Си.
Также есть весь органайзер с этим плеером: http://soft.self-made-free.ru/GORG64_166.tar.xz

Если же он реализуем на Обероне может быть включить его в качестве примера использования наряду с hello и animations. Явно этого не хватает. Сигналы, порты и системные вызовы нужны всегда.

@AntKrotov
Copy link
Owner

Теоретически, конечно, можно сделать, если это возможно на Паскале. Но это будет не очень просто. Я смотрю, в Паскале используются процедуры на асме, значит на Обероне придется писать соответствующие процедуры в маш. кодах. Для системных вызовов Linux есть процедура syscall в модуле LINAPI. Как использовать .so - библиотеки, можно посмотреть в том же "animation".

@galaxysite
Copy link
Author

Ну да, я так и понял, что это не просто. В Си есть для этого outb, в Паскале написано на асме, в старых досовских Паскалях был некий массив ports. Трудно понять как это состыковывается с Обероном. Тогда попробую написать на первый случай вариант, работающий через системные вызовы и патч ядра. Спасибо за ответ !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants