Вход

Просмотр полной версии : что то вроде лазер бейсик



Руслан
14.11.2011, 23:54
Привет, помню на 48кб начал делать игру на лазер бейсике но вот пришлось просить проект из за недостатка памяти. Скажите, есть ли что нибудь подобное под 128 кб, лазер просто удобней мне. Ассемблер я не знаю да и учить его нет желания. Игру буду делать типа квеста Диззи. Всем спасибо.

Rindex
15.11.2011, 00:04
Это ты игру для Спектрума решил делать?

Killer
15.11.2011, 16:45
Тогда уж лучше Пасквиль или СИ осваивай.

Дмитрий
15.11.2011, 17:04
Killer, насколько я знаю Си и Пасквиль полезен на ЦПМ, а в тырдосе, да еще и при работе с графикой от него пользы 0.

Killer
15.11.2011, 17:15
Не спорю, но логика у них лучше и компиллер меньше.

Руслан
15.11.2011, 21:58
Это ты игру для Спектрума решил делать?

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

Rindex
15.11.2011, 22:00
да и делать на спектруме, в лазере мне тогда понравилось удобства работы с графикой. Ну так есть альтернативы.

Для игр типа Диззи есть. Но это уже не Спектрум, хотя стиль его.

Руслан
15.11.2011, 22:05
Для игр типа Диззи есть. Но это уже не Спектрум, хотя стиль его.

И что же это?

NEO SPECTRUMAN
15.11.2011, 22:08
И что же это?
Наверное вот это.
http://zx.pk.ru/forumdisplay.php?f=82

Руслан
15.11.2011, 22:11
Я как понял это игры запускающиеся на пц?

Rindex
15.11.2011, 22:21
Я как понял это игры запускающиеся на пц?

Зэр гуд. Два клика мышкой на файл dizzy и игра пошла.

Руслан
15.11.2011, 22:24
А альтернатива по функционалу лазер бейсика есть? только для спека 128

Barmaley_m
16.11.2011, 13:18
Если подобные среды разработки и есть - то они должны быть новыми, потому что во времена, когда для Спеков велись коммерческие разработки, насколько мне известно, ничего подобного создано не было.

Тебе памяти не хватает для графики или для программы? Если для графики - то есть шанс вручную (командой OUT 32765,n) переключать страницы памяти и подружить это дело как-то с лазер-бейсиком. Если памяти не хватает для программы - то боюсь, что решений нет, так как бейсик-128 в своей работе опирается на бейсик-48 и поэтому требует, чтобы программа умещалась в базовых 48К памяти. А что не помещается в просто бейсик - тем более не поместится в любое его расширение.

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

jerri
16.11.2011, 15:00
Руслан, расскажи поподробнее
1 что ты хочешь.
2 что у тебя есть.

и мы уже подскажем что тебе нужно

bigral
18.11.2011, 02:02
Руслан, расскажи поподробнее
1 что ты хочешь.
2 что у тебя есть.

и мы уже подскажем что тебе нужно

некрасиво конечно вмешиваться, но тут по-моему все ясно, есть - laser basic и игрушка типа dizzy, нужно - больше памяти и скорости раз в 10.

jerri
18.11.2011, 10:26
скорости конечно не дам
а по работе с памятью советов разных конечно надавать можно :)

Oleg N. Cher
09.08.2012, 23:54
А альтернатива по функционалу лазер бейсика есть? только для спека 128
Руслан, понимаю нежелание маяться с асмом. У меня есть опыт переноса игры Дурак (CopperFeet) с Laser Basic на язык Оберон-2 (для ZX Spectrum 48 Кб). Для этого я адаптировал библиотеку Laser Basic (вариант от Raydac) под Small Device C Compiler (чтобы работать с ней из Оберона).

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

Если заинтересовала такая возможность (ЯВУ Оберон-2 + библиотека Laser Basic для него), прошу изучить здесь на форуме мои темы по языку Оберон. Также предлагаю поддержку и консультации по указанному направлению. Самый быстрый способ со мной связаться — по ICQ, смотрите в профиле. Спасибо.

Руслан
10.08.2012, 08:12
Хорошо, спасибо - изучу.

Дмитрий
10.08.2012, 08:30
Насчет Си и Паскакаля согласен - писать на них игры бесперспективно. Сила лазер-бейсика в том, что он дает мощные инструменты для работы с графикой. В чистом виде ни Си, ни Паскаль этого не дают, надо писать свои графические библиотеки.
Давно это было и время немного изменило обстоятельства. Есть т.н. EvoSDK, которая позволяет писать для спектрума (правда не для классического - для Evo/ATM с их графрежимами) игрушки на С. Графические и не только библиотеки там есть.

Руслан
10.08.2012, 11:16
Мне щас на пентеве интересна тема от ts-lab'a с поддержкой более чем 16 цветов, кто из здешних пробовал шил?

BYTEMAN
10.08.2012, 11:52
шил
шил от слова шило? :)

Оно работаеть только на CRT-мониторах. На LCD получается шлак. Ну и надо учесть, что большинство всё-таки сидит на официальной прошивке.

Руслан
10.08.2012, 12:27
:), блин.

Oleg N. Cher
10.08.2012, 13:05
Хорошо, спасибо - изучу.

Прибавлю несколько плюсов, о которых забыл упомянуть. Во-первых, это честная компиляция в довольно эффективный машинный код Z80. Отсюда и хорошее быстродействие, и меньший по сравнению с интерпретатором Laser Basic расход памяти (не нужно держать интерпретатор в памяти). В качестве промежуточного звена для качественной кодогенерации используется язык Си и компилятор SDCC. Изучать язык Си в полном объёме для такого его использования, видимо, не понадобится, но какое-то понимание всё-таки нужно. Но пусть это Вас не смущает. Всё равно технологии для работы на языке высокого уровня эффективнее, чем SDCC, для CPU Z80 попросту нет. Её просто нужно развивать дальше. А для этого надо с ней работать.

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

В любом случае, потраченное на изучение Оберона время не пройдёт зря. Это хорошо структурированный паскалеподобный язык, позволяющий строить сложные и ёмкие программы. Для Спека конечно его использование специфично, придётся решить кое-какие проблемы. Например, как лучше использовать страницы памяти. Или как организовать подкачку данных с диска. Но зато знание Оберона позволит Вам разрабатывать на нём же программы и для Спека, и для J2ME/Android, и для .NET, и для Win32/UNIX, а также веб-сайты и т.д. Таких возможностей Вам не предоставит ни Си, ни тем более какой-то бейсик. Это я к тому, что изучить простой Оберон намного перспективнее, чем асм Z80. Даже если Вам напрямую он никогда и не понадобится, всё равно это хороший шаг в освоении других, намного более сложных технологий.

Alex Rider
10.08.2012, 13:43
Руслан, все же, рекомендую полностью прочитать ветки про Оберон. В частности, обратить внимание на минусы. В частности, на данный момент не преодален самый главный недостаток этой платформы - невозможность полноценной отладки. В результате, отлаживать скомпилированный код все равно надо на ассемблере. Кроме того, честно, не в курсе, позволяет ли предложенная среда делать выборочное включение в откомпилированный код отдельных процедур из библиотек - может оказаться, что, несмотря на меньший, чем на Бэйсике, объем кода, в нем будут содержаться никогда не вызываемые фрагменты.

Oleg N. Cher
10.08.2012, 16:00
позволяет ли предложенная среда делать выборочное включение в откомпилированный код отдельных процедур из библиотек
Позволяет сформировать свои библиотеки под свои нужды со своими процедурами. Есть отбрасывание "мёртвого" кода. Горы готовых библиотек, из которых надо включить в наш код непременно только одну процедуру, нет в наличии. Кроме того, надо посмотреть, что за это время появилось в SDCC в плане смартлинковки.

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

Я — за развитие технологии, а не за пассивное поругивание её недостатков.

GriV
10.08.2012, 19:18
Напоминаю, название ветки "что-то вроде лазер бейсик" и автор спрашивал про использование спрайтов а не недостатки и достоинства оберона.

