Как начать разработку под KolibriOS?

Applications development, KoOS API questions
  • Скачать себе репозиторий SVN и посмотреть на примеры программ :)
  • 1) asmworld.ru - классный сайт-учебник под fasm
    2) файл example.asm на /rd/1/ - что бы понять структуры приложений на колибри
    3) прога DockPack > Sysfuncr.txt - список стандартных функций на колибри
  • Для попытки первого погружения вполне подходят выпуски e-zine Электронный журнал "Вестник КолибриОС", которые были выпущены в количестве трех номеров. К сожалению в дальнейшем, как обычно случается, "энтузазизм" участников заглох.

    Взять можно как в составе архива "Kolibri 0.7.7.0 Средства разработчика (SDK)" http://kolibrios.org/ru/releases (расположено в kolibri_0.7.7.0_sdk.7z\articles\e-zine)
    Так же я залил в свою директорию на FTP, как в текстовом виде, так и в сжатом в единый архив ftp://ftp.kolibrios.org/users/Mario/e-zine/
    Ну, и для самых ленивых размещу архив прямо в этом сообщении:
    e-zine.7z (56.39 KiB)
    Downloaded 433 times
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Литература по программированию на Assembler на twirpx

    P.S. Что из этого, в первую очередь, наиболее интересно и практично для скачивания и прочтения?
  • Фактически нет примеров по реализации "типовых" задач на ассемблере на ресурсе
    Rosetta_Code
    для сравнения и изучения с реализацией на обычных языках.

    P.S. C-- тоже не увидел .
  • Еще можно попробовать делать новеллы средствами Condition Script.
    The motto of the wise is: be prepared for surprised http://vlampochke.esy.es/
  • ppk-center wrote:Еще можно попробовать делать новеллы средствами Condition Script.
    Именно для этих целей я и начал разработку TextGame
    to infinity and beyond
  • Посмотрел бегло статистику использования команд процессора в kernel, drivers, programs директориях
    Основные используемые команды ветвления с прямой логикой (без частцы не, с частицей не однофлаговые переходы )

    Code: Select all

    JA (U>), JAE (U>=) JB,JC (U<) JBE (U<=) ветвления при беззнаковых числах  
    JE,JZ (= , 0=)  JNE,JNZ (<>/ <>0) JNS (+sign) JS (-sign) JP (чётное число бит)  
    JG (>) JGE (>=) JL (<) JLE (<=)  ветвления при знаковых числах  
    
    Другие варианты команд ветвлений фактически не используются JNAE JNA JNB JNBE JNG JNGE JNL JNLE JNO JNP JO JPE JPO

    P.S. В "чёрном" списке много неиспользуемых других команд (например битовых и др.)
    Вопрос: Есть рекомендации не использовать какие то команды (например XLAT , BOUND, ENTER LEAVE и др.) или это только субъективный опыт программирования на ассемблере X86 и накладываемые особенности Колибри? У кого какой "рейтинг" по применению команд X86 для "типовых" случаев?

    Понравилось такое описание системы команд (но вроде оно не полное. Не увидел, например, команду CMOVG)
    Описание системы команд микропроцессоров Intel
  • Таки закончил хеллоуворлд, заброшенный еще 4 месяца назад.
    https://drive.google.com/file/d/0B4jkCp ... sp=sharing
    Если у кого-то не пойдет/зависнет/слетит_все_к_фигам, то это вполне ожидаемо, ибо не тестировалось нигде, кроме как у меня в Virtualbox.

    Приятной игры.
  • Образ не запускается, файл RnJ1 не запускается (если это бинарник, почему бы его не ужать с помощью kpack'a?).
    Из хаоса в космос
  • А можно содержимое лога?

    Скачал сегодняшний билд Колибри. Еще раз перепроверил. Образ прекрасно подключается как к Qemu, так и к Virtualbox.
    Для Qemu такой батник:
    qemu-system-i386.exe -L . -m 128 -fda Snake_640x480_x86_KolibriOS.ima -cdrom KolibriOS_rev5781.iso -boot d -localtime -vga vmware -net nic,model=rtl8139 -net user -soundhw ac97 -usb -usbdevice tablet
    Насколько помню в Qemu у меня не получалось поключить лайв-дискету и дискету с данными одновременно. Поэтому нужен образ лайвсиди.
    А еще в Qemu сильно тормозит и с управлением косяки (запускается, но неиграбельно). Поэтому лучше в VirtualBox.

    Для Virtualbox:
    Носители
    Контроллер: IDE
    Вторичный мастер IDE: [Оптический привод] KolibriOS_rev5781.iso (52,55 МБ)
    Контроллер: Floppy
    Флоппи привод 0: Snake_640x480_x86_KolibriOS.IMA

    На дискете находятся:
    RnJ1 - исполняемы файл
    Main.lua - стартовый скрипт
    log.log - мой старый лог. Он не нужен. После запуска появится новый.
    mods - папка с играми.

    Для запуска необходимо, чтобы RnJ1, Main.lua и mods находились в одной директории. Я пробовал только с дискеты запускать. Как оно будет работать где-то в другом месте я не знаю.
  • Запустил.
    1. Почему RnJ1 так много занимает? Что в нем?
    2. Почему бы не использовать kpack для бинарника?
    3. Очень кривое окно.
    4. По нажатию Esc все зависает.
    Из хаоса в космос
  • 1. Много всего. SDL, freetype, libpng, zlib, Lua и т. д. Это все мне пригодится. В рамках портирования движка, зависимости перекочевали с винды, благо добрые люди портировали в Колибри все, что мне нужно. Как-нибудь покажу виндовую версию движка.
    2. Не слышал о таком. Знаю, что у сообщества KolibriOS идеология гласит делать приложения, как можно меньше. Я не фанат оси, я всего лишь кодер. Сори, мне не принципиально. Обязательно подумаю над этим как-нибудь, но не сейчас.
    4. Да, есть такое. SDL под колибри, видимо, не умеет закрывать окно. Что-нибудь придумаю.

    Leency, благодарю за внимание.

    P. S. Все-таки, не рекомендую никому запускать в Qemu. Ужасно все лагает.
  • В рамках удовлетворения моего любопытства, как работает SDL на Колибри, адаптировал еще одну свою старую игрушку. Игра про машинки.
    Скрин:
    Spoiler:Image
    Суть:
    Spoiler:Вы управляете машинкой. У машинки отказали тормоза. Более того, она постоянно набирает скорость. Единственный шанс уцелеть - это ждать, пока не кончится топливо. Хорошая новость - топлива в бензобаке хватит всего на 2 минуты. Попробуйте продержаться все это время не разбив в хлам машинку.

    Стрелками влево и вправо меняйте позицию машинки. Ширина дороги - 4 машинки, т. е. вам надо постоянно перемещаться между этими четырьмя позициями.

    Помимо вашей машинки, на дороге присутствует 2 типа машин, несущихся вам на встречу - цветные и белые с полосками.

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

    Это все, что касается цветных машинок. В игре есть еще белые машинки с полосками на крыше - это ремонтные машинки. Столкновение с ними восстанавливает 1/4 здоровья и снижает вашу скорость на 5 км/ч.

    Скорость цветных машинок фиксированная и зависит от цвета. Скорость белой машинки может быть различной и составляет половину скорости вашей машинки на момент появления.
    Взять можно здесь:
    https://drive.google.com/file/d/0B4jkCp ... sp=sharing

    MessageBox'ы в Колибри я пока не осилил, поэтому в аварийной ситуации, программа все-так же молчаливо завершится. По совету Leency хотел было ужать KPACK'ом. Получилось, и размер стал 208К. Но вот беда, WinImage отказался запихивать в образ пожатый исполнимый файл. Либо лыжи не едут, либо я чего-то не понимаю. Окно по-прежнему кривое.
    Игра тормозит (у меня падение fps до 15-16). Это я накосячил. Но играть можно (на Virtualbox, не на Qemu).

    Приятной игры.
  • Who is online

    Users browsing this forum: No registered users and 9 guests