?login_element?

Subversion Repositories NedoOS

Rev

Rev 1755 | Blame | Compare with Previous | Last modification | View Log | Download

  1. initprogress
  2. ;NOTE: must not change flags
  3.         ld hl,0
  4.         ld (musicprogress),hl
  5.         ld (progressacc),hl
  6.         ret
  7.  
  8. setprogressdelta
  9. ;a = music size
  10. ;progressdelta = xlen/64 8.8 fixed point number
  11.         or a
  12.         jr nz,$+3
  13. ;set a=255 if a=0 to avoid infinite loop in updateprogress
  14.         dec a
  15.         rlca
  16.         rlca
  17.         ld h,a
  18.         and %11111100
  19.         ld l,a
  20.         ld a,%0000011
  21.         and h
  22.         ld h,a
  23.         ld (progressdelta),hl
  24.         ret
  25.  
  26. updateprogress
  27. ;a = current position
  28. musicprogress=$+1
  29.         ld bc,0
  30.         cp c
  31.         ret c
  32.         ret z
  33.         ld c,a
  34. progressacc=$+1
  35.         ld hl,0
  36. progressdelta=$+1
  37.         ld de,0
  38. .progressupdateloop
  39.         ld a,h
  40.         cp c
  41.         jr nc,.progressupdatedone
  42.         add hl,de
  43.         inc b
  44.         jr .progressupdateloop
  45. .progressupdatedone
  46.         ld (musicprogress),bc
  47.         ld (progressacc),hl
  48.         ret
  49.