loop
REP 16
PUSH HL,DE
ENDREP
EXX
djnz loop
Вид для печати
loop
REP 16
PUSH HL,DE
ENDREP
EXX
djnz loop
и как из этого выйдет ромб?
Ах тебе ромб нужен?
Тогда я тебя не понял. :)
Еденичка это центр? Тебе нужно со смещённым центром, или в центре квадратик 2х2?
---------- Post added at 19:30 ---------- Previous post was at 19:28 ----------
Неясно.
Я решил, что тебе нужны чередующиеся волны.
Ты хоть-бы свой *****код приложил, или цифр дал больше, с чётными размерами...
denpopov,
заполняешь массив 0
в нужное место втыкаешь 1
потом делаешь скан таблицы и если находишь N то по координатам nn-32,nn+32,nn-1,nn+1 втыкаешь N+1 (если там 0)
повторяешь пока не закончится место.
если хочешь сгенерить в процессе асемблирования то ест еще такой вариант
если нужно чтобы еще ромб был поровнее то надо с db что то делатьКод:row=15
dup 12
count=row
dup 15
db count
count=count-1
edup
dup 17
db count
count=count+1
edup
row=row+1
edup
типа
Код:db count*(count<15)
Сделал за 5300 тактов. С помощью PUSH.
Код для EmuZWin:
denpopov, так ты хотел?Код:org 30000
entrypoint $
DI
IM 0
LD HL,$4000
LD (HL),$FF
LD DE,$4001
LD BC,$17FF
LDIR
LD HL,$0001
LD DE,$0203
EXX
LD HL,$0100
LD DE,$0302
MAINLOOP
LD A,7
OUT ($FE),A
LD SP,$4000+$1800+$300
LD B,6
LOOP1
DUP 4
PUSH HL
PUSH DE
ENDDUP
EXX
INC SP
DUP 4
PUSH DE
PUSH HL
ENDDUP
PUSH DE
EXX
INC SP
LD A,L
PUSH AF
INC SP
DUP 4
PUSH DE
PUSH HL
ENDDUP
INC SP
EX DE,HL
EXX
DUP 4
PUSH DE
PUSH HL
ENDDUP
EX DE,HL
EXX
DJNZ LOOP1
LD B,6
LOOP2
DUP 4
PUSH DE
PUSH HL
ENDDUP
EXX
INC SP
DUP 4
PUSH HL
PUSH DE
ENDDUP
PUSH HL
EXX
INC SP
LD A,L
PUSH AF
INC SP
DUP 4
PUSH DE
PUSH HL
ENDDUP
INC SP
EX DE,HL
EXX
DUP 4
PUSH DE
PUSH HL
ENDDUP
EX DE,HL
EXX
DJNZ LOOP2
LD SP,$FFFF
LD A,0
OUT ($FE),A
EI
NOP
NOP
NOP
HALT
HALT
HALT
DI
INC H
RES 2,H
INC L
RES 2,L
INC D
RES 2,D
INC E
RES 2,E
EXX
INC H
RES 2,H
INC L
RES 2,L
INC D
RES 2,D
INC E
RES 2,E
EXX
JP MAINLOOP