Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

; de - pointer
; hl - count
strlen:
    ld hl, 0
.loop
    ld a, (de)
    and a    : jr z, .exit
    inc hl
    inc de
    jr .loop
.exit
    ret

    module CompareBuff
   
; Pushes A to buffer
push
    push af
    ld b, 32 : ld hl, buffer + 1 : ld de, buffer
.loop
    ld a, (hl) : ld (de), a : inc hl : inc de : djnz .loop
    pop af
    ld hl, buffer + 31 : ld (hl), a
    ret

; HL - Compare string(null terminated)
; A - 0 NOT Found
;     1 Found
search:
    ld b, 0 : push hl
.loop:
    ld a, (hl) : inc hl : inc b : and a : jp nz, .loop
    dec b : pop hl : push bc : push hl
    pop hl
    ld de, buffer + 32
.sourceLoop  
    dec de : djnz .sourceLoop
    pop bc
.compare    
    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 .compare
    ld a, 1
    ret

clear:
    xor a : ld hl, buffer : ld de, buffer + 1 : ld bc, 32 : ld (hl), a : ldir
    ret

buffer ds 32

    endmodule