Перейти к содержимому

Bs0Dd

Пользователи
  • Публикации

    124
  • Зарегистрирован

  • Посещение

  • Победитель дней

    44

Все публикации пользователя Bs0Dd

  1. На досуге приперло мне написать игрульку. Простенькую, но интересную. Генератор идей у меня фиговый, потому решил подыскать уже существующую несложную игрушку (опенсорсную), да перенести ее на OC. Мне подвернулась игра ВычВыжПром, написанная на Java одной группой. За неделю я практически полностью перенес ее на Lua (пару моментов пришлось упростить ввиду хилой мощности компов). Цель данной игры проста: у нас есть выжигатель, контроллер и некоторое количество заданий. Нужно программировать контроллер для выжигания узора, показанного в задании, располагая небольшим набором команд Assembler-а. Минимальные системные требования: Видеокарта и Монитор - Уровень 3 (160x50 символов, 256 цветов) Процессор - Уровень 1 ОЗУ Память - Не менее 1.5 Mb (Уровень 3 x2) Жесткий диск - Не менее 95 Kb свободного места Установка: pastebin run nw0FNGjr Игра также доступна в MineOS App Market Репозиторий на GitHub
  2. Неплохо так живем. Если выставить тип у монитора через менюшку, не выключая комп То от смены монитора наша видео карточка нехило так разгоняется и начинает работать как карта равного монитору уровня Таким образом мы можем "погнать" худосочную 1000 Х до уровня самой 3000 Х, нехилый такой профит)))) P.S.: после перезагрузки компа разгон слетает, но его можно воспроизвести снова))))
  3. Мод Computronics существует уже более 5 лет. Однако почему-то и по сей день нет ни одной более-менее рабочей файловой системы для кассет из этого мода. Будем исправлять ситуацию))) На сей раз я и представляю вашему вниманию файловую систему для этих самых кассет. TapFAT (Tape File Allocation Table) является функционально полной ФС с возможностью фрагментированного хранения данных. Первые идеи о написании ФС для кассет меня посетили еще в октябре, но время появилось лишь к концу декабря, тогда же я начал обдумывать основу системы. К январю начал писать основную библиотеку, вспомогательные утилиты, отлавливал баги, оптимизировал и упорядочивал код. Наконец, к июню месяцу готова первая версия драйвера. ПРЕДУПРЕЖДАЮ! Файловая система - вещь сложная и довольно серьезная. Я постарался устранить все обнаруженные баги, но не исключено, что некоторые могли проскользнуть мимо глаз. Поэтому я не несу ответственности за порчу данных на кассете в следствии сбоя драйвера. Сохраняя данные на кассетах вы действуете на свой страх и риск! Скажу сразу, ФС довольно медленная (виной тому буферы в операционках, ибо запись на кассету больших и мелких кусков занимает, как ни странно, одинаковое количество времени), поэтому она больше подходит для архивации данных. Учитывая, что самая крутая кассета дает нам около 30МБ, туда можно заархивировать очень много информации (не знаю, нужно ли кому столько). Первые 8КБ кассеты зарезервированы под саму таблицу FAT. Она представляет собой обычную сериализоваyную таблицу Lua, которую при желании можно сжать двумя способами, поскольку она немного не экономична. Так при разных режимах в 8КБ таблицы может уместиться: Без сжатия - около 150 файлов Сжатие LZSS - около 580 файлов Сжатие Картой Данных - около 720 файлов Также можно сэкономить пространство таблицы, отключив хранение даты изменения файла, в таком случае все записанные файлы будут иметь дату изменения 0 (т.е. 00:00:00, 1 Января 1970 года). Краткое руководство: Загрузка ОС с кассет: Установка: pastebin run Tq3hbpaz Драйвер также доступен в MineOS App Market Репозиторий на GitHub Планы на будущее: Нормальное кодирование таблицы Шифрование таблицы. Сжатие и шифрование файлов. Ускорение работы файловой системы
  4. А ты хоть смотрел, как работает эта "файловая система"? Если глянуть в код, сразу становится ясно, что это ФС-заглушка. При монтировании у нас будет только файл "data.raw", создать другие или удалить этот мы не можем. А сам data.raw - и есть кассета. Библиотека просто даёт возможность использовать кассету как файл, который можно читать/писать в него обычными программами. Поэтому, несмотря на название, "tapefs" файловой системой не является. Я вообще удивился отсутствию кассетных ФС, поскольку не смог найти ни одной. Потому пол года назад и начал делать свою. Ну почему же? Велосипеды в программировании - частая практика на самом деле. Суть в том, что у каждой программы-велосипеда есть свои плюшки и недочеты. То, что не нравится в программе одним людям, может понравиться другим, поэтому наличие программ-конкурентов это хорошо. Не зря же кому-то хорошо ездить на велосипеде "MacOS", кто-то не представляет своей жизни без велосипеда "Windows", а кто-то так вообще гоняет на велосипеде "Linux", но при этом все они, зачастую, ненавидят велосипеды друг друга по определённых причинам.
  5. Ну а пока, дабы доказать выше сказанное, вот небольшой ролик-демка. Увы, ФС скорее всего в итоге и будет такой медленной (дело в буферах, которые использует так же OpenOS), но вообще, как альтернатива жестким дискам кассеты и не ставятся. Зато ФС отлично подойдет для бэкапа файлов))))
  6. https://github.com/fnuecke/oc2 Репозиторий будущей версии
  7. Они кстати, уже успели перейти в разряд готового браузера, но заниматься его улучшением мне совершенно некогда по причине учебы, а потом наверняка что-то другое навалится... Кстати, если уж хочется крутить реальные веб-страницы, это вам в OpenComputers II (который еще не готов, но что-то делать уже можно). Там RISC-V, Линукс, помимо Луа можно много на чем писать, но атмосфера уже немного не та...
  8. Ну а у меня уже имеется без пяти минут готовая файловая система. Нужно только как-то сделать упаковку самой таблицы, ибо в текущем виде 8кб под файловую таблицу хватает на файлов 50, не более того. Задержка безблочного чтения/записи около 18мс. Так что возможно скоро выложу)))
  9. Ну в данном случае речь была о написании простых программ на C, C++ (Lua в таких машинах использовать не очень удобно, да и работает он тут, ИМХО, медленнее оригинального OC), не требующих API. Вернее о том, что нужно для их написания и как этим пользоваться. Ибо я, за отсутствием руководств, столкнулся с кучей проблем при сборке (с которыми, помимо меня, пришлось разбираться fingercomp-у и другим старожилам), поэтому и думаю, что руководство в таких вещах не помешает. Особенно учитывая, что модом могут заинтересоваться не только умные дядьки, но и обычные игроки, желающие поковыряться в моде, но не умеющие в программистские пляски с бубном)).
  10. Да уж не на днях. Судя по датам он давно над ней работает))). Кстати есть идейка - я немного разобрался с модом и собрал для него пару программок, поэтому хочу как-нибудь позднее написать пару RAW-статеек по программированию для мода. Думаю процесс создания программ под OC2 к финальной версии не сильно изменится. Если кому интересно - все лежит на ГитХабе)).
  11. Все очень просто local library = require("library") В функции require пишется имя библиотеки без расширения, но сама либа должна лежать в одном из определенных мест, иначе будет ошибка импорта: В самой либе можно создать таблицу, натолкать в нее нужных функций и return <tablename> Подробнее лучше прочитать какой-нибуть мануал про библиотеки P.S.: Я не уверен, стоит ли настолько заморачиваться ради небольшой програмки. Думаю достаточно просто вынести функции в начало программы.
  12. Теоретически это возможно, если речь о установщике. Но не на одну дискету, а на три-четыре + потребуется написать отдельный установщик, читающий файлы с дискет. А если речь про использование с дискеты, то ответ очевиден: НЕТ, НЕТ, и еще раз НЕТ.
  13. Ну да, точнее в OCIF (поддержка версий 5-7), он, все же, более адаптирован под особенности видеосистемы в OpenComputers. И bmp24, имхо, сыроват, он не всегда корректно открывает BMP файлы. Да и размер у них выше, что не очень эффективно, учитывая малые размеры жестких дисков и весьма ограниченную ОЗУ.
  14. Кстати в качестве движка для браузера можно взять NyaDraw, по сути тот же Screen из Майноськи, но спокойно работает под OpenOS без зависимостей. Быстро рендерит странички (переносил я его изначально как часть своего браузера), позволяет рисовать фигуры, и (хе-хе) поддерживает картинки, так что браузеру их нужно только распарсить, вытянуть, и скормить движку. Ну и памяти он ест не сильно много))))
  15. Новая версия! После перекапывания кода, применения сатанинских заклинаний минификации и LZSS сжатия, программу удалось ужать до размеров EEPROM (и даже еще полтора килобайта осталось)! Поэтому теперь это полноценный кодовый замок, требующий минимум оборудования Единственное условие: процессор должен быть в режиме Lua 5.3, иначе программа не заработает!
  16. Никто не мешает портировать ее в OpenOS. Я так систему буферизации графики без проблем перенес с Майноськи, вот что вышло. Потому наверняка не проблема и сам GUI переделать под другую OS.
  17. Ну для начала будьте добры исходники запускаемой программы Похоже где-то происходит вызов пустой переменной. Без кода точно никто не скажет, тут не ванги.
  18. Да, сделать это несложно и пользы от рисования псевдографическими символами больше. Нет растягивания, отрисовка происходит в два раза быстрее (ведь за один раз мы рисуем сразу два пикселя), можно рисовать картинки разрешением до 160х100. Слева обычная отрисовка от ov3rwrite, справа полупиксельная от меня Кстати о картинках в 160х100 Код тут: https://pastebin.com/pVr3dkXZ Пы.Сы.: Всплыли неприятные глюки при обработке данных (я за BMP не шарю, так что оставляю это на более опытных) Картинка рисуется в отзеркаленном виде Поправил в коде Если создать картинку разрешением меньше экранного, то ее перекорежит Оба глюка присутствуют в исходной программе, картинки делал в PS7.0 и Paint-е, разницы никакой
  19. Да, пожалуй, нужно обозначить. Пока что в планах: Прикрутить скрипты. Наверное будет что-то Lua-подобное, но нужно как-то организовать ограниченную среду, чтоб через браузер нельзя было, например, потереть файлы или повесить компьютер через while true do os.sleep() end Если получится сделать скрипты, можно сделать и строки ввода. Ввел текст и передал его скрипту для, например, отправки на сервер или каких-то внутренних расчетов Немножко расширить функционал самого браузера, там, история (в пределах сеанса), закладки, еще что-нибудь. Можно и настройку сделать в самом браузере, дабы не лазить редактором в конфиг У меня сейчас серьезный учебный завал, поэтому пока хочу немного отодвинуть это дело в сторонку, с короткими ковыряниями А насчет WYSIWYG, кстати, хорошая идея, а то я конкретно наморочился, "рисуя" странички в Notepad++.
  20. А почему б и нет. В теории можно парсить страницу и превращать ее в подобные объекты в NFPL, но Нужно сделать конвертацию картинок в OCIF и резать их по разрешению, ибо даже при невысоких разрешениях отрисовка существенно замедляется Нужно рассчитывать координаты объекта, ибо NFPL - координатно ориентированный язык и каждый объект имеет свои координаты NFPL пока не подразумевает наличие скриптов (однако Lua-подобные скрипты планируются) поэтому пока что страницы будут исключительно статичные В остальном, в принципе, ничего невыполнимого нет, хоть на ходу их конвертировать на сервере (получится туннель HTML-NFPL), но я в HTML не слишком специалист, поэтому сам заниматься этим не буду. Так что если кто хочет - мануал по языку в шапке есть, дерзайте!
  21. Почти с месяц назад я представил во флудилке пару скриншотов разрабатываемого мной браузера и приличному количеству людей оно тогда понравилось. Поэтому сегодня, спустя пол года кодинга, нескольких переходов с одного движка на другой и кучи потраченных нервов я могу наконец представить его вам. Знакомьтесь, Memphisto. Примите во внимание, что браузер находится в тестовой стадии, еще предстоит сделать много всего, поэтому возможно наличие неприятных багов (два глаза все не отловят). Основные характеристики: Используется движок NyaDraw, который является портом движка Screen из MineOS. Поэтому браузер весьма быстро (для таких ПК) отрисовывает и прокручивает страницы. Для страниц используется язык NFPL, специально разработанный с учетом особенностей OpenComputers. Поддержка гиперссылок, загрузочных ссылок, рисование векторной графикой и многое другое. Поддержка картинок формата OCIF5-8. А так же их использование в качестве графических ссылок. Возможность просматривать страницы оффлайн, то есть с жесткого диска (полезно при написании страниц). Для поднятия своего сайта достаточно обычного HTTP(S) сервера. Системные требования: Процессор: Уровень 1. Видеокарта: Уровень 3. ОЗУ: 1Мб или больше. Жесткий диск: не меньше 52Кб свободного места. Интернет карта Скачать: pastebin run EUZQRkwF Репозиторий на GitHub Полезное: Руководство по языку NFPL (Network Formatted Page Language). Первый NFPL сайт - bs0dd.github.io (запущен в тестовом режиме). Руководство по графическому движку NyaDraw. Увы, одного человека слишком мало для реализации задуманного, поэтому ищутся люди, хорошо понимающие в Lua, которые смогут помочь в устранении багов и расширении функционала как языка NFPL так и браузера для него.
  22. Самая последняя, что портировал с MineOS. Просто стало интересно, метод вроде упоминается, а в самой библиотеке его нет Дак вот и мне так приходится извращаться, но при написании страничек (для браузера, что я показывал) это создает дополнительные проблемы, ибо нужно просчитывать координаты смещения и вбивать их руками, а при изменении страницы кучу раз потом менять значения... вот и хотелось бы это упростить, ну, значит, не судьба
  23. Кстати, а где он? Не вижу такого метода ни в старом ни в новом движке, но он бы мне сильно пригодился))
  24. Под этим именем у меня лежит обычный Screen.lua , сохранил так для удобства. Да, как оказалось проблема была в старом image, поэтому пришлось выдергивать оный из состава MineOS, долго ругаться за кучу зависимостей от библиотек этой оськи, выдергивать нужное и делать "подсистему" с требуемыми функциями (с учетом всяких упрощений их оказалось не так много, но возни это доставило). Зато все заработало, и кроме библиотеки color image-у больше ничего не нужно)))
  25. Я после чтения мануала по старой либе в январе пытался адаптировать новую, но что-то она не хочет есть картинки, падает. Повозился тогда, плюнул, да отложил на потом, никак не пойму что там не сходится
×
×
  • Создать...