Oleg N. Cher
10.08.2012, 19:45
Автор ветки спрашивал не только про спрайты, но и про "что-то вроде лазер бейсик". Как, собственно, называется ветка. Или хочешь сказать, что я практически на грани оффтопа?

Ибо, как я понимаю, он хочет разрабатывать свою игру на логике Laser Basic и на языке высокого уровня. А что может быть больше похоже на это, чем Оберон + адаптированная для него библиотека Laser Basic? Или может есть LB для 128К?

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

Давайте разделим отладку в интерпретируемых нативных средствах для Спека, в кросс-средствах и, наконец, ассемблерную отладку. Мне кажется, что % отладки связующего высокоуровневого кода (клея) между асмовыми процедурами при спектрумных объёмах кодинга (и для задач, которые можно решить на ЯВУ) будет весьма невысок. А если говорить об интерпретаторах и нативе, то объём ограничений этих средств неприемлем для разработки больших и сложных программ для Спектрума. А ассемблерная отладка конечно подразумевает знание ассемблера.

goblinish
14.08.2012, 20:30
не совсем по делу, но для z88dk есть наработки:

http://www.timexsinclair.org/alvin/index.htm#SP

Руслан
14.08.2012, 20:50
Как понимаю это платформа для разработки игр и софта на си?

goblinish
14.08.2012, 20:53
Как понимаю это платформа для разработки игр и софта на си?
что-то вроде того.

Oleg N. Cher
16.08.2012, 16:16
Как уже говорилось здесь на форуме, если бы адаптировать библиотеки с z88dk под SDCC, появилась бы возможность писать на них не только на Си, но и на Обероне, и даже с более качественной кодогенерацией — она у SDCC на порядок лучше.

Продолжение нашего разговора с Русланом (http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=30&p=83)

Oleg N. Cher
15.09.2012, 00:29
Найден способ в ZXDev/SDCC смартлинковать сущности из библиотек (собрал TinyHello.bin размером 45 байт). Подробнее об этом читайте на форуме поддержки ZXDev в теме "Умная" линковка (smart linking) в ZXDev/SDCC (http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=34).

Интересно, что теперь нам скажет Alex Rider? ;)

Oleg N. Cher
11.05.2014, 02:27
Переписал с Laser Basic на Оберон игру «Бега мышей» из книги «Как написать игру для ZX Spectrum». Этим я снова хочу привлечь внимание ценителей ZX-Бейсика к технологии ZXDev. Оберон может рассматриваться как структурный Laser Basic с возможностью удобно использовать любые новые операторы, написанные в машинном коде. Чтобы было яснее соотвествие Бейсик-операторов коду на Обероне — я не стал убирать Бейсик-код.

У ZXDev много достоинств для Спектрум-программиста, но самое важное, пожалуй, — это простой старт в "большое" и кроссплатформенное программирование на простом языке, при первом знакомстве похожем на ZX-Basic. Между программированием на ZX-Basic для Спектрума и, например, созданием игр для Android-смартфонов и планшетов на языке Java — огромный разрыв. Наша цель — смягчить переход, научившись более прогрессивным подходам структурного и модульного программирования на примере простого языка Оберон.

Скомпилированная игра «Бега мышей» занимает сейчас 13 кб, и это очень много. Оптимизировать её по размеру кода можно в десятке направлений. Мой прогноз: в рамках технологии ZXDev её размер после оптимизации будет не больше 3,5 кб. И такая оптимизация желательна не только для уменьшения размера этой игры. Сама возможность оптимизации должна показать скептикам на практике переход от макета, подготовленного очень быстро, до эффективного компактного релиза.

Я приступал несколько раз к оптимизации процедур самого Laser Basic. А там столько лапши, что я испугался. :) Но если есть желание заняться оптимизацией (притом не только самой игры, но и библиотечных процедур, в ней использованных), я конечно помогу.

Чтобы вы поняли насколько просто будет перейти к порту этой игры со Спектрума на Linux, DOS или Windows, Java или .NET — я могу подготовить консольную версию игры без графики. Можно конечно и с графикой, но вряд ли имеет смысл эмулировать Laser Basic на более других платформах с иным устроением экрана. Так что тогда придётся перевести игру в более платформенно-нейтральные абстракции. Что ж, и это возможно, только здесь ещё много работы. И тоже десятки направлений.

Oleg N. Cher
12.05.2014, 07:37
Руслану нужно что-то вроде лазер бейсика, только с меньшим расходом памяти и желательно с поддержкой 128 кб. Чтобы показать юзабельность ZXDev в этом случае на примере игры «Бега мышей» хотелось бы подробнее осветить вопросы оптимизации программ, разработанных с помощью этой среды.

Итак, пункт 1 — наиболее очевидный. К игре подключен весь набор спрайтов LaserSprite2B, а мы можем ограничиться одной мышкой. Что я иллюстрирую приложенным архивом. Размер игры сократился до 6,8 кб. Это безусловно не предел, ведь мы почти не коснулись кода.

Дальнейшая оптимизация по размеру может быть достигнута путём разбиения кода Laser Basic на отдельные подпрограммы, из которых к нашей игре будут подключены только использованные фрагменты. Это сложная и квалифицированная работа, к которой я питаю устойчивое отвращение. И, видимо, не только я. ;)

Но такая оптимизация дала бы нам несколько килобайт выигрыша. Ладно, не будем огорчаться. Я предлагаю другое. Чтобы и оптимизировать игру, и заодно чуть-чуть вывести её из абстракций Laser Basic'а, слишком ориентированных на Спектрум-экран с атрибутами, приходит такая идея: обозначить спрайт мышки, выводимый без атрибутов (что нужно для игры), как двухцветный спрайт с задаваемыми отдельно цветами фона и чернил. Это не бог весть какая удобная абстракция для современных высокотехнологичных игр, но для «мышек» вполне сгодится. По крайней мере, тут уже нету упоминания об атрибутах. Да и двухцветный спрайт на других платформах может быть, например, оранжево-фиолетовым, что недостижимо на Спеке.

Сейчас на данный момент я реализовал аппарат прозрачных и непрозрачных двухцветных (моно) тайлов размером 8x8 точек для платформ Windows и Linux (используется библиотека SDL), а также Java ME. Для Спекки разбирать мышку на тайлы мне не хочется, это чуть-чуть неправильно — потому что вычисление смещений и вывод мышки по кусочкам придётся поднять на высокий уровень, теряя необходимую эффективность. Поэтому дальнейшая оптимизация будет выглядеть как вариативная:

1. Просто оторвать процедуру Laser.PTBL от остального кода библиотеки. Побочным эффектом будет отрывание PTOR, PTXR и PTND, которые построены на этой же базе.

2. Разработать процедуру вывода двухцветного спрайта (с задаваемыми цветами фона и чернил) произвольного размера. В Спектрум-варианте пусть не будут забыты: формат (важно для скорости вывода!) спрайта (в каком порядке лучше хранить массив пикселей), способ вывода (XOR, OR, AND, PUT, на первое время можно ограничиться выводом PUT), специфическая координатная система (пусть будет только вывод по координатам, кратным 8, т.е. знакоместам) и конечно корректная работа при выходе спрайта за пределы экрана. Отдельно хотелось бы не забыть возможность выхода за пределы экрана не только справа/снизу, но и слева/сверху.

Подобную же процедуру разработать и для других платформ (перечисленных выше с SDL и Java ME). Это позволит чуть-чуть сместить акценты от Спектрума в пользу других платформ.

Считаю полезными оба эти направления. В качестве чернового варианта можно было бы конечно побить «мышку» на моно-тайлы и выводить не с помощью Laser.PTBL, а по GrTiles.DrawMonoTile8x8, но это направление мне кажется не очень удачным. Для Спектрум-варианта игры — пока мы не откажемся от Laser'а полностью, заменив его другими процедурами, или пока Laser не будет разбит на фрагменты для смартлинковки — это не даст никакого выигрыша в размере кода, т.к. код Laser Basic'а всё равно пристёгнут к игре полностью.

