#include #include #include #include #include "clock.h" int $$narg = 1; main() { int *clkregs,*reset,hour,min,month,day,time ; extern $IOPAG ; /********************************************************* * Map to I/O Page **********************************************************/ clkregs = &$IOPAG; /********************************************************* * Map to the TCU-50 **********************************************************/ clkregs = CLOCK; reset = RESET; /********************************************************* * Get month and day info **********************************************************/ time = *clkregs; month = (time & MONMASK) >> 8; day = (time & DAYMASK); /********************************************************* * Get hour minute info **********************************************************/ clkregs++; time = *clkregs; hour = (time & HRMASK) >> 8; min = time & MINMASK; clkregs = CLKSTAT; /********************************************************* * Display the current values **********************************************************/ printf("Month = %d.\n",month); printf("Day = %d.\n",day); printf("Hour = %d.\n",hour); printf("Minute= %d.\n",min); printf("Status= %o.\n",*clkregs); /********************************************************* * Get new values **********************************************************/ printf("Enter Month : "); scanf("%d",&month); printf("Enter Day : "); scanf("%d",&day); printf("Enter Hour : "); scanf("%d",&hour); printf("Enter Minute: "); scanf("%d",&min); /********************************************************* * Set time on clock **********************************************************/ /* first the month and day */ clkregs = MON_DAY; time = ( (month << 8) | day ); printf("Setting Month/Day (%d/%d)....\n",month,day); *clkregs = time; /* start the fast clock */ while(*clkregs != time || *clkregs != time) ; *reset = 0; /*stop the fast clock */ /* now the hour & minute */ clkregs = HR_MIN; time = ( (hour << 8) | min); printf("Setting Hour/Minute(%d/%d)....\n",hour,min); *clkregs = time; /* start the fast clock */ while(*clkregs != time || *clkregs != time) ; *reset = 0; /* stop the fast clock */ printf(" Done !! \n"); }