mirror of https://github.com/zxdos/zxuno.git
45 lines
991 B
NASM
45 lines
991 B
NASM
; SPDX-FileCopyrightText: Copyright (C) 2019 Alexander Sharikhin
|
|
;
|
|
; SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
; Pushes A to ring buffer
|
|
pushRing
|
|
push af
|
|
ld b, 32 : ld hl, ring_buffer + 1 : ld de, ring_buffer
|
|
ringL
|
|
ld a, (hl) : ld (de), a : inc hl : inc de : djnz ringL
|
|
pop af
|
|
ld hl, ring_buffer + 31 : ld (hl), a
|
|
ret
|
|
|
|
; HL - Compare string(null terminated)
|
|
; A - 0 NOT Found
|
|
; 1 Found
|
|
searchRing:
|
|
ld b, 0 : push hl
|
|
serlp:
|
|
ld a, (hl) : inc hl : inc b : and a : jp nz, serlp
|
|
dec b : pop hl : push bc : push hl
|
|
SRWork:
|
|
pop hl
|
|
ld de, ring_buffer + 32
|
|
srcLp
|
|
dec de : djnz srcLp
|
|
pop bc
|
|
ringCmpLp
|
|
push bc : push af
|
|
ld a, (de) : ld b, a
|
|
pop af : ld a, (hl) : cp b : pop bc : ld a, 0 : ret nz
|
|
inc de : inc hl
|
|
djnz ringCmpLp
|
|
ld a, 1
|
|
ret
|
|
|
|
clearRing:
|
|
xor a : ld hl, ring_buffer : ld de, ring_buffer + 1 : ld bc, 32 : ld (hl), a : ldir
|
|
ret
|
|
|
|
ring_buffer dup 33
|
|
defb 0
|
|
edup
|