Судя по тишине — никому не интересно? Я ведь совсем не ставлю цели оптимизировать «Бега мышей» по самое небалуйся, просто размышляю на тему оптимизации в ZXDev и миграции кода на другие платформы возможными средствами XDev с точки зрения абстракций, которыми выражена эта игра. Можно взять и другую игру конечно. Только сперва несложную. В ZXDev и XDev ещё очень мало библиотек.

Andrew771
12.05.2014, 11:18
какие-то сложные ухищрения, вместо того, чтобы дать просто кросс-компилятор Basic-Z80 напрямую. Я сейчас пишу потихоньку кросс-компилятор Паскаля с подключаемыми асмовскими библиотеками.

Oleg N. Cher
12.05.2014, 15:16
По-моему, это впихивать вывод графики в язык/компилятор вместо выноса на уровень библиотеки — это как раз и есть сложное (и ненужное) ухищрение. ZXDev — гибридная открытая на всех уровнях среда, отсюда и многочисленные возможности оптимизации, которые вообще недостижимы если зажилить исходник. ;)

Положа руку на сердце — много у твоего Паскаля будет юзеров? Твой прогноз? Потому что ZXDev и твой Паскаль — примерно продукты одной ниши. Ну можешь сыграть на сложившемся отношении к Паскалю, но и это слабое утешение. Даже синтаксически Оберон имеет преимущества, хотя и не так раскручен.

А кросс-компилятор Basic-Z80 (http://www.boriel.com/the-zx-basic-compiler/) уже есть. И даже Mira Modula-2 (http://www.worldofspectrum.org/infoseekid.cgi?id=0012459) есть (нативная!). Но давайте признаем: Z80 мёртв, надо культивировать простоту и компактность программирования (http://compact-programming.narod.ru) на других, более доступных архитектурах. Так что считаю своё направление более интересным.

Andrew771
12.05.2014, 17:17
Я планирую запилить на своем компиляторе "Цивилизацию" потом. На асме ее сложно писать. Так что, один уже есть :)

denpopov
12.05.2014, 17:23
Но давайте признаем: Z80 мёртв
простите, что влезаю, но на чем основано такое мнение?

Oleg N. Cher
12.05.2014, 21:31
На количестве выпускаемых железных экземпляров данного процессора. Ну или совместимых с ним.

Остаётся культура кодерского искусства, которая должна жить.

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

Меня больше интересует помощь опытных асм-кодеров в создании качественных библиотек, с одной стороны, и начинающие Спектрум-программеры как потенциальные пользователи ZXDev, с другой. Как раз за этим я здесь.

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

Andrew771, так и скажи, что для себя делаешь. А «Цивилизацию» можно делать на готовом ZXDev, если, разумеется, гордость позволит. А то ZXDev уже юзабелен, а твоего компилера не знаю, дождёмся ли, а то уже годы и годы делаешь. И никто не говорит, что это просто — делать парсер и кодогенерацию. Но невообразимо трудно делать качественную кодогенерацию. Озвучь нам, пожалуйста, в каком году планируешь переплюнуть качество кода, выдаваемого SDCC (и, соответственно, ZXDev). А почему не присоединяешься к библиотекострою для ZXDev? Ведь это даже не смежная тема, а практически та же.

Вот и получается "сам пью, сам гуляю, никого не одобряю". ;)

Andrew771
13.05.2014, 12:33
А почему не присоединяешься к библиотекострою для ZXDev?
Признаюсь, что я вообще не понимаю, как в нем работать. Загрузил весь твой архив, там куча папок с файлами, куда дальше и что нажимать? :)
Я привык набирать прогу на Паскале в текстовом файле или в самой среде, а потом нажать одну кнопку, оно компилится само в один выходной файл. Оберон - это продолжение Паскаля, так что приемлемо.

kotsoft
13.05.2014, 15:26
Оно работаеть только на CRT-мониторах. На LCD получается шлак. Ну и надо учесть, что большинство всё-таки сидит на официальной прошивке.
- Если использовать только 64 цвета, то все нормально смотрится и на LCD-мониторах. 64 цвета это тоже не мало. Насчет прошивки - то ради хорошей игры люди прошьют. тем более что есть сборка где уже присутсвуют обе прошивки, между которыми переключаешься комбинацией клавиш

introspec
13.05.2014, 20:09
Но давайте признаем: Z80 мёртвСлава богу, что есть еще обероны в русских селеньях!

Oleg N. Cher
13.05.2014, 20:42
Признаюсь, что я вообще не понимаю, как в нем работать. Загрузил весь твой архив, там куча папок с файлами, куда дальше и что нажимать? :)Загрузил архив — запускаешь EXE'шник из корня. Это логично или нет? Особенно с учётом того, что он там один. Далее открывается привычная программа, в которой есть главное меню File, вот из него-то и выбираешь пункт Open. И указываешь путь к исходнику. Спектрум-исходники находятся внутри папки (подсистемы) ZXDev, и это тоже логично, не хранить же всё вперемешку. Расширение .Mod — обычный текст, его можно открывать в любом блокноте.

Соответственно, примеры хранятся в папке ZXDev/Mod. Я перенял структуру проекта как в Оберон-среде BlackBox и нахожу её удобной.

Дальше нужно знать, что кнопкой F11 ты компилируешь (compile), а кнопкой F12 — собираешь (build) и запускаешь проект. Реакция на эти кнопки задаётся в батниках ZXDev/Bin/compile.bat и build.bat, и это придаёт дополнительную гибкость в настройке особенностей сборки каждого проекта.


Я привык набирать прогу на Паскале в текстовом файле или в самой среде, а потом нажать одну кнопку, оно компилится само в один выходной файл. Оберон - это продолжение Паскаля, так что приемлемо.Всё правильно. Набирай в текстовом файле или в среде, нажимай одну кнопку (F12), оно компилится само в выходной файл. Можно даже прописать в build.bat запуск в эмуле. Всё так и есть. Пробуй.


Слава богу, что есть еще обероны в русских селеньях!Вот именно. Я рад, что Вы понимаете, что я предлагаю нечто гораздо большее, чем просто кодинг для старого компьютера. Предлагаю создать инфраструктуру, облегчющую начинающим программистам разрабатывать программы для разных платформ, но на едином языке и единостильным способом. Притом если в ограничения Laser Basic можно упереться носом навсегда, то здесь отрываются гораздо более широкие поля.

introspec
13.05.2014, 20:46
Вот именно. Я рад, что Вы понимаете, что я предлагаю нечто гораздо большее, чем просто кодинг для старого компьютера. Ппредлагаю создать инфраструктуру, облегчющую начинающим программистам разрабатывать программы для разных платформ, но на едином языке и единостильным способом.
Я бы сказал, что вы предлагаете освоить морально устаревшую технологию используя старый компьютер. Но я не против, осваивайте на здоровье! Есть куда более бездарные способы просрать своё время!

Oleg N. Cher
13.05.2014, 20:48
Интересно как вы просираете своё. ;)

introspec
13.05.2014, 20:54
Интересно как вы просираете своё. ;)
Пока неплохо справляюсь и без Оберона :)

Oleg N. Cher
13.05.2014, 22:14
Ну, я неплохо обхожусь без ZX-Evo или, допустим, AC Edit, и что? Я не считаю время тех, кто создаёт эти вещи, просратым. Это творчество энтузиастов, их самовыражение, понимаете? А не обмен плюшками в стиле "мне понравилось твоё мнение, я тебя уважаю, ты меня уважаешь, да мы же уважаемые люди!", который происходит буквально на наших глазах. ;)

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

Что же касается Оберона, то сейчас (в ETH и вне его) активно проводится работа в направлении Оберон + параллельное программирование и многопоточность (намного более лёгкая, чем традиционная в Linux/Windows), ПЛИС (FPGA) Оберон, ARM Oberon. Диалект Оберон-07 легко переориентируется на любую платформу. Энтузиастами проводится разработка трансляторов Оберона в JS, Паскаль, Питон, другие языки. Оберон-парадигму и её феномен надо исследовать примерно как другие господа конструируют компьютеры на базе Z80, не желая отрываться от Z80 в пользу, например, ARM, чтобы компьютер не считался уже Z80-несовместимым. Я не железячник, а программист, поэтому мне милее и ближе языковое конструирование.

