Вход

Просмотр полной версии : Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию



Страницы : 1 2 [3] 4

s_kosorev
09.12.2015, 14:06
реализация абстрактных интерфейсов
мх.. станное понятие абстрактный интерфейс, есть понятие интерфейс, синоним абстрактноного класса.
Но! реальная польза от него появляется при наличии множественного наследования, речь не о множественном наследовании реализации как в с++ а именно множественное наследование интерфейсов

Т.е. я могу пометить класс что он IComparable и реализовать это поведение и у меня автоматом, разного рода сортируемые коллекции смогут работать с моим классом
Могу так же сказать что этот же класс является наследником интерфейса IPersistentObject, говоря тем самым что мой объект умеет сохранять состояние, в довесок еще помечаю его интерфейсом, IGrantedAccess который говорит к примеру что при показе юзеру этого объекта, нужно проверять права доступа.

Т.е. нет сложного момента как множественного наследования поведения, но в тоже время, могу описывать классу разное поведение, причем не кучу поведения от сложного супер класса, а разного рода мелкие поведеня

- - - Добавлено - - -

в zonnon такое поведение реализовано, но мотив скорее всего, что бы можно было нормально .net библиотеку юзать

Oleg N. Cher
09.12.2015, 14:56
ОК, предположим, я неверно выразился.

Абстрактный интерфейс — т.е. оторванный от реализации. Может иметь одну или несколько реализаций. "Класс" говорим по аналогии, потому-что в Обероне это всё-таки запись (RECORD). Поэтому я говорю не "класс", а "интерфейс" [модуля]. Можно "абстрактная запись".

Что такое компонентно-ориентированное программирование (краткая справка) (http://www.inr.ac.ru/~info21/info/qtocop.htm)

Можно сказать, что КОП — это такое ООП, которое подчинено требованиям безопасности "старого" структурного и модульного программирования примерно в том виде, в каком эти требования были реализованы в классической Модуле-2 (в отличие от языков типа Smalltalk, в которых ООП является основным механизмом, который применяется без ограничений).

Краткое обсуждение компонентно-ориентированного программирования дано в http://www.oberon.ch/resources/component_software/cop.html (эту статью надо бы перевести на русский язык). Из статьи следует примерно такая формула для КОП:

КОП = ООП

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

+ безопасность (статический контроль типов переменных и автоматическое управление памятью)

- наследование реализации через границы модулей.

Последняя строчка означает, что в КОП запрещено наследование от типов, реализованных в других модулях; наследовать можно только абстрактным, чисто интерфейсным типам (помеченных атрибутом ABSTRACT в Компонентном Паскале).

Между прочим, Оберон-2 не удовлетворяет в полной мере требованиям КОП: в нём любой тип может быть расширен. Это делает программы, написанные на нём, уязвимыми для проблемы хрупких базовых классов. Именно для устранения этой "дыры" в системе безопасности Оберона-2 и были в первую очередь предприняты модификации языка, реализованные в Компонентном Паскале.

В классическом Обероне тоже можно расширять любой тип, но там нет методов, так что и проблема менее остра.
https://ru.wikipedia.org/wiki/Компонентно-ориентированное_программи ование (https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D 1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D 0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1 %80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%8 0%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
Проблема хрупких базовых классов — ситуация, когда изменить реализацию типа-предка невозможно, не нарушив корректность функционирования типов-потомков (даже при прежних интерфейсах его методов), компонентно-ориентированный подход, позволяющий через понятие компонента объединить в группу связанные конструкции и определяющий схемы и правила для них, позволяет избежать подобного рода проблем.

Oleg N. Cher
13.12.2015, 07:13
Новости по проекту.

1. ZXDev окончательно решено перевести на z88dk-SDCC. Это придаст ему ряд дополнительных возможностей, особенно в плане использования z88dk’шных библиотек (Hello, Alcoholics Anonymous!).

2. Раз уж все разобрались, чем отличается Компонентный Паскаль от Оберона-2, сообщаю, что мне удалось достать фирменный транслятор КП-в-Си от Oberon microsystems (на базе Ofront’а), и теперь основным языком разработки в XDev будет Компонентный Паскаль. Оберон-2 также будет в списке поддерживаемых языков.

Разумеется, это не настолько важно именно для ZXDev — для Z80 Оберон-2 будет даже предпочтительнее, ибо в КП фиксированная арифметика (все вычисления производятся в 32 бит/64 бит, и потом только приводятся к требуемому типу), т.е. на О2 складывание чисел типа SHORTINT — задача вполне в рамках SHORTINT. КП же считает, что возможно переполнение и требуется бОльшая разрядность. Поэтому результат — типа INTEGER, и уже потом приводится к SHORTINT, если требуется.

3. Сообщаю, что от души наигрался с компиляторами типа tcc/DJGPP и теперь окончательно перевожу WinDev на GCC/MinGW. GCC тоже умеет делать компактные exe/dll (для этого следует использовать свой crt1) — и Hello World получается 1,5 кб. На сегодняшний день в WinDev есть биндинги к WinApi, SDL, SDL 2, LibC. Можно успешно делать проекты типа небольших утилит. Пример сделанного в WinDev:

Утилитка для исправления имён файлов в кодировках UTF-8 и Hex (http://zx.oberon2.ru/forum/viewtopic.php?f=8&t=263)Часики как пример порта с ADW Modula-2 на XDev Oberon (http://zx.oberon2.ru/forum/viewtopic.php?f=106&p=1547#p1545)
С этими изменениями XDev начинает приобретать качества промышленного продукта, хотя ему по-прежнему очень не хватает систематичного подхода к разработке. Просто много рутины, которая делается в “ленивом” режиме по мере надобности.

4. XDev для Linux. Может быть получен на основе Freenix (http://oberoncore.ru/projects/bb-freenix), вышеупомянутого транслятора КП-в-Си и GCC. С помощью подсистемы Master (http://zx.oberon2.ru/forum/viewtopic.php?f=34&t=95) будет доступна раскраска синтаксиса. Толковый программист при соответствующей мотивации собрал бы всё это воедино за очень небольшой срок. Проблема с мотивацией — мне вполне хватает XDev для Windows. К тому же я взялся и так за слишком большой проект, и мэйнтейнить две версии, вторая из которых мне напрямую не нужна, представляется излишней роскошью. Но всё возможно, требуются лишь энтузиасты, чтобы продвигать это направление.

Oleg N. Cher
06.01.2016, 15:34
.NET Native compiles C# to native machine code that performs like C++. Windows 10 Universal applications built with C# or VB are optimized with .NET Native. With .NET Native optimization, apps start up to 60% faster and use 15-20% less memory when compiled with .NET Native.https://msdn.microsoft.com/en-us/vstudio/dotnetnative.aspx

У меня вопрос к дотнетоведам. Риторический. Если у технологии .NET всё так замечательно, то какой смысл в такого рода приблудках как эта? Сначала создали себе сложность в виде VM, но потом её героически преодолели? ;)

s_kosorev
06.01.2016, 15:50
Сначала создали себе сложность в виде VM
VM у явы, дотнет с рождения JIT

.net native для игрушек и телефонов, там где побочка управляемого кода особенно заметна, производительность транслированного и обычного приложения в среднем одинакова, но для PC лишние 20Ватт энергии и лишние 20% обычно незаметны

Alex Rider
06.01.2016, 22:04
Если у технологии .NET всё так замечательно, то какой смысл в такого рода приблудках как эта?
Сделать побыстрее запуск на медленных устройствах. Кроссплатформенность бинарника при этом теряется, но остальные фишки .NET - безопасность кода и, собственно, библиотека классов остаются. Исходный код также остается кроссплатформенным.

Oleg N. Cher
07.01.2016, 03:55
Насколько я понимаю, безопасность кода и натив аж никак не мешают друг другу существовать вместе. И для этого не нужны никакие VM.

Исходный же код - не кросс, а именно моноплатформенный (.NET only), и никак иначе. Да, это можно сэмулировать на других платформах, но толстым способом.

Alex Rider
07.01.2016, 06:59
Насколько я понимаю, безопасность кода и натив аж никак не мешают друг другу существовать вместе. И для этого не нужны никакие VM.
Правильно. VM нужны для кроссплатформенности (целевой) на этапе исполнения. .NET помимо этого дает еще много плюшек, например, безопасность, библиотеки, многоязычность, популярность (в частности, довольно мощное комьюнити). .NET Native отбирает у скомилированного бинаря только целевую кроссплатформенность, оставляя все остальные плюшки. Это неплохо.

Исходный же код - не кросс, а именно моноплатформенный (.NET only), и никак иначе. Да, это можно сэмулировать на других платформах, но толстым способом.
Олег, с тобой бесполезно спорить. Не выставляй себя недалеким - ты же прекрасно знаешь, что не существует платформы .NET, и что сборки .NET не эмулируются, правда?

s_kosorev
07.01.2016, 12:38
CoreCLR, уже работает на маках, линухах итд, от MS

Можно сказать это еще один Mono но от MS

Eltaron
07.01.2016, 13:54
Если у технологии .NET всё так замечательно
А именно это и не замечательно. JIT-компилятор в дотнете слабый и тупой. Вот, скажем, 10 лет назад все плевались и от Java-, и от .NET-экзешников, когда они стартовали целую минуту и еле ворочались. Сейчас джава это практически полностью преодолела за счет крутого интеллектуального JIT. Дотнет же как тормозил при старте, так и тормозит. Просто на современном железе это однократное торможение при первом запуске практически незаметно, а вот на задачах, для которых создан .NET Native, разница, видимо, есть.

Oleg N. Cher
07.01.2016, 22:44
ты же прекрасно знаешь, что не существует платформы .NET, и что сборки .NET не эмулируются, правда?Что же тогда .NET если не платформа? Фреймворк? Набор классов?

И я не говорил, что сборки эмулируются. Программная платформа .NET эмулируется поверх аппаратной (Windows, Linux, Mac etc). И даже после трансляции в натив приходится таскать с собой всю платформу - её классы, метаинформацию, нужную для их работы, и т.д.

Ещё непонятно:

VM у явы, дотнет с рождения JITА я считал, что .NET это тоже VM, а у JVM тоже есть JIT-компилятор. И вот приходится блуждать в таких высказываниях людей, которых я считаю опытными дотнетовцами и джавистами.

В общем, что ни говори, подход Slim Binaries выглядит технологически совершеннее. Но по факту ещё долго будут доминировать плохие реализации древнего пи-кода. Придуманного, кстати, проф. Виртом для его Паскаля.

Alex Rider
07.01.2016, 23:07
Программная платформа .NET эмулируется поверх аппаратной (Windows, Linux, Mac etc).
Олег, Windows и Linux - это программные платформы. Аппаратные - это ARM, x86, x64. На аппаратной платформе исполняются ОС, в которые может быть установлен набор библиотек и специальная среда исполнения, которая компилит сборки .NET в нативный исполняемый код целевой аппаратной платформы.
Некоторые программно-аппаратные платформы, например, носимые устройства, имеют производительность, недостаточную для комфортного запуска .NET приложений с предкомпиляцией впервые исполняемого кода. Для решения этой проблемы был придуман .NET Native. И не более.

- - - Добавлено - - -

По поводу VM - не VM. Как сейчас дела у Java обстоят, я не в курсе, но .NET никогда не эмулировал IL-код сборок на целевой платформе, он его всегда компилировал (JIT-компилятором) в нативный код и исполнял непосредственно на процессоре. За это в .NET отвечает CLR - Common Language Runtime (программная среда исполнения .NET-кода).

s_kosorev
08.01.2016, 00:41
Что же тогда .NET если не платформа? Фреймворк? Набор классов?
в .net штатно можно работать с памятью, указатели, запрос памяти у операциоки итд, т.е. после jit будет не JNI шлюзы а очень часто обычный call
тобиш результат дотнета это не процес в какой то виртуальном окружении, а обычный процесс ну с библиотечками разными, ну проверок больше чем хотелось бы

на C#


class Program
{
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;

static void Main(string[] args)
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_HIDE);
Console.Read();
}
}


листинг на ассемблере


var handle = GetConsoleWindow();
00000000 push ebp
00000001 mov ebp,esp
00000003 sub esp,14h
00000006 xor eax,eax
00000008 mov dword ptr [ebp-0Ch],eax
0000000b mov dword ptr [ebp-10h],eax
0000000e mov dword ptr [ebp-14h],eax
00000011 mov dword ptr [ebp-4],ecx
00000014 cmp dword ptr ds:[0215C730h],0
0000001b je 00000022
0000001d call 5DD39FEF
00000022 xor edx,edx
00000024 mov dword ptr [ebp-8],edx
00000027 call FFFFF8B0
0000002c mov dword ptr [ebp-0Ch],eax
0000002f mov eax,dword ptr [ebp-0Ch]
00000032 mov dword ptr [ebp-8],eax
ShowWindow(handle, SW_HIDE);
00000035 mov ecx,dword ptr [ebp-8]
00000038 xor edx,edx
0000003a call FFFFF8BC
0000003f mov dword ptr [ebp-10h],eax
00000042 nop
Console.Read();
00000043 call 5D1EF8EC
00000048 mov dword ptr [ebp-14h],eax
0000004b nop
}


если пошагать, то вызов нативных методов как раз в ядро винды уходят после линковки

Oleg N. Cher
11.08.2016, 17:45
У нас тут со Smalovsky случился приватный разговор, в котором от утверждает, что:

Оберон уже не в моде. Сейчас все следят за Component Pascal и Oxygene.На что я хочу ответить публично, вдруг кто-то тоже так думает.

Oxygene - наследник Delphi и наследует его традиции, в т.ч. и сложность. Это большой современный язык, на который оказали влияние C# и другие новые языки. То есть шаг в сторону усложнения. И попытка "из коробки" дать юзеру мощный инструмент для разработки под актуальные платформы.

Компонентный Паскаль - напротив, очень маленький и простой язык. С поддержкой новых платформ у него туго. Фактически есть всего два компилятора КП - BlackBox Component Builder (http://blackboxframework.org) (в код x86-32) и Gardens Point Component Pascal (http://gpcp.codeplex.com) (в байт-код JVM и .NET). Если хочется современных фич и плюшек, 64-битности, то упс. Впрочем, наш Оберон-клуб в этом смысле впереди планеты всей, и у нас есть транслятор КП в Си (https://github.com/Oleg-N-Cher/CPfront), сделанный фирмой Oberon microsystems на базе того же Ofront. Пользуйтесь. Если разберётесь.

Дайте угадаю. Вы считаете, что Оберон - это такой старый архаичный язык, который умер 30 лет назад. А КП - это что-то современное. Спешу обрадовать. Знаете чем отличается Component Pascal от Oberon-2 ? Я не поленюсь перечислить. Атрибутами процедур NEW/ABSTRACT/LIMITED/EXTENSIBLE, модификаторами параметров IN/OUT, дополнительной операцией $ для строк, парочкой новых типов, функцией BITS() и ВСЁ. Извините, если чего упустил. Компонентный Паскаль - это очень слегка прилизанный Оберон-2. Подчёркиваю: очень слегка.

Кстати, я в трансляторе Ofront+ использую фичи из КП.

Можно ли программировать на КП для Z80? Можно. На подмножестве. Транслятор КП в Си добавляет слишком много мета-информации к модулям, это нужно для фишек, к которым привыкли юзеры C#, таким как: узнать на лету типы и поля структуры и т.п. Так что для Z80 видится разумным использовать не КП, а именно тот самый Oberon-2 с некоторыми фичами из КП, реализованный в трансляторе Ofront+ (https://sourceforge.net/projects/ofrontplus).

Чтобы ещё раз подчеркнуть минимальность различий КП и Оберона-2 я покажу вам два исходника, которые написаны так, что собираются как компилятором GPCP (Gardens Point Component Pascal) для JavaME, так и транслятором ZXDev/Ofront+ для Спектрума:

• https://github.com/Oleg-N-Cher/Dash/blob/master/ZXSpec/Mod/Labirint.Mod
• https://github.com/Oleg-N-Cher/DarkWoods/blob/master/ZxSpec/Mod/DarkWoods.Mod

AlexG
12.08.2016, 15:24
Я вклинюсь в разговор. Оберон на xilinx 2016г
http://www.astrobe.com/RISC5/default.htm
и поддержка виндовс 10

Oleg N. Cher
30.08.2016, 06:44
Reobne давно критикует XDev за то, что для сборки нужно писать батники, а для него это неподъёмный барьер. ;-) Посему наконец предприняты шаги для упрощения написания этих самых нехороших батников. Я исхожу из того, что хранить настройки проекта всё равно где-то нужно, поэтому мы будем хранить их в удобных для редактирования текстовых файлах, т.е. в батниках. ;-) Но упрощённых. Теперь у нас есть много опций, которые мы можем задавать, не опасаясь запутаться в тонкостях вызова SDCC и линковки. Конечно всё это ещё нужно тестировать. Но зато:

поддерживаются многомодульные проекты;поддерживается хранение символьных файлов в папке /Obj (без отдельной папки /Sym);поддерживается хранение модулей в папке проекта (без отдельной папки /Mod).
Читать дальше (http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=291)...

Reobne
30.08.2016, 09:23
Именно! Спасибо, что пытаешься понять меня, но всё-таки не только "писать батники", но и "думать про батники", и "помнить о батниках". Я хочу вообще о них забыть как о страшном сне. Пусть будет форма, вызываемая из меню среды ZX-dev, где всё что нужно для проекта можно установить. Пусть эта форма меняеться от версии к версии ZX-dev, а не:
Вот ZX-dev. А это новые версии ZX-dev-а. А это фишки программирования ZX-dev, и новые фишки для новых версий ZX-dev. А это батник, который в тёмном чулане хранится, со своими фишками, и новыми фишками для новых версий ZX-dev. А вот и грабли, которые в старых фишках батника и в новых фишках батника, и по дороге к чулану, и в фишках проекта, и в новых фишках проекта, для очередной версии ZX-Dev. А вот и зашуганый кот, который приходит програмить в ZX-dev, которого бьют по лбу грабли в чулане, при поиске чулана, при узнавании что чулан существует, при узнавании, что у батников свои фишки, при узнавании про новые версии ZX-dev, с новыми фишками и новыми граблями. А это старый пёс без хвоста, который за шиворот треплет кота, за то что тот морщится и мяукает, когда его по лбу бьют все эти грабли. А вот и доильница строгая, которая бранит трусость всех котов мира, которые не идут читать форум, и узнать наконец про правила, как избегать некоторых из граблей.

Oleg N. Cher
30.08.2016, 15:43
А как же ты хотел, дарагой? Если таки не веришь мне про грабли, то возьми, что ли, Дельфи 3 и попробуй им собрать проект для Дельфи 5. Но там контора солидная была, а ZXDev - самопал. Однако ты верно заметил, фишек много! Да... ;-)

- - - Добавлено - - -

Вот такое годится? Учти, это не избавляет от необходимости понимать логику опций SDCC. По крайней мере, для продвинутых применений. Но для быстрого старта такого меню конечно с головой, практически все поля можно оставлять дефолтными.

58024

P.S. В SDCC появилась возможность задавать для ф-ций список регистров, которые они гарантированно не портят. Я только заметил. Выглядит так:

extern void Laser2_PTBL (signed char col, signed char row, unsigned char spn) __preserves_regs(b, c, d, e, iyl, iyh);

Безкрайнее поле для оптимизации всего, чего придётся. ;-)

Raydac
30.08.2016, 18:05
а среда под какие ОСи?

Oleg N. Cher
30.08.2016, 22:29
Под Windows 32/64 бит. От XP и до 10'ки. На последней не тестился, но должен работать.

Транслятор Оберона в Си - Ofront+ (https://sourceforge.net/projects/ofrontplus/) (сама суть XDev) для командной строки работает под Linux 32/64 и Windows 32/64 бит. Наверно легко собрать и под какой-нить ARM/Raspberry Pi (я не пробовал).

То есть берёшь транслятор командной строки, какой-нить подходящий текстовый редактор, дёргаешь библиотеки из ZXDev, пишешь свои bash-скрипты для сборки и вызова Ofront+/SDCC и юзаешь. Так я себе это представляю.

А правду говорят, Raydac, что ты там визуальные среды разработки на базе языка Дракон у себя в блоге критикуешь? Кошка на усах принесла. ;-)

Reobne, погоди, доделаю, отпишусь. В связи с очень плохим знанием BlackBox API и его средств построения форм, мне постоянно приходится доставать глупыми вопросами Ивана Кузьмицкого. Вот такой я не гордый. ;-)

Процесс визуальной разработки в BlackBox имеет свою собственную красоту, но сильно отличается от Delphi'шного.

- - - Добавлено - - -

Да и форумы читать приходится, прикинь? ;-)

Reobne, я давно хотел составить FAQ по разным тонкостям ZXDev, но не для себя же мне его писать? Где люди, которые задают вопросы? Я пока видел только критиканство в стиле "фи, это не Си, не асм и не Паскаль".

А не делал поддержку мастера для сохранения настроек не потому, что очень ленился, просто не сформировалось понимание как именно ему надлежит выглядеть. Да и сейчас нет. Например, ещё не придумал как защитить написанные вручную батники от переписывания автоматически сгенерированными в результате нажатия на кнопку Save. Ну и не спрашивай, где будут храниться настройки. ;-) Сам скажу. В Project/Rsrc/Strings.odc, но, правда, прозрачно для юзера, т.е. он не должен вникать во внутреннюю структуру этого файла, хоть он и текстовый.

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

- - - Добавлено - - -

И ещё не придумал где хранить название подсистемы. Ведь файла свойств проекта может и не быть. В батнике? В каком? В отдельном или в тех же compile.bat/build.bat? Но если мы будем знать название подсистемы, мы можем обойтись и без батников. Директивой (*$ZXDev*) прямо в тексте модуля? Но тогда придётся в тексте каждого модуля. А без знания, какой подсистемой собирается проект, откуда мы знаем какие символьные файлы использовать? И где именно они хранятся. В общем, одни сплошные вопросы, Reobne. А ты вместо того, чтобы помочь, испугался и убежал. ;-)

Raydac
30.08.2016, 22:35
Под Windows 32/64 бит. От XP и до 10'ки. На последней не тестился, но должен работать.
надо как то еще под линух сделать версию, а то виндовс теперь это моветон :)


А правду говорят, Raydac, что ты там визуальные среды разработки на базе языка Дракон у себя в блоге критикуешь? Кошка на усах принесла. ;-)

я автора спросил не собирается ли он делать иконы языка более эргономичными, а то тема то у языка интересная, а дизайн икон какой то непродуманный, но вроде как не собирается и считает что только в редакторе можно ими пользоваться, а следовательно сложность их отрисовки роли не играет

Oleg N. Cher
31.08.2016, 00:07
Ну так делаю же. Ofront под 64 бита кто, по-твоему, адаптировал? ;-) А это, как я уже сказал, сердце ZXDev.

- - - Добавлено - - -

upd: пересмотр. Пожалуй, настройки проекта будут храниться не в Rsrc/Strings.odc, а в Bin, там же, где и батники. Пусть не смущает папка /Bin, у нас на неё большие планы. В ней можно хранить конвертеры .tap/trd/scl/sna, упаковщики спектрумных бинарей, генераторы загрузчиков, компиляторы Си, различные утилиты и т.п. Всё, что относится к сборке проекта. Это задумано именно так, а не просто для хранения пары батников.

http://i.piccy_.info/i9/7d352971aa9b6a7810f3216605882ddb/1472591412/52964/1065564/DurakBin.png

P.S. Как назвать файл свойств проекта? Settings.odc? Config.odc? Cfg.odc? Setup.odc? Project.odc?

Alex Rider
31.08.2016, 00:19
Пусть не смущает папка /Bin, у нас на неё большие планы.
У M$ принято хранить конфиги инструментов рядом с бинарями инструментов. ИМХО, нормально оно.


Как назвать файл свойств проекта?
<ProjectName>.Config.odc?

Oleg N. Cher
31.08.2016, 00:31
Reobne не желает редактировать конфиги руцями, он даже не хочет их видеть. ;-) На линукс вы его и сладким пряником не приманите, а уж не дай бог тыркать make install, это кощунство. Давайте уважим товарища Reobne, для чего предлагаю засунуть файл свойств проекта в папку /Bin, как относящийся к сборке проекта, также как и остальные утилиты, которые могут там обитать. Т.е.

<ProjectName>/Bin/Config.odc

Можно ещё Properties.odc или Sets.odc ;-)

OrionExt
31.08.2016, 01:22
Давно слежу, за проектом. Ток один «минус», корявость проекта «SDCC». В этом проекте видно не вооружённым глазом коммерческая направленность. А вот куда…:tongue:

Oleg N. Cher
31.08.2016, 01:32
А в принципе, можно и так, и так. И в /Bin, и просто в корне папки проекта, кто как предпочитает.

Но по-умолчанию надо что-то одно.

OrionExt
31.08.2016, 01:49
Да меня мало интересуют способы сбора проекта, все это решаемо. Я О SDCC. Тут корявость не поправить просто так.

Oleg N. Cher
31.08.2016, 01:50
OrionExt, не согласен, бОльшая часть SDCC доступна for free, тобиш нахаляву сэр. А Z80 вообще весь задарма, а ничего более от него нам и не требуется.

То, что они там хотят денег за что-то, так пускай хотят. Но зато на этом проект развивается и для таргета Z80. Каждый день развивается. Вы знаете ещё хоть один такой же компилятор? (ну, кроме z88dk, тьху-тьху, не пробовал ;-) )

Я ещё хочу сказать за психологию, ув. господа. Некоторый хитропопый чел взял себе спокойненько транслятор Оберона в Си, тот же самый Ofront, хорошо его спрятал, сделал вызов Си автоматно, обозвал компилятором и продвигает как компилятор (http://oberon.vishap.am). И различные товарищи гуси-лебеди абсолютно не смущаясь его пагубной сишной сутью качают и себе спокойно юзают, даже толком не зазирая унутря. Моя же ошибка в том, что я изначально продвигал транслятор в Си как транслятор в Си, а не как МегаСуперШтука, Которая РвётЪ! Так что моя ошибка - слишком большая честность, господа. А так нельзя.

Вот смотрите. Психология в действии.

voc (https://github.com/vishaps/voc)
vishap oberon compiler47 звёзд, много скачек, много юзеров и много форков.

Теперь то же самое, и в профиль и у хвас. Но больше фич. У нас константные массивы есть, доп. битовые операции и ещё кучка плюшек.

Ofront+ (https://github.com/Oleg-N-Cher/OfrontPlus)
Oberon-2 to C translator3 звезды, три светлых повести... причом одна из них моя. ;-)

Просто как-то слегка по-другому позиционируется. Ну конечно, "мы не любим писать батники для вызова Си" (ц)

Так что... если кого-то закидывают гнилыми тапками - все остальные обходят и морщатся. А вы курите то, что сверху красиво. Или то, что привычно выглядит и, главное, привычно называется.

Тут некоторые товарисчи, юзя GCC стопсят лет, даже не знали что он генерит асм-файлы, и потом после ассемблирования стирает. Думали, чистый машкод сходу гонит, угу. Мячта.

Так что не надо ляля про корявый проект "SDCC", ладно?

OrionExt
31.08.2016, 01:59
Ох. Не осилил я, ваше сообщение. Повторю.

Ток один «минус», корявость проекта «SDCC». В этом проекте видно не вооружённым глазом коммерческая направленность. А вот куда…:tongue:
Да и ассемблер на выходе «радует» каноническим тупизмом (мы типа не такие как все, мы особенные).
Вот моя мысль.

Oleg N. Cher
31.08.2016, 02:01
банальная ксенофобия всё это. "япапробовалиуминянипалучи лосьsdccаццтой!"

а у меня получилось и шо теперь? нормальный компилятор. очень даже отличный. глюки - есть. но они везде есть.

а на чём получилось? а то складывается мнение, что я уже знаю эту песню. "яву для zx ваще аццтой" или "хайтек|iar C всех рвутЪ"

Продуктив-то где? Выход в конце тоннеля?

- - - Добавлено - - -

OrionExt, Вы банально ниасилили gnu asm. но исключительно потому что привыкли к DevPac 4. ну кто же виноват %)

OrionExt
31.08.2016, 02:12
z88dk мне более, понятен. Дружелюбен.

- - - Добавлено - - -


банальная ксенофобия всё это
Честно. Да вертел на х… Хватит пытался. Это не дорузумение СДСС скушать строку из пяти символов не может, а что это чудо творит с кодом. Я вообще молчу. За бесплатно руки в ноги этому си компилятору я вставлять не готов.

Былые раны)

Oleg N. Cher
31.08.2016, 02:15
Ну хорошо. А кто Вас заверил, что z88dk нельзя использовать в ZXDev? Раз вы так смело выносите приговор. Я по подобной схеме юзаю компиляторы GCC/DJGPP/MinGW, Clang, TinyC (tcc), Turbo C 2.0

Этого просто никто не пробовал делать. Значит сей путь тайный есмь.

OrionExt
31.08.2016, 02:27
Как проект ZXDev очень нравится. Завязывайте с наркомами из СДСС. Хотя не понятно как его применить к Ориону. По моему на паскале уже все написано (описано железо).

- - - Добавлено - - -

z88dk можно на вашей платформе-софт использовать.

Oleg N. Cher
31.08.2016, 02:38
Ага, чую любителя КР580! ну... вроде как vinxru вам делал компилер для него? или всё утерялось? В любом случае, эксперименты в этом направлении (Орион) производить можно и нужно. У нас для Ориона на Оберон-форуме даже есть отдельный раздел:

http://zx.oberon2.ru/forum/viewforum.php?f=88
Милости прошу, если интересно. Там я примерно описал своё видение (http://zx.oberon2.ru/forum/viewtopic.php?f=88&t=217&p=1327#p1313) как это может выглядеть (разработка на XDev для ретро, без SDCC ессно, ибо зачем Орионщику любить Z80 ;-) ) Да, через BDS C или какой другой компилер для i8080, ибо я в них не волоку. Пробуйте.

А z88dk разве умеет 8080?

OrionExt
31.08.2016, 03:07
Без комментариев)

Oleg N. Cher
31.08.2016, 03:57
Тогда - пламенный привет Reobne! :-)

За появление этого мастера настроек благодарим AzAtom'а. Главный вдохновитель. Тестируйте. Все претензии/пожелания/предложения (безо всякой гордости) высказываем лично или публично, но не травматично. ;-) Напомню, это снап, моментальный слепок, а у меня ещё много всяких интересных идей. ;-)

http://i.piccy_.info/i9/df9af6fdd691b2e3a66f8e5cb036fc01/1472604723/14695/1065564/ZXDevOpt.png

• Улучшенная система сборки проектов (http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=291&p=1786#p1786)

Reobne
31.08.2016, 07:46
:v2_dizzy_heart:
Ну, закончу ловить мышей в одном месте, и обезательно наведаюсь посмотреть, что там новое шуршит. Противограбельная каска уже на мне, потихоньку попластунски можно попробовать. Если что всегда можно сигануть обратно. :)

И что ты так меня заманиваешь? Будто мой шиворот тебе мёдом намазан. :)

А сам уже планирую закачать последнюю версию, распаковать её, попробовать сделать новый проект. Компильну для пробы. Кажется нужно подключить модуль бейсика, который у тебя умеет выполнять многие команды клонированные от бейсиковских. Название этого модуля не помню. Надо будет искать. Страшно, а вдруг не найду. Ладно, поджилки трясутся, но нужно будет пробовать. Там есть команда печати, кажется тоже Print, как в бейсике. Попробую её. Попробую напечатать ей "Hello - wrong". Компильну - проверю. Потом, конечно, включу-таки фантазию, и напридумываю интерфейс своего нового уникального модуля на ассемблере, прям сразу используя придуманное в проекте. Проект конечно не откомпилиться. Надо написать этот мой BackEnd ассемблерный. Придётся лазить по чердаку форума в поисках темы "Как написать свой модуль на ассемблере".
Oleg N. Cher, Может сделаешь пункты в меню ZXDev-а "Добавить новый модуль в проект", "Добавить модуль на ассемблере", "Сделать текущий модуль главным".
Помню больно ударили грабли, когда я сделал два модуля на ассемблере, и из одного пытался вызвать другой. Прям страшно это пробовать снова.

s_kosorev
31.08.2016, 08:30
Под Windows 32/64 бит.
где 64бит сборку взять?

Oleg N. Cher
31.08.2016, 12:38
Какой ты весь зашоганный, Reobne! А чтобы ты не пах так сильно медком, я тебе, пожалуй, откажу. Сначала это обтесть. Кроме того, я навязываюсь людям, шоб ты знал. Прихожу в аську, в скайп, в контакт и нудю, нудю про свой XDev. :-) А если тебе такое не нравится, то можешь испугаться одного того, что это всё устроено не так, как ты думаешь ) Ты понимаешь, я сейчас в раздумьях насчёт вообще самого факта существования файла конфигурации проекта, а ты понукаешь меня поверх всего этого заниматься детским садом. Ну-с, теперь ты из гуя делаешь то, что мог бы написать в батнике. Просто ты: a) не владеешь командной строкой; b) привык к Дельфи; c) ... но кто тебе доктор? где тебе ещё среда в стиле Дельфи для разработки под Спек? Тут некоторые вообще хотят компилятор на самом Спеке. Ты сопоставь удобство-то. Ну да, сложная у меня среда, тонкостей много, но ты их не избежишь, даже если я тебе пару новых менюшек налеплю. Лучше давай, заводи себе какую-никакую асечку, и давай решать все вопросы оперативно. А то только ты у меня такой вредный юзер. ;-) Кроме того, у каждого абсолютно своё видение, и не все с тобой согласятся.

FAQ. Мы начали писать его для Reobne.

Q. Как написать свой модуль на ассемблере
A: Модуль на ассемблере выглядит так же, как и не на ассемблере. На уровне модуля на ассемблере пишутся отдельными процедуры. Пишешь:


IMPORT Asm; (* для краткости можно: IMPORT a := Asm; *)

PROCEDURE MyAsm;
BEGIN
Asm.code(" CALL 0xD6B"); (* a.code(" CALL 0xD6B"); *)
END MyAsm;Дальше начинаются сложности, которые не исправишь новой менюхой ;-) Например, как извлекать из асма параметры процедур.

Q: Как добавить новый модуль в проект
A: В исходнике:

MODULE MyNewMod1;

Меню XDev => ZXDev Project Setup => Modules

Было: MyMod1.rel MyMod2.rel MyMod3.rel
Стало: MyMod1.rel MyMod2.rel MyMod3.rel MyNewMod1.rel

Да, называть файл модуля следует так же, как и имя (после MODULE), чтобы потом не удивляться. Тонкость-с ;-)

Менюшка эта, Reobne, маскирует сложность, а не убирает её, шоб ты знал, так что граблей у тебя ещё будет много, обещаю. ;-) См. выше. Не хочешь граблей, бросай Спек и бери C#. Впрочем, с C# граблей у тебя будет ещё больше. ;-) А тебя не смущает, что ты, открывая примеры из поставки, можешь прямо сегодня испортить их собираемость, потерев трудолюбиво написанные мной ручками батники просто из этой менюшки? И я всё ещё думаю, как этого избежать. А ты уже новых плюшек хошь. ;-) Трудности твои лежат не в плоскости добавления новых модулей. Это ты научишься делать быстро. А - в написании и отладке кода. Я тебе эту (светлую) мысль пытаюсь донести. ;-)

Q: Добавить модуль на ассемблере
A: "Модулей" на ассемблере не бывает, см. выше. Ассемблер только на уровне отдельных процедур.

Q: Сделать текущий модуль главным
A: Главный наш модуль:

1) Помечен комментом (*$MAIN*)
2) Присутствует в менюшке в поле Main Module, где его имя написан без расширения (я опять отвлекусь, может тебе не нравится, что окошко не следит за тем, записал ли ты настройки? я принципиально не буду делать косметику, окошко это побырому сляпано и за*****кодено для наслаждения эстетических чувств нелюбителей батников, мне-то оно ни к чему. ;-) Шучу, с ним и правда проще создавать проекты. Ты бы лучше запросил кнопку "Создать новый проект", вот это действительно хорошая идея )
3) Не присуствует в поле Modules.

То есть если тебе надо какой-то модуль сделать главным, ты пишешь в нём (*$MAIN*), добавляешь его имя в Main Module и убираешь из Modules, если он там конечно был. И не забываешь нажать Save. Проще некудыть ;-) Но отсутствие граблей не гарантируется ;-)


s_kosorev, отдельной 64-битной сборки под винду - нет. У винды 64 хорошая совместимость с 32 битами. Смысла делать отдельную сборку?

Поэтому всё берётся там же, в репе (https://github.com/Oleg-N-Cher/XDev). Сейчас, после того как я покурочил батники, не все примеры собираются. Это вечный процесс, так что стабильность я вообще не гарантирую.

А чтобы не перекачивать всё заново, а оперативненько обновлять, лучше себе реп склонировать.

- - - Добавлено - - -

Я понял! моя проблема в слишком большом кол-ве фич :-) Именно поэтому я постоянно вынужден решать трудности, которых нету в других средствах! в ZX Like Pascal вот модулей вообще нет, и гуя нет, вот у вас и не возникает светлая идеи попросить мастер добавления новых модулей. ;-) Reobne, так в ZXDev тоже можно всё в один модуль запихнуть, давай, учись, студент. ;-)

- - - Добавлено - - -

А 64-битный ZX Like Pascal почему не попросите? :-) Даже и мысли такой не возникло, правда? Я прав, я точно прав :-(

Reobne
31.08.2016, 16:18
Огромное спасибо и респект! Жаль, что я ещё не начал!

Пока что немного рефлексовопросов к FAQ (думаю, что с них нужно начать сам FAQ)
1. Когда последний раз редактировалось FAQ?
2. По какому адресу можно скачать самую последнюю версию этого FAQ?
3. Могу ли я задать вопросы, которые не нашёл в этом FAQ?
4. Когда-же уже начнутся нормальные вопросы про ZXDev в этом надоедливом FAQ?
5. Какими знаниями нужно обладать, чтобы без особых напрягов начать пользоваться ZXDev, и сделать нечто своё, отличное от "Hello, World!"?

Oleg N. Cher
31.08.2016, 20:18
Я начну с ответа на пятый вопрос. Огромными, мой друг. И широким кругозором. :-)

Ты же видишь диапазон взглядов на то, как должен выглядеть процесс разработки? Для кого-то виндовс моветон, боюсь даже спросить какой версией CentOS там пользуются. ;-) Позицию уважаю, но линухи люто ненавижу. Кто-то вообще не приемлет SDCC. Потому что Орион. ;-) Позиция тоже понятна и шляпоснимательна. Кто-то хочет, чтобы ZXDev работал у него на утюге. Кто-то - на 64-х битах (кстати, чисто 64-битный Ofront+ для винды есть, см. в репе). Кто-то не приемлет этот Паскаль, потому что он неправильно называется. Кто-то - потому что в нём нельзя делать IoC (на самом деле можно) и нету шаблонов. Я серьёзно. Но этот спортсмен выступает в своём весе, и отнюдь не сверхтяжёлом. Мне бы хотелось видеть настроения соавторства, господа, это большое и настоящее подспорье. Тогда всё будет. Хотя удобств VS не обещаю, сами понимаете, не тот масштаб. Кстати, такой фичи как "сделать текущий модуль главным" нету даже в Дельфи.

Reobne, если ты чего-то не усматриваешь в ZXDev, то это может значить, что просто смотришь не туда. После Дельфи знаешь как непривычно делать формы в BlackBox? Не то, что это неправильно, просто это не так устроено, как ты думал. Всё это - не для того, чтобы тебя запутать, никто специально не плетёт против тебя закулисных интриг. ;-) Так что оставляй барские замашки ;-) И задавай уже те самые нормальные вопросы, которые приходится решать в великом множестве в рабочем порядке. А я помогу. А для оперативности юзай асечку. ;-)

Ну а FAQ пусть живёт здесь:

https://github.com/Oleg-N-Cher/XDev/blob/master/ZXDev/Docu/FAQ.txt

- - - Добавлено - - -


SDCC has grown to be a large project. The compiler alone (without the preprocessor, assembler and linker) is well over 150,000 lines of code (blank stripped). The open source nature of this project is a key to its continued growth and support. You gain the benefit and support of many active software developers and end users. Is SDCC perfect? No, that’s why we need your help. The developers take pride in fixing reported bugs. You can help by reporting the bugs and helping other SDCC users. There are lots of ways to contribute, and we encourage you to take part in making SDCC a great software package.

Для тех, кто не знает инглиша, я сделал краткий перевод:


SDCC, братки, это вам не хухры-мухры, а такой охренненой сложности прожект, шо вы задолбаетесь что-то в нём ваще понять. ;-) Никакие Andrew771 с Oleg N. Cher'ом стока кода не напишут, даже если и сговорятся что-то делать вместе. ;-) Но SDCC неперфектен, мать его так! Перфекционисты тихонько плачут в уголке, а крутые перцы, прилагая силу воли, таки отрывают жопу от стула и помогают SDCC стать лучше хоть как умеют! Теперь выбирай, с кем ты! ;-)

- - - Добавлено - - -

Вообще, удивляете вы меня, господа. Подход к ZXDev у вас как у девушки к выбору идеального мужчины. ;-) Шобы под ключ, раз и на всю жизнь. И шоб сам мусор выносил. ;-)

Но такой же ли подход у вас к другим средствам? Взять Boriel's Basic, ничо что он на питоне написан и требует этого самого питона для своей работы? А это не один файл. А взять ZX Like Pascal: нету модульности, записей, целых типов со знаком, вещественных типов. Андрей долго хлопотал, чтобы пишущий обходился без асма, но при этом тот же самый асм генерирует, т.е. нужно писать батник, который после вызова Паскаля вызовет ассемблер. Нет IDE, нет раскраски синтаксиса, нет отладчика. Хорошая, законченная вещь? Та даже и не приблизительно. Но, то ли я невнимательно читал, то ли действительно имеет место быть, но запросы у вас в этом случае намного скромнее. То ли язык правильные ассоциации вызывает. Названием своим. Никто не просит мастера добавления новых модулей, даже 64-битную версию под линукс не просили. :-) Те, кто делает вид, что винду не видел ваще никогда, а набрать sudo apt-get install wine религия запрещает. ;-)

Мож поясните, в чём замес?

P.S. А ничо, что в SDCC поддержаны такие стандарты Си, что я про них даже не слышал? И около 7000 автоматизированных тестов выполняется для каждой новой сборки. Мы с Андреем за всю жизнь столько не придумаем. Думаю, и команда z88dk в этом смысле имеет бледный вид.

Мой новый коллега, Дэвид Браун, начал разработку с того, что создал систему для автоматической сборки и тестирования voc для всех платформ, включая утюги. ;-) И вот тогда я понял, что занимаюсь не программированием, а самопалом, и надо апгрейдить свои взгляды на разработку. А ведь тут многие господа хард-кодеры жокеи асма даже ещё не доросли до систем контроля версий, так что я в этом смысле корифей. ;-)

Так-то. Нам такие темпы работы только снятся...

Smalovsky
31.08.2016, 20:25
А почему именно Оберон? Есть трансляторы на Си с Модулы-2. Мне кажется Модула-2 гораздо ближе спектрумисту, чем Оберон. Синтаксис Модулы-2 проще чем синтаксис Оберона.

Oleg N. Cher
31.08.2016, 20:38
Я никак не запрещаю спектрумистам использовать Модулу-2 и трансляторы с неё в Си. Пользуйте, если хотите. Буду рад это обсудить.

Модула-2 не проще, а сложнее Оберона. См. Арифметика синтаксиса.

http://www.uni-vologda.ac.ru/cs/syntax/http://www.uni-vologda.ac.ru/cs/syntax/ariphm.htm
Вот есть Андрей, у него закладка "надо генерировать в ассемблер". Есть Игорь с закладкой "винда моветон". ;-) Есть kosorev, который любит 64 бита. А есть я, предпочитающий Оберон Модуле-2, т.к. я считаю Оберон действительно шагом вперёд. В правильном направлении. А что там ближе спектрумисту - это смотря какому спектрумисту. Есть мнение, что нету ничего ближе асма, в кр. случае Си.

s_kosorev
01.09.2016, 13:11
s_kosorev, отдельной 64-битной сборки под винду - нет. У винды 64 хорошая совместимость с 32 битами. Смысла делать отдельную сборку?
У меня WoW64 может быть не включен
Недолюбливаю эмулятор 32бит винды, трата ресурсов

- - - Добавлено - - -


А 64-битный ZX Like Pascal почему не попросите? :-) Даже и мысли такой не возникло, правда? Я прав, я точно прав :-(
Его по уму на шарп перевести нужно (а там хоть 256бит), что бы люди помогать начали, ну или JavaScript

Oleg N. Cher
01.09.2016, 17:18
Люди помогать не начнут, неважно на чём написано. В основном потому, что относятся как девушка к выбору идеального мужа. Она его не "лепит" - сразу готовенького подавай. ;-)

При выключенном WoW64 (первый раз слышу, что его можно выключить, думаю, это тоже религия ;-) ) можно использовать Ofront+ для командной строки Windows, нативная 64-битная версия. Зря я, что ли, старался? ;-)

- - - Добавлено - - -

Наверно в глубине души каждого программиста живёт идея "как это должно быть идеально устроено [как бы сделал я сам]". Исключительно поэтому один считает, что нужно 64 бита, другому надо линухи, остро встаёт выбор языка для реализации. И смотря на "очередную" поделку (фи, оно дёргает SDCC, как это мерзко!) у чела в душе живёт чувство корявости, которое он проецирует на этот проект. "Сам бы сделал не так. Но делать не буду. Времени нет. Так что пусть аффтар корявит себе дальше, я мимо".

Как-то так.

Raydac
01.09.2016, 17:27
Люди помогать не начнут, неважно на чём написано.
поэтому все хорошие проекты делались авторами не для людей, а для себя, люди подтянулись в процессе

Oleg N. Cher
01.09.2016, 17:30
Ну да, подтягиваются. Если "видение" совпадает (или почти совпадает, как договорятся), а это бывает ре-е-дко.

А раньше относились совсем не так. Вот тебе Laser Basic, учи матчать, студент. И даже мысли не возникает, что в нём что-то неидеально. ;-)

OrionExt
02.09.2016, 01:28
А почему именно Оберон? Есть трансляторы на Си с Модулы-2. Мне кажется Модула-2 гораздо ближе спектрумисту, чем Оберон. Синтаксис Модулы-2 проще чем синтаксис Оберона.
Модула. Лучший язык на заре зарождения. Но волями судеб купленный Borland-ом, и им же слитый в унитаз. История вернулась спиралью, и Borland слили в те же места не далекие) Вот и весь сказ.

- - - Добавлено - - -

Си подобные языки – это просто детский лепет, на платформе 8-бит (intel) по сравнению с Модулой. На простой платформе – это был еще тот конкурент.

Oleg N. Cher
02.09.2016, 01:33
Си-подобные языки – это не просто детский лепет, а суровая реальность. На любой платформе. Модула же – фантом, который не имел заслуженного распространения ни на одной платформе.

Если бы вы так хорошо пользовались Модулой-2, как её хвалите. ;-) Тогда бы может был у нас предмет разговора, например, как лучше всего библиотеки для Ориона на ней сделать. ;-)

OrionExt
02.09.2016, 01:52
Да и я язык Си не для интела придумали. Тама основная фишка - косвенная адресация. В чем интел был убог.

- - - Добавлено - - -

Уважаемый, Oleg N. Cher, вы очень зажаты стереотипами. Мне очень тяжело с вами вести конструктивный разговор. Это выше моих сил.
Скажу проще. Я вам про корову, а вы мне про быка.

- - - Добавлено - - -

Вы вообще понимаете что такое бизнес интерес? Borland купила Паскаль, вложила в него куча средств. А тут появляется язык Модула – круче, быстрее, практичней. И за 3 копейки. Как вы себя поведете?

Oleg N. Cher
02.09.2016, 01:56
Дядя Борман со своей жадностью и пониманием, что такое внутрифирменная конкуренция между разными продуктами, безусловно повлиял на распространение Модулы-2. Однако не только он. Дяди-коммерсанты вообще предпочитают давать людям, то, что те хотят, попутно культивируя спрос и не забывая про свои карманы.

Вы удивитесь, но Вирт взял Модулу-2, кое-где пересмотрел, кое-где унифицировал (например, заменил вариантные записи расширяемыми), кое-где упростил, обильно сдобрил средствами, повышающими надёжность, позволяющими быстро искать ошибки, добавил сборщик мусора и назвал получившийся язык "Оберон". Но сегодня мы имеем то же скупое наследство и у Оберона, и у Модулы, этих пасынков "настоящего" мэйнстрим программирования – мало компиляторов, мало разработчиков, мало библиотек, мало информации, мало книг, мало спроса, мало культуры строгого типизированного программирования. Замкнутый круг. Отход от канонов простоты в сторону огромной многоуровневой сложности.

- - - Добавлено - - -

Уважаемый OrionExt, никакого конструктивного разговора мы с Вами не ведём. :-) У нас нет его предмета. Конструктив начинается с "давай сделаем..."

- - - Добавлено - - -


А тут появляется язык Модула – круче, быстрее, практичней. И за 3 копейки. Как вы себя поведете?Что значит "появляется"? С неба, что ли, падает? Да они сами разработали ТурбоМодулу, никто даже не заставлял лицензию покупать. А термин "быстрее" я бы отнёс к реализации скорее.

s_kosorev
02.09.2016, 02:44
В серверах последних от ms wow64 выключен. Оберон серьезный продукт значит ему место на серьезных компах.

Oleg N. Cher
02.09.2016, 04:05
;-)

ps

OrionExt, знаю я всё про Модулу-2 и про её успехи в космосе, и что применяется для сверхнадёжных систем. Но мэйнстрим-программирование развивается в сторону увеличения сложности и сокрытия слоёв, в то же время в "академических" кругах, не обременённых проблемами гонки и выживания (не столь обременённых), позволяют себе сделать экстракт, выжимку, так сказать. Минимальное ядро языка. И работать над упрощением и повышением безопасности разработки. Оберон - достойное продолжение Модулы. Это спорный вопрос, есть ли ему место в восьмибитной разработке, но почему бы не попытаться?

OrionExt
02.09.2016, 04:33
Что значит "появляется"? С неба, что ли, падает? Да они сами разработали ТурбоМодулу, никто даже не заставлял лицензию покупать. А термин "быстрее" я бы отнёс к реализации скорее.
Сами разработали (цитата: разработанный Никлаусом Виртом в 1978 году (https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B0-2)):D Взрослый человек, а верите в сказки. Авторское право там никто не отменял. Купили. Я больше поверю в историю – стырили). Но это не так.

- - - Добавлено - - -

Интересно эта троица торгашей хоть чего сама разработала. Borland (https://ru.wikipedia.org/wiki/Borland).
Судя по истории Mодулы-2 и Borland, я больше поверю этой статье (http://techtinkering.com/2013/03/12/if-only-borland-had-stuck-with-turbo-modula-2-for-cpm/).

Oleg N. Cher
02.09.2016, 04:55
Язык разработал Вирт с сотоварищами. И первый компилятор. Для PDP-11. В Цюрихе. В Швейцарской высшей технической школе (https://ru.wikipedia.org/wiki/%D0%A8%D0%B2%D0%B5%D0%B9%D1%86%D0%B0%D1%80%D1%81%D 0%BA%D0%B0%D1%8F_%D0%B2%D1%8B%D1%81%D1%88%D0%B0%D1 %8F_%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1% 81%D0%BA%D0%B0%D1%8F_%D1%88%D0%BA%D0%BE%D0%BB%D0%B 0_%D0%A6%D1%8E%D1%80%D0%B8%D1%85%D0%B0). Но ТурбоМодулу же не Вирт разработал? Для MS-DOS. А она есть. А тырили в основном идеи. И продолжают тырить. Но идея без реализации... эх, сами знаете.

Я всё жду спектрумиста, который освоит разработку на Модуле под ZX. И поразит всех небывалыми демками и играми, да так шобы челюсти об пол гремели. ;-) Без этого всего мы просто мелем языками без всякой видимой пользы.

OrionExt
02.09.2016, 05:21
Но ТурбоМодулу же не Вирт разработал? Для MS-DOS. А она есть. А тырили в основном идеи. И продолжают тырить. Но идея без реализации... эх, сами знаете.

Вирт не обладал, способностями Гейтса. Гейтс - талант. Что уж теперь. MS-DOS тоже не Гейтс написал. А купленный софт-продукт Модула-2, переписать под MS-DOS не вижу проблем. А еще прикол Модулу написали на Модуле. Другое дело если такая внезапно “золушка”, уделывает продукт под маркой «мейнстрим». Такое купленное хоронят сразу. Закон рынка.
Турбо Модула - 2 на СP/M существует и отлично работает;)

Oleg N. Cher
02.09.2016, 05:35
Прям-таки уделывает? ;-) А что-то не заметно. Даже для CP/M на ней не особо писали. Лучший язык для восьмибиток - это PL/M. Я серьёзно.

Маленько писали для Amiga, существовал даже Amiga Modula & Oberon Klub (AMOK) (http://zx.oberon2.ru/forum/viewtopic.php?f=29&t=234). Их код на Обероне и по сей день смотрится очень приятно, а портабельный даже собирается. Например, вот этот модуль (https://github.com/Oleg-N-Cher/XDev/blob/master/WinDev/Lib/Mod/EcoBigSets.Mod) взят из архива клуба, а изначально разработан для Oberon-A.

Мне Оберон и нравится за неизменную основу, особенно в свете того как плющит "современные мэнйстрим-языки". Но некоторые господа считают это пакостным недостатком [язык не развивается]. ;-)

OrionExt
02.09.2016, 05:55
Лучший язык для 8-bit и СР/М приплюсуем - это Бейсик. Только программ системных на нем не писали, как в общем и на Паскале:D

Oleg N. Cher
02.09.2016, 06:03
P.S.

Я ведь не отписывался здесь, но работа над ZXDev тем временем продолжается. Кроме мастера настроек проекта, который я считаю практически готовым, недавно добавил процедуру Best40.PUTSPR для вывода спрайта по пиксельным координатам от SerzhSoft. Начал набрасывать быстрый спрайтовый вывод, учитывающий выход за пределы экрана, под условным названием Laser2. Сделал библиотечку для компактной вещ. арифметики (http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=141&p=1793#p1793) (юзается ПЗУ-калькулятор и пятибайтный формат). А ещё мы с AzAtom совместными трудами забабахали быструю спиральку (http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=85&p=1792#p1792), пишет он, я только рефакторю код. Дело движется, господа.

s_kosorev
02.09.2016, 08:49
Мне Оберон и нравится за неизменную основу, особенно в свете того как плющит "современные мэнйстрим-языки".
это оберон не изменная основа? какой из оберонов? Вирт его под каждый проект перепиливал и кричал что это теперь правильный

По поводу лаконичней значит проще, вообще чес.
[Метка:] [Оператр] [Аргумент {, Аргумент}] все! весь ассемблер, в 100 раз проще оберона, но что то не в 100 раз проще писать на нем

Oleg N. Cher
02.09.2016, 16:51
Ну, за неизменную будем считать первый конечно. Самый первый. Остальные - его надмножества. Оберон-07 - кастрированное надмножество-подмножество, припиленное для ARM'ов и ПЛИС. ;-)

- - - Добавлено - - -

Более того, то, что у Оберона-1 и Оберона-07 неизменно, тоже отнесём к неизменной основе.

Оберон - маленький язык, и диалекты его тоже малы. Что упрощает ориентирование в них. Вирт ударился в специфику своей текущей деятельности и, соответственно, подтащил туда Оберон, попутно отсекая ненужные ему средства, чтобы компилятор упростить. Но фанатизм вредит делу, и среди оберонщиков действительно есть такие, которые называют кастрированный адапт для ПЛИС единственно правильным Обероном. Есть и такие, которые относят в "единственно правильный Оберон" только AO. Короче, хватает своего безобразия.

Я лично считаю зрелым Обероном, адаптированным для индустрии, Компонентный Паскаль, надмножество Оберона-2. Но из других диалектов тоже можно извлечь свою пользу.

Oleg N. Cher
11.09.2016, 04:33
Админы и модеры, очень неудобно, что новое форумное сообщение прилепляется к старому, а потом ещё раз. Получается густая каша. Раньше вроде время, когда происходит слепливание двух сообщений в одно, было выставлено поменьше. А сейчас? Сутки?

В общем, я за то, чтобы сообщения вообще не слепливались. Или пусть это время будет минимальным, не больше пары часов. А то очень анноит.

- - - Добавлено - - -

А ещё было бы хорошо отделить хардварь от софта. Я вообще не интересуюсь аппаратными вещами, и приходится их пролистывать всё время, тратя на это трафик и время, поскольку читать форум начинаю с новых сообщений.

s_kosorev
11.09.2016, 09:50
это специально что бы поток сознания в том не выходил

Oleg N. Cher
11.09.2016, 20:19
Так всё равно же выходит. И отредактировать сообщение можно же.

Смысл моей просьбы в том, что если время "прилепливания" сделать не больше двух часов, то прилепляться будут сообщения "вдогонку": вспомнил, что не всё ещё сказал и добавил.

А тут спустя часов 10 просто сообщаешь в своей теме другой пост, уже не очень связанный с первым, а он прилепляется. И другим неудобство: приходится проматывать сообщение, которое они уже читали к "прилепленной" части.

Bedazzle
11.09.2016, 23:06
И другим неудобство: приходится проматывать сообщение, которое они уже читали к "прилепленной" части.

Это если сообразят, что вторую или даже третью часть не читали

Oleg N. Cher
29.01.2017, 03:10
Я отвечу здесь:


Oleg N. Cher, почему не хочешь сразу взяться самому и делать цикл (рубрику Оберона?), будешь гостей себе туда звать и сам постепенно (с нуля) писать о процессе для всех желающих почитать. Я бы наверное почитал.Уже сделано, hobot. Для этого был создан целый форум (http://zx.oberon2.ru/forum/viewforum.php?f=10). Но отсюда туда почти никто не пришёл. Горделивые кодеры на асме будут читать о процессе с нуля только если это будет, как минимум, процесс разработки 3D-движка для DOOM'а на Спектруме, работающего с 50fps. Поскольку я не так крут, то получилось то, что получилось. Я не плачусь, просто констатация факта.

Что до наполнить журнал Downgrade статьями об Обероне - просто нет столько энтузиазма.

dosikus
29.01.2017, 12:59
Oleg N. Cher, результат предсказуем, не так ли? И здесь оберон не взлетел ...

Oleg N. Cher
29.01.2017, 13:28
И нечего зубоскалить. Дело только в инертности масс. А в контексте ZX ещё и в тёплых ламповых чувствах.

Я писал уже о новодельных компиляторах. Здесь у Оберона все преимущества. Разработать его компилятор может средних способностей программист за очень разумный срок. Чего нельзя сказать о C++, Go и т.д. Есть своё применение и для лайнеров, и для лодок.

Но дело не только в компиляторе. Разумеется, компилер на коленке не смахивает на серьёзное решение, которым хочется воспользоваться. Дело в сложности и простоте - двух крайностях, между которыми мечутся IT-специалисты. Оберон квинтэссенция простоты. А простота будет привлекательна всегда.

- - - Добавлено - - -

dosikus, Вы видели в теме про печать чисел (http://zx-pk.ru/threads/27260-pechat-dvukhbajtovogo-chisla-bez-znaka-i-so-znakom-v-mashkode.html?p=897140&viewfull=1#post897140) высказывание jerri?

я скажу почему в в бориеле нет тонкой оптимизации
она там не нужна.Т.е. когнитивный диссонанс. Бейсику прощают отсутствие оптимизации. Бейсику прощают кривость. Потому что это Бейсик, он тёплый и ламповый. А про SDCC jerri высказался плохо, хотя сам его не юзал. Просто код видел. Сгенеренный старой версией SDCC без включённых опций оптимизации.

Всё это очень характерно. В природе человеческой. Своё любим. Чуждое, не вникая, хаем.

Shiny
29.01.2017, 15:04
Т.е. когнитивный диссонанс. Бейсику прощают отсутствие оптимизации
можно подумать, что другие компиляторы идеальны.

Я использовал разные средства, получал готовый код и переписывал заново. Выигрыш был немного лучше.

Oleg N. Cher
29.01.2017, 15:08
Тоже способ, не спорю.

Господа, дело не только в Обероне. ZXDev - это мультиязычная среда разработки. Где библиотеки для SDCC, например? Здесь проскакивала парочка, кроме тех, что адаптировал я. Спрайты и TR-DOS. Где ещё? Меня ZX интересует, а не пентево.

А ещё, помимо нежелания разрабатывать на Си, ещё и расслоение между предпочтениями компилятора, причём сами компилеры больше хвалят/ругают, чем разрабатывают на них.

jerri
29.01.2017, 21:22
А про SDCC jerri высказался плохо, хотя сам его не юзал. Просто код видел. Сгенеренный старой версией SDCC без включённых опций оптимизации.

Всё это очень характерно. В природе человеческой. Своё любим. Чуждое, не вникая, хаем.
Ты слова то контекста то не выдирай
Пиаришь своё? Будь готов к критике.
А если не можешь обосновать как твою продукцию использовать в чужой деятельности, то будь готов остаться без продаж

И как говорил один известный человек
Другого народа для вас у меня ннт

Oleg N. Cher
29.01.2017, 22:42
Хорошо, я пиарщик-неудачник. Но зато хоббист.

- - - Добавлено - - -

А если вы спросите как пиарить Оберон, то надо заткнуть рты неугодным и обмануть остальных. Так всегда делают.

Качество продукта при этом имеет не столь больше значение.

- - - Добавлено - - -

Притом всё это надо делать в массовых масштабах и за деньги.

jerri
29.01.2017, 22:59
Хорошо, я пиарщик-неудачник. Но зато хоббист.
А если вы спросите как пиарить Оберон, то надо заткнуть рты неугодным и обмануть остальных. Так всегда делают.

Качество продукта при этом имеет не столь больше значение.
Притом всё это надо делать в массовых масштабах и за деньги.

Дело не в том что надо вкладывать денег и прочее.

Просто весь твой пиар по моему мнению заканчивается на моем вопросе: зачем оно нам?

Только я спрашиваю: где ниша для твоего Оберона? а ты почему то слышишь: что за гадость ты сюда принес?

Oleg N. Cher
29.01.2017, 23:06
Вот есть SDCC. Есть люди, которые имеют положительный опыт работы с ним. Они пользуются и не вякают на форумах. Или вякают, но редко, т.е. это не есть их основная радость от их деятельности. Но есть люди с отрицательным опытом с ним. И они вякают на форумах, поскольку любят выражать свою точку зрения (часто негативную). Если судить о качестве продукта по количеству тех и других, можно понять ситуацию совсем неверно до противоположного.

А есть Hi-Tech C. У людей накоплены тёплые и ламповые чувства. И они тоже не преминут их высказать. Что тоже может иметь мало отношения к практике. Речь не в том, кто громче кричит, важнее кто что делает. Какой же компилятор круче? Пока что я не вижу у HTC ни одного преимущества перед SDCC. По факту: библиотек для SDCC (Z80/ZX) мало, а для HTC их нет вообще (не считая тех, что в поставке).

Ещё важная вещь. Для более хорошей кодогенерации в SDCC нужно задавать --max-allocs-per-node 20000 (и выше). И именно с таким ключиком сгенеренный код и нужно смотреть, перед тем как критиковать.

- - - Добавлено - - -


зачем оно нам?jerri. Здесь паяют. И обсуждают железки. Я не спрашиваю у них, зачем оно мне. Ещё здесь кодят для пентевы и пишут какие-то непонятные штуки для УК-НЦ и Немиги. Я тоже не спрашиваю. Когда я говорю, что для Оберона делают новодельные компиляторы, я не имею в виду тебя. И когда я говорю, что Оберон интересен, иначе бы для него не делали компиляторы, я тоже не имею в виду тебя. Почему я должен подстраиваться под твои узкие интересы, если я их даже не знаю? Кроме того, у здешнего пипла нет и не может быть тёплого лампового чувства ни от моей персоны (ибо я не тусовался ни на каких пати), ни от работы в ZXDev, потому что банально даже Си никого особо здесь не интересует. Так чего ты ещё от меня хочешь? Какого такого обоснования? Откуда я знаю, зачем оно вам?


Только я спрашиваю: где ниша для твоего Оберона?jerri, я отвечал на этот вопрос уже сто раз. Твоё восприятие просто не улавливает ответа. Я не виноват.

jerri
29.01.2017, 23:55
Ещё важная вещь. Для более хорошей кодогенерации в SDCC нужно задавать --max-allocs-per-node 20000 (и выше). И именно с таким ключиком сгенеренный код и нужно смотреть, перед тем как критиковать.

ну какой код выложили тот и разбирали. остальное - проблема выложившего



jerri. Здесь паяют. И обсуждают железки. Я не спрашиваю у них, зачем оно мне. Ещё здесь кодят для пентевы и пишут какие-то непонятные штуки для УК-НЦ и Немиги. Я тоже не спрашиваю. Когда я говорю, что для Оберона делают новодельные компиляторы, я не имею в виду тебя. И когда я говорю, что Оберон интересен, иначе бы для него не делали компиляторы, я тоже не имею в виду тебя. Почему я должен подстраиваться под твои узкие интересы, если я их даже не знаю? Кроме того, у здешнего пипла нет и не может быть тёплого лампового чувства ни от моей персоны (ибо я не тусовался ни на каких пати), ни от работы в ZXDev, потому что банально даже Си никого особо здесь не интересует. Так чего ты ещё от меня хочешь? Какого такого обоснования? Откуда я знаю, зачем оно вам?


Да, здесь паяют и обсуждают железки, но никто не требует избавляться от других железок.
Да, здесь пишут чтото новое и не предлагают избавляться от старого.
Но только ты рассказываешь что за Обероном будущее :v2_dizzy_punk:

здесь далее был еще более жесткий и агрессивный троллинг но я передумал и его убрал



jerri, я отвечал на этот вопрос уже сто раз. Твоё восприятие просто не улавливает ответа. Я не виноват.

ты меня сюда призвал. тебе и отвечать :)

Oleg N. Cher
30.01.2017, 00:16
От чего я предлагаю избавляться?

Будущее, да. Но будущее лодочки. А здесь всех интересуют лайнеры и удовлетворение тёплых ламповых чувств/ностальгии.


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

"Это оптимальный вариант, но не все разумные его используют в повседневной жизни. Многие виды разумных существ считают правильным только свой образ жизни и те ценности о которых им известно. Они даже не хотят понимать не только образ жизни других, но и саму суть их существования."

"Ты прав, Орм. Такое явление мне очень часто приходилось встречать. Многие разумные не задумываются над смыслом своей собственной жизни. В основном они живут согласно догмам, аксиомам и стереотипам услышанным от других, и даже не пытаясь осмыслить их. Очень часто мне приходилось слышать: "так принято" или "все так живут", но при этом никто не думает, а кем именно принято то или иное правило, и для чего? Почему все так живут? Неужели нельзя жить по-другому, чтобы развитие каждого разумного существа не прекращалось? Мне понятно, что многих пугает неизвестность и страх перед будущим, поэтому они и прикрываются общими фразами. Но такую жизнь я считаю бессмысленной.Александр Хиневич. «Путь к Истокам-4: Иная суть» (http://samlib.ru/h/hinewich_a_j)

- - - Добавлено - - -


ну какой код выложили тот и разбирали. остальное - проблема выложившегоВерно, но именно ты передёргиваешь и делаешь общие выводы о качестве (и вообще приемлемости) разработки для Z80 на Си. Неидеально, да. Но, в отличие от Си, к Бориэль-басицу ты лоялен бесконечно.

hobot
30.01.2017, 06:31
и пишут какие-то непонятные штуки для УК-НЦ и Немиги.
Очень даже понятные! Или поясни, что ты в виду имеешь?

Shiny
30.01.2017, 06:42
припилили бы Паскаль к среде, было бы счастье.

Sayman
30.01.2017, 08:05
Oleg N. Cher, вот если честно, sdcc сам по себе не плох. но меня, лично меня, просто выворачивает от того, что стоковая его libc собрана на 99% из кода на си. кода на асме там с гулькин нос. а у хайтеха хотя бы примерно 50на50 или больше в сторону асма. Посмотри на z88dk, там половина библиотеки его это копипасте из библиотеки хайтеха.
ну и ещё - меня бесит, что sdcc криво обрабатывает массивы без указания размера массива. хайтех съедает это легко.
ну и ещё, было бы прикольно выдернуть у sdcc его оптимизатор и адаптировать к хайтеху)))

Alex Rider
30.01.2017, 12:41
выворачивает от того, что стоковая его libc собрана на 99% из кода на си
Если я правильно понимаю, это - плата за его мультиплатформенность. А дальше 2 варианта: либо мультиплаторменность, большое коммьюнити и интерес, либо оптимизация под одну платформу и адепты с однйо платформы. А, судя по дискуссии, C для Z80 не является мейнстримом.
С другой стороны, а зачем для разработки под Z80 общие асмовые библиотеки? Сделай сложную логику и UI на C и напиши на асме критическую к производительности специфическую часть своего приложения. Поюзаешь и Сишную скорость разработки, и асмовую скорость исполнения. И да, Олег как раз-таки занимается разработкой асмовых бибилиотек на C, более специфичных для платформы, чем стоковые.

Sayman
30.01.2017, 14:16
плата за его мультиплатформенность
ну ок. есть z88dk. он заточен под проц z80. Но на базе этого проца платформ было построено больше, чем у человека на руках и ногах пальцев. И все (или большая часть) эти платформы там поддержаны. Там даже есть поддержка (минимальная, консоль и некоторые файловые операции) Спринтера.
Мультиплатформенность мультиплатформенности рознь, как бы. никто не мешает афтарам sdcc сделать аналогичную поддержку платформ библиотеками на асмах.
ТС может и пилит какие-то библиотеки на асме, но вот мне бы было интересно глянуть на реализацию того же printf, malloc и других подобных функций, которые в стоковой либе просто "десятки" килобайт и "мильярды" тактов выжирают (из-за чего, собственно, стоковая либа для нужд консольщины на z80 не применима принципиально).

Alex Rider
30.01.2017, 16:27
Мультиплатформенность мультиплатформенности рознь, как бы. никто не мешает афтарам sdcc сделать аналогичную поддержку платформ библиотеками на асмах.
Если я правильно понимаю, sdcc поддерживает не только пного платформ на Z80, но и платормы на других прцессорах. Получается, что команде sdcc надо писать, отладживать и поддерживать системные либы на асме для всех этих процов. Это все-таки перебор для команды энтузиастов.

мне бы было интересно глянуть на реализацию того же printf, malloc и других подобных функций, которые в стоковой либе просто "десятки" килобайт и "мильярды" тактов выжирают (из-за чего, собственно, стоковая либа для нужд консольщины на z80 не применима принципиально).
Это действительно сложные и толстые функции. Их сложно реализвовать на асме и все-таки а) на Спринтере или ZX Evo с их тактовыми частотсам и объемами памяти вполне себе работоспособны и б) не очень понятно зачем их использовать там, где нужна нормальная скорость работы. Надо сказать, что и сама консоль в разрешении 32 x 24 так себе выглядит, а вывод на ZX-экране шрифта хотя бы 6x8 жрет если не килобайты, то мегатакты.

dosikus
30.01.2017, 16:31
И нечего зубоскалить.

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

Shiny
30.01.2017, 17:03
Наброшу немножко: a mathematical demo (http://www.cpcwiki.eu/forum/demos/a-mathematical-demo/)

Oleg N. Cher
30.01.2017, 18:11
Очень даже понятные! Или поясни, что ты в виду имеешь?Для меня - непонятные. :-)


припилили бы Паскаль к среде, было бы счастье.Счастье кому было бы? jerri и от Паскаля не счастлив. Кроме того, Паскаль НЕ НУЖЕН, Оберон ЛУЧШЕ.

Можно было бы считать ZX-like Pascal частью проекта ZXDev. Почему нет. Я это предлагал Андрею. Но если уже припиливать Паскаль, то почему Паскаль? Лучше Модулу-2. Она более подходящий инструмент для Z80. Но трудность в том, что я не компиляторописатель. Я взял готовый транслятор Оберона в Си, обжил его и облагородил. Т.е. обошёлся малой кровью.


его libc собрана на 99% из кода на си. кода на асме там с гулькин нос.Всё правильно. Я и не использую в ZXDev эту libc, вместо неё свои библиотеки, более оптимизированные.

Впрочем, Alcoholics Anonymous писал, что у z88dk библиотеки, напротив, чисто ассемблерные. И их можно использовать из zsdcc. Ну и почему бы и нет. SDCC и z88dk дружат друг с другом лучше, чем каждый из них по отдельности с хайтеком. В котором, похоже, вообще нельзя сделать то, что мне нужно. А если чудом и можно, то егойный оптимизатор всё перекивирякает.


ну и ещё, было бы прикольно выдернуть у sdcc его оптимизатор и адаптировать к хайтеху)))Лучше выдернуть у хайтека его библиотеки и пользовать с SDCC. Если они конечно того стоят, в чём я сомневаюсь. Нам прикладные библиотеки нужны. Графика, звук, мышь, джойстики, клава. И возможность всё это юзать из ЯВУ.

Боюсь, оптимизатор SDCC никак нельзя использовать с хайтеком. Но вот zsdcc даёт код лучше. И здесь нет последовательного вызова двух компиляторов, который ты нещадно критиковал. Компилятор всё равно один - SDCC, просто адаптированный к новому набору правил для щелевого оптимизатора (говорю, как я это понимаю).

Shiny
30.01.2017, 18:16
Кроме того, Паскаль НЕ НУЖЕН, Оберон ЛУЧШЕ
Я не понимаю в чем разница.

Oleg N. Cher
30.01.2017, 18:20
Ну массы все таки составляющая твоего грандиозного проекта, или ты хотел все сам и только сам и только для себя?Изначально хотел всё-таки ещё для кого-то. Для людей, которым будет интересна кроссплатформенная разработка между Z80 и др. платформами на модульном паскалеподобном языке. Портировщикам игр, любителям экзотических языков программирования. Людям с подобными моим интересами.

Ядро проекта, каким оно могло бы быть, это максимум три человека, ярких энтузиаста, которые бы своими способностями компенсировали мои личные недостатки. Не исключаю, что таких людей могло бы быть и больше, но чем больше людей в проекте, тем сложнее соблюсти единый вектор развития и взглядов на всё это.

И всё бы хорошо, но оберонщиков всё-таки слишком мало. У моих ярких и способных коллег семьи, работа и куча других обязанностей, на хобби-проекты уже не хватает ни времени ни сил.


Ваш оберон прямо таки как мед или нечто другое так и приманивает всяческих "выдумщиков", взять к примеру секту дракона... :)))))))))Нормальных людей он приманивает. Которые побарахтались с десяток лет в избыточной сложности и устали от этого. Драконствующих не приветствую, даже рад, что их кышнули с OberonCore.

- - - Добавлено - - -


Я не понимаю в чем разница.Зачем тогда говорил про осчастливливание всех Паскалем? ;-)

Shiny
30.01.2017, 18:24
Зачем тогда говорил про осчастливливание всех Паскалем? ;-)

просто Паскаль вбивали в голову 5 лет в институте.

Oleg N. Cher
30.01.2017, 19:32
Но раз нет разницы, то уже все и так осчастливлены Обероном? ;-)

Есть доки про отличия.

Оберон - 2. Отличия от Паскаля и Модулы (http://volgota.com/yaroslavz/oberon-2-otlichiya-ot-paskalya-i-moduly)Отличия Компонентного Паскаля от Паскаля (http://www.inr.ac.ru/~info21/cpascal/otliqija_cp_ot_pascal.htm)
(Компонентный Паскаль - диалект и надмножество языка Оберон-2).

Но я смотрю на язык шире, чем просто разработка для Z80. Меня интересует самый совершенный из минималистичных языков, одновременно с этим и самый кроссплатформенный и практичный для разработки (эзотерические языки типа brainf*ck меня не интересуют).

Но приходится закрывать глаза на маленькое сообщество, корявые компиляторы и другие недостатки. Это как конопатить лодку в гараже своими силами. Видите, к этому можно подходить с разных сторон. Можно со стороны "как это мне поможет разработать продукт в сжатые сроки". А можно с позиции эстетики. Обе стороны имеют право на жизнь.

Sayman
30.01.2017, 20:33
Oleg N. Cher, а может сделаете порт игры digger на обероне? там сразу будет понятно, насколько удобен и вообще хорошо этот язык. пока в общих чертах - си сильно рульнее оберона (это если откинуть чисто асм).

Shiny
30.01.2017, 21:12
Было бы интересно взглянуть на plm80. Из доступных есть plmx, но он гонит код под 8080, исходники готовы.

Oleg N. Cher
30.01.2017, 21:27
Да много есть интересного. И пакет Tramplin для разработки для PC в мнемониках Z80. И язык Metal Владимира Кладова. И мой язык COLOSS. И многочисленные Forth'ы. И мини-Си от Raydac & Michailov [HVG]. И Mira Modula-2. Что до PL/M, то я ни одного не щупал, читал только доки. Должно быть интересно. PL/M видится как прокачанный некоторыми высокоуровневыми конструкциями асм, чем-то напоминающий и COLOSS, и Metal. Сделать бы продуманный синтез всех этих вещей. Но я пас. Буду доделывать свои порты игр на Обероне. Может когда-нить вам покажу.


Oleg N. Cher, а может сделаете порт игры digger на обероне?Я уже делаю 3 порта, и они не закончены. В разной стадии готовности. Ещё два в задумках. Хочется сделать. Пожалуй, за Digger не возьмусь.

Да, с асмом Оберону не тягаться. В своей нише асм не подвинется никакому другому языку.

P.S. Если есть желающие писать статью в журнал Downgrade про ZXDev, советую сделать так. Написать на ZXDev небольшую игру, подробно со скринами и листингами описывая все шаги её разработки. Потом, возможно, перенести её на другую платформу. Можно и не переносить, просто заложить предпосылки для этого. Практически все игры, которые мне попадались для ZX, для портирования годятся слабо. То есть годятся, но чёртова уйма работы это. А интерес в том, чтобы облегчить этот процесс.

dosikus
30.01.2017, 21:49
Oleg N. Cher, упс а можно кинуть ссылкой?
Я предполагал что ты вменяемый. Но прибежище именно на форуме оберона этой своры, сильно озадачивало. Недавно , не без моего участия, их турнули и с изиэлектроникс.

AlexG
30.01.2017, 23:04
а можно популярно: за что их (я так понимаю "любителей" дракона) не "любят" или всё таки "любят"?

Oleg N. Cher
31.01.2017, 00:21
Oleg N. Cher, упс а можно кинуть ссылкой?Ссылкой на что? :-) Раньше на OberonCore был раздел, посвящённый Drakon'у. Он к Оберону имел отношение постольку, поскольку есть генераторы Дракон-схем в Оберон. Или как-то так. Я не вникал. Но вроде как они выбрались на свой личный форум, размещённый на их сайте.


а можно популярно: за что их (я так понимаю "любителей" дракона) не "любят" или всё таки "любят"?Ну, лично я к ним более или менее равнодушен, в той степени, в которой они меня не трогают.

Впрочем, "секта" - это громко сказано. С тем же успехом и мы, спектрумисты и олд-геймеры, железячники и ретрокодеры, тоже секта ;-) Если о самом Драконе, это просто блок-схемы. Вы их много раз видели в старых книжках по алгоритмированию.

- - - Добавлено - - -


сразу будет понятно, насколько удобен и вообще хорошо этот язык. пока в общих чертах - си сильно рульнее оберона (это если откинуть чисто асм).Да. На это надо ответить. Чтобы не было неверных выводов, кои, грешен, не без моего участия имели место быть. Ну и пусть jerri на ус мотает.

О преимуществах от переписывания Digger'а с Си на Оберон для Z80-based платформ(ы).

Оберон не даёт никаких преимуществ перед Си при использовании встроенного ассемблера.
В Обероне нет беззнаковых типов. В Си, Модуле-2 и Boriel ZX Basic'е они есть.
Битовые операции на Обероне записывать не так удобно, как на Си. Выглядят громоздче.
Краткосрочных перспектив нет. Посему команда разработки Digger'а в целом поступила верно, выбрав путь переписывания с Си на Си.

Если переписать Digger на Оберон, а потом оттранслировать его обратно в Си, то будет результат, пестрящий, как и Си-вариант, встроенным ассемблером, без беззнаковых типов и т.п. Где тут преимущества?

Идём дальше. Начинаем думать, были бы ли преимущества от того, если бы Digger был написан на Обероне с самого начала? А только потом его переписывали бы на Си. Или странслировали в Си или Java. Вероятно, да, преимущества бы были. И именно оттого, что Оберон диктует стиль чёткого разделения на системно-зависимые и независимые, опасные и безопасные вещи, тем проще обозревать большие объёмы кода. Если модуль X не использует модуль SYSTEM, а это видно в секции IMPORT в начале модуля, то это хорошие шансы предположить, что он никогда не вылетит в чёрный экран с неизвестной ошибкой.

Хидеры Си пишутся вручную. Интерфейсы Оберона генерируются автоматически. Конечно это слабое преимущество, но когда работаешь с Обероном, понимаешь, что так и должно быть. Это удобно.

О долговременных перспективах

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

В свете рождения, жизни и отмирания платформ (довольно быстрого, как мы видим) очень трудно предсказать какие же технологии (программные и аппаратные) возобладают, скажем, через 25 лет. В свете этого хочется иметь исходник Digger'а в таком виде, который бы максимально был готов к переменам. Оберон к таким переменам готов. Его легко переориентировать даже силами одного энтузиаста. Если понадобится. Ну просто чтобы потом не переписывать Digger на другой язык снова (вдруг там даже Си не будет?).

Из-за простоты Оберона, его чёткости и однозначности, эти черты странным образом перетекают в проекты, которые делаются на этом языке. Дело тут не только в "преимуществе := над =" или "WHILE над while()", просто чувствуется хорошая вылизанность, до блеска. Оберон блестит. Не буду говорить за всех, у меня тоже ночи потеряны бдениями в отладчике, но на Обероне почему-то необходимость в этом очень сильно ниже.

Возможно, будет продолжение.

- - - Добавлено - - -

Да, о преимуществах Оберона перед Паскалем. Если в плане наличия хороших мультитаргетных компиляторов и силищи библиотек, то преимуществ нет - Free Pascal на плечах Delphi вне конкуренции. Я видел, на нём даже для Android можно разрабатывать. Хотя конечно далеко не так удобно, как на Java.

Alcoholics Anonymous
31.01.2017, 01:13
вот если честно, sdcc сам по себе не плох. но меня, лично меня, просто выворачивает от того, что стоковая его libc собрана на 99% из кода на си. кода на асме там с гулькин нос. а у хайтеха хотя бы примерно 50на50 или больше в сторону асма. Посмотри на z88dk, там половина библиотеки его это копипасте из библиотеки хайтеха.


Z88DK ближе к GCC, чем к HITECH-C :)


Z88DK is closer to GCC than it is to HITECH-C :)




Впрочем, Alcoholics Anonymous писал, что у z88dk библиотеки, напротив, чисто ассемблерные. И их можно использовать из zsdcc.

Да, более 1000 функций, написанных на языке ассемблера и с целью соблюдения большого подмножества C11. То есть в десять раз больше, чем HITECH. Она написана с нуля - это не копируется из любого места. HITECH-C и другие составители Z80 имеют слишком ограниченные библиотеки для правильной реализации стандарта C. Они только пытаются осуществить то, что называется unhosted часть стандарта, а затем добавить несколько битов здесь и там. HITECH-C добавляет файл ввода / вывода, обеспечивая тонкий интерфейс над BDOS в CP / M. Он не в состоянии делать файл ввода / вывода на общем компьютере Z80. Возможно, вы видели, ф / м заголовков, заимствованные из HITECH в классической библиотеке Z88DK, но это только для реализации CP / M интерфейс таким образом, который ожидается CP пользователей / M.

Вы можете посмотреть на исходный код и сравнить; Открыто.

Базовый каталог источник находится здесь:
https://github.com/z88dk/z88dk/tree/master/libsrc/_DEVELOPMENT

Файлы заголовков здесь:
https://github.com/z88dk/z88dk/tree/master/include/_DEVELOPMENT/sdcc

Например, чтобы посмотреть на реализацию string.h смотрите в каталог строку / Z80.

Sayman упоминается PRINTF. Реализация Z88DK составляет 100% ассемблере, но есть что-то особенное об этом. Вы можете отказаться от% преобразователей в индивидуальном порядке. Если вы решите, что вам нужно только% S, вы можете попросить только% s в вашей двоичной системе. Это может уменьшить размер реализации совсем немного для небольших программ. Другая вещь модель STDIO Z88DK представляет собой модель UNIX, которая позволяет любому устройству чтения или записи с PRINTF и Scanf (а функции POSIX read,write и т.д.). Это полная реализация в отличие от всех других компиляторов Z80 C и является портативным к любому компьютеру Z80.

Это является неполным, однако, как мы не реализовали драйверы диск в новой библиотеке C пока.


Yes, more than 1000 functions written in assembly language and aiming to comply with a large subset of C11. That is ten times larger than HITECH. It is written from scratch -- it is not copied from anywhere. HITECH-C and other Z80 compilers have too limited libraries to properly implement the C standard. They only attempt to implement what is called the unhosted portion of the standard and then add a few bits here and there. HITECH-C adds file i/o by providing a thin interface over BDOS in CP/M. It is incapable of doing file i/o on a generic Z80 computer. It is possible you saw cp/m headers borrowed from HITECH in Z88DK's classic library but that is only to implement the CP/M interface in a way that is expected by CP/M users.

You are welcome to look at the source code and compare; it's open.

The base source directory is here:
https://github.com/z88dk/z88dk/tree/master/libsrc/_DEVELOPMENT

Header files are here:
https://github.com/z88dk/z88dk/tree/master/include/_DEVELOPMENT/sdcc

For example, to look at the string.h implementation look into the string/z80 directory.

Sayman mentioned PRINTF. Z88DK's implementation is 100% assembler but there is something special about it. You can opt out of % converters individually. If you decide you only need %s, you can ask for only %s in your binary. This can reduce the size of the implementation quite a bit for small programs. The other thing is Z88DK's STDIO model is a UNIX model that allows any device to be read or written with PRINTF and SCANF (and the POSIX functions read, write, etc). This is a complete implementation unlike all other Z80 C compilers and is portable to any Z80 computer.

It is incomplete however as we have not implemented the disk drivers in the new c library yet.

Oleg N. Cher
05.02.2017, 19:54
Здорово было бы для привлечения внимания к разработке игр на ЯВУ (для ZX Spectrum, в первую очередь) организовать конкурс. Оригинальная или портированная игра на одном из языков:

Boriel's ZX-Basic (https://www.boriel.com/en/software/the-zx-basic-compiler)Forth (есть несколько реализаций, но, скорее всего, нужно делать свою, с возможностью смарт-линковки).PL/MZX Like Pascal (zx-pk.ru/threads/24967-zx-like-pascal.html)Oberon, Oberon-2 (ZXDev (https://sourceforge.net/projects/bb-xdev))C (SDCC, z88dk, Hi-Tech C, IAR C и т.д.)Jovial (только где и как достать компилятор? :v2_dizzy_facepalm: )
... что ещё упустил?
Есть интерес? Я, быть может, даже поучаствовал бы (если будут разрешены порты игр). Идеальнее всего конечно бы с призами, но, мы все понимаем, время сейчас непростое, спонсора найти трудно (разве что скинуться понемногу?).

Shiny
05.02.2017, 20:00
простите прагматизм, но вряд ли выгорит "Ни ноты без банкноты".
Зачем ЯВУ? без замудреной логики проще все же удобнее применить ассемблер.

Oleg N. Cher
05.02.2017, 20:03
Ассемблер уже много где применили))) Оттого и неинтересно.

А кому-то интереснее для Эвы с конфой, УК-НЦ, Апогея или CP/M, мне же - для Спектрума))

Shiny
05.02.2017, 20:29
Ассемблер уже много где применили))) Оттого и неинтересно

вот Вам пример: один из участников форума работает над портом аркадных игр. Вряд ли используются ЯВУ. В общем, без Jovial есть поле для простора.

Oleg N. Cher
05.02.2017, 23:54
Поле для простора всегда есть. Но где больше инфы об этом? Есть авторы-одиночки, которым не нужны соавторы и сотоварищи. Есть авторы-тираны, которые не приемлют никаких решений со стороны, им нужно контролировать проект на все 100% лично. В общем, для себя я не вижу ничего интересного в портах аркадных игр на ассемблер. Есть интерес поработать в команде, но я не нашёл со-товарищей по интересам.

Мой интерес: языки, отличные от ассемблера + ZX Spectrum

- - - Добавлено - - -

Забыл упомянуть я про такие языки (для Z80 или 8080):

Modula-2 (конечно же! Лучший из виртовских языков для старых процев!)NedoLang, который ваяет незабвенный Alone Coder. Имею мечту посоветовать ему выкинуть NedoLang и взять вместо него PL/MMetal (язык Владимира Кладова)COLOSS (мой язык. Вряд ли есть смысл сегодня на нём кодить. Нужен суровый рефакторинг)Ну может ещё какие-нить Algol и FORTRAN для CP/M

Shiny
06.02.2017, 05:59
NedoLang, который ваяет незабвенный Alone Coder. Имею мечту посоветовать ему выкинуть NedoLang и взять вместо него PL/M

я так и не понял, что такое недо-язык: это оболочка к SDCC?

Oleg N. Cher
06.02.2017, 15:47
Нет, насколько я понял, это самостоятельный Си-подобный язык для старых компьютеров. Вот пример исходника. 59664

Shiny
06.02.2017, 16:10
уж больно на Си похоже.

Oleg N. Cher
07.03.2017, 02:48
Про Оберон-технологии в науке. Прямого отношения к ZXDev не имеет, но любопытно.

Оберон-технологии на службе биофизики (https://www.youtube.com/watch?v=zntynaH0j60)

jerri
07.03.2017, 11:00
а разве в с# много лексем?
и да кстати... 1984

mastermind
18.04.2017, 01:56
Несколько в тему, интересная информация для любителей Паскаля:

В репозитории Free Pascal недавно появилась ветка "z80" - судя по всему начало поддержки "embedded-z80" target. (кодогенерация для "голого" z80, т.е. без операционной системы)
Автор добавленного кода, судя по комментариям - Florian Klämpfl <florian@freepascal.org (mailto:florian@freepascal.org)> , см. http://www.freepascal.org/aboutus.var

http://i.imgur.com/BbpXKus.png

Посмотреть на код можно, например, так (я использую "git svn" т.к. привычнее, но само собой можно и самим svn):


# это займет много времени, пока все брэнчи вытянутся:
git svn clone -s http://svn.freepascal.org/svn/fpc fpc
cd fpc
git reset --hard origin/z80
# умомянутый код находится в основном в этой директории: ./compiler/z80

Oleg N. Cher
30.04.2017, 04:32
Вышла версия 1.1 XDev, XDevLite и ZXDev:

https://sourceforge.net/projects/bb-xdev

Список изменений и новшеств не привожу, лениво.

Oleg N. Cher
22.09.2017, 23:41
Группа поддержки ZXDev в Telegram (https://t.me/joinchat/C1HOrULGFtaE91doSA5-aA)

Oleg N. Cher
16.11.2017, 04:05
Мы с Лёшей Большаковым спроектировали и реализовали модуль для кооперативной многозадачности. Вот пример с летающими шариками, тут никакой синхронизации, всё дёргается) Но фишка не в этом. Все шарики двигаются внутри вот этой одной процедуры, выполняемой параллельно 8 раз:


PROCEDURE MoveBall;
VAR
x, y: INTEGER; sx, sy: SHORTINT;
BEGIN
x := b.RND(20, 240); y := b.RND(20, 160);
sx := SHORT( b.RND(0, 1) ); IF sx = 0 THEN sx := -1 END;
sy := SHORT( b.RND(0, 1) ); IF sy = 0 THEN sy := -1 END;
g.PUTSPR(x, y, 1, 8, SYSTEM.ADR(Ball), g.XORSPR);
LOOP
g.PUTSPR(x, y, 1, 8, SYSTEM.ADR(Ball), g.XORSPR);
IF (x < 1) OR (x > 247) THEN sx := -sx END;
x := x + sx;
IF (y < 8) OR (y > 190) THEN sy := -sy END;
y := y + sy;
g.PUTSPR(x, y, 1, 8, SYSTEM.ADR(Ball), g.XORSPR);
t.Yield;
END;
END MoveBall;

PUTSPR - процедура Сержа Колотова для вывода спрайта с пиксельной точностью. Я её не модифицировал для работы с буфером. И критики по поводу дёрганья шариков не жду. Именно для шариков лучше было бы делать всё в цикле. Это я так, для теста. Модуль Tasks и примеры его использования залиты в репозиторий.

Переключение контекста задач очень легковесное, буквально несколько машинных команд.

Вот документация на модуль:


MODULE Tasks; (* non-portable *)

(*
Модуль обрабатывает следующие нештатные ситуации:
22 "Statement lost" - Run запущен не из "главной" задачи
25 "Parameter error" - эта задача уже есть в списке
*)

Каждая задача обладает своим собственным стеком и может иметь локальные переменные. Поэтому ей требуется своя память для работы. Для этого статически или динамически создаётся переменная, которая хранит память для задачи. Представлены следующие модели задач, отличающиеся размером стека:


TYPE
Low = RECORD (Context) stack: ARRAY 20 OF BYTE END;
Tiny = RECORD (Context) stack: ARRAY 40 OF BYTE END;
Small = RECORD (Context) stack: ARRAY 60 OF BYTE END;
Medium = RECORD (Context) stack: ARRAY 80 OF BYTE END;
Large = RECORD (Context) stack: ARRAY 100 OF BYTE END;
Huge = RECORD (Context) stack: ARRAY 120 OF BYTE END;

Модель Tiny имеет размер стека 40 байтов, и этого достаточно для обработки прерывания IM 1. Модель Low гарантированно упадёт при обработке прерывания IM 1 и нужна для особых случаев (работа в режиме DI).


PROCEDURE Count (): SHORTINT;

Возвращает количество запущенных задач. В коде есть ограничение на предел количества задач - 255. Ограничение видится разумным, т.к. при большом количестве задач тратится всё больше ресурсов на переключение их контекста. Плюс ещё и память. Модель Tiny берёт 50 байт на стек задачи. 50x255 = 12750.


PROCEDURE Spawn ((*VAR*) ctx: Context; proc: PROCEDURE);

Ставит задачу proc в очередь выполнения. Выполнение начнётся по кольцу при вызове процедуры Run.


PROCEDURE Id (ctx: Context): INTEGER;

Возвращает id (идентификационный уникальный номер) контекста - двухбайтовое целое число.


PROCEDURE MyId (): INTEGER;

Возвращает свой id, т.е. текущей выполняемой задачи. В случае основной задачи он равен 0.


PROCEDURE Run;

Выполняет атом одной из задач в кольце. Нормальное использование Run - вызывать в цикле, пока есть активные задачи: REPEAT Tasks.Run UNTIL Tasks.Count() = 0
Run спроектирован таким образом, чтобы после каждого атома (Yield) отдавать управление основной задаче. Это может понадобиться для выполнения в основной задаче каких-то действий с более высоким приоритетом.


PROCEDURE Yield;

Своеобразный "разрыв". Вызывается внутри задачи для передачи управления другим задачам.

Смотрите примеры работы с модулем Tasks: TestTasks и MoveBalls.

jerri
16.11.2017, 09:10
Oleg N. Cher, а где тут многозадачность?
вот тут многозадачность
boot (http://trd.speccy.cz/press/INFERNO4.zip) смотри. каждая часть boota работает независимо.

s_kosorev
16.11.2017, 10:51
stackfull coroutine тож можно назвать многозадачностью, именно кооперативной

Shiny
16.11.2017, 11:31
простите мою темноту - а где многозадачность?

Oleg N. Cher
16.11.2017, 18:58
Шынни, многозадачность бывает разная, а то, что ты тёмный и этого не понимаешь - ну не мои это проблемы.

Oleg N. Cher
08.05.2018, 18:18
Мифическое мышление и Спектрум. Навеяно общением в теме "[ZX48] Спрайтики? (http://zx-pk.ru/threads/29129-zx48-sprajtiki.html)"

Меня давно уже интересовал вопрос, почему ZXDev остаётся в стороне от талантливых программистов на Спектруме. Ответ здесь лежит в плоскости психологии, а отнюдь не технических достоинствах или, наоборот, недостатках самой среды, что позже я назвал “мифическим” мышлением. И ZXDev стала его жертвой. Что же оно из себя представляет? Это набор ментальных установок, не имеющий ничего общего с реальностью, которого апологеты упёрто придерживаются, оправдывая всеми силами, и не замечая изъянов в своём ментальном поле. Разберёмся подробнее.

1. Оберон это чуждое средство для всех спектрумистов. Это миф. Потому что мы слишком большое значение придаём словам, а не скрытым за ним вещам. Оберон это на 50% ZX-BASIC и на 95% Hisoft Pascal, знакомый всем любознательным спектрумистам ещё с юных лет. Если вам нравится Delphi, то ничего более похожего на Дельфи для Z80, чем ZXDev, вы не найдёте.

2. Оберон крайне непохож ни на что другое, учить его долго и муторно. Это миф. Оберон похож на Бейсик даже больше, чем Си, перед которым у многих спектрумистов барьер. Вы уже знаете Оберон, за исключением пары тонкостей, которые интересно узнать в процессе разработки.

3. ZXDev очень большая, сложная малофункциональная среда, трансляция в Си порождает много проблем и оверхеда. Миф. Никакого оверхеда, связанного с уровнем Си, там нет. Напротив, благодаря SDCC мы имеем доступ к хорошей кодогенерации, значительно лучшей, чем в Boriel’s Basic и в любом набортном средстве разработки, к которым почему-то тяготеют некоторые спектрумисты, яростно закрывая глаза на все их косяки. А в отличие от компиляторов Bolt’а и Andrew (без обид), языковой уровень ZXDev вполне полнофункционален. Другое дело, использовать ли вещественные числа или, скажем, структуры на Спектруме, что порождает некоторые трудности. Но это уже решать программисту.

4. ZXDev крайне долго изучать и осваивать. Это миф. Можно взять среду и за 10 минут посмотреть чего она умеет, компилируя примеры из поставки. По языку довольно много информации, книг, статей. Кроме того, я никогда не против отвечать на любые вопросы по среде.

5. Без графических библиотек разрабатывать на ZXDev нельзя. Начать бы надо с вопроса: а когда и кого останавливало отсутствие графических библиотек при разработке на асме? Да вам любой вменяемый ассемблерщик скажет, что набор кодовых процедур для каждой игры свой собственный. И на Спектруме редко когда удаётся использовать код из одной игры в других. Есть конечно примеры, так называемые, графические движки — SP1, Nirvana, BiFrost. И их конечно можно (и нужно) адаптировать для ZXDev. Я этим не занимался потому, что лично я разработку игр на них вести не планирую, а подобных просьб мне не поступало.

6. Оберон давно устаревший и мёртвый язык, никому не интересный и его знание никому не пригодится. Миф. Оберон, в отличие от старого Кобола или Фортрана, нисколько не архаичен. Его в наши дни активно применяют для коммерческой разработки в условиях, где требуется особая надёжность. Оберон обладает всеми качествами современного ЯВУ, обладающий сильными сторонами и благородством Паскаля, но ещё чище по синтаксису. Знание Оберона может помочь в освоении golang, Java или C#. Есть все перспективы считать, что навороченный Оберон, имеющий в себе языковым ядром набор проверенных семантических средств, имеет все права на жизнь и будущее.

SaNchez
08.05.2018, 18:52
Imho, проблема любого ЯВУ в рамках спека - это тормоза + жирные бинарники. Поэтому всё, чего можно добиться с таким подходом, можно добиться и на родном спековском бейсике. Даже если ты не планируешь делать экшн, а хочешь пошаговую тактику типа лазерсквада - на ЯВУ ты её не сделаешь, не хватит памяти.
Поэтому весь смысл Оберона сводится к академическому программированию, не для практиков, ну или в крайнем случае для практиков без амбиций, которым вполне хватает AGD.
Олег, мне кажется, ты сможешь найти благодарных слушателей из числа любителей советских ретрокомпов - десятилетиями там нет никакого прогресса с софтом, у Оберона там есть шанс прижиться.

Oleg N. Cher
08.05.2018, 19:50
Не согласен. SDCC или z88dk имеют гораздо более широкое применение, чем ZX-Basic, даже скомпилированный. А сравнивать скорость интерпретатора и этих средств вообще некорректно.


хочешь пошаговую тактику типа лазерсквада - на ЯВУ ты её не сделаешь, не хватит памяти.Смотря как делать.


ну или в крайнем случае для практиков без амбиций, которым вполне хватает AGD.Такие практики без амбиций иногда делают очень приличные игры, просто они не стараются прыгнуть выше головы, что возможно только в кодах.


Олег, мне кажется, ты сможешь найти благодарных слушателей из числа любителей советских ретрокомповНе смогу. У меня нет схемы трансляции Оберона в код i8080. А в тему по УКНЦ и БК я уже сувался, там никому не интересно писать даже на Си.

krt17
08.05.2018, 20:50
Есть еще один миф. В нашей вселенной есть программа на обероне для спектрума написанная не Олегом. И это единственный миф который мог бы стать реальностью и быть подтвержденным не домыслами и эмпиризмом, а фактами. Поэтому это действительно миф, в отличие от остальных шести.

Oleg N. Cher
08.05.2018, 20:59
Опровергаю. См. примеры. Kubik написан моей племянницей. Lib/Tasks проектировали вместе с Лёшей Большаковым. Примеры Spiral* написаны AzAtom'ом. Lib/Sound и пример Circl разработаны Reobne.

Мои же игры - это не игры, а эксперименты над кодом. И воспринимать их надо именно так. Если кто-то амбициозен, флаг в руки, но я игр не пишу. Просто людям свойственно переносить свои ценности на других. Если кто-то амбициозен, он думает, что и остальные такие же. Возможно, в чём-то, но не в игропроме.

Среда ZXDev самоценна как промежуточная ступень между сложностями машкода и простотой Бейсика. Снимает ограничения Бейсика, но не заставляет полностью переходить на машкод. Этим она и интересна.

Shiny
08.05.2018, 21:26
Интересный факт, который я наблюдал во время знакомства с раритетными компьютерами - Оберон существовал только на компьютерах Motorola68K, на Z80 не встречалось вообще.

krt17
08.05.2018, 21:42
Я не поленился посмотреть, скачал вроде как zxdev из первого поста, это конечно .... ну ладно, нашел типа библиотеки, примеры тоже нашел, уровень хело ворлд. Как я понимаю это максимум для вашей среды и оберона на данном этапе. Извините, не учел ориентацию проекта. Но тем не менее УРА миф разрушен!
У вас же был прикольный колосус или как то так, эхх. Про zxdev я все понял, спасибо, желаю успехов.

Oleg N. Cher
08.05.2018, 21:51
А чем он был прикольный? На нём, кроме меня, вообще никто никогда не писал.

Истина в глазах смотрящего. Я из этой среды могу лепить всё, что угодно, даже бейсик-загрузчик на ней сделать. Или машкодовую программу, в которой от Оберона только вызовы. А могу перейти в другую подсистему и ровно на том же языке начать писать для Windows. Так что как копнули, так и откопали, уважаемый.

krt17
08.05.2018, 22:00
Я из этой среды могу лепить всё, что угодно, даже бейсик-загрузчик на ней сделать.
Адназначна в аналы оберона. Надеюсь не врут про 2 минуты смеха и 10 минут жизни, хоть с обероном в плюсах оказался.

Oleg N. Cher
08.05.2018, 22:07
Скажите, krt1, вы когда видите вводные в ассемблер примеры уровня хелоуорлда, вы плюётесь на машкодовую разработку и её убогость? И стандартного набора процедур под все нужды из коробки, идущего с транслятором ассемблера, вы же тоже не ожидаете? Я предлагаю просто перенести это отношение и на ZXDev. А придраться всегда будет к чему.

Alex Rider
09.05.2018, 16:53
Меня давно уже интересовал вопрос, почему ZXDev остаётся в стороне от талантливых программистов на Спектруме.
Памятуя историю этого треда, могу ответить однозначно: проблема в пиаре. Точно такой же epic fail постиг отличнейшие машины: отчасти АТМ и совсем полностью ZXEvo BaseConf.

Shiny
09.05.2018, 16:56
отличнейшие машины: отчасти АТМ и совсем полностью ZXEvo BaseConf

отличный пиар!=)

Alex Rider
09.05.2018, 17:18
отличный пиар!=)
Немного оффтопа, сам себе выпишу предупреждение ;-)
А чем плохи сами по себе ATM и ZXEvo BaseConf? Если отбросить весь негатив, который на них навлекли alone и LVD? Если бы под них спокойно строгался софт и создавались треды "Смотрите как круто получилось", сейчас у них было бы гораздо больше поклонников. Вместо всех этих "спектрум - не спектрум" и прочих подрывов пуканов. В 2012 я с alone обсуждал идею адаптации графики Saboteur 2 (сильно заморожен, не пинать, сознаю) под графику ATM и BaseConf. Потом чот желание пропало от слова совсем - последняя и единственная целевая платформа осталась - TSConf. Потому что пеар.

Oleg N. Cher
29.12.2018, 17:47
Мой видео-доклад «Трансляция языков Оберон-семейства в Си. Проекты Ofront+ и CPfront» на конференции «День Оберона в Орле-2018». Что-то вроде обзора моей Оберон-активности. Спектрум тоже упомянут ессно.

https://youtu.be/3ic5XsdLUCg

http://i.piccy_.info/i9/2bd6c3b259a76368f471177d81622a6a/1546094609/195259/1218829/Dash.jpg

http://i.piccy_.info/i9/32b32609252101baa3fb8ec90c5e6a18/1546094714/141419/1218829/DarkWoods.jpg

Вот другие доклады, если интересно:

http://zx.oberon2.ru/forum/viewtopic.php?f=3&t=414#p3268

Shiny
29.12.2018, 18:15
оберонщики и правильный FOR:v2_dizzy_facepalm:

Raydac
29.12.2018, 20:27
Мой видео-доклад «Трансляция языков Оберон-семейства в Си. Проекты Ofront+ и CPfront» на конференции «День Оберона в Орле-2018». Что-то вроде обзора моей Оберон-активности. Спектрум тоже упомянут ессно.

а среда какие ОС поддерживает?

Oleg N. Cher
29.12.2018, 23:32
Raydac, именно как хост-система — Windows 2000, XP, 7, 8. Под 10-кой не пробовал. Таргеты — разные. Я экспериментировал с Windows 32/64 bits, Linux x86, x64 и ARM. Также с JavaME, Android, ZX, MSX и даже NES.

Чел с ником slenkar решил испробовать данный способ разработки (транслировать Оберон в Си) чисто под Linux'ом, и у него всё получилось. На форуме можно увидеть, какие вопросы у него возникли и как мы их решили. Он начал делать игру по типу рогалика:

https://zx.oberon2.ru/forum/viewtopic.php?f=10&t=125&start=10#p585
К сожалению, исходники этой игры недоступны.

Ofront+, транслятор Оберон-языков в Си, работает под Windows 32/64 bits, Linux x86, x64 и ARM.
SDCC и z88dk, которые можно использовать в качестве бэк-эндов, тоже поддерживают много платформ.
В качестве редактора с подсветкой синтаксиса Оберона, можно использовать, например, Sublime (http://zx.oberon2.ru/forum/viewtopic.php?f=2&t=380):

http://i.piccy_.info/i9/741cf7a0712290c1da0c8e09a21dcef9/1546115362/10482/1218829/Sublime.jpg

Oleg N. Cher
24.03.2019, 20:24
Пишут ли на Обероне демки? Самое похожее на демку, что я видел, это вот этот скринсейвер из системы Native Oberon:

https://www.youtube.com/watch?v=lemIyDZvvew&list=PLwJoKCHKYULS6v3XYymWDQdOe_Np-h5oA&index=5&t=0s
68574

Oleg N. Cher
25.03.2019, 21:46
Радио Оберон [25.03.19 09:20]


Добрый день, коллеги. Вышел шестой выпуск подкаста "Радио Оберон".
В гостях у нас Олег Чередниченко. Мы обсудили языки программирования от Паскаля до Компонентного Паскаля, поговорили про компиляторы, какие есть проблемы, в чём выгода трансляции в язык программирования С и, конечно, Ofront+ (https://github.com/Oleg-N-Cher/OfrontPlus).

Выпуск можно скачать на сайте obertone.ru (http://obertone.ru), там же найти ссылки к выпуску:
http://obertone.ru/radio#section22032019

Shiny
31.03.2019, 11:58
Радио Оберон [25.03.19 09:20]

душевно поворковали, молодцы! подхалимство в моде у оберонщиков?

Smalovsky
24.02.2020, 22:08
беларус сделал игру на обере!))
https://zx.oberon.org/zx2048

Значит, на обере всё-таки игру сделать можно. Хотя некоторые раньше сомневались.

Oleg N. Cher
24.02.2020, 23:04
Можно, можно. Он начинающий, ещё только учится. Ждём новых свершений, более солидных.

Я вообще с самого начала говорил, что я не игродел, мне больше интересно в кодах ковыряться.

Smalovsky
25.02.2020, 03:12
Oleg N. Cher, не знаю, есть ли ещё на беларуском языке игра на спектруме? Если нету, то получается это первая.

nihirash
25.02.2020, 03:29
беларус сделал игру на обере!))
https://zx.oberon.org/zx2048

Значит, на обере всё-таки игру сделать можно. Хотя некоторые раньше сомневались.

Ну такую игру и на бейсике писали)

Но теоретически нет проблемы в том, чтобы высокоуровневая часть была бы написана на обероне

Smalovsky
25.02.2020, 04:22
душевно поворковали, молодцы!
Чисто по-человечески... Алёшеньке привет передавай.

ALKO
25.02.2020, 12:01
беларус сделал игру на обере!))
https://zx.oberon.org/zx2048

Значит, на обере всё-таки игру сделать можно. Хотя некоторые раньше сомневались.

2048 вроде и на бейсике делали
https://idpixel.ru/news/1845-novoe-postuplenie-na-konkurs-basic-2020-tormoznaja-versija-golovolomki-2048/
Так что оберу в этом плане только с бейсиком и тягаться.

Oleg N. Cher
25.02.2020, 18:06
Оберу в этом плане можно потягаться и с Си. А если умело добавить вставок на асме, то ой круто получится.

bigral
25.02.2020, 18:50
Оберу в этом плане можно потягаться и с Си. А если умело добавить вставок на асме, то ой круто получится.

вставки на асме вообще к оберону отношения не имеют, и с Си сравнивать некорректно, так как для Си есть компилятор в асм а для оберона нету и не будет, когдато borland pascal в холиварах сравнивали с Си, но там смысл был, так как имелся компилер паскаля который компилил с бешенной по сравнению с Си скоростью и генерил не намного хуже код чем самые крутые Си компиляторы конкурентов

реально круче Си только rust, и то пока что больше в теории (пока конкретно для него не создадут спец компилятор под каждый процессор вместо llvm), на практике же круче но не сильно, хотя ощутимо, и смысл перехода с Си на rust УЖЕ есть и немалый, в этом плане интересен транслятор с ассемблера x86-64 на z80 ассемблер (подобная тема есть на youtube, правда там про mos6502 и с64, но идея интересная тем что перевести оптимизированный под x86-64 код в z80 ассемблер проще нежели написать транслятор с rust-a напрямую в z80 ассемблер)

Oleg N. Cher
25.02.2020, 19:15
Применительно к платформам на проце Z80 вставки на асме имеют отношение к игроделу. Как показывает практика, талантливому игроделу не нужна идеальная кодогенерация, идеальное средство разработки или даже идеальное знание ассемблера. Есть шедевры на Boriel's ZX Basic'е, на Laser Basic'е, есть и на Си. Асмовые вставки этому делу только способствуют.

Так что не плюйте мне в душу своими взглядами и не разрушайте мои светлые мечты по шедеврам на Обероне.

Пустое теоретизирование насчёт идеальной трансляции асма x86-64 в код z80 тоже не интересует.

Есть желающие писать компилятор чего-либо в идеальный код для Z80? Тема заезжена и стара. Желающих по-прежнему нет.

jerri
25.02.2020, 20:21
Есть шедевры на Boriel's ZX Basic'е, на Laser Basic'е, есть и на Си. .
покажи мне аркадный шедевр уровня R-type вот на этом всем.

Oleg N. Cher
25.02.2020, 20:56
Ага. Именно уровня R-Type? Мосью Самохвалов решил попиариться на том, что он круто на асме кодит. Понятно. Предмета разговора у нас нет.

Зачем тебе аркадный шедевр? Не надо подгонять всё под свои взгляды. Мир гораздо шире. Смотри, например, Дурак (С) Copperfeet

Ну хорошо, пусть будет аркадный шедевр. Heartbroken (https://www.worldofspectrum.org/infoseekid.cgi?id=0002266), например. По словам goodboy написан вполне себе на компилируемом целочисленном Бейсике. В Обероне ли тут дело?

Распугали мне тут всех потенциальных юзеров своим, блин, авторитетным предвзятым мнением. Не будь его, были бы и аркадные шедевры. Конкурсы корявых поделок на Бейсике актуальны, потому что это наша традиция. А всё остальное будем гнобить. Ура.

goodboy
25.02.2020, 22:11
попиариться на том, что он круто на асме кодит
а зачем jerri пиариться ? у него и так в багаже (в отличии от тебя) несколько отличных проектов.

аркадный шедевр Heartbroken
с `лабиринтом` на 40 комнат ? не смеши. в похожих играх (на чистом асме) есть и 512

Распугали мне тут всех потенциальных юзеров
и сколько проектов появилось за почти 10лет ?

Bedazzle
25.02.2020, 22:16
Распугали мне тут всех потенциальных юзеров своим, блин, авторитетным предвзятым мнением. Не будь его, были бы и аркадные шедевры.

Некоторое время назад хотел попробовать Оберон. Но вот это вот постоянное пропихивание - напоминает тётечек с брошюрками про бога, которые пристают, и пытаются объяснить, что живу плохо и всё у меня плохо, и что мне срочно нужно помогать.
И никакие не авторитеты.

Oleg N. Cher
25.02.2020, 22:53
У jerri, в отличие от меня, другие интересы несколько. Он ретро-игродел. И если бы писал на Обероне, тоже бы что-то путное получилось. Наверно. Я допускаю. А про меня см. выше. У меня нет никакого интереса выжимать из ретро-железа все возможности и поражать этим самым и своей крутизной публику. Мне это неинтересно. Хотя вот читаю вас и понимаю, что именно этим вы и самохвалитесь.

И есть много людей, которые, если хотите, ниасилили асм. Но они вполне могут разрабатывать для Спектрума.

jerri
25.02.2020, 23:45
А всё остальное будем гнобить.

Хорошо. Покажи просто шедевр на бейсике. Ну или просто на ЯВУ.

Oleg N. Cher
25.02.2020, 23:51
Ну а чем тебе Дурак не шедевр, а Лазер не Бейсик? Или Heartbroken? Дело ж не в количестве экранов. Просто игра приятно играется.

- - - Добавлено - - -

Ещё какую-то игру вспоминаю, кажется, на Boriel's Basic'е. Про рыцаря. Забыл название. Довольно забавная игра.

- - - Добавлено - - -

Ага. RetroBytes Souls (https://zxart.ee/rus/soft/game/souls-souls-remaster/souls-souls-remaster/)

jerri
25.02.2020, 23:54
Ну а чем тебе Дурак не шедевр, а Лазер не Бейсик? Или Heartbroken? Дело ж не в количестве экранов. Просто игра приятно играется.

Дурак не шедевр. Игра неплоха, но не шедевр.
hearthbroken - меня в ней падения убивали. Пока падаешь тебя сто раз подстрелят.

Oleg N. Cher
25.02.2020, 23:57
Phantomas Saga: Infinity (https://viva-games.ru/game/phantomas-saga-infinity) тоже очень красочная игра-аркада.

Кстати, игры типа Boovie или Slab Age. Я уверен, что они на ассемблере, но писать подобного рода игры на ЯВУ для ретро-платформ можно. И нужно. Или карточные типа Samantha Fox Strip Poker. Дело интереса. Я уже устал объяснять, что мне это интересно - писать на хорошем простом языке. А не просчитывать такты для демок. Имею я право на свой интерес?

- - - Добавлено - - -

Ладно, понятие шедевра, видимо, тоже субъективно. Для меня Дурак это одна из лучших игр на Спектруме.

jerri
26.02.2020, 09:09
Phantomas Saga: Infinity (https://viva-games.ru/game/phantomas-saga-infinity) тоже очень красочная игра-аркада.

Кстати, игры типа Boovie или Slab Age. Я уверен, что они на ассемблере, но писать подобного рода игры на ЯВУ для ретро-платформ можно. И нужно. Или карточные типа Samantha Fox Strip Poker. Дело интереса. Я уже устал объяснять, что мне это интересно - писать на хорошем простом языке. А не просчитывать такты для демок. Имею я право на свой интерес?

- - - Добавлено - - -

Ладно, понятие шедевра, видимо, тоже субъективно. Для меня Дурак это одна из лучших игр на Спектруме.

да как бы все однозначно.


Шеде́вр[1] (фр. chef-d’œuvre — «высшая работа», «венец труда») — уникальное, непревзойденное творение, высшее достижение искусства, мастерства или чего-либо другого. Шедеврами чаще всего называют произведения искусства и архитектуры, реже — науки и техники.

ALKO
26.02.2020, 09:38
Херт-брокен физикой слабоват. Прозрачные спрайты раздражают, и локации шибко однотипные.
То ли дело Jack Nipper 2, где и спрайты непрозрачные, и локации пестрят разнообразием вопреки тому что основаны на 256ти тайлах 8х8, физика довольно проворная, и реалтайм бипер играет.
Возможен ли такой общепризнанный шыдевор на лазере ? Вряд ли.
Возможен ли на обероне? Может быть, да, если велосипедить тонну асм-процедур. Но в таком случае проще даже на чистом асме всё нафигачить, или я ошыбаюсь?

Если СДК и делается для игор, то она и должна содержать весь необходимый набор процедурок для игор.
Лично я сужу по SGDK на сегу. Там есть практически всё, от генератора тайловых карт локации, до процедур рендеринга полигонального 3д. И можно склепать игру уровня Контры Хард Корпс на чистых сях даже не вникая во все тонкости ассемблера, ибо нужные асм процедурки и без того инклудятся в проект .

Oleg N. Cher
26.02.2020, 15:29
да как бы все однозначно.Понимаю. Приятно же выдать свои личные пристрастия за объективную истину. Не один ты этим грешишь.

А кто превзошёл Дурака на Спеке? :-)


Возможен ли такой общепризнанный шыдевор на лазере ?Ну не такой, так другой возможен. Всё ограничивается только фантазией и возможностями игродела. Инструмент - это краски и кисти. Дай их гению - получится гениально. Дай старательному ремесленнику - получится добротно. Дай бездарю или человеку, далёкому от рисования - и не получится ничего хорошего. Но это не повод клеветать на инструмент. ZXDev инструмент хороший, но он развивался и затачивался исключительно под мои нужды. В то же время, никто не мешает его прокачать до правильного, навелосипедив СДК в виде тонны нужных асм-процедур.

И да, я не отказываю в поддержке своим пользователям. Всё ещё. Стараюсь посильно помогать, учитывая их интересы и потребности.

Smalovsky
27.02.2020, 18:14
Oleg N. Cher, не обращай внимания.
Вот игры и программы на бориле:
https://zxbasic.readthedocs.io/en/latest/released_programs/

шедевры:
VADE RETRO
Author: J.B.G.V.

The Tales of Grupp
Author: Alxinho

Игровые движки на бореле:
BIFROST* ENGINE
BIFROST* 2ENGINE
Fourspriter Engine Author: The Mojon Twins
NIRVANA ENGINE
NIRVANA+ ENGINE
ботель тянет мультиколор и биколор.

Но для меня интересной игрой,вообще на бейсик-компиляторе, является USA Skatin от Shaw Brothers:


https://www.youtube.com/watch?v=AA8q6DkFvEI

Не каждый ассемблерщик так сделает.

ALKO
27.02.2020, 18:24
.Не каждый ассемблерщик так сделает.

Такую тормозную распаковку экранов действительно не каждый ассемблерщик сделает.
Чёрный экран блымает каждую секунду, так и до эпилепсии недалеко.

Smalovsky
27.02.2020, 18:37
ALKO, тыж сам на ЯВУ Паскале программируешь.

ALKO
27.02.2020, 18:52
ALKO, тыж сам на ЯВУ Паскале программируешь.

И тем не менее, я делаю сайд-скроллер с реалтайм обновлением экрана, а не по-экранную блымалку.

Smalovsky
27.02.2020, 18:57
ALKO, меня в Skatin USA ничего не раздражает. Обновление экрана вполне нормальное.
А что ты скажешь о моей мозаичной библиотеке для бейсика?
https://zx-pk.ru/threads/26078-mega-basic.html?p=1029137&viewfull=1#post1029137

Bedazzle
27.02.2020, 19:59
Игровые движки на бореле:
BIFROST* ENGINE
BIFROST* 2ENGINE
Fourspriter Engine Author: The Mojon Twins
NIRVANA ENGINE
NIRVANA+ ENGINE
ботель тянет мультиколор и биколор.



Вообще-то бифрост и нирвана ни разу не бейсик, а очень даже оптимизированный асм.

Smalovsky
27.02.2020, 20:03
Bedazzle, ты ссылочку видел?
https://zxbasic.readthedocs.io/en/latest/released_programs/
Страничку вниз прокручивал?

Oleg N. Cher
27.02.2020, 20:05
Поймите же правильно мою роль, господа-товарищи. Я помогаю тем, кто что-то хочет сделать на ZXDev. Я не ставлю себе целей переплюнуть всех крутой игрой на Обероне. Те порты игр, что я ковыряю, это долгострои, и я с ними не спешу, чтобы кого-то куда-то там поразить. Это вообще просто эксперименты с кодом на каких-то уже готовых проектах. Не более чем.


ботель тянет мультиколор и биколор.Ну, на самом деле всё это можно юзать из Бореля, но оно на асме. Подобным же образом можно эти двиги и из Оберона юзать. А почему нет?


Но для меня интересной игрой,вообще на бейсик-компиляторе, является USA Skatin от Shaw BrothersДа, классная игра. Она точно на Бейсике? А насколько там большой % асмовских вставок? Исходники есть?

Smalovsky
27.02.2020, 20:08
Oleg N. Cher, исходники у Shaw Brothers. Насколько я знаю они все игры делали на MCoder.

Oleg N. Cher
27.02.2020, 20:11
а зачем jerri пиариться ? у него и так в багаже (в отличии от тебя) несколько отличных проектов.У jerri несколько отличных проектов, о которых ты знаешь. У меня несколько отличных проектов, о которых ты не знаешь. Или знаешь шапошно. Есть у jerri проект среды разработки уровня XDev?


с `лабиринтом` на 40 комнат ? не смеши. в похожих играх (на чистом асме) есть и 512Писемерка on

А преимущества Оберона начнутся там, где я начну переносить свой код на другие платформы. Во как. Вы тут, писемеры, это не учитываете нифига.


и сколько проектов появилось за почти 10лет ?А сколько человек писали на ZXDev за эти почти 10 лет?

jerri
27.02.2020, 20:25
У jerri несколько отличных проектов, о которых ты знаешь. У меня несколько отличных проектов, о которых ты не знаешь. Или знаешь шапошно. Есть у jerri проект среды разработки уровня XDev?

А зачем мне писать свой XDev? я использую связку VScode+разное.



А преимущества Оберона начнутся там, где я начну переносить свой код на другие платформы. Во как. Вы тут, писемеры, это не учитываете нифига.


И когда?



А сколько человек писали на ZXDev за эти почти 10 лет?

Вот вот... А на Boriel пишут. почему?
может тебе тожк попиарить оберон на WOS? с примерами и красочным описанием

ALKO
27.02.2020, 20:29
А что ты скажешь о моей мозаичной библиотеке для бейсика?
https://zx-pk.ru/threads/26078-mega-...=1#post1029137

Скорость явно получше нежели в MK2, но в бейсик я больше не вернусь.
И уж тем более в синклерный.

Oleg N. Cher
27.02.2020, 20:33
А зачем мне писать свой XDev? я использую связку VScode+разное.Ну вот, ты на готовой среде разработки сидишь. Норм тебе и хорошо.


И когда?Когда что? Я начну красочно с примерами всех здесь ублажать и убеждать в том, как круто писать переносимый код? А на меня будут смотреть как на иеговиста с брошюркой. Не. Увольте меня от этого счастья.


Вот вот... А на Boriel пишут. почему?
может тебе тожк попиарить оберон на WOS? с примерами и красочным описаниемПиарил уже маленько. Пара буржуев заинтересовались, один даже написал демку рогалика. Но мне не очень интересно с буржуями, да и языковой барьер мешает.

jerri
27.02.2020, 21:24
Когда что? Я начну красочно с примерами всех здесь ублажать и убеждать в том, как круто писать переносимый код? А на меня будут смотреть как на иеговиста с брошюркой. Не. Увольте меня от этого счастья.


А от тебя этого никто не просит. От тебя просят примеров эффективности. А их нет. Но ты утверждаешь что их однажды кто-то напишет. И так 10 лет.
Ну я не знаю, что тут можно сказать.



Пиарил уже маленько. Пара буржуев заинтересовались, один даже написал демку рогалика. Но мне не очень интересно с буржуями, да и языковой барьер мешает.

Вот это поворот. А сколько народу ты на местном форуме рекрутировал?
Но демку он так и не дописал. Почему?

Oleg N. Cher
27.02.2020, 21:28
А от тебя этого никто не просит. От тебя просят примеров эффективности.Примеров эффективности чего? Превосходства кода от выхлопа компилятора с ЯВУ перед вручную закодированным на асме? Ну я не знаю, что тут можно сказать.


Вот это поворот. А сколько народу ты на местном форуме рекрутировал?Это всё не так работает.


Но демку он так и не дописал. Почему?Передумал. Он же не для меня пишет. И не для тебя. Для себя. Под интерес.

jerri
27.02.2020, 21:40
Примеров эффективности чего? Превосходства кода от выхлопа компилятора с ЯВУ перед вручную закодированным на асме? Ну я не знаю, что тут можно сказать.


Ну вот например Некто написал игру для спека. На асме.
Потом на MSX.
Потом выпустил версию на НЕС - уже на С
потом на C64.

А вдохновившись твоим примером мог бы и на Обероне.



Это всё не так работает.


Это все вообще не работает. Как я вижу.




Передумал. Он же не для меня пишет. И не для тебя. Для себя. Под интерес.

Жаль. Проект был занятный. Наверное уткнулся в какие-то ограничения.

Oleg N. Cher
27.02.2020, 22:22
Ну вот например Некто написал игру для спека. На асме.
Потом на MSX.
Потом выпустил версию на НЕС - уже на СДля NES лучше тоже на асме. Асм не переплюнешь, он непобедим.

потом на C64.

А вдохновившись твоим примером мог бы и на Обероне.Как-то у меня в вдохновлянием других напряг. Пойду брошюрку заново читать.


Это все вообще не работает. Как я вижу.Это работает вот так: человек находит ZXDev и находит меня. Потом начинает воплощать свои, заметь, свои - планы и мечты. А я ему в этом помогаю - в благодарность за то, что он пользуется моей средой. Если помогаю плохо, он забивает. Или если ему стало неинтересно, он тоже забивает.


Жаль. Проект был занятный. Наверное уткнулся в какие-то ограничения.Тот буржуй? Ну как. Сделал чего хотел, посмотрел и стал делать что-то другое. Насколько я помню, он потом для Андроида стал ваять на Monkey-X. Для хорошего игродела освоить новый инструмент или платформу не проблема. Главное не зацикливаться на Спектруме.

Bedazzle
27.02.2020, 23:01
Bedazzle, ты ссылочку видел?
https://zxbasic.readthedocs.io/en/latest/released_programs/
Страничку вниз прокручивал?

Даже лучше.
Я исходники нирваны смотрел. И бейсика там не видел.

Smalovsky
28.02.2020, 00:25
Bedazzle, это я ошибся. Сам движок на ассемблере и к нему библиотека интерфейса на бореле. Я так понимаю, что движок официально задумывался именно для бореля.

Oleg N. Cher
28.02.2020, 01:02
Думаю, что не задумывался именно для Бореля. Он задумывался "ваще под Спек".

Но поскольку у буржуев в ходу больше всего z88dk и Boriel's, то подобные движки снабжают интерфейсным модулем, позволяющим работать с движком из этих сред. Nirvana/+ и BiFrost (и ZX7) разработал Einar Saukas, и он постарался придать блеск своим разработкам, снабдив их такими интерфейсными модулями.

А вот к SDCC и к ZXDev подобных интерфейсов у него не предусмотрено. Но их можно ручками написать.

andrews
29.02.2020, 16:50
По нынешним временам быстрый старт это главное преимущество. Ну скачал я себе z88dk и дальше что? Сунулся в examples там все кучей свалено, ни хелпа, ни оболочки для быстрого старта. У меня на компе три дюжины других компиляторов и у каждого свой make! Поди разбирайся отчего ошибки возникают. А этот не понимает ни на чем запущен, ни левых make, и по умолчанию без ключей вообще результата не дает. Линуксовский стиль это прекрасно, но требует времени на освоение столько, сколько в современном мире мало у кого есть. То же и про Ваш проект. Да сделайте вы отдельный пакет в котором все есть, чтобы что-то запустил и дальше, или подсказывало каждый следующий шаг после ошибки, или все сделало без ошибок и в файле отчета все разжевало, что вызывало, с какими ключами и для чего; и демо проект чтобы был рабочий и не тупой( или тогда 3 демо проекта разной сложности). Хотя такого ни у кого нет и это прискорбно для чайников. Да, при попытке скачать с github у меня Avast Internet Security ругается "Угроза обезврежена безопасно прервано подключение к сайту codeload.github.com так как он заражен Win32:SMorph[Cryp] Сколько раньше не качал с github такого не было. Оберон. Паскаль или что-то еще не ассемблерное это дело десятое. Главное быстро стартануть и результаты через пару часов возни хотя бы увидеть. Опять таки, если хочется показать преимущества своего инструментального софта перед другими, надо тестовый проект снабдить всем необходимым для построения под другими инструментальными системами. Тогда сомневающиеся смогут вслед за вами насладится преимуществами вашего инструментария. Возможность запуска в разных средах и на разных платформах это аргумент для профи, которые деньги зарабатывают, но не для новичков.

Oleg N. Cher
29.02.2020, 17:35
По нынешним временам быстрый старт это главное преимущество.
andrews, а Вы ставили-смотрели XDev? Или чисто умозрительно решили, что там всё сложно и на make?

Я сознательно избегал make, хотя любители этого дела меня шпыняли. Там предельно просто конфигурируемые свойства проекта, в окошке. На чуть более вдумчивом уровне можно писать батник-конфигуратор. На ещё более серьёзном уровне можно вообще вручную расписать процесс трансляции и линковки кастомно.

Практика показала, что среду ZXDev очень легко осваивают люди с базовым пониманием языка Паскаль, которые вообще не знают ни ассемблера, ни Си. Здесь я не ошибся. Так что тут только барьеры у старпёров в головах мешают.

Кстати, при работе со средой у новичков обычно не возникает никаких вопросов по языку. Вопросы чаще всего именно по специфике Спектрума.

Про вирусные угрозы, которые антивирусы находят в XDev, я знаю. Просто скомпилированный с Оберона код не распознаётся антивирями как мэйнстрим. Там нестандартные секции какие-то, видимо. С этим ничего не сделаешь. У меня самого вся папка Projects в белом списке. Гавкаться персонально с каждым разрабом антивирусов?)

Smalovsky
29.02.2020, 17:58
andrews, я не пользуюсь кросскомпиляторами. Я беру спектрумовские прграммы, хотя, пользуюсь ими через эмулятор.
У меня есть MCoder 2 и 3, и AGD 4.7.
Oleg N. Cher, сделай видео для людей.

Oleg N. Cher
29.02.2020, 18:17
Фиг его знает, наверно пусть лучше видео занимаются те, кто это любит и умеет. Я пас.
Могу посодействовать, поотвечать на вопросы. Я как-то предлагал одному стримеру ретро-игр сделать такое видео. Он не заинтересовался.

Есть мой доклад с Дня Оберона, конечно не совсем то. Но всё-таки.

• https://youtu.be/3ic5XsdLUCg

andrews
29.02.2020, 20:32
andrews, а Вы ставили-смотрели XDev? Или чисто умозрительно решили, что там всё сложно и на make?я поставил z88dk и sdcc для начала. Там все на make и непонятки с параметрами. И в example мешанина. И нет ничего облегчающего старт. Возможно я пока не нашел нужного IDE ника и правильной сборки. Про антивирусы понял, попробую скачать с наладонника. Все же мои предложения вышеизложенные по всей видимости еще не реализованы нигде и никем. Видимо эти времена еще только наступают. Раньше подход был какой? Главное написать компилятор и утилиты к нему и вокруг него, а юзвери пусть юзают как хотят и приспосабливают к своим нуждам. Не учитывалось только, что иногда требуется и исходник самого компилятора. В противном случае перехватывать его ввод и вывод и что-то делать с его выходными и входными файлами. Сейчас компиляторов много и разных и сам разработчик должен заточить его под что-то полезное и узкопредметное. Тогда хотя бы эти пользователи предпочтут его компилятор другим "универсальным" а по сути, выражаясь вашим языком старперским софтам из 60-х. Так как такой подход тянется оттуда, когда программирование было очень трудоемким и очень высокооплачиваемым продуктом. И можно было сидеть над мануалами неделями и стартовать в течение полгода. Сейчас же то, что нельзя сделать за $1000/неделю вообще никому не интересно! А если речь идет о софте для "общества" ну люди могут выделить 1-2 часа в неделю своего свободного времени. Поэтому старперский софт и хард 60-х надо как-то очеловечивать что-ли, делать его более дружелюбным к пользователям.

- - - Добавлено - - -


я не пользуюсь кросскомпиляторами. Я беру спектрумовские прграммы, хотя, пользуюсь ими через эмулятор.
ну вот это мне совcем непонятно. У меня в руках есть современный трактор, но я буду лопатой свою канаву рыть?! Я понимаю, что сделать что-то для очень мощного компа это один проект, а с помощью этого компа для менее мощного другой. И подозреваю, что вторым способом ощутимо проще. Хотя да, ограничения предъявляют особые требования и создают специфические сложности. Но если они описываются алгоритмически, то их можно отдать мощному компьютеру, а не нагромождать на его пользователя.

Smalovsky
29.02.2020, 20:43
ну вот это мне совcем не понятно. У меня в руках есть современный трактор, но я буду лопатой свою канаву рыть?!
Ну ты неправильно сравнил. Там не лопата, а трактор более старой модели.
Я замечал, что когда кодировал на кросскомпиляторе SDCC, то ловил себя на мысли : "Что я делаю? Нафиг мне это спектрум? Сразу для писи надо на писи делать". Связь со спектрумом теряется очень быстро.
А когда начал на спектрумовских средствах, то по-началу чувствовал себя не очень, но потом чувствуешь себя настоящим спектрум-программистом.
Когда на писи программируешь для спектрума, то спектрум для тебя не существует, а становится чем-то вроде виртуальной машины джавы или CLR. Это для случая, если пишем на писи и играем потом на писи через эмулятор.

andrews
29.02.2020, 21:26
Мне наверное проще, я эмбедер со стажем. Поэтому каждая железка для меня имеет "душу"! И потом. Вот у меня есть персонаж из "Побега" Я нашел ее на фото. Теперь прорисовывать все вручную или сразу на Спектруме или все же проще помоделировать на писи? Музоны и звуки аналогично. Логику игры, сценарий, взаимодействие с пользователем. На Спектруме все сложнее, придется доводить и адаптировать под его возможности. А почему проект не оставить писишным? Да потому, что там наоборот придется все усложнять, а это затраты совсем другие. Как эскиз пожалуйста, как результат ни в коем случае!

Oleg N. Cher
29.02.2020, 21:55
andrews, просто будьте на связи и задавайте вопросы. Yprit, который разработал редактор 53Cosmos и две игры на ZXDev, не разбирается в параметрах командной строки SDCC. Ему это не требуется на начальной стадии. Но вопросы конечно были поначалу.

ZXDev\Docu\FAQ.txt

Q. Как установить ZXDev?

A. Скачайте архив https://github.com/Oleg-N-Cher/XDev/archive/master.zip
Распакуйте его в папку так, чтобы в пути не было пробелов. Это всё.
Запускайте файл XDev.exe, далее открывайте примеры: File -> Open -> ZXDev/Mod
Скомпилировать: F11, собрать и запустить в эмуляторе по умолчанию: F12

Reobne
01.03.2020, 05:38
Oleg N. Cher, Согласись, что вместо того, чтобы каждому раздавать мусорные объяснения, почему этот весь мусор должен лежать именно тут; лучше взять веничек и подмести.

И первое с чего нужно начать это стартовая страница проекта. Она у тебя в подписи. И она ведёт на ... страничку списка тем форума. Их много, и они все не по теме старта. Их очень много и они все не в тему. Это просто куча мусора, для тех кто хочет познакомится с ZXDev.

Пожалуйста сделай хорошую точку входа в проект. Сразу должен быть абзац раскрывающий суть ZXDev, и несколько ссылок на важные для новичка темы. Где скачать, как запустить, как сделать первый проект хелловорлд, учебник по изучению Оберона, учебник по ZX библиотекам...

Oleg N. Cher
01.03.2020, 14:34
Не соглашусь. Точка зрения на то, что является мусором, у каждого своя. Кому надо - тот освоит. И не такое осваивали.

- - - Добавлено - - -


Где скачать, как запустить, как сделать первый проект хелловорлд, учебник по изучению Оберона, учебник по ZX библиотекам... - всё это в ZXDev/Docu давно лежит.

Reobne
01.03.2020, 17:13
Точка зрения на то, что является мусором, у каждого своя. Кому надо - тот освоит. И не такое осваивали.
Согласен полностью с тем что ты написал, это и так понятно и банально. Но это не имеет отношение к тому, что я тебе написал. Совсем не имеет.

- всё это в ZXDev/Docu давно лежит.
И для кого оно там лежит? Для того кто скачал ZXDev? А с какой стати он его скачал?

Oleg N. Cher
01.03.2020, 19:04
Reobne, я не ищу новых юзеров XDev. Достаточно того, что я делаю среду. А пиарить, умасливать, убалтывать - это не моё. К тому же, вот у тебя одни взгляды на это, а у кого-то другого другие. ALKO подавай SDK на асме как для Сеги, а кто-то просил версию для Соляриса. Это важно для них, понимаешь. И я всё это должен делать, потому что юзер всегда прав)

Нене. Хочешь добавить каких-то док или факов - напиши их, добавим. Статью напиши. Я устал уже от вас всех и ваших мнений.

- - - Добавлено - - -

А кто-то вообще видел универсальный SDK для Спека на асме, чтобы в нём было вообще всё-всё-всё?

- - - Добавлено - - -

jerri вот вообще считает, что я нарекрутировал рекрутов и они у меня ходят строем, а я их заставляю писать на Обероне) Нет, господа. Это всё устроено не так. Каждый сам решает куда инвестировать своё время, способности и силы. Reobne считает, что у нас тут плохой старт и я должен сделать хороший, а я так не думаю. Нормальный у нас старт. Для не-линуксоидов, не-сишников и не-асмеров вообще волшебно всё.

