37 lines
411 B
ArmAsm
37 lines
411 B
ArmAsm
|
.define .set2
|
||
|
|
||
|
! Create 16 bits set with one bit on
|
||
|
! Expects in de-reg: bit number
|
||
|
! Yields in de-reg: resulting set
|
||
|
|
||
|
.set2: mov a,d !trap if bit number >= 16
|
||
|
ora a
|
||
|
cnz eset
|
||
|
mov a,e
|
||
|
cpi 16
|
||
|
cnc eset
|
||
|
|
||
|
pop h
|
||
|
shld .retadr
|
||
|
mov a,e
|
||
|
ani 7
|
||
|
mov d,a
|
||
|
mvi a,1
|
||
|
1: dcr d
|
||
|
jm 2f
|
||
|
rlc
|
||
|
jmp 1b
|
||
|
2: mov d,a
|
||
|
mov a,e
|
||
|
ani 8
|
||
|
jnz 3f ! jump if bit 3 is set
|
||
|
|
||
|
mov e,d
|
||
|
mvi d,0
|
||
|
jmp 4f
|
||
|
|
||
|
3: mvi e,0
|
||
|
|
||
|
4: lhld .retadr
|
||
|
pchl
|