The Phone Losers Of England Presents: Last Updated 6th of January 2001
Back To Code Arena
REM Task Functions
REM Thomas Figg => theskung@hotmail.com
REM You may use this free of charge

PROC Main:
Tasks:("")
GET
ENDP

REM task$ is the task name eg SYS$SHLL
PROC Goto:(task$)
  LOCAL lc139z$(15),lc140z%(2)
    lc139z$=task$
  lc139z$=lc139z$+CHR$(0)
  lc140z%(1)=256
  lc140z%(2)=UADD(ADDR(lc139z$),1)
  IF (OS(136,ADDR(lc140z%())) AND 1)=0 AND lc140z%(1)<>0
    CALL(6541,0,lc140z%(1))
  ENDIF
ENDP

REM match$ is the match
PROC Tasks:(match$)
  LOCAL lc149z%,lc146z%,lc143z$(15),lc145z%,lc141z%
  LOCAL lc148z$(16),lc147z$(15),lc142z%,lc144z$(13),P%
  lc141z%=CALL(136)
  PRINT "  Process	ID   Priority"
  PRINT REPT$("Ä",29)
  lc142z%=ADDR(lc143z$)
  IF P%<1
    lc144z$="*"+CHR$(0)
  ELSE
    lc144z$=match$+CHR$(0)
  ENDIF
  DO
    lc145z%=lc146z%
    lc147z$=lc143z$
    lc146z%=CALL(2952,lc146z%,0,0,UADD(lc142z%,1),UADD(ADDR(lc144z$),1))
    POKEB lc142z%,CALL(185,0,0,0,0,UADD(lc142z%,1))
    IF lc147z$=lc143z$ OR lc146z%=lc145z%
      BREAK
    ENDIF
    IF lc146z%=lc141z%
      lc148z$=">"+lc143z$
    ELSE
      lc148z$=" "+lc143z$
    ENDIF
    lc149z%=CALL(648,lc146z%) AND 255
    PRINT lc148z$+REPT$(" ",14-LEN(lc148z$))+NUM$(lc146z%,-6)+NUM$(lc149z%,-7)
  UNTIL 0
  PRINT
ENDP

REM task$ is the task to kill... BE CAREFULL !!!!
PROC Kill:(task$)
  LOCAL lc184z%,lc185z%,dmyz1$(6),lc187z%,lc186z%
  LOCAL lc183z%,lc182z$(12)
    lc182z$=task$
  lc183z%=CALL(392,ADDR(lc182z$)+1)
  IF lc183z%>0
    lc184z%=3328
    lc185z%=lc183z%
    lc186z%=OS(136,ADDR(lc184z%))
    IF lc186z% AND 1
      lc187z%=(lc184z% AND 255)-256
      RAISE lc187z%
    ELSE
      lc187z%=0
    ENDIF
  ENDIF
  GET
ENDP

REM rename task
REM from$ the orignial name
REM to$ the new name
PROC Rntask:(from$,to$)
  LOCAL lc163z$(15),lc162z$(15),lc164z%(2),dmyz1%
  lc162z$=from$
  lc163z$=to$
  lc162z$=lc162z$+CHR$(0)
  lc163z$=lc163z$+CHR$(0)
  lc164z%(1)=256
  lc164z%(2)=UADD(ADDR(lc162z$),1)
  IF (OS(136,ADDR(lc164z%())) AND 1)=0 AND lc164z%(1)<>0
  CALL(3208,lc164z%(1),0,0,0,UADD(ADDR(lc163z$),1))
  ENDIF
ENDP
This Site Is © Copyright Project Atlantis, 2000-2001