jerri
01.03.2020, 21:29
jerri вот вообще считает, что я нарекрутировал рекрутов и они у меня ходят строем, а я их заставляю писать на Обероне)

ммм? ты мне свои влажные фантазии не приписывай. ИМХО если инструментом не пользуются а только о нем пишут, значит инструмент для данной цели не подходит, и не надо им тут размахивать.

Oleg N. Cher
01.03.2020, 21:37
Для какой такой данной цели? Переплюнуть асм при влажном самоудовлетворении потребности в самоутверждении на попытках кодировать игры/демки для старинной полузабытой платформы?) Да, для данной цели не подходит. Наверно. Тебе виднее.

andrews
01.03.2020, 22:42
Воробей что полузабыт, оттого что летают орлы? Комьи оттого, что есть катамаран? У Спектрума своя ниша НА ВЕКА :) Даже и 4 битные архитектуры никогда не будут полузабыты. Массовому пользователю они не нужны, а своя ниша у них навсегда.

Oleg N. Cher
01.03.2020, 23:28
Я с этим не спорю, также как и с тем, что людям необходимо самовыражаться. Но раз меня обвиняют во влажных мечтах, почему бы не пошпынять в ответ? Как говорится, кто к нам с мечом придёт...

Smalovsky
01.03.2020, 23:59
Oleg N. Cher, Жора в последнее время очень похож на Шынни.))

andrews
02.03.2020, 10:55
Скачал ваш архив через Teclast Win10 и затем через Яndex.диск на настольный комп Win7. Все равно при старте системы Win7 avast отправляет основной exe-шник в хранилище завирусованных. Нажал кнопку о "ложной угрозе", exe файл avast отослал в свою лабораторию на анализ. В комментарии указал "по информации автора файл не содержит вируса". Можно конечно avast на время снести, но пусть лучше поанализируют и успокоят свой антивирь.

Oleg N. Cher
02.03.2020, 22:33
Ага. Я тоже думал, что авировцы проанализируют этот файл и успокоятся. Слал им его раз десять. Но ничего не изменилось :-(

- - - Добавлено - - -

Антивири ругаются не только на XDev.exe, но и на утилиту Bin/odc2txt.exe - она тоже на Обероне. И на другие утилиты.

s_kosorev
03.03.2020, 11:29
Я могу сказать чем отпугивает ZXDev, хотя знаю, что не буду услышан.
Все же попытаюсь, главное воспринимать это не как критику а как попытку донести причины

1. Отпугивает средой BlackBox
Суть в следующем, он преподносится как IDE, а люди сейчас привыкли с моноширным шрифтам, автоматической подсветке по ходу ввода текста, дереву проектов, которое постоянно доступно, механизмы поиска и навигации по коду

2. Отпугивает идеология языка, даже не самого языка а его лексика - капс ключевых слов
Да, есть практика на асме писать капсом, но там пишут все этим пресловутым капсом весь кода а не ключевые слова

3. Пиар, но надо отдать должное, он все боле адекватный в последнее время, не нужно преподносить язык как единственный правильный путь, мы тут уже все взрослые и не особо ценим нравоучения, некоторые как выше видно по тексту, ошибочно противопоставляют оберон ассемблеру

Т.е. по сути претензии не к языку, не к технической части, а к сопутствующим моментам, они все портят

Я даже предполагаю ответы
1. Дело привычки - мне так нравится
2. Дело привычки - мне так нравится
3. Субъективное мнение

Я бы мог добавить более правильных причин, в духе это не оберон, просто синтаксисический сахар для перевода в с, нет модульности, нет метаданных, оберон это не язык а среда и даже операционная система, но все это пыль, удачи

Oleg N. Cher
03.03.2020, 20:35
А меня отпугивают вот такие юзеры, как Вы, Косорев. Которые "я среду не смотрел, но всё о ней знаю". Есть у нас и моношириные шрифты, и подсветка по ходу набора и много чего другого, просто Вы об этом не знаете.

Но у Вашего подхода к делу полно своих почитателей, как показывают лайки. Удачи.

- - - Добавлено - - -

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

http://i.piccy_.info/i9/8dcafc4ede5d9ae4f785c0fd97c23686/1583256973/23598/1320134/Master.png

s_kosorev
03.03.2020, 21:21
Я и не ожидал, даже намёка, на понимание. Но не мне от этого хуже.

То что капс убрали, движение в верном направлении

Oleg N. Cher
03.03.2020, 21:39
Вы мне даёте моральное право ставить Вам диагнозы, не вникая в суть. Но я воздержусь.

- - - Добавлено - - -


То что капс убрали, движение в верном направленииВкусовщина всё это, не более. Кому-то большие буквы нравятся, кому-то маленькие, кому-то скобочки дебильные. Но для одного хорошего человека сделал. Хорошим людям хочется идти навстречу, понимаете ли.

s_kosorev
04.03.2020, 15:20
Есть такая игра - я последний оставлю комментарий

Ответы были предсказаны, но кое-кто не может удержаться, оставляю вас наедине с тараканами, план действий я обрисовал, но это вкусовщина для каких-то 99% потенциальных пользователей, на столь малый процент можно и забить, поддерживаю

Oleg N. Cher
04.03.2020, 16:50
Косорев, Вы тут ничего нового не сказали. Давайте я Вам поясню как это выглядит со стороны. Вот приходит перчик со своими тараканами и начинает всё подгонять под них и навязывать всем своё мнение. Ну да, Вы у себя в голове искажённо реконструировали XDev и критикуете по сути не саму XDev, а своё кривое её понимание. То же самое про BlackBox. Вы его когда в последний раз запускали? Лет 20 назад? А прикиньте, оно активно развивается и по сей день. Как пользователь XDev вы меня не интересуете, а критиков и так хоть жопой жуй. Я сказал, что ZXDev не заходит сишникам, асмерам и линуксоидам. Сишникам - потому, что не Си. Асмерам - потому что не асм. Линуксоидам - потому что не работает на линуксе или маке. А вот человеку непредвзятому, который научился набирать LOAD "", оно зайдёт влёгкую. Он уже через 10 минут запуска примеров сможет написать свою бегущую строку, если конечно пожелает. А ваши притязания, что-де "оно не работает на моей кофеварке с однобитным процессором" или "я ниасилил как мне набивать код на Обероне в моей любимой VSCode" это увольте меня от них, пожалуйста. Я сам набиваю в основном в Sublime Text editor, там удобно.

Oleg N. Cher
25.01.2021, 16:44
Опубликовал подсистему для разработки на Обероне для платформ на КР580 (i8080). В качестве компилятора используется zcc из пакета z88dk:

https://github.com/Oleg-N-Cher/K580Dev

- - - Добавлено - - -

http://i.piccy_.info/i9/9ac09ff2aa152b85f64203324a78eadb/1611581836/59833/1320134/K580Dev.jpg

Oleg N. Cher
03.02.2021, 02:56
Если вдруг кому-то интересно. Опубликовал свежий релиз XDevLite и подсистемы ZXDev (всё вместе ~4 Мб):

https://github.com/Oleg-N-Cher/XDev/releases/
https://zx.oberon.org/xdev
https://zx.oberon.org/xdev-en

http://i.piccy_.info/i9/a3587d9ee6a7b42dac16edd50546899f/1612309680/520277/1320134/XDev.png

P.S. На XDevLite.exe может ругаться антивирь, но это из-за нестандартности секций exe-шки, собранной Оберон-средой.

Oleg N. Cher
15.03.2021, 17:37
В следующем номере журнала Downgrade (http://www.dgmag.in) выйдет моя статья про портирование игры "FoxHunt" Савелия Иванкова (https://vk.com/wall-186099859_88) с ZX Spectrum на Радио-86РК:

https://zx.oberon.org/foxhunt
Напоминаю, что я не игродел-профи. Я разработчик среды разработки XDev на Обероне и популяризатор высокоуровневой разработки под ретро-платформы.

Сегодня с вашей помощью сделал поддержку мышки в игре. Прошу желающих потестировать. Особенно конечно интересно на реале.
Не знаю насколько чувствительно будет регулироваться управление и вообще правильно ли я работаю с мышкой.

74939
Кусок высокоуровневого кода, работающий с мышью:

IF is_mouse THEN
KMouse.SetXY(127, 95);
ticks := 5; REPEAT
b.PAUSE(1);
keys := KMouse.Read();
IF (keys # {}) THEN
IF keys*{1} = {} THEN is_mark := TRUE END;
IF keys*{0} = {} THEN is_fire := TRUE END;
END;
DEC(ticks) UNTIL ticks = 0;
IF KMouse.Y > 159 THEN IF cur_y < Ym-1 THEN INC(cur_y) ELSE cur_y := 0 END END;
IF KMouse.Y < 32 THEN IF cur_y > 0 THEN DEC(cur_y) ELSE cur_y := Ym-1 END END;
IF KMouse.X < 64 THEN IF cur_x > 0 THEN DEC(cur_x) ELSE cur_x := Xm-1 END END;
IF KMouse.X > 191 THEN IF cur_x < Xm-1 THEN INC(cur_x) ELSE cur_x := 0 END END;
END;
Низкоуровневый код полностью заимствован у VELESOFT (http://velesoft.speccy.cz/k-mouse_driver.htm), кроме процедуры определения наличия мышки.

Oleg N. Cher
23.03.2021, 13:44
Оберон использовали для разработки игр под PS? Вот это поворот!


Dr Andrew Perel
#3 / 7
Q: Oberon in real work.

Hi, I am the programming manager at Eutechnyx Ltd, a computer games
developer.
We have used Oberon as our main programming language (along with some
C and asm) for 3 years now. (Using the fantastic XDS compilers)
Recent games: Total Drivin' / Grand Tour Racing 98
Max Power Racing / Car Constructors Champiionship
These were all for Sony Playstation, although other games in
development will be released on more platforms.
Regards,
Andrew


Dr Andrew Perel
#7 / 7
Q: Oberon in real work.

Yes we pretty much always have openings for the right people.
NDA's forbid me talking about Playstation hardware etc ( most info can
be got on the net anyway).
For our playstation games we use an old oberon2 to c compiler on x86
PC's
then use the standard c compilers etc.
Feel free to send me c.v.'s

http://computer-programming-forum.com/28-oberon/1aaf2a21a1f620f8.htm

Smalovsky
23.03.2021, 19:13
Oleg N. Cher, вообще, для Next хотели изначально использовать твою идею - сделать удобный транслятор на си. Вот аналог ZX DEV:
https://idpixel.ru/news/796-elena-novyj-jazyk-programmirovanija-dlja-zx-spectrum-next/
Может есть смысл перейти на Next?

Oleg N. Cher
24.03.2021, 00:13
Ты мне предлагаешь перейти на Next? :) Так у меня его нет ;-) Ну и я в основном не игродел, так, жалкий подражатель.

Если речь идёт про разрабатывать на Обероне для Next, то вообще нет проблем. Приходите - научу, вместе разработаем подсистему для его поддержки. Но прямой заинтересованности заниматься этим самому у меня, опять же, нет.

Постом выше показываю, что достоинства трансляции Оберона в Си понимаю не только я, а вполне топовые игроделы.

Smalovsky
06.05.2021, 16:19
Oleg N. Cher, если тебе интересно внедрение компиляторов для спектрума, то вот тебе новость - Борель ZX Basic стал официальным языком разработки( наряду с си) для ZX Next. Пруф https://wiki.specnext.dev/Compilers
Коммерческая игра на Бореле ZX BASIC.


https://www.youtube.com/watch?v=s29KtHOfcOY

Oleg N. Cher
08.05.2021, 18:30
Это не новость. Буржуи уже давно программят для Z80-машин на Си (z88dk) и Басике (Boriel). Если бы я сильнее продвигал XDev, возможно, программили бы на Обероне. Хотя вряд ли. Всё-таки косность - она непрошибаема.

Ну и лениво убеждать скептиков, предлагать, доказывать, ещё и общаться с ними по-английски. Скучно это.

Тебе интересен Бориель - ковыряй Бориель. Эта тема не про Бориель.

Smalovsky
16.05.2021, 17:15
Тебе интересен Бориель - ковыряй Бориель. Эта тема не про Бориель.
Я не про Борель, я про продвижение ЯВУ. Теперь, если тебе будет кто втирать что ЯВУ не перспективны для спектрума, то можешь ему привести пример игры на Бореле.

Oleg N. Cher
16.05.2021, 19:35
Спасибо. Про игры на Бореле я давно знаю. И про поддержку z88dk и Boriel's буржуями, скажем, в библиотеках типа ZX7 и движках типа BiFrost и Nirvana+. А Next как платформа не обещает быть особо популярным, хотя может и зря я так думаю. Уже появляются более дешёвые клоны, это прикольно.

Smalovsky
11.07.2021, 16:42
Oleg N. Cher, многие думают, что на Паскале никакой серьёзной игры не напишешь.
Однако супермарио для писи написан на Паскале в 1994!
https://idpixel.ru/games/supermariobrospc/

Oleg N. Cher
11.07.2021, 18:38
Smalovsky, ретро-кодеры думают, что на Паскале никакой серьёзной игры не напишешь для ретро-платформ. А для писи много чего было на Паскале: Кинг/Морской бой Вадима Башурова, игры от Gamos (Девятка, Color lines), да всего и не перечесть.

Но несерьёзные-то можно. А часто более ничего и не требуется. Ретро-платформы это по меркам нашего времени тоже несерьёзно.

klingon
11.07.2021, 21:46
vga planets был на powerbasic написан на диалекте basic. А лучший клиент для нее VPA - на Bortland pascal 7.0 (даже исходники есть)

Oleg N. Cher
12.07.2021, 03:24
Раз пошла такая пьянка, я программлю для Sega MegaDrive на Обероне! Но я мало значу и такой почти один.

А PC не такое уж и ретро, достаточно мощное железо, чтобы потянуть что-то на Паскале, тем более что низкий уровень и быстрый вывод графики всё равно делают на асме.

Smalovsky
12.07.2021, 17:12
я программлю для Sega MegaDrive на Обероне!
А какой компилятор си используешь для транслятора?

^m00h^
12.07.2021, 20:14
Кстати в Haiku os портировали blackbox: http://discuss.haiku-os.org/t/blackbox-component-bu@gDqtAxwv6*Ailder-is-ported-to-haiku/9995

Oleg N. Cher
13.07.2021, 20:05
А какой компилятор си используешь для транслятора?GCC, идущий в комплекте SGDK (https://github.com/Stephane-D/SGDK).

Smalovsky
19.07.2021, 15:18
Oleg N. Cher, я тут решил пойти по твоим стопам трансляторщика - хочу попробовать мощный bcx basic и Z88dk в связке.
ссылка на транслятор https://bcxbasiccoders.com/
Возможно попробую связку Паскаля с Z88dk. Нашёл транслятор http://www.garret.ru/~knizhnik/pascal.html

Oleg N. Cher
19.07.2021, 22:19
Ну, бог в помощь. Только не привлекай почитателей, заклюют)

Andrew771
19.07.2021, 22:41
Мне тоже больше нравится теперь писать на своем Паскале. На асме пишу только то, чего нет в Паскале, или когда нужно компактно. А так, 80% кода спокойно на ЯВУ пишется.

Oleg N. Cher
20.07.2021, 23:29
А мы теперь и для GameBoy пишем на Обероне.
Скоро опубликую новую подсистему GBDev.

Smalovsky
21.07.2021, 14:05
Oleg N. Cher, ну круто, что сказать. Ну вот я, например, почему-то не могу на Обероне, мне нравится обычный Паскаль. Как не пытался освоить Блэкбокс - не мог... Да ладно... Ждём плодов для мегадрайва и геймбоя.

Oleg N. Cher
24.07.2021, 04:41
Плоды может и будут, но я не публикую всё, что делаю. Смысла нет. Иногда в телеграм-группе что-то показываю в узком кругу.

А ты зря так рано сдался. Оберон это круто (https://www.youtube.com/watch?v=x08Rp9nWAH4).

А с трансляцией Паскаля в Си у тебя сделать что-то для восьмибиток, скорее всего, не получится, потому что трансляторы, в основном, либо недоделки, либо заточены под большие ресурсы и с претензией типа на совместимость с Дельфи.

В любом случае, надо быть готовым сделать из недоделки доделку, либо иметь очень ограниченную функциональность. Это большая работа. У меня развитие транслятора Ofront заняло уже больше десятка лет. Даже свой диалект Оберона сделал, специально адаптированный под машинки со слабыми ресурсами. И с возможностью иметь ключевые слова в нижнем регистре.

Но мне конечно было бы интересно узнать чего в Обероне такого плохого, что Паскаль его чем-то лучше. Кроме аргументов в стиле "я это не щупал, но меня терзают смутные сомнения".

^m00h^
24.07.2021, 06:45
еще бы по Haiku что-нибудь писали...

Oleg N. Cher
25.07.2021, 17:16
Так пишите, любители Haiku. А я даже умозрительно не представляю, что это за хрень)

Andrew771
25.07.2021, 23:06
Паскаль лучше тем, что привычнее. :) Многие его в 90е изучали в учебных заведениях

Oleg N. Cher
26.07.2021, 04:29
Паскаль привычнее, потому что вы вообще не вникли в то, что такое Оберон. А это ещё более уточнённый Паскаль, из которого убраны лишние begin'ы, добавлена модульность (в Виртовском Паскале её не было), а платформенные особенности вынесены в SYSTEM. Так что привычность Паскаля при отрицании Оберона - это стереотипы в голове. Фёдор Васильевич Ткачёв, автор проекта Информатика 21, называет Оберон Ультра Паскалем, и он прав. Преемственность абсолютно налицо.

Вас почему не смущает, что на каждой ретро-машинке был свой диалект Бейсика, а иногда и несколько? Почему всё это называется Бейсиком? Оберон имеет право называться Паскалем, потому что он похож на Паскаль куда больше, чем некоторые Бейсики на Бейсик.

- - - Добавлено - - -

Andrew771, ещё про совместимость с Дельфи расскажите) Что-де без неё на ретромашинках ну никак ;)

P.S. Коллеги, мне нужен shell-аккаунт какой-либо *BSD-системы. Для пересборки Ofront+ (транслятор Оберона в Си) для *BSD. Юзаться будет редко и мало, может раз-два в месяц. Готов дать немного денег, но не готов платить помесячно.

На *BSD нужен git и gcc.

Bedazzle
26.07.2021, 15:36
P.S. Коллеги, мне нужен shell-аккаунт какой-либо *BSD-системы. Для пересборки Ofront+ (транслятор Оберона в Си) для *BSD.

Поставь виртуалку. Например, https://www.virtualbox.org/
Туда что угодно, и запускаешь свою систему по мере надобности.

nzeemin
27.07.2021, 01:41
P.S. Коллеги, мне нужен shell-аккаунт какой-либо *BSD-системы. Для пересборки Ofront+ (транслятор Оберона в Си) для *BSD. Юзаться будет редко и мало, может раз-два в месяц. Готов дать немного денег, но не готов платить помесячно.

На *BSD нужен git и gcc.

Если проект открытый - подключаешь сборку через Travis CI, всё бесплатно, единственная проблема это .yaml файл написать.

https://docs.travis-ci.com/user/reference/freebsd/

Oleg N. Cher
10.08.2021, 11:45
Собрал список подсистем и проектов на Обероне/XDev для различных платформ. Иногда просят показать, чего можно сделать на Обероне для ретро. Ну вот, наконец дошли руки подрезюмировать нашу деятельность.

Подсистемы (разной степени готовности):

DosDev (https://github.com/Oleg-N-Cher/DosDev) (Turbo C 2.01) for DOS-like (MS-DOS, PC-DOS, FreeDOS)GBDev (https://github.com/Oleg-N-Cher/GBDev) (SCCZ80, ZSDCC) for GameBoy/GameBoy ColorK580Dev (https://github.com/Oleg-N-Cher/K580Dev) (SCCZ80) for Soviet computers based on KP580BM80: Apogee BK-01, Vector-06c, Korvet, Microsha, Orion, Radio-86RK, Specialist, Lvov PC-01, etcLinDev (https://github.com/Oleg-N-Cher/XDev/tree/master/LinDev) (GCC) for UNIX-like (*BSD, Linux, macOS)MsxDev (https://github.com/Oleg-N-Cher/MsxDev) (SDCC) for MSXNesDev (https://github.com/Oleg-N-Cher/NesDev) (CC65) for NES (Dendy, Famicom)SmdDev (https://github.com/Oleg-N-Cher/SmdDev) (GCC) for Sega Mega DriveUkncDev (https://github.com/Oleg-N-Cher/UkncDev) (OMSI Pascal) for Soviet computer UKNCWinDev (https://github.com/Oleg-N-Cher/XDev/tree/master/WinDev) (MinGW) for Windows x86, x64WinDevD (https://github.com/Oleg-N-Cher/WinDevD) (Delorie DJGPP + Max Feoktistov tools) based on Delorie DJGPP compiler for Win32 (small exe/dll)ZXDev (https://github.com/Oleg-N-Cher/XDev/tree/master/ZXDev) (SDCC) for ZX SpectrumZXDev3 (https://github.com/Oleg-N-Cher/ZXDev3) (Hi-Tech C v3.09) (based on Hi-Tech C for CP/M) for ZX SpectrumSmsDev (SDCC) for Sega Master System (unpublished)DroNDK (Android NDK, unpublished)DroSDK (Android SDK, unpublished)JmeDev (Java ME, unpublished)

Игры:

15s, Пятнашки с картинками (https://vk.com/wall-186099859_84) - логическая игра от Савелия Иванкова (Yprit) (ZX Spectrum)2048 (https://vk.com/wall-186099859_48) - логическая игра от Савелия Иванкова (Yprit) (ZX Spectrum)Arkanoid (https://github.com/Oleg-N-Cher/Arkanoid) - port of Arkanoid game from Monkey-X to Oberon-2. Based on SDL 2 (Windows, Linux, macOS)Bolder16K (https://github.com/Oleg-N-Cher/Bolder16K) - a tiny multi-platform Boulder Dash-like game (ZX Spectrum, Lvov PC-01)Colorflow (https://vk.com/wall-186099859_85) - логическая игра от Савелия Иванкова (Yprit) (ZX Spectrum)DarkWoods (https://github.com/Oleg-N-Cher/DarkWoods) - port of game "Dark Woods" by Jocke The Beast (Java ME, Linux, Windows, ZX Spectrum)Dash (https://github.com/Oleg-N-Cher/Dash) - full version of Bolder Dash (MS-DOS, ZX Spectrum, Java ME) (incomplete)Dice (Кости) (https://zx.oberon.org/forum/viewtopic.php?f=10&t=191) - a simple console game (ZX Spectrum)FoxHunt (https://zx.oberon.org/foxhunt) - a logical game by Saveliy Ivankov (Yprit) (ZX Spectrum, Radio-86RK)Numeris (https://vk.com/wall-186099859_72) - логическая игра от Савелия Иванкова (Yprit) (ZX Spectrum)Roguelike with strategy (https://zx.oberon.org/forum/viewtopic.php?f=10&t=125) - рогалико-подобная игра от slenkar, без исходников (ZX Spectrum)Бега мышей (https://zx.oberon.org/forum/viewtopic.php?f=10&t=190) (из книги «Как написать игру для ZX Spectrum»)Звёздная война (https://zx.oberon.org/forum/viewtopic.php?f=10&t=204) (из книги «Как написать игру для ZX Spectrum»)

Разное:

53Cosmos (https://zx.oberon.org/forum/viewtopic.php?f=10&t=469) - редактор атрибутных картинок от Савелия Иванкова (Yprit) (ZX Spectrum)Поздравительный ZX-клип на Обероне (https://zx.oberon.org/forum/viewtopic.php?f=10&t=250) (ZX Spectrum)

Статьи:

Тонкости при разработке на Обероне в среде ZXDev (https://zx.oberon.org/forum/viewtopic.php?f=10&t=249) (Info Guide #11 (http://alonecoder.nedopc.com/zx/books/IG11.ZIP))Как я игру FoxHunt на Радио-86РК портировал (http://www.dgmag.in/) (Downgrade #34 (http://www.dgmag.in/))Савелий Иванков. Игра 2048 на Обероне для ZX Spectrum (https://zx.oberon.org/zx2048)Савелий Иванков. ZX Spectrum сегодня, а также чем я пользуюсь для написания программ (https://vk.com/@64kilobytes-zx-spectrum-segodnya-a-takzhe-chem-ya-polzuus-dlya-napisaniy)

Oleg N. Cher
14.08.2021, 19:27
Экспериментирую не только с лоукейсом, но и с убиранием ";" в Обероне-3:

http://i.piccy_.info/i9/a9176eaea6de1c755b55216e956b318a/1628945600/45023/1320134/Oberon_3.png

Oleg N. Cher
01.09.2021, 22:59
Теперь Оберон-3 может выглядеть вот так:

http://i.piccy_.info/i9/b21b109a670dcf933b386a6a22a1b197/1630526270/19931/1320134/fibonacci.jpg

Теперь ";" необязательный разделитель и может отсутствовать. Нижний регистр ключевых слов опциональный.

AlexG
22.10.2021, 17:53
офтоп: существует ли компилятор с языка Оберона реализованного на языке С для виндовс (хост) для тагет http://www.projectoberon.com/ ???

Oleg N. Cher
22.10.2021, 23:55
Что значит "для тагет www.projectoberon.com" ???

В www.projectoberon.com свой собственный компилятор Оберона.

Си оберонщики недолюбливают, поэтому компиляторы Оберона на Си в основном не пишут.

AlexG
23.10.2021, 00:26
мне надо(хочется) скомпилить BootLoad.Mod написанный на обероне в машинные коды проца RISC5 что на плисе. при отсутствии "родного" компилятора из этого проекта. другими словами есть только исходник - а нужен кросс-компилятор под винды(хост) для проца RISC5(тагет).
мне монопенисуально кто кого не до любливает.

Oleg N. Cher
23.10.2021, 02:00
Виртовский RISC5 (https://en.wikipedia.org/wiki/RISC5) это не та же архитектура, что RISC-V (https://ru.wikipedia.org/wiki/RISC-V). Вы точно не путаете?

Ещё разрешите усомниться в целостности и самоценности модуля BootLoad.Mod, скорее всего, это откуда-то выдернутый низкоуровневый модуль, который использует зависимости Оберон-системы и/или нестандартные языковые расширения Оберона. Кстати, он на каком Обероне написал? Oberon-07 ?

Такого кросс-компилятора ни для RISC5, ни для RISC-V нет, тем более, под Windows. Максимум, что я могу предложить - это мой транслятор Ofront+ (https://zx.oberon.org/ofrontplus), он умеет транслировать пять диалектов Оберона в Си, дальше можно собрать сишкой.

- - - Добавлено - - -

Да, если нужен всё-таки RISC5, зайдите на https://t.me/ofrontplus - мож кто-то что-то подсоветует. Вроде собирали в системе, запущенной в браузере. Но точно без Си и без Windows.

AlexG
23.10.2021, 12:06
ну я как бы не настолько пьян чтоб путать 5 с V. Сей модуль есть содержимое "загрузочной ПЗУшки", она вычитывает содержимое из SD в RAM, далее исполняется код из RAM. Какой диалект - хз. Их как собак не резаных. У меня есть двоичный код сего модуля и есть исходник. Нужен компилер с ЯП в машкод (есть возможность проконтролировать соответствие исходника, его коду и правильность компилятора). далее собрать систему на современном "железе/плис" отладке плате. В чём "прикол" - в том что есть всё от теории до реализации, от "операционки" до реального железа , что можно пощупать, по адаптировать и тд. короче как и задумывалось профессором - "учебный комплект"
пс: телеги нет и пока не предвидится...

- - - Добавлено - - -

чегото с набегу я не заметил где есть ехе-ник "транслятор Ofront+". или там так же надо "раскорячиваться" и компилировать транслятор ?

Oleg N. Cher
23.10.2021, 16:21
Понятно. Но смотрите: Project Oberon даёт на выходе скомпилированные модули своего формата, наверняка при динамической загрузке они настраиваются перед исполнением на необходимые адреса. Так что придётся разбираться с этим.

Насколько большой модуль BootLoad.Mod и откуда он взят? (его собирать имеет смысл в той среде, откуда он родом)

Project Oberon последней ревизии - на Oberon-07/16, который ещё называют Revised Oberon.

Мне неизвестны способы компилировать Си в машкод RISC5. Так что предположу, что Вы имеете в виду всё-таки RISC-V.

exe'шка Ofront'а+ имеется. Лежит в Target/Win32/ofront+.exe

AlexG
23.10.2021, 17:02
1) да, своего формата (ещё не смотрел)
2) BootLoad.Mod упоминается в инструкции по "сборке" с нуля процессора на плисе, но исходники на оном сайте не представлены, зато есть на сайте https://people.inf.ethz.ch/wirth/ProjectOberon/index.html
Его двоичный код не больше 512 слов(по 32бита). собирается собственно "своим" компилятором (исходники я надеюсь на сайте полностью выложены) и на этой же аппаратной платформе (кажется так).
3) у меня нет рабочих компиляторов с Оберона и С на проц RISC5.
4) как и нет самой реализации RISC5 на плисе. То что выложено на сайте возможно работает и работает на трёх различных платах. Они очень древние, и они отсутствуют у меня. Там применяются плисы Спартан-3 и среда разработки "Xilinx ISE". У меня есть платы только свежие (аля Спартан-7) и свежая Xilinx Vivado.
5) оригинал проца написан на Verilog-е, Это конечно хорошо, но я пишу на systemverilog-e, а Verilog (условно вчерашний день).
6) докучи он (проц ) написан в "академическом стиле", другими словами в исходном коде отсутствуют "нужные" куски кода (которые повышают надёжность работы проца и позволяют выполнять моделирование в симуляторе поведение процессора - то как он работает в плисе).
7) RISC-V это условно современный проц класса risc (не cisc), аля арм, мипс.
RISC5 - это risc реализация проца Вирта со своей уникальной системой команд.
Надеюсь ваши сомнения развеяны ?
8) Чего хочу в конечном:
- поднять свой уровень магических умений в языках "программирования" ПЛИС
- научиться писать тестбенчи на SV
- "поднять" оберон систему на современной плате (относительно, в данном случае ZedBoard)
- добавить цвета на дисплей, реализовать многопоточность (ну я так это называю), AXI шину - дабы можно было использовать инфраструктуру xilinx по доступным ip-ядрам (возможно и wishbone и тамошние ядра), симметричную многопроцессорную систему и др хотелки.
- возможно видоизменить язык (да здравствует очередной диалект).
- если я осилю первые две хотелку - то уже замечательно.
пс: конечно я могу найти (на "складе") древние отладочные платы, но ISE уже не работает цивильно на win10, и systemverilog поддерживается только Vivado.

Oleg N. Cher
23.10.2021, 17:40
1) да, своего формата (ещё не смотрел)
2) BootLoad.Mod упоминается в инструкции по "сборке" с нуля процессора на плисе, но исходники на оном сайте не представлены, зато есть на сайте https://people.inf.ethz.ch/wirth/ProjectOberon/index.html

Несколько лучше понял Вашу задумку. Тогда конечно уровень Си здесь не пригодится. Проц полностью Виртовский, компилятор с него только один, его и надо использовать. Я могу конечно оттранслировать BootLoad.Mod (https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/BootLoad.Mod.txt) в Си при помощи Ofront'а+, но что это нам даст?


Его двоичный код не больше 512 слов(по 32бита). собирается собственно "своим" компилятором (исходники я надеюсь на сайте полностью выложены) и на этой же аппаратной платформе (кажется так).Исходники там точно есть, но вряд ли так просто удастся запустить его для Windows/UNIX, там же заточка чисто под Оберон-систему.

Кстати, обратите внимание, что в BootLoad.Mod (https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/BootLoad.Mod.txt) идёт две версии модуля:

MODULE* BootLoad; (*NW 20.10.2013 / PR 4.2.2014; boot from SDHC disk or line*)

и:

MODULE* BootLoad; (*NW 10.2.2013, boot from line only*)

Какую именно нужно собирать?

P.S. Звёздочка после MODULE это уже нестандартное расширение. Теряюсь в догадках, что это значит. Могу только предполагать.


3) у меня нет рабочих компиляторов с Оберона и С на проц RISC5.Ну, проц Виртовский, Си для него никто не делал. Си для него нету. А Оберон есть, притом я почти уверен, что Project Oberon можно запустить в браузере. Там и поюзать компилятор.


4) как и нет самой реализации RISC5 на плисе. То что выложено на сайте возможно работает и работает на трёх различных платах. Они очень древние, и они отсутствуют у меня. Там применяются плисы Спартан-3 и среда разработки "Xilinx ISE". У меня есть платы только свежие (аля Спартан-7) и свежая Xilinx Vivado.Уверен, нет смысла держаться старых плат, нужно поддерживать новые.


5) оригинал проца написан на Verilog-е, Это конечно хорошо, но я пишу на systemverilog-e, а Verilog (условно вчерашний день).То же самое про Verilog.


6) докучи он (проц ) написан в "академическом стиле", другими словами в исходном коде отсутствуют "нужные" куски кода (которые повышают надёжность работы проца и позволяют выполнять моделирование в симуляторе поведение процессора - то как он работает в плисе).Правильно. Вирт был сильно завязан на образовании и буквально помешан на простоте и обозримости. Я согласен, что если это кто-то будет использовать, то надёжность важнее.


7) RISC-V это условно современный проц класса risc (не cisc), аля арм, мипс.
RISC5 - это risc реализация проца Вирта со своей уникальной системой команд.
Надеюсь ваши сомнения развеяны ?Теперь конечно. Кстати, у меня есть свой интерес - запустить Оберон-систему на ZX Uno. Было бы очень круто. Но не знаю, насколько Вам это будет интересно. И я почти полный профан в ПЛИС и железе.

Итак, я скопировал Ваше сообщение в оберонские группы, если кто-то подтянется, будет хорошо. Также советую зарегиться на форуме OberonCore (https://forum.oberoncore.ru), вот там точно тусуются профи. Они помогут.

AlexG
23.10.2021, 18:03
очередные раскопки:
1) в BootLoad.Mod
есть строчки
IMPORT SYSTEM;
и
SYSTEM.GET(rsData, y); z := ROR(z+y, 8)
первая строчка насколь я понимаю (по аналогии со времён освоения турбо паскаля)
импорт внешнего модуля SYSTEM.
Соответственно где его брать ? (на сайте его в явном виде нет) или он "реализован" внутри родного компилятора ?
Соответственно SYSTEM.GET это вызов процедуры из модуля SYSTEM.
а вот что значит ROR ? (честно я не читал описания языка) это встроенный оператор языка или это "библиотечная процедура" ?
2) до кучи в BootLoad.Mod.txt есть несколько реализаций BootLoad и "команд компиляций"
3) я пробовал транслировать - получил "кучу" ошибок...

- - - Добавлено - - -

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

x86128
23.10.2021, 18:05
2) BootLoad.Mod упоминается в инструкции по "сборке" с нуля процессора на плисе, но исходники на оном сайте не представлены, зато есть на сайте https://people.inf.ethz.ch/wirth/Pro...ron/index.html (https://people.inf.ethz.ch/wirth/ProjectOberon/index.html)
Его двоичный код не больше 512 слов(по 32бита). собирается собственно "своим" компилятором (исходники я надеюсь на сайте полностью выложены) и на этой же аппаратной платформе (кажется так).

Полагаю у Вас нет возможности к Вашей плате подключить SD-карту так как она включена у Вирта? Иначе зачем пересобирать prom.mem если его и так можно скачать уже собранный и прошить в вивадо в ПЗУ (как это обычно делается средствами IDE)


3) у меня нет рабочих компиляторов с Оберона и С на проц RISC5.

Оно не нужно так как есть эмулятор с образом SD-карты. Там как раз можно собрать что угодно, т.к. проектоберон может собрать сам себя.


5) оригинал проца написан на Verilog-е, Это конечно хорошо, но я пишу на systemverilog-e, а Verilog (условно вчерашний день).

Вивадо соберет этот верилог. Если хотите тестировать без заливки в ФПГА тогда придется сделать свой тест-бенч под себя.

AlexG
23.10.2021, 18:11
судя по всему "оберон-07"

Oleg N. Cher
23.10.2021, 18:15
импорт внешнего модуля SYSTEM. Соответственно где его брать ? (на сайте его в явном виде нет) или он "реализован" внутри родного компилятора ?Да. SYSTEM это псевдомодуль, он встроен в сам компилятор. Соответственно, никаких исходников для него нет, процедуры из него транслируются прямо в машкод самим компилем.


Соответственно SYSTEM.GET это вызов процедуры из модуля SYSTEM.Да. Чтение из памяти в переменную.


а вот что значит ROR ? (честно я не читал описания языка) это встроенный оператор языка или это "библиотечная процедура" ?Это встроенная процедура языка Оберон-07, реализует циклический сдвиг вправо на N бит. Почитайте описание (https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf), оно же небольшое.


2) до кучи в BootLoad.Mod.txt есть несколько реализаций BootLoad и "команд компиляций"Да, так и есть. В стиле Оберон-системы: можно выделить мышкой команду и скомпилировать.


3) я пробовал транслировать - получил "кучу" ошибок...Увы, тут я не помогу - надо спрашивать кого-то более компетентного именно в ПЛИС. Я больше для десктопов программирую.


По большому счёту: мне как то безразлично компиляция BootLoad - могу восстановить алгоритм из бинарника и посмотреть что конкретно в нём делается и какому BootLoad он соответствует, Но я "суперстар" что бы писать в машиных кодах. Посему мне нужен компилятор с языка Оберон (это если следовать заветам Вирта) ну или с Си в машинный код проца и чтоб оный компилятор запускался под виндами.Не, компилятора Си для RISC5 точно нету. Но тут товарищ сообщает, что есть эмулятор Оберон-системы для винды.

Evgeniy, [23.10.21 17:53]
я посмотрел там этот prom.mem уже откомпилированный лежит. Его надо просто встроить в ПЗУ при сборке проекта в vivado. Есть вариант что у товарища нет возможности прицепить PS/2 клавиатуру и мышь и тогда ему понадобиться пересобирать драйвер для оберона на компе с помощью какого-то кросс-компилятора

Oleg N. Cher, [23.10.21 17:54]
У товарища ж нет старой платы Spartan 3

Evgeniy, [23.10.21 17:54]
а где взять самое полное описание оберон-7/16 ?

Oleg N. Cher, [23.10.21 17:54]
То есть, он может всё это делать только на компе с виндой

Evgeniy, [23.10.21 17:54]
благо на сайте выложен эмулятор под винду
так же как и образ SD-карты с которой он может загружаться
можно в нем откомпилировать и потом зашить в плату с ПЛИС

Oleg N. Cher, [23.10.21 17:55]
Ага, там есть эмулятор. Прям на сайте Project Oberon?

Evgeniy, [23.10.21 17:55]
да

Oleg N. Cher, [23.10.21 17:55]
https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf

Evgeniy, [23.10.21 17:55]
спасибо

x86128
23.10.2021, 18:18
ROR это циклический сдвиг вправо, то есть если у нас есть некое 32-хбитное число 0xAABBCCDD то при сдвиге вправо на 8 бит мы получим 0xDDAABBCC
Модуль SYSTEM содержит платформозависимые процедуры - типа сборщика мусора, работы с диском на низком уровне и выделение памяти в куче.
Часть операций модуля SYSTEM зашиты в компилятор - типа взятие адреса переменной.

AlexG
23.10.2021, 18:38
Полагаю у Вас нет возможности к Вашей плате подключить SD-карту так как она включена у Вирта? Иначе зачем пересобирать prom.mem если его и так можно скачать уже собранный и прошить в вивадо в ПЗУ (как это обычно делается средствами IDE)
Оно не нужно так как есть эмулятор с образом SD-карты. Там как раз можно собрать что угодно, т.к. проектоберон может собрать сам себя.
Вивадо соберет этот верилог. Если хотите тестировать без заливки в ФПГА тогда придется сделать свой тест-бенч под себя.
1) да, на отладке (на zedboard) SD-карта не доступна со стороны плисы. ровно как и не достучаться к uart.
2) если тот что на выше упомянутом сайте (эмулятор) - то я конечно всё понимаю - но он вдрызг не практичен и неудобен. Да и докучи - предположим я "там" что то написал/скомпилировал - как я получу результат на реальном компе (а не внутри эмулятора)?
3) Да вивадо "берёт" этот верилог, но есть глобальное НО - в оригинальных файлах отсутствует инициализация "триггеров", а посему симулятор "весь красный" так как он не догадывается, а что там "в регистре по сбросу" находится...
4) ежу понятно что тест-бенчи писать самому. это "вторая хотелка".

- - - Добавлено - - -


ROR это циклический сдвиг вправо, то есть если у нас есть некое 32-хбитное число 0xAABBCCDD то при сдвиге вправо на 8 бит мы получим 0xDDAABBCC
Модуль SYSTEM содержит платформозависимые процедуры - типа сборщика мусора, работы с диском на низком уровне и выделение памяти в куче.
Часть операций модуля SYSTEM зашиты в компилятор - типа взятие адреса переменной.
1) Я "прочитал" описание Оберон-7... ;)
2) про SYSTEM я значит правильно догадываюсь - значит надо "копать" в сторону компилятора.

x86128
23.10.2021, 18:50
1) а как Вы тогда будете взаимодействовать с системой если нет возможности подключать внешние устройства?
2) придется написать утилиту которая выкусит загрузчик
3) это не проблема так как реальное железо ведет себя именно так при включении, но подводить сброс к каждому триггеру это очень непрактично, поэтому сбрасываются аппаратно только самые главные регистры - типа счетчика команд, а остальной сброс ижет уже программный. Отсутствие глобально сброса, кстати, поможет Вам при отладке :)
4) это тоже интересно

- - - Добавлено - - -

Компилятором тоже займитесь так как это не менее интересно. Сначала выглядит как магия но потом начинаешь чувствовать красоту преобразования ЯП высокого уровня в машинный код
я перспективе, тоже хочу собрать систему Оберон, только на другом процессоре

AlexG
23.10.2021, 19:20
про "ZX Uno" есть пару минусов
1) его нет у меня
2) это Спартан-6 . Vivado "знает" плисы начиная с Спартан7. Для всего остального "древнего" "существует" ISE.
3) ISE - по человече (насколь я помню) не понимает SV, только Verilog.
4) так что если очень надо то:
- после запуска у себя "можно" будет заняться "обратным портированием" (но если честно шансов маловато)...
- ну и иметь доступ к "телу ZX Uno" на расстоянии вытянутой руки.
PS: что существует ещё VHDL - я в курсе, но по ряду причин он для меня не актуален.

[

- - - Добавлено - - -

x86128
1) Ну если кто посмотрит описание оной платы - то поймёт что там есть "альтернативные" способы общения. Особенно если уметь дружить с паяльником.
2) вот ещё "заниматься извратом" вытаскивать из эмулятора с помощью "хексредактора" бинарники.
3) реальное железо тоже надо временами инициализировать "нужным" значением. не всегда "0" бывает правильным.
4) Кстати, а как "Отсутствие глобально сброса, кстати, поможет Вам при отладке" ?
5) да, не всегда "глобальный сброс" полезен, но для симулятора надо либо "сброс в схеме", либо явное указание исходного значения.
6) "написание" компиляторов это тоже ещё та отдельная интересная тема.

Oleg N. Cher
я заглянул в исходники компилятора - там действительно есть реализация порядка 12 процедур. В самом конце ORB.Mod.txt упоминаются оное.

- - - Добавлено - - -

До кучи - почитывая про симуляцию Verilog и SV - я кажется видел что они отличаются в части про то какое значение имеют регистры в "нулевой момент времени". и наверно в "бытности" в ISE там всё хорошо симулировалось. ИМХО. Потом ещё почитаю.
пс: Си я использую 20 с лишним лет. ПЛИСами я занимаюсь набегами лет пять-пятнадцать наверно. а первый раз столкнулся с ними в 98году.

Oleg N. Cher
23.10.2021, 20:19
Я думаю, если всё будет получаться, то могут найтись желающие предоставить Вам ZX Uno/ZX DOS для подобного проекта.
Можно даже попробовать сконтактировать с Антонио Вилленой и другими разработчиками ZX Uno, они могут заинтересоваться.
Но лучше будет показать им уже какие-то практические результаты.

По поводу Телеграм - ничего лучше для обсуждения технических вопросов текстом я не знаю. К Дискорду и Скайпу так и не привык. Мы ещё юзаем Rocket Chat и (для видеоконференций) Jitsi.

Предлагаю создать отдельную тему для Вашего проекта.

- - - Добавлено - - -

Может вот это как-то пригодится:

https://github.com/aixp/ProjectOberon-BlackBox

Насколько я понимаю, Project Oberon, портированный в среду BlackBox Component Builder, т.е. работает под виндой.

- - - Добавлено - - -

Вот ещё что-то по теме:

https://zx.oberon.org/forum/viewtopic.php?f=98&t=292&start=10#p1849

P.S. Авторы обоих проектов обитают в Telegram, приходите - познакомлю.

AlexG
23.10.2021, 20:53
оберон форум копал - но он тоже мутноват.
и сию тему про IDEне видел - на первый взгляд это то что примерно ищется.
спасибо