Так что я абсолютно не согласен с "устаревшестью" Оберона. Он "устареет" ровно с устареванием императивного программирования, которому вообще нет разумных равнозначных альтернатив и на низком уровне, и на высоком. При отличающемся синтаксисе ядро языковых средств — одно и то же в C#, Java, C++ и Обероне. Только в Обероне оно выглядит чище и цельнее сбито.

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

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

introspec
13.05.2014, 23:21
Oleg, не нужно так переживать. Проговорю по слогам - Оберон - мар-ги-наль-на-я технология. Обероном на жизнь не заработаешь, так сложилось. Мне совершенно всё равно почему так вышло. Звёзды не сошлись. И через 10, и через 20 лет будет точно так же. Люди будут писать 20 новых языков в год и только немногие будут приживаться. Оберон - не прижился. Deal with it.

Oleg N. Cher
13.05.2014, 23:57
introspec, вы нам даёте вместо объяснений мифа новый миф. Оберон будет мар-ги-наль-ной технологией лишь до тех пор пока так будут думать. В программировании идёт битва за умы и сферы влияния, точно также как в мировой геополитике — битва за ресурсы. Остаются ниши для средств быстрого переориентирования и развития малыми коллективами. Остаётся компьютерное творчество. Но и в этой сфере рекламно насаждаются достоинства очередной новой среды или языка, но совершенно замалчиваются те вещи, которые неизменно остаются за бортом. И мне совершенно не всё равно на чём вас завтра заставят программировать, и из каких соображений. Давайте об этом говорить конечно. И о том, где сегодня "прижившийся" Fortran или где будет завтра "прижившийся" сегодня C#, и почему.

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

introspec
14.05.2014, 00:07
Oleg, попробуйте перечитать название этой ветки и немного задуматься. А потом написать, в подробностях, кто и за кем ходит. И подумать также, кто из нас пишет тут килобайты текста о "процедурах вывода двухцветного спрайта". Лично я под созидательной работой понимаю созидательную работу, а не пиар сомнительных с моей т.зр. технологий.

Вот как только ваш ответ на вопрос "Привет, помню на 48кб начал делать игру на лазер бейсике но вот пришлось просить проект из за недостатка памяти. Скажите, есть ли что нибудь подобное под 128 кб, лазер просто удобней мне" перестанет звучать как - "нужно только написать ещё один лазер бейсик на обероне со вставками на ассемблере и всё сразу появится" - сразу изменится отношение и к вам, и к Оберону.

Oleg N. Cher
14.05.2014, 00:20
introspec, пока ваше понимание этого маргинального форума с маргинальной темой про маргинальное средство разработки для маргинального компьютера с маргинальным процессором не упрётся носом в то, что всё это вообще маргинально, с вами просто не о чём говорить.

Я пишу в тему, оживляя ветку. Потому что Лазера для 128 кб нет и не будет. Если вас это задевает, идите лесом.

introspec
14.05.2014, 01:21
Потому что Лазера для 128 кб нет и не будет. Если вас это задевает, идите лесом.
Меня задевает другое, а именно, то, что Оберона со спрайтами тоже нет и не будет, пока вы будете продолжать пытаться подменить реальную работу - идеологией и пропагандой.

Oleg N. Cher
14.05.2014, 02:24
Alone Coder в своих письмах дал мне понять, что его начинает интересовать язык Оберон и Оберон-технологии. Впрочем, если он сочтёт нужным, то конечно сам выскажется, но AlCo высказал одобрение направлением ZXDev, посоветовал мне принять участие в конкурсе "Твоя игра" и напомнил мне про этот форум, почему я и пишу сюда снова.

Впрочем, хочу сказать про жертв собственных заблуждений на примере г-на introspec'а. Смотрите что получается. Получается материал на докторскую по психиатрии. Хотя меня интересует программирование. Г-на introspec'а никак не задевает тот факт, что знакоместа Спектрума имеют двухцветную природу. Его задевает когда я говорю об этом в контексте разработки на ZXDev. Его не задевает, что знание асма Z80 и ZX-Basic'а маргинально и бесполезно для поиска работы. Но он искренне обеспокоен тем, что я предлагаю программировать на Обероне. Может он боится, что Оберон принципиально более широко применим и претендует на ниши, занятые другими средствами? Г-на не смущает тот факт, что 99,9% софта для ZX написано на асме, но зато он придирается к асмовым вставкам в ZXDev-библиотеках. Может он предложит заменить асмовые вставки чем-то более прогрессивным?

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

Вобщем, не знаю, но складывается впечатление, что по тем или иным причинам ZXDev и Оберон действуют на г-на introspec'а как красная тряпка на быка. Это просто неадекват или здесь нужен психиатр - хз, но я никак не могу помочь.

Предлагаю вполне демократическую процедуру: голосование. Прошу проголосовать за это сообщение всех, кто хочет, чтобы я продолжил тему оптимизации программ, разработанных на ZXDev. При этом я могу перейти в более "свою" ветку "Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию" (http://zx.pk.ru/showthread.php?t=18472). Мне не трудно. Мнение тех, кто против, я учитывать не буду, потому что их голосование легко подстроить.

"Оберон со спрайтами" есть в том же ключе, как и есть "C# со спрайтами". И ничего более похожего на Laser Basic, чем ZXDev, мне неизвестно. Кому известно, озвучьте, плиз.

CodeMaster
14.05.2014, 06:39
Мнение тех, кто против, я учитывать не буду, потому что их голосование легко подстроить.


Т.е. достаточно 1 положительного отзыва и 100% голосов обеспечены.


При этом я могу перейти в более "свою" ветку

Да, пожалуй за её рамки тебе далеко отходить не стоит.


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

А то постановка диагноза по постам черевата санкциями.

Oleg N. Cher
14.05.2014, 07:09
Что, регалиями бряцаемс? А то бряк-бряк слышно.

---------- Post added at 06:09 ---------- Previous post was at 05:54 ----------

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

jerri
14.05.2014, 12:36
Да даже один заинтересованный энтузиаст, как по мне, лучше и интереснее толпы брызжущих ядом скептиков.

Проще надо быть и люди к вам потянутся, а вы все вопросы по технологии переводите в область идеологии.

CodeMaster
14.05.2014, 12:56
Что, регалиями бряцаемс? А то бряк-бряк слышно.

Какими регалиями? Упаси Оберон! ;-) Просто, принципиально не переношу перехода на личности, т.к. это явный признак того, что все логические аргументы закончились.

Вообще, про ZXDev я читал ещё год назад, и несмотря не идейно правильно направление про кроссплатформенность, ЯВУ и пр. и пр. всё это могло бы быть актуально лет 20-30 назад. Сейчас же впрягать в одну повозку коня и трепетную лань (иначе говоря мешать мух с котлетами) смысла особого нет, аппаратные платформы разошлись слишком далеко. И создавать среду разработки для написания кроссплатформенных текстовых крестиков-ноликов это чисто just for fun, ИМХО.


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

Да кто же против, только твой поиск энтузазистов слегка навязчив.

denpopov
14.05.2014, 13:13
только твой поиск энтузазистов слегка навязчив.
оно и понятно - кому энтуазисты, кому - тролли/вандалы..

Andrew771
14.05.2014, 14:32
Сейчас же впрягать в одну повозку коня и трепетную лань (иначе говоря мешать мух с котлетами) смысла особого нет, аппаратные платформы разошлись слишком далеко. И создавать среду разработки для написания кроссплатформенных текстовых крестиков-ноликов это чисто just for fun, ИМХО.
вот с этим согласен. Поэтому лучше делать узкозаточенный под спектрум компилятор. Я уже предлагал вот так (что и делаю сейчас): http://zx.pk.ru/showpost.php?p=484862&postcount=131

---------- Post added at 14:32 ---------- Previous post was at 14:27 ----------

вдогонку: http://zx.pk.ru/showpost.php?p=485376&postcount=134

Alex Rider
14.05.2014, 23:21
Его не задевает, что знание асма Z80 и ZX-Basic'а маргинально и бесполезно для поиска работы.
Да ладно?!

Oleg N. Cher
15.05.2014, 00:01
Проще надо быть и люди к вам потянутся, а вы все вопросы по технологии переводите в область идеологии.jerri, ты мне уже это советовал. Но постарайся глубже понять почему так происходит. Предположим, в контексте данного форума кто-то предлагает провести конкурс игр на Бейсике (!), устраивает опрос или сбор средств. Или, например, кто-то ищет "что-то вроде Laser Basic". Но при этом никакому засранцу даже в голову не приходит настойчиво муссировать, что:


ZX-Basic отстойное средство разработки потому что в нём нету шаблонов. А также маргинальное, потому что морально устарело.
Создавать игры для Спека на Basic'е (или на Laser Basic'е, или на асме) - это просирать своё время.
Изучение Basic'а абсолютно неперспективно с точки зрения трудоустойства. ZX-Basic'ом на жизнь не заработаешь, так сложилось.
ZX-Basic'а со спрайтами тоже нет и не будет.
Заверения, что имярек прекрасно справляется без ZX-Basic'а (или Laser'а).
Предлагается освоить морально устаревшую технологию используя старый компьютер. Кроме того ведётся навязчивая пропаганда идеологии ZX-Basic'а (или Laser Basic'а или асма).
И этому списку не видно конца.

Почему же происходит так, что проблемы одного средства абсолютно никак не замечаются и не обсуждаются, а проблемы другого - высасываются из пальца и муссируются во всех возможных вариациях? Этому есть одно объяснение. Люди ищут оправдание и подтверждение именно своим взглядам, своему неприятию, своей костности мышления. Начинается мифотворчество и выдавливание неугодного под любым соусом. Это не вопрос кодинга. Такими вопросами занимается психиатрия.

Andrew771, я знаю твою позицию по поводу языка-инвалида. Хочу тебе посоветовать дельную на мой взгляд вещь, и хотя она будет выбиваться из твоей схемы разработки, но зато позволит сделать качественный рывок и сэкономить время. Качественную кодогенерацию сделать чрезвычайно сложно. Предлагаю тебе отказаться от этой работы в пользу кодогенерации SDCC. Умение программиста заключается в способности экономить своё время путём использования готовых разработок. Вот мой совет. Погугли "Pascal to C" или даже "Modula-2 to C", обязательно найдётся что-то разной степени юзабельности. Я сходу нашёл "PtoC (http://www.lib.ru/SOFTWARE/)", который внушает. Изучи как он устроен и постарайся понять как именно его лучше использовать для твоих целей. Я вполне понимаю, что это не совсем то, что тебе хотелось с самого начала, и найдётся много людей, которые закритикуют эту схему. Не огорчайся. Нужно понимать свои сильные стороны и ценить себя. Важно то, что именно ты успеешь сделать, важно не погрязнуть в рутинной работе, которой не видно конца. Ровно столько же аргументов будет "за". Возьми SDCC и соедини это в одну схему. Это уже будет работать и выдавать прекрасного качества код. Идеи по оптимизации кодогенерации ты будешь перекладывать на другие плечи, освобождая свои для работы над библиотеками и обфичивания транслятора Паскаль-в-Си, если понадобится. Более того, мы тогда сможем соединить наши усилия по библиотекам. Я уже сам думал про такой шаг, но легко обхожусь Обероном вместо Паскаля и даже не возникает никакой потребности именно в Паскале.

jerri
15.05.2014, 00:26
Oleg N. Cher, проблема не в Бейсике как ограниченном языке. Проблема в том, что на четкий вопрос ты даешь неопределенный совет воспользоваться тем чего нет.

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

Oleg N. Cher
15.05.2014, 00:31
Давай отвечай за базар, jerri, раз вписался.

Во-первых ZXDev с полной поддержкой Laser Basic ЕСТЬ, а не нету. И это результат работы нескольких лет, а не пропаганда и идеология, в которой меня обвиняет г-н из туманного Альбиона.

Но вот гм... некий господин из Лондона вообще не очень адекватно понимает ситуацию, видя её как некоторое предложение неизвестно кому написать LB на Обероне с асмовыми вставками. Хотя зачем его писать, я предлагаю его всего лишь оптимизировать. О чём меня просил ещё топикстартер.

Спасибо всем проголосовавшим, я продолжу тему оптимизизации программ на ZXDev назло всем врагам.

jerri
15.05.2014, 00:56
Oleg N. Cher, давай начнем сначала


Привет, помню на 48кб начал делать игру на лазер бейсике но вот пришлось просить проект из за недостатка памяти. Скажите, есть ли что нибудь подобное под 128 кб, лазер просто удобней мне. Ассемблер я не знаю да и учить его нет желания. Игру буду делать типа квеста Диззи. Всем спасибо.


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

теперь смотрим описание среды zxdev

всё квотить не буду кому надо ссылки в теме по zxdev
но самое главное я сюда выпишу



Возможности
===========

- Поддержана плоская модель памяти Sinclair ZX Spectrum с 48Kb.
- Реализована эффективная оптимизирующая кодогенерация (средствами SDCC).

Дальше вести дискуссию я даже не вижу смысла.

Oleg N. Cher
15.05.2014, 01:01
Ну правильно. ReadMe старый и давно не обновлялся. А мы с AlCo переписываемся на тему как сделать поддержку 128 кб. Кстати, если использовать не Laser Basic, а ZXDev - будет больше доступной памяти в пределах 48 кб. Но ты бюрократ, jerri. Формалист. фи.

jerri
15.05.2014, 01:18
Oleg N. Cher, разработка методом "научного тыка" меня уже лет 20 не привлекает. Я начинаю с чтения документации.
Так что ваши грязные инсинуации - мимо тазика.

Oleg N. Cher
15.05.2014, 01:26
Я озвучу, надеюсь, AlCo не будет против.

Ну тогда значит так. По коду. На диске и в страницах памяти хранятся специальным образом подготовленные кодовые модули (которые можно получить конвертированием выхода SDCC). С настройкой адресов. Может быть даже сжатые каким-то простым способом типа хруста. Можно опциональное сжатие. Диспетчер загрузки модуля проверяет его наличие в страницах памяти, если нету, подгружает с диска, перегоняет (с распаковкой при необходимости) из страничной памяти в основную. При этом нужно будет ограничиться пространством только в нижней памяти для рабочего кода, а верхнюю будут впечатываться страницы с упакованным кодом. Если позволить использовать код в верхних страницах, то остаётся проблема второго экрана. Остаётся проблема распределения страниц. Это уже уголок ассемблерщика или кодера демок, но это никак не высокоуровневая задача. При таком подходе много ограничений. Например, ограничен объём загруженных в нижнюю память кодовых модулей. Верхняя память рассматривается как подкачка, в которую вытесняются неактивные модули при недостатке памяти для работы.

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

Сложно, малоэффективно. Как и любые попытки забыть об ассемблере при кодировании под Z80. С этим процессором пора завязывать. Не обижайся.

Спек видится очень слабым полем для таких механизмов, они сами по себе будут занимать довольно приличные ресурсы. Не знаю как насчёт клонов Спектрума, но сам Спек даже со страничной памятью в 256-512 Мб будет смотреться бледновато.

По данным. Модули могут содержать память данных вместе с кодом. При наличии куска данных размером больше 16 кб начинается масса головной боли. Тут и правда надо бить данные на кусочки размером в 256 байт (например?) и иметь все проблемы из-за снижения скорости доступа - из-за блочности и из-за того, что блоки могут быть размещены в нескольких страницах. В самом же простом случае если не брать во внимание динамическую модульность, принять максимальный размер массива в 16 кб и согласиться со всеми другими ограничениями - это работать с данными примерно так:

SetMemPage(Sprites); PutSprite(HeroPhase1);
SetMemPage(Fonts); Text("Lives: "); Int(lives);

где PutSprite уже знает смещение к нужному спрайту в подготовленной вызовом SetMemPage странице. То есть где-то так.

---------- Post added at 00:26 ---------- Previous post was at 00:23 ----------

jerri, всё-то тебе готовенькое в ротик положи, злостный ты буквоед-самоучка. Ты понимаешь всю неформальность такого проекта как ZXDev? А то если нет, то начинай коммерческую поддержку, я подгоню документацию до актуального состояния.

introspec
15.05.2014, 01:27
Ну т.е. ещё три экрана бла-бла-бла и ничего не сделано. Действительно, психиатрия!

jerri
15.05.2014, 01:37
jerri, всё-то тебе готовенькое в ротик положи, злостный ты буквоед-самоучка. Ты понимаешь всю неформальность такого проекта как ZXDev? А то если нет, то начинай коммерческую поддержку, я подгоню документацию до актуального состояния.

О как заговорил.

Это ты предлагаешь свою IDE вместо моей. Это ты уверяешь что ZXDEV лучше чем мой комплект софта. Это ты пиаришь её везде где пишешь.
А я тебе ничего не должен. Так что не надо переходить на личности и плеваться в монитор. Он этого не оценит.

Oleg N. Cher
15.05.2014, 01:53
Ага, так ты просто конкурентика гнобишь типа. Ну-ну. ;) Всё равно неадекват из тебя так и лезет. С этим ничего нельзя поделать. Даже если абсолютно формально вписаться в тему. Ты прохвост, jerri. Это поймёт любой, даже кто записал себя в мои враги.


Какими регалиями? Упаси Оберон! ;-) Просто, принципиально не переношу перехода на личности, т.к. это явный признак того, что все логические аргументы закончились.Я, опять же, могу начать анализ моих аргументов, их полную игнорацию, но взамен этого высасывание из пальца или банальные придирки. Но это будет не кодинг, а опять психиатрия. Так стоит ли.


Вообще, про ZXDev я читал ещё год назад, и несмотря не идейно правильно направление про кроссплатформенность, ЯВУ и пр. и пр. всё это могло бы быть актуально лет 20-30 назад. Сейчас же впрягать в одну повозку коня и трепетную лань (иначе говоря мешать мух с котлетами) смысла особого нет, аппаратные платформы разошлись слишком далеко. И создавать среду разработки для написания кроссплатформенных текстовых крестиков-ноликов это чисто just for fun, ИМХО.Не нужно запрягать их в одну повозку. Важно иметь возможнось общаться с конём и ланью на одном языке. Пусть у них разная скорость движения и разное назначение. Пусть конь бегает текстовые крестики-нолики. Лань будет бегать супермегаграфические с поддержкой по сети. Но языковая база будет единой, или хотя бы (вследствие неизбежной фрагментации) на единой основе. Достаточно иметь для коня базовый набор возможностей, и для лани - расширенный. Пользы от такого единства - немерено. И мы не будем ограничиваться текстовыми крестиками-ноликами, они всего лишь пример.


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

---------- Post added at 00:53 ---------- Previous post was at 00:46 ----------


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

jerri
15.05.2014, 08:22
Ага, так ты просто конкурентика гнобишь типа. Ну-ну. ;) Всё равно неадекват из тебя так и лезет. С этим ничего нельзя поделать. Даже если абсолютно формально вписаться в тему. Ты прохвост, jerri. Это поймёт любой, даже кто записал себя в мои враги.

А ты я смотрю совсем дурачок. Так и запишем.

CodeMaster
15.05.2014, 08:22
Пользы от такого единства - немерено.

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


или хотя бы (вследствие неизбежной фрагментации) на единой основе.

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


Пусть конь бегает текстовые крестики-нолики. Лань будет бегать супермегаграфические с поддержкой по сети.

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

denpopov
15.05.2014, 10:48
кстати, а почему популярен ZX81? с ним разбираться просто fucking shame

jerri
15.05.2014, 12:48
denpopov, по той же причине - первый домашний комп.

Alex Rider
15.05.2014, 20:53
Предположим, в контексте данного форума кто-то предлагает провести конкурс игр на Бейсике (!), устраивает опрос или сбор средств. Или, например, кто-то ищет "что-то вроде Laser Basic". Но при этом никакому засранцу даже в голову не приходит настойчиво муссировать, что:
ZX-Basic отстойное средство разработки потому что в нём нету шаблонов. А также маргинальное, потому что морально устарело.
Создавать игры для Спека на Basic'е (или на Laser Basic'е, или на асме) - это просирать своё время.
Изучение Basic'а абсолютно неперспективно с точки зрения трудоустойства. ZX-Basic'ом на жизнь не заработаешь, так сложилось.
ZX-Basic'а со спрайтами тоже нет и не будет.
Заверения, что имярек прекрасно справляется без ZX-Basic'а (или Laser'а).
Предлагается освоить морально устаревшую технологию используя старый компьютер. Кроме того ведётся навязчивая пропаганда идеологии ZX-Basic'а (или Laser Basic'а или асма).
И этому списку не видно конца.

Почему же происходит так, что проблемы одного средства абсолютно никак не замечаются и не обсуждаются, а проблемы другого - высасываются из пальца и муссируются во всех возможных вариациях?

Олег, а ответ на твой вопрос очень прост. Это форум про ретро-компьютеры. Это форум для тех, кто когда-то давным-давно писал что-то на Бэйсике, ассемблере, Laser Basic'е, а теперь ностальгирует по тем временам и пишет по приколу. Но это ни разу не форум любителей Оберона. Оберон не вызывает никакого отклика в душе и памяти спектрумиста, ибо в далеких 90-х Сректрум и Оберон были связаны никак. Большинство форумчан - зрелые опытные люди, выбравшие свою стезю и имеющие необходимый для работы багаж знаний, посему изучение в рамках хобби чего-то не из времен Спектрумовского бума воспринимается, мягко говоря, скептически. Ровно такая же реакция возникает и на настойчивое продвижение здесь нового железа\софта. А ненастойчивое продвижение как правило приводит к забвению. Вспоминая бородатую шутку, "Это форум про аниме?..."

denpopov
15.05.2014, 21:06
Вспоминая бородатую шутку, "Это форум про аниме?..."
напомни шутку, пожалуйста..

Alex Rider
15.05.2014, 21:20
напомни шутку, пожалуйста..
Вот как чувствовал, что надо было найти сначала и запостить точно, а не по памяти. :)
Вот оно (http://bash.im/quote/42).

Eltaron
15.05.2014, 21:48
Оберон не вызывает никакого отклика в душе и памяти спектрумиста
Оберон не должен ничего вызывать, это вполне подходящий язык для тех, кому на бейсике слишком медленно, а на асме слишком сложно. Ещё и спрайтовый движок в комплекте. На всём этом арканоид за вечер пишется, что ещё от жизни надо?

CodeMaster
15.05.2014, 22:17
На всём этом арканоид за вечер пишется, что ещё от жизни надо?

Надо, что бы на нём игры писАли, а не выносили им моск.

denpopov
15.05.2014, 22:21
страшно подумать, что получится, если Оберон скрестить с АТМом..

Alex Rider
15.05.2014, 22:51
страшно подумать, что получится, если Оберон скрестить с АТМом..

Кстати сказать, а интересная идея. Оберону в 48К тесновато (особенно, без смарт-линковки), а для ATM сделана отличная EvoSDK - кладезь библиотек для импорта в ZXDev.

Kakos_nonos
15.05.2014, 23:08
А Оберон с помошью этой системы можно в i8080 транслировать?

denpopov
16.05.2014, 06:07
а в 6502?

Oleg N. Cher
16.05.2014, 09:03
Кстати сказать, а интересная идея. Оберону в 48К тесновато (особенно, без смарт-линковки), а для ATM сделана отличная EvoSDK - кладезь библиотек для импорта в ZXDev.Не возражаю, давайте реализуем.


А Оберон с помошью этой системы можно в i8080 транслировать?Ровно в той мере, в которой есть компилятор Си для 8080, поддерживающий хотя бы стандарт ANSI. А то SDCC не умеет генерить код для 8080. В своё время vinxru (http://zx.pk.ru/member.php?u=6677) начал разрабатывать кросскомпилятор Си под 8080 (http://zx.pk.ru/showthread.php?t=20018). Вот это то направление. Сперва Си, потом Оберон - для тех, кому слишком сложно на Си.


а в 6502?Можно наверное через cc65 - a freeware C compiler for 6502 based systems (http://www.cc65.org), я, правда, не пробовал насколько он ANSI-совместимый.

Ещё когда-то Норайр Чилингарян делал порт транслятора OO2C (http://sourceforge.net/projects/nmos6502-oo2c/) (адаптацию под 6502).

Т.е. вопрос о возможности транслировать Оберон в машинный код процессоров 8080 и 6502 упирается в вопрос трансляции ANSI C в код этих процессоров. Но у меня нет готовых ответов. Сам к некоторым очевидным на первый взгляд вещам дошёл через многочисленные ошибки. Давайте пробовать и делать, почему же нет. :)

Oleg N. Cher
20.05.2014, 15:44
Оберон не вызывает никакого отклика в душе и памяти спектрумистаПозволь с тобой не согласиться. Видел отклик Kakos_nonos'а "Это ж практически паскаль" (http://zx.pk.ru/showpost.php?p=711356&postcount=180)?

А вот такой код:


B.BORDER(B.Green); B.PAPER(B.Black); B.CLS;
FOR x := 0 TO 245 BY 2 DO
B.INK(B.Yellow); B.PLOT(x, 127); B.DRAW(10, 10);
B.INK(B.Magenta); B.PLOT(x, 37); B.DRAW(10, 10);
END;
B.AT(11, 1); B.PAPER(B.Blue); B.INK(B.Cyan);
B.BRIGHT(B.On); B.FLASH(B.On);
B.PRSTR(" HELLO WORLD of ZX Spectrum ! "); B.FLASH(B.Off);
B.PAUSE(B.WaitAKey);будет вызывать самый мощнейший отклик у всех спектрумистов, кто умеет чуть больше, чем просто набирать LOAD ""


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

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

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

За последние 20-30 лет прогресс в области железа действительно очень впечатляет. Видеокарты рисуют какие-то потрясающие миллионы треугольников за секунду. Всё опоясано проводными и безпроводными сетями высокой пропускной способности. Не поспоришь. Впрочем, и железячный прогресс далеко не всегда прогрессивен (http://citforum.ru/programming/digest/wirth/).

В области же упрощения софтостроя, повышения производительности труда он, увы, оставляет желать намного лучшего. Софтверный прогресс можно ярко охарактеризовать фразой, вынесенной в эпиграф книги "Проект Оберон. Разработка ОС и компилятора" (http://rutracker.org/forum/viewtopic.php?t=4245080): "скорость работы железа растёт медленнее, чем замедляется скорость работы софта".

Разнопёстрое множество языков программирования, каждый из которых чем-то немножечко лучше прочих (а чем-то - неизменно хуже!) - это тоже не всегда прогресс. Часто это конкурентная борьба или аппелирование к тёплым домашним чувствам - уже не спектрумистов, а любителей Си. Между прочим, Вирт проделал отличную работу, сумев выделить минимальный набор самых необходимых и безопасных языковых средств в некое языковое ядро. И очень важно донести до читателей форума, что это направление не "маргинально" и не "не прижилось", а живо и развивается.


После этого начнётся учёт особенностей и весь практический смысл, кроме методологического автоматом пропадёт.Но смотри - ведь такой же подход использует и мэйнстрим - стандарт ISO Си, насколько я знаю, полностью поддержан и в C++, и в Objective C как некий общий базис. Но если Си толщает, Ада толщает, Дельфи толщает год от года, то, например, в Оберон-среде обкатан способ "похудения" - вывода из оборота устаревших языковых средств, если им найдена полноценная замена с учётом приобретённого опыта. Создаётся новый диалект, и софт может быть портирован со старого диалекта на новый гораздо легче, чем между разными языками программирования.

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

Знаете среду разработки Monkey (http://habrahabr.ru/post/159377/)? Прогресс в том, что не нужно изучать сто языков, сто платформ и миллион платформенных особенностей. Бери себе пиши игру да и собирай её хоть для html5, хоть в Action Script, хоть для Android, а хоть для iOS. А если завтра появится десять новых "карманных" архитектур, для которых можно будет собрать эти игры - сделай поддержку этих архитектур в Monkey и не теряй свои наработки. Получается экономия человеческих, а значит самых ценных ресурсов. Потенциально XDev и есть что-то вроде Monkey, только для других платформ и на базе другого языка, да оно даже ещё лучше, потому что свободное.

CodeMaster
20.05.2014, 16:28
Видел отклик Kakos_nonos'а "Это ж практически паскаль"?

"Паскаль! Как много в этом слове для сердца спектрумиста..." Так надо полагать?


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

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


а ОС Windows/Linux или планшет с Андроидом загружаются десятки секунд

Давно придуман режим "StandBy", ноут у меня включается при открытии крышки, а планшет я вообще не знаю как выключается (разрядится если только).


"скорость работы железа растёт медленнее, чем замедляется скорость работы софта"

Это ложное утверждение. Вопрос в чём измерять производительность софта, но производительность труда человека за компьютером однозначно растёт благодаря именно софту. Т.е. если (условно) калькулятор на ZX вычисляет выражение за 10 мкс, а на РС будет вычислять за 1 нс, это слабо поможет в жизни, а вот если на РС запустить БД или тот же Excel...


Создаётся новый диалект, и софт может быть портирован со старого диалекта

В том-то и дело что может быть портирован, а на практике такая потребность встречается редко.


Это очень важно - не терять свои наработки.

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

В тех же случаях когда действительно нужна преемственность есть архитектура AS/400



попутно открывая огромный спрос на малоквалифицированный (и соответственно низкооплачиваемый труд) портировщиков софта.


Всё правильно, кто бы спорил, просто пока это экономически выгодней этим и будут пользоваться. Да и индусов тоже надо подкармливать, миллиард голодных индусов, даже с учётом их малоконфликтности, не подарок. Но, постепенно минималка у них тоже растёт, что снижает рантабельность их труда. Хотя при этом же ускорение изменений в ИТ подталкивает к тому, что нет смысла задумывать о жизненном цикле уже не просто продуктов, а целых технологий более чем на 3-5 лет.


Бери себе пиши игру да и собирай её хоть для html5, хоть в Action Script, хоть для Android, а хоть для iOS.

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

Oleg N. Cher
20.05.2014, 17:08
"Паскаль! Как много в этом слове для сердца спектрумиста..." Так надо полагать?Hisoft Pascal - почему бы и нет? и я с него начинал...


Давно придуман режим "StandBy", ноут у меня включается при открытии крышки, а планшет я вообще не знаю как выключается (разрядится если только).Хорошо, а сколько секунд загружается ресивер с Linux - знаешь? ;)


Вопрос в чём измерять производительность софта, но производительность труда человека за компьютером однозначно растёт благодаря именно софту.Это верно. Но есть проблема разделения сфер влияния. Т.е. если тебе условно дать комп с Linux, а ты привык к MacOS, то никакого прироста производительности наблюдаться не будет. Разумеется, такого же прироста не будет, если ты освоил C#, а работать надо на Haskell. Таким образом, мы, приобретая, теряем. Появляются новые проблемы - проблемы стыковки. Проблемы преодоления косяков очередной прогрессивной версии Windows. Или раздражения неудобным расположением её менюшек. Нас пытаются убедить, что это прогресс. А это чья-то кормёжка. Наверное, малоконфликтных индусов. Всё правильно.


В том-то и дело что может быть портирован, а на практике такая потребность встречается редко.Это как сказать, смотря чем занимаешься. А ты видишь смысл в том почему на клиентской стороне должен быть один язык (JS), а на серверной - другой (PHP)? Почему бы не быть там одному языку, если язык хороший. И почему бы не перестать наращивать производительность JS на ARM, т.к. она растёт только до определённого предела, потом надо выбросить интерпретацию. И почему бы не перестать делать всякие Zend optimizer'ы с байт-кодом, которые тоже упрутся носом в свои ограничения? Вопрос в том, что виртуализация дала нам наряду с "прогрессом" ещё и регресс, и с этим ничего нельзя поделать. Он непреодолим в рамках "виртуальности".


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

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


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

Alex Rider
20.05.2014, 17:42
Позволь с тобой не согласиться.
Позволю. Ибо написал неаккуратно. Не любого спектрумиста, а подавляющего большинства спектрумистов. Ибо ЯВУ (кроме бэйсика) на Спектруме не получили широкого распространения.

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

Если Спектрум или Nintendo готовы к работе сразу после включения, а ОС Windows/Linux или планшет с Андроидом загружаются десятки секунд - это регресс.
А сравнивать платформы и ОС вообще нелогично. Но не суть. Игры слов тут не надо - готовность Спектрума к разработке имеет очень дорогую цену, и ты об этом прекрасно знаешь. А современный компьютер готов к разработке гораздо раньше, чем в Спектрум загрузится Laser Basic с кассеты.

"скорость работы железа растёт медленнее, чем замедляется скорость работы софта"
Эта фраза также неверна. Чтобы убедиться, достаточно распаковать гиговый архив на современном компьютере и комрьютере 10-летней давности.

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

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

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

Прогресс в том, что не нужно изучать сто языков, сто платформ и миллион платформенных особенностей. Бери себе пиши игру да и собирай её хоть для html5, хоть в Action Script, хоть для Android, а хоть для iOS.
И это здорово, ибо существует обширный класс хорошо портируемых задач, и при грамотном подходе к тестированию продуктов действительно удешевляет разработку таких приложений. Опять же, выбор инструмента должен быть разумен, а инструмент должен обеспечивать как эффективную раелиацию задачи, так и качествнный результат.

Oleg N. Cher
20.05.2014, 18:06
Позволю. Ибо написал неаккуратно. Не любого спектрумиста, а подавляющего большинства спектрумистов. Ибо ЯВУ (кроме бэйсика) на Спектруме не получили широкого распространения.Просто кто-то смотрит на суть - и видит прогресс в INK(Black) вместо INK(0). А кто-то срубается уже на слове "Оберон" и дальше просто не идёт, выискивая любые поводы для оправдания своего неприятия и не затрудняясь писать килобайты текста, чтобы их озвучить. :)


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


Эта фраза также неверна. Чтобы убедиться, достаточно распаковать гиговый архив на современном компьютере и комрьютере 10-летней давности.Я не оспаривал железячный прогресс, наоборот, похвалил. Только меня удручает, что большинство занимается всё-таки выкладыванием вконтакт "ржачных фоток как мы с корешами вчера бухали". Наше поколение было другим. Современный молодой юзер сегодня часто - это обезьяна с высокотехнологической гранатой. И я задаю себе вопрос - чем это вызвано и как с этим бороться. Прогресс в технологии. Регресс в нравственности. Не связаны ли как-то эти вещи?


C-программистам и в кошмарном сне не приснится, что новый стандарт языка не имеет обратной совместимости.Ну пусть им в страшном сне приснится, что их любимый Си насчитывает 20 000 иероглифов. И ни одного убрать низ-зя. ;) Даже вредного и опасного. Я не называю это прогрессом. Это лавина.


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


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

Kakos_nonos
20.05.2014, 19:11
Меня всегда доставляют споры о перспективности той или иной технологии на спектруме и сильном желании отговорить от её использования. Вы чё, деньги собираетесь на спеке зарабатывать?
Вся спектрумистская кодинг-сцена держится на энтузиастах, на Just for fun'е. Что человеку интересно, то он и делает, и отговаривать его НЕЛЬЗЯ, он же вам ничего не должен. Не нравится - просто пройди мимо, зачем человеку настроение портить. Мне вот Си не нравится и что, я должен всех сишников отговаривать и пересаживать на паскаль, который мне нравится?
И, возможно, я не один такой. Паскалефилы ещё есть в природе, им эта среда пойдёт по душе, тем более, в отличии от sdcc, для её наладки ничего не надо делать, ни какие параметры прописывать, а просто запустить и писать код.

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

denpopov
20.05.2014, 19:13
Меня всегда доставляют споры о перспективности той или иной технологии на спектруме и сильном желании отговорить от её использования.
использовать некоторые технологии - это как нюхать цветы в противогазе..

Alex Rider
20.05.2014, 19:54
А кто-то срубается уже на слове "Оберон" и дальше просто не идёт, выискивая любые поводы для оправдания своего неприятия и не затрудняясь писать килобайты текста, чтобы их озвучить.
Килобайты текста не только утомительно писать, но и лень читать :) Суть нужна. А я умею писать на ассемблере для Спектрума, поэтому одинаково не пишу ни Бэйсике, ни на Обероне. И, да, я не отговариваю никого использовать ZXDev и не пишу что он плох. Я против обоснования крутости чего-либо жонглированием сомнительными с моей точки зрения фактами.

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

Только меня удручает, что большинство занимается всё-таки выкладыванием вконтакт "ржачных фоток как мы с корешами вчера бухали".
Ну так давно кончились те времена, когда компьютеры были только у программистов :)

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

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

И ни одного убрать низ-зя. Даже вредного и опасного.
Разумеется низя. Потому как если новая версия языка/компилятора принудительно перечеркивает написанное ранее, она не нужна. И, если производитель делает такий фокусы, он остается без покупателей. И непонятно что такое "опасный иероглиф". К примеру, goto использовать можно, но не нужно. Кому надо, тот знает об этом. Опять же, кому надо, тот знает когда это "не нужно" превращается в "нужно".

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

Прям как из брошюры по партийному строительству.
Скорее как из заготовленной речи современного политика :)

РК грузится за пол секунды, спек за две.
Не знаю как РК, а Спектрум не грузится, а инициализируется. Еще раз - Laser Basic грузится с кассеты сильно дольше, чем Vista на Pentium III. Basic в ПЗУ в роли ОС обошелся Спектруму довольно дорого. Да и не вижу я, что дальше - больше, Win8 у меня на на планшете с SSD грузится в пределах 5 секунд.

introspec
20.05.2014, 22:01
Прогресс в технологии. Регресс в нравственности. Не связаны ли как-то эти вещи?Предлагаю перевести этот тред во флейм, т.к., очевидно, что программированием заниматься тут никто не собирается.


Sent from my HTC Sensation XE with Beats Audio Z715e using Tapatalk

denpopov
21.05.2014, 05:39
, т.к., очевидно, что программированием заниматься тут никто не собирается.

погроммированием на Обероне.

Oleg N. Cher
21.05.2014, 07:31
Позвольте перевести тред в более правильное русло.

У меня просьба. Ну не нужно плиз мусолить тему "ЯВУ на Спеке не прижились". Это спекуляция. На Спеке - наверное. На других хост-платформах, но для Спека - вполне прекрасно себя чувствуют.

Мне нравятся игры, написанные за последнее время для Спека на средствах, отличных от ассемблера. Это мне дорого, интересно и хочется развивать данное направление.


Souls (http://www.worldofspectrum.org/infoseekid.cgi?id=0028172), 2013 - скомпилированный BASIC, исходник прилагается.

Magic Tokens (http://www.worldofspectrum.org/infoseekid.cgi?id=0025075), 2010 - SDCC + асм, исходник прилагается.

Moggy (http://www.worldofspectrum.org/infoseekid.cgi?id=0015106), 2005 - z88dk, исходник прилагается.

Phantomas Saga: Infinity (http://www.worldofspectrum.org/infoseekid.cgi?id=0015743), 2006 - z88dk, исходник прилагается.

А вот здесь собраны ссылки на исходники игр для Спека, написанных в том числе и на Си (http://www.worldofspectrum.org/forums/showthread.php?t=40330)

И даже В ТЕМУ! (см. аттач)