$lib "glcdKS108.lib" $crystal = 8000000 $regfile = "m32def.dat" 'Dim variables Dim State As Byte ' Menu State Dim J As Byte ' a counter used all over the place Dim K As Single ' For Working Out temp and Humidity Dim X As Byte ' Lines in setup and selection in day of week Dim Y As Byte ' Lines in setup and selection in day of week Dim X1 As Byte ' Lines in setup Dim Y1 As Byte ' Lines in setup Dim Count As Byte ' For timeout Dim Odd As Bit ' Toggled every second for blinking effects Dim Alarmtime As String * 5 ' Alarm Time String Dim _alarmhour As Byte ' Alarm Hours Dim _alarmmin As Byte 'Alarm Minutes Dim Alarm As Bit ' alarm state Dim Alarmday(7) As Byte 'days alarm goes off on Dim Alarmset As Bit ' Alarm Set Dim Alarmoveride As Bit ' Alarm Overide Dim Snooze As Bit ' Snooze set Dim Snoozemincount As Byte ' Snooze Minute Counter Dim Snoozesec As Byte ' Snooze Pressed Seconds Holder Dim Alarmbeepcount As Byte ' Alarm Blip Count Dim Carpos As Byte ' Where character gets placed Dim Stringcount As Byte ' Count thru time$ Dim Disp As String * 8 'built up time string minus :'s Dim N As String * 6 ' string of picked number Dim Hours As String * 2 ' Hours Dim Minutes As String * 2 'Minutes Dim Seconds As String * 2 'seconds Dim Key As Byte ' Key Value Dim Keybeep As Bit 'keySound on or off Dim Menupos As Byte 'Menu Position Dim Menurow As Byte 'Menu Position Dim 24h As Bit ' 24hour = 1 12 hour = 0 Dim Day As String * 3 'Day Wording Dim Temp As Byte ' Temp Dim Tempmax As Byte 'Max Temp Dim Tempmin As Byte 'Min Temp Dim Templog(25) As Byte 'Temp Log over 24 hours Dim Tempmaxtime As String * 5 'Time Of Max Temp Dim Tempmintime As String * 5 'time of min temp Dim Hum As Byte ' Humidity Dim Hummax As Byte ' Humidity Max Dim Hummin As Byte ' Humidity Min Dim Humlog(25) As Byte ' Humidity log over 24 hours Dim Hummaxtime As String * 5 'Time Of Max humidity Dim Hummintime As String * 5 'Time of Min Humidity Dim _adc As Word ' ADC Readings Dim Bvolts As String * 5 ' Battery Voltage Dim _bvolts As Single ' battery Voltage Variable Dim Volts As String * 5 ' Plugpack Voltage Dim _volts As Single ' Plugpack Voltage Variable Dim _light As Single 'Light Measurement Dim Light As String * 5 Dim Bllevel As Single ' Backlight trigger level Dim _single As Single ' Placeholder to work with Dim Onsecond As Bit ' More to do on Second Dim Onhour As Bit ' Stuff to do on the hour Humlog(25) = 50 Humlog(24) = 25 Humlog(23) = 50 Humlog(22) = 99 Humlog(21) = 75 Enable Interrupts Disable Serial Config Pinc.0 = Input 'key1 Config Pinc.1 = Input 'key2 Config Pinc.2 = Input 'key3 Config Pinc.3 = Input 'key4 Config Pinc.4 = Input 'snooze button Config Pina.6 = Output ' speaker Config Pina.7 = Output 'backlight Config Pina.0 = Input 'Humidity input Config Pina.1 = Input 'temp input Config Pina.2 = Input 'Battery Voltage Config Pina.3 = Input 'PLugPack Voltage Config Pina.4 = Input ' Backlight sensor Config Pina.5 = Input 'First we define that we use a graphic LCD Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 0 , Ce2 = 1 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5 ' Config Clock Config Clock = Soft , Gosub = Sectic Config Date = Dmy , Separator = - 'ANSI-Format Date$ = "01/01/00" Time$ = "00:30:00" 24h = 0 Odd = 1 Menupos = 4 Menurow = 1 Tempmax = 0 Tempmin = 100 Hummax = 0 Hummin = 100 Carpos = 0 State = 0 ' 0=time, 1=SetAlarm, 2=Settime, 3=SetDate, 4=12/24set, 5=SetAlarmDay,6 BeepOnOff,7 Backlight,8 Setup,9 temp,10 humidity,11 temp trend, 12 hum trend Alarm = 0 Alarmset = 0 Alarmtime = "00:01" _alarmhour = 12 _alarmmin = 0 Keybeep = 0 Snooze = 0 Alarmbeepcount = 1 Count = 0 Onsecond = 1 Onhour = 0 Bllevel = 1 'specify the font we want to use Setfont Alarm 'Set up ADC Config Adc = Single , Prescaler = Auto 'Now give power to the chip Start Adc ' Set backlight to full 'Reset Porta.7 Cls 'Goto Setup ' Main Routine---------------------------------------------------------------------------------------------------------- Main: ' Seperate time Disp = Time$ Hours = Left(time$ , 2) Minutes = Mid(time$ , 4 , 2) Seconds = Right(time$ , 2) If Minutes = "00" Then Onhour = 1 If Onsecond = 1 Then ' Read Backup Battery Voltage _adc = Getadc(2) _bvolts = _adc * 0.00492 Bvolts = Fusing(_bvolts , "#.##") ' Read Plug Pack Voltage _adc = Getadc(3) _volts = _adc * 0.00492 _volts = _volts * 2 _volts = _volts * 26 Volts = Fusing(_volts , "#.##") 'Get Light Value of room _adc = Getadc(4) _light = _adc * 0.00492 Light = Fusing(_light , "#.##") If _light => Bllevel Then If _volts > 2 Then Reset Porta.7 End If End If If _light < Bllevel Then Set Porta.7 End If ' Check Mains Voltage is connected and if not, set display dim If _volts < 2 Then Set Porta.7 End If ' Get Temp and Humidity _adc = Getadc(0) _single = _adc * 0.492 Hum = Int(_single) _adc = Getadc(1) _single = _adc * 0.492 _single = _single - 5 Temp = Int(_single) Onsecond = 0 End If ' process temp and humidity max and min's If Hum > 99 Then Hum = 99 End If If Hum > Hummax Then Hummax = Hum Hummaxtime = Hours + ":" + Minutes End If If Hum < Hummin Then Hummin = Hum Hummintime = Hours + ":" + Minutes End If If Temp > 99 Then Temp = 99 End If If Temp > Tempmax Then Tempmax = Temp Tempmaxtime = Hours + ":" + Minutes End If If Temp < Tempmin Then Tempmin = Temp Tempmintime = Hours + ":" + Minutes End If ' Reset Min/Max's at midnight If Time$ = "00:00:00" Then Hummax = Hum Hummaxtime = Hours + ":" + Minutes Hummin = Hum Hummintime = Hours + ":" + Minutes Tempmax = Temp Tempmaxtime = Hours + ":" + Minutes Tempmin = Temp Tempmintime = Hours + ":" + Minutes End If 'Stuff to do on the hour If Onhour = 1 Then If Minutes = "01" Then 'Shift temp and hum logs left by one Humlog(1) = Hum Templog(1) = Temp For J = 25 To 2 Step - 1 X = J - 1 Humlog(j) = Humlog(x) Templog(j) = Templog(x) Next J If State = 11 Then Showpic 0 , 0 , Temptrend If State = 12 Then Showpic 0 , 0 , Humtrend Onhour = 0 End If End If 'Display time------------------------------------------------------------------------------------------------------------------- If State = 0 Then Gosub Checkkeys If Key = 1 Then Cls Menupos = 4 Menurow = 1 ' Setup Goto Setup End If If Key = 2 Then Cls State = 9 'temp Goto Main End If If Key = 3 Then Cls State = 10 'humidity Goto Main End If If Key = 4 Then Toggle Alarmoveride 'Turn Alarm On Or Off End If If Key = 5 Then ' snooze pressed If Alarm = 1 Then Set Snooze Reset Alarm Snoozemincount = 0 Snoozesec = _sec Else Reset Snooze Reset Alarm End If End If ' Check Battery Voltage and display Bat Low if low If _bvolts < 2 Then Lcdat 7 , 1 , ";$" Else Lcdat 7 , 1 , " " End If J = Dayofweek(date$) Day = Lookupstr(j , Weekdays) Lcdat 7 , 16 , Day ; " " ; Date$ Showpic 0 , 56 , Mainbar 'check alarm------------------------------------------------------------------------------------------------------------ ' check to see if it's an alarm day and if it is, set alarmset on If Alarmoveride = 0 Then J = J + 1 If Alarmday(j) = 1 Then Set Alarmset Else Reset Alarmset End If Else Alarmset = 0 End If ' If alarmset is set and snooze if off and time = alarmtime turn alarm on If _sec = 1 Then If Alarmset = 1 Then If Snooze = 0 Then Disp = Hours + ":" + Minutes If Disp = Alarmtime Then Set Alarm End If End If End If End If If Alarmset = 1 Then ' display alarm icon Disp = "*" Else Disp = "-" End If If Alarmoveride = 1 Then ' Display Alarm Cancelled Icon Disp = "X" End If If Snooze = 1 Then Showpic 112 , 32 , Snooze If Snoozemincount > 9 Then ' 10 Minute Snooze Set Alarm Reset Snooze End If Else Showpic 112 , 32 , 16x16blank End If 'Lcdat 7 , 1 , Snoozemincount ; " " ; Snooze ; " " ; Count ; " " 'Sound Alarm if Alarm is on If Alarm = 1 Then If Alarmbeepcount < 5 Then Toggle Porta.7 Sound Porta.6 , 50 , 350 Toggle Porta.7 Waitms 100 End If Incr Alarmbeepcount If Alarmbeepcount = 50 Then Alarmbeepcount = 1 End If ' Update Display-------------------------------------------------------------------------------------------------------- Gosub 12hour 'make 12 hour if 12 hour mode selected If J < 10 Then Hours = "-" + Str(j) End If If Odd = 0 Then Disp = Disp + Hours + ":" + Minutes Else Disp = Disp + Hours + "-" + Minutes End If Lcdat 4 , 104 , ":" ; Seconds End If ' Display Temp---------------------------------------------------------------------------------------------------------- If State = 9 Then Disp = Str(temp) + "C" If Temp < 10 Then Disp = "-" + Disp Showpic 0 , 56 , Temphum Line(60 , 0) -(60 , 56) , 255 Line(60 , 28) -(128 , 28) , 255 Lcdat 1 , 66 , "MAX:" Lcdat 2 , 66 , Tempmax ; "#C " Lcdat 3 , 66 , "AT " ; Tempmaxtime Lcdat 5 , 66 , "MIN:" Lcdat 6 , 66 , Tempmin ; "#C " Lcdat 7 , 66 , "AT " ; Tempmintime Gosub Checkkeys If Key = 1 Then 'reset max Tempmax = Temp Tempmaxtime = Hours + ":" + Minutes End If If Key = 2 Then Tempmin = Temp 'reset min Tempmintime = Hours + ":" + Minutes End If If Key = 3 Then Cls Showpic 0 , 0 , Temptrend State = 11 Goto Main End If If Key = 4 Then Cls State = 0 Goto Main End If Gosub Timeout End If 'Display Humidity------------------------------------------------------------------------------------------------------- If State = 10 Then Disp = Str(hum) + "%" If Hum < 10 Then Disp = "-" + Disp Showpic 0 , 56 , Temphum Line(60 , 0) -(60 , 56) , 255 Line(60 , 28) -(128 , 28) , 255 Lcdat 1 , 66 , "MAX:" Lcdat 2 , 66 , Hummax ; "% " Lcdat 3 , 66 , "AT " ; Hummaxtime Lcdat 5 , 66 , "MIN:" Lcdat 6 , 66 , Hummin ; "% " Lcdat 7 , 66 , "AT " ; Hummintime Gosub Checkkeys If Key = 1 Then Hummax = Hum 'reset max Hummaxtime = Hours + ":" + Minutes End If If Key = 2 Then Hummin = Hum 'reset min Hummintime = Hours + ":" + Minutes End If If Key = 3 Then Cls Showpic 0 , 0 , Humtrend State = 12 Goto Main End If If Key = 4 Then Cls State = 0 Goto Main End If Gosub Timeout End If 'Display temp trend----------------------------------------------------------------------------------------------------- If State = 11 Then Gosub Checkkeys X = 3 X1 = 8 Y1 = 47 For J = 25 To 1 Step -1 X = X + 5 If X > 127 Then X = 127 _single = Templog(j) _single = _single * 1.2 _single = 48 - _single Y = _single If Y < 0 Then Y = 0 If Y > 48 Then Y = 48 Line(x1 , Y1) -(x , Y) , 255 X1 = X Y1 = Y Next J If Key = 4 Then Cls State = 0 Goto Main End If Gosub Timeout Goto Main End If 'Display Humdity trend----------------------------------------------------------------------------------------------------- If State = 12 Then Gosub Checkkeys X = 3 X1 = 8 Y1 = 47 For J = 25 To 1 Step -1 X = X + 5 If X > 127 Then X = 127 _single = Humlog(j) _single = _single / 2 _single = 48 - _single Y = _single If Y < 0 Then Y = 0 If Y > 48 Then Y = 48 Line(x1 , Y1) -(x , Y) , 255 X1 = X Y1 = Y Next J If Key = 4 Then Cls State = 0 Goto Main End If Gosub Timeout Goto Main End If ' Set Time-------------------------------------------------------------------------------------------------------------- If State = 2 Then Lcdat 6 , 96 , ":" Lcdat 7 , 1 , " SET TIME" Disp = Time$ Disp = "-" Gosub 12hour 'make 12hour If J < 10 Then Hours = "-" + Str(j) End If If Odd = 0 Then If Menupos = 1 Then Disp = Disp + "--" + ":" + Minutes Lcdat 6 , 104 , Seconds End If If Menupos = 2 Then Disp = Disp + Hours + ":" + "--" Lcdat 6 , 104 , Seconds End If If Menupos = 3 Then Disp = Disp + Hours + ":" + Minutes Lcdat 6 , 104 , Seconds , 1 End If Else Disp = Disp + Hours + ":" + Minutes Lcdat 6 , 104 , Seconds End If Gosub Checkkeys If Key <> 0 Then Toggle Odd Showpic 0 , 56 , Updownright 'adjust Hour If Menupos = 1 Then If Key = 1 Then Incr _hour If _hour = 24 Then _hour = 0 If Key = 2 Then Decr _hour If _hour = 255 Then _hour = 23 End If ' Adjust Minutes If Menupos = 2 Then If Key = 1 Then Incr _min If _min = 60 Then _min = 0 If Key = 2 Then Decr _min If _min = 255 Then _min = 59 End If 'Adjust Seconds If Menupos = 3 Then If Key = 1 Then Incr _sec If _sec = 60 Then _sec = 0 If Key = 2 Then Decr _sec If _sec = 255 Then _sec = 59 End If If Key = 3 Then Incr Menupos If Menupos = 4 Then Menupos = 1 If Key = 4 Then Cls State = 0 Menupos = 1 Goto Main End If Gosub Timeout End If ' Set Date-------------------------------------------------------------------------------------------------------------- If State = 3 Then Lcdat 7 , 1 , " SET DATE" Disp = Time$ Disp = "" Hours = Left(date$ , 2) Minutes = Mid(date$ , 4 , 2) Seconds = Right(date$ , 2) Gosub Checkkeys If Key <> 0 Then Toggle Odd Showpic 0 , 56 , Updownright If Odd = 0 Then If Menupos = 1 Then Disp = Disp + "--" + "/" + Minutes + "/" + Seconds End If If Menupos = 2 Then Disp = Disp + Hours + "/" + "--" + "/" + Seconds End If If Menupos = 3 Then Disp = Disp + Hours + "/" + Minutes + "/" + "--" End If Else Disp = Disp + Hours + "/" + Minutes + "/" + Seconds End If 'adjust Days If Menupos = 1 Then If Key = 1 Then Incr _day If _day = 32 Then _day = 1 If Key = 2 Then Decr _day If _day = 0 Then _day = 31 End If ' Adjust Month If Menupos = 2 Then If Key = 1 Then Incr _month If _month = 13 Then _month = 1 If Key = 2 Then Decr _month If _month = 0 Then _month = 12 End If 'Adjust year If Menupos = 3 Then If Key = 1 Then Incr _year If _year = 99 Then _year = 0 If Key = 2 Then Decr _year If _year = 255 Then _year = 0 End If If Key = 3 Then Incr Menupos If Menupos = 4 Then Menupos = 1 If Key = 4 Then Cls State = 0 Menupos = 1 Goto Main End If Gosub Timeout End If ' Set Alarm------------------------------------------------------------------------------------------------------------- If State = 1 Then Hours = Str(_alarmhour) Hours = Format(hours , "00") Minutes = Str(_alarmmin) Minutes = Format(minutes , "00") Alarmtime = Hours + ":" + Minutes Lcdat 7 , 1 , " SET ALARM" Disp = Time$ Disp = "-" Gosub 12hour ' make 12 hour If J < 10 Then Hours = "-" + Str(j) End If If Odd = 0 Then If Menupos = 1 Then Disp = Disp + "--" + ":" + Minutes End If If Menupos = 2 Then Disp = Disp + Hours + ":" + "--" End If Else Disp = Disp + Hours + ":" + Minutes End If Gosub Checkkeys If Key <> 0 Then Toggle Odd Showpic 0 , 56 , Updownright 'adjust Hour If Menupos = 1 Then If Key = 1 Then Incr _alarmhour If _alarmhour = 24 Then _alarmhour = 0 If Key = 2 Then Decr _alarmhour If _alarmhour = 255 Then _alarmhour = 23 End If ' Adjust Minutes If Menupos = 2 Then If Key = 1 Then Incr _alarmmin If _alarmmin = 60 Then _alarmmin = 0 If Key = 2 Then Decr _alarmmin If _alarmmin = 255 Then _alarmmin = 59 End If If Key = 3 Then Incr Menupos If Menupos = 3 Then Menupos = 1 If Key = 4 Then Cls State = 0 Menupos = 1 Goto Main End If Gosub Timeout End If ' Set alarm days-------------------------------------------------------------------------------------------------------- If State = 5 Then J = 1 Odd = 0 Lcdat 1 , 1 , "SET ALARM DAYS:" Showpic 0 , 56 , Updownset Alarmdays: ' so it loops Gosub Checkkeys If Odd = 0 Then For K = 1 To 7 Y = K - 1 Day = Lookupstr(y , Weekdays) Y = K If Alarmday(y) = 1 Then If K < 5 Then X = K + 2 Lcdat X , 24 , "*" ; Day 'tick on Else X = K - 2 Lcdat X , 72 , "*" ; Day 'tick on End If Else If K < 5 Then X = K + 2 Lcdat X , 24 , "&" ; Day 'tick off Else X = K - 2 Lcdat X , 72 , "&" ; Day 'tick off End If End If Next K Else Y = J - 1 Day = Lookupstr(y , Weekdays) If J < 5 Then X = J + 2 Lcdat X , 32 , Day , 1 Else X = J - 2 Lcdat X , 80 , Day , 1 End If End If If Key = 1 Then ' scroll up Decr J If J = 0 Then J = 7 Odd = 0 End If If Key = 2 Then 'scroll down Incr J If J = 8 Then J = 1 Odd = 0 End If If Key = 4 Then 'exit Cls State = 0 Menupos = 1 Goto Main End If If Key = 3 Then 'select If Alarmday(j) = 1 Then Alarmday(j) = 0 Else Alarmday(j) = 1 End If Odd = 0 End If Gosub Timeout Goto Alarmdays End If 'Set 24 Hour Mode------------------------------------------------------------------------------------------------------- If State = 4 Then Toggle 24h If 24h = 0 Then Lcdat 4 , 1 , " 12 HOUR MODE" Else Lcdat 4 , 1 , " 24 HOUR MODE" End If Wait 2 State = 0 Cls Goto Main End If ' Turn Beep On or Off--------------------------------------------------------------------------------------------------- If State = 6 Then Toggle Keybeep If Keybeep = 1 Then Lcdat 4 , 1 , " KEY BEEP ON" Sound Porta.6 , 20 , 250 Else Lcdat 4 , 1 , " KEY BEEP OFF" End If Wait 2 State = 0 Cls Goto Main End If ' Fiddle Menu---------------------------------------------------------------------------------------------- If State = 7 Then Lcdat 1 , 1 , "FIDDLE MENU:" Lcdat 2 , 1 , "BATT: " ; Bvolts Lcdat 3 , 1 , "MAINS: " ; Volts Lcdat 4 , 1 , "LIGHT " ; Light Wait 5 State = 0 Cls Goto Main End If 'Write Display---------------------------------------------------------------------------------------------------------- Stringcount = 1 Do N = Mid(disp , Stringcount , 1) J = Stringcount - 1 Carpos = J * 16 Select Case Asc(n) Case 37 : Showpic Carpos , 0 , Percent Case 42 : Showpic Carpos , 16 , Alarmon Case 45 : Showpic Carpos , 0 , Blank Case 47 : Showpic Carpos , 0 , Slash Case 48 : Showpic Carpos , 0 , Zero Case 49 : Showpic Carpos , 0 , One Case 50 : Showpic Carpos , 0 , Two Case 51 : Showpic Carpos , 0 , Three Case 52 : Showpic Carpos , 0 , Four Case 53 : Showpic Carpos , 0 , Five Case 54 : Showpic Carpos , 0 , Six Case 55 : Showpic Carpos , 0 , Seven Case 56 : Showpic Carpos , 0 , Eight Case 57 : Showpic Carpos , 0 , Nine Case 58 : Showpic Carpos , 0 , Dots Case 67 : Showpic Carpos , 0 , Degrees Case 88 : Showpic Carpos , 16 , Alarmoveride End Select Incr Stringcount J = Len(disp) + 1 Loop Until Stringcount = J Goto Main Stop ' end of program 'SUBROUTINES------------------------------------------------------------------------------------------------------------ ' Setup Menu------------------------------------------------------------------------------------------------------------ Setup: Showpic 0 , 0 , Setupmenu X = 0 Y = 0 Menupos = 4 Menurow = 1 Setuploop: Gosub Checkkeys If Key = 1 Then Decr Menupos If Menupos = 0 Then Menupos = 4 Showpic 0 , 0 , Setupmenu End If If Key = 2 Then If Menurow = 1 Then Menurow = 0 Else If Menurow = 0 Then Menurow = 1 End If Showpic 0 , 0 , Setupmenu End If If Key = 3 Then Incr Menupos If Menupos = 5 Then Menupos = 1 Showpic 0 , 0 , Setupmenu End If If Key = 4 Then If Menurow = 1 Then State = Menupos + 4 Menupos = 1 If State = 8 Then State = 0 Cls Goto Main Else State = Menupos Menupos = 1 Cls Goto Main End If End If If Odd = 1 Then X = Menupos If Menurow = 1 Then X = Menupos + 4 End If Select Case X Case 1 : Showpic 0 , 0 , Setupmenu1 Case 2 : Showpic 0 , 0 , Setupmenu2 Case 3 : Showpic 0 , 0 , Setupmenu3 Case 4 : Showpic 0 , 0 , Setupmenu4 Case 5 : Showpic 0 , 0 , Setupmenu5 Case 6 : Showpic 0 , 0 , Setupmenu6 Case 7 : Showpic 0 , 0 , Setupmenu7 Case 8 : Showpic 0 , 0 , Setupmenu8 End Select ' X = Menupos - 1 ' X = X * 32 ' X1 = X + 31 ' If Menurow = 0 Then Y = 0 ' If Menurow = 1 Then Y = 28 ' Y1 = Y + 27 ' Line(x , Y) -(x1 , Y) , 255 ' Line(x1 , Y) -(x1 , Y1) , 255 ' Line(x1 , Y1) -(x , Y1) , 255 ' Line(x , Y1) -(x , Y) , 255 Else Showpic 0 , 0 , Setupmenu End If Gosub Timeout Goto Setuploop 'CheckKeys-------------------------------------------------------------------------------------------------------------- Checkkeys: Key = 0 Debounce Pinc.0 , 1 , Key1 , Sub Debounce Pinc.1 , 1 , Key2 , Sub Debounce Pinc.2 , 1 , Key3 , Sub Debounce Pinc.3 , 1 , Key4 , Sub Debounce Pinc.4 , 1 , Key5 , Sub If Key <> 0 Then Count = 0 If Keybeep = 1 Then Sound Porta.6 , 20 , 250 End If End If Return Key1: Key = 1 Return Key2: Key = 2 Return Key3: Key = 3 Return Key4: Key = 4 Return Key5: Key = 5 Return ' to do on the second--------------------------------------------------------------------------------------------------- Sectic: Toggle Odd ' toggle the dots/odd even seconds Incr Count ' Incr count for timeout If Snooze = 1 Then If _sec = Snoozesec Then Incr Snoozemincount End If End If Onsecond = 1 Return ' Return to state 0 if longer than 30 seconds non use------------------------------------------------------------------- Timeout: If Count = 30 Then Cls State = 0 Goto Main End If Return ' Make 12 Hour if 12 hour selected ------------------------------------------------------------------------------------- 12hour: J = Val(hours) If 24h = 0 Then ' Display AM or PM If J <= 11 Then Showpic 112 , 0 , Am Else Showpic 112 , 0 , Pm End If If J => 13 Then J = J - 12 Hours = Str(j) End If If J = 0 Then J = 12 Hours = "12" End If End If Return 'include the picture data----------------------------------------------------------------------------------------------- Weekdays: Data "MON" , "TUE" , "WED" , "THU" , "FRI" , "SAT" , "SUN" $include "alarm.font" Zero: $bgf "0.bgf" One: $bgf "1.bgf" Two: $bgf "2.bgf" Three: $bgf "3.bgf" Four: $bgf "4.bgf" Five: $bgf "5.bgf" Six: $bgf "6.bgf" Seven: $bgf "7.bgf" Eight: $bgf "8.bgf" Nine: $bgf "9.bgf" Alarmon: $bgf "alarmon.bgf" Alarmoveride: $bgf "alarmoveride.bgf" Dots: $bgf "dots.bgf" Slash: $bgf "slash.bgf" Blank: $bgf "blank.bgf" Am: $bgf "am.bgf" Pm: $bgf "pm.bgf" Degrees: $bgf "degrees.bgf" Percent: $bgf "percent.bgf" Updownright: $bgf "updownright.bgf" Updownset: $bgf "updownset.bgf" Setupmenu: $bgf "Setupmenu.bgf" Mainbar: $bgf "Mainbar.bgf" Temphum: $bgf "TempHum.bgf" Snooze: $bgf "snooze.bgf" 16x16blank: $bgf "16x16Blank.bgf" Temptrend: $bgf "temptrend.bgf" Humtrend: $bgf "humtrend.bgf" Setupmenu1: $bgf "Setupmenu1.bgf" Setupmenu2: $bgf "Setupmenu2.bgf" Setupmenu3: $bgf "Setupmenu3.bgf" Setupmenu4: $bgf "Setupmenu4.bgf" Setupmenu5: $bgf "Setupmenu5.bgf" Setupmenu6: $bgf "Setupmenu6.bgf" Setupmenu7: $bgf "Setupmenu7.bgf" Setupmenu8: $bgf "Setupmenu8.bgf" 'THE END----------------------------------------------------------------------------------------------------------------