1) Если модуль это просто набор подпрограмм то пишешь их в отдельный файл и include
2) Для массивов удобнее всего использовать индексные регистры ix,iy. С их помощью можно обращаться к элементам в диапазоне +-128 байтов. Ну и смотря что ты с массивом хочешь сделать. Например я в игрухах делаю примерно так:
При вызове doEnemies каждый враг из списка сдвинется вниз на 1 и его энергия уменьшиться на 1 :)
enemiesList
;один враг - 3 байта
;0,1 байты координаты y,x
;2 энергия
;описываем 4 врага
defb 04,07,64
defb 14,21,64
defb 06,11,64
defb 06,04,64
defb 255; 255 - конец списка врагов
doEnemies
;указатель на начало списка врагов
ld ix,enemiesList
;размер структуры
ld bc,3
doOneEnemy
;проверяем не дошли ли мы до конца списка
ld a,(ix+4);один враг 3 байта
cp 255; сравниваем с 255
ret z ;возвращаемся если 255
;сдвигаем каждого врага по y на единичку
ld a,(ix);нулевой байт - у координата
dec a ;уменьшаем на 1
ld (ix),a ;сохраняем
;и уменьшаем энергию на 1
ld a,(ix+2)
dec a ;уменьшаем на 1
ld (ix+2),a ;сохраняем
add ix,bc ;сдвигаем указатель на размер структуры
jr doOneEnemy ;переходим к следующему врагу
incbin "..." — инклудит бинарные данные
include "..." — инклудит другой файл асм
в бинарниках у тебя может быть картинка, музыка, что-то еще (прекалк)
ну а в амсах могут быть отдельные процедуры, которые не стоит копировать из проекта в проект, а проще приинклудить из какой-то общей папки
Меня не устроил билдер. встроенный в саблим-плагин. Корячить готовый продукт не хотелось, по-быстрому накидал свой. По F7 собираю проект и сразу запускаю, прямо из саблима.
Меня тормозит сейчас вот такой список насущных вопросов:
1) Как разбить код на модули? Т.е., я понимаю, что там есть какая-то система подпрограмм, но я не допер, как с этим работать.
2) Как хранить и работать с кусками кода, например, массивы. Это вообще возможно?) Я понимаю, что из «переменных» у нас только регистры, но должен же быть «precalculated» способ.
слона-то я и не приметил!)))
этож красивее и умнее можно сделать!))
как минимум проверять на маке. бат и запускать его если имеется, иначе по дефолту сделать как у меня.
/me потирает руки
2) Для массивов удобнее всего использовать индексные регистры ix,iy. С их помощью можно обращаться к элементам в диапазоне +-128 байтов. Ну и смотря что ты с массивом хочешь сделать. Например я в игрухах делаю примерно так:
При вызове doEnemies каждый враг из списка сдвинется вниз на 1 и его энергия уменьшиться на 1 :)
в таком случае обратиться к меткам модуля можно через префикс mydemo, например CALL mydemo.somemethod
include "..." — инклудит другой файл асм
в бинарниках у тебя может быть картинка, музыка, что-то еще (прекалк)
ну а в амсах могут быть отдельные процедуры, которые не стоит копировать из проекта в проект, а проще приинклудить из какой-то общей папки
1) Как разбить код на модули? Т.е., я понимаю, что там есть какая-то система подпрограмм, но я не допер, как с этим работать.
2) Как хранить и работать с кусками кода, например, массивы. Это вообще возможно?) Я понимаю, что из «переменных» у нас только регистры, но должен же быть «precalculated» способ.
Это что навскидку тормозит
этож красивее и умнее можно сделать!))
как минимум проверять на маке. бат и запускать его если имеется, иначе по дефолту сделать как у меня.
/me потирает руки
Z80Asm > Settings > Build script (win)
тут и батничек уже готовый
но это мелочи всё.
я говорю о том что в сублим текст с плагом под з80 эти вопросы (батников) уже решены.