Оберончики вместе с асмом плохо сопоставляются с платформами.
Оберончики вместе с асмом плохо сопоставляются с платформами.
Нормально они сопоставляются. Не хуже бейсиков.
Я-то? А ты давно в зеркало смотрел? Вы же ведёте себя как гопота. Я просто хотел приобщить интересующихся к разработке ассемблерных процедур. А столкнулся с кучей подростковых комплексов и требований: "делай то, не делай сё".
Кто тебе мешает, кстати, реализовать самому плавучку в виде процедур для Millfork? Ты же у нас мастер по 6502. Типа.
Денис Грачёв никогда бы не опустился до того, чтобы унижать людей, которые недотянули до его игр. Вы, святая троица, понимаете куда я клоню?
- - - Добавлено - - -
Хорошо. Я пишу игры плохо. Я где-то кричал, что я супер-пупер игродел? Это же вы постоянно кричите. Утырочно.
- - - Добавлено - - -
Lethargeek, вопрос не про юзабилити моей игры, а в том, что я знал железо и асм ещё в 1997-м. То железо, что у меня было, и тот асм. Знал его достаточно нормально, чтобы сделать что-то на тот момент значительное.
Но раз вы такие борцуны за идеальное знание асма, уровень "бог", почему ещё не зачмурили yevrowl? Вы видели его игры? А почему ещё не заплевали Beaver'а? Его "Злые пещеры" - это ж крестики-нолики. Будьте уже последовательны. Ваша задача - избить ногами каждого форумчанина за то, что он по качеству игр недотягивает до Зоси.
Но нет. Вы пристали именно ко мне. Всё остальное в ваших мозгах как-то уживается. Вот почему я говорю - утырочные утырки. Гопота.
Бейсик подходит, ассемблер подходит, а всё остальное не подходит. Понятно.
- - - Добавлено - - -
А почему это тебя так беспокоит, жерри? Ты возбуждаешься и забываешь принять таблетки.
Просто они изначально и намеренно написаны а) для Радио-86РК, б) на Бейсике. Когда делали версию под спек, решено было не использовать графику, кроме "символа" главного героя. И да. Это не всем понравилось, но это было авторское решения (Бобра, как автора оригинала и Реобне, как основного автора порта емнип). Думаю, подобные игры можно писать на Обероне, при условии, что найдутся желающие.
вот сейчас на что ты так утырочно обижаешься? мой камент был на конкретное "неплохо", без супер-пуперов
ну это как в начальной школе азбуку выучить, а потом раздавать советы с важностью Льва Толстого
вопрос в том, почему ты с оберончиками лезешь в ЛЮБУЮ тему, в том числе за рамки их применимости
предлагал бы, скажем, для портирования пазлов - тогда вряд ли возражений нашлось бы много
но нет, блин, надо же утырочно подковать каждую блоху, а то что подковы лежат без дела
а кто скажет, что блоха тогда не сможет прыгать - тот "утырочный утырок и гопота"
:v2_dizzy_facepalm:
Всё верно. Но по мнению Летаргика, такие игры маздай.
А мне, кстати, "Злые пещеры" понравились. Люблю крестики-нолики, особенно переносимые.
Вопрос в другом. На форуме есть очень уважаемые спектрумисты, которые отнеслись ко мне очень доброжелательно. У меня возникли вопросы к Грачёву - я с ним пообщался. Также с Пыхониным, с Зиминым. Всё отлично. А эти ребята знают асм/железо уж во всяком случае не хуже знатной троицы. Не буду также перечислять остальных, с кем общение вполне адекватное.
Но вот эти трое господ, им что-то неймётся. Задрали своим очень ценным мнением, которое у них не спрашивали. Делай так, не делай сяк. Интересуйся ассемблером. Не пиши на Обероне. Я вообще-то последние несколько лет кормлюсь написанием софта на Обероне. А то, что это не подойдёт для Коммодора. Так есть масса других платформ, более подходящих для Оберона. Делов-то.
Между прочим, я написал Laser2! А это вам не хухры-мухры :)
Пусть попробуют сократить на пару тактов/байт, раз такие умные.
- - - Добавлено - - -
Для Shamus'а вполне хватило бы, кстати.
А ты со своими тараканами не лезешь в любую тему, где их и разводишь, не?
О, у вас всегда найдутся.
Это утырочно сформулировано и утырочно понято. Не спорю.
Видишь ли, джерри. Твоя деятельность по завоеванию Олимпа и добыванию эндорфинов не подразумевает привлечение на свою сторону единомышленников. А я изначально задумывал свою среду XDev как хорошо поддерживающую побольше ретро-платформ, что мне, очевидно, не по силам. А остальным не надо. Ну не надо и не надо, фиг с вами.
Как говорил мой приятель - нас посетили крупные эксперты в области ассемблера. 6502 понюхай сначала, потом учи, что делать.
Куда ты клонишь? Напомнить, как ты начинал на форуме? Хамство в ПМ, которое заканчивалась "Иди в ж.пу". Скриншотик переписки не сохранился, а то бы я твою память резко освежил.
Сам кашу заварил, сам и хлебай.
- - - Добавлено - - -
лолшто? sdcc путный код не выдает.
Ты видел от меня ничем не мотивированную агрессию в твой адрес? Да ты себя просто не видишь. От тебя тонны гумна. Рассказать как ты мою страничку ВК пришёл изгадил?
6502 это три восьмибитных регистра: X и Y и аккумулятор. 16-битные операции делаются по половинкам. Раз ты не можешь осилить плавучку для такого на асме, то надо найти дурачка, чтобы тот попытался, а потом его попинать, что ой всё плохо. В этом весь ты.
- - - Добавлено - - -
И, тем не менее, этого хватит. Shamus ведь. А про zsdcc что-нить слышали?
А вот PL/M или Millfork'а точно хватит.
Будешь фильтровать базар в следующий раз. Каписко?
Ты бы не скакал поверхностно, а почитал матчасть немного - реализация FP на 6502 использует 32бит, а не три 8-битных регистра.
"дурачок", который попытался исправить Millfork, самоустранился. Да и какая тебе разница? Тебе оберон мил и ничего другого.
Это ты будешь. Впрочем, это выше твоих сил.
Пофиг.
А почему ты не заюзаешь что-то из готового? Не верится, что никто ничего не написал.
А зачем именно впихивать плавучку в язык и компилятор? Библиотечно нельзя заюзать?
Раз самоустранился, значит не такой уж и дурачок. Умный чел. Не стал тратить своё ценное время.
Именно. Тем более, компилер Millfork'а на языке Scala. Поверх JVM. Бутерброд гибридный. Аж страшно.
- - - Добавлено - - -
Слушай, а ведь кто-то когда-то сделал интерпретатор FOCAL для 6502, полностью на плавучке. Небось еле ползает.
И заботливые борцуны не пришли ему рассказать как это всё ой плохо.
BolderDash тоже. И что?
Хорош спорить, мы всё равно на днях опять отстали. Вот что нашел только что:
Кто-нибудь смотрел уже? А может уже и написал что-то? :v2_dizzy_roll:Цитата:
PASTA/80 — это современный кросс-компилятор языка Паскаль, выпущенный в конце 2025 года (версия 1.0 ожидалась к концу 2025 года) и предназначенный для разработки программ под процессоры Z80.
Основные характеристики
Совместимость: Проект является функциональным клоном легендарного Turbo Pascal 3.0.
Целевые платформы: Компилятор генерирует машинный код для классических и современных систем на базе Z80:
ZX Spectrum 48K / 128K.
ZX Spectrum Next (разработка началась именно после получения автором этой машины).
Системы под управлением CP/M.
Технические особенности:
Однопроходный компилятор: Использует метод рекурсивного спуска (в духе Никлауса Вирта) и генерирует код «на лету» без построения промежуточного дерева синтаксиса, что обеспечивает очень высокую скорость сборки.
Поддержка оверлеев: Позволяет создавать крупные программы, превышающие объем оперативной памяти 8-битных машин.
Интеграция: Поддерживает вставки на ассемблере (inline assembly) и базовую отладку.
Лицензия: Распространяется под лицензией GPL с исключением для линковки, что позволяет свободно распространять скомпилированные бинарные файлы.
Использование
PASTA/80 работает как консольная утилита на современных ПК, но имеет минималистичный пользовательский интерфейс, напоминающий классическую среду Turbo Pascal. Он также может интегрироваться с Visual Studio Code, используя его встроенный терминал и редактор.
Автор проекта — Йорг Плойманн (Jörg Pleumann). На начало 2026 года компилятор считается стабильным и активно используется сообществом для создания новых игр и инструментов для ретро-компьютеров.
Andrew771, Ну кто кроме тебя то?
скомпилировал, дальше сами:
https://disk.yandex.ru/d/zM82lGjF9j88eA
64 битная версия, у меня не работает.
Ты будешь спорить с тем, что это динамическая игра?
А почему я должен делать то, что нравится тебе? А не наоборот? Пустой разговор, аргументов у тебя нет. Dixi.
- - - Добавлено - - -
Туп в чём? В той нише, где ты царь-царь? А тебе не приходило в твою утырочную голову, что я могу разбираться в куче вещей, где ты вообще ни в зуб ногой? Не говоря уже о том, что до такого стиля общения, как у тебя, многие на форуме не опустились бы. Что прекрасно тебя характеризует. Если человек гумно, то мне уже не очень интересно чего он там делает и каким способом надувает щёки для самовосхваления.
Слушай, жерри. Я не предлагаю писать вывод спрайтов на Обероне или на PL/M. И никогда не предлагал. Но для обсчёта простой логики Shamus - скорости вполне хватит. И если бы ты не был так зациклен на своём стиле разработки, а для разнообразия изредка смотрел бы и по сторонам, то может и захотел бы попробовать что-то новое.
сорян, что-то в прошлый раз не запустился, а теперь запустился просто сказал, что pasta.cfg not found.
Кстати, PL/M-80 имеет крутую оптимизацию для 8080( для операционок ISIS-II и RMX-80- эта версия впрочем недоступна), но версии для z80 с расширенными регистрами в природе не существует,
или утрачена. Но он очень старый(исходники на FORTRAN тупо сконвертированные на С) и для использования для ZX-Spectrum пришлось ведь исхищряться. Не говоря уже о том, что никаких библиотек не создано для ZX Spectrum.
- - - Добавлено - - -
на PL/M-80 можно что угодно. Там и макросы, и структуры, и реентерабельность. Работает с памятью и с вводом/выводом. Только у нас его никто не знает - так как это инструмент использовался в СССР до 1986 года, а потом все перешли на С.
Для TR-DOS его не использовали, только для ISIS-II и, может быть, для CP/M. А был даже и PL/M-86.
Это верно. К сожалению.
То, с чем работает Андрей Немо - это сконвертированный с PL/M на Си компилятор версии 4.0. Не с Фортрана. А версия на Фортране более древняя.
Есть наработки в ZXDev, их можно заимствовать. Вывод спрайтов, тайлов, плееры и прочее. Не говорю, что всё оригинальное. Кое-что и позаимствовано. Но ассемблер есть ассемблер. С PL/M отлично стыкуется.
- - - Добавлено - - -
Неужто Shamus настолько динамичный? Хм.
Ладно. Тогда давайте на ассемблере. Потом захотите портировать на Вектор, будет интересно. Потом на Корвет. Потом на Специалист. Потом на ПК8000. Если руки дойдут. Обычный ассемблерный стиль.
Так простую-то логику и на асме сделать несложно будет. И на отрисовку спрайтов тактов больше останется. И не нужно будет зря тратить время на изучение полумёртвых языков, освоение избыточных инструментов и стыковку разнородных частей проекта. Если бы ты не был так зациклен на своих оберончиках, то давно и сам бы это сообразил.
а оптимизаторы оригинальные там остались? Если да, хорошо бы выбор платформы внутрь компилятора убрать. Ну или в макросы. Худший вариант в библиотеки. То, что я попробовал в свое время было с "внешними костылями".
- - - Добавлено - - -
врачи латынь учат? историки латынь и древнегреческий? 8-битники тоже полумертвые? Тогда гармония. Например, помнить, у какого компа на 8080 где CO и CI уже запарно. А уж как у кого графика и музон устроены - тем паче. Может конечно DS в помощь - но я не пробовал.
Ну вот что поделать, мне именно такое интересно. :) Вам Shamus и коронарные потуги, мне оберончики.
- - - Добавлено - - -
Конечно остались. Код очень приличный, Си и рядом не валялся. Я почему смело советую PL/M. Это отлично, если не хочется сильно много писать на асме. Тоже способ разработки
Так а какой там выбор платформы в компиляторе? Народ же уже заточил на Пальмиру и ПК8000. Так что не всё так плохо. :)
Кстати, да. Оберон это основы. Чистый, минимальный язык. Если надо расширений - их завезли в мой собственный диалект Оберон-3, адаптированный для разработки под ретро-платформы.
они учат, без чего им НЕ ОБОЙТИСЬ - то есть в профессиональной сфере языки живы
тут они как раз скорей аналог ассемблера - понимать классические исходники и новые открытия совершать
совсем мёртвые, но потом восставшие из могил пожирать мозги любителей ретро :D
если какбэ современному языку мучительно ищут место хоть в ретро-нише - это не особо льстит языку
Сформулировано утырочно.
Надо так: поскольку на Обероне прикольно писать, дай напишу на нём и для ретро и посмотрю что получится.
А мучительно - это когда ты мучительно ищешь корону на своей голове, хотя её видно только самому соискателю. Граничит с паранойей.
- - - Добавлено - - -
Ссылку на что? На тулчейн? Вот:
https://github.com/MrDemonid/PL-M-80-Tools
Игры:
https://github.com/MrDemonid/Dvigalka-PK8000
https://github.com/MrDemonid/Bolder-Dash-PK8000
https://github.com/vpyk/palmira-stuff/tree/main/games
- - - Добавлено - - -
https://zx.oberon.org/forum/viewtopic.php?f=88&t=305
- - - Добавлено - - -
Вы, святая троица. Что вы так вцепились в ассемблер и свои игры/демки? Мир ретро-разработки многогранен, он отнюдь не ограничивается победами на конкурсах и высмеиванием всех, кто "не дотягивает". Здесь полно нелепых поделок, навеянных книгой "Как разработать игру для ZX Spectrum", в конце концов, есть много реализаций ЯП для разработки под ретро-платформы. Могут быть эти ЯП областью интересов? Могут. Не, давай ассемблер-игры. Вот мы смогли, а ты нет. Делай как мы. Но я не такой же, как вы. И никогда таким не буду.
Я, в конце концов, даже не против ассемблера, а против его традиционного представления. Ещё во время разработки SeaFight я интуитивно понимал, что мне хочется писать HL+HL, а не ADD HL, HL. Ну вот прелесть же (язык А.Морозова для PDP-11):
Почему вы не выработали что-то подобное, а продолжаете пользоваться МЕТКА: КОМАНДА; КОММЕНТАРИЙ? Это же отстойно. Вам нравятся исходники на 400 Кб, где чёрт ногу сломит? Вам нравится, что кусок кода на 50 строк надо разбирать полчаса? Та вы первые, написавшие тонны кода, должны понять всю неестественность такого подхода.Код:ORG 01000;
EntryPoint:
// Инициализируем стек
SP = #16384;
// Включаем режим экрана 256x256
R0 = #0233;
EMT 016;
// Отключение курсора
R0 = #0232;
EMT 016;
// Выключаем прерывание клавиатуры
@#0177660 = #64;
// Очистка экрана
clearScreen();
x = #0;
y = #0;
dx = #1 ;
dy = #1 ;
p = #0 ;
do {
// Получаем координаты для вывода на экран
R0 = #16385;
R1 = x >> #2;
R0 = R0 + R1;
R1 = y << #6;
R0 = R0 + R1;
// Рисуем квадрат текущим цветом
R2 = #32;
do {
R3 = p ;
(R0)+ = colors(R3);
(R0)+ = colors(R3);
(R0)+ = colors(R3);
(R0)+ = colors(R3);
R0+=#56 ;
} while(R2--);
// Двигаем квадрат
if (dx==#1) { x+=#4 ; } else { x-=#4 ; };
if (dy==#1) { y+=#4 ; } else { y-=#4 ; };
// Отражение от стен
if (x==#220) dx=#0 ;
if (y==#200) dy=#0 ;
if (x==#0) dx=#1 ;
if (y==#0) dy=#1 ;
// Смена цвета по кругу
cnt++ ;
if (cnt==#60) {
cnt=#0 ;
p++;
if (p==#6) p=#0 ;
};
// Задержка
R2 = #2000 ;
do {
ASM NOP ;
} while (R2--) ;
} while (#128 & @#0177660 == #0);
ASM HALT ;
clearScreen:
R0 = #16385;
R2 = #2048;
do {
(R0)+ = #0;
(R0)+ = #0;
(R0)+ = #0;
(R0)+ = #0;
} while(R2--);
return;
p: dw 0;
cnt: dw 0;
x: dw 0;
y: dw 0;
dx: dw 0;
dy: dw 0;
colors: dw 65535,43690,21845;
endOfROM:
make_bk0010_rom "bk0010_demo.bin", EntryPoint, endOfROM;
Только не надо про макро-асмы и прочие ужасмы. Там та же муть, не решающая основные проблемы - громоздкость, маловыразительность, малопонятность. А код, в основном, читают, а не пишут.
Если кому-то интересно, я подрезюмирую находки, которые мне попадались на этом поприще.
ну и писал бы, чем вот так без конца утырочно галлюцинировать о коронах
нахрена? что за мания вводить утырочные лишние сущности?
восьмибитный асм тем и хорош, что выучить и помнить надо очень мало, дальше можно просто свободно думать
макрами накрутить абстракций сколько захочешь, "прелести" на самом низком уровне бесполезны
ну, не надо, так не надо - если ты опять что-то ниасилил - твои проблемы :p
это верно лишь для современного bloatware на огромном зоопарке конфигураций, которое недоделанным выпускают, а потом "поддерживают" годами
в ретро и проекты проще, и совместимость лучше, и возможности отладки намного выше - софт к законченному виду быстро приводится
Я бы и не галлюцинировал, но вот:
"Я асилил, ты ниасилил, я в короне, ты не в короне". В конце концов, кому здесь папа купит мопед.
Примерно так и думал, что ты не поймёшь. Ну сиди, дальше ройся в песочке.
Код:PROCEDURE MULBLK
BEGIN
LET R0 := BLKBEG
LET R2 := CAPTR
LET R3 := ACTCNT
THRU R3 ; blocks count
; INIT
LET R4 := (R2) ; block words count
IF RESULT IS NE THEN
LET R5 := 2(R2) ; first word command pointer
THRU R4
LET (R0)+ := (R5)+ ; copy next block
END
ELSE
LET (R0)+ := #NOP
END
IF APHASE NE #0 ; if not init calculating
; ACTION
LET R4 := 4(R2)
IF RESULT IS NE THEN
LET R5 := 6(R2) ; first word command pointer
THRU R4
LET (R0)+ := (R5)+ ; copy next block
END
END
END
END
LET (R0)+ := (PC) ; and return at end
RETURN
END MULBLK
Отлично, отлично. А где тонны софта на этом синтаксисе? Почему продолжают по старинке кодить? Удобнее наверное?
- - - Добавлено - - -
Нет, Летаргик. Многие "асилили", но не кичатся этим и не тычут пальцем, понимая, что все люди разные. Кому что легче даётся. Я уверен, что ты мой рабочий софт бы не вытянул. Тем более, со своими закидонами. Вы, кодеры ретро-маньяки, очень часто не видите дальшесвоего носаассемблера.
Короной мне кажется не профессионализм и мастерство. А именно вот это тыканье. Я крутой. Ты некрутой. Иди делай как я. Это мерзко.