home *** CD-ROM | disk | FTP | other *** search
/ PDA Software Library / pdasoftwarelib.iso / PSION / UTILS / SHELL3A / SRC.ZIP / OPL / PS.OPL < prev    next >
Encoding:
Text File  |  1996-09-03  |  957 b   |  42 lines

  1. Rem ****************************************
  2. Rem * Shell3a external command - ps.opl
  3. Rem * ╕ Nick Murray May 1996
  4. Rem *
  5. Rem * ps - List the current processes
  6. Rem ****************************************
  7. PROC ps%:(n%)
  8. LOCAL pri%,ret%,buf$(15),str%,cur%,out$(16),store$(15),addr%
  9. LOCAL pattern$(2)
  10.     ONERR ErrTrap::
  11.     cur%=CALL($0088)
  12.     fprint%:("  Process    ID   Priority")
  13.     fprint%:(REPT$("─",29))
  14.     addr%=ADDR(buf$)
  15.     pattern$="*"+CHR$(0)
  16.     DO
  17.         IF  KEY=27
  18.             GIPRINT ERR$(-114)
  19.             SHesc%=1
  20.             BREAK
  21.         ENDIF
  22.         str%=ret%
  23.         store$=buf$
  24.         ret%=CALL($0B88,ret%,0,0,UADD(addr%,1),UADD(ADDR(pattern$),1))
  25.         POKEB addr%,CALL($B9,0,0,0,0,UADD(addr%,1))
  26.         IF store$=buf$ OR ret%=str%
  27.             BREAK
  28.         ENDIF
  29.         IF ret%=cur%
  30.             out$=CHR$(28)+buf$
  31.         ELSE
  32.             out$=" "+buf$
  33.         ENDIF
  34.         pri%=CALL($0288,ret%) AND $FF
  35.         fprint%:(out$+REPT$(" ",14-LEN(out$))+NUM$(ret%,-6)+NUM$(pri%,-7))
  36.     UNTIL 0
  37.     RETURN
  38. ErrTrap::
  39.     ONERR off
  40.     PRINT err$:(ERR)
  41. ENDP
  42.