Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Clears all memory accociated with a thread
- ; inputs a = Thread ID
- FreeThreadMem:
- push af
- push de
- push hl
- push ix
- ld hl,UserRAM
- FTMLoop cp (hl)
- jr nz,FTMSkip
- push hl
- pop ix
- call FreeMem
- FTMSkip inc hl
- ld e,(hl)
- inc hl
- ld d,(hl)
- add hl,de ; jump to next section
- ld de,UserRAMEnd ; get the end of UserRAM
- sbc hl,de ; compare
- add hl,de
- jr c,FTMLoop ; loop again if hl < UserRAMEnd
- pop ix
- pop hl
- pop de
- pop af
- ret
- ; Returns the amount of Free RAM
- ; output hl = Free RAM
- ReturnFreeRAM:
- push af
- push de
- push ix
- ld hl,UserRAM
- xor a
- ld (RAMTmp),a
- ld (RAMTmp+1),a
- ld a,$FF
- _ cp (hl)
- jr nz,_
- inc hl
- ld e,(hl)
- inc hl
- ld d,(hl)
- push hl
- ld hl,(RAMTmp)
- add hl,de
- ld a,l
- ld (RAMTmp),a
- ld a,h
- ld (RAMTmp+1),a
- ld a,$FF
- pop hl
- jr ++_
- _ inc hl
- ld e,(hl)
- inc hl
- ld d,(hl)
- _ add hl,de ; jump to next section
- ld de,UserRAMEnd ; get the end of UserRAM
- sbc hl,de ; compare
- add hl,de
- jr c,---_ ; loop again if hl < UserRAMEnd
- pop ix
- pop de
- pop af
- ld hl,(RAMTmp)
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement