home *** CD-ROM | disk | FTP | other *** search
- PROC Ptime:
- GLOBAL info%(32),wId%,x%(6),y%(4)
- LOCAL buffer$(128),allPids%(22),t&
- LOCAL ownPid% REM own procId
- LOCAL pid% REM procId of the foreground process
- LOCAL opl% REM flag, true if working with opl-source
- GLOBAL oTime& REM ON-time (p_time is running)
- GLOBAL pTime& REM total programming duration
- GLOBAL sTime& REM start-time of the program
- GLOBAL pName$(128),pKanal%
-
- pName$="p_time.dat"
- pOpen: REM open file
- readDat: REM read data from file
- IF sTime&=0 REM was 'create'
- sTime&=DATETOSECS(YEAR,MONTH,DAY,HOUR,MINUTE,SECOND)
- saveDat:
- ENDIF
- grafInit: REM open window, calculate var's
-
- REM ProcId
- ownPid%=CALL($88,0,0,0,0,0)
-
- nonActiv:
- ESCAPE OFF
- lockBack:
-
- WHILE 1
- REM every 10 seconds
- PAUSE 200
- oTime&=oTime&+10
- REM wGetProcessList
- CALL($D98D,0,0,0,ADDR(allPids%(1)),0)
- pid%=allPids%(1)
-
- IF pid%=ownPid%
- t&=DATETOSECS(YEAR,MONTH,DAY,HOUR,MINUTE,SECOND)-sTime&
- gUPDATE OFF
- frmTime:(t&,y%(2))
- frmTime:(oTime&,y%(3))
- frmPerc:(oTime&,t&,y%(3))
- frmTime:(pTime&,y%(4))
- frmPerc:(pTime&,oTime&,y%(4))
- gUPDATE ON
- GIPRINT "update completed, hit key to continue"
- saveDat:
- GET
- Lockback:
- ELSE
- REM FilPathGetById
- CALL($1087,pid%,ADDR(buffer$)+1,0,0,0)
- REM length of cstr
- POKEB ADDR(buffer$),CALL($B9,0,0,0,0,ADDR(buffer$)+1)
-
- IF LOC(buffer$,"OPL")>0 OR LOC(buffer$,"OPD")>0
- REM work with opl-source
- IF opl%
- pTime&=pTime&+10
- ELSE REM beginning opl-work
- opl%=-1
- ENDIF
- ENDIF
- saveDat:
- ENDIF
- ENDWH
- ENDP
- PROC saveDat:
- pOpen:
- IOWRITE(pKanal%,ADDR(oTime&),12)
- IOCLOSE(pKanal%)
- ENDP
- PROC pOpen:
- LOCAL e%,mode%
- e%=EXIST(pName$)
- mode%=$301+e%
- IOOPEN(pKanal%,pName$,mode%)
- ENDP
- PROC readDat:
- pOpen:
- IOREAD(pKanal%,ADDR(oTime&),12)
- IOCLOSE(pKanal%)
- ENDP
- PROC lockBack:
- REM wSystemModal
- CALL($C78D,100,0,0,0,0)
- ENDP
-
- PROC nonActiv:
- REM GenMarkNonActive
- CALL($138B,0,0,0,0,0)
- ENDP
-
- PROC frmTime:(s&,y%)
- LOCAL yr%,mo%,dy%,hr%,mn%,sc%,yrday%
- SECSTODATE s&,yr%,mo%,dy%,hr%,mn%,sc%,yrday%
- textw:(GEN$(yrday%-1,-3),x%(2),y%,0,-1)
- textw:(GEN$(hr%,-2),x%(3),y%,0,-1)
- textw:(GEN$(mn%,-2),x%(4),y%,0,-1)
- ENDP
- PROC frmPerc:(a&,b&,y%)
- IF b&>0
- textw:(GEN$((FLT(a&)/FLT(b&)*100),-4),x%(5),y%,0,-1)
- ENDIF
- ENDP
-
- PROC grafInit:
- GLOBAL c%,w2%
- LOCAL a$(20),i%,j%,w%,x%
-
- x%(2)=gWIDTH/2
- wId%=gCREATE (0,0,gWIDTH,gHEIGHT,1)
- gBORDER 0
-
- REM title
- style:(1) REM bold
- a$="P_TIME V1.2 - INFO"
- textw:(a$,x%(2)-gTWIDTH(a$)/2,info%(3)*2,0,-1)
-
- style:(16) REM unproportional
- j%=info%(3)*1.5 REM line-increment
- REM calc line positions
- y%(1)=gY+j%+1
- i%=2
- DO
- y%(i%)=y%(i%-1)+j%
- i%=i%+1
- UNTIL i%>4
- y%(1)=y%(1)-1
-
- c%=info%(7)/2 REM charWidth/2
- x%(2)=x%(2)+c%
-
- REM show column titel and calc position of next column
- tabTitle:("ddd",2)
- tabTitle:("hh",3)
- tabTitle:("mm",4)
- tabTitle:(" % ",5)
- lineVert:(x%(6))
-
- style:(0) REM proportional
- a$="programming time "
- w%=gTWIDTH(a$)
- w2%=0.25*info%(3)
- x%(1)=x%(2)-w%-c%-2
- gAT x%(1),y%(1)+w2%
- gFILL x%(6)-x%(1)-w2%,2,0
- tabPars:("total time ",w%,2)
- tabPars:("on-time ",w%,3)
- tabPars:(a$,w%,4)
- style:(16) REM unproportional
- ENDP
- PROC tabTitle:(a$,i%)
- REM show title
- textw:(a$,x%(i%),y%(1),0,-1)
-
- REM draw vertical line
- lineVert:(x%(i%))
- IF i%=2
- lineVert:(x%(i%)-1)
- ENDIF
-
- REM calc next column position
- x%(i%+1)=x%(i%)+info%(7)+gTWIDTH(a$)
- ENDP
- PROC tabPars:(a$,w%,i%)
- REM show title
- textw:(a$,x%(1),y%(i%),w%,1)
-
- REM draw horizontal line
- gAT x%(1),y%(i%)+w2%
- gLINETO x%(6)-w2%,gY
- ENDP
- PROC textw:(a$,x%,y%,w%,t%)
- gAT x%,y%
- IF t%<0
- gPRINTB a$,gTWIDTH(a$)
- ELSE
- gPRINTB a$,w%,t%
- ENDIF
- ENDP
- PROC style:(i%)
- gSTYLE i%
- gINFO info%()
- ENDP
- PROC lineVert:(x%)
- gAT x%-c%,y%(1)-info%(3)
- gLINETO x%-c%,y%(4)+info%(3)*.25
- ENDP
-