home *** CD-ROM | disk | FTP | other *** search
- Rem ****************************************
- Rem * Shell3a external command - battery.opl
- Rem * ╕ Nick Murray May 1996
- Rem *
- Rem * battery - display information on the
- Rem * battery usage and status
- Rem ****************************************
- PROC battery%:(n%)
- LOCAL yr%,mo%,dy%,hr%,mn%,sc%,yrday%,buf$(24),i%,hours
- LOCAL Stat$(5),Insert&,Batt&,Extern&,Ticks&
- ONERR ErrTrap::
- CALL($228E,ADDR(Stat$)) Rem HwSupplyInfo system call
- Rem writes 22 bytes - Stat$ to Ticks&
- Rem for details see the Psionics "syscalls.3" file
- i%=PEEKB(ADDR(Stat$))
- PRINT "Main batteries: ",
- IF i%=1
- PRINT "VERY LOW"
- ELSEIF i%=2
- PRINT "LOW"
- ELSEIF i%=3
- PRINT "GOOD"
- ENDIF
- PRINT "Backup battery: ",
- IF PEEKB(UADD(ADDR(Stat$),2))
- PRINT "GOOD"
- ELSE
- PRINT "REPLACE"
- ENDIF
- PRINT "Batteries inserted: ",
- SECSTODATE Insert&,yr%,mo%,dy%,hr%,mn%,sc%,yrday%
- buf$=DAYNAME$(DOW(dy%,mo%,yr%))
- buf$=buf$+" "+NUM$(dy%,-2)+" "+MONTH$(mo%)+" "+NUM$(yr%,-4)
- buf$=buf$+" "+NUM$(hr%,-2)+":"+CHR$(mn%/10+48)+CHR$(mn%-(mn%/10)*10+48)
- PRINT buf$
- Batt&=Batt&/32 Rem convert to seconds
- dy%=Batt&/86400
- hours=dy%*24
- Batt&=Batt&-dy%*86400
- hr%=Batt&/3600
- hours=hours+hr%
- Batt&=Batt&-hr%*3600.0
- mn%=Batt&/60.0
- hours=hours+mn%/60.0
- PRINT "Time on batteries: ", dy%,"days",hr%;"h",mn%;"m"
- Extern&=Extern&/32 Rem convert to seconds
- dy%=Extern&/86400
- Extern&=Extern&-dy%*86400
- hr%=Extern&/3600
- Extern&=Extern&-hr%*3600.0
- mn%=Extern&/60.0
- PRINT "Time on mains: ", dy%,"days",hr%;"h",mn%;"m"
- PRINT "Power used: ",Ticks&/115200;"mAh"
- IF hours
- PRINT "Average: ",NUM$(Ticks&/(115200*hours),3);"mA"
- ENDIF
- i%=PEEKW(UADD(ADDR(Stat$),4))
- PRINT "Sound:",
- IF i% AND $1
- PRINT "DISABLED",
- ELSE
- PRINT "OK",
- ENDIF
- PRINT " Flash:",
- IF i% AND $2
- PRINT "DISABLED",
- ELSE
- PRINT "OK",
- ENDIF
- PRINT " Mains:",
- IF PEEKB(UADD(ADDR(Stat$),3))
- PRINT "ON"
- ELSE
- PRINT "OFF"
- ENDIF
- RETURN
- ErrTrap::
- ONERR off
- PRINT err$:(ERR)
- ENDP
-