Просмотр полной версии : Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию
посмотрел... рука лицо.
там только исходники.. exe-ника нема.
Oleg N. Cher
24.10.2021, 12:54
Ну а шо ж Вы хотели, уважаемый. Не стреляйте в пианиста, он играет как умеет.
Мне тут товарищ подсказал, что в Телегу можно заходить через браузер. Явитесь и выскажите претензии автору лично)
3) реальное железо тоже надо временами инициализировать "нужным" значением. не всегда "0" бывает правильным.
4) Кстати, а как "Отсутствие глобально сброса, кстати, поможет Вам при отладке" ?
5) да, не всегда "глобальный сброс" полезен, но для симулятора надо либо "сброс в схеме", либо явное указание исходного значения.
Дело в том что глобальный сброс требует протягивания через всю вашу схему еще одного провода по мимо тактового сигнала. Он добавит задержку, т.к. необходимо будет учитывать время распространения этого сигнала через всю схему и энергопотребление (так как на нем всегда будет присутствовать какой-то логический уровень).
Аппаратный сброс делается только для тех регистров, которые невозможно сбросить программно (мы ведь про процессор говорим). Всё остальное - программно. В простейшем случае получается надо запретить прерывания и обнулить счетчик команд. Хотя вот у Z80 прерывания вырубаются тоже программно - т.к. самая первая инструкция там DI в БИОСе.
В случае FPGA эта паутина проводов уже имеется, поэтому там всё "обнуляется" при старте нужными значениями. В реальных же схемах (считай ASIC) такой возможности нет.
Отсутствие сброса в модели на Verilog или SV поможет Вам отследить использование значений регистров без их инициализации, как использование переменной без её инициализации. Причем это всё можно отследить в симуляторе. А если всю схему сбрасывать в 0, то такое можно пропустить, потому как этот 0 вы не увидите в трассировке.
Дело еще в том, что несмотря на то что описание схемы задано на языке Verilog который похож на программу - это не программа. Это именно описание цифровой электрической схемы принцип работы которой основан на регистровых передачах (RTL) то есть вы этим описанием задаете цепочки регистров и правила перехода их из одного состояния в другое. Можно сказать что последовательный код на verilog на самом деле не последовательный а реально параллельный.
"Глобальный сброс" плох совсем по другой причине. (если точнее одну причину назвали , но забыли другую, а третья не существенна)
По занудствую(повторюсь):
пс: Си я использую 20 с лишним лет. ПЛИСами я занимаюсь набегами лет пять-пятнадцать наверно. а первый раз столкнулся с ними в 98году.
Smalovsky
25.10.2021, 13:21
А на Опенкорес свежей сборки риск 5 не будет?
Сотворил отдельную тему
https://zx-pk.ru/threads/33917-project-oberon.html
Так пишите, любители Haiku. А я даже умозрительно не представляю, что это за хрень)
https://github.com/X547/BlackBox-Haiku
Oleg N. Cher
30.01.2022, 15:43
Угу, видел. Хорошая разработка.
Barmaley_m
05.02.2022, 20:56
Дело в том что глобальный сброс требует протягивания через всю вашу схему еще одного провода по мимо тактового сигнала.
Вот эта причина самая существенная. Кто разводил платы - не даст соврать. Питание и землю подводить к каждой микросхеме - это уже гемор и затрудняет разводку остальных связей, а если добавить сюда еще один сигнал (сброс) - то ситуация еще более усугубляется.
Он добавит задержку, т.к. необходимо будет учитывать время распространения этого сигнала через всю схему
Ну да, за счет общего затруднения разводки связей, станет меньше возможностей по их оптимизации с точки зрения задержек. Хотя сам сигнал сброса можно поставить на игнор в Timing Constraints, тогда хотя бы он сам не будет подвергаться оптимизации.
и энергопотребление (так как на нем всегда будет присутствовать какой-то логический уровень).
Вот это вряд ли. Так как уровень этот обычно постоянный, а львиная доля энергопотребления КМОП-микросхем происходит именно из-за переключений сигналов - то большого вклада в общее потребление схемы сигнал сброса не внесет. Там разве что токи утечки затвора будут, а динамических токов (которые на порядки выше) - нет.
С другой стороны, реализация триггеров без входа сброса более экономична с точки зрения площади кристалла. И, когда триггеров много - то эффект значителен. Не даром Xilinx отказались от входа установки (S) у триггеров при переходе от Spartan 3 к Spartan 6, оставили только сброс. А в 7й серии оставили только синхронный сброс, от асинхронного отказались тоже.
Аппаратный сброс делается только для тех регистров, которые невозможно сбросить программно (мы ведь про процессор говорим). Всё остальное - программно. В простейшем случае получается надо запретить прерывания и обнулить счетчик команд.
Плюсуюсь. Это правильно. И в Z80 именно это и делается. Возможно, еще режим прерываний ставится на IM 0, хотя это лишнее. Остальное можно программно.
Хотя вот у Z80 прерывания вырубаются тоже программно - т.к. самая первая инструкция там DI в БИОСе.
Нет, прерывания при сбросе там запрещаются аппаратно. В противном случае невозможно гарантировать надежный старт компьютера при включении, если до исполнения первой инструкции может произойти несанкционированное прерывание. Команда DI в спектрум-бейсике там стоит не потому, что прерывания при сбросе могут быть разрешены; а для того, чтобы обеспечить безошибочную инициализацию бейсика при попадании исполнения на нулевой адрес по другим причинам (сбой программы, запрос пользователя).
Хотя да, любопытно получается. Попадание управления на команду JP 0 еще не гарантирует инициализацию бейсика, так как между ее исполнением и исполнением DI может произойти прерывание и вмешаться в процесс.
Oleg N. Cher
10.09.2022, 22:11
Modula-2 Compilers on CP/M (https://www.youtube.com/watch?v=he-Yt_fCRYg)
Oleg N. Cher
28.01.2023, 13:17
Отвечу здесь.
Какие расширения у исходников на Обероне? .odc ?Какие хотите. Я делаю .ob2, .cp, .ob7 и .ob3
.odc это бинарный формат документов с форматированием и картинками. Может быть использован для исходников тоже.
И как сделать вывод на консоль для Спека пусть даже без системы?
MODULE IO;
IMPORT io := Console;
BEGIN
io.WriteStr("Hello World" + 0DX)
END IO.
И при чем здесь Спек, если это IDE кросс-компилера.Спек это таргет. А Вы хотите, чтобы компиляция прямо в TR-DOS запускалась?
Я надеюсь, что эта версия генерит код для Спектрума. Ну или хотя бы код для sdcc с нужным make файлом.Код для Спектрума. make-файлов я не использую, только батники.
Как действует версия FPC для z80 я не знаю. Для x86 она вроде на выходе делает .exe. А IDE-ка хоть убогая ( напоминает Borland Pascal), но без проблем строит и запускает winhello.ppВот я и удивился, что Вашего запала не хватило на то, чтобы прочитать QuickStart и сделать File -> Open -> Hello и нажать для сборки и запуска F12. Ну куда уже проще? Вы точно для Спектрума хотите разрабатывать?
Да, это не кросс для z80.Это именно кросс для z80
Ладно. Возвращаемся к XDevLite.
Отвечу здесь.
чтобы прочитать QuickStart и сделать File -> Open -> Hello и нажать для сборки и запуска F12.
после того, как Вы назвали имя QuickStart, я нашел его поиском в XDevLite\Ofront - QuickStart.txt
Но почему же его нельзя было поместить в корень, то есть диск:\XDevLite\ ?
А там в XDevLite\ есть ReadMe.txt, в котором однако не указано важное для работоспособности из QuickStart.txt
Windows 32:
SET OBERON=%CD%;%CD%\..\Lib\Sym;%CD%\..\Sym
Я не такой знаток батников, чтобы понимать эту строку. Это установка переменной или видимости директориев
SET PATH =
?
Больше бы устроил работающий батник win32.bat Который один раз нажал и он правильно сработал. Правда не знаю, могут ли батники автоматом вставлять путь до директория откуда запускаются. Ладно, если вставлять руками, то %CD% означает именно это? В моем случае h:\XDevLite?
Пока что при компиляции приведенного Вашего исходника естественно дало в строке
IMPORT io := Console
ошибку в Log-е
compiling "IO"
one error detected
- - - Добавлено - - -
Спек это таргет. А Вы хотите, чтобы компиляция прямо в TR-DOS запускалась?
некоторые системы (после построения без ошибок)запускают эмулятор, в него грузят полученный исполняемый файл и запускают его в эмуляторе. Иногда еще отдельной кнопкой под отладчиком.
- - - Добавлено - - -
Вы точно для Спектрума хотите разрабатывать?
дорогу осилит идущий. Вы за руль авто как первый раз сели - так сразу на дорогу поехали? А в детстве сразу на двухколесный велосипед или сразу на скейтбоард? Спектрум значительно проще современных компьютеров. Просто почти никто для современных компьютеров не программирует их железо. Это и небезопасно, поскольку овладевшие такими технологиями люди - потенциальные сами знаете кто.
Oleg N. Cher
28.01.2023, 22:04
после того, как Вы назвали имя QuickStart, я нашел его поиском в XDevLite\Ofront - QuickStart.txt
Но почему же его нельзя было поместить в корень, то есть диск:\XDevLite\ ? Стопэ, это не то. Вот:
XDev/ReadMe.txt
Быстрый старт:
File -> Open -> Ваша подсистема -> Mod - примеры
F11 - скомпилировать; F12 - собрать и запустить.
Выделить мышкой название библиотечного модуля и:
XDev -> Show Definition - показать интерфейс данного модуля
Ctrl+G - навигация по коду (в Lite не присутствует)
Этого объёма знаний будет вполне достаточно для изучения
примеров и написания своих.
SET OBERON=%CD%;%CD%\..\Lib\Sym;%CD%\..\SymВам это не нужно.
Больше бы устроил работающий батник win32.bat Который один раз нажал и он правильно сработал.F12
Правда не знаю, могут ли батники автоматом вставлять путь до директория откуда запускаются.Могут.
Пока что при компиляции приведенного Вашего исходника естественно дало в строкеЭндрю, Вы порочите светлое дело Оберона. Почему бы просто не сделать так, как я Вам советовал? Запустить XDev[Lite].exe, далее File -> Open -> ZXDev/Mod/HelloWorld.Mod
и нажать F12
некоторые системы (после построения без ошибок)запускают эмулятор, в него грузят полученный исполняемый файл и запускают его в эмуляторе.XDev тоже так делает. Нажимайте F12.
- - - Добавлено - - -
Вы скачали подсистему ZXDev (https://github.com/Oleg-N-Cher/XDev/releases/tag/ZXDev-2021-10)?
У меня ошибки после F11 типа
"at 1: error 119: don't know what to do with file 'h:Program'. file extention not supported
и далее несколько строк c другими путями и той же ошибкой.
Я архив распаковал в корень на диск h:
Копирую на c:
Та же фигня.
- - - Добавлено - - -
Вы скачали подсистему ZXDev?
так она же входит как поддиректорий. Вот файл после dir >a, упакованный в Total Commander версия 10.0 78411
- - - Добавлено - - -
Вы порочите светлое дело Оберона
теперь все сделано по Вашей инструкции. Под Win7 32bit. Может все-таки пути какие-то надо указать и в системные переменные что-то добавить и/или подредактировать? Раз уж через установщик сделать не хотите и реестр использовать.
Да, вижу, готовые .tap-ки из \ZXDEV в эмуляторе запускаются. Unreal Speccy Portable 0.0.50 у меня на это расширение прикручен.
Oleg N. Cher
29.01.2023, 00:24
У Вас XDevLite какой-то странный. Вообще-то XDevLite это всего один файл XDevLite.exe и папка Bin, которая нужна только для пересборки библиотек.
У меня ошибки после F11 типа
"at 1: error 119: don't know what to do with file 'h:Program'. file extention not supported
и далее несколько строк c другими путями и той же ошибкой.Нужно устанавливать в папку, чтобы в пути не было пробелов.
Я архив распаковал в корень на диск h:
Копирую на c:
Та же фигня.Какая же фигня? Что пишет?
Может все-таки пути какие-то надо указать и в системные переменные что-то добавить и/или подредактировать? Раз уж через установщик сделать не хотите и реестр использовать.Ничего не нужно, кроме установки переменой окружения XDev, но это требуется только если Вы собираетесь сохранять проекты не внутри подсистемы ZXDev, а в произвольном месте.
Какая же фигня? Что пишет?
то же самое, но разумеется вместо h: с:
А как у меня разархивирован софт я сообщил Вам в файле a.zip
Папок \bin там две штуки.
Одна h:\XDevLite\bin
а другая
h:\XDevLite\ZXDev\bin
а, и в других папках тоже есть свои \bin
и содержимое у них сильно разное.
А файл IDE h:\XDevLite\XDev.exe находится не в h:\XDevLite\ZXDev как видите.
Пробовал я его туда копировать, но он тогда при запуске ругается на отсутствие какой-то инициализации.
В общем такое ощущение, что с видимостью директориев и доступностью нужных файлов не все хорошо. Если простая распаковка не работает, значит нужен какой-то setup или какие-то батники.
Признаю, что я дурак, но для тестирования это не плохо. Софт должен выдерживать такие простые манипуляции, никаких файлов я не правил.
Oleg N. Cher
29.01.2023, 14:33
Смотрите... если Вы пользуетесь XDev, то это целая куча файлов и папок. А если XDevLite, то это всего один файл. Вам нужен только он и подсистема ZXDev. Я думаю, для начального знакомства Вам хватит XDevLite.
Так что происходит, когда Вы запускаете XDevLite.exe и File -> Open -> ZXDev/Mod/HelloWorld.Mod и жмёте F12 ?
- - - Добавлено - - -
Ваши более ранние посты свидетельствуют о том, что Вы взяли XDev и зачем-то назвали его Lite. Но это не Lite.
XDevLite вот (https://github.com/Oleg-N-Cher/XDev/releases/tag/XDevLite-2021-10).
- - - Добавлено - - -
Берите архив XDevLite-2021-10.zip
Распаковываете его в папку, чтобы в пути не было пробелов.
И пробуете.
- - - Добавлено - - -
И скопируйте подсистему ZXDev в ту же папку, где находится файл XDevLite.exe
Подсистему надо распаковать в виде папки, а не кучу файлов. Вот так:
Bin
ZXDev
XDevLite.exe
Поставил 10 версию из 2 разных .zip Ошибки по F11 остались те же. Есть возможность вывод ошибок при выполнении XDevLite.exe перенаправить в файл вместо консоли? Или скринсейвом экран консоли с ошибками снимать?
Кстати, при запуске с админ правами все то же самое. "Слепки" моих директорий после установки 78413 и ZXDev 78414
Мне не хочется лезть в Ваши исходники и смотреть, что такое error 119
А в расшифровке ошибок после don't know what to do with file ' вообще какие-то странные пути и почему-то сразу про строку 1
Правильно я понял? at 1: error 119 и так 4 раза. Почему 4 раза?
Причем я уже несколько исходников .mod перепробовал из директория \ZXDev\Mod
и везде одно и то же.
Вот ежели скопировать XDevLite.exe внутрь \ZXDev, то эти ошибки исчезают, но в окне с исходником пишет symbol file of imported module not found
а в окне Log
translating XDevHello
warning "default target machine address size and alignment used"
Дальше дело никуда не идет и никакие выходные файлы не создаются и не обновляются.
Нажатие Compile или Build через меню дают такой же эффект.
Может под Windows XP попробовать позапускать?
Oleg N. Cher
29.01.2023, 16:23
Или скринсейвом экран консоли с ошибками снимать?Скринсэйвом.
Вот ежели скопировать XDevLite.exe внутрь \ZXDev, то эти ошибки исчезают, но в окне с исходником пишет symbol file of imported module not foundНе надо так делать.
Может под Windows XP попробовать позапускать?Не обязательно. Я это под Windows 10 делаю.
Эндрю, я, скорее склоняюсь, что Ваш агрессивный антивирус поудалял какие-то файлы.
- Скачиваю архив ZXDev-2021-10.zip (https://github.com/Oleg-N-Cher/XDev/releases/download/ZXDev-2021-10/ZXDev-2021-10.zip), распаковываю в C:\XDevLite
- Скачиваю архив XDevLite-2021-10.zip (https://github.com/Oleg-N-Cher/XDev/releases/download/XDevLite-2021-10/XDevLite-2021-10.zip), распаковываю туда же.
- Запускаю XDevLite.exe, всё открываю, всё компилю, всё работает.
Может кто-то проверить у себя?
- - - Добавлено - - -
У меня когда-то Commodo Internet Security сожрал пол-Android SDK. Компании борются с таким при помощи цифровой подписи.
А ошибка, которую Вы указали, лезет не из XDev, а из SDCC.
Bedazzle
29.01.2023, 16:32
- Скачиваю архив ZXDev-2021-10.zip (https://github.com/Oleg-N-Cher/XDev/releases/download/ZXDev-2021-10/ZXDev-2021-10.zip), распаковываю в C:\XDevLite
- Скачиваю архив XDevLite-2021-10.zip (https://github.com/Oleg-N-Cher/XDev/releases/download/XDevLite-2021-10/XDevLite-2021-10.zip), распаковываю туда же.
- Запускаю XDevLite.exe, всё открываю, всё компилю, всё работает.
Win7
https://i.imgur.com/Zth72B6.png
Bedazzle, вот такая же как у Вас у меня картинка, если скопировать XDevLite.exe внутрь \ZXDev. А вы его наружу вытащите пожалуйста вот так
Bin
ZXDev
XDevLite.exe
и сделайте скрин. Bin от XDevLite-2021-10.zip директорий, в ZXDev еще один свой Bin.
А может быть их надо было объединить? Нет, не помогло. Снова error 119
по ссылке https://disk.yandex.ru/i/ZvZyXc-WN55P8A , изображение не отображается
- - - Добавлено - - -
Я это под Windows 10 делаю
могу и под Win10 попробовать
Oleg N. Cher
29.01.2023, 16:52
Это значит только то, что подсистема находится не там, где надо. Я уже миллион раз сказал где она должна быть.
Какая у Вас структура? Папка ZXDev и файл XDevLite.exe должны находиться в одном месте. Я точно с программистами общаюсь?
- - - Добавлено - - -
И ещё раз. Распаковывать надо не содержимое папки ZXDev, а саму папку ZXDev.
- - - Добавлено - - -
ZXDev
XDevLite.exe
= в одном месте. Ну не знаю я как вам ещё понятнее объяснить.
- - - Добавлено - - -
Вот.
78415
Такое чувство, что меня троллят. :(
- - - Добавлено - - -
andrews, внимательно проверьте какие файлы удаляет Ваш антивирус. Предположу, что это в ZXDev/Bin. Какие-то утилиты SDCC
Bin
ZXDev
XDevLite.exe
А ошибка, которую Вы указали, лезет не из XDev, а из SDCC
у меня судя по всему из корня, где размещен XDevLite.exe запускается та версия sdcc к которой прописан путь.
Сейчас попробую все же прописать \bin в PATH.
Прописал. Не помогло.
Интернет говорит, что есть такая ошибка. Вопрос заключается в том, как ее убрать?
Кстати с-ные файлы в директории h:\XDevLite\ZXDev\Obj
после F11(compile) у меня все же оказывается создаются.
Oleg N. Cher
29.01.2023, 17:34
А, у Вас уже был установлен SDCC? Ну тогда ничего удивительного конечно.
Видите в Build.bat такую строку?
SDCC=%ZXDev%\Bin\sdcc.exe
Тут должен вызываться именно тот SDCC, что надо. Похоже, у меня всё работало чётко потому, что переменная XDev прописана.
- - - Добавлено - - -
В винде 10: Пуск -> Система -> Дополнительные параметры системы -> Переменные среды -> Системные переменные
Прописываем переменную XDev, содержащую путь. У меня так: d:\Projects\XDev
В конце слэш не пишем.
Согласен, нужно об этом написать в ReadMe.
- - - Добавлено - - -
Предвижу вопрос: почему не задать там относительный путь? Дело в том, что это не сработает, когда проект будет храниться в произвольном месте.
ZXDev
XDevLite.exe
= в одном месте. Ну не знаю я как вам ещё понятнее объяснить.
хорошо, вот пути до них на моем компьютере
h:\XDevLite\XDevLite.exe
и папка
h:\XDevLite\ZXDev
Oleg N. Cher
29.01.2023, 17:48
Да, всё правильно.
Я проверил у себя - всё должно работать без установленной переменной XDev. Там в случае её отсутствия батник устанавливает относительный путь.
Конечно у меня более свежий SDCC стоит, я его путь просто из PATH убрал
Прописываем переменную XDev, содержащую путь
У меня следовательно будет XDev h:\XDevLite ?
Не прописал эту переменную и сейчас у меня из h:\XDevLite\ никакой sdcc не виден, так как я в PATH на него ничего не указал. Ошибка та же 119 4 раза на разные пути (какие до конца не вижу, так как не могу перенаправить консольный вывод об ошибках в файл).
А HelloWorld.c свеженький вот такой, размещается в h:\XDevLite\ZXDev\Obj
/* Ofront+ 1.0 -mx3 -21 */
#include "SYSTEM.oh"
#include "Basic.oh"
static SHORTINT HelloWorld_x, HelloWorld__for__1;
/*================================================= ===========================*/
int main (int argc, char **argv)
{
__INIT(argc, argv);
__IMPORT(Basic__init);
__REGMAIN("HelloWorld", 0);
/* BEGIN */
Basic_Init();
Basic_BORDER(4);
Basic_PAPER(0);
Basic_CLS();
HelloWorld_x = 0;
HelloWorld__for__1 = 123;
do {
Basic_INK(6);
Basic_PLOT(HelloWorld_x, 127);
Basic_DRAW(10, 10);
Basic_INK(3);
Basic_PLOT(HelloWorld_x, 37);
Basic_DRAW(10, 10);
HelloWorld_x += 2;
} while (--HelloWorld__for__1);
Basic_AT(11, 1);
Basic_PAPER(1);
Basic_INK(5);
Basic_BRIGHT(1);
Basic_FLASH(1);
Basic_PRSTR((void*)" HELLO WORLD of ZX Spectrum ! ");
Basic_FLASH(0);
Basic_PAUSE(0);
Basic_Quit();
__FINI;
}
Да, установка XDev в h:\XDevLite на ошибки sdcc не повлияла.
Ну, хорошо, а как вручную довершить процесс, имея на руках HelloWorld.c?
Oleg N. Cher
29.01.2023, 18:09
Да. Так:
XDev
h:\XDevLite
- - - Добавлено - - -
Но странно, что при вызове sdcc.exe по относительному пути вызвался тот, что в PATH.
- - - Добавлено - - -
Предлагаю Вам попробовать отладить файл Build.bat
Уберите в начале ECHO OFF и поставьте PAUSE после каждого значащего вызова. Будем видеть какие именно команды не отрабатывают.
- - - Добавлено - - -
Как довершить процесс вручную - всё есть в Build.bat
Трансляция Оберона в Си происходит, срезается на вызове сишки.
o'k перерывчик на полчаса, что-то зверский аппетит проснулся
Oleg N. Cher
29.01.2023, 18:18
Не обещаю быть, у нас сейчас выключают электричество 3 раза в сутки :(
После выполнения вот этой строки в compile.bat
IF NOT EXIST ..\C\%1.c %SDCC% -c %1.c -I. -I..\Lib -I%ZXDev%\Lib %Include%
появляются эти ошибки
Bedazzle
29.01.2023, 20:07
Это значит только то, что подсистема находится не там, где надо. Я уже миллион раз сказал где она должна быть.
Какая у Вас структура? Папка ZXDev и файл XDevLite.exe должны находиться в одном месте. Я точно с программистами общаюсь?
- Скачиваю архив ZXDev-2021-10.zip, распаковываю в C:\XDevLite
- Скачиваю архив XDevLite-2021-10.zip, распаковываю туда же.
- Запускаю XDevLite.exe, всё открываю, всё компилю, всё работает.
Не программист, потому делал по вашей инструкции.
Распаковал в корень (за это отдельное "спасибо") диска С файл ZXDev-2021-10.zip создав папочку ZXDevLite
Туда же распаковал XDevLite-2021-10.zip
Компиляция даёт ошибку. Что я сделал не так?
Подумал, что наверное, зря сделал папку ZXDevLite, переименовал в ZXDev.
Компиляция даёт ошибку. Что я сделал не так?
https://i.imgur.com/KDN1dOM.png
P.S.
Ну и бонусом "спасибо" за кучу тапков в основной директории. Было бы неплохо их сложить в специально отведённое место.
- - - Добавлено - - -
= в одном месте. Ну не знаю я как вам ещё понятнее объяснить.
- - - Добавлено - - -
Вот.
Ох ты, ё-моё. Это надо было ещё догадаться, что сначала надо СВОЮ папку создать на диске С, куда всё положить.
Oleg N. Cher
29.01.2023, 23:08
Распаковал в корень (за это отдельное "спасибо") диска СВ корень необязательно, главное чтобы в пути не было пробелов. Я уже много раз об этом сказал.
файл ZXDev-2021-10.zip создав папочку ZXDevLiteЯ где-то писал про папочку ZXDevLite?
Компиляция даёт ошибку. Что я сделал не так?Вы мою картинку видели? Не надо ложить XDevLite.exe внутрь подсистемы. Я об этом написал несколько раз. Положите её рядом с папкой ZXDev.
Ну и бонусом "спасибо" за кучу тапков в основной директории. Было бы неплохо их сложить в специально отведённое место.Так вот они как раз и есть в специально отведённом месте - в папке подсистемы, в её корне, потому что это и есть цель подсистемы - произвести эти тапки.
- - - Добавлено - - -
После выполнения вот этой строки в compile.bat
IF NOT EXIST ..\C\%1.c %SDCC% -c %1.c -I. -I..\Lib -I%ZXDev%\Lib %Include%
появляются эти ошибкиХорошо. Пока консольное окошко на паузе - можете скопировать оттуда выхлоп на эту строку?
У меня пока нет идей.
Bedazzle
30.01.2023, 01:55
В корень необязательно, главное чтобы в пути не было пробелов. Я уже много раз об этом сказал.
Да запустилось оно. Но так как без надобности, стёр.
Лучше чем-нибудь полезным займусь.
Ох ты, ё-моё. Это надо было ещё догадаться, что сначала надо СВОЮ папку создать на диске С, куда всё положить.
мне это не помогает!
- - - Добавлено - - -
Хорошо. Пока консольное окошко на паузе - можете скопировать оттуда выхлоп на эту строку?
У меня пока нет идей.
сделаю. И параллельно пытаюсь, полученный сишный файл откомпилировать и построить "вручную". Так как у меня проблемы точно с sdcc.
Bedazzle
30.01.2023, 11:01
мне это не помогает!
Ёжики плакали, кололись, но продолжали жрать кактус.
Ёжики плакали, кололись, но продолжали жрать кактус
да ничего страшного, с RMX80 ковырялись полтора месяца 7 дней в неделю(перелопатили через дизассемблирование несколько библиотечных файлов ISIS-II) и все-таки нашли, что надо было первый раз 8251 на вывод толкнуть выдачей 0 байта в регистр трансмиттера.
По идее это должно было делаться автоматом при инициализации системы. Но у разработчиков была другая логика.
Так что "через тернии к звездам"...как всегда.
Ну и с sdcc для z80 попутно разберусь. Тут у меня тоже нулевая компетенция.
Oleg N. Cher
30.01.2023, 14:28
Ну, пишите о прогрессе. На самом деле да, надо брать выхлоп и смотреть что конкретно не срабатывает. У меня это работает на куче разных компов. И не только у меня. Так что проблема правда странная.
Да запустилось оно. Но так как без надобности, стёр.
Лучше чем-нибудь полезным займусь.Это знаешь как называется? Я захэйчу всё, что от тебя исходит, какое бы оно ни было. Оно мне уже не нравится. Я его посмотрел только чтобы сказать "фи". Да ради бога, мне такие люди не интересны.
- - - Добавлено - - -
Немного подробнее как устроен XDev.
Нажатие кнопки F12 запускает трансляцию Оберона в Си, в папке Obj создаются .c и .oh-файлы, в Sym символьный файл с представлением интерфейса модуля. Символьник нужен, чтобы согласовать импорт-экспорт интерфейсов. Проще говоря, подключаемые из других модулей сущности описаны в символьных файлах. Для главного (*$MAIN*) модуля создаётся только .c.
Потом среда ищет файл Obj/ИмяМодуля.bat, который нужен для особых случаев сборки, не предусмотренных в Bin/Build.bat. Это удобно для кастомизации сборки при хитрых конфигурациях. Если такого файла нет, тогда запускается Bin/Build.bat, которому параметром %1 передаётся ИмяМодуля без расширения. Это удобно, чтобы подставить своё собственное расширение. Дальше батник сам конфигурирует и вызывает Си-компилятор.
Такая структура XDev вызвана тем, что подсистем может быть много - для разных платформ.
s_kosorev
31.01.2023, 11:44
Так что "через тернии к звездам"...как всегда.
Ну и с sdcc для z80 попутно разберусь. Тут у меня тоже нулевая компетенция.
Суть в чем. Тебе нужно будет каждую новую проблему победить, сначала правильно решить ее на sdcc, а потом еще победить на ОБЕРОН, так что бы она правильно отразилась в sdcc, что бы оно правильно отобразилось на таргете.
Путь обещает быть интересным!
- - - Добавлено - - -
Ладно бы, ОБЕРОН в этой реализации давал каки-то свои плюшки. Скорее даже плюшки ОБЕРОН окружения, ну там сборщик мусора, динамическую загрузку/выгрузку модулей с контролем типов, что там еще из плюшек есть? Так нет же, это просто синтаксическая обертка для си, для тех кому этот си не зашел, по какой либо из причин, тут только compile time проверка типов, все. Которая скрывает много фич, доступных sdcc при прямом написании кода
Ну вот какой результат. Под Windows10 установил sdcc 64 bit версию разумеется, ну и все и так, как рекомендовал автор...И всё заработало!
Но под Windows7 32 bit c sdcc 32 bit у меня дома не работает! Так что этот софт получается пока что не для всех. На XP пока не пробовал. Не знаю, найдется ли версия sdcc для XP.
- - - Добавлено - - -
Тебе нужно будет каждую новую проблему победить, сначала правильно решить ее на sdcc
да я не знаю пока, удастся ли продвинуться? Пока вот вижу отличия в работе, о чем и сообщил всем. По идее конечно надо setup делать для разной Винды.
Bedazzle
31.01.2023, 14:07
Это знаешь как называется? Я захэйчу всё, что от тебя исходит, какое бы оно ни было. Оно мне уже не нравится. Я его посмотрел только чтобы сказать "фи". Да ради бога, мне такие люди не интересны.
Называется "попросили проверить и запустить кого-то ещё, а я как дурак, полез помогать".
Без какого-либо хейта хотел показать, что можно улучшить, но меня обвиняют.
Так что лучше пойду.
s_kosorev
31.01.2023, 15:18
Но под Windows7 32 bit c sdcc 32 bit у меня дома не работает! Так что этот софт получается пока что не для всех. На XP пока не пробовал. Не знаю, найдется ли версия sdcc для XP.
Что то мне подсказывает, что разрядность тут не причем. Там же не dll юзается, а просто из командной строки вызывает
Oleg N. Cher
31.01.2023, 18:28
ну там сборщик мусора, динамическую загрузку/выгрузку модулей с контролем типовДля Спека? Очень смешно, аффтар, жжош, пейшы естчо.
Без какого-либо хейта хотел показать, что можно улучшить, но меня обвиняют.За помощь спасибо. Но Вы не понимаете многих идей, положенных в основу XDev, чтобы давать адекватные советы. Мне совет показался в духе "придерусь хоть к чему-то, впрочем, мне всё не так".
- - - Добавлено - - -
Но под Windows7 32 bit c sdcc 32 bit у меня дома не работает! Так что этот софт получается пока что не для всех. На XP пока не пробовал. Не знаю, найдется ли версия sdcc для XP.SDCC в комплекте ZXDev 32-битный, тестился на XP, всё должно работать. Почему не работает? Возможно, Вы пытаетесь работать с библиотекой, собранной SDCC другой версии. Или что-то в таком роде.
- - - Добавлено - - -
Попробуйте пересобрать библиотеки. В XDev: File -> Open -> ZXDev/Lib/Mod/Console , F12. И так для всех остальных. Папка Bin должна присутствовать (в ней утилита для разрезания Си-файлов на куски, чтобы исправить родовой дефект Си и хоть в какой-то степени получить смарт-линковку).
- - - Добавлено - - -
По идее конечно надо setup делать для разной Винды.Это не нужно. Всё должно работать даже в W2k.
Отдельный инсталлер не предусмотрен из-за той мысли, что для программиста не должно стать проблемой распаковать пару архивов. Можно конечно сделать автоматическую установку переменной окружения, да и то как-то сомнительно.
- - - Добавлено - - -
P.S. Вообще-то я конечно гоню, ведь библиотека юзается из той же версии SDCC, которой и собрана. Но Вы конечно согласитесь, что это проблема SDCC, а не ZXDev?
Попробую восстановить систему Windows7 32 бит в другом разделе винчестера. Для чистоты эксперимента. В том разделе, с которым я работаю, наустановлено черт-те что. К тому же винчестер хотя и новый, но прежний рухнул напрочь, так что мне его умелец питерский за приличные деньги восстанавливал посекторно и кое-что восстановить не удалось. Пока это ни в чем себя не проявляло. Система стабильно работает, приложения вроде тоже все работают штатно.
Просто еще одного компа у меня нет из-за малогабаритной квартиры( есть проги, которые только на XP-ке идут и комп с этим большую часть времени стоит под письменным столом). А так попробовать надо с минимумом установленных приложений, может и исчезнет эта проклятая ошибка.
что для программиста не должно стать проблемой распаковать пару архивов
все так, возможно и setup от этого бы не спас. Будем разбираться. Но это не антивирус точно. Кстати Windows10 сегодня нещадно предупреждал меня об опасности установки и запуска и sdcc и Вашего софта. Если бы левый человек скачивал и ставил, то уже бы сто раз сдриснул.
Oleg N. Cher
31.01.2023, 19:27
Увы, антивириям не нравится софт, собранный Оберон-линкерами. Не знаю, что можно с этим поделать.
- - - Добавлено - - -
Можно попробовать любую другую версию SDCC, которая заработает. Просто скопировать эти файлы в Bin:
sdar.exe
sdasz80.exe
sdcc.exe
sdcpp.exe
sdldz80.exe
Oleg N. Cher
31.01.2023, 21:38
Которая скрывает много фич, доступных sdcc при прямом написании кодаНа самом деле подход ZXDev НЕ ЗАБИРАЕТ у вас прямую возможность писать куски кода на Си, но ДАЁТ возможность писать на более высокоуровневом и логичном языке, который не разменивается на частности, позволяя программисту посмотреть на свой труд под другим углом. Убирание, вернее, снижение акцентов на низкоуровневые фичи стимулирует программиста писать более переносимый код. Если это нужно конечно.
Пример: порт игры Дурак с ZX на БК-001x. Если бы игра была с самого начала писана на Си, её пришлось бы для портирования просто переписать заново. Вряд ли сильно много кода с ZX-версии прямо легло бы на БК. Я же самолично проверил и убедился, что пишу так, что минимум 50% кода на Обероне переносимы между этими платформами обычным копипастом. Я понимаю, что г-ну Косореву это не интересно, но это так.
С подходом XDev программист получает возможность писать на одном языке для кучи ретро- и не ретро-платформ. Да, эта переносимость условная и со многими оговорками. Но здесь дело в железе, языки не виноваты. Они не в силах сделать железо совместимым. Писать на Си? Можно конечно, но Си не запрещает юзать фишки, поэтому их юзают. И получают очень плохо переносимый код. Нет стимулов разделять на переносимый и не переносимый. Это не надо для ретро? Возможно. Но мои интересы не ограничиваются только ретро.
В файле h:\XDevLite\ZXDev\Bin\compile.bat гадит строка следующего вида
SET Include=%Include% -I%ZXDev%\Lib\C -I%ZXDev%\Lib\Obj
она цепляет все, что в системе объявлено в INCLUDE
Стоит ее превратить в
SET Include= -I%ZXDev%\Lib\C -I%ZXDev%\Lib\Obj
и компилируется все превосходно!
1 ;--------------------------------------------------------
2 ; File Created by SDCC : free open source ANSI-C Compiler
3 ; Version 4.2.0 #13081 (MINGW32)
4 ;--------------------------------------------------------
5 .module HelloWorld
6 .optsdcc -mz80
7
8 ;--------------------------------------------------------
9 ; Public variables in this module
10 ;--------------------------------------------------------
11 .globl _main
12 .globl _Basic_Quit_DI
13 .globl _Basic_PRSTR_C_ROM_fastcall
14 .globl _Basic_PLOT_callee
15 .globl _Basic_PAUSE_DI
16 .globl _Basic_PAPER
17 .globl _Basic_INK
18 .globl _Basic_FLASH
19 .globl _Basic_DRAW_callee
20 .globl _Basic_CLS_ZX
21 .globl _Basic_BRIGHT
22 .globl _Basic_BORDER_fastcall
23 .globl _Basic_AT_ROM_callee
24 ;--------------------------------------------------------
25 ; special function registers
26 ;--------------------------------------------------------
27 ;--------------------------------------------------------
28 ; ram data
29 ;--------------------------------------------------------
30 .area _DATA
000000 31 _HelloWorld_x:
000000 32 .ds 2
000002 33 _HelloWorld__for__1:
000002 34 .ds 2
35 ;--------------------------------------------------------
36 ; ram data
37 ;--------------------------------------------------------
38 .area _INITIALIZED
39 ;--------------------------------------------------------
40 ; absolute external ram data
41 ;--------------------------------------------------------
42 .area _DABS (ABS)
43 ;--------------------------------------------------------
44 ; global & static initialisations
45 ;--------------------------------------------------------
46 .area _HOME
47 .area _GSINIT
48 .area _GSFINAL
49 .area _GSINIT
50 ;--------------------------------------------------------
51 ; Home
52 ;--------------------------------------------------------
53 .area _HOME
54 .area _HOME
55 ;--------------------------------------------------------
56 ; code
57 ;--------------------------------------------------------
58 .area _CODE
59 ;HelloWorld.c:14: int main (int argc, char **argv)
60 ; ---------------------------------
61 ; Function main
62 ; ---------------------------------
000000 63 _main::
64 ;HelloWorld.c:20: Basic_Init();
000000 F3 [ 4] 65 di
000001 FD CB 01 A6 [23] 66 res 4,1(iy)
000005 CD 42 16 [17] 67 call 0x1642
68 ;HelloWorld.c:21: Basic_BORDER(4);
000008 2E 04 [ 7] 69 ld l, #0x04
70 ; spillPairReg hl
71 ; spillPairReg hl
00000A CDr00r00 [17] 72 call _Basic_BORDER_fastcall
73 ;HelloWorld.c:22: Basic_PAPER(0);
00000D 2E 00 [ 7] 74 ld l, #0x00
75 ; spillPairReg hl
76 ; spillPairReg hl
00000F CDr00r00 [17] 77 call _Basic_PAPER
78 ;HelloWorld.c:23: Basic_CLS();
000012 CDr00r00 [17] 79 call _Basic_CLS_ZX
80 ;HelloWorld.c:24: HelloWorld_x = 0;
000015 21 00 00 [10] 81 ld hl, #0x0000
000018 22r00r00 [16] 82 ld (_HelloWorld_x), hl
83 ;HelloWorld.c:25: HelloWorld__for__1 = 123;
00001B 2E 7B [ 7] 84 ld l, #0x7b
00001D 22r02r00 [16] 85 ld (_HelloWorld__for__1), hl
86 ;HelloWorld.c:26: do {
000020 87 00101$:
88 ;HelloWorld.c:27: Basic_INK(6);
000020 2E 06 [ 7] 89 ld l, #0x06
90 ; spillPairReg hl
91 ; spillPairReg hl
000022 CDr00r00 [17] 92 call _Basic_INK
93 ;HelloWorld.c:28: Basic_PLOT(HelloWorld_x, 127);
000025 3Ar00r00 [13] 94 ld a, (_HelloWorld_x+0)
95 ; spillPairReg hl
96 ; spillPairReg hl
000028 2E 7F [ 7] 97 ld l, #0x7f
00002A CDr00r00 [17] 98 call _Basic_PLOT_callee
99 ;HelloWorld.c:29: Basic_DRAW(10, 10);
100 ; spillPairReg hl
101 ; spillPairReg hl
00002D 3E 0A [ 7] 102 ld a,#0x0a
00002F 6F [ 4] 103 ld l,a
000030 CDr00r00 [17] 104 call _Basic_DRAW_callee
105 ;HelloWorld.c:30: Basic_INK(3);
000033 2E 03 [ 7] 106 ld l, #0x03
107 ; spillPairReg hl
108 ; spillPairReg hl
000035 CDr00r00 [17] 109 call _Basic_INK
110 ;HelloWorld.c:31: Basic_PLOT(HelloWorld_x, 37);
000038 3Ar00r00 [13] 111 ld a, (_HelloWorld_x+0)
112 ; spillPairReg hl
113 ; spillPairReg hl
00003B 2E 25 [ 7] 114 ld l, #0x25
00003D CDr00r00 [17] 115 call _Basic_PLOT_callee
116 ;HelloWorld.c:32: Basic_DRAW(10, 10);
117 ; spillPairReg hl
118 ; spillPairReg hl
000040 3E 0A [ 7] 119 ld a,#0x0a
000042 6F [ 4] 120 ld l,a
000043 CDr00r00 [17] 121 call _Basic_DRAW_callee
122 ;HelloWorld.c:33: HelloWorld_x += 2;
000046 2Ar00r00 [16] 123 ld hl, (_HelloWorld_x)
000049 23 [ 6] 124 inc hl
00004A 23 [ 6] 125 inc hl
00004B 22r00r00 [16] 126 ld (_HelloWorld_x), hl
127 ;HelloWorld.c:34: } while (--HelloWorld__for__1);
00004E 2Ar02r00 [16] 128 ld hl, (_HelloWorld__for__1)
000051 2B [ 6] 129 dec hl
000052 22r02r00 [16] 130 ld (_HelloWorld__for__1), hl
000055 3Ar03r00 [13] 131 ld a, (_HelloWorld__for__1+1)
000058 21r02r00 [10] 132 ld hl, #_HelloWorld__for__1
00005B B6 [ 7] 133 or a, (hl)
00005C 20 C2 [12] 134 jr NZ, 00101$
135 ;HelloWorld.c:35: Basic_AT(11, 1);
00005E 2E 01 [ 7] 136 ld l, #0x01
137 ; spillPairReg hl
138 ; spillPairReg hl
000060 3E 0B [ 7] 139 ld a, #0x0b
000062 CDr00r00 [17] 140 call _Basic_AT_ROM_callee
141 ;HelloWorld.c:36: Basic_PAPER(1);
000065 2E 01 [ 7] 142 ld l, #0x01
143 ; spillPairReg hl
144 ; spillPairReg hl
000067 CDr00r00 [17] 145 call _Basic_PAPER
146 ;HelloWorld.c:37: Basic_INK(5);
00006A 2E 05 [ 7] 147 ld l, #0x05
148 ; spillPairReg hl
149 ; spillPairReg hl
00006C CDr00r00 [17] 150 call _Basic_INK
151 ;HelloWorld.c:38: Basic_BRIGHT(1);
00006F 2E 01 [ 7] 152 ld l, #0x01
153 ; spillPairReg hl
154 ; spillPairReg hl
000071 CDr00r00 [17] 155 call _Basic_BRIGHT
156 ;HelloWorld.c:39: Basic_FLASH(1);
000074 2E 01 [ 7] 157 ld l, #0x01
158 ; spillPairReg hl
159 ; spillPairReg hl
000076 CDr00r00 [17] 160 call _Basic_FLASH
161 ;HelloWorld.c:40: Basic_PRSTR((void*)" HELLO WORLD of ZX Spectrum ! ");
000079 21r8Dr00 [10] 162 ld hl, #___str_0
00007C CDr00r00 [17] 163 call _Basic_PRSTR_C_ROM_fastcall
164 ;HelloWorld.c:41: Basic_FLASH(0);
00007F 2E 00 [ 7] 165 ld l, #0x00
166 ; spillPairReg hl
167 ; spillPairReg hl
000081 CDr00r00 [17] 168 call _Basic_FLASH
169 ;HelloWorld.c:42: Basic_PAUSE(0);
000084 21 00 00 [10] 170 ld hl, #0x0000
000087 CDr00r00 [17] 171 call _Basic_PAUSE_DI
172 ;HelloWorld.c:43: Basic_Quit();
173 ;HelloWorld.c:44: __FINI;
174 ;HelloWorld.c:45: }
00008A C3r00r00 [10] 175 jp _Basic_Quit_DI
00008D 176 ___str_0:
00008D 20 48 45 4C 4C 4F 20 177 .ascii " HELLO WORLD of ZX Spectrum ! "
57 4F 52 4C 44 20 6F
66 20 5A 58 20 53 70
65 63 74 72 75 6D 20
21 20
0000AB 00 178 .db 0x00
179 .area _CODE
180 .area _INITIALIZER
181 .area _CABS (ABS)
Правда не понял, почему в Windows10 у меня было не так. Возможно там просто SET Include пустая.
- - - Добавлено - - -
Можно попробовать любую другую версию SDCC, которая заработает. Просто скопировать эти файлы в Bin:
sdar.exe
sdasz80.exe
sdcc.exe
sdcpp.exe
sdldz80.ex
не влияет!
Oleg N. Cher
31.01.2023, 21:49
Ага. Хотите сказать, что в Вашей системе переменная окружения Include уже была задана какой-то другой программой?
Дело в том, что батники Compile.bat и Build.bat ждут параметров в переменных. Видите менюшку XDev -> ZXDev Project Setup
78425
Это меню нельзя использовать для настройки примеров ZXDev/Mod, оно предназначено для настройки проектов, которые хранятся в произвольном месте. Когда Вы нажимаете кнопку Save в папке Bin проекта автоматически создаются батники примерно такого вида:
@ECHO OFF
IF NOT "%XDev%"=="" GOTO XDev
ECHO Please set system variable XDev=X:\Path\To\XDev
PAUSE
EXIT
:XDev
SET Include=-I ..\Lib\C -I ..\Lib\Obj
SET Clean=FALSE
%XDev%\ZXDev\Bin\Compile.bat %1
@ECHO OFF
IF NOT "%XDev%"=="" GOTO XDev
ECHO Please set system variable XDev=X:\Path\To\XDev
PAUSE
EXIT
:XDev
SET CodeAdr=45056
SET DataAdr=50000
SET Include=-I ..\Lib\C -I ..\Lib\Obj
SET Target=TAP
SET Clean=FALSE
%XDev%\ZXDev\Bin\Build.bat %1
Они обращаются к тем самым батникам подсистемы - ZXDev/Bin/Compile.bat и Build.bat, передавая им нужные опции в переменных. Include тоже используется для этого.
Не подскажете, какая именно софтина создаёт у Вас переменную окружения Include?
Не подскажете, какая именно софтина создаёт у Вас переменную окружения Include?
да я их сам руками насоздавал!
Вот
INCLUDE=h:\Program Files\DirectX SDK\Include;h:\Cg\include; h:\Fresh\include;g:\DM\include;g:\DM\include\stl;g :\DM\include\GL;h:\FASM\INCLUDE
вот это всё этот батник и засасывает не знаю зачем, а sdcc из-за этого дает ошибку!
- - - Добавлено - - -
Это меню нельзя использовать для настройки примеров ZXDev/Mod
я и не использовал
Oleg N. Cher
01.02.2023, 00:45
Ну просто на будущее. Ведь свои проекты удобно хранить вне подсистемы.
SDCC даёт ошибку из-за того, что ему подсовывается непонятно что в качестве опций командной строки ;)
Кстати, если бы показали выхлоп, как я и предлагал, то сразу бы и поняли в чём проблема.
Ну да теперь всё норм и можно разрабатывать!
- - - Добавлено - - -
вот это всё этот батник и засасывает не знаю зачемПонятно же зачем. Батник так и устроен, чтобы получать опции в этих переменных. А тут имя переменной совпало с используемой в Build.bat
SET Include
Сие устанавливает/используют (разные приложения) переменную окружения (примерно то же что и PATH). В частности Watcom использует её для указания к своим хедерам.
Обычно свой "путь" добавляют в "начало" типо такого
SET Include=%Include%;%ZXDev%\Lib\C;%ZXDev%\Lib\Obj
Мне здесь кажется "лишним" символы '-I'. Это не относится к формированию путей, а скорее всего это "команда для программы"
SET Include=%Include% -I%ZXDev%\Lib\C -I%ZXDev%\Lib\Obj
ПС: Include это "типо ключевого символа" и использовать его "вольготно" крайне не рекомендуется.
ПС:ПС: ИМХО
Аналогично и в файле h:\XDevLite\ZXDev\Bin\Build.bat в строке
SET Include=%Include% -I%ZXDev%\Lib\C -I%ZXDev%\Lib\Obj
"выламываем зуб дракона" %Include% и всё несется вплоть до запуска в эмуляторе, если к нему у вас привязаны файлы с расширением .tap.
Конечно это не совсем корректно, но переписывать батники предоставим возможность автору. А если ему лень, тогда может быть кто-то этим займется. Пока же имеем в виду, что в любой Win-де XP, 7, 8, 10 где у вас выводится не пустая строка по SET INCLUDE вас ждет облом XDevLite.
Ну вот, мечтал о 5 минутах чтобы попробовать, а убил пару часов жизни за несколько дней.
Еще вопрос: а на каком эмуляторе Вы демки прогоняли .tap-ы. А то у меня на Unreal Speccy Portable значительное количество не выполняется.
Oleg N. Cher
01.02.2023, 20:43
Мне здесь кажется "лишним" символы '-I'. Это не относится к формированию путей, а скорее всего это "команда для программы"Там ничего лишнего нет. Именно через опцию -I компилятору дают указание на поиск инклюдов по этому пути.
ПС: Include это "типо ключевого символа" и использовать его "вольготно" крайне не рекомендуется.Ну, я поэтому и интересовался какой именно софт использует эту переменную. Хорошо, учтём проблему и сделаем что-то вроде XDevInclude
Конечно это не совсем корректно, но переписывать батники предоставим возможность автору. А если ему лень, тогда может быть кто-то этим займется.Автору не лень. Но Вы не уловили сути идеи зачем сделано именно так: через эту переменную идёт задание опций SDCC для проектов, которые хранятся в произвольной папке. Если сделать так, как Вы предлагаете, то переменная Include станет бесполезной. И проект нельзя будет сконфигурировать задуманным образом.
Пока же имеем в виду, что в любой Win-де XP, 7, 8, 10 где у вас выводится не пустая строка по SET INCLUDE вас ждет облом XDevLite.Дело не в версии винды. Я переюзал кучу виндов начиная с 3.1, 9x и NT, и 2k, и XP - и нигде не было задана переменная Include. Вы сами сказали, что задали её самолично. При чём здесь винда?
Ну вот, мечтал о 5 минутах чтобы попробовать, а убил пару часов жизни за несколько дней.Ну сорь ;) Надеюсь, пригодится.
Еще вопрос: а на каком эмуляторе Вы демки прогоняли .tap-ы. А то у меня на Unreal Speccy Portable значительное количество не выполняется.Spectaculator, FUSE, EmuzWin, ZXSpin. Полагаете, дело в самих тапах?
Spectaculator, FUSE, EmuzWin, ZXSpin. Полагаете, дело в самих тапах?
спасибо, попробую! По поводу Include очень многие старые компиляторы и ассемблеры требовали явного указания, где им брать файлы .h или .inc в операторах типа #include <x.h>. Вот и надо было их вручную прописывать в переменной INCLUDE для пользователя или компьютера в целом.
В Digital Mars C/C++( к нему даже STL и GL вручную прикручивались), да и в Watcom C/C++ и ранних Borland-ах тоже. Я же с 1983 года программист помаленьку :) Как раз в мае 2023 года 40 лет, как я написал первую прогу для 8080 в машинных кодах и набил ее на пленочной клавиатуре МСУВТ В7. Летит время! Фото на аватарке это 2005 год. А сейчас я даже со своими детьми не снимаюсь, старичелло. Когда 4 летней дочке старые альбомчики показываю, она в шоке, какой когда-то был ее папа-дед. Сорри, за оффтоп. Так что все попробуем, что чего как.
Oleg N. Cher
02.02.2023, 06:21
Да дело в том, что необязательно же на постоянку прописывать, можно и батничек забабахать, который задаст переменную перед вызовом нужной тулзы.
У меня тут появилась идейка одна, если всё получится, то избавимся не только от любых подобных проблем, но и от переменной XDev.
Если хотите - можем попробовать отладить примеры. Что именно и как не работает в Unreal Speccy? (какой именно версии у Вас Unreal Speccy?)
- - - Добавлено - - -
ПыСы не совсем избавимся от переменной XDev, а от её ручного прописывания. Ну и автоматического тоже.
- - - Добавлено - - -
Починил все проблемы с Include и остальными возможными подобными случаями, убрал ручное прописывание переменной XDev.
Обновил XDevLite (https://github.com/Oleg-N-Cher/XDev/releases/tag/XDevLite-2023-02).
Релиз XDev не обновлял, это слишком долго и муторно, если кому надо - юзайте из репа.
Хотел сделать, чтобы можно было разрешать пробелы в путях, но, похоже, что сам SDCC так не работает.
78428
У меня еще Fuse есть под рукой. Ну вот ни там, ни там не работает DemoRus.Mod
MODULE DemoRus; (*$MAIN*)
IMPORT B := Basic, GrFonts, S := NewSupercode;
BEGIN
B.Init;
B.BORDER(B.Cyan); B.PAPER(B.Black); B.CLS;
B.INK(B.Red); B.FONT(GrFonts.ZxSpecRus8x8);
S.LITERY(4, 0, 3, 5, 7, "priwet, mir!");
B.INK(B.Yellow); B.FONT(GrFonts.ZxSpecRom8x8);
S.LITERY(4, 65, 3, 5, 7, "HELLO WORLD!");
B.INK(B.Green); B.FONT(GrFonts.MsDosCga8x8);
S.LITERY(4, 130, 3, 5, 7, "HELLO WORLD!");
B.PAUSE(B.WaitAKey);
B.Quit
END DemoRus.
В то же время TestFontRus работает.
(*$MAIN*) MODULE TestFontRus; (*$866*)
IMPORT b := Basic, GrFonts, io := Console;
BEGIN
b.Init; io.Clear(io.Black); io.SetColors(io.YellowOnGreen);
b.FONT(GrFonts.MsDosCgaRus8x8);
io.WriteStr("┌─────────────── ──────┐"); io.WriteLn;
io.WriteStr("│▓▒░Привет, Савелий!░▒▓│"); io.WriteLn;
io.WriteStr("└─────────────── ──────┘"); io.WriteLn;
io.SetColors(io.CyanOnBlue);
io.At(2, 4); io.WriteStr("╔═══════════════ ══════╗");
io.At(2, 5); io.WriteStr("║ Привет, Савелий! ║");
io.At(2, 6); io.WriteStr("╚═══════════════ ══════╝");
io.SetColors(io.RedOnYellow);
io.At(5, 8); io.WriteStr("╓─────────────── ──────╖");
io.At(5, 9); io.WriteStr("║ Привет, Савелий! ║");
io.At(5,10); io.WriteStr("╙─────────────── ──────╜");
io.SetColors(io.GreenOnBlack);
io.At(8,12); io.WriteStr("╒═══════════════ ══════╕");
io.At(8,13); io.WriteStr("│ Привет, Савелий! │");
io.At(8,14); io.WriteStr("╘═══════════════ ══════╛");
b.PAUSE(0);
b.Quit
END TestFontRus.
- - - Добавлено - - -
какой именно версии у Вас Unreal Speccy?
Unreal Speccy Portable 0.0.50 а Fuse 1.6.0
Oleg N. Cher
02.02.2023, 17:26
DemoRus
78432
- - - Добавлено - - -
Не знаю, может виновата моя дурацкая привычка редко обновлять софт. Но... неужто что-то сломали?
Лады, попробую в более новой версии и отпишусь.
- - - Добавлено - - -
Странно, но у меня всё работает и в 1.6.0
78433
- - - Добавлено - - -
В режиме 128k тоже работает.
78434
Видно такое моё счастье ;) Меня тестером можно куда угодно посылать, лишь бы не в Космос.
Ну вот еще то, что работает странно:
Spiral11.Mod
Spiral11f2.Mod
RotateSpr.Mod
DemoSpr.Mod
Circl.Mod
CirclFilled.Mod
BrightLetters.Mod
BigCircles.Mod
это я на Unreal Speccy Portable 0.0.50 только но все .tap ы проверял.
Ничего не могу сказать хорошего или плохого про этот эмулятор. Вроде он много входных форматов обрабатывает и денег не просит за установку и работу.
Oleg N. Cher
02.02.2023, 21:04
Андрей, у меня DemoRus работает в unreal-speccy-portable_0.0.87_win32_sdl2_gles2_angle
Вы меня конечно извините, но, по-моему, у Вас проблемы с компьютером или с Windows.
78435
unreal-speccy-portable_0.0.87_win32_sdl2_gles2_angle
ссылку дадите, где бинарник скачать? Если это под Win32. Можно в личку.
По предыдущему эпизоду вроде разобрались в чем дело. Хотя на этот раз может и винда, а может и эмулятор. Надо пробовать. sdl2 у меня точно установлена. А вот что такое в наименовании gles2 и angle?" Ага "Cross-platform wrappers for OpenGL ES 2.0 API" с этим я точно не сталкивался.
Ваш софт похоже весьма продвинутый. Разберемся. Я ж ничего не сочиняю. Что есть - то есть.
Oleg N. Cher
03.02.2023, 00:01
https://bitbucket.org/djdron/unrealspeccyp/downloads/
SDL 2 эмуль несёт с собой.
Пример DemoRus работает на процедуре LITERY из пакета New Supercode. Я конечно самую малость её адаптировал для работы с ZXDev, но ничего принципиального я не дорабатывал. Где же тогда баг? В New Supercode?
Oleg N. Cher
04.02.2023, 18:12
"выламываем зуб дракона"Делаем это так! (очищаем эти переменные для нашей копии окружения, не трогая внешних):
78450
Oleg N. Cher
04.02.2023, 19:20
XDev/Mod/ZXDev.odc и Cmd.odc
Пример DemoRus работает на процедуре LITERY из пакета New Supercode. Я конечно самую малость её адаптировал для работы с ZXDev, но ничего принципиального я не дорабатывал. Где же тогда баг?
как оказалось в sdcc. У Вас в архиве( ссылку давали на скачивание была версия март 2022года), а в других архивах ноябрьская 2022г( 07.11.2022г). Взял перекопировал весь h:\XDevLite\ZXDev\Bin поверх того, что скачивал по вашей ссылке. Теперь демки почти все строятся, запускаются даже в моих эмуляторах. Уточняю, остались ли какие-то неработающие.
- - - Добавлено - - -
XDev/Mod/ZXDev.odc и Cmd.odc
это видимо нужно исходники пересобирать. Пока оставил ту времянку(сломаные батники), которая у меня была. С ней тоже работает.
Oleg N. Cher
06.02.2023, 03:49
Да просто скачайте новый XDevLite, который я для Вас сделал.
Билд SDCC может быть нестабильный. Если качаете промежуточные билды - обратите внимание на птички, что билд прошёл все тесты.
Возможно, надо пересобрать библиотеки новой версией SDCC.
- - - Добавлено - - -
как оказалось в sdcc. У Вас в архиве( ссылку давали на скачивание была версия март 2022года), а в других архивах ноябрьская 2022г( 07.11.2022г).В том архиве с ZXDev такая версия SDCC, которую я до сих пор считаю самой стабильной, а я собираю достаточно сложный код. Более новые версии на Ваш страх и риск. Просто не торопитесь писать как всё плохо с Обероном, а то все читают и делают выводы.
Я не пишу что плохо с Обероном. Моя компетенция в нем, как языке программирования в данный момент нулевая!
И следовательно и о его конкретной реализации судить не могу.
Просто я привожу результаты тестирования на моей Windows7 32 бит. Причем еще ни строчки не изменив в примерах. Кажется это логично, имея исходники .mod и их же .tap на выходе, для начала их просто пересобрать и убедиться в работоспособности и идентичности результатов прежде чем приступать к написанию собственного кода.
Я всегда так делаю на протяжении вот уже 40 с лишним лет. А то, что ж буду убивать свое время на изучение Оберона, если у меня цель что-то сделать для Спектрума, если у меня в руках нет работоспособного инструмента?
( У меня куча проектов из-за этого провалилась( да вот тот же НФСП), да и чисто программистских тоже пару раз в двух фирмах. Было все в руках для успешной реализации кроме малюсенького звена из-за которого "все накрылось медным тазом"!
Вспоминаем из детства переведенные с английского стихи Маршака про подкову.
"Враг вступает в город,
Пленных не щадя,
Оттого, что в кузнице
Не было гвоздя"
Так что в этом смысле я стрелянный воробей!)
У меня все они успешно пересобрались и работоспособны при наличии в h:\XDevLite\ZXDev\Bin sdcc ver 3.9.3 #11378(MINGW32)
а версия 4.2.0 этого не обеспечивала. То есть она .tap-ы собирала, но другие! Сравнивал файлы побайтно, видел различия, ну и работали они в одном и том же эмуляторе совершенно по другому. Но однако работали, что удивительно.
А почему более свежая версия имела датой файлов март 2022г., а более ранняя ноябрь 2022г это вопрос не ко мне.
Видимо кто-то взял более свежую версию sdcc и убедился в том же, что и я. А что там такое изменили, что изменилась генерация выходного кода...я точно не разберусь. Просто об этом бы надо в READ.ME написать. Это никак не умаление крутости IMHO. А просто забота о пользователе, чтобы он с ума не сходил, почему у людей все работает, а у него дурака не работает.
А то будет как в рассказе Остапа Вишни про охоту на медведя( где медведь сам себе сломал голову).
Oleg N. Cher
06.02.2023, 18:40
Ну, если пользователь подменил SDCC, который идёт в комплекте, на другую версию, то пусть пеняет на себя.
Oleg N. Cher
05.12.2023, 22:36
Прикольно было бы иметь такую среду ретро-разработки, чтобы входные языки были разные и чтобы пристёгивались как плагины. Потом какой-то промежуточный язык типа байт-кода. И кодогенераторы в разные платформы. Над всем этим крутая IDE с контекстным хелпом. И отладчик.
И чтобы платформы пристёгивались как плагины. А библиотеки были под конкретно одну платформу или с заявленной поддержкой нескольких, допустим, эта спрайтовая графическая библиотека - под C64 и ZX Spectrum. А эта под NES и SEGA MegaDrive. И если игра базируется на этой библиотеке, то её можно собрать и для NES, и для MegaDrive.
Или - есть библиотека звука на бипер под Вектор и Корвет.
Или - библиотека поддержки джойстика с настройкой свойств, притом некоторые настраиваются статически (т.е. условными символами макропроцессора). Берёшь библиотеку, добавляешь к своему проекту. Открываешь диспетчер свойств и настраиваешь её.
Или - библиотека: консоль 32x24 15 цветов. Совместима со Спектрумом, но может эмулироваться и на других платформах.
Я понимаю о куче условностей и проблем. Но такой подход с мультиплатформенными библиотеками мог бы помочь сгладить различия между платформами. В конце концов, примерно к этому набору идей я стремился при разработке XDev.
Был такой компилер Странник, русский. Входные языки Си-Паскаль-Модула. И единый бэкэнд.
В общем, что-то такое, чем бы мог стать этот Rascal, но не станет, по кр. мере для меня.
В общем, всё ж на поверхности.
Такой проект мог бы быть на LLVM, но там всё плохо с восьмибитными платформами. Нужен свой супер-кодогенератор для мира 8 бит. Ну и не только 8 конечно, но и 16. И куча входных языков. Паскаль уж обязательно. Это чтобы не было холиваров какой язык лучше (хотя всё равно будут).
Хэйтерам: да, шоб писать крестики-нолики. Но вы не догоняете, что этот подход может иметь намного более широкое применение, чем вам кажется.
Oleg N. Cher
20.01.2024, 11:22
Чудеса. В SDCC появилась поддержка проца MOS 6502:
https://sdcc.sourceforge.net/index.php#News
И, как оказалось, есть бэк-энд в 6502 для LLVM:
https://8bitworkshop.com/docs/posts/2023/llvm-mos-sdk-6502-c-compiler.html
- - - Добавлено - - -
Искал LLVM для PDP-11, но нашёл только это:
https://retrocomputingforum.com/t/modern-pdp-11-c-compilers/2329
Oleg N. Cher
23.01.2024, 07:55
Переношу обсуждение сюда, чтобы не замусоривать тему про Cowgol (https://zx-pk.ru/threads/35441-yazyk-cowgol-i-kompilyator-dlya-6502-8080-z80-8086-80386-pdp-11-arm(thumb2)-i-v-si.html).
Итак, Hunta сумел дюже жалостливо (https://zx-pk.ru/threads/35441-yazyk-cowgol-i-kompilyator-dlya-6502-8080-z80-8086-80386-pdp-11-arm(thumb2)-i-v-si.html?p=1192996&viewfull=1#post1192996) обосновать aviator'у своё желание, чтобы кто-то бесплатно пришёл его и ублажил. На что у нас есть ответ.
А, ну это просто человек старается переложить свою работу на других. Чтобы сделали за него.Тут надо исходить из мотивов разработчика. Я не могу говорить за человека без конкретных имён, но скажу за себя. Любимая платформа Hunt'ы никогда не была моей самоцелью, как и игра, которую я сейчас на неё портирую. Я не являюсь игроделом. Я много раз вам об этом говорил. Если бы я был очень талантливым игроделом, то сейчас бы быстро-быстро писал на гора кучу оригинальных игр. Но нет. И платформа, и игра являются для меня не более чем иллюстрацией предлагаемого мной способа разработки, что да, этим способом разрабатывать игры можно и на вашей любимой платформе, что, очевидно, характеризует предлагаемое средство разработки потенциально не имеющим аналогов в своей перенацеливаемости. А почему потенциально? Потому что автор решил, если вам надо иметь хорошую поддержку вашей платформы в XDev - участвуйте, помогайте разрабатывать подсистему Pdp11Dev. Вы ведь лучше меня знаете эту кухню. Чего я должен за всех жопу рвать. Хотите игруш для своей любимой платформы - помогайте кодом. Меня не радует погружение в биты, адреса и прерывания, что, очевидно, радует вас. Я крайне неохотно и тяжело опускаюсь до программирования на асме. Это, кстати, главный тормоз процесса моей разработки. Поэтому меня не радуют и не устраивают ваши трижды распрекрасные ассемблеры и структурные макросы, которые, очевидно, не обладают нужными мне свойствами перенацеливаемости. Я вообще хотел бы юзать вашу любимую платформу как чёрный ящик, но не могу этого сделать, потому что нет соответствующего инструментария. Для Sega MegaDrive или NES (благодаря библиотеке nesdev от Shiru) с горем пополам можно разрабатывать как для полупрозрачного чёрного ящика, хотя и со многими оговорками. Где либы общего назначения для вашей любимой бэкашки, которые трудолюбиво собраны почти на все случаи жизни? Чтобы всё это писать самому, пользуясь написанной левой ногой документацией, где половину информации надо перепроверять, чтобы перейти от этих кривых и мутных текстов к готовому коду, очевидно, требуется опыт погружения в платформу, который, очевидно, многие получили 30 лет назад, а я, прикиньте, не получу его никогда. Поэтому контракт звучит так: хотите игруш для вашей любимой платформы - участвуйте посильно. Но я никого не неволю. Не хотите как хотите, ваша любимая платформа прекрасно обойдётся и без моей активности. У меня таких платформ ещё минимум 25-30, и некоторые даже поболее интересны, чем ваша любимая бэкашечка с 16 Кб рабочего ОЗУ.
Так что свои пещерные инструменты оставьте, пожалуйста, себе. Я не ценитель наскальной живописи, пусть даже это дарит вам много радости. Моё, пусть кривое и несовершенное, но меня радует даже в том объёме, которого я смог достичь почти без вашего участия.
Как-то так.
Аналогов каких библиотек нет?
Oleg N. Cher
23.01.2024, 09:58
Для бэкашки? Да никаких нет. Всё по древним БК-журналам рыскать надо. По крупицам собирать.
Даже целочисленного деления и взятия модуля нет. Пришлось костылить своё. Явно неидеальное, но как-то работающее.
- - - Добавлено - - -
Я вообще имел в виду перевод чисел в строки, обратно, арифметика сякая-такая, графика, спрайты, простые звуки, опрос управления и т.п. Чтобы на этих библиотеках, собранных в одном месте, можно было что-то простенькое написать. Без структурных макросов.
Вызовами EMT принципиально не пользуюсь. Бэкашники будут плеваться, но мне нужно, чтобы всё работало и на 10, и на 11(M).
- - - Добавлено - - -
Ещё чего нет: решений для специфических системных вещей. Например, на бэкашке принято кнопку Стоп перехватывать, чтобы она не вываливалась в монитор, а переходила, к примеру, в стартовое меню. Всё надо оборачивать. Я сделаю что смогу в рамках поставленной задачи. Плана погрузиться в это с головой лет на пять - нет и не было.
Итак, Hunta сумел дюже жалостливо обосновать aviator'у своё желание, чтобы кто-то бесплатно пришёл его и ублажил. На что у нас есть ответ.
Моё желание - "чтобы кто-то бесплатно пришёл его и ублажил" ? Ну что могу сказать - каждый видит то, что ОН хочет. Видимо, ТС ублажения не хватает.
Мне оно на? не сдалось - когда МНЕ что-то нужно - Я это ДЕЛАЮ, а не ною, что чего-то нет, чего-то работает не так, как мне хочется или вообще не работает из-за криворучности хотящего.
иллюстрацией предлагаемого мной способа разработки
Судя по наличию пока только процесса, но не результатат - так себе способ.
- - - Добавлено - - -
Даже целочисленного деления и взятия модуля нет
Аха. Конечно. Вот просто даже интересно - а как же DEC без этих операций жила? Тайным колдунством, не иначе.
Как говорится - RTFM!
А, да, ТС у нас же из группы, которые никогда не будут RTFM.
Oleg N. Cher
23.01.2024, 10:19
Не хочу плодить глючных версий. Сочту готовым показать - покажу.
Когда мне что-то нужно - я тоже это делаю, прикинь. Настоящие пацаны кодют для бэкашки в восьмеричных кодах, остальные пацаны - не настоящие. И каждый китаец считает нормой знать китайский язык. А почему ты не выучил до сих пор китайский язык? Это, если что, я стебу тебя, что каждый должен полезть задротить в доки по бэкашке, раз тебе это столь интересно.
Если не жажда ублажения, тогда в чём суть твоих претензий?
- - - Добавлено - - -
Делаю RTFM. Посильно. А ты и правда думаешь что человек с улицы начитавшись доков по бэкашке сразу напишет гору кода, который переплюнет всё, что написали до него? Ну наивный ты чувак, что ещё сказать. Не было у меня живой бэкашки, и многолетнего опыта погружения в неё тоже не было. И ты считаешь, что поэтому я не настоящий пацан?
- - - Добавлено - - -
а как же DEC без этих операций жила?DEC бабки на этом зашибала. А ты можешь только делать сам, но ничего ни у кого здесь требовать не можешь. Нет у тебя правов таких.
Если не жажда ублажения
Человек прочитал, понял как смог (неправильно), сделал выводы по неправильному - а теперь удивляется.
тогда в чём суть твоих претензий?
Лень объяснять да и просто нет желания, ибо
Нет у тебя правов таких.
Не хочу плодить глючных версий. Сочту готовым показать - покажу.
то есть
иллюстрацией предлагаемого мной способа разработки,
этой самой иллюстрациии то и нет.
- - - Добавлено - - -
DEC бабки на этом зашибала
На чём? На отсутствующих
целочисленного деления и взятия модуля
О как! На за НАЛИЧИЕ, а за ОТСУТСТВИЕ! Ахренеть, как же мы раньше то не додумались
Oleg N. Cher
23.01.2024, 10:31
Только вот не надо меня на понт брать. Если закончу, то будет. Чисто для тебя делать нет желания, руки опускаются.
- - - Добавлено - - -
Так, хватит юродствовать. Если ты нагуглил деление, то твоё счастье. Я не эксперт по DEC. Впихнул что нашёл. Или накодил. Не помню уже. А где всё собрано в одном месте для жаждущих?
Если закончу, то будет
Если! А пока не иллюстрации, ни кода, одно только - "следите за руками"
Если ты нагуглил деление
Когда я это "нагуглил" - гугла даже в планах не было
А где всё собрано в одном месте для жаждущих?
Как всегда у DEC - SYSLIB
Oleg N. Cher
23.01.2024, 22:24
Hunta, ты меня опять провоцируешь. А я знаю эту историю. Покажи вам кривой код, так заплюётесь, а в следующий раз, когда будет попрямее, то и смотреть не станете. Это известная тема.
Hunta, тебе будет тяжело понять эти вещи, но ты постарайся. Напряги уже мозжечковые извилины как-нибудь.
1. Интерес к ретро-тематике вовсе не подразумевает задротство ни по бэкашечке, ни по PDP-11. Прикинь?
2. Не все являются фанатами DEC, не все кодят в восьмеричных кодах. Не все следят за кодом DEC. Кое-кто даже подозревает, что у DEC были настоящие PDP-11, с аппаратными умножением и плавучкой, а не кастрированные. Поэтому программное деление DEC'у может быть не столь интересно.
3. Не все знают где находятся залежи кода DEC. Не все даже уверены, что они доступны. Не все даже слышали про DEC. Это вытекает из пункта 2.
4. RTFM тоже вовсе не подразумевает задротство по PDP-11. RTFM'ить можно по тысячам направлений. Прикинь?
5. Если ты кому-то хочешь закинуть, что он не пацан, раз не задротит по PDP-11, то ты не задротишь по китайскому языку, а значит не пацан для > 1 млрд человек. Тебе должно быть за это более стыдно, Hunta, чем мне перед смехотворно крошечным сообществом.
Покажи вам кривой код
иллюстрацией предлагаемого мной способа разработки
Ну как бы всё понятно.
- - - Добавлено - - -
Интерес к ретро-тематике вовсе не подразумевает задротство
тобой, а задроство кем-то вместо тебя?
Поэтому программное деление DEC'у может быть не столь интересно.
В том числе тому, кому оно внезапно понадобилось, например, тебе? Ну раз тебе - так ТЫ и приложи усилия. А не сваливай свои хотелки на задротов.
Не все знают где находятся залежи кода DEC
Не знание закона не освобождает от отвественности. Сунулся в (назвение компьютера) - соответствуй.
RTFM тоже вовсе не подразумевает задротство по PDP-11. RTFM'ить можно по тысячам направлений.
И чё?
Если ты кому-то хочешь закинуть, что он не пацан, раз не задротит по PDP-11
Ткни в мои сообщения, где это Я написал, а не ТЫ измыслил своими
мозжечковыми извилинами как-нибудь.
Oleg N. Cher
24.01.2024, 08:52
тобой, а задроство кем-то вместо тебя?Именно.
Ну раз тебе - так ТЫ и приложи усилия. А не сваливай свои хотелки на задротов.Да мне как бы и не особо надо. Я даже могу запилить и никому не показывать, тем более, если отношение ко мне такое скотское, как от тебя.
Ткни в мои сообщения, где это Я написал, а не ТЫ измыслил своимиДа вот хотя бы:
Сунулся в (назвение компьютера) - соответствуй.С какого перепугу я должен соответствовать твоим тараканам в мозжечке?
Смотри. Если ты заинтересован в моём продукте, но не платишь мне денег, то должен хотя бы показать доброе отношение. Из чего мы делаем вывод, что продукт тебе не интересен, ведь есть крутые залежи DEC и чудные структурные макросы.
Так что применяй свои высокие требования, высосанные из пальца, к себе. Толку будет больше. Меня агрессией не проймёшь.
Да вот хотя бы:
Сунулся в (назвение компьютера) - соответствуй.
С какого перепугу я должен соответствовать твоим тараканам в мозжечке?
И где тут про задротство? Или ТВОИ тараканы в ТВОЁМ мозжечке считают ЛЮБОГО специалиста (и даже не высококлассного) задротом? Ну ну. Подозреваю, что месье только что оскорбил значительную часть контингента этого форума. Поздравляю, господин Соврамши.
- - - Добавлено - - -
Покаже, вот эти "мудрые" мысли
Покажи вам кривой код
иллюстрацией предлагаемого мной способа разработки
показывают только то, что многие характеристики программирования (в том числе главная - получение результата) определяется не крутостью среды разработки, не крутостью компилятора языка, не крутостью (или "звеняшей" простотой, как у любимого "всеми" Оберона) языка программирования, а самым слабым звеном в компьютере.
Что это слабое звено в очередной раз иллюстрирует
Oleg N. Cher
24.01.2024, 09:28
"Соответствовать твоим высочайшим стандартам по деланью RTFM и изучению анналов DEC" = "задротить".
Я думал, это самоочевидно.
Видишь ли, есть внутренняя мотивация, когда делаешь то, что интересно. А не то, что от тебя требует Hunta со своим большим списком требований. А когда Hunta требует и истерит - это даже снижает мотивацию. Так что поздравляю, но нет.
- - - Добавлено - - -
Что ты придолбался к фразе про кривой код? Ну любой недоделанный проект является в каком-то смысле кривым. Или мы более персонифицировано подойдём к твоим кривым попыткам утолкать PDP-11 в ПЛИС? ОК, переходим к боевым действиям на твоей территории. Криво. Где продукт? Где скачать? Почему не работает на моём тостере?
а самым слабым звеном в компьютере.Не стреляйте в пианиста. Делаем как можем. Сам-то давно в зеркало смотрелся?
Но вообще ты наверное не пробовал делать одновременно и среду, и библиотеки (на асме, которого ты не знаешь), и несколько игр, разрываясь между интересующими платформами. Видимо, PDP-задротам живётся сильно проще.
Переход на личности не способствует достижениям и получению результатов! Нежелание помогать друг другу( если есть возможность помочь) не соответствует первоначальным принципам, заложенным еще FIDO. Какая может быть конкуренция, даже без финансовой мотивации, в словесной перепалке?
Любой работающий код, приносящий кому-то пользу, лучше отсутствия кода.
А теперь внимательно смотрим на написанное мной
Сунулся в (назвение компьютера) - соответствуй.
и на измысленное тараканами ТС
оответствовать твоим высочайшим стандартам по деланью RTFM и изучению анналов DEC
и
это самоочевидно
для тараканов в ТВОЕЙ голове? Безусловно. Вот только следование их выводам пока приводит только к тому, что
Покажи вам кривой код
ТС даже показать боится - заплюют-с!
Oleg N. Cher
24.01.2024, 09:34
Красота в глазах смотрящего. Дело не в том, что показывают, а в тех, кто оплёвывает.
- - - Добавлено - - -
Переход на личности не способствует достижениям и получению результатов!Ну, дело началось с наезда без называния конкретных имён, но в теме ТС. Как бы невзначай. Так что пусть отвечает за базар.
не пробовал делать одновременно
видимо все же "псевдоодновременно", если делает один человек, а не группа. Невозможно пять минут делать одно, а следующие пять другое. У человека мозг не квантовый, мгновенно перенастраиваться не может!
ОК, переходим к боевым действиям на твоей территории. Криво. Где продукт? Где скачать? Почему не работает на моём тостере?
А это написано в начале почти всех моим тем про мои поделки, но судя по вопросам - ТС не в курсАх, тараканы не дали ЦУ.
- - - Добавлено - - -
дело началось с наезда без называния конкретных имён
и тараканы ТС посчитали, что это про ТС. Но увы - много чести.
Так что пусть отвечает за базар
у него завышенные требования к себе и к другим людям. Такое бывает. У нас во ВНИИТВЧ, кстати в группе DEC, тоже были такие люди. Правда люди с ЕС их превосходили в таком подходе к жизни. Хорошо, если это помогает им достигать целей.
А надо просто каждому жить свою, а не чужую жизнь.
Oleg N. Cher
24.01.2024, 09:45
Ну раз много чести, то Hunta просто не не в курсАх моей деятельности, тараканы не дали ЦУ.
Была бы мне интересна такая странная активность Hunt'ы - я бы наехал на его кривой прожект поконкретнее, и с примерами обосновал бы почему это криво.
- - - Добавлено - - -
Пришло время показать скриншотик. Не Hunt'е. На этого не напасёшься.
80183
А что плохого в "кривом", но работающем коде? У первопроходцев чаще всего получается "криво"
Oleg N. Cher
24.01.2024, 09:49
Это понятно всем разумным людям. П/о "растёт" эволюционным путём, ещё Вирт сказал.
Но в случае прожекта Hunt'ы это никому не нужное делается левой ногой и не подпадает под это правило ;)
у него завышенные требования к себе и к другим людям.
Нет. У него понимание того, что его хотелки за него ДЕЛАТЬ никто не обязан. Ещё раз для тараканов ТС - НЕ ОБЯЗАН, то есть, в принципе, МОЖЕТ, но НЕ ОБЯЗАН. И раз ты ЧТО-ТО (что угодно) захотел - будь готов приложить СВОИ усилия, а не пытаться переложить их на кого-то, а потом плеваться, но де - "Плохая Пенни, плохая!"
- - - Добавлено - - -
в случае прожекта Hunt'ы это никому не нужное
Опять твои тараканы тебе соврали.
Oleg N. Cher
24.01.2024, 09:58
видимо все же "псевдоодновременно", если делает один человек, а не группа.Да, всё вперемешку делается. По мере вдохновения. И неспешно, да ещё и с попытками получить удовольствие от процесса.
Итак, Hunta обсирает объективно лучший ЯП для обучения программированию и мои попытки его обживать и продвигать в угоду своим странным идеям и кривым поделкам. Типично.
Нет. У него понимание того, что его хотелки за него ДЕЛАТЬ никто не обязан.Слушай, Hunta. Я тебе долго объяснял свою мотивацию. Ещё раз повторить для особо одарённых?
Опять твои тараканы тебе соврали.Повторяю. Никому не нужное. Работать будет на железяке, которая скоро пропадёт из продажи. Модифицировать для других железяк будет некому. Никто в этом не разберётся. Да и, собственно, работать не будет - будет косячить. Так что просто ублажаешь себя, а никакого продукта нет и не будет.
Никому не нужное.
Очевидно, что две копии у других людей - это никому. Типично для тараканов ТС
Работать будет на железяке, которая скоро пропадёт из продажи.
И две другие железки, на которые я перенёс - это тоже - "на железкЕ"
Никто в этом не разберётся.
Если ТС не способен разобраться, то, опять же, по логике его таракнов - это НИКТО.
Hunta обсирает объективно лучший ЯП для обучения программированию и мои попытки его обживать и продвигать
Ну ка - цитаты в студию. Причем (раз обсирАЕТ) - не меньше десятка.
Работать будет на железяке, которая скоро пропадёт из продажи
вот тут я не согласен. Тот же z80 и железо на нем в определенный период продавались десятками миллионов штук
( посканируйте тот же MAME и увидите десятки компьютеров и приставок на z80), а сейчас тысячами. Но еще есть программные и аппаратные эмуляторы. В этом смысле никакое железо, производившееся сериями, на которое остались доступны документы, программы, инструментальные кросс-системы никогда окончательно не исчезнет! Перечислять все причины здесь не буду. Их десятки как минимум. Хотя конечно, если ставить планку отсечки на уровне хотя бы $3000 то многое уже исчезло навсегда.
Но тут приходят коллекционеры, которым ценно именно такое, что для 99.99% людей "исчезло навсегда".
Oleg N. Cher
24.01.2024, 10:23
Очевидно, что две копии у других людей - это никому. Типично для тараканов ТСШо, всего две? Та ну. У моей среды разработки и то юзеров гора-а-аздо больше ;)
Если ТС не способен разобраться, то, опять же, по логике его таракнов - это НИКТО.Ты сказал золотую фразу, Hunta, даже сам не понял какую. Я адресую её также тебе.
Причем (раз обсирАЕТ) - не меньше десятка.Нивелирует ;) Не ожидал от чувака, который программил на Модуле-2 и любит DEC.
Короче, Hunta рвёт пуп, чтобы показать какой он крутой самодостаточный пацан. И даже не понимает, что проекты его уровня развивать массово никто не будет. А вот моего уровня - могли бы. Было бы только лучше.
И в ответ на закономерно разумную позицию "пусть каждый занимается тем, в чём силён, тем, что ему нравится", Hunta перетягивает одеяло на себя, считая своё кривое вершиной творения, а чьё-то выстраданное попрямее - кривым и никому не нужным.
- - - Добавлено - - -
вот тут я не согласен. Тот же z80 и железо на нем в определенный период продавались десятками миллионами штукПроцу z80 повезло. Он не был забыт. Его производство продолжалось. Но вполне могло бы быть и не так.
А вообще я сужу по Spartan 3, для которого Вирт делал свой Project Oberon (http://projectoberon.org). Его, кроме как на Spartan 3, уже нигде не запустишь. А Spartan 3 пропал из продажи уже давно.
- - - Добавлено - - -
Кстати, если кому-то Forth нужен, могу выложить. Но с ним есть одна проблема - я его выдрал из какой-то программы, так что иногда он ведёт странно.Выкинь каку. Это кривоглючное поделие. Не продукт. Ты должен высоко держать продуктовую планку. Так, как сейчас. Браво, Hunta. Не понижайся.
А Spartan 3 пропал из продажи уже давно
а что, более современные или даже китайские fpga не способны его заменить?
И другой путь - программный эмулятор на любом современном мощном микроконтроллере.
"Процу z80 повезло".
Ни один серийный проц не забыт! Ни один 8/16/32 проц будь то 1802, ни 6502, ни 6809, ни даже 2650 (https://en.wikipedia.org/wiki/Signetics_2650). Просто в СССР
они не были так популярны как pdp-11, 8080 и Z80.
Посканируйте по MAME процики, а в соседнем окошке нагуглите много нового и интересного. Только не везде еще доступны кросс-ассемблеры, кросс-компилеры и IDE. Но народ не бросает, делает даже и после 2010г.
Oleg N. Cher
24.01.2024, 10:31
Я думаю, заменить способны. Но потребуется модификация прошивки. Ибо такая штука, как прошивка ПЛИС, не бывает универсальной под все модели ПЛИС. Они к тому же отличаются техническими характеристиками (количеством вентилей и проч.) Но нет компетентных специалистов, кто мог бы воскресить Project Oberon. Те, кто есть - страдают хернёй. ;)
Программные эмуляторы (https://schierlm.github.io/OberonEmulator) конечно есть. Даже онлайн.
И даже не понимает, что проекты его уровня развивать массово никто не будет.
Примерно в тот момент (достаточно давно), как я понял, что не стоит ждать на этом форуме от кого-либо толк и пользу (хотя, с моей точки зрения - есть те, кто с моей точки зрения, принесли мне пользу) - я перестал думать - принесу ли я какую либо пользу или толк абстрактному пользователю или форуму. В том числе - своими проектами. В том числе - мне глубоко фиолетово - будет ли их кто-то развивать или даже просто использовать.
А вот моего уровня - могли бы.
Ключевое слово - БЫ
Выкинь каку.
Что, не Оберон, да, значит - кака? ;)
Не ожидал от чувака, который программил на Модуле-2
И у него даже остались (похоже, больше ни у кого нет) исходники всего пакета (включая компилятор) от самой команды Вирта. Но вопрос был не о том. Так где цитата моих сообщений, где я обсираю Оберно?
В том числе - мне глубоко фиолетово - будет ли их кто-то развивать или даже просто использовать.
и это единственно правильный подход. Главное оставлять после себя работающее и документированное.
и это единственно правильный подход.
Это не единственно правильный подход.
Oleg N. Cher
24.01.2024, 10:43
Ну вот на тебе цитату. Уже забыл, что говорил пять минут назад. Это деменция, батенька.
"звеняшей" простотой, как у любимого "всеми" Оберона
Прикинь, у оберонщиков есть такие ништяки, которые тебе и не снились. На 8" дискетах пылятся. Так что не удивил.
Так вот. Люди здесь общаются и обмениваются информацией и мнениями. Если у кого-то помощь (в виде ответа на вопрос, например) займёт небольшое время и не понудит заниматься исследованиями - то обычно люди помогают.
Проблема в том, что иногда могут помогать необъективно, не понимая твоего замысла. Но вообще раз ты такой самодостаточный, нафига вообще пишешь сюда посты? Иди уже в стол работай. Выкатишь окончательный продукт, все обомлеют.
Ну вот на тебе цитату.
Не меньше десятка.
Oleg N. Cher
24.01.2024, 10:46
Мне хватит и одной. Не хвалишь, относишься к продвижению Оберона по-скотски, вот тебе и вердикт. А чего ты ещё ждал? Тут играть по твоим правилам никто не будет, Hunta, иди жену свою учи ;)
Иди уже в стол работай
это устаревшая концепция. Гоголь был дурак, что сжег второй том "Мёртвых душ", а Некрасов, что уничтожил свои ранние стихи. Хотя Гоголь вскоре умер, это оправдание. Не хотел оставить после себя недоработанное произведение, а соавторов не имел.
На всё ( продукты интеллектуального труда)найдется свой читатель, пользователь. Применительно к программам. Любую работающую и даже не работающую программу запустят хотя бы один раз.
Продвижение - весьма сомнительная практика, имхо. Вот банки в РФ бомбят клиентов предложениями о кредитах,
даже не пытаясь понять, почему если они одобряют кредит в 5 млн. рублей - далеко не всем он нужен. Ковровые назойливые "бомбардировки мозга" большинству потенциальных пользователей совсем не интересны!
Так же и с программами. Сперва надо вникнуть в интересы пользователя.
А вот хорошая документация и техподдержка - положительная практика. Фраза "напишите нам о своей проблеме в использовании нашего продукта" почти "золотой ключик".
Oleg N. Cher
24.01.2024, 10:48
Ну да, ну да...
Мне хватит и одной.
ЧТД. Враньё на каждом шагу.
- - - Добавлено - - -
Сперва надо вникнуть в интересы пользователя.
Который часто смутно представляет себе - чего же он хочет. Проверено.
Который часто смутно представляет себе - чего же он хочет
как правило он со своей "хотелкой" уже поимел достаточно геморра и сформулировать в состоянии. Другой вопрос насколько реалистична его "хотелка" если продукт бесплатен. Особенно меня умиляют продукты с открытым кодом, в которых как нарочно чего-то не хватает, чтобы из них получить работающий на системе пользователя код.
Я думаю, заменить способны. Но потребуется модификация прошивки. Ибо такая штука, как прошивка ПЛИС, не бывает универсальной под все модели ПЛИС. Они к тому же отличаются техническими характеристиками (количеством вентилей и проч.) Но нет компетентных специалистов, кто мог бы воскресить Project Oberon. Те, кто есть - страдают хернёй.
Так у тебя там в секте был Алексей, фамилия забыл, но у него есть радиолюбительский позывной, он тоже от тебя ушел? Просто он хоть понимает в этом в отличии от тебя, судя по тексту
как правило он со своей "хотелкой" уже поимел достаточно геморра и сформулировать в состоянии.
Крайне редко такое бывает. Я поработал в проектах, так что имею представление - что и как пользователи часто формулируют. Даже и особенно, если должность более менее высокая. Но встречаются и исключения.
- - - Добавлено - - -
Просто он хоть понимает в этом в отличии от тебя, судя по тексту
Достаточно давно (и не с текущим уровнем опыта в FPGA) я попробовал перенести "Project Oberon" на свою DE10-Standard. Даже того опыта хватило, так что ничего там сложного нет. Единственное но - у меня тогда не было возможности подключить мышь. И учитывая мой слабый интерес к Оберону - я перенёс, попробовал и успокоился.
Более интересна реализация Lilith и/или Кронос, но увы.. времени свободного мало, так что руки даже до начальной работы не доходят.
Oleg N. Cher
24.01.2024, 11:34
Ну вот видишь, Hunta. А я не поверю тебе. Где продукт? Нету продукта. Показывай давай. А то врёшь всё небось, что перенёс.
И - по Оберону надо именно фанатеть. Какое там "слабый интерес"? Узнал об Обероне - соответствуй.
- - - Добавлено - - -
Так у тебя там в секте был Алексей, фамилия забыл, но у него есть радиолюбительский позывной, он тоже от тебя ушел? Просто он хоть понимает в этом в отличии от тебя, судя по текстуИ в отличие от тебя конечно.
Не, Лёша от меня не ушёл, тусуемся. Влажные фантазии-то свои поумерь. О моём грустном одиночестве и ненужности.
Крякуляшечка, изыди. Я тебя сюда не звал. Ты ограничься лайками, это позволенный тебе максимум.
А я не поверю тебе.
А мне фиолетово.
А то врёшь всё небось, что перенёс.
Есссвенно - я ж на тебя равняюсь.
по Оберону надо именно фанатеть.
Последствия по ТС хорошо заметны, так что - как был интерес слабым, так и остался.
Хотя, может быть и сделаю реализацию для RSX (и с генерацией в нативный код, а не на С, как некоторы), если и когда Модулу-2 доделаю.
Oleg N. Cher
24.01.2024, 11:37
Особенно меня умиляют продукты с открытым кодом, в которых как нарочно чего-то не хватает, чтобы из них получить работающий на системе пользователя код.Андрей, что именно там Вас умиляет? Авторы продуктов с открытым кодом не обязаны делать то, чего кому-то хочется. Авторы вообще часто ограничиваются своими потребностями, особенно если пилят некоммерческий продукт.
Мой продукт "интерес-ware". Подпитывается интересом, но походу больше всего моим.
Крякуляшечка, изыди.
И экзорцист из тебя тоже.. так себе. Не действуют твои заклинания.
Oleg N. Cher
24.01.2024, 11:45
Хотя, может быть и сделаю реализацию для RSX (и с генерацией в нативный код, а не на С, как некоторы), если и когда Модулу-2 доделаю.Сделаешь, всё сделаешь. В следующей жизни. ;) Прикинь, а какое качество кода в твоей поделке будет, хоть проплюёмся.
- - - Добавлено - - -
И экзорцист из тебя тоже.. так себе. Не действуют твои заклинания.Поготь, ты ж прорех в его ауре не видишь. И в карме.
- - - Добавлено - - -
как был интерес слабым, так и остался.Ну это как бы и не мои проблемы? Я не могу переделать людей, заставить их перестать страдать фигнёй и заняться, наконец, Обероном. Люди Васик любят. И асм. И Форты кривущие. А что до Оберона - не хватает у людёв фантазии на него.
- - - Добавлено - - -
Кряшенька, а ты зачем выдаёшь свои фантазии за правду? Давай пруфы кто там меня откуда выгнал и кто от меня ушёл. А то один писдёшь получается, и ничего кроме. Это называется искажать реальность. Уважай людей, не надо им туфту гнать.
Сделаешь, всё сделаешь.
Твоими молитвами? Врят ли.
ты ж прорех в его ауре не видишь. И в карме.
Ты бы больше о своей ауре и карме беспокоился. Или надеешься, что оберон проплюсует и то и другое? ;)
Я не могу переделать людей, заставить их перестать страдать фигнёй
Ессссвенно - раз себя переделать не можешь, куда уж до других
Oleg N. Cher
24.01.2024, 12:13
Я себе нравлюсь такой как есть. Это ты должен задуматься о том, что оставишь после себя бренному миру.
А боги Оберона ласковы, не беспокойся за меня ;) И уж на твои молитвы надежды точно нет.
- - - Добавлено - - -
В том числе - мне глубоко фиолетово - будет ли их кто-то развивать или даже просто использовать.Фи, Hunta. Непродуктовый подход. А ещё меня шпыняешь, чтобы я какие-то нужные тебе результаты выдавал. А вот фигушки тебе.
Крякуляшечка, изыди. Я тебя сюда не звал.
Это ты в своем маленьком королевстве тыкай кому куда пойти
- - - Добавлено - - -
Не, Лёша от меня не ушёл, тусуемся.
Золотой он человек! Привет ему передавай
- - - Добавлено - - -
Ессссвенно - раз себя переделать не можешь, куда уж до других
Забей, он типичный мастер спорта по всем видам спорта.
Непродуктовый подход.
Зато у меня результаты есть и я ими активно-успешно пользуюсь. А не в процессе, как ты, без результата.
А боги Оберона ласковы
Заметно. На всю голову ласковы.
Oleg N. Cher
24.01.2024, 13:50
Ну ты и дятел, Хунта. Не тебе судить про мои результаты, потому что ты про них вообще ничего не знаешь.
И да, процессом тоже следует наслаждаться.
- - - Добавлено - - -
Это ты в своем маленьком королевстве тыкай кому куда пойтиДа, здесь пришло время рассказать, что кряшку таки пришлось забанить, когда стало совершенно ясно, что один дятел может обдолбать группу из вполне вменяемых людей. Тут вопрос один: нафига это терпеть?
Так что вот откуда его влажные фантазии как меня откуда-то изгоняют. А на самом деле забанили его, чему есть ряд свидетелей.
Золотой он человек! Привет ему передавайУсенепременно. Он ещё и на Обероне программирует, прикинь.
- - - Добавлено - - -
Заметно. На всю голову ласковы.Да уж куда им до тебя с твоими заморочками.
- - - Добавлено - - -
Зато у меня результаты есть и я ими активно-успешно пользуюсь.Ну давай-давай, расскажи как ты активно и успешно пользуешь свой кривой недоделанный PDP-11 в ПЛИС. Наверно для тестов, которые, разумеется, тоже кривые?
А не в процессе, как ты, без результата.А на чём я, по-твоему, пишу свои хобби проекты все последние 10 лет?
Усенепременно. Он ещё и на Обероне программирует, прикинь.
Взял бы с него пример, а не устраивал везде где тебя не забанили, войну "Я есть ОБЕРОН - против всех"
Ну ты и дятел
Тараканы в голове подсказали - начать оскорблять? ;)
Ну давай-давай, расскажи как ты активно и успешно пользуешь свой кривой недоделанный PDP-11 в ПЛИС. Наверно для тестов, которые, разумеется, тоже кривые?
О, тесты от DEC уже кривые :) А кроме тестов (от DEC), которых устраивает реализация, ещё успешно работают операционки (от DEC) DOS-11, RT-11, RSX-11M-Plus. Так что не всё там так криво, как тебе тараканы шепчут. Ну и на досуге посмотри на кривую реализацию монитора http://www.kpxx.ru/Pics/VT105Test.mp4 с поддержкой русского алфавита http://www.kpxx.ru/Pics/CharTables.jpg
- - - Добавлено - - -
Я есть ОБЕРОН, король фей и эльфов :)
Oleg N. Cher
25.01.2024, 00:05
войну "Я есть ОБЕРОН - против всех"Никакой войны нет, уточка. Есть просто дятлы, которых коробит от слова "Оберон". И из-за этих дятлов, которые не могут пройти мимо моих постов спокойно, и направлен мой праведный гнев, потому что я крайне хочу им порекомендовать сходить таки к психиатору, разобраться откуда эта внутренняя гниль. Чтобы очиститься и жить спокойно в мире с окружающей действительностью.
Hunta, ты меня не убедил. Где и как ты юзаешь свою недоделку? Как именно получаешь с этого пользу?
Но вообще я понял твой критерий "результата", которого я никогда не достигну. Это пачка софта для сурового ванильного PDP-11, не связанного с бэкашкой, написанного самими гуру из DEC. И это - piz-DEC, Хунта. Тебе самому не смешно?
- - - Добавлено - - -
Hunta, ну давай, покажи результат. У меня есть новодел - мини-Спектрум ZX Uno (2Mb). Честно, без приколов. Константин Калантай подарил. Выдай мне ядро бэкашки для него. Или ДВК. Или УКНЦ. Или Союз-Неон. Ну или Немигу хотя бы. Есть у тебя такое? Или твой движняк это самодроч - непонятно для чего и для кого, но зато соответствует канонам DEC, да ещё и очень радостно при этом? ;)
Hunta, ну давай, покажи результат. У меня есть новодел - мини-Спектрум ZX Uno (2Mb). Честно, без приколов. Константин Калантай подарил. Выдай мне ядро бэкашки для него. Или ДВК. Или УКНЦ. Или Союз-Неон. Ну или Немигу хотя бы. Есть у тебя такое? Или твой движняк это самодроч - непонятно для чего и для кого, но зато соответствует канонам DEC, да ещё и очень радостно при этом? ;)
Там, ЕМНИП, установлена плисина на 9 тысяч логических элементов. БКшка может и вместится, а вот ДВК скорее всего только усечённый, а УКНЦ вообще не вместится из-за периферийного процессора.
Oleg N. Cher
25.01.2024, 00:20
Ну так пусть возьмёт ПЛИС'ину побольше. Какой смысл вообще всё городить, если туда УКНЦ не поместится.
Кста когда я заговорил про логические элементы (вентили) - кряшечка начал крякать что я ничего не понимаю. ;) Осторожнее, aviator ;)
- - - Добавлено - - -
Ладно, пусть хоть бэкашку сделает, а то результатов всё нет и нет. ;)
Hunta, ты меня не убедил
А мне фиолетово.
Oleg N. Cher
25.01.2024, 00:59
Ну-с, теперь сам видишь, что критерии результативности тоже субъективны. То, над чем ты корпишь месяцы - для кого-то мусор.
Лично я теперь точно знаю что возьму в качестве средства разработки проектов любой сложности. 10 лет назад такой определённости у меня не было.
Никакой войны нет, уточка. Есть просто дятлы, которых коробит от слова "Оберон"
У тебя вавка в голове, где я что то сказал против ОБЕРОН ? Кидаешься на людей
Oleg N. Cher
25.01.2024, 02:34
Надо быть с очень большой вавкой в голове, чтобы прийти в группу по Оберону опускать Оберон, кряшечка. Так что ты сам-то давно в зеркало смотрелся? И ведь все согласились с тем, что ты разлагал там атмосферу. Так что с тобой что-то ой не так.
Ну так пусть возьмёт ПЛИС'ину побольше
он то может и возьмет, но кто будет повторять, если это больших денег стоит? К тому же сейчас в России надо начинать с вопроса "а можно ли это привезти или достать?"
он то может и возьмет, но кто будет повторять, если это больших денег стоит?
Тут вопрос в другом, сможет ли он поменять чип на Uno на более емкой и сможет ли он пересобрать все корки под этот чип. У меня сомнения
- - - Добавлено - - -
И это еще при условии что у этих чипов есть миграция по пинам на более емкие чипы
поменять чип
Как показала практика, если при разработке чего-то с FPGA чип был выбран под конкретную реализацию, то поменять на более ёмкий обычно крайне затруднительно - и проблема будет с разводкой платы.
Я такое пробовал делать (поставить FPGA с в два раза большем количеством макроячеек) - пришлось резать дорожки и бросать МГТФ-ом порядка 10 пинов - развлечение так себе. Перепилить прошивку (при наличи исходников - в моём случае всё было проще, так как я был автором исходников) менее сложно (ну естествнно, при наличии опыта разработки под FPGA)
Бывают чипы и некоторые пределы емкости, где попиново совместима замена
Ключевое слово - бывают.
И, если я правильно нашёл инфу, в нём стоит Xilinx XC6SLX9 - я с Xilinx не работал и практически наверняка не буду работать, так что - ничего не могу сказать - есть ли более ёмкие по пин совместимые. Ну и поскольку не работал (и врят ли буду) - ждать от меня PDP-11X на Xilinx не стоит.
А вообще я сужу по Spartan 3, для которого Вирт делал свой Project Oberon (http://projectoberon.org). Его, кроме как на Spartan 3, уже нигде не запустишь. А Spartan 3 пропал из продажи уже давно.
Бред сивой кобылы.
Можно, в симуляторе легко на "Спартанах-7" работает.
Печаль в том что у меня нет платы (и руками не спаять) со статической памятью, а "прослойку" для ДДР3 пока ещё не нарисовал.
Oleg N. Cher
25.01.2024, 18:51
Мало ли чего можно теоретически. То прослойки нет, то того, то сего. Нам железку давай, где уже всё работает.
У меня Spartan'а никакого нет, мне надо на ZX Uno. ;)
- - - Добавлено - - -
Кстати, о птичках.Кстати, о птичках. Кря. Кря. Кря-кря. Крякрякря
Я к тому, что нефиг говорить то про что "не шаришь". Практически любой проект на плисе при смене внешних устройств (или самой плис) требует доработки "напильником". Как следствие: можно запустить Project Oberon на ЛЮБОЙ современной плис при наличии нужной периферии (чтоб не переделывать софт). То что у меня нет цели найти плату со статической памятью - это не отрицает моей цели запустить оный проект на ДДР. Увы реалии таковы что мне приходится пахать на работе, что б прокормить близких. "Пустословить это вам не мешки ворочить".
Oleg N. Cher
26.01.2024, 08:35
AlexG, вообще тема с ПЛИС была поднята чтобы попробовать показать Хунте себя в зеркало. Я не претендую.
Но раз уж Вы всплыли, то расскажите чем занимаетесь. Есть какие-то подвижки в освоении Project Oberon?
- - - Добавлено - - -
Про "пашу на работе" понял...
себя в зеркало
Зачем мне ты в твоём зеркале?
И я не навязываю свои поделки или языки, на которых они написаны, направо налево, считая остальных, имеющих своё мнение - дятлами.
попробовать показать
Свой уровень показал, молодец.
Oleg N. Cher
26.01.2024, 11:29
Ага, значит у меня всё же есть "поделка", которую не стыдно предложить другим? А то ты ранее пи#дел, что я не достиг никаких [значимых для тебя] результатов. Так что зеркало подразумевает показать тебе, что ты не достиг никаких [значимых для меня] результатов. Всё. И не надо обесценивать то, что тебе даже не очень понятно.
- - - Добавлено - - -
Хунта, у нас с тобой был нейтралитет. Я не лезу к тебе и не учу тебя как тебе что делать. Ты не лезешь ко мне. Но тебя такой расклад не устроил. Так что ты ещё ожидал?
Вот Кряха приплёлся в группу по Оберону. Понятно, что кряхино время не стоит и трёх копеек за сутки, так что ему его не жалко. Но хочется оградить от этого хлама тех людей, чьё время ценнее.
- - - Добавлено - - -
И я не навязываю свои поделки или языки.Защищать идеи, положенные в основу Оберона, не значит "навязывать всем свою поделку". Ты не путай.
Защищать идеи, положенные в основу Оберона, не значит "навязывать всем свою поделку". Ты не путай.
Для начала, процитирую написанное мной полностью, а не выдранное дятлом.
И я не навязываю свои поделки или языки, на которых они написаны
А теперь цитата от дятла
И - по Оберону надо именно фанатеть. Какое там "слабый интерес"? Узнал об Обероне - соответствуй.
Я не могу переделать людей, заставить их перестать страдать фигнёй и заняться, наконец, Обероном. Люди Васик любят. И асм. И Форты кривущие. А что до Оберона - не хватает у людёв фантазии на него.
То есть всё, что не по дятлу - "страдать фигнёй", а надо было "заняться, наконец, Обероном".
Ну чё, логично.
- - - Добавлено - - -
Ну пусть ТС страдает дальше своей "фигней", дальше не интересно
Oleg N. Cher
26.01.2024, 12:11
Ещё одна попытка. Защищать философию языка - не значит его навязывать. Всё никак не врубишься?
А теперь цитатаЭто была ироничная отповедь на это странное утверждение дятла:
Сунулся в (назвение компьютера) - соответствуй.
Мало ли куда и зачем я сунулся. Может я играть пришёл. Или просто комментировать. Но ирония ответа от тебя явно ускользнула. У тебя чувство юмора как у топора, Хунта.
- - - Добавлено - - -
[стоит с табличкой "Смеяться здесь"]
Oleg N. Cher
26.01.2024, 12:18
Это слив всего, что делал или когда-либо будет делать Хунта - засчитан. Это не более чем форма самоудовлетворения.
А мне фиолетово.
- - - Добавлено - - -
Но видишь, ты наехал не только на меня, а вообще на Оберон. А чуть раньше ты требовал 10 цитат, что это не Оберон плохой, а я странный ;)
форма самоудовлетворения.
О, ТС ещё и самоудовлетворяется. Ну чё, норм.
ты наехал не только на меня, а вообще на Оберон.
Не меньше 10 цитат с моим наездом на Оберон - в студию.
Хотя, если мне не изменяет память, ТС отказался их предоставить. Так что -
слив Оберона засчитан.
Oleg N. Cher
26.01.2024, 12:25
Ну вот же уже 2 цитаты только за последнее время.
Так что - слив Оберона засчитан.
Но Хунта странный, он то гнобит Оберон, то собирается когда-то в следующей жизни делать его для RSX. На лицо какое-то раздвоение. Как называется в психиатрии?
Как называется в психиатрии?
Вот так - Oleg N. Cher
Oleg N. Cher
26.01.2024, 12:36
Ну понятно, бла-бла-бла. Кря-кря.
Andrew771
27.01.2024, 02:05
Извините, если вопрос по теме)
>Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию
Я всё стесняюсь спросить с 2012 года, а какие 5 языков (еще и большими буквами)? Оберон - раз, Си - как промежуточный, с натяжкой, два. А еще три какие?
И, Олег, ты же можешь сделать кодогенерацию в какой-нибудь пи-код (java, например), чтоб из него потом на разные платформы раздавать. Почему не делаешь? Пи-код проще, чем ассемблер.
Oleg N. Cher
28.01.2024, 03:04
Я всё стесняюсь спросить с 2012 года, а какие 5 языков (еще и большими буквами)? Оберон - раз, Си - как промежуточный, с натяжкой, два. А еще три какие?Почему это "Си с натяжкой как промежуточный"? Ты можешь использовать его в связке с Оберонами как полновесный язык. Можешь в модуль на Обероне вставлять куски кода на Си, подключать хидеры и внешние сишные файлы, делать сишные тела для отдельных процедур и т.д. То же самое про асм.
Было: Оберон, Оберон-2, Си, асм. На момент создания темы я думал, что в SDCC ещё и поддержка C++ есть (которым сам не пользовался). Потом выяснилось, что нету, не поддерживается. Был введён в заблуждение исполняемым файлом sdcpp.exe, который оказался просто внешним препроцессором.
Сейчас: Оберон (1990) (https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%B5%D1%80%D0%BE%D0%BD_(%D1%8F%D0%B7 %D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0% D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0 %B8%D1%8F)), Оберон-2 (https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%B5%D1%80%D0%BE%D0%BD-2), Оберон-3 (мой собственный диалект, адаптированный для 8- и 16-битной разработки), Оберон-07/16 (https://wiki.oberon.org/ob/oberon07) (последняя виртовская редакция Оберона), Компонентный Паскаль (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%D1%8B%D0%B9_%D0%9F%D0%B0%D1%81%D0%BA%D0 %B0%D0%BB%D1%8C), Си, асм.
Включены некоторые расширения из GPCP (http://www.edm2.com/index.php/Gardens_Point_Component_Pascal) и Дубовых требований (http://www.edm2.com/index.php/The_Oakwood_Guidelines_for_Oberon-2_Compiler_Developers). Планируются, но пока не реализованы расширения Oberon-X.
Да, за эти десять лет было сделано дофига хорошей работы, чтобы сделать XDev более удобной для ретро-разработки.
И, Олег, ты же можешь сделать кодогенерацию в какой-нибудь пи-код (java, например), чтоб из него потом на разные платформы раздавать. Почему не делаешь? Пи-код проще, чем ассемблер.
Не предлагай мне свои пути, Андрей. Пи-код, не пи-код, асм, машкод - это твоя стезя. Юзать java для ZX хоть в каком-то смысле - такое себе. Ну вот тебе странного хочется, а мне давно уже нет. В чём вообще польза java? 32- и 64-битность. Все целые типы со знаком. Стековая машина, без регистров. Классы. Динамическая память. Ты в курсе, что java нельзя статически выделять хоть те же классы? Оно подходит для 8 бит как сова для натягивания на глобус.
Если ты имел в виду "что-то типа java, но более скромное", это уже теплее. Но опять же, заморачиваться. Зачем? Кто оценит? Кому надо? Придут ещё и потопчутся по святому. Спасибо, но не надо. Может для себя я что-то такое когда-нибудь и запилю, но упаси господи пытаться угодить "сообществу".
Разве возможно перенести С-Lang(LLVM) на 8 битки? Или нужно делать другую виртуальную машину специально для 8-битных систем? А на ней тогда и С, и С++ и все остальное.
Oleg N. Cher
28.01.2024, 12:37
Разве возможно перенести С-Lang(LLVM) на 8 битки?С-Lang(LLVM) не влезут :) Но если Вы имеете в виду "адаптировать для генерации кода для восьмибитных процев", то есть пример успешных бэк-эндов для Z80 и 6502 (неизвестной степени готовности и стабильности).
Или нужно делать другую виртуальную машину специально для 8-битных систем?Видимо, в ВМ нет особого смысла, т.к. это тормоза. А если подобную LLVM, заточенную чисто под оптимизацию, то сил сообщества не хватит сделать настолько сложную штуку. Тут хоть бы бэк-энды для готовой LLVM запилили. А то вот PDP-11 нет.
А на ней тогда и С, и С++ и все остальное.C и C++ не столь хорошо подходят для 8-битных процев. Надо смотреть в сторону C--, Cowgol и PL/M. Или сделать более сурово: чтобы по умолчанию размер арифметических операций был 8 бит, не разрешать рекурсию, ограничить разгул локальных переменных, и тогда можно уже смотреть в сторону Си, Модулы, Паскаля или Оберона. Но не знаю есть ли в этом высокий смысл.
Я уже понял, что народу надо "шашечки". Им просто нравится идея генерации в машкод. При этом за бортом остаётся даже генерация в асм, т.е. подходы ZX Like Pascal, SDCC или даже Free Pascal.
Если бы надо было "ехать", то ехали бы. XDev вполне хорошо и через Си работает.
Что тогда остается? Портировать игры на каждую платформу индивидуально? Да, понятно, что стек 8 битки поддерживают намного хуже, чем всякие хитрые манипуляции через регистры. А что такое байткод при "приземлении" на конкретную платформу? Он разве не может это делать с учетом проца? Выход ассемблера в расчете на какой-то ассемблер или группу ассемблеров? Если на группу, то действительно наверное лучше сразу код исполняемый
и оптимизированный генерить. А то юзверю придется разбираться в особенностях разных ассемблеров, и мучится с выбором ключа.
Если бы надо было "ехать", то ехали бы
ну если прежде не ехали, то не значит, что в будущем не поедут. Куда спешить? Возможно до конца "эры программистов" 20 лет, а возможно 200. XDev вполне можно использовать. Кому надо пусть оптимизирует выдаваемый С код. Кому не надо - пусть пишет хоть на Basic-е, хоть на asm-е, хоть на pl/m. Это смотря какие библиотеки есть. Самому все писать на asm-е (без использования биос-а или библиотек) очень непросто. Код надо структурировать и комментировать, иначе и сам спустя какое-то время не разберешься.
Самому все писать на asm-е (без использования биос-а или библиотек) очень непросто.
Смотря какие возможность заложены в ассемблер и смотря какая система команд.
Код надо структурировать и комментировать
Да неужели? Проблема только в том, что существует большая группа программистов (не только на ретро-платформы), которым на это насрать - и им не поможет никакой вундерязык.
- - - Добавлено - - -
Если бы надо было "ехать", то ехали бы
Кому надо ехать - они едут. На любом языке, который сочли подходящим. Что бы им не толдычили "адепты" "правильных" языков.
Пример из C# (причём тут, по сути, даже не возможности языка, а возможности реализации его окружения)
[Serializable]
[Macro(".CILHD")]
public class CILHeader
{
[Map(".CLCOD: .BLKB 1")] public byte Code; // HeaderCode
[Map(".CLLEN: .BLKB 1")] public byte Length; // HeaderLength
[Map(".CHTIM: .BLKW 2")] public DOS11Time Time;
[Map(".CHDAT: .BLKW 1")] public DOS11Date Date;
[Map(".CHBSZ: .BLKW 1")] public UInt16 BlockSize;
[Map(".CHIMC: .BLKW 1")] public UInt16 ImageCount;
[Map(".CHHSZ: .BLKW 1")] public UInt16 HeaderSize;
[Map(".CHFS0: .BLKW 1")] public UInt16 FileSize0;
[Map(".CHFS1: .BLKW 1")] public UInt16 FileSize1;
[Map(".CHFS2: .BLKW 1")] public UInt16 FileSize2;
[Map(".CHFS3: .BLKW 1")] public UInt16 FileSize3;
public SmartArray<byte> RAWData;
public COMD[] COMDs;
static CILHeader()
=> Helpers.StaticFieldsValueUpdater<CILHeader>();
public CILHeader(IArray<byte> data, int baseOffset = 0)
=> this.OneWayMapper(data, baseOffset);
}
[Serializable]
[Macro(".COMD")]
public class COMD
{
[Map(".CLCOD: .BLKB 1")] public byte Code; // COMDCode
[Map(".CLLEN: .BLKB 1")] public byte Length; // COMDLength
[Map(".CDLA: .BLKW 1")] public UInt16 ProgramLoadAddress; // Program load address
[Map(".CDPSZ: .BLKW 1")] public UInt16 ProgramSize; // Program size in bytes
[Map(".CDXFR: .BLKW 1")] public UInt16 XFRAddress; // Program transfer address
[Map(".CDODT: .BLKW 1")] public UInt16 ODTXFRAddress; // ODT(debugger) transfer address
[Map(".CDRBN: .BLKW 1")] public UInt16 RelativeBlockNumber; // Relative block# within the file
[Map(".CDPNM: .BLKW 2", PDP11Type.Radix50)] public string Name; // RAD50 program name
[Map(".CDIDN: .BLKW 2", PDP11Type.Radix50)] public string Ident; // RAD50 .IDENT of the program
[Map(".CDTIM: .BLKW 2")] public DOS11Time Time; // Program creation time, in ticks
[Map(".CDDAT: .BLKW 1")] public DOS11Date Date; // Program creation date
public SmartArray<byte> RAWData;
static COMD()
=> Helpers.StaticFieldsValueUpdater<COMD>();
public COMD(IArray<byte> data, int baseOffset = 0)
=> this.OneWayMapper(data, baseOffset);
}
На вход - массив (сырых) байт, на выходе - вполне себе объекты. Причём OneWayMapper-у фиолетово - что за объект (какого класса) надо создать - всё берётся из описания класса. Причём размеры конкретного поля могут быть не фиксированы - и браться из другого поля этого или родительского объекта.
И в этом вариант мне не надо писать парсер сырых байт под ещё один описанный класс объекта - всё делается ОДНОЙ строчкой
private static void CILImageDescription(SmartArray<byte> sarr)
{
cilHeader = new CILHeader(sarr);
И при таком подходе на цепляние к моему дизассемблеру ещё одного формата файла мне поднадобилось пол дня - на описание классов и на разборки с тем - как же это всё таки в байтах хранится - ибо документации - кот наплакал и некоторые вещи были определены опытным путём.
- - - Добавлено - - -
А, да, для возможности создавать образы, в которых была бы одна из ФС операционок с PDP-11, понадобился мне двунаправленный маппинг. Ок, пример. Тут несколько замороченней описание класса, но я пока не разобрался, как в run-time создать прокси-класс-наследник, поэтому пока так. Может, как руки дойдут - переделаю.
[Serializable]
[Macro(".DIEDF")] public class DirectoryEntry_S : BaseMappedClass // directory entry definition
{
[Map("E.STAT: .BLKW 1")] public F_ESTAT Status
{ get => (F_ESTAT)this.GetValue(nameof(Status)); set => this.SetValue(nameof(Status), value); } // entry status word
[Map("E.NAME: .BLKW 3", PDP11Type.Radix50)] public string FullName
{ get => (string)this.GetValue(nameof(FullName)); set => this.SetValue(nameof(FullName), value); } // RAD50 file name and extension
[Set(".=.-6")]
[Map("E.FNAM: .BLKW 2", PDP11Type.Radix50)] public string Name
{ get => (string)this.GetValue(nameof(Name)); set => this.SetValue(nameof(Name), value); } // RAD50 file name
[Map("E.FEXT: .BLKW 1", PDP11Type.Radix50)] public string Extension
{ get => (string)this.GetValue(nameof(Extension)); set => this.SetValue(nameof(Extension), value); } // RAD50 file extension
[Map("E.LENG: .BLKW 1")] public RT11BlockNum FileSize
{ get => (RT11BlockNum)this.GetValue(nameof(FileSize)); set => this.SetValue(nameof(FileSize), value); } // size of area described, in blocks
[Map("E.TIME: .BLKW 1")] public TPDP11Word Time
{ get => (TPDP11Word)this.GetValue(nameof(Time)); set => this.SetValue(nameof(Time), value); } // time of file closing(seconds/3 since midnight) <fut>
[Set(".=.-2")]
[Map("E.USED: .BLKW 1")] public TPDP11Word Used
{ get => (TPDP11Word)this.GetValue(nameof(Used)); set => this.SetValue(nameof(Used), value); } // <res> if not TENT
[Set(".=.-2")]
[Map("E.CHAN: .BLKB 1")] public byte Channel
{ get => (byte)this.GetValue(nameof(Channel)); set => this.SetValue(nameof(Channel), value); } // channel number for tentative file
[Map("E.JNUM: .BLKB 1")] public byte JobNum
{ get => (byte)this.GetValue(nameof(JobNum)); set => this.SetValue(nameof(JobNum), value); } // job number for tentative file
[Map("E.DATE: .BLKW 1")] public RT11Date Date
{ get => (RT11Date)this.GetValue(nameof(Date)); set => this.SetValue(nameof(Date), value); } // creation date
[Map("E.EXBT: .BLKB ?.DIHD/D.EXTR")] public IArray<byte> ExtraBytes
{ get => (IArray<byte>)this.GetValue(nameof(ExtraBytes)); set => this.SetValue(nameof(ExtraBytes), value); } // header extra bytes
//[Map("E.ELEN:")] public static readonly TPDP11Word Length; // basic entry len
static DirectoryEntry_S()
=> Helpers.StaticFieldsValueUpdater<DirectoryEntry_S>();
public DirectoryEntry_S(MappedToByteArray data, int baseOffset = 0)
: base(data, baseOffset)
{}
public DirectoryEntry_S()
=> this.TwoWayMapper();
}
...
DirectoryEntry_S temp = new()
{
Status = F_ESTAT.E_EMPTY
//, FullName = ""
, Name = "TEST"
, Extension = "TXT"
, FileSize = 0
, Time = 0
, Used = 0
, Channel = 0
, JobNum = 0
, Date = new(0)
};
В этом примере свойство ExtraBytes - массив переменной длины и его длина (если он вообще будет) берётся из другого поля родительского объекта. И при записе какого-либо поля объекта - моментальное изменение в байтовом массиве. Так что инициализация и наполнение ФС становится тривиальным делом.
Andrew771
28.01.2024, 22:34
А что такое байткод при "приземлении" на конкретную платформу? Он разве не может это делать с учетом проца? Выход ассемблера в расчете на какой-то ассемблер или группу ассемблеров? Если на группу, то действительно наверное лучше сразу код исполняемый
и оптимизированный генерить. А то юзверю придется разбираться в особенностях разных ассемблеров, и мучится с выбором ключа.
Может всё байт-код, о чем я Олегу и твержу. Я даже пробовал байт-код java в асм Z80 конвертить, нормально получается (на Дельфи писал намётки пост-процессора, с потоками java, как положено). И даже думал в ZX Like Pascal встроить. Только нужно времени много.
Сейчас в ZX Like Pascal выдуманный мной пи-код, который внутри конвертится в асм. Описывал здесь (http://dgmag.in/N15/DowngradeN15b.pdf)
- - - Добавлено - - -
Если ты имел в виду "что-то типа java, но более скромное", это уже теплее. Но опять же, заморачиваться. Зачем? Кто оценит? Кому надо? Придут ещё и потопчутся по святому. Спасибо, но не надо. Может для себя я что-то такое когда-нибудь и запилю, но упаси господи пытаться угодить "сообществу".
Да, оно. Так и делай для себя, с прицелом на облегчение написания своих программ/игр.
Oleg N. Cher
29.01.2024, 05:58
Любая сцепка фронт-энда и бэк-энда подразумевает промежуточный язык. Хотя бы в том, что фронт будет вызывать процедуры бэка с параметрами для генерации кода. Запишите эти вызовы в столбик и будет язык. Назовите его как хотите. Можете назвать пи-код или как-то иначе.
Впихивать стековую виртуальную машину в Z80, повторюсь, такое себе. Получится вполне тормознутая хрень с очень ограниченным применением. Даже не совсем понятно каким. Текстовые игры? Ну может быть.
Да, Хунта, да. И на "правильных" языках тоже можно разные штуки делать.
Так и делай для себя, с прицелом на облегчение написания своих программ/игр.Тебе надо - ты и делай? У нас как-то иначе было когда-то?
Oleg N. Cher
01.01.2026, 23:58
а чего ТЫ тут тогда делаешь?На форуме каждый человек волен написать в любую тему. Если я неправ, пусть одмины поправят. Это только ты почему-то решил, что там надо впахивать, и только доступным тебе способом. Чьё это горе?
а чего ты ТУТ тогда делаешь?См. выше.
предположу что на оберон или плм переложить для такого как ты профессионала буквально на изичах за неделюЯ ж не ДЛ, расслабься. Я даже не понял чего ты от меня опять хочешь.
ты агришься на мои комментарии во всех ветках указывает на обратное.Потому что ты неадекватен. См. ниже.
У меня накопились риторические вопросы к джерри. джерри, можешь не отвечать, они риторические.
1. Почему жерри решил, что он может что-то от меня требовать? Если по всем канонам морали имеет право только лишь просить, и то вежливо.
2. Почему он берёт меня на слабо как школьника?
3. Почему я должен что-то ему доказывать?
4. Почему любые идеи писать для ретро на чём-то, кроме Бейсика/ассемблера, вызывает приступы ярости у жерри и иже с ним?
5. Почему каждый должен стать профи-игроделом, как жерри? Иначе фу.
6. Почему жерри ничего не требует от других участников форума? В чём причина такого неравнодушия?
7. Почему надо обязательно впахивать тем способом, который нравится жерри? Иначе жизнь прожита здря
8. Зачем жерри туториалы и мастеркласс по тому, что он не будет использовать, а будет только фукать и фикать, потому что ему сам подход не нравится.
9. жерри вообще нормальный? Может уже пора ему провериться у психиатора?
Так, мысли вслух.
Oleg N. Cher
02.01.2026, 22:51
Проанализируем фразу.
Короче, на Обероне ничего путного не сделали.Это надо понимать как "на Обероне не сделали ничего, что шыни считает путним". Но шыни далеко не в теме. Ну пойди расскажи Савелию Иванкову, что он и его игры - отстой.
Нет, шыни, ты намного больший отстой со своими жалкими демками. А Оберон - он на века.
- - - Добавлено - - -
Есть моральное право пиарить Оберон в ретро-среде хотя бы потому, что он лучше Бейсика. Любого. Да, надо писать низкоуровневую обвязку и для этого знать платформы. Ну а где это устроено как-то иначе? Но он лучше. Производительнее. И переносимый. На нём благодаря моим усилиям, которые никогда не оценят жерышыны, - можно писать практически для любой ретро-платформы. Для любой. А на асме все писать не будут.
А моральное право пиарить PL/M - в том, что это объективно лучший компилятор с некоего ЯВУ для 8080-машин. Объективно. Лучший. Где тут любители хороших компиляторов? Что сидят по углам и за печкой?
А торчки на асме нам много не накодят; мало того, что они делают всякую хрень, так их способности даже нельзя взять и использовать произвольно, чтобы сделать что-то хорошее. Так что компилятор PL/M однозначно лучше призывов "всем на асм", "асм или умри" и прочей фигни.
- - - Добавлено - - -
Так что, раз "на Обероне ничего путного не сделали", а на Бейсике типо сделали, а Оберон лучше Бейсика, то чьё это горе? "Покажи нам готовое, тогда мы может быть сделаем что-то готовое [но это не точно; скорее всего, нет]". Где я вам возьму готовое? Берите что есть.
Lethargeek
02.01.2026, 23:14
на асме нам много не накодят
https://i.pinimg.com/736x/8a/64/02/8a6402b49ba6b37b85cc4d7baec83a39.jpg
- - - Добавлено - - -
а, стоп, не заметил сразу
торчки на асме нам много не накодят ... Так что компилятор PL/M однозначно лучше призывов "всем на асм", "асм или умри" и прочей фигни
вотоночо, значит, плм и прочие обероны просто предназначены торчков
которые, что логично, не могут в асм, поскольку торчки
ну вот, всё и встало наконец на свои места :D
Oleg N. Cher
02.01.2026, 23:19
А ты не мог бы изъясняться как-то более связно, что ли? Торчки в хорошем смысле, радуйся, борцун "за всё эффективное"
Lethargeek
02.01.2026, 23:26
А ты не мог бы изъясняться как-то более связно, что ли? Торчки в хорошем смысле, радуйся, борцун "за всё эффективное"
ммм, это как из анекдота "в хорошем смысле"?
ну и прекрасно, предлагаю для пущей ясности изменить название данной темы на
Мощная среда ДЛЯ ТОРЧКОВ (В ХОРОШЕМ СМЫСЛЕ) ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию
Oleg N. Cher
02.01.2026, 23:34
Торчки в нашем понимании это хорошие ассемблерщики, делающие свою работу хорошо, а не спускающиеся с подиума наркоманы, полные эйфории. Или это как-то связано?
Lethargeek
03.01.2026, 01:14
торчки на асме нам много не накодят
Торчки в нашем понимании это хорошие ассемблерщики
:v2_wacko::v2_crazy:
Oleg N. Cher
03.01.2026, 01:20
Понятно. По существу (https://zx-pk.ru/threads/18472-moshchnaya-sreda-zxdev-dlya-razrabotki-na-pyati-yazykakh-dlya-zx-gotova-k-testirovaniyu.html?p=1221638&viewfull=1#post1221638) сказать нечего, поэтому придрался к словам.
Слушай. Почему я не могу заниматься на форуме тем, что мне нравится? Это связано с тематикой форума напрямую. И всё из-за пары утырков, людей странных в своём роде и повёрнутых на своём величии.
Ты делай что хочешь, я не мешаю.
Не нашёл отдельной темы по паскалю, спрошу здесь. Как включить в программу на турбопаскале 3.0 массив-константу известного размера? И чтобы при этом самому не указывать размер. Пусть компилятор сам посчитает запятые.
Иными словами, надо тупо сделать INCBIN. Конкретно - звуки для AY (afx).
Версия 3.0 не понимает открытых массивов (безразмерных 'array of byte'), но для Z80 - других нет.
Через array это делается так:
const
fx1:array[1..5] of byte = ($EA,$AB,0,0,$AA);
И т.п. Максимальный индекс (= 5) надо указывать руками. Если массив большой, то неудобно.
Как сделать чтобы компилятор сам посчитал кол-во байт в скобках? Хотелось бы 'sizeof (fx1)', но не работает.
Директива {$R} не помогает. Где-то читал, что это можно обойти, но не помню где.
Через inline (1/2/3/4/5) можно вставить что угодно любой длины, но как получить указатель на эти данные? Можно добавить в начало ld hl,$+4 : ret, но это изврат.
Oleg N. Cher
03.01.2026, 02:23
Предположу, что в Турбо Паскале 3 такой фишки нет. Придётся указывать руками.
Можно написать небольшую утилиту, которая будет бинарик конвертить в такой массив с указанием размера.
- - - Добавлено - - -
Да, ИИ подтверждают, что так и есть.
https://bitsavers.trailing-edge.com/pdf/borland/turbo_pascal/Turbo_Pascal_Version_3.0_Reference_Manual_1986.pdf
В Turbo Pascal 3.0 для Z80 действительно нет встроенной возможности объявить массив-константу без явного указания размера с автоматическим подсчетом компилятором. Это ограничение старых версий.
Обходной путь: использование внешней утилиты (как вы предложили).
Можно написать простую программу-конвертер, которая преобразует бинарный файл в код Паскаля:
{ CONVERT.PAS - конвертер bin -> pascal const }
program ConvertBin;
var
f: file of byte;
b: byte;
i, count: integer;
begin
Assign(f, 'sound.bin');
Reset(f);
count := FileSize(f);
WriteLn('const');
Write(' fx1: array[1..', count, '] of byte = (');
for i := 1 to count do
begin
Read(f, b);
Write('$', Hex(b));
if i < count then Write(',');
if i mod 16 = 0 then WriteLn;
end;
WriteLn(');');
Close(f);
end.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot