CLOCK-CALENDAR 128 DOWNLOAD

Started by BigDumbDinosaur, April 25, 2008, 03:51 PM

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

BigDumbDinosaur

Clock-Calendar 128 (CC128) is now available for downloading.  See the link at the end of this post and be sure to read the documentation before trying it out.  Also, if you wish to integrate CC128 with the C-128 80 Column Display Manager (80CDM) be sure the version of 80CDM on your system is 1.2 or later.


Clock-Calendar 128 is a utility for the C-128 that provides date and time services that may be used by other programs on an ad hoc basis.  When started, CC128 is linked into the C-128's interrupt request (IRQ) processing subsystem, causing the utility to run in the background until its services are needed.  There are any number of uses to which CC128 can be put, such as providing date and time services to BBS software, date and time stamping of records in a database, date and time stamping of entries into a log, etc.

CC128's basic features are:


  • 12 hour, AM/PM continuous time-of-day function.  All CC128 timing functions are derived from the hardware TOD clock in CIA #2.  Unlike the TI$ software jiffy "clock" available in BASIC, the CIA's TOD clock is unaffected by operating system activities and maintains excellent accuracy over long periods.


  • Full range calendar with year, month, date and day of week.  CC128 can maintain dates from January 1, 1753 to December 31, 9999, inclusive, with full leap year compensation.


  • Audible alarm.  At the alarm time, your C-128 will alert you with a pleasant gong tone.  The alarm has the software equivalent of a "snooze bar."


  • Continuously updated date and time values.  CC128 can export date and time data into any desired location in RAM-0 for use by your software.


  • Automatic detection of NTSC and PAL systems.  Upon startup, CC128 will determine which video system is in use and will program the TOD clock for the correct power line (mains) frequency.


  • Presence signature.  CC128 includes a "presence signature" that can be tested by other programs to determine if CC128 has been loaded into memory and is intact..

CC128 can interface with the C-128 80 Column Display Manager (80CDM) version 1.2 or  later and offer the following extra services:


  • Timed "screen saver" function.  CC128 can be configured to monitor the C-128's keyboard and turn off the 80 column display after a programmable period of inactivity.  Pressing almost any key will turn on the display.  The inactivity period can range from one to 32,767 seconds (more than nine hours).


  • Continuous date and time display.  If 80CDM's status line has been enabled, CC128 can be told to generate a constantly-updating date and time display on the right-hand end of the status line (leaving plenty of room for user-generated status line text).

CC128 runs in RAM-0 underneath the kernel ROM and consumes less that 2 KB of memory.  Data is stored in normally unused memory at the very top of RAM-0.  When loaded and started, CC128 will adjust the top-of-BASIC pointers to protect itself from outsized programs.

CC128 is a low level operating system enhancement, and thus natively operates at the machine language level.  Access is through a jump table similar to the kernel ROM jump table, and date and time inputs and outputs are given in compressed binary-coded decimal (BCD) format for easy manipulation and conversion in the M/L environment.  However, BASIC programmers have not been left out in the cold!  I have also developed CC128CTL (CC128 control, included in the CC128 distribution) to allow CC128 functions to be called from BASIC, using a simple SYS calling syntax that even a trained monkey can understand.   ::)

If you have any questions about the use of CC128 please peruse the documentation.  If that doesn't help then feel free to post your question here.  If you are reporting what you think may be a bug, please be as specific as possible as to the problem.  Posts that lack adequate information or aren't germane to the topic will be ignored.
x86?  We ain't got no x86.  We don't need no stinking x86!