31 lines
424 B
Z80 Assembly
31 lines
424 B
Z80 Assembly
InString:
|
|
;input: hl = pointer to string 1
|
|
; de = pointer to string 2
|
|
; assumes len(hl) <= len(de)
|
|
; output in BC
|
|
;clobbers: ix
|
|
push de
|
|
pop ix ;back up de into ix
|
|
ld bc,0 ;our return value
|
|
InString_again:
|
|
ld a,(hl)
|
|
or a
|
|
ret z
|
|
|
|
ld a,(de)
|
|
or a
|
|
ret z
|
|
|
|
cp (hl)
|
|
jr nz,InString_noMatch
|
|
inc de
|
|
jr InString_overhead
|
|
|
|
InString_noMatch:
|
|
push ix
|
|
pop de
|
|
inc bc
|
|
InString_overhead:
|
|
inc hl
|
|
jr InString_again
|