Ма-ма-а-а-а-а!!! Я люблю ААА!!!
Ма-ма-а-а-а-а!!! Я люблю ААА!!!
да, знал, писал при этом всякие хреновинки даже, они работали. но как выводить спрайт, как делать скролл - ваще не понимал. я не понимал принцип их работы! а вот когда набрал примеры, стал делать с ними эксперименты - тогда и стало все ясно, даже тоже делал мегадему жалко, что её ни у кого не осталось... но факт в том, что не обязательно хорошо шарить в асме, чтоб писать простые демки.
кстати! еще до того как я понял, я уже довольно легко тырил всякие эффекты из чужих прог не вдаваясь в то, как они работают так что к чертям теорию, больше практики!
с тем же успехом можно писать эту формулу на бейсике. ибо только профессиональный кодинг позволит сделать быструю математику.
+1000. Чтобы изучить АСМ начал писать игру. Как писал? Искал по спековским журналам статьи и добавлял интересный код себе (понимания системы: CALL - "вызов", и RET - "выход" было достаточно). Например сделал вывод меню. Далее по меню был вызов главной подпрограммы игрового процесса, куда вставил вылетающие буквы и очистку экрана... Далее нашел и скопировал процедуру вывода спрайтов, хоть я ее совершенно не понимал. Разобрался как хранят спрайты и пошло-поехало!
ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO
Ребята, а кто знает все директивы ассемблера в ZXSpin? У меня такая проблема: мне надо задать последовательность из n байт (1, 1, 1, 2, etc...), а я не знаю как это сделать. Потому как набивать
db 1
db 1
db 1
db 2
etc...
очень "муторно". Буду благодарен за все директивы, какие знаете. Вроде неплохой редактор исходного кода, с подсветкой синтаксиса и при ошибке курсор встаёт на строку с оной. А такие мелочи, как отсутствие help'а, расстраивают.
Последний раз редактировалось snb; 30.06.2009 в 15:21. Причина: исправления
Скорее всего:
db 1,1,1,2,2,2,...
или
ds 1,100
Если так "запали" на встроенные в эмуляторы ассемблеры, то советую посмотреть на реализацию оного в EmuZWin.
ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO
Да все там просто как божий день!
Директивы там совершенно обычные, как и в любом ассемблере.
Я в детстве пользовался Zeus'ом, когда начал писать в редакторе эмулятора Spin, попробовал использовать по памяти, все прокатило в легкую... Эти директивы описаны в книге "программирование в машинных кодах и на языке ассемблера".
Ссылка на книгу вверху, страница 163.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я не то что "запал", а просто мне с текстом удобнее в винде работать - copy/cut/paste, выделение мышью и прочие радости. А компилить хочу сразу в бинарник, при этом если возникнет ошибка, то я хочу знать где и какая. Может ещё какое средство посоветуете? Буду весьма признателен ("z80 pc assembler" и вот эту связку не предлагать) .
Произвести математические операции, в частности, рассчитать тригонометрические функции можно, используя калькулятор ПЗУ, который и вправду один и тот же, как и в бейсике. Только вот пользоваться этим калькулятором можно по-разному. Не забывай, тормоза в бейсике при движении графики, главным образом, связаны с медленными циклами, а не с медленным вычислением встроенного калькулятора. Используя ассемблер, ты можешь сделать быстрые циклы, что и определит качество (плавность) движения спрайта или преобразование геометрической фигуры.
Я сомневаюсь, что какой-то там нереальный кодер сможет написать программы вычислений всяких функций намного оптимальнее, чем они написаны в калькуляторе ПЗУ. Большого прироста производительности он не получит. Другой разговор, что может быть можно обойтись иными методами, например, известны простые операции умножения на два путем сдвига битов в регистре и т.п.. Но сложные тригонометрические функции, ты вряд ли сможешь сделать лучше.
В продолжение предыдущего поста: а как зарезервировать n байт, заполненых значением #NN? Не нашёл я в книжке такой директивы
Повторю, у тебя просто не было опыта. Если бы ты не знал архитектуру процессора, его регистры, их назначение, некоторые стандартные приемы, организацию памяти Спектрума, двоичную и шестнадцатеричную систему исчисления, то вряд ли у тебя что-то вышло.
Никаких скролов ты бы не получил. Необходимый минимум для начала работы - это 1 раздел книги, которую я приводил. После прочтения этого раздела можно вполне приступать к написанию программы.
---------- Post added at 17:53 ---------- Previous post was at 17:45 ----------
Очень плохо, это, наверное, все из-за пренебрежительного отношения к теории.
Страница 163.
Вот пример.
ORG 30000
DEFB FF$, FF$
DEWB 0000
DEFB "123" ; это текст
Результат
30000 FF$
30001 FF$
30002 00$
30003 00$
30004 31$
30005 32$
30006 33$
При правильном написании директивы, она подсветится синим цветом.
Последний раз редактировалось Addison; 22.07.2009 в 03:01.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)