Subversion Repositories NedoOS

Rev

Rev 1756 | 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.         or a
  11.         jr nz,$+3
  12. ;set a=255 if a=0 to avoid infinite loop in updateprogress
  13.         dec a
  14.         rlca
  15.         rlca
  16.         ld h,a
  17.         and %11111100
  18.         ld l,a
  19.         ld a,%0000011
  20.         and h
  21.         ld h,a
  22. ;progressdelta = xlen/64 8.8 fixed point number
  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.