Код:
org 0
mvi c,1fh
call prn_symb
mvi b, 0
mvi c, 1
lxi h,77c2h
shld XY
start:
lhld XY
xchg
call coord
call cmpHLDE
jz start1
mvi m, '0'
shld XY
xchg
mvi m, ' '
start1:
call keyb_ask_key
cpi 0FFh
jz start1
mov e,a
cpi up
jnz ChkDown
dcr c
jnz ChkDown
inr c
ChkDown:
cpi down
jnz ChkLeft
mvi a,26
cmp c
jz ChkLeft
inr c
ChkLeft:
mov a,e
cpi left
jnz ChkRight
dcr b
jp ChkRight
inr b
ChkRight:
cpi right
jnz ChkEnter
mvi a,64
cmp b
jz ChkEnter
inr b
ChkEnter:
mov a,e
cpi enter
jz prompt
call delay
jmp start
coord: push d ;B это x C это y
push b
lxi h,77c2h
lxi d,78
coord1: dad d
dcr c
jnz coord1
mov e,b
dad d
pop b
pop d
ret
delay: push b
lxi b,0400h
delay1: dcr c
jnz delay1
dcr b
jnz delay1
pop b
ret
cmpHLDE:
mov a,l
sub e
rnz
mov a,h
sbb d
ret
XY: dw 0