MicroWorlds has three instructions that deal with time, timer, resett and wait. Of the three wait is of the most interest to someone programming a wall clock. Timer and resett would be of use if you were programming a stop watch or elasped timer.
Wait takes one argument, a number representing the number of tenths of a second for the instruction to pause. After that time has elasped the program resumes at the next instruction. This menthod of keeping track of the time isn't very reliable and you will notice the clocks drift if you run it for any length of time.
MicroWorlds does not have the ability to get the current time automatically. To my knowledge there is no way to access the system clock so the user needs to input the time before starting the clock. If anyone knows of a way to access the clock please let me know.
I think that the checkboxes and radio buttons are a good addition to the the user interface for the clock. The checkboxes and radio buttons are implemented as turtles, see the code for a description. The only GUI objects that MicroWorlds implements are push buttons and sliders but more can be built using the turtles.
User interface design is a very important part of any programming project and one that isn't stressed enough in my opinion. No matter how well a program performs if it's difficult or annonying to use it will soon be put aside. One aspect of clock's user interface I'd like to point out is how the digits are checked for correctness after the start button is pressed. In clock all three segments (hours, minutes and seconds) are checked and any errors are presented to the user at one time. Nothing is more annoyning then to make multiple entries in a program and to have errors reported back one at a time.
We've all had the experience: after filling out a form first the program reports that box 1a is wrong. So you correct it and resubmit. Then the program reports that the zip code is bad, OK correct it and resubmit. Now it tells you that 5b is required.... You get my meaning. When at all possible check all user input and report all errors at one time. This way the user can correct them all at once and be done with it.