ссылку можно?
они учат, без чего им НЕ ОБОЙТИСЬ - то есть в профессиональной сфере языки живы
тут они как раз скорей аналог ассемблера - понимать классические исходники и новые открытия совершать
совсем мёртвые, но потом восставшие из могил пожирать мозги любителей ретро :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
Отлично, отлично. А где тонны софта на этом синтаксисе? Почему продолжают по старинке кодить? Удобнее наверное?
- - - Добавлено - - -
Нет, Летаргик. Многие "асилили", но не кичатся этим и не тычут пальцем, понимая, что все люди разные. Кому что легче даётся. Я уверен, что ты мой рабочий софт бы не вытянул. Тем более, со своими закидонами. Вы, кодеры ретро-маньяки, очень часто не видите дальшесвоего носаассемблера.
Короной мне кажется не профессионализм и мастерство. А именно вот это тыканье. Я крутой. Ты некрутой. Иди делай как я. Это мерзко.