Bs0Dd
-
Публикации
124 -
Зарегистрирован
-
Посещение
-
Победитель дней
44
Сообщения, опубликованные пользователем Bs0Dd
-
-
Неплохо так живем.
Если выставить тип у монитора через менюшку, не выключая комп
То от смены монитора наша видео карточка нехило так разгоняется и начинает работать как карта равного монитору уровня
Таким образом мы можем "погнать" худосочную 1000 Х до уровня самой 3000 Х, нехилый такой профит))))
P.S.: после перезагрузки компа разгон слетает, но его можно воспроизвести снова))))
-
2
-
1
-
-
Мод Computronics существует уже более 5 лет. Однако почему-то и по сей день нет ни одной более-менее рабочей файловой системы для кассет из этого мода. Будем исправлять ситуацию)))
На сей раз я и представляю вашему вниманию файловую систему для этих самых кассет.
TapFAT (Tape File Allocation Table) является функционально полной ФС с возможностью фрагментированного хранения данных.
Первые идеи о написании ФС для кассет меня посетили еще в октябре, но время появилось лишь к концу декабря, тогда же я начал обдумывать основу системы. К январю начал писать основную библиотеку, вспомогательные утилиты, отлавливал баги, оптимизировал и упорядочивал код. Наконец, к июню месяцу готова первая версия драйвера.
ПРЕДУПРЕЖДАЮ! Файловая система - вещь сложная и довольно серьезная. Я постарался устранить все обнаруженные баги, но не исключено, что некоторые могли проскользнуть мимо глаз. Поэтому я не несу ответственности за порчу данных на кассете в следствии сбоя драйвера. Сохраняя данные на кассетах вы действуете на свой страх и риск!
Скажу сразу, ФС довольно медленная (виной тому буферы в операционках, ибо запись на кассету больших и мелких кусков занимает, как ни странно, одинаковое количество времени), поэтому она больше подходит для архивации данных. Учитывая, что самая крутая кассета дает нам около 30МБ, туда можно заархивировать очень много информации (не знаю, нужно ли кому столько).
Первые 8КБ кассеты зарезервированы под саму таблицу FAT. Она представляет собой обычную сериализоваyную таблицу Lua, которую при желании можно сжать двумя способами, поскольку она немного не экономична. Так при разных режимах в 8КБ таблицы может уместиться:
- Без сжатия - около 150 файлов
- Сжатие LZSS - около 580 файлов
- Сжатие Картой Данных - около 720 файлов
Также можно сэкономить пространство таблицы, отключив хранение даты изменения файла, в таком случае все записанные файлы будут иметь дату изменения 0 (т.е. 00:00:00, 1 Января 1970 года).
Краткое руководство:
Скрытый текстЗапуск драйвера
1. Запустите инсталлятор командой
2. Установите файлы драйвера
3. Для инициализации драйвера и монтирования стримеров пользуйтесь утилитой tfatinit
4. Рекомендуется прописать ее в файл .shrc для автоматического запуска при загрузке ОС
Подготовка кассеты
Для работы с кассетой сначала следует отформатировать ее
1. Запустите утилиту tfattool
2. Выберите пункт Format tape
3. Затем пункт Quick format
4. Подтвердите форматирование
5. Теперь кассета готова для записи файлов на нее
Утилита tfattool также способна изменять параметры привода, отображать базовую информацию о кассете, изменять ее имя и выборочно демонтировать приводы.
Помимо стандартного filesystem API, драйвер предоставляет дополнительные функции. Подробнее о них можно почитать тут.
Загрузка ОС с кассет:
Скрытый текстЕсли вы особый мазохист и хотите использовать кассету вместо жесткого диска, тогда вам поможет DiskTape Lua BIOS. Подробнее тут.
Установка: pastebin run Tq3hbpaz
Драйвер также доступен в MineOS App Market
Планы на будущее:
- Нормальное кодирование таблицы
- Шифрование таблицы. Сжатие и шифрование файлов.
- Ускорение работы файловой системы
-
12
-
13 часа назад, VyaCHACHsel сказал:а это основано на библиотеке tapefs?
А ты хоть смотрел, как работает эта "файловая система"? Если глянуть в код, сразу становится ясно, что это ФС-заглушка. При монтировании у нас будет только файл "data.raw", создать другие или удалить этот мы не можем. А сам data.raw - и есть кассета. Библиотека просто даёт возможность использовать кассету как файл, который можно читать/писать в него обычными программами. Поэтому, несмотря на название, "tapefs" файловой системой не является. Я вообще удивился отсутствию кассетных ФС, поскольку не смог найти ни одной. Потому пол года назад и начал делать свою.
13 часа назад, VyaCHACHsel сказал:Если нет, не надо изобретать велик.
Ну почему же? Велосипеды в программировании - частая практика на самом деле. Суть в том, что у каждой программы-велосипеда есть свои плюшки и недочеты. То, что не нравится в программе одним людям, может понравиться другим, поэтому наличие программ-конкурентов это хорошо. Не зря же кому-то хорошо ездить на велосипеде "MacOS", кто-то не представляет своей жизни без велосипеда "Windows", а кто-то так вообще гоняет на велосипеде "Linux", но при этом все они, зачастую, ненавидят велосипеды друг друга по определённых причинам.
-
4
-
-
Ну а пока, дабы доказать выше сказанное, вот небольшой ролик-демка. Увы, ФС скорее всего в итоге и будет такой медленной (дело в буферах, которые использует так же OpenOS), но вообще, как альтернатива жестким дискам кассеты и не ставятся. Зато ФС отлично подойдет для бэкапа файлов))))
-
3
-
-
11 минуту назад, Krutoy сказал:Где об этом почитать?
https://github.com/fnuecke/oc2
Репозиторий будущей версии
-
3 часа назад, Krutoy сказал:посмотрев наработки @Bs0Dd
Они кстати, уже успели перейти в разряд готового браузера, но заниматься его улучшением мне совершенно некогда по причине учебы, а потом наверняка что-то другое навалится...
Кстати, если уж хочется крутить реальные веб-страницы, это вам в OpenComputers II (который еще не готов, но что-то делать уже можно). Там RISC-V, Линукс, помимо Луа можно много на чем писать, но атмосфера уже немного не та...
-
В 14.05.2021 в 12:04, VyaCHACHsel сказал:У меня есть уже своего рода концепт.
Ну а у меня уже имеется без пяти минут готовая файловая система. Нужно только как-то сделать упаковку самой таблицы, ибо в текущем виде 8кб под файловую таблицу хватает на файлов 50, не более того. Задержка безблочного чтения/записи около 18мс. Так что возможно скоро выложу)))
-
48 минут назад, hohserg сказал:там написано, что щас не рекомендуется юзать апи)
Ну в данном случае речь была о написании простых программ на C, C++ (Lua в таких машинах использовать не очень удобно, да и работает он тут, ИМХО, медленнее оригинального OC), не требующих API. Вернее о том, что нужно для их написания и как этим пользоваться. Ибо я, за отсутствием руководств, столкнулся с кучей проблем при сборке (с которыми, помимо меня, пришлось разбираться fingercomp-у и другим старожилам), поэтому и думаю, что руководство в таких вещах не помешает. Особенно учитывая, что модом могут заинтересоваться не только умные дядьки, но и обычные игроки, желающие поковыряться в моде, но не умеющие в программистские пляски с бубном)).
-
2
-
-
7 часов назад, hohserg сказал:Оказывается, Сангар на днях работал над новой версией ОС
Да уж не на днях. Судя по датам он давно над ней работает))).
Кстати есть идейка - я немного разобрался с модом и собрал для него пару программок, поэтому хочу как-нибудь позднее написать пару RAW-статеек по программированию для мода. Думаю процесс создания программ под OC2 к финальной версии не сильно изменится.
Если кому интересно - все лежит на ГитХабе)).
-
4
-
3
-
-
28 минут назад, red2211 сказал:Не подскажете как реализовать что-то типу import в python, чтобы вынести все функции в отдельный файл?
Все очень просто
local library = require("library")
В функции require пишется имя библиотеки без расширения, но сама либа должна лежать в одном из определенных мест, иначе будет ошибка импорта:
В самой либе можно создать таблицу, натолкать в нее нужных функций и return <tablename>
Подробнее лучше прочитать какой-нибуть мануал про библиотеки
P.S.: Я не уверен, стоит ли настолько заморачиваться ради небольшой програмки. Думаю достаточно просто вынести функции в начало программы.
-
1
-
-
40 минут назад, sasha сказал:а можно записать MineOS на дискету?
Теоретически это возможно, если речь о установщике. Но не на одну дискету, а на три-четыре + потребуется написать отдельный установщик, читающий файлы с дискет. А если речь про использование с дискеты, то ответ очевиден: НЕТ, НЕТ, и еще раз НЕТ.
-
1
-
-
1 минуту назад, ov3rwrite сказал:Картинки же в .pic?
Ну да, точнее в OCIF (поддержка версий 5-7), он, все же, более адаптирован под особенности видеосистемы в OpenComputers. И bmp24, имхо, сыроват, он не всегда корректно открывает BMP файлы. Да и размер у них выше, что не очень эффективно, учитывая малые размеры жестких дисков и весьма ограниченную ОЗУ.
-
1
-
-
Кстати в качестве движка для браузера можно взять NyaDraw, по сути тот же Screen из Майноськи, но спокойно работает под OpenOS без зависимостей. Быстро рендерит странички (переносил я его изначально как часть своего браузера), позволяет рисовать фигуры, и (хе-хе) поддерживает картинки, так что браузеру их нужно только распарсить, вытянуть, и скормить движку. Ну и памяти он ест не сильно много))))
-
1
-
1
-
1
-
-
Новая версия!
После перекапывания кода, применения
сатанинских заклинанийминификации и LZSS сжатия, программу удалось ужать до размеров EEPROM (и даже еще полтора килобайта осталось)!Поэтому теперь это полноценный кодовый замок, требующий минимум оборудования
Единственное условие: процессор должен быть в режиме Lua 5.3, иначе программа не заработает!
-
4
-
1
-
-
7 часов назад, antonn3312578859 сказал:ну да, но хотелось бы видеть её в OpenOS
Никто не мешает портировать ее в OpenOS. Я так систему буферизации графики без проблем перенес с Майноськи, вот что вышло. Потому наверняка не проблема и сам GUI переделать под другую OS.
-
Ну для начала будьте добры исходники запускаемой программы
Похоже где-то происходит вызов пустой переменной. Без кода точно никто не скажет, тут не ванги.
-
Да, сделать это несложно и пользы от рисования псевдографическими символами больше. Нет растягивания, отрисовка происходит в два раза быстрее (ведь за один раз мы рисуем сразу два пикселя), можно рисовать картинки разрешением до 160х100.
Слева обычная отрисовка от ov3rwrite, справа полупиксельная от меня
Кстати о картинках в 160х100
Код тут: https://pastebin.com/pVr3dkXZ
Пы.Сы.: Всплыли неприятные глюки при обработке данных (я за BMP не шарю, так что оставляю это на более опытных)
-
Картинка рисуется в отзеркаленном видеПоправил в коде - Если создать картинку разрешением меньше экранного, то ее перекорежит
Оба глюка присутствуют в исходной программе, картинки делал в PS7.0 и Paint-е, разницы никакой
-
4
-
-
1 минуту назад, AtomicScience сказал:Я бы помог, например, но что делать - непонятно. Стоит обозначить фронт работ.
Пока попробую сделать что-то вроде WYSIWYG-редактора, может, получится чего
Да, пожалуй, нужно обозначить.
Пока что в планах:
- Прикрутить скрипты. Наверное будет что-то Lua-подобное, но нужно как-то организовать ограниченную среду, чтоб через браузер нельзя было, например, потереть файлы или повесить компьютер через while true do os.sleep() end
- Если получится сделать скрипты, можно сделать и строки ввода. Ввел текст и передал его скрипту для, например, отправки на сервер или каких-то внутренних расчетов
- Немножко расширить функционал самого браузера, там, история (в пределах сеанса), закладки, еще что-нибудь. Можно и настройку сделать в самом браузере, дабы не лазить редактором в конфиг
У меня сейчас серьезный учебный завал, поэтому пока хочу немного отодвинуть это дело в сторонку, с короткими ковыряниями
А насчет WYSIWYG, кстати, хорошая идея, а то я конкретно наморочился, "рисуя" странички в Notepad++.
-
1
-
17 минут назад, Taruu сказал:А теперь вот интересно.
Можно ли сделать переводчик из html + css в nfl сторонним языком. и стоит ли игра свеч...А почему б и нет. В теории можно парсить страницу и превращать ее в подобные объекты в NFPL, но
- Нужно сделать конвертацию картинок в OCIF и резать их по разрешению, ибо даже при невысоких разрешениях отрисовка существенно замедляется
- Нужно рассчитывать координаты объекта, ибо NFPL - координатно ориентированный язык и каждый объект имеет свои координаты
- NFPL пока не подразумевает наличие скриптов (однако Lua-подобные скрипты планируются) поэтому пока что страницы будут исключительно статичные
В остальном, в принципе, ничего невыполнимого нет, хоть на ходу их конвертировать на сервере (получится туннель HTML-NFPL), но я в HTML не слишком специалист, поэтому сам заниматься этим не буду. Так что если кто хочет - мануал по языку в шапке есть, дерзайте!
-
1
-
Почти с месяц назад я представил во флудилке пару скриншотов разрабатываемого мной браузера и приличному количеству людей оно тогда понравилось.
Поэтому сегодня, спустя пол года кодинга, нескольких переходов с одного движка на другой и кучи потраченных нервов я могу наконец представить его вам.
Знакомьтесь, Memphisto.
Примите во внимание, что браузер находится в тестовой стадии, еще предстоит сделать много всего, поэтому возможно наличие неприятных багов (два глаза все не отловят).
Основные характеристики:
- Используется движок NyaDraw, который является портом движка Screen из MineOS. Поэтому браузер весьма быстро (для таких ПК) отрисовывает и прокручивает страницы.
- Для страниц используется язык NFPL, специально разработанный с учетом особенностей OpenComputers.
- Поддержка гиперссылок, загрузочных ссылок, рисование векторной графикой и многое другое.
- Поддержка картинок формата OCIF5-8. А так же их использование в качестве графических ссылок.
- Возможность просматривать страницы оффлайн, то есть с жесткого диска (полезно при написании страниц).
- Для поднятия своего сайта достаточно обычного HTTP(S) сервера.
Системные требования:
- Процессор: Уровень 1.
- Видеокарта: Уровень 3.
- ОЗУ: 1Мб или больше.
- Жесткий диск: не меньше 52Кб свободного места.
- Интернет карта
Скачать:
pastebin run EUZQRkwF
Полезное:
Руководство по языку NFPL (Network Formatted Page Language).
Первый NFPL сайт - bs0dd.github.io (запущен в тестовом режиме).
Руководство по графическому движку NyaDraw.
Увы, одного человека слишком мало для реализации задуманного, поэтому ищутся люди, хорошо понимающие в Lua, которые смогут помочь в устранении багов и расширении функционала как языка NFPL так и браузера для него.
-
8
-
2
-
1
-
1
-
3 минуты назад, ECS сказал:Для меня прям загадка, какая ж у тебя версия либы используется
Самая последняя, что портировал с MineOS. Просто стало интересно, метод вроде упоминается, а в самой библиотеке его нет
5 минут назад, ECS сказал:Обычно я юзаю несколько drawText со смещением по X и разными цветами друг за дружкой.
Дак вот и мне так приходится извращаться, но при написании страничек (для браузера, что я показывал) это создает дополнительные проблемы, ибо нужно просчитывать координаты смещения и вбивать их руками, а при изменении страницы кучу раз потом менять значения... вот и хотелось бы это упростить, ну, значит, не судьба
-
В 02.11.2017 в 02:33, ECS сказал:Добавлен метод buffer.formattedText, позволяющий изменять цвет текста в реальном времени через вставку синтаксических конструкций вида #RRGGBB.
Кстати, а где он?
Не вижу такого метода ни в старом ни в новом движке, но он бы мне сильно пригодился))
-
57 минут назад, ECS сказал:Мяу, ну явно ж какая-то кастомная отрисовка пикч идет у тебя в RenderEngine.
Под этим именем у меня лежит обычный Screen.lua
, сохранил так для удобства.
58 минут назад, ECS сказал:Вполне вероятно, кстати, что на скрине старая либа Image используется, где была иная RAM-структура картинок (с вложенными таблицами), а либа буферизации - новая. Я потому и прекратил поддержку всего этого балагана, т.к. по кускам собирать код никаких нервов не хватит
Да, как оказалось проблема была в старом image, поэтому пришлось выдергивать оный из состава MineOS, долго ругаться за кучу зависимостей от библиотек этой оськи, выдергивать нужное и делать "подсистему" с требуемыми функциями (с учетом всяких упрощений их оказалось не так много, но возни это доставило). Зато все заработало, и кроме библиотеки color image-у больше ничего не нужно)))
-
1 час назад, ECS сказал:Только учти, что эта либа - неподдерживаемое legacy, и основная версия находится в виде Screen API в майноське. Полупиксельный метод я обновлю, но никаких гарантий по работоспособности остальных методов нет, все дела
Я после чтения мануала по старой либе в январе пытался адаптировать новую, но что-то она не хочет есть картинки, падает.
Повозился тогда, плюнул, да отложил на потом, никак не пойму что там не сходится

ВычВыжПром - программируем выжигатель на Assembler-е
в Игры
Опубликовано: · Изменено пользователем Bs0Dd
На досуге приперло мне написать игрульку. Простенькую, но интересную. Генератор идей у меня фиговый, потому решил подыскать уже существующую несложную игрушку (опенсорсную), да перенести ее на OC.
Мне подвернулась игра ВычВыжПром, написанная на Java одной группой. За неделю я практически полностью перенес ее на Lua (пару моментов пришлось упростить ввиду хилой мощности компов). Цель данной игры проста: у нас есть выжигатель, контроллер и некоторое количество заданий. Нужно программировать контроллер для выжигания узора, показанного в задании, располагая небольшим набором команд Assembler-а.
Минимальные системные требования:
Установка: pastebin run nw0FNGjr
Игра также доступна в MineOS App Market
Репозиторий на GitHub