Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 18 июн 2025, 19:15

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: ZXDev + TR-DOS
СообщениеДобавлено: 13 сен 2013, 20:36 
Не в сети

Сообщения: 4
Привет, Олег.
Не помню, в какой теме ты просил присылать библиотеки, поэтому отвечу здесь.
В приложении архив с "оберткой" функций TR-DOS для SDCC. Я уже с месяц как выкладывал её на zx.pk.ru и tslabs.info, но почему-то до сих пор не обнаружил в твоём релизе ZXDEV.

Она тоже сделана по твоим советам по методу умной линковки - каждая функция - это отдельный файл, и при компиляции в код включается только необходимая подпрограмма, а не вся библиотека.

До "затачивания" под Оберон пока не дорос, - хотелось бы посмотреть, как она будет выглядеть после адаптации.

В качестве анонса: в скором времени будет готова интерфейсная библиотека для плагинной системы WildCommander (ZX-Evo/TS-Labs-Config).


Вложения:
trdoslib.zip [7.74 КБ]
Скачиваний: 1281


Последний раз редактировалось Sergey 14 сен 2013, 09:14, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 13 сен 2013, 23:04 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Привет, Sergey! :)

Я конечно дико извиняюсь, но могу себе позволить в настоящее время только ленивое добавление в ZXDev тех фич, которые мне реально нужны (в качестве исключения, правда, позволяю себе помогать людям, которые, не смотря ни на что, решились делать свой проект на ZXDev. В ZX-свете повальной если не ассемблеризации, то Си-онизации такие люди мне чем-то импонируют).

Изменения для адаптации минимальны. Слегка изменённые имена плюс интерфейсный Оберон-модуль, всё это сделать несложно, но вопрос в том кому нужна работа с TR-DOS на низком уровне из Оберона?

Вот такие дела. Кстати, хорошо, что разместил либу здесь, я не всегда успеваю следить за такими вещами.

Если будет вдохновение, конечно сделаю адаптацию. Просто неохота "в стол" работать. :) Не обижайся, плиз.

P.S. Что-то у тебя функции #05 и #06 имеют одинаковое имя "trdosReadSectors". Опечатка или так было задумано?

P.P.S. А прототип trdosWriteSectors не присутствует в trdos.h. Тоже так нужно?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 14 сен 2013, 00:24 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Всё-таки сделал. В качестве лоска потребуется более продвинутое тестирование всех процедур и, возможно, правка типов для большего удобства использования. Простые тесты работают. Поскольку я в своё время имел Спек только с магнитофоном, экспрессия TR-DOS'а прошла как-то мимо. ;) Так что навороченным тестированием предлагаю заняться кому-то другому. Но помочь не отказываюсь, обращайтесь.

P.S. Использовал один из возможных способов связки Оберон-модулей с сишными исходниками (прослойка между именами, принятыми в Ofront, и библиотечными в виде заголовочного файла с макроопределениями). Способ выбран затем, чтобы не менять ни саму библиотеку, ни её исходники. Есть и другие способы адаптации сишных вызовов к XDev/Ofront (например, средствами Ofront'а), примеры есть в библиотеках подсистем ZXDev и WinDev.


Вложения:
TrDosTest.png
TrDosTest.png [ 20.9 КБ | Просмотров: 25267 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 14 сен 2013, 09:21 
Не в сети

Сообщения: 4
Zorko писал(а):
кому нужна работа с TR-DOS на низком уровне из Оберона?

Разве в Обероне есть свои функции работы с TR-DOS?!
;)

Zorko писал(а):

P.S. Что-то у тебя функции #05 и #06 имеют одинаковое имя "trdosReadSectors". Опечатка или так было задумано?
P.P.S. А прототип trdosWriteSectors не присутствует в trdos.h. Тоже так нужно?


Это, естествено, опечатка. Перезалил архив. Достаточно для функции #06 исправить имя в прототипе.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 14 сен 2013, 12:10 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Sergey писал(а):
Разве в Обероне есть свои функции работы с TR-DOS?!
;)
Уже есть, благодаря тебе. :) (просто кому нужен Оберон для Спека. ;) Разве что нам)

Sergey писал(а):
Это, естествено, опечатка. Перезалил архив. Достаточно для функции #06 исправить имя в прототипе.
Хорошо, я тоже исправил.

Кстати, я НЕ считаю тебя неопытным разработчиком из-за этого ляпа. Просто людям свойственно ошибаться, и ошибки допускают даже очень опытные программисты, но язык Си по превратностям судьбы, приведшим в итоге к разрешению многократного включения *.h-файлов и всего из этого вытекающего (назовём это корявостью дизайна языка), по задумке, а не по недоразумению не имеет механизма предупреждений о продублированных прототипах, разве что если они отличаются типами (но если я верно помню, SDCC даже такие прототипы не ловит). И SDCC не помог тебе найти эту ошибку на стадии работы над библиотекой. Я тоже, естественно, не проверял все имена в trdos.h на уникальность, а просто скомпилировал интерфейсный Оберон-модуль в ZXDev. И Ofront сразу выдал ошибку дублирования имени. И подобные моменты, где Оберон имеет преимущества перед Си, я могу приводить десятками. Только меня никто не хочет слушать, напирая на рулезность всё ещё хорошо сохранившегося Си с плюсами и дотнета с джавами. ;) Ну кроме друзей-единомышленников конечно. :) Так что присмотрись здесь, может для чего-то Оберон и тебе пригодится (например, для разработки под ZX-Evo).

Кстати, можешь сообщить своё полное ФИО, добавлю в благодарности. И ЛС читай почаще. ;)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 14 сен 2013, 18:13 
Не в сети

Сообщения: 4
Zorko писал(а):
Уже есть, благодаря тебе. :) (просто кому нужен Оберон для Спека. ;) Разве что нам)

Всем нужно. Вот захотел кто-то для спека Оберон попробовать из интереса, - безделицу какую-нибудь написать. И тут выясняется, что ему надо еще и обвязку к TR-DOS саомому писать (а трдос для спека - это наше всё), - т.е. дополнительный демотиватор на пути. А так, - пожалуйста.

Zorko писал(а):
Хорошо, я тоже исправил. Кстати, я НЕ считаю тебя неопытным разработчиком из-за этого ляпа.

И очень даже зря. :) Ибо разработчик из меня, как из танка балерина :).
Я по образованию и профессии - юрист. Программирование для меня - это хобби, поэтому критика приветствуется.
С сями давно познакомился. На Амиге - пока болел, написал распаковщик архивов Hrip (не опубликован). А SDCC осваивать и либы писать в этом году начал.
Просто сейчас, благодаря платформе ZX-Evolution, а тем более прошивке TS-Labs к ней, где почти все операции с графикой (растрами, шрифтом, спрайтами, тайлами и т.п.) и пересылки данных взяло на себя железо, появилась реальная возможность писать программы на высокоуровневых языках. Это, действительно, приносит свои плоды: не успеют открыться исходники (на
Си) какой-нибудь игры для аналогичных спеку платформ, на следующий день Sergey78 релизит её версию для ZX-Evo. Вот на днях, он AlterEgo портировал с NES, к примеру. А я так, по мелочи, делаю, что умею.

Цитата:
Ofront сразу выдал ошибку дублирования имени. И подобные моменты, где Оберон имеет преимущества перед Си, я могу приводить десятками. Только меня никто не хочет слушать, напирая на рулезность всё ещё хорошо сохранившегося Си с плюсами и дотнета с джавами. ;) Ну кроме друзей-единомышленников конечно. :) Так что присмотрись здесь, может для чего-то Оберон и тебе пригодится (например, для разработки под ZX-Evo).

То что Оберон язык по-серьёзней, бросается в глаза. Я, вот, обратил внимание на то, что из исходника сразу понятно, функция из какой библиотеки используется - не нужно лазить по h-файлам. До оберона, по-моему, дорасти надо. Пока поучусь как либы под него делать, а уж там поглядим. Кстати планов по либам много.

Цитата:
Кстати, можешь сообщить своё полное ФИО, добавлю в благодарности. И ЛС читай почаще. ;)

