Advertisement
Eeems

Untitled

Jul 7th, 2011
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Clears all memory accociated with a thread
  2. ; inputs    a  = Thread ID
  3. FreeThreadMem:
  4.     push af
  5.     push de
  6.     push hl
  7.     push ix
  8.     ld hl,UserRAM
  9. FTMLoop     cp (hl)
  10.         jr nz,FTMSkip
  11.         push hl
  12.         pop ix
  13.         call FreeMem
  14. FTMSkip     inc hl
  15.         ld e,(hl)
  16.         inc hl
  17.         ld d,(hl)
  18.         add hl,de       ; jump to next section
  19.         ld de,UserRAMEnd    ; get the end of UserRAM
  20.         sbc hl,de       ; compare
  21.         add hl,de
  22.         jr c,FTMLoop        ; loop again if hl < UserRAMEnd
  23.     pop ix
  24.     pop hl
  25.     pop de
  26.     pop af
  27.     ret
  28. ; Returns the amount of Free RAM
  29. ; output    hl = Free RAM
  30. ReturnFreeRAM:
  31.     push af
  32.     push de
  33.     push ix
  34.     ld hl,UserRAM
  35.     xor a
  36.     ld (RAMTmp),a
  37.     ld (RAMTmp+1),a
  38.     ld a,$FF
  39. _       cp (hl)
  40.             jr nz,_
  41.         inc hl
  42.         ld e,(hl)
  43.         inc hl
  44.         ld d,(hl)
  45.         push hl
  46.             ld hl,(RAMTmp)
  47.             add hl,de
  48.             ld a,l
  49.             ld (RAMTmp),a
  50.             ld a,h
  51.             ld (RAMTmp+1),a
  52.             ld a,$FF
  53.         pop hl
  54.         jr ++_
  55. _       inc hl
  56.         ld e,(hl)
  57.         inc hl
  58.         ld d,(hl)
  59. _       add hl,de       ; jump to next section
  60.         ld de,UserRAMEnd    ; get the end of UserRAM
  61.         sbc hl,de       ; compare
  62.         add hl,de
  63.         jr c,---_       ; loop again if hl < UserRAMEnd
  64.     pop ix
  65.     pop de
  66.     pop af
  67.     ld hl,(RAMTmp)
  68.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement