/* $VER: AlarmClock 1.3 (1999-09-17) */
options results
call Tags
SELECT
WHEN arg(1)="START" then call start
WHEN arg(1)="BREAK" then call break
WHEN arg(1)="ABOUT" then call about
WHEN arg(1)="LOAD" then call load
WHEN arg(1)="SAVE" then call save
OTHERWISE call init
end
exit
init:
address AlarmClock
window ID ALARM TITLE '"AlarmClock v1.3"' COMMAND '"quit"' PORT AlarmClock
menu LABEL "Project"
item COMMAND '"Alarmclock.rexx ABOUT"' ATTRS MUIA_Menuitem_Shortcut 'A' LABEL "About"
item COMMAND '"method 'MUIM_Application_AboutMUI' 0"' PORT AlarmClock ATTRS MUIA_Menuitem_Shortcut 'M' LABEL "About MUI"
item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"' PORT AlarmClock ATTRS MUIA_Menuitem_Shortcut 'P' LABEL "MUI Prefs..."
item ATTRS MUIA_Menuitem_Title '-1'
menu LABEL "Settings..."
item COMMAND '"AlarmClock.rexx LOAD"' ATTRS MUIA_Menuitem_Shortcut 'L' LABEL "Load Settings"
item COMMAND '"AlarmClock.rexx SAVE"' ATTRS MUIA_Menuitem_Shortcut 'S' LABEL "Save Settings"
endmenu
item ATTRS MUIA_Menuitem_Title '-1'
item COMMAND '"quit"' PORT AlarmClock ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL "Quit"
endmenu
text help '"AlarmClock v1.3 by\nLorens Johansson (http://snorslex.amiga.tm)\nIf you use this program, you are required to Email\nthe author (SnorsleX@Home.se). Otherwise,\nhow is he supposed to know to keep supporting AlarmClock ?!?\n\033rLorens Johansson"' label "\033c\033bAlarmClock v1.3\033n\n\033cLorens Johansson\n\033cFreely Distributable Emailware"
text ID KEY ATTRS MUIA_Text_Contents '"\033c\033bUnregistered! Pease register! It is free!"'
group ID GMAIN
group
group frame label "Alarm"
group ATTRS MUIA_Group_Columns 4
label "Normal Time:"
slider ID HOUR ATTRS MUIA_Slider_Max 23 MUIA_CycleChain 1
label ":"
slider ID MINUT ATTRS MUIA_Slider_Max 59 MUIA_CycleChain 1
endgroup
endgroup
endgroup
group frame label "Type of alarm"
group ATTRS MUIA_Group_Columns 2
label "Alarm type:"
cycle ID ALWHI ATTRS MUIA_CycleChain 1 LABELS "Play MP3,DisplayBeep,Play16"
endgroup
group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Play MP3,DisplayBeep,Play16"
group ATTRS MUIA_Group_Columns 2
label "MPega:"
popasl ID AMPEG ATTRS MUIA_CycleChain 1
label "Options:"
string ID AMPEO ATTRS MUIA_CycleChain 1
label "MP3:"
popasl ID AMP3 ATTRS MUIA_CycleChain 1
endgroup
group ATTRS MUIA_Group_Columns 2
label "Number of times:"
slider ID BEEP ATTRS MUIA_Slider_Min 1 MUIA_Slider_Max 120 MUIA_CycleChain 1
label "Wait between beeps:"
slider ID BWAIT ATTRS MUIA_Slider_Max 20 MUIA_CycleChain 1
endgroup
group ATTRS MUIA_Group_Columns 2
label "Play16:"
popasl ID PPLAY ATTRS MUIA_CycleChain 1
label "Options:"
string ID POPTI ATTRS MUIA_CycleChain 1
label "File:"
popasl ID PFILE ATTRS MUIA_CycleChain 1
endgroup
endgroup
endgroup
endgroup
group ID GWAIT ATTRS MUIA_ShowMe 0
space
object ID INF class '"InfoText.mcc"' ATTRS MUIA_Text_Contents '"Waiting..."'
space
endgroup
group ATTRS MUIA_Group_Columns 5
group
button ID START ATTRS MUIA_CycleChain 1 MUIA_ShowMe 1 COMMAND '"AlarmClock.rexx START"' label "Start"
button ID BREAK ATTRS MUIA_CycleChain 1 MUIA_ShowMe 0 COMMAND '"AlarmClock.rexx BREAK"' label "Please Stop"
endgroup
space
button ID ABOUT ATTRS MUIA_CycleChain 1 COMMAND '"AlarmClock.rexx ABOUT"' label "About"
space
button ID QUIT ATTRS MUIA_CycleChain 1 COMMAND '"quit"' PORT AlarmClock label "Quit"
endgroup
endwindow
time=LEFT(time(),5)
h=LEFT(time,2)
m=RIGHT(time,2)
m=m+1
if m=60 then do
h=h+1
m=0
end
if h=24 then h=0
if h>=0&h<=23 then slider ID HOUR ATTRS MUIA_Slider_Level h
if h>=0&h<=59 then slider ID MINUT ATTRS MUIA_Slider_Level m
call load
call KeyCheck
res=result
if res="No" then do
ADDRESS AlarmClock
window ID REGIS TITLE '"Please Register"'
text label "\033c\033bRIGISTER IS FREE!!!\n\n\033nTo register send a mail to:\nSnorsleX@SoftHome.net!"
group ATTRS MUIA_Group_Columns 3
space HORIZ
button ID CLKEY ATTRS MUIA_CycleChain 1 COMMAND '"window ID REGIS close"' PORT AlarmClock label "I will"
space HORIZ
endgroup
endwindow
end
if res="Yes" then do
ADDRESS AlarmClock
txt='"\033cRegistered to: '||name||' (#'||serial||')! Thanks!"'
text ID KEY ATTRS MUIA_Text_Contents txt
end
exit
Tags:
MUIA_Application_Sleep=0x80425711
MUIA_AppMessage=0x80421955
MUIA_CycleChain=0x80421ce7
MUIA_Disabled=0x80423661
MUIA_Group_Columns=0x8042f416
MUIA_Menuitem_Title=0x804218be
MUIA_Menuitem_Shortcut=0x80422030
MUIA_ShowMe=0x80429ba8
MUIA_Slider_Horiz=0x8042fad1
MUIA_Slider_Level=0x8042ae3a
MUIA_Slider_Max=0x8042d78a
MUIA_Slider_Min=0x8042e404
MUIA_Text_Contents=0x8042f8dc
MUIA_Window_ScreenTitle=0x804234b0
MUIA_Weight=0x80421d1f
MUIM_Application_AboutMUI=0x8042d21d
MUIM_Application_OpenConfigWindow=0x804299ba
MUIV_EveryTime=0x49893131
MUIV_Frame_None=0
MUIV_Frame_Text=3
TRUE=1
FALSE=0
return
start:
ADDRESS AlarmClock
group ID GMAIN ATTRS MUIA_ShowMe 0
group ID GWAIT ATTRS MUIA_ShowMe 1
button ID START ATTRS MUIA_Disabled 1 MUIA_ShowMe 0
button ID BREAK ATTRS MUIA_Disabled 1 MUIA_ShowMe 1
button ID QUIT ATTRS MUIA_Disabled 1
slider ID HOUR
h=result
slider ID MINUT
m=result
wakeuptime=h||":"||m
cycle ID ALWHI
alarmmethod=result
if alarmmethod="Play MP3" then do
object ID INF ATTRS MUIA_Text_Contents '"I will wake you up at 'wakeuptime'! Enjoy the MP3!"'
alarm=1
popasl ID AMPEG
mpega=result
string ID AMPEO
options=result
popasl ID AMP3
mp3=result
ADDRESS COMMAND "c:wait until "||h||":"||m
ADDRESS AlarmClock
button ID BREAK ATTRS MUIA_Disabled 0
button ID QUIT ATTRS MUIA_Disabled 0
ADDRESS COMMAND mpega||" "||options||" "||mp3
end
if alarmmethod="DisplayBeep" then do
object ID INF ATTRS MUIA_Text_Contents '"I will wake you up at '||h||':'||m||'! Enjoy the flashing and beeping!"'
alarm=2
slider ID BEEP
beeps=result
slider ID BWAIT
pause=result
ADDRESS COMMAND "c:wait until "||h||":"||m
do beeps
ADDRESS COMMAND "beep"
call DELAY(pause*5)
end
ADDRESS AlarmClock
button ID QUIT ATTRS MUIA_Disabled 0
end
if alarmmethod="Play16" then do
object ID INF ATTRS MUIA_Text_Contents '"I will wake you up at 'wakeuptime'! Enjoy the sound!"'
alarm=1
popasl ID PPLAY
play16=result
string ID POPTI
options=result
popasl ID PFILE
file=result
ADDRESS COMMAND "c:wait until "||h||":"||m
ADDRESS AlarmClock
button ID BREAK ATTRS MUIA_Disabled 0
button ID QUIT ATTRS MUIA_Disabled 0
ADDRESS COMMAND play16||" "||options||" "||file
end
button ID BREAK ATTRS MUIA_ShowMe 0
button ID START ATTRS MUIA_ShowMe 1 MUIA_Disabled 0
group ID GWAIT ATTRS MUIA_ShowMe 0
group ID GMAIN ATTRS MUIA_ShowMe 1
return
break:
ADDRESS AlarmClock
group ID GWAIT ATTRS MUIA_ShowMe 0
group ID GMAIN ATTRS MUIA_ShowMe 1
button ID BREAK ATTRS MUIA_ShowMe 0
button ID START ATTRS MUIA_ShowMe 1 MUIA_Disabled 0
popasl ID AMPEG
mpega=result
if exists("RAM:status") then call DELETE("RAM:status")
ADDRESS COMMAND "status >RAM:status"
call OPEN("status","RAM:status","r")
J=0
do UNTIL EOF("status")
J=J+1
stat=readln("status")
if lastpos(mpega,stat) ~= 0 then ADDRESS COMMAND "break "J
end
call CLOSE("status")
call DELETE("RAM:status")
return
load:
ADDRESS AlarmClock
if OPEN("prefs","AlarmClock.prefs","R") then do
call READLN("prefs")
cycle ID ALWHI label result
call READLN("prefs")
popasl ID AMPEG content result
call READLN("prefs")
string ID AMPEO content result
call READLN("prefs")
popasl ID AMP3 content result
call READLN("prefs")
slider ID BEEP ATTRS MUIA_Slider_Level result
call READLN("prefs")
slider ID BWAIT ATTRS MUIA_Slider_Level result
call READLN("prefs")
popasl ID PPLAY content result
call READLN("prefs")
string ID POPTI content result
call READLN("prefs")
popasl ID PFILE content result
call CLOSE("prefs")
end
return
save:
ADDRESS AlarmClock
call OPEN("prefs","AlarmClock.prefs","W")
cycle ID ALWHI
call WRITELN("prefs",result)
popasl ID AMPEG
call WRITELN("prefs",result)
string ID AMPEO
call WRITELN("prefs",result)
popasl ID AMP3
call WRITELN("prefs",result)
slider ID BEEP
call WRITELN("prefs",result)
slider ID BWAIT
call WRITELN("prefs",result)
popasl ID PPLAY
call WRITELN("prefs",result)
string ID POPTI
call WRITELN("prefs",result)
popasl ID PFILE
call WRITELN("prefs",result)
call CLOSE("prefs")
return
about:
ADDRESS AlarmClock
window ID ABT TITLE '"About AlarmClock v1.3"' COMMAND '"window ID ABT close"' PORT AlarmClock
text label "\033c\033bAlarmClock v1.3\033n\n\033cFreely Distributable Emailware\n\n\033cReleased: 1999-09-17\n\n\033cPlease visit my homepage:\nhttp://snorslex.amiga.tm\n\nPlease E-Mail me if you like/hate the program!\nSnorsleX@Home.se\n\n\033r©Copyright 1999 Lorens Johansson"
group ATTRS MUIA_Group_Columns 3
space HORIZ
button ATTRS MUIA_CycleChain 1 COMMAND '"window ID ABT close"' PORT AlarmClock label "Close"
space HORIZ
endgroup
endwindow
return
KeyCheck:
if exists("AlarmClock.key") then do
call OPEN("key","AlarmClock.key","R")
keydata=READLN("key")
keydata2=READLN("key")
call CLOSE("key")
checksum=substr(keydata,1,1)
serial=substr(keydata,2,1)
serialchk=substr(keydata,3,1)
name=substr(keydata,4,length(keydata)-3)
checksume=substr(keydata2,1,1)
email=substr(keydata2,2,length(keydata2)-1)
end
else Return("No")
namelen=Length(name)
realsum=c2d(checksum)
serial=c2d(serial)
serialchk=c2d(serialchk)
temp=""
do I=1 To namelen
temp=temp||d2c(c2d(Right(Left(name,I),1))-(I*2))
end
name=temp
temp=""
do I=1 To namelen
temp=temp||d2c(c2d(Right(Left(name,namelen+1-I),1)))
end
name=temp
temp=""
checksum=0
do I=1 To namelen
checksum=checksum + c2d(Right(Left(name,I),1))
end
do until checksum < 255
checksum=checksum-255
end
serial=serial-checksum
serialchk=serialchk-20
emaillen=Length(email)
realsume=c2d(checksume)
temp=""
do I=1 To emaillen
temp=temp||d2c(c2d(Right(Left(email,I),1))-(I*2))
end
email=temp
temp=""
do I=1 To emaillen
temp=temp||d2c(c2d(Right(Left(email,emaillen+1-I),1)))
end
email=temp
temp=""
checksume=0
do I=1 To emaillen
checksume=checksume + c2d(Right(Left(email,I),1))
end
do until checksume < 255
checksume=checksume-255
end
OK="No"
If realsum=checksum & serial=serialchk & realsume=checksume Then OK="Yes"
return(OK)