Я не скрываюсь, но ника пока вполне достаточно.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 16 сен 2013, 13:33 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Sergey писал(а):
Вот захотел кто-то для спека Оберон попробовать из интереса, - безделицу какую-нибудь написать. И тут выясняется, что ему надо еще и обвязку к TR-DOS саомому писать (а трдос для спека - это наше всё), - т.е. дополнительный демотиватор на пути. А так, - пожалуйста.
Вобщем-то да, хотя программеры для Спека — люди обычно не ленивые, кодинг-то на асме выглядит посерьёзнее, чем делание обвязок. :) Просто здесь есть сдерживающий фактор: общее мнение, что программинг на ЯВУ для Спека крайне неэффективен. И второе — в наше время кодеры для Спека встречаются также часто, как и мамонты, а молодёжи разбираться с асмом Z80 уже неинтересно. Поэтому Оберон, мало дающий преимуществ перед Си именно для Спека (хотя они несомненно есть), более привлекателен именно как языковая платформа (и форма для представления алгоритмов) вместо отживающего своё асма Z80.

Sergey писал(а):
Zorko писал(а):
Кстати, я НЕ считаю тебя неопытным разработчиком из-за этого ляпа.
И очень даже зря. :) Ибо разработчик из меня, как из танка балерина :).
Я так не считаю. Ведь дело в открытости мышления, желании учиться, осваивать новые понятия, экспериментировать. Не секрет, что с возрастом эти способности у людей постепенно снижаются. А ещё, считаю, важно отсутствие сверхвысокого девелоперского самомнения (это очень затрудняет общение), что уже все ответы известны и все технологии обжиты. Так что разработчик ты ого какой крутой, и это заметно. :) А всё остальное, как опыт и прочее, — несомненно приложится.

Sergey писал(а):
Я по образованию и профессии - юрист. Программирование для меня - это хобби, поэтому критика приветствуется.
Без проблем.

Sergey писал(а):
С сями давно познакомился. На Амиге - пока болел, написал распаковщик архивов Hrip (не опубликован). А SDCC осваивать и либы писать в этом году начал.
Всё дело в увлечённости и энтузиазме. Если человеку интересно, он способен на многое. И, работая за деньги, редко получаешь такое удовольствие от внешне простенько выглядящих вещей (таких как игры на Спеке). :)

Sergey писал(а):
Просто сейчас, благодаря платформе ZX-Evolution, а тем более прошивке TS-Labs к ней, где почти все операции с графикой (растрами, шрифтом, спрайтами, тайлами и т.п.) и пересылки данных взяло на себя железо, появилась реальная возможность писать программы на высокоуровневых языках. Это, действительно, приносит свои плоды: не успеют открыться исходники (на Си) какой-нибудь игры для аналогичных спеку платформ, на следующий день Sergey78 релизит её версию для ZX-Evo. Вот на днях, он AlterEgo портировал с NES, к примеру.
Здорово! Это талант. :) Я не знал что игры для NES пишут на Си. Вернее, знал, но не думал что серьёзные.

Правда, игры на Си для аналогичных Спеку платформ часто настолько пестрят низкоуровневыми фишками, что всерьёз рассматривать их портирование на что-то сильно отличающееся от Спека (даже если проц будет уже не Z80) наверное наивно, или просто это мне такие попадались?

Да, вот бы заинтересовать Serge'я78 Обероном. Если конечно это возможно. :) Хотя если его интересует Си с точки зрения готовых исходников игр, то Оберон этим вряд ли может похвалиться. Но если Сергея интересуют и другие целевые платформы (и библиотеки для них), то пожалуй самое то.

Sergey писал(а):
То что Оберон язык по-серьёзней, бросается в глаза. Я, вот, обратил внимание на то, что из исходника сразу понятно, функция из какой библиотеки используется - не нужно лазить по h-файлам.
Верно. Это называется квалифицированный импорт (а имя модуля перед процедурой — квалификатором). Импорт Оберона является пересмотренным и улучшенным импортом Модулы-2, в которой это выглядело причудливее и сложнее. Квалификация обязательная, что даёт дополнительные плюсы — видно из какого модуля пришла сущность (это особенно важно для больших проектов — меньше путаницы). В Дельфи есть возможность необязательной квалификации (может опускаться), но и по сей день в Дельфи нет возможности, которая есть в Обероне — можно для сокращения обозначать имя квалификатора алиасом:
Код: "OBERON"
  1. IMPORT In := Console, Out := Printer; VAR ch: CHAR; BEGIN ch := In.InputChar(); Out.OutputChar(ch);

Sergey писал(а):
До оберона, по-моему, дорасти надо.
Согласен. Я тоже считаю, что Оберон сильно опередил своё время. Вот современные кодеры, поизучав дотнет, уже столько понадпридумывали всяких понятий типа Code Injection, а в Обероне, которому чуть больше 25 лет, всё это легко реализуется, и без жуткого оверхеда в десятки мегабайтов, и без концептуальной сверхперегруженности, и без прослойки в виде виртуальной машины. Оберон прост и прозрачен. Даже скажу больше. Недостатки C, C++, C# и Java представляются мне абсолютно не подлежащими исправлению, по разным причинам. У Оберона недостатки тоже есть, но исправить их представляется весьма возможным. Например, Оберон подходит для чисто системного программирования несколько хуже, чем Си, но это с лихвой компенсируется его достоинствами, которые выходят на передний план при проектировании больших программных систем.

Но скромных возможностей тружениика Z80, увы, недостаточны для того, чтобы полностью испробовать высокоуровневые средства Оберона — гибкое межмодульное взаимодействие (динамическая модульность с загрузкой-выгрузкой и переключением модулей), автоматическое управление памятью (снижающее вероятность её утечки), охрану типов (предотвращающую обращение не к тем областям памяти), моментальную отладку (термин мой; в других источниках её называют посмертной) — моментальное обнаружение и исправление ошибок без многочасовых бдений в отладчиках, работа со сложными иерархическими структурами данных и т.п. Мне очень ценно было узнать мнение slenkar'а: он реально поработал на Обероне и сказал, что допускает меньше ошибок, чем на Си. И к этому мнению чистого практика действительно стоит прислушаться. Всё это магия Оберона, за что и любим. :)

Недостатки Оберона — совсем другого порядка, чем чисто языковые корявости. Мало библиотек. Мало пользователей. Мало инструментальных средств. Зато есть к чему приложить руку, не опасаясь, что завтра процессор X устареет и платформа Y придёт в упадок. Делаем как бы навечно! :)

Sergey писал(а):
Пока поучусь как либы под него делать, а уж там поглядим. Кстати планов по либам много.
Что ж, рад приветствовать единомышленника! Мы тут люди вольные, делаем что нам нравится, и каждый в своём темпе, так что если тебе это по душе — добро пожаловать!

ZXDev как среда разработки начался скромненько и вырос из простого желания ускорить спектрумного Дурака (от CopperFeet). Видит бог, на асм я его переписывать не хотел, поэтому адаптировал для начала под SDCC библиотеку Laser, и понеслось.

И либы под разные платформы крайне нужны. Буду рад, если будешь вести разработку прямо на форуме, по ходу решая возникающие проблемы. Можем также сделать отдельный раздел для ZX-Evolution.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ZXDev + TR-DOS
СообщениеДобавлено: 21 сен 2013, 19:27 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Sergey, есть парочка вопросов по TR-DOS, на случай когда буду адаптировать модуль XDev/Files под Спек.

1. Вызов trdosInit(), как я понимаю, является обязательным перед вызовом любой другой функции TR-DOS? А то я запихнул его в инициализатор модуля (в терминологии ООП — конструктор, только не класса, а модуля), а вдруг не нужно было? (в ZXDev/Basic я специально не добавлял процедуру Init в инициализатор, поскольку многие процедуры этой библиотеки работают без инициализации, и есть возможность на маленьких программках схитрить и сделать её необязательной).

2. Каким является размер блока данных, оптимальный для загрузки в TR-DOS? Или: какого размера секторами-кластерами и проч. читаются файлы в этой системе? Вопрос связан с тем, что для чтения и записи файлов побайтово есть смысл для эффективности использовать буфер. Каким лучше всего сделать его размер по умолчанию, чтобы не терять эффективность операций чтения-записи, но и не делать слишком больших расходов по памяти?


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club