И стек запилите, это просто. Две команды - push и pop. Зато возможностей добавится много, удобнее станет писать большие программы.
И стек запилите, это просто. Две команды - push и pop. Зато возможностей добавится много, удобнее станет писать большие программы.
О синхронизации с вертикальной разверткой не забыли?
Команда HALT между кадрами есть?
---------- Post added at 23:24 ---------- Previous post was at 23:19 ----------
Мне кажется, лучше сделать несколько точек входа для разных режимов работы. А то у вас будет общая точка входа, потом проверка всех этих флажков (такты, такты!), а потом код будет разветвляться в зависимости от значения флажков. А если вы сделаете несколько точек входа - то не надо будет проверять флажки и делать условные переходы, выиграете в скорости.
я хитрее делаю. Флажки в опциях кросскомпилятора, а не в ассемблере. В зависимости от них в код добавляется/выбрасывается нужное/ненужное. Изначально все возможности прописаны в библиотеке.
нет, до такого не дошел. Процедуры вывода спрайтов стандартные.
Жду не дождусь обновы. Аж печёт в одном месте.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Program EX4;
var
x,y,a1,a2: byte;
begin
x:=0;
y:=0;
readkey(a1,a2);
if a1=79 then x:=x+1;
if a1=80 then x:=x-1;
PutSpriteClear(sprite01,x,y);
end.
SPRITE01
DEFB 41
DEFB 0,1,1, 0,0,0,0,3,7,63,126
DEFB 0,2,1, 0,0,15,127,255,252,0,0
DEFB 0,3,1, 0,0,255,255,159,24,24,0
DEFB 0,4,1, 0,0,0,240,254,63,63,49
DEFB 0,5,1, 0,0,0,0,0,128,192,248
DEFB 1,0,1, 0,1,3,7,15,14,62,62
DEFB 1,1,1, 240,224,224,128,0,62,63,15
DEFB 1,2,1, 0,0,0,0,0,0,128,192
DEFB 1,3,1, 0,0,0,0,0,0,0,1
DEFB 1,4,1, 0,1,1,0,0,31,254,240
DEFB 1,5,1, 248,252,223,15,31,31,1,1
DEFB 1,6,1, 0,0,128,128,128,128,192,224
DEFB 2,0,1, 56,56,60,60,28,12,12,14
DEFB 2,1,1, 63,113,255,255,249,255,255,249
DEFB 2,2,1, 192,224,224,243,247,255,239,238
DEFB 2,3,1, 1,0,1,1,3,3,3,1
DEFB 2,4,1, 158,255,231,255,255,224,255,255
DEFB 2,5,1, 3,129,128,192,192,192,192,193
DEFB 2,6,1, 224,224,248,120,120,248,240,192
DEFB 3,0,1, 6,7,3,1,0,0,0,0
DEFB 3,1,1, 127,63,128,224,240,124,62,15
DEFB 3,2,1, 206,156,63,63,15,0,0,224
DEFB 3,3,1, 1,0,128,192,192,0,0,0
DEFB 3,4,1, 195,255,126,0,0,0,1,15
DEFB 3,5,1, 193,131,7,15,62,124,248,224
DEFB 3,6,1, 192,128,0,0,0,0,0,0
DEFB 4,1,1, 3,0,1,1,3,3,7,7
DEFB 4,2,1, 254,255,199,199,131,131,13,31
DEFB 4,3,1, 0,255,255,227,227,225,255,255
DEFB 4,4,1, 255,252,252,252,254,254,254,254
DEFB 5,1,1, 7,6,6,7,7,7,7,7
DEFB 5,2,1, 31,31,62,188,248,240,240,240
DEFB 5,3,1, 227,225,0,0,0,0,0,0
DEFB 5,4,1, 254,254,63,31,31,31,30,24
DEFB 6,1,1, 3,0,0,0,0,0,0,0
DEFB 6,2,1, 224,224,224,224,64,192,192,64
DEFB 6,3,1, 6,14,12,28,28,24,24,31
DEFB 6,4,1, 24,24,24,24,24,24,24,252
DEFB 7,2,1, 240,255,255,248,126,31,7,0
DEFB 7,3,1, 63,255,255,7,15,255,248,0
DEFB 7,4,1, 254,206,14,255,254,0,0,0
куда поставить изначальные координаты спрайта, что бы он клаву слушать начал?
Изготовление Картриджей для Денди 1-8 игровки с меню. (0,1,2,3,4,7,71 мапперы), для Сеги 1-8
https://vk.com/retronicaru
Угу, вот так:
Program EX4;
var
x,y,a1,a2: byte;
begin
x:=0;
y:=0;
while 1<2 do {бесконечный цикл, условие всегда выполняется}
begin
readkey(a1,a2);
if a1=79 then x:=x+1;
if a1=80 then x:=x-1;
PutSpriteClear(sprite01,x,y);
end;
end.
SPRITE01
DEFB 41
DEFB 0,1,1, 0,0,0,0,3,7,63,126
DEFB 0,2,1, 0,0,15,127,255,252,0,0
DEFB 0,3,1, 0,0,255,255,159,24,24,0
DEFB 0,4,1, 0,0,0,240,254,63,63,49
DEFB 0,5,1, 0,0,0,0,0,128,192,248
DEFB 1,0,1, 0,1,3,7,15,14,62,62
DEFB 1,1,1, 240,224,224,128,0,62,63,15
DEFB 1,2,1, 0,0,0,0,0,0,128,192
DEFB 1,3,1, 0,0,0,0,0,0,0,1
DEFB 1,4,1, 0,1,1,0,0,31,254,240
DEFB 1,5,1, 248,252,223,15,31,31,1,1
DEFB 1,6,1, 0,0,128,128,128,128,192,224
DEFB 2,0,1, 56,56,60,60,28,12,12,14
DEFB 2,1,1, 63,113,255,255,249,255,255,249
DEFB 2,2,1, 192,224,224,243,247,255,239,238
DEFB 2,3,1, 1,0,1,1,3,3,3,1
DEFB 2,4,1, 158,255,231,255,255,224,255,255
DEFB 2,5,1, 3,129,128,192,192,192,192,193
DEFB 2,6,1, 224,224,248,120,120,248,240,192
DEFB 3,0,1, 6,7,3,1,0,0,0,0
DEFB 3,1,1, 127,63,128,224,240,124,62,15
DEFB 3,2,1, 206,156,63,63,15,0,0,224
DEFB 3,3,1, 1,0,128,192,192,0,0,0
DEFB 3,4,1, 195,255,126,0,0,0,1,15
DEFB 3,5,1, 193,131,7,15,62,124,248,224
DEFB 3,6,1, 192,128,0,0,0,0,0,0
DEFB 4,1,1, 3,0,1,1,3,3,7,7
DEFB 4,2,1, 254,255,199,199,131,131,13,31
DEFB 4,3,1, 0,255,255,227,227,225,255,255
DEFB 4,4,1, 255,252,252,252,254,254,254,254
DEFB 5,1,1, 7,6,6,7,7,7,7,7
DEFB 5,2,1, 31,31,62,188,248,240,240,240
DEFB 5,3,1, 227,225,0,0,0,0,0,0
DEFB 5,4,1, 254,254,63,31,31,31,30,24
DEFB 6,1,1, 3,0,0,0,0,0,0,0
DEFB 6,2,1, 224,224,224,224,64,192,192,64
DEFB 6,3,1, 6,14,12,28,28,24,24,31
DEFB 6,4,1, 24,24,24,24,24,24,24,252
DEFB 7,2,1, 240,255,255,248,126,31,7,0
DEFB 7,3,1, 63,255,255,7,15,255,248,0
DEFB 7,4,1, 254,206,14,255,254,0,0,0
Кстати, обнаружил ошибку в компиле - цикл REPEAT неправильно работает, исправлю!!!
---------- Post added at 23:05 ---------- Previous post was at 23:03 ----------
Пока тестовая бета-версия компиля, еще могут быть глюки.
Последний раз редактировалось Andrew771; 14.04.2015 в 23:08.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)