?login_element?

Subversion Repositories NedoOS

Rev

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

  1. ; de - pointer
  2. ; hl - count
  3. strlen:
  4.     ld hl, 0
  5. .loop
  6.     ld a, (de)
  7.     and a    : jr z, .exit
  8.     inc hl
  9.     inc de
  10.     jr .loop
  11. .exit
  12.     ret
  13.  
  14.     module CompareBuff
  15.    
  16. ; Pushes A to buffer
  17. push
  18.     push af
  19.     ld b, 32 : ld hl, buffer + 1 : ld de, buffer
  20. .loop
  21.     ld a, (hl) : ld (de), a : inc hl : inc de : djnz .loop
  22.     pop af
  23.     ld hl, buffer + 31 : ld (hl), a
  24.     ret
  25.  
  26. ; HL - Compare string(null terminated)
  27. ; A - 0 NOT Found
  28. ;     1 Found
  29. search:
  30.     ld b, 0 : push hl
  31. .loop:
  32.     ld a, (hl) : inc hl : inc b : and a : jp nz, .loop
  33.     dec b : pop hl : push bc : push hl
  34.     pop hl
  35.     ld de, buffer + 32
  36. .sourceLoop  
  37.     dec de : djnz .sourceLoop
  38.     pop bc
  39. .compare    
  40.     push bc : push af
  41.     ld a, (de) : ld b, a
  42.     pop af : ld a, (hl) : cp b : pop bc : ld a, 0 : ret nz  
  43.     inc de : inc hl
  44.     djnz .compare
  45.     ld a, 1
  46.     ret
  47.  
  48. clear:
  49.     xor a : ld hl, buffer : ld de, buffer + 1 : ld bc, 32 : ld (hl), a : ldir
  50.     ret
  51.  
  52. buffer ds 32
  53.  
  54.     